function createREQ() {
try {
     req = new XMLHttpRequest(); /* p.e. Firefox */
     } catch(err1) {
       try {
       req = new ActiveXObject('Msxml2.XMLHTTP'); /* algunas versiones IE */
       } catch (err2) {
         try {
         req = new ActiveXObject("Microsoft.XMLHTTP"); /* algunas versiones IE */
         } catch (err3) {
          req = false;
         }
       }
     }
     return req;
}
function requestGET(url, query, req) {
	myRand=parseInt(Math.random()*99999999);
	req.open("GET",url+'?'+'query'+'&rand='+myRand,true);
	req.send(null);
}
function requestPOST(url, query, req) {
	req.open("POST", url,true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.send(query);
}
function doCallback(callback,item) {
	eval(callback + '(item)');
}

function doAjax(url,query,callback,reqtype,getxml) {
	// crea la instancia del objeto XMLHTTPRequest 
	var myreq = createREQ();
	
	myreq.onreadystatechange = function() {	
	if(myreq.readyState == 4) {
	   if(myreq.status == 200) {

		  var item = myreq.responseText;
		  if(getxml==1) {
			 item = myreq.responseXML;
		  }
		  doCallback(callback, item);
		}
	  }
	}
	if(reqtype=='post') {
		requestPOST(url,query,myreq);
	} else {
		requestGET(url,query,myreq);
	}
}

//Extension Abel
//Esto hay que ejecutarlo justo antes de hacer el serialize
function quitaTildes(){
	var Input=document.getElementsByTagName("input");
	for (var i=0; i < Input.length ; i++){
		if (Input[i].id){
			try {
				$(Input[i].id).setAttribute('maxAnt', $(Input[i].id).maxLength);
				$(Input[i].id).setAttribute('maxLength', 1000);//agrando el maximo
			} catch(e){
				//no se ha podido aumentar el length	
			}
			Input[i].value=quitaTildesCampo(Input[i].value);
		}
	}
	var textarea=document.getElementsByTagName("textarea"); 
	for (var i=0; i < textarea.length ; i++){
		textarea[i].value=quitaTildesCampo(textarea[i].value);
	}
}
//Esto hay que ejecutarlo justo despues
function ponTildes(){
	var Input=document.getElementsByTagName("input");
	for (var i=0; i < Input.length ; i++){
		if (Input[i].id){
			try {
				$(Input[i].id).setAttribute('maxLength', $(Input[i].id).getAttribute('maxAnt'));
			} catch(e){
				//no se ha podido restaurar el length	
			}		
			
			Input[i].value=ponTildesCampo(Input[i].value);
		}
	}
	var textarea=document.getElementsByTagName("textarea");
	for (var i=0; i < textarea.length ; i++){
		textarea[i].value=ponTildesCampo(textarea[i].value);
	}	
}/*
function quitaTildes(){
	var Input=document.getElementsByTagName("input");
	for (var i=0; i < Input.length ; i++){
		Input[i].value=quitaTildesCampo(Input[i].value);
	}
	var textarea=document.getElementsByTagName("textarea");
	for (var i=0; i < textarea.length ; i++){
		textarea[i].value=quitaTildesCampo(textarea[i].value);
	}
}
//Esto hay que ejecutarlo justo despues
function ponTildes(){
	var Input=document.getElementsByTagName("input");
	for (var i=0; i < Input.length ; i++){
		Input[i].value=ponTildesCampo(Input[i].value);
	}
	var textarea=document.getElementsByTagName("textarea");
	for (var i=0; i < textarea.length ; i++){
		textarea[i].value=ponTildesCampo(textarea[i].value);
	}	
}*/
function quitaTildesCampo(c){
	c=c.replace(/'/g,"`");
	c=c.replace(/&/g,"&#38;");
	c=c.replace(/"/g,"&#34;");
	c=c.replace(/€/g,"&#128;");
	c=c.replace(//g,"&#129;");
	c=c.replace(/‚/g,"&#130;");
	c=c.replace(/ƒ/g,"&#131;");
	c=c.replace(/„/g,"&#132;");
	c=c.replace(/…/g,"&#133;");
	c=c.replace(/†/g,"&#134;");
	c=c.replace(/‡/g,"&#135;");
	c=c.replace(/ˆ/g,"&#136;");
	c=c.replace(/‰/g,"&#137;");
	c=c.replace(/Š/g,"&#138;");
	c=c.replace(/‹/g,"&#139;");
	c=c.replace(/Œ/g,"&#140;");
	c=c.replace(//g,"&#141;");
	c=c.replace(/Ž/g,"&#142;");
	c=c.replace(//g,"&#143;");
	c=c.replace(//g,"&#144;");
	c=c.replace(/‘/g,"&#145;");
	c=c.replace(/’/g,"&#146;");
	c=c.replace(/“/g,"&#147;");
	c=c.replace(/”/g,"&#148;");
	c=c.replace(/•/g,"&#149;");
	c=c.replace(/–/g,"&#150;");
	c=c.replace(/—/g,"&#151;");
	c=c.replace(/˜/g,"&#152;");
	c=c.replace(/™/g,"&#153;");
	c=c.replace(/š/g,"&#154;");
	c=c.replace(/›/g,"&#155;");
	c=c.replace(/œ/g,"&#156;");
	c=c.replace(//g,"&#157;");
	c=c.replace(/ž/g,"&#158;");
	c=c.replace(/Ÿ/g,"&#159;");
	c=c.replace(/¡/g,"&#161;");
	c=c.replace(/¢/g,"&#162;");
	c=c.replace(/£/g,"&#163;");
	c=c.replace(/¤/g,"&#164;");
	c=c.replace(/¥/g,"&#165;");
	c=c.replace(/¦/g,"&#166;");
	c=c.replace(/§/g,"&#167;");
	c=c.replace(/¨/g,"&#168;");
	c=c.replace(/©/g,"&#169;");
	c=c.replace(/ª/g,"&#170;");
	c=c.replace(/«/g,"&#171;");
	c=c.replace(/¬/g,"&#172;");
	c=c.replace(/­/g,"&#173;");
	c=c.replace(/®/g,"&#174;");
	c=c.replace(/¯/g,"&#175;");
	c=c.replace(/°/g,"&#176;");
	c=c.replace(/±/g,"&#177;");
	c=c.replace(/²/g,"&#178;");
	c=c.replace(/³/g,"&#179;");
	c=c.replace(/´/g,"&#180;");
	c=c.replace(/µ/g,"&#181;");
	c=c.replace(/¶/g,"&#182;");
	c=c.replace(/·/g,"&#183;");
	c=c.replace(/¸/g,"&#184;");
	c=c.replace(/¹/g,"&#185;");
	c=c.replace(/º/g,"&#186;");
	c=c.replace(/»/g,"&#187;");
	c=c.replace(/¼/g,"&#188;");
	c=c.replace(/½/g,"&#189;");
	c=c.replace(/¾/g,"&#190;");
	c=c.replace(/¿/g,"&#191;");
	c=c.replace(/À/g,"&#192;");
	c=c.replace(/Á/g,"&#193;");
	c=c.replace(/Â/g,"&#194;");
	c=c.replace(/Ã/g,"&#195;");
	c=c.replace(/Ä/g,"&#196;");
	c=c.replace(/Å/g,"&#197;");
	c=c.replace(/Æ/g,"&#198;");
	c=c.replace(/Ç/g,"&#199;");
	c=c.replace(/È/g,"&#200;");
	c=c.replace(/É/g,"&#201;");
	c=c.replace(/Ê/g,"&#202;");
	c=c.replace(/Ë/g,"&#203;");
	c=c.replace(/Ì/g,"&#204;");
	c=c.replace(/Í/g,"&#205;");
	c=c.replace(/Î/g,"&#206;");
	c=c.replace(/Ï/g,"&#207;");
	c=c.replace(/Ð/g,"&#208;");
	c=c.replace(/Ñ/g,"&#209;");
	c=c.replace(/Ò/g,"&#210;");
	c=c.replace(/Ó/g,"&#211;");
	c=c.replace(/Ô/g,"&#212;");
	c=c.replace(/Õ/g,"&#213;");
	c=c.replace(/Ö/g,"&#214;");
	c=c.replace(/×/g,"&#215;");
	c=c.replace(/Ø/g,"&#216;");
	c=c.replace(/Ù/g,"&#217;");
	c=c.replace(/Ú/g,"&#218;");
	c=c.replace(/Û/g,"&#219;");
	c=c.replace(/Ü/g,"&#220;");
	c=c.replace(/Ý/g,"&#221;");
	c=c.replace(/Þ/g,"&#222;");
	c=c.replace(/ß/g,"&#223;");
	c=c.replace(/à/g,"&#224;");
	c=c.replace(/á/g,"&#225;");
	c=c.replace(/â/g,"&#226;");
	c=c.replace(/ã/g,"&#227;");
	c=c.replace(/ä/g,"&#228;");
	c=c.replace(/å/g,"&#229;");
	c=c.replace(/æ/g,"&#230;");
	c=c.replace(/ç/g,"&#231;");
	c=c.replace(/è/g,"&#232;");
	c=c.replace(/é/g,"&#233;");
	c=c.replace(/ê/g,"&#234;");
	c=c.replace(/ë/g,"&#235;");
	c=c.replace(/ì/g,"&#236;");
	c=c.replace(/í/g,"&#237;");
	c=c.replace(/î/g,"&#238;");
	c=c.replace(/ï/g,"&#239;");
	c=c.replace(/ð/g,"&#240;");
	c=c.replace(/ñ/g,"&#241;");
	c=c.replace(/ò/g,"&#242;");
	c=c.replace(/ó/g,"&#243;");
	c=c.replace(/ô/g,"&#244;");
	c=c.replace(/õ/g,"&#245;");
	c=c.replace(/ö/g,"&#246;");
	c=c.replace(/÷/g,"&#247;");
	c=c.replace(/ø/g,"&#248;");
	c=c.replace(/ù/g,"&#249;");
	c=c.replace(/ú/g,"&#250;");
	c=c.replace(/û/g,"&#251;");
	c=c.replace(/ü/g,"&#252;");
	c=c.replace(/ý/g,"&#253;");
	c=c.replace(/þ/g,"&#254;");
	c=c.replace(/ÿ/g,"&#255;");

	return c;
}

function ponTildesCampo(c){
	c=c.replace(/&#38;/g,"&");
	c=c.replace(/&#34;/g,'"');
	c=c.replace(/&#128;/g,"€");
	c=c.replace(/&#129;/g,"");
	c=c.replace(/&#130;/g,"‚");
	c=c.replace(/&#131;/g,"ƒ");
	c=c.replace(/&#132;/g,"„");
	c=c.replace(/&#133;/g,"…");
	c=c.replace(/&#134;/g,"†");
	c=c.replace(/&#135;/g,"‡");
	c=c.replace(/&#136;/g,"ˆ");
	c=c.replace(/&#137;/g,"‰");
	c=c.replace(/&#138;/g,"Š");
	c=c.replace(/&#139;/g,"‹");
	c=c.replace(/&#140;/g,"Œ");
	c=c.replace(/&#141;/g,"");
	c=c.replace(/&#142;/g,"Ž");
	c=c.replace(/&#143;/g,"");
	c=c.replace(/&#144;/g,"");
	c=c.replace(/&#145;/g,"‘");
	c=c.replace(/&#146;/g,"’");
	c=c.replace(/&#147;/g,"“");
	c=c.replace(/&#148;/g,"”");
	c=c.replace(/&#149;/g,"•");
	c=c.replace(/&#150;/g,"–");
	c=c.replace(/&#151;/g,"—");
	c=c.replace(/&#152;/g,"˜");
	c=c.replace(/&#153;/g,"™");
	c=c.replace(/&#154;/g,"š");
	c=c.replace(/&#155;/g,"›");
	c=c.replace(/&#156;/g,"œ");
	c=c.replace(/&#157;/g,"");
	c=c.replace(/&#158;/g,"ž");
	c=c.replace(/&#159;/g,"Ÿ");
	c=c.replace(/&#161;/g,"¡");
	c=c.replace(/&#162;/g,"¢");
	c=c.replace(/&#163;/g,"£");
	c=c.replace(/&#164;/g,"¤");
	c=c.replace(/&#165;/g,"¥");
	c=c.replace(/&#166;/g,"¦");
	c=c.replace(/&#167;/g,"§");
	c=c.replace(/&#168;/g,"¨");
	c=c.replace(/&#169;/g,"©");
	c=c.replace(/&#170;/g,"ª");
	c=c.replace(/&#171;/g,"«");
	c=c.replace(/&#172;/g,"¬");
	c=c.replace(/&#173;/g,"­");
	c=c.replace(/&#174;/g,"®");
	c=c.replace(/&#175;/g,"¯");
	c=c.replace(/&#176;/g,"°");
	c=c.replace(/&#177;/g,"±");
	c=c.replace(/&#178;/g,"²");
	c=c.replace(/&#179;/g,"³");
	c=c.replace(/&#180;/g,"´");
	c=c.replace(/&#181;/g,"µ");
	c=c.replace(/&#182;/g,"¶");
	c=c.replace(/&#183;/g,"·");
	c=c.replace(/&#184;/g,"¸");
	c=c.replace(/&#185;/g,"¹");
	c=c.replace(/&#186;/g,"º");
	c=c.replace(/&#187;/g,"»");
	c=c.replace(/&#188;/g,"¼");
	c=c.replace(/&#189;/g,"½");
	c=c.replace(/&#190;/g,"¾");
	c=c.replace(/&#191;/g,"¿");
	c=c.replace(/&#192;/g,"À");
	c=c.replace(/&#193;/g,"Á");
	c=c.replace(/&#194;/g,"Â");
	c=c.replace(/&#195;/g,"Ã");
	c=c.replace(/&#196;/g,"Ä");
	c=c.replace(/&#197;/g,"Å");
	c=c.replace(/&#198;/g,"Æ");
	c=c.replace(/&#199;/g,"Ç");
	c=c.replace(/&#200;/g,"È");
	c=c.replace(/&#201;/g,"É");
	c=c.replace(/&#202;/g,"Ê");
	c=c.replace(/&#203;/g,"Ë");
	c=c.replace(/&#204;/g,"Ì");
	c=c.replace(/&#205;/g,"Í");
	c=c.replace(/&#206;/g,"Î");
	c=c.replace(/&#207;/g,"Ï");
	c=c.replace(/&#208;/g,"Ð");
	c=c.replace(/&#209;/g,"Ñ");
	c=c.replace(/&#210;/g,"Ò");
	c=c.replace(/&#211;/g,"Ó");
	c=c.replace(/&#212;/g,"Ô");
	c=c.replace(/&#213;/g,"Õ");
	c=c.replace(/&#214;/g,"Ö");
	c=c.replace(/&#215;/g,"×");
	c=c.replace(/&#216;/g,"Ø");
	c=c.replace(/&#217;/g,"Ù");
	c=c.replace(/&#218;/g,"Ú");
	c=c.replace(/&#219;/g,"Û");
	c=c.replace(/&#220;/g,"Ü");
	c=c.replace(/&#221;/g,"Ý");
	c=c.replace(/&#222;/g,"Þ");
	c=c.replace(/&#223;/g,"ß");
	c=c.replace(/&#224;/g,"à");
	c=c.replace(/&#225;/g,"á");
	c=c.replace(/&#226;/g,"â");
	c=c.replace(/&#227;/g,"ã");
	c=c.replace(/&#228;/g,"ä");
	c=c.replace(/&#229;/g,"å");
	c=c.replace(/&#230;/g,"æ");
	c=c.replace(/&#231;/g,"ç");
	c=c.replace(/&#232;/g,"è");
	c=c.replace(/&#233;/g,"é");
	c=c.replace(/&#234;/g,"ê");
	c=c.replace(/&#235;/g,"ë");
	c=c.replace(/&#236;/g,"ì");
	c=c.replace(/&#237;/g,"í");
	c=c.replace(/&#238;/g,"î");
	c=c.replace(/&#239;/g,"ï");
	c=c.replace(/&#240;/g,"ð");
	c=c.replace(/&#241;/g,"ñ");
	c=c.replace(/&#242;/g,"ò");
	c=c.replace(/&#243;/g,"ó");
	c=c.replace(/&#244;/g,"ô");
	c=c.replace(/&#245;/g,"õ");
	c=c.replace(/&#246;/g,"ö");
	c=c.replace(/&#247;/g,"÷");
	c=c.replace(/&#248;/g,"ø");
	c=c.replace(/&#249;/g,"ù");
	c=c.replace(/&#250;/g,"ú");
	c=c.replace(/&#251;/g,"û");
	c=c.replace(/&#252;/g,"ü");
	c=c.replace(/&#253;/g,"ý");
	c=c.replace(/&#254;/g,"þ");
	c=c.replace(/&#255;/g,"ÿ");
	return c;
}

function Trim(s) {
  if (!s || s=="") return "";
  while ((s.charAt(0)==' ') || (s.charAt(0)=='\n') || (s.charAt(0,1)=='\r')) s=s.substring(1,s.length);
  while ((s.charAt(s.length-1)==' ') || (s.charAt(s.length-1)=='\n') || (s.charAt(s.length-1)=='\r')) s=s.substring(0,s.length-1);
  return s;
}

function quitaTildesPruebas(){
	var Input=document.getElementsByTagName("input");
	for (var i=0; i < Input.length ; i++){
		if (Input[i].id){
			try {			
				$(Input[i].name).setAttribute('maxAnt', $(Input[i].name).maxLength);
				$(Input[i].name).setAttribute('maxLength', 1000);//agrando el maximo
			} catch(e){
				//no se ha podido aumentar el length	
				alert('No se puede aumentar: ' + Input[i].id + ' ' +Input[i].name);
			}			
			Input[i].value=quitaTildesCampo(Input[i].value);
		}
	}
	var textarea=document.getElementsByTagName("textarea"); 
	for (var i=0; i < textarea.length ; i++){
		alert(textarea[i].value);
		textarea[i].value=quitaTildesCampo(textarea[i].value);
	}
}

