﻿var ajax = {
    REQ : null,
    isComplete: true,
    go : function(url, dataJsonOrQueryString, successAction, failedAction, dataType, isIgnoreError)
    {
    	  isIgnoreError = typeof isIgnoreError != "boolean" ? false : isIgnoreError;
		  ajax.isComplete = false;
		  ajax.REQ = $.ajax({
			  	type: 'POST', 
			  	url: url, 
			  	dataType: (typeof dataType == 'undefined' ? 'json' : dataType.toLowerCase()), 
			  	data: dataJsonOrQueryString, 
		      	success: function(data)
				{
					ajax.isComplete = true;
					successAction(data);
				}, 
		      	failed: function(data)
				{
					ajax.isComplete = true;
					failedAction(data);
				},
				error: function(error) 
				{
					ajax.isComplete = true;
			        if(!isIgnoreError) alert('Erro. Sem retorno da requisicao.\n\n' + error.toString());
			    }
		
		  });
		  return ajax.REQ;
    },
    cancel : function()
    {
        try
        { 
        	ajax.isComplete = true;
            ajax.REQ.abort(); 
            ajax.REQ = null;
        } finally {}        
        return void(0);
    },    
    valid_js : function(id_result)
    {
	    var content = typeof id_result=="string" ? document.getElementById(id_result) : id_result;
	    var newElement = document.createElement("script");
	    var scripts = content.getElementsByTagName("script");
	    for(var i=0;i<scripts.length;i++) newElement.text = scripts[i].innerHTML;
	    content.appendChild(newElement);
    }    
}
