/*------------------------------------------------------------------------------
 * AJAX functions
 *----------------------------------------------------------------------------*/
function checkuser(){
    var user= document.getElementById("txtUser").value
    var pass= xor_str(document.getElementById("txtPass").value)
    
    document.getElementById("h_User").value = user ;
    document.getElementById("h_Pass").value = pass ;
    
	GetxmlField('/XML/XmlEnterSitex.asp?User='+user+'&pss='+pass);
}
function backuser(){
    var user = document.getElementById("h_User").value
    var pass = document.getElementById("h_Pass").value
	GetxmlField('/XML/XmlEnterSitex.asp?bk=1&User='+user+'&pss='+pass);
}
function gomenu(li,lo){
	GetxmlField('/XML/XmlMenuSitex.asp?opc='+li+'&subopc='+lo);
}

function golink(page){ 
	GetxmlField(page);   //Funcion para ejecutar un xml y devolver algo ajax
}
function isEmpty(s){
   return ((s == null) || (s.length == 0))
}

function goSubmenu(opc,nameobj) {
 	if(!isEmpty(menusel)){
       Effect.SlideUp(menusel,'slide');
	}
   
	Effect.toggle(nameobj,'slide');
	menusel = nameobj
}
function selectTab(name){
   var capa =document.getElementById(name);   
   capa.style.visibility = 'visible';      

}
function gomenugestion(li,lo){
    var iduser = document.getElementById("h_IdUser").value
	GetxmlField('/XML/XmlMenuGestionSitex.asp?iduser=' + iduser + 'opc='+li+'&subopc='+lo);
}

function xmlCallForm(sXMLSrc,formvalue){
		var xmlhttp;

		document.getElementById('frame').disabled = false;
		

		xmlhttp = GetXmlHttp();
		xmlhttp.onreadystatechange = function() {xmlCallbackField(xmlhttp); };

		xmlhttp.open("GET", sXMLSrc +'?'+ formvalue , true);
		xmlhttp.setRequestHeader("Content-Type","text/html; charset=iso-8859-1")
		xmlhttp.send(null);

}

 function GetxmlField(sXMLSrc){
		var xmlhttp; 
		//alert("->"+sXMLSrc);

		document.getElementById('frame').disabled = true;
				
		xmlhttp = GetXmlHttp();
		xmlhttp.onreadystatechange = function() { xmlCallbackField(xmlhttp); };
		xmlhttp.open("GET", sXMLSrc, true);
		xmlhttp.setRequestHeader("Content-Type","text/html; charset=iso-8859-1")
		//alert("->"+sXMLSrc);		
		xmlhttp.send(null);
}
function xmlCallbackField(xmlhttp){
	var failed;
	if(xmlhttp.readyState == 4){ 
	
		if(xmlhttp.status==200) {
			var xml = GetXmlDom();
			if (window.ActiveXObject){

				if(xml.loadXML(xmlhttp.responseText)) {
					failed = false;
					if(xml.documentElement) {
						PutFieldValue(xml.documentElement);
					}
				} else {
				    alert('Si es la primera vez que observa este mensaje,\n1º Verifique si su conexión a internet esta sobrecargada por otros programas (P2P,...)\n2º Compruebe que no ha introducido caracteres irregulares \n3º Si ha verificado los pasos 1 y 2 y sigue mostrando este error, por favor, contacte con nuestro servicio de incidencias \n llamando al tlf: 920 22 22 40.No es xml');
					failed = true;
				}
			}else{
				parser=new DOMParser();
    			xmlDoc=parser.parseFromString(xmlhttp.responseText,"text/xml");
				PutFieldValue(xmlDoc.firstChild)		
			}
			var xml = null;
		} else {
		    alert('Si es la primera vez que observa este mensaje,\n1º Verifique si su conexión a internet esta sobrecargada por otros programas (P2P,...)\n2º Compruebe que no ha introducido caracteres irregulares \n3º Si ha verificado los pasos 1 y 2 y sigue mostrando este error, por favor, contacte con nuestro servicio de incidencias llamando al tlf: 920 22 22 40. La URL falló');
			failed = true;
		}
		document.getElementById('frame').disabled = false;
		//alert(failed);
	}
}

function GetXmlHttp(){
	xmlhttp=null;
	if (window.ActiveXObject){// code for Firefox, Opera, IE7, etc.
	    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}else{
	  if (window.XMLHttpRequest){// code for IE6, IE5
		xmlhttp= new XMLHttpRequest();;
	  }
	}
	if (xmlhttp!=null){
		return xmlhttp;
	}else{
	  alert("su navegador no soporta XMLHTTP.");
	}
}

function GetXmlDom(){
	xmlDoc =null;

	if (window.ActiveXObject){// code for Firefox, Opera, IE7, etc.
	    xmlDoc =new ActiveXObject("Microsoft.XMLDOM");
	}else{
	  if (window.XMLHttpRequest){// code for IE6, IE5
		xmlDoc = document.implementation.createDocument("","",null);
	  }
	}

	if (xmlDoc !=null){
		return xmlDoc ;
	}else{
	  alert("su navegador no soporta XMLDOM.");
	}
}


function xor_str(to_enc)
{
	//var to_enc = document.forms['the_form'].elements["str"].value;

	//var xor_key = 6 ; //document.forms['the_form'].elements.xor_key.value
	//var the_res = "" ;//the result will be here
	//for(i=0;i<to_enc.length;++i)
	//{
	//	the_res+=String.fromCharCode(xor_key^to_enc.charCodeAt(i));
	//}
	return to_enc;
}
function decrypt_str(to_dec)
{
	//var to_dec=document.forms['the_form'].elements.res.value
	var xor_key = 6 //document.forms['the_form'].elements.xor_key.value
	var the_res = "" ;  //document.forms['the_form'].elements.dec_res.value="";

	//for(i=0;i<to_dec.length;i++)
	//{
	//	the_res += String.fromCharCode(xor_key^to_dec.charCodeAt(i));
	//}
	return to_dec;
	
}


function PutFieldValue(xml){
    var campo;
    var vdisabled;
    var vvisible;
    var vtipo;
    var vclassname;
    var viframename;
    //alert("hola");
 //alert(xml.childNodes.length);
	if(xml.childNodes.length > 0) {
		var i = 0;
		while( i < xml.childNodes.length) {
	        vCData = ''
		    campo = dencodeiso(xml.childNodes[i].getAttribute('field') );
		    vdisabled = xml.childNodes[i].getAttribute('disabled');
		    vvisible = xml.childNodes[i].getAttribute('visible');		    
		    vtipo  = xml.childNodes[i].getAttribute('type');
		    vclassname = xml.childNodes[i].getAttribute('classname');
		    vcaption = xml.childNodes[i].getAttribute('caption');	
		    vonclick = xml.childNodes[i].getAttribute('onclick');
		    vurl = xml.childNodes[i].getAttribute('url');
		    viframename = xml.childNodes[i].getAttribute('iframename');
		    vvalue =xml.childNodes[i].getAttribute('value');
		    vindex =xml.childNodes[i].getAttribute('index');
		    
		    vitembox =xml.childNodes[i].getAttribute('citembox');
		    vtitembox =xml.childNodes[i].getAttribute('titembox');
		    
		    if(xml.childNodes[i].childNodes[0]!=null){
			    vCNData = xml.childNodes[i].childNodes[0].lastChild
			    if(vCNData!=null){
			       vCData = vCNData.nodeValue
			    }
		    }
			if(vtipo=='HTML'){
				  editor_setHTML('txtDocumento',dencodeiso(vCData));
			} else {
			      if(vtipo=='IFRAME'){
			         //alert(i+'->'+campo+'->'+vtipo);
				  	 if(xml.childNodes[i].childNodes[0].lastChild!=null){
				  	    document.getElementById(campo).innerHTML = dencodeiso(dencodeiso(vCData));	  
				  	 }
                 	if(viframename =='tree'){                         
                    	window.frames.tree.location =dencodeiso(vurl);
					}
			      }else{
				  	  if(vtipo=='FRAME'){		
				  	  	 //alert(campo+"->"+dencodeiso(xml.childNodes[i].childNodes[0].lastChild.nodeValue));
				  	  	 //alert(document.getElementById(campo).innerHTML);
				  	  	 var x = document.getElementById(campo)
				  	  	 if(x !=null){			  	  	 
				  	  	 document.getElementById(campo).innerHTML = dencodeiso(dencodeiso(vCData));
				  	  	 }  
				      } else {
				         if(vtipo=='BUTTON'){
				            //alert(campo+'->'+document.getElementById(campo));
							if(vcaption != null){
										//alert(document.getElementById(campo).className); 
							   document.getElementById(campo).caption = vcaption;
							}  
				            //document.getElementById(campo).style.visibility = vvisible;
				         }else{
				         	if(vtipo=='COMBOBOX'){
				         		var t=0;

				         		var xml2=xml.childNodes[i];
				         		var	l=xml2.childNodes.length;
				         		if(xml2.childNodes[t].childNodes.length>1){
				         		    //alert(campo+'->'+l);
					         		document.getElementById(campo).length = null;
									while( t < l) {
										//sltd = xml.childNodes[i].getAttribute('sltd');
										//if(!sltd) sltd = "";
							            //alert(t+'->'+dencodeiso(xml2.childNodes[t].childNodes[0].lastChild.nodeValue)+'->'+dencodeiso(xml2.childNodes[t].childNodes[1].lastChild.nodeValue));
										document.getElementById(campo).options[t] = new Option(dencodeiso(xml2.childNodes[t].childNodes[1].lastChild.nodeValue),dencodeiso(xml2.childNodes[t].childNodes[0].lastChild.nodeValue),"","");
										t++;
									}
				         		}
				         	    if(vvalue != null){
				         	     //alert(vvalue);
				         	      t=0;
				         	      //alert(vvalue+'->'+document.getElementById(campo).length);
				         	      while( t < document.getElementById(campo).length){
				         	        if(document.getElementById(campo).options[t].value == vvalue*1){
				         	           //alert(vvalue+'->'+document.getElementById(campo).options[t].value);
				         	           document.getElementById(campo).selectedIndex = t;
				         	           //document.getElementById(campo).text = 
				         	        }
				         	        t++;
				         	      }
				         	    }
				            	//alert(campo+'->'+document.getElementById(campo).selectedIndex);
				            	//document.getElementById(campo).selectedIndex = 0;
				         	}else{
				         	    if(vtipo=='FIELDENCRIPT'){
				         		    document.getElementById(campo).value = decrypt_str(dencodeiso(xml.childNodes[i].childNodes[0].lastChild.nodeValue));			      
				         		}else{
				         		   if(vtipo=='JS'){
			         		         var astr;
									 astr = eval(campo);
				         		   }else{
				         		     if(vtipo="FIELD"){
				         		       document.getElementById(campo).value = dencodeiso(xml.childNodes[i].childNodes[0].lastChild.nodeValue);			      
				         		     }else{
				         		     	if(vtipo=='FRAMENCRIPT'){
				         		     	   document.getElementById(campo).innerHTML = dencodeiso(decrypt_str(xml.childNodes[i].childNodes[0].lastChild.nodeValue));	  
				         		     	}
				         		     } 
				         		   }
				         		}
				         	}			         		      
				         }
				      }  
				}
			
			} 
 	        if(vvisible != null){
			  //alert(campo+'->'+document.getElementById(campo).visibility); 
			  document.getElementById(campo).style.visibility = vvisible; 
		    }    
			if(vclassname != null){
						//alert(document.getElementById(campo).className); 
			   document.getElementById(campo).className =vclassname;
			}  
			if(vdisabled == 'true'){
			   //alert(campo+' disabled='+vdisabled)
		 	   document.getElementById(campo).disabled = vdisabled;
		 	}else{
		 	   if(vdisabled == 'false'){
		 	     document.getElementById(campo).disabled = false;
		 	     //alert(campo+' disabled='+document.getElementById(campo).disabled)
		 	   }
		    } 	        
		    i++;
  
		}
	}
}
function dencodeiso(str){
	if(str!=null){
		if(str.length!=0){
              var t=0;
              var p=0;
              while(t>-1){
                t=str.indexOf('@',0+p);
                if(t>-1){
                   p = str.indexOf(';',t);
                   if(p>-1){
                      c = str.substr(t,(p+1) -t);
               	      newstr = searchajax(c);                      
               	      if(newstr!=c){
                         str = replace(str,c,newstr);
                         p=0
                       }
                  	  }else{
                  	     t=-1;
                  	  }
                    }
                 }
		    }
	}
	return str;
}
function searchajax(c){
    var p=0;
	var ajax=  [			
				['@mns;','±'],			
				['@blank;',' '],
				['@punto;','·'],
				['@/;','%'],
				['@#;','&'],
				['@:;','?'],
				['@.;','¿'],
				['@*;','¡'],
				['@=;','!'],
				['@-;','%'],
				['@cminlla;','\''],			
				['@cmilla;','\"'],			
				['@aacute;','á'],
				['@Aacute;','Á'],
				['@Eacute;','É'],
				['@eacute;','é'],
				['@Iacute;','Í'],
				['@iacute;','í'],
				['@Oacute;','Ó'],
				['@oacute;','ó'],
				['@Uacute;','Ú'],
				['@uacute;','ú'],
				['@Ntilde;','Ñ'],
				['@ntilde;','ñ'],
				['@leuro;','€'],
				['@anume;','ª'],
				['@onume;','º'],
				['@subcuadra;','²'],
				['@copyright;','®'],
				['@utilde;','`'],
				['@atilde;','´']]			
				
	var salida =false;
	for(p=0; p<ajax.length;p++){
	  if(ajax[p][0]==c){
	    return ajax[p][1];  
	  }
	}
	return c;
}
function encodeiso(cadena){
	if(cadena!=null){
		if(cadena.length!=0){
			cadena = replace(cadena,"·","@punto;")
			cadena = replace(cadena,"€","@leuro;")
			cadena = replace(cadena,"“","@Openh;")
			cadena = replace(cadena,"”","@Cpenh;")
			cadena = replace(cadena,'ª','@anume;');
			cadena = replace(cadena,'º','@onume;');
			cadena = replace(cadena,'Á','@Aacute;');
			cadena = replace(cadena,'á','@aacute;');
			cadena = replace(cadena,'É','@Eacute;');
			cadena = replace(cadena,'é','@eacute;');
			cadena = replace(cadena,'Í','@Iacute;');
			cadena = replace(cadena,'í','@iacute;');
			cadena = replace(cadena,'Ó','@Oacute;');
			cadena = replace(cadena,'ó','@oacute;');
			cadena = replace(cadena,'Ú','@Uacute;');
			cadena = replace(cadena,'ú','@uacute;');
			cadena = replace(cadena,'Ý','@Yacute;');
			cadena = replace(cadena,'ñ','@ntilde;');
			cadena = replace(cadena,'À','@Agrave;');
			cadena = replace(cadena,'à','@agrave;');
			cadena = replace(cadena,'È','@Egrave;');
			cadena = replace(cadena,'è','@egrave;');
			cadena = replace(cadena,'Ì','@Igrave;');
			cadena = replace(cadena,'ì','@igrave;');
			cadena = replace(cadena,'Ò','@Ograve;');
			cadena = replace(cadena,'ò','@ograve;');
			cadena = replace(cadena,'Ù','@Ugrave;');
			cadena = replace(cadena,'ù','@ugrave;');
			cadena = replace(cadena,'ý','@yacute;');
			cadena = replace(cadena,'Ñ','@Ntilde;');
			cadena = replace(cadena,'Â','@Acirc;');
			cadena = replace(cadena,'â','@acirc;');
			cadena = replace(cadena,'Ê','@Ecirc;');
			cadena = replace(cadena,'ê','@ecirc;');
			cadena = replace(cadena,'Î','@Icirc;');
			cadena = replace(cadena,'î','@icirc;');
			cadena = replace(cadena,'Ô','@Ocirc;');
			cadena = replace(cadena,'ô','@ocirc;');
			cadena = replace(cadena,'Û','@Ucirc;');
			cadena = replace(cadena,'û','@ucirc;');
			cadena = replace(cadena,'ÿ','@yuml;');
			cadena = replace(cadena,'Ç','@Ccedil;');
			cadena = replace(cadena,'Ä','@Auml;');
			cadena = replace(cadena,'ä','@auml;');
			cadena = replace(cadena,'Ë','@Euml;');
			cadena = replace(cadena,'ë','@euml;');
			cadena = replace(cadena,'Ï','@Iuml;');
			cadena = replace(cadena,'ï','@iuml;');
			cadena = replace(cadena,'Ö','@Ouml;');
			cadena = replace(cadena,'ö','@ouml;');
			cadena = replace(cadena,'Ü','@Uuml;');
			cadena = replace(cadena,'ü','@uuml;');
			cadena = replace(cadena,'ç','@ccedil;');
			cadena = replace(cadena,'Ã','@Atilde;');
			cadena = replace(cadena,'ã','@atilde;');
			cadena = replace(cadena,'Å','@Aring;');
			cadena = replace(cadena,'å','@aring;');
			cadena = replace(cadena,'Õ','@Otilde;');
			cadena = replace(cadena,'õ','@otilde;');
			cadena = replace(cadena,'&','@;');
			cadena = replace(cadena,'?','@:');
			cadena = replace(cadena,'¡','@*');
			cadena = replace(cadena,'²','@subcuadra;');

			
		}
	}
return cadena;
}

function replace(argvalue, x, y) {

  if ((x == y) || (parseInt(y.indexOf(x)) > -1)) {
    errmessage = "replace function error: \n";
    errmessage += "Second argument and third argument could be the same ";
    errmessage += "or third argument contains second argument.\n";
    errmessage += "This will create an infinite loop as it's replaced globally.";
    alert(errmessage);
    return false;
  }
    
  while (argvalue.indexOf(x) != -1) {
    var leading = argvalue.substring(0, argvalue.indexOf(x));
    var trailing = argvalue.substring(argvalue.indexOf(x) + x.length,argvalue.length);
    argvalue = leading + y + trailing;
  }

  return argvalue;

}



