function LNSajax(EFunctionOk, EFunctionError, EFunctionJs, Layer, url, postMethod) {
  var that=this;      
  this.updating = false;
  this.abort = function() {
    if (that.updating) {
      that.updating=false;
      that.AJAX.abort();
      that.AJAX=null;
    }
  }
  this.update = function(funcion, args) {
    if (that.updating) { return false; }
    that.AJAX = null;
    var reto=-1;
    var errormsg='';
    var ejec=0;                          
    if (window.XMLHttpRequest) {              
      that.AJAX=new XMLHttpRequest();            
    } else {                                  
      that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
    }                                             
    if (that.AJAX==null) {                             
      alert(LRMTmsg[2]+'....');
      return false;                            
    } else {
      that.AJAX.onreadystatechange = function() {  
        if (that.AJAX.readyState==4) {
	        var error=false;
		      reto=0;
	        try {
		        switch(that.AJAX.status) {
			        case 200:
			        	reto=1;
			        	break;
							case 400:
								txtResultadoError=LRMTmsg[3]+': '+that.AJAX.status+' '+LRMTmsg[4];
								break;
							case 401:
								txtResultadoError=LRMTmsg[3]+': '+that.AJAX.status+' '+LRMTmsg[5];
								break;
							case 403:
								txtResultadoError=LRMTmsg[3]+': '+that.AJAX.status+' '+LRMTmsg[6];
								break;
							case 404:
								txtResultadoError=LRMTmsg[3]+': '+that.AJAX.status+' '+LRMTmsg[7];
								break;
							default:
								txtResultadoError=LRMTmsg[3]+': '+that.AJAX.status+' '+LRMTmsg[8];
								break;
		        }
		      } catch (e) {
			      errormsg=e+'\n'+LRMTmsg[9];
		      }
		      if (reto==1) {
			      var i=that.limpiaresultado(that.AJAX.responseText);
			      switch(i) {
				      case 0:
				      case 2:
				      	reto=0;
				      	break;
				      case 1:
				      	reto=1;
				      	break;
				      case 3:
				      	reto=2;
				      	break;
				      case 4:
				      	reto=3;
				      	break;
			      }
		      }
          that.updating=false;                
          that.AJAX=null;
          switch(reto) {
	          case 0:
	          	that.resultadoError(txtResultadoError);
	          	break;
	          case 1:
	          	that.resultadoOk();
	          	break;
	          case 2:
	          	that.resultadoJs(txtResultadoJS);
	          	break;
	          case 3:
	          	document.getElementById(ElementId).innerHTML=txtResultadoHttp;
	          	that.resultadoOk();
	          	break;
          }
        }                                                      
      }
      
      that.updating = new Date();                              
      var uri=urlCall;
      if (uri.indexOf("?") == -1) uri += "?fnrnd=";
			else uri += "&fnrnd=";
			uri += that.updating.getTime();
		  var passData = "fn=" + escape(funcion);
		  for (i = 0; i < args.length-1; i+=2) {
				passData += "&" + args[i] + "=" + encodeURIComponent(args[i+1]);
			}
      if (/post/i.test(that.Metodo)) {
        that.AJAX.open("POST", uri, true);
        that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        that.AJAX.setRequestHeader("Content-Length", passData.length);
        that.AJAX.send(passData);
      } else {
        that.AJAX.open("GET", uri+'&'+passData, true);                             
        that.AJAX.send(null);                                         
      }              
      return true;                                             
    }                                                                           
  }
	this.limpiaresultado= function(a) {
		var z=a;
		var ini="";
		var fin="";
		var datos="";
		var largo=cmd[0].length;
		var r=0;
		if (z.length>largo) {
			ini=z.substring(0, largo);
			fin=z.substring(z.length-largo);
			datos=z.substring(largo,z.length-largo);
		} else {
			txtResultadoError=LRMTmsg[0]+'\n'+a;
		}
		if ((ini==cmd[0]) && (fin==cmd[1])) {
			txtResultadoHttp= datos;
			r=1;
		} else {
		if ((ini==cmd[2]) && (fin==cmd[3])) {
		 txtResultadoError= datos;
		 r=2;
		} else {
		 if ((ini==cmd[4]) && (fin==cmd[5])) {
		  txtResultadoJS= datos;
		  r=3;
		 } else {
		  if ((ini==cmd[6]) && (fin==cmd[7])) {
		   txtResultadoHttp= datos;
		   r=4;
		  } else {
		   txtResultadoError=LRMTmsg[0]+'\n'+a;
		  }
		 }
		}
		}
		return r;
	}
  this.resultadoJs= EFunctionJs || function () { };
  this.resultadoOk= EFunctionOk || function () { };
  this.resultadoError= EFunctionError || function () { };
	var ElementId= Layer;
  var urlCall = url;
  var Metodo = (typeof(metodo) == "undefined" || metodo== "") ?	"GET" : postMethod;
	var cmd = new Array('#LNSIRMTDaToS#','#LNSFRMTDaToS#',
											'#LNSIRMTErroR#','#LNSFRMTErroR#',
											'#LNSIRMTDaTJS#','#LNSFRMTDaTJS#',
											'#LNSIRMTDaTDI#','#LNSFRMTDaTDI#');
	var txtResultadoHttp='';
	var txtResultadoError='';
	var txtResultadoJS='';
}

LNSAjaxImg='/ajimg/progress.gif';
LNSwdAjaxImage = new Image();
LNSwdAjaxImage.src = LNSAjaxImg;

function mkdirlima(u1,u2,u3,d1,d2,d3,rlnk,msgst) {
 var x=new Array('"','@',"'");
 var d= u2 + u3 + u1 + x[1] + d3 + d1 + d2;
 var z="<a href=";
 z+=x[0] + "mailto:" + d + rlnk + x[0];
 z+=" onMouseOut=" + x[0] + "Stnor();return true" + x[0];
 z+=" onMouseOver=" + x[0] + "Stpon(" + x[2] + msgst + x[2] + "); return true" + x[0];
 z+=">" + d + "</a>";
 document.write(z);
}

function Stnor() {
 Stpon(stdefault);
}

function Stpon(Stmsg) {
 window.status=Stmsg;
}

function ventana(scrfile,nombre,ancho,alto) {
 var aaa="width=" +ancho+ ",height=" +alto+ ",toolbar=no,directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no,top=0,left=0";
 var x=window.open(scrfile,nombre,aaa);
 x.focus();
}

function ventanafix(scrfile,nombre,ancho,alto) {
 var aaa="width=" +ancho+ ",height=" +alto+ ",toolbar=no,directories=no,status=no,scrollbars=no,resizable=no,menubar=no,top=0,left=0";
 window.open(scrfile,nombre,aaa);
}

/* Funciones de Soporte Validación */

function trimDoublepace(e) {
	var xx = '  ';
	var re = new RegExp(xx, "g");
	var rx = /  /;
	var obj2 = ' ';
	var t=e.value;
	while (rx.test(t)) {
		t=t.replace(re, obj2);
	}
	e.value=t;
	return true;
}

function trimWhitespace(e) {
	var newSt  = '';
	var subst  = '';
	var str    = e.value;
	var beginningFound = false;
	for (var i = 0; i < str.length; i++) {
		if (str.charAt(i) != ' ' && str.charCodeAt(i) != 9) {
			if (subst != '') {
				newSt += subst;
				subst = '';
			}
			newSt += str.charAt(i);
			if (beginningFound == false) {
				beginningFound = true;
			}
		} else {
			if (beginningFound == true) subst += str.charAt(i);
		}
	}
	e.value = newSt;
	return true;
}

function isNumeric(str) {
	var obj = /[^\d]/;
	if (str.search(obj) == -1)  {
		return false;
	}
	return true;
}

function LNSamaystr(str) {
	return str.toUpperCase(str);
}

function LNSamay(e) {
	e.value=LNSamaystr(e.value);
}

function LNSaminstr(str) {
	return str.toLowerCase(str);
}

function LNSamin(e) {
	e.value=LNSaminstr(e.value);
}

function LNSEnumerochk(v) {
 var numero =  /^[0-9]+$/;
 return numero.test(v);
}

function LNSTestRE(v,ex) {
	 var miexpr=new RegExp("^"+ex);
	 return miexpr.test(v);
}

function LNSgetRBSValue(e) {
 var r='';
 for(i=0;i<e.length;i++) {
  if(e[i].checked) {
	 r=e[i].value;
	 i+=e.length;
  }
 }
 return r;
}

function LNSvalidaAMD(a1,a2,a3) {
	var dayarray=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	
	if (!LNSEnumerochk(a1)) return false;
	if (!LNSEnumerochk(a2)) return false;
	if (!LNSEnumerochk(a3)) return false;
	
	var anio=parseInt(a1,10);
	var dia=parseInt(a3,10);
	var mes=parseInt(a2,10);
	if ((mes < 1) || (mes > 12)) {
		return false;
	}
	if (anio % 100 == 0) {
		if (anio % 400 == 0) {
			dayarray[2]=29;
		}
	} else {
		if (anio % 4 == 0) {
			dayarray[2]=29;
		}
	}
	if ((dia < 1) || (dia > dayarray[mes] )) {
		return false;
	}
	return true;
}
/*final Funciones Soporte de Validación */

/* Funciones de Validación */

function LNSvalidaFecha(f,d,h) {
	if (f.length != 10 ) {
		alert(LNSvalidaFechaMsg[0]);
		return false;
	}
	if (f.charAt(4) != '-') {
		alert(LNSvalidaFechaMsg[1]);
		return false;
	}
	if (f.charAt(7) != '-') {
		alert(LNSvalidaFechaMsg[1]);
		return false;
	}
	var aa=f.charAt(0)+f.charAt(1)+f.charAt(2)+f.charAt(3);
	var mm=f.charAt(5)+f.charAt(6);
	var dd=f.charAt(8)+f.charAt(9);
	if (isNumeric(aa)) {
		alert(LNSvalidaFechaMsg[2]);
		return false;
	}
	if (isNumeric(mm)) {
		alert(LNSvalidaFechaMsg[3]);
		return false;
	}
	if (isNumeric(dd)) {
		alert(LNSvalidaFechaMsg[4]);
		return false;
	}
	if (!LNSvalidaAMD(aa,mm,dd)) {
		return false;
	}
	var xd=d.charAt(0)+d.charAt(1)+d.charAt(2)+d.charAt(3)+'-'+d.charAt(4)+d.charAt(5)+'-'+d.charAt(6)+d.charAt(7);
	var xh=h.charAt(0)+h.charAt(1)+h.charAt(2)+h.charAt(3)+'-'+h.charAt(4)+h.charAt(5)+'-'+h.charAt(6)+h.charAt(7);
	var fd= parseInt(d,10);
	var fh= parseInt(h,10);
	var fac= parseInt(aa+mm+dd,10);
	if ((fac < fd) || (fac > fh )) {
		alert(LNSvalidaFechaMsg[5] + ' '+xd+' y '+xh);
		return false;
	}
	return true;
}


function LNSuspacios(e) {
 trimDoublepace(e);
 trimWhitespace(e);
 LNSamay(e);
}

function LNSlspacios(e) {
 trimDoublepace(e);
 trimWhitespace(e);
 LNSamin(e);
}

function LNSXspacios(e) {
 trimDoublepace(e);
 trimWhitespace(e);
}

function LNSEnumero(e) {
 if (!LNSEnumerochk(e.value)) {
  e.value='';
  return false;
 }
 return true;
}

function LNSEnumeroR(e,mi,ma) {
 if (!LNSEnumerochk(e.value)) {
  e.value='';
  return false;
 }
 if ((e.value>= mi) && (e.value<= ma)) return true;
 e.value='';
 return false;
}

function LNStestA9(e,lmin,lmax,msg) {
 var reto=false;
 if(e.value.length > 0) {
   var charpos = e.value.search("[^A-Za-z0-9]");
   if (charpos < 0) {
    if (e.value.length >= lmin && e.value.length <= lmax) reto=true;
   }
 }
 if (!reto) alert(msg);
 return reto;
}

function LNStestA9C(e) {
 if(e.value.length > 0) {
	 var LNSclave =  /^[0-9a-z]{5,10}/;
	 LNSamin(e);
   var charpos = e.value.search("[^A-Za-z0-9]");
   if (!LNSclave.test(e.value)) {
	    e.value='';
  	  return false;
   } else {
	   return true;
   }
 }
 return true;
}

function LNStestA9C2(e) {
 if(e.value.length > 0) {
	 var LNSclave =  /^[0-9a-z]{5,10}/;
	 LNSamin(e);
   var charpos = e.value.search("[^A-Za-z0-9]");
   if (!LNSclave.test(e.value)) {
	    e.value='';
  	  return false;
   } else {
	   return true;
   }
 }
 return false;
}

function LNStestUC(e,lmin,lmax,msg) {
 var reto=false;
 if(e.value.length > 0) {
   var charpos = e.value.search("[^a-z_]");
   if (charpos < 0) {
    if (e.value.length >= lmin && e.value.length <= lmax) reto=true;
   }
 }
 if (!reto) alert(msg);
 return reto;
}

function LNScheckdo(a) {
	var xxt = 'HTTP://';
	if (a.search(xxt)>-1) return false;
	xxt= 'CONTENT-TRANSFER-ENCODING';
	if (a.search(xxt)>-1) return false;
	xxt= 'CONTENT-TYPE';
	if (a.search(xxt)>-1) return false;
	xxt= 'BCC:';
	if (a.search(xxt)>-1) return false;
	return true;
}

function LnsemailCheck(emailStr) {
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|es|tv|us|ws)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return false;
		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return false;
		}
	}
	if (user.match(userPat)==null) {
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false;
			}
		}
		return true;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return false;
		}
	}
	
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return false;
	}
	
	if (len<2) {
		return false;
	}
	return true;
}

function LnsTestMail(e) {
	LNSlspacios(e);
	if (!LnsemailCheck(e.value)) {
		return false;
	}
	return true;
}

/*final Funciones de Validación */
function getObj(name) {
	if (document.getElementById) {
		return document.getElementById(name).style;
	} else {
		if (document.all) {
			return document.all[name].style;
		} else {
			if (document.layers) {
				return document.layers[name];
			}
		}
	}
	return false;
}

function LNSswitchDiv(a,b) {
	var j1=getObj(a);
	var j2=getObj(b);
	j1.display = '';
	j2.display = 'none';
}

function LNSVisualiza(a,b) {
	var j1=getObj(a);
	j1.display = b;
}

var LNSVerBA=0;
function VerBA() {
	var tt=(LNSVerBA==0) ? 'block' : 'none';
	LNSVisualiza('busavan',tt);
	LNSVerBA=(LNSVerBA==0) ? 1 : 0;
}

function Form_Buscar2(tf) {
	return false;
}

function LNSafavoritos(){
	if ((navigator.appName=="Microsoft Internet Explorer") && (parseInt(navigator.appVersion)>=4)) {
	var url="http://www.profesionalesyempresarios.com/";
	var titulo="ProfesionalesyEmpresarios.com";
	window.external.AddFavorite(url,titulo);
	}	else {
		if(navigator.appName == "Netscape")
			LNSwd.Dialogo.alert("En su navegador debe presionar Crtl+D para agregar este sitio en sus Favoritos");
	}
}

function LNSpagini(objk,direccion){
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion)>3)){
		objk.style.behavior="url(#default#homepage)";
		objk.setHomePage(direccion);
	}
	else{
		LNSwd.Dialogo.alert("Su navegador no dispone de esta opción");
	}
}
LNSAjaxImg='/ajimg/progress.gif';
LNSAjaxImgClose='/ajimg/close.png';
LNSwdAjaxImage = new Image();
LNSwdAjaxImage.src = LNSAjaxImg;
LNSwdAjaxImageClose = new Image();
LNSwdAjaxImageClose.src = LNSAjaxImgClose;
