var AjaxObject = {

	send: function( sDiv , sUrl )
	{
		var a = new AjaxClass();
		a.send( sDiv , sUrl );
	},

	sendForm: function( sDiv , sUrl , oForm , bUpload )
	{
		var a = new AjaxClass();
		a.sendForm( sDiv , sUrl , oForm , bUpload );
	}
}

var AjaxClass = function()
{
	var id,msg,frm;

	var ScriptFragment = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';

	var success = function( o )
	{
		var div = document.getElementById( id );

		if( o.responseText !== undefined )
		{
			if( msg )
				alert( msg );
				
			var html = typeof o.responseText == 'undefined' ? '' : o.responseText;
		    div.innerHTML = html;
		    setTimeout(function() { evalScripts( html ) }, 10);

			disableButton( frm , false );
			
			try {
				MyApp.DDApp.init( id );
			}catch(e){}
		}
		
		
	}

	var extractScripts = function( html ) {
    	var matchAll = new RegExp(ScriptFragment, 'img');
    	var matchOne = new RegExp(ScriptFragment, 'im');
    	return (html.match(matchAll) || []).map(function(scriptTag) {
    		return (scriptTag.match(matchOne) || ['', ''])[1];
    	});
  	}

  	var evalScripts = function( html ) {
    	return extractScripts( html ).map(function(script) { return eval(script) });
  	}

	var failure = function( o )
	{
		alert( "Não foi possível carregar a página requisitada. Tente novamente! " );
	}

	var callbackAjax =
	{
		success: success,
		failure: failure,
		upload:  success,
		timeout: 60000,
		scope: this
	}

	this.send = function( sDiv , sUrl )
	{
		id = sDiv;
		return YAHOO.util.Connect.asyncRequest( "GET" , sUrl , callbackAjax );
	}

	this.sendForm = function( sDiv , sUrl , oForm , bUpload )
	{
		id = sDiv;
		frm = oForm;
		msg = "Realizado com sucesso!";
		( bUpload )?( bUpload = true ):( bUpload = false );
		disableButton( oForm , true );
		YAHOO.util.Connect.setForm( oForm , bUpload , true );
		return YAHOO.util.Connect.asyncRequest( "POST" , sUrl , callbackAjax );
	}

	var disableButton = function( oForm , bDisabled )
	{
		for( var i = 0 , element; element = oForm.elements[i]; i++ )
		{
			if( element.type == 'submit' )
			{
				element.disabled = bDisabled;
			}
		}
	}
}

var validated = false;