﻿function RemoteObject(dest, json, fcAnonSuccess, fcAnonFailed)
{    
    fcAnonSuccess = typeof fcAnonSuccess=="undefined" ? true : fcAnonSuccess;
    fcAnonFailed = typeof fcAnonFailed=="undefined" ? false : fcAnonFailed;
    
    var req = $.post(dest, json, 
        function(data)
        {
            if(data.length>0)
            {                              
                if(data.charAt(0)=="{")
                {                 
                    var r = data.substring(1, data.indexOf("}")).toLowerCase(); 
                    if(r=="erro") r += "r";                    
                    var s = data.substring(data.indexOf("}")+1);
                    data = { result:r, html:s };
                }
                else if(data.substring(0,4) == "data")
                    eval(data);
                else
                    data = { result:typeof fcAnonSuccess=="boolean" ? "info" : "ok", html:data };       
            }  
            else
                data = { result:"empty", html:"" };
                
            if( (fcAnonSuccess!=null && typeof fcAnonSuccess=="function") && data.result.toLowerCase() != "error" ) fcAnonSuccess(data);
            if( (fcAnonFailed!=null && typeof fcAnonFailed=="function") && data.result.toLowerCase() == "error") fcAnonFailed(data);  
            
            if( typeof fcAnonSuccess=="boolean" && data.result.toLowerCase() != "error" ) messageResult(data, true);  
            
            if( typeof fcAnonFailed=="boolean" )
            {
                try { isProcessing = false; } finally {}
                messageResult(data, fcAnonFailed);      
            }
            
        }
    );
    
    return req;
}

//------------------------------------------------------------------------

function messageResult(data, isMessageResult)
{
    var b = true;
    if(data.result.toLowerCase()=="error")
    {
        alert( "ATENÇÃO, ERRO FATAL:\n\n" + data.html + "\n\nComunique ao administrador do sistema: webmaster@inovandoweb.com" );
        b = false;
    }
    
    if(data.result.toLowerCase()=="info" && isMessageResult)
    {
        alert( "ATENÇÃO:\n\n" + data.html );
        b = false;
    }
    
    return b;
}

//------------------------------------------------------------------------

//Valida tags script vindas de uma resposta do ajax
function validJavaScript(idResult) 
{
    var conteudo = typeof idResult=="object" ? idResult : document.getElementById(idResult);
    var newElement = document.createElement("script");
    var scripts = conteudo.getElementsByTagName("script");
    for(var i=0;i<scripts.length;i++) newElement.text = scripts[i].innerHTML;
    conteudo.appendChild(newElement);
}