//CONSTANT JAVASCRIPT : AJAX IN MODE ASINCRON O SINCRON A NO SE QUE S'ESPECIFIQUI
var sync=false;
var debug=false;


function setDIV(divName,visible){
    try
    {
	    document.getElementById(divName).style.visibility=visible;
    }
    catch(err)
    {
    }
}

function CXMLReq(divRetorno, afterAction,xmlhttp) {
    this.divRetorno = divRetorno;
    this.xmlhttp = xmlhttp;
    
    if (typeof afterAction!='undefined' )
        this.afterAction=afterAction;
    else
        this.afterAction=null;
}

//Function fas error de getAjaxDetallUpdate
function hasError(divDetallmsg)
{
    var obj=document.getElementById(divDetallmsg);
    
    for (i=0;i<obj.getElementsByTagName("input").length; i++) {
        if (obj.getElementsByTagName("input")[i].type == "hidden") {
           if (obj.getElementsByTagName("input")[i].name =="PRIMARYID") {
               return false;
           }
        }
    }
    return true;
}

function validateField(fieldId,type,required,size)
{
    var field=document.getElementById(fieldId);
    
    str="frontend=0&value="+field.value+"&type="+type;
    if (typeof required!='undefined' && required!=null ) 
    {
        if(required)
            str+="&required=true";
        else
            str+="&required=false";
    }
    if (typeof size!='undefined' && size!=null ) 
            str=str+"&size="+size;
            
    if (debug)        
        return true;
        
    ajSync("./Classes/Validation.php",str,fieldId+"_ERR");
}

//For front end
function validateFieldFE(fieldId,type,required,size)
{
    var field=document.getElementById(fieldId);
    
    str="frontend=1&value="+field.value+"&type="+type;
    if (typeof required!='undefined' && required!=null ) 
    {
        if(required)
            str+="&required=true";
        else
            str+="&required=false";
    }
    if (typeof size!='undefined' && size!=null ) 
            str=str+"&size="+size;
            
    if (debug)        
        return true;
        
    ajSync("./Core/Classes/Validation.php",str,fieldId+"_ERR");
}


function delayAlerts(divName,timeMilis)
{
    setTimeout("document.getElementById('"+divName+"_msg').innerHTML=''",timeMilis);
}

function aj(strUrl,strParams,divRetorno,beforeAction,afterAction){
	

    if (sync==true)
        ajSync(strUrl,strParams,divRetorno,beforeAction,afterAction);
    else
        ajAsync(strUrl,strParams,divRetorno,beforeAction,afterAction);
}


function ajSync(urlAjax,dataAjax,divRetorno,beforeAction,afterAction) {
    
    if (typeof beforeAction!='undefined' && beforeAction!=null )
    {
        result=eval(beforeAction);
    }
    else
        result = true;
        
    if (result) 
    {
      $.ajax({  
              type: "POST", url: urlAjax, data: dataAjax,dataType: "html",async:false,
              success:function(strData){
                  try
                  {
                    updatePage(strData,divRetorno);    
                    eval(afterAction);
                  }
                  catch(e)
                  {
                    alert("error Ajax:"+err.description);
                  }
              },
              error: function(){  
                alert("Error llamada ajax.");
              }
      }); 
    }
} 

function ajSyncFunction(strUrl,data){
    var xmlHttpReq=false;
    var self=this;

    if (window.XMLHttpRequest){     /*objeto XHR , menos en IE */
        self.xmlHttpReqSync= new XMLHttpRequest();
    }
    else if (window.ActiveXObject){     /* XHR solamente en IE*/
        self.xmlHttpReqSync = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReqSync.open('POST',strUrl,false);
    self.xmlHttpReqSync.setRequestHeader('Content-Type','application/x-www-form-urlencoded');   /*formulario HTML*/
    self.xmlHttpReqSync.send(data);
    return self.xmlHttpReqSync.responseText;
}


function ajAsync(urlAjax,dataAjax,divRetorno,beforeAction,afterAction) {
    
    if (typeof beforeAction!='undefined' && beforeAction!=null )
    {
        result=eval(beforeAction);
    }
    else
        result = true;
        
    if (result) 
    {
		  setDIV("loading","visible");
      $.ajax({  
              type: "POST", url: urlAjax, data: dataAjax,dataType: "html",
              success:function(strData){
                  try
                  {
                    updatePage(strData,divRetorno);    
                    eval(afterAction);
                    setDIV("loading","hidden");
                  }
                  catch(e)
                  {
                    setDIV("loading","hidden");
                    alert("error Ajax:"+err.description);
                  }
              },
              error: function(){  
                alert("Error llamada ajax.");
              }
      }); 
    }
} 

function updatePage(strResponse,divRetorno){
  document.getElementById(divRetorno).innerHTML = strResponse;
}


function getAjaxParams(obj) {
  getstr="";
  for (i=0;i<obj.getElementsByTagName("INPUT").length; i++) {
        var str;
        if (obj.getElementsByTagName("INPUT")[i].type == "text") {
           str=obj.getElementsByTagName("INPUT")[i].value;
           getstr += "&" + obj.getElementsByTagName("INPUT")[i].name + "=" + encodeURIComponent(str);
        }
        if (obj.getElementsByTagName("input")[i].type == "password") {
           str=obj.getElementsByTagName("input")[i].value;
           getstr += "&" + obj.getElementsByTagName("input")[i].name + "=" + encodeURIComponent(str);
        }
        if (obj.getElementsByTagName("input")[i].type == "hidden") {
           str=obj.getElementsByTagName("input")[i].value;
           getstr += "&" + obj.getElementsByTagName("input")[i].name + "=" + encodeURIComponent(str);
        }
        if (obj.getElementsByTagName("input")[i].type == "checkbox") {
           if (obj.getElementsByTagName("input")[i].checked) {
              getstr += "&" + obj.getElementsByTagName("input")[i].name + "=1";
           } else {
              getstr += "&" + obj.getElementsByTagName("input")[i].name + "=0";
           }
        }
        if (obj.getElementsByTagName("input")[i].type == "radio") {
           if (obj.getElementsByTagName("input")[i].checked) {
              getstr += "&" + obj.getElementsByTagName("input")[i].name + "=" + 
                   obj.getElementsByTagName("input")[i].value ;
           }
     }  
  }
  for (i=0;i<obj.getElementsByTagName("select").length; i++) {
    var sel = obj.getElementsByTagName("select")[i];
    if(!sel.multiple)
    {
        if(sel.selectedIndex!=-1)
            getstr += "&"+ sel.name + "=" + encodeURIComponent(sel.options[sel.selectedIndex].value);
    }
    else
    {
       for (j=0; j<sel.options.length; j++) {
          if (sel.options[j].selected) {
              getstr += "&"+ sel.name + "=" + encodeURIComponent(sel.options[j].value);
          }
       }
    }
  }
  for (i=0;i<obj.getElementsByTagName("textarea").length; i++) {
    var ta = obj.getElementsByTagName("textarea")[i];
    str=ta.value;
    getstr += "&"+ ta.name + "=" + encodeURIComponent(str);
  }
  return getstr;
}



