// JavaScript Document


function GetXmlHttpObject(){
	var aVersions = [ "MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];

	if (window.XMLHttpRequest){
	// para IE7, Mozilla, Safari, etc: que usen el objeto nativo
		return new XMLHttpRequest();
	}else if (window.ActiveXObject){
	// de lo contrario utilizar el control ActiveX para IE5.x y IE6.x
		for (var i = 0; i < aVersions.length; i++) {
			try {
				var oXmlHttp = new ActiveXObject(aVersions[i]);
				return oXmlHttp;
			}catch (error) {
				//no necesitamos hacer nada especial
			}
		}
	}
}

function setCookie(cookieName,cookieValue,expires,path,domain,secure) { 
	document.cookie= escape(cookieName)+'='+escape(cookieValue)+(expires?'; EXPIRES='+expires.toGMTString():'')+(path?'; PATH='+path:'')+(domain?'; DOMAIN='+domain:'')+(secure?'; SECURE':''); 
}

function getCookie(cookieName) { 
	var cookieValue=""; 
	var posName=document.cookie.indexOf(escape(cookieName)+'='); 
	if (posName!=-1) { 
		var posValue=posName+(escape(cookieName)+'=').length; 
		var endPos=document.cookie.indexOf(';',posValue); 
		if (endPos!=-1) cookieValue=unescape(document.cookie.substring(posValue,endPos)); 
		else cookieValue=unescape(document.cookie.substring(posValue)); 
	}
	return cookieValue; 
}

function regresar(nombre,opcion,posarreglo){
	for (var i = 0; i < document.getElementById(nombre,posarreglo).length; i++){
		if (document.getElementById(nombre,posarreglo).options[i].value==opcion){
			document.getElementById(nombre,posarreglo).options[i].selected=true;
		}
	}
}

function MM_goToURL() { //v3.0 
	var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
	for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function verificarVacio(obj,mensaje){
	if(obj.value==""){
		obj.focus();
		document.getElementById("mensaje").innerHTML = mensaje;
		return true;
	}
	return false;
}

function numeroNoValido(obj){
	var valor = new Number(obj.value);
	var valor2 = new String(valor);
	var valor3 = new String(obj.value);
	if ((valor2.indexOf("NaN")!=-1) || (valor3.indexOf(".")!=-1)){
		document.getElementById("mensaje").innerHTML = "Cantidad no valida. Debe ser numrica.";
		obj.value="";
		obj.focus();
		return true;
	}
	return false;
}

function numeroPositivoNoValido(obj){
	var valor = new Number(obj.value);
	var valor2 = new String(valor);
	var valor3 = new String(obj.value);
	if ((valor<0) || (valor2.indexOf("NaN")!=-1) || (valor3.indexOf(".")!=-1)){
		document.getElementById("mensaje").innerHTML = "Cantidad no valida. Debe ser numrica y positiva.";
		obj.value="";
		obj.focus();
		return true;
	}
	return false;
}

function floatNoValido(obj){
	var valor = new Number(obj.value);
	var valor2 = new String(valor);
	var valor3 = new String(obj.value);
	if (valor2.indexOf("NaN")!=-1){
		document.getElementById("mensaje").innerHTML = "Cantidad no valida. Debe ser numrica.";
		obj.value="";
		obj.focus();
		return true;
	}
	return false;
}

function floatPositivoNoValido(obj){
	var valor = new Number(obj.value);
	var valor2 = new String(valor);
	var valor3 = new String(obj.value);
	if ((valor<0) || (valor2.indexOf("NaN")!=-1)){
		document.getElementById("mensaje").innerHTML = "Cantidad no valida. Debe ser numerica.";
		obj.value="";
		obj.focus();
		return true;
	}
	return false;
}

//obj = objeto a verificar
//a = limite inferior
//b = limite superior
//condicion = true dentro de valores a-b, false fuera de valores a -b 
function limiteNumericoAB(obj,a,b,condicion){
	var n = Number(obj.value);
	if(condicion){
		if(n>=a && n<=b) return false;
		document.getElementById("mensaje").innerHTML = "El valor debe estar comprendido entre "+a+" y "+b+". Verifique.";
		return true;
	} else {
		if(n<a || n>b) return false;
		document.getElementById("mensaje").innerHTML = "El valor debe ser menor que "+a+" o mayor que "+b+". Verifique.";
		return true;
	}
}

function loadjscssfile(filename, filetype){
 if (filetype=="js"){ //if filename is a external JavaScript file
  var fileref=document.createElement('script')
  fileref.setAttribute("type","text/javascript")
  fileref.setAttribute("src", filename)
 }
 else if (filetype=="css"){ //if filename is an external CSS file
  var fileref=document.createElement("link")
  fileref.setAttribute("rel", "stylesheet")
  fileref.setAttribute("type", "text/css")
  fileref.setAttribute("href", filename)
 }
 if (typeof fileref!="undefined")
  document.getElementsByTagName("head")[0].appendChild(fileref)
}






function llamarPagina(pag,donde){
	xmlHttp=GetXmlHttpObject();
	xmlHttp.onreadystatechange=function(){
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
			//alert("resp "+xmlHttp.responseText);
			document.getElementById(donde).innerHTML = xmlHttp.responseText;
			//	var funcion = new String(funcion);
			//alert(funcion+" "+donde);
		}
	}
	xmlHttp.open("GET",pag,true);
	xmlHttp.send(null);
}

function llamarPagina(pag,donde,funcion){
	xmlHttp=GetXmlHttpObject();
	xmlHttp.onreadystatechange=function(){
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
			//alert("resp "+xmlHttp.responseText);
			document.getElementById(donde).innerHTML = xmlHttp.responseText;
			//	var funcion = new String(funcion);
			//alert(funcion+" "+donde);
			if(funcion!=" ") setTimeout(""+funcion,1000);
		}
	}
	xmlHttp.open("GET",pag,true);
	xmlHttp.send(null);
}

function noVacio2(obj){
	if(obj.value==""){
		obj.focus();
		alert("No puede estar vacio");
		return false;
	}
	return true;
}

function numValido(obj){
	var valor=new Number(obj.value);
	var valor2 = new String(valor);
	var valor3 = new String(obj.value);
	//alert(valor3);
	if ( (valor<0) || (valor2.indexOf("NaN")!=-1) || (valor3.indexOf(".")!=-1)){
		alert("Cantidad no valida");		
		obj.value="";
		obj.focus();
		return false;
	}else return true;
}

function veriBSF(pregunta,valor){
	valor = new String(valor);
	tam = new Number(valor.length);
	ms1 = valor.substr(0,tam-2);
	ms2 = valor.substr(tam-2);
	ms3 = ms1+"."+ms2;
	ms4 = FloattoBSF(ms3);
	res = confirm(""+pregunta+"? "+ms4+" BsF.");
	if(res) return true;
	else return false;
}

function nadaToBSF(valor){
	valor = new String(valor);
	tam = new Number(valor.length);
	ms1 = valor.substr(0,tam-2);
	ms2 = valor.substr(tam-2);
	ms3 = ms1+"."+ms2;
	return FloattoBSF(ms3);
}

function bsfValido(obj){
	//alert ("entraBSF");
	valor=new Number(obj.value);
	var c;
	var valor2 = new String(obj.value);
	var tam = new Number(valor2.length);
	var posC = new Number(valor2.indexOf(","));
	var tieneC = false;
	if (valor2.indexOf(",")!=-1) tieneC= true;
	var tieneP = false;
	if (valor2.indexOf(".")!=-1) tieneP= true;
	//alert("Valor2="+valor2+"TieneC="+tieneC+" tC="+valor2.indexOf(",")+"TieneP="+tieneP+" tP="+valor2.indexOf("."));
	var bienF=true;
	var msg = "Formato no valido. Utilice el punto (.) como separador de miles y la coma (,) como separador de decimales.";
	if ((tieneC)&&(tieneP)){
		c = 4;
		for (var i=posC;i>-1;i--){
			//alert("Punto bien="+valor2.substr(i,1));
			if ((valor2.substr(i,1)==".")&&(c!=4)) {
				msg = msg+" Puntos en posicin incorrecta."; 
				bienF=false;
			}
			if (c==4) { c=0; }
			c++;
		}
		for (var i=0;i<tam;i++){
			//alert("Donde punto="+valor2.substr(i,1)+" Donde coma="+valor2.indexOf(","));
			if ((valor2.substr(i,1)==".")){
				if ((valor2.indexOf(",")<i)) {
					msg = msg+" Punto no debe estar despues de la coma."; 
					bienF=false;
				}
			}
		}
		c = 0;
		for (var i=0;i<tam;i++){
			//alert("Cuantas comas="+valor2.substr(i,1));
			if ((valor2.substr(i,1)==",")) { c++; }
			if (c>1) {
				msg = msg+" Ms de 1 coma.";
				bienF=false;
			}
		}
		if (valor2.indexOf(".")==0) {
			msg = msg+" No es necesario el punto."; 
			bienF=false;
		}
	} else if ((tieneC)&&(!tieneP)){
		c = 0;
		for (var i=0;i<tam;i++){
			if ((valor2.substr(i,1)==",")) c++;
			if (c>1) { msg = msg+" Ms de 1 coma."; bienF=false;}
		}
		if (posC>3) { msg= msg+" Es necesario el punto"; bienF=false;}
	 } else { bienF=false; }
	
	if (obj.value<0) {
		bienF=false;
		msg = "Cantidad negativa";
	}
	
	if (bienF) {
		return true;
	} else {
		obj.focus();
		alert(msg);
		return false;
	}
}

function posicionar(){
	var F = document.forms['form1'];
	for (var i=0;i<F.elements.length-1;i++){
		if(F.elements[i].value==""){
			F.elements[i].focus();
			return 0;
		}
	}
}



function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}







function limpiarM(men){
	este = new Number(men);
	este--;
	cambio = "mensaje"+men;
	//alert(cambio);
	document.getElementById(cambio).innerHTML= "";
}


function acentos(str){
	var st = new String(str);
	while(st.indexOf("&iexcl;")!=-1){
		n = st.indexOf("&iexcl;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+7);
		st = p1+"!"+p2;
	}
	while(st.indexOf("&ordm;")!=-1){
		n = st.indexOf("&ordm;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+6);
		st = p1+""+p2;
	}
	while(st.indexOf("&quot;")!=-1){
		n = st.indexOf("&quot;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+6);
		st = p1+"\""+p2;
	}
	while(st.indexOf("&eacute;")!=-1){
		n = st.indexOf("&eacute;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&aacute;")!=-1){
		n = st.indexOf("&aacute;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&iacute;")!=-1){
		n = st.indexOf("&iacute;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&oacute;")!=-1){
		n = st.indexOf("&oacute;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&uacute;")!=-1){
		n = st.indexOf("&uacute;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&Eacute;")!=-1){
		n = st.indexOf("&Eacute;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&Aacute;")!=-1){
		n = st.indexOf("&Aacute;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&Iacute;")!=-1){
		n = st.indexOf("&Iacute;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&Oacute;")!=-1){
		n = st.indexOf("&Oacute;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&Uacute;")!=-1){
		n = st.indexOf("&Uacute;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&ntilde;")!=-1){
		n = st.indexOf("&ntilde;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	while(st.indexOf("&Ntilde;")!=-1){
		n = st.indexOf("&Ntilde;");
		p1 = st.substring(0,n);
		p2 = st.substring(n+8);
		st = p1+""+p2;
	}
	return st;
}

function stateChanged(){
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
		document.getElementById(cambio).innerHTML=acentos(xmlHttp.responseText);
	}
}

function stateChanged2(){
//	alert("\""+cambio+"\"");
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
		document.getElementById(cambio,este).innerHTML=xmlHttp.responseText;
	}
}

function invertir(vari){
	//alert("vari "+vari);
	vari = new String(vari);
	t = "";
	cont = new Number(vari.length);
	//alert("cont "+cont);
	cont--;
	for (var i=vari.length-1;i>-1;i--){
		t = t+vari.substr(i,1);
		cont--;
	}
	//alert("t "+t);
	return t;
}

function zeros(vari){
	dondeC = t.indexOf(",");
	dc = new Number(dondeC);
	var hayc = false;
	//alert("vari "+vari);
	//alert("dc "+dc);
	switch (dondeC.toString()){
		case '-1':
			vari= "00,"+vari;
			break;
		case '0':
			vari= "00"+vari;
			break;
		case '1':
			vari= "0"+vari;
			break;
		case '2':
			break;
		default:
		/*	dec = new String(vari.substr(0,dc));
			dec = new String(invertir(dec));
			//alert("dec "+dec);
			ent = new String(vari.substr(dc+1));
			ent = new Number(invertir(ent));
			//alert("ente "+ent);
			sdec = new String(dec);
			//alert("sdec "+sdec);
			len = new Number(sdec.length);
			//alert("len "+len);
			for (var i=len-1;i>1;i--){
				//alert("i "+i);
				ult = new Number(sdec.substr(i,1));
				pri = new Number(sdec.substr(0,1));
				//alert(pri);
				if (pri==0) {
					//hayc = true;
					seg = new Number(sdec.substr(1,1));
					ter = new Number(sdec.substr(2,1));
					if (ter>=5){
						seg++;
					}
					dec = "0"+seg;
					break;
				} else hayc = false;
				//alert("ult "+ult);
				dec = new Number(sdec.substr(0,i));
				//alert("dec "+dec); //MOSTRAR REDONDEO
				if (ult>=5){
					v1 = new String(dec); temp = new String(v1.length);
					tp = new Number(temp.length);
					//alert("v11 "+temp);
					dec++;
					v2 = new String(dec); tempo = new String(v2.length);
					
					if (hayc) v2 = "0"+v2;
					//alert(v2);
					//alert("v22 "+tempo);
					if (strncmp(temp,tempo,tp)) sdec = new String(v2);
					else {
						//alert("entra");
						if (hayc){ sdec = new String(v2);}
						else{
						ent++;
						sdec = new String(v2);
						sdec = new String(sdec.substr(1));
						}
					}  
				} else sdec = new String(dec);
				//alert("sdec "+sdec);
			}
			//dec = new Number(sdec);
			//if (dec==100) {dec==0; ent++;}
			vari = ent+","+dec;
			vari= invertir(vari);
			vari = zeros(vari);*/
	}
	return vari;
}

function strncmp(v1, v2, l){
	for (var i=0;i<l;i++){
		t1 = v1.charCodeAt(i);
		t2 = v2.charCodeAt(i);
		if (t1!=t2) return false;
	}
	return true;
}

function FloattoBSF(cBsF){
	//alert(cBsF+" -");
	t = new String(cBsF); //0.3 S
	t = invertir(t); //3.0
	//alert(t+" +-");
	tN = new Number(cBsF);
	//alert(tN+" *");
	dondeC = t.indexOf(".");
	//alert(dondeC+" -+-");
	switch (dondeC.toString()){
		case '-1':
		case '0':
		case '1':
		case '2':
		case '3':
			tN = new Number(tN.toFixed(2));
		//	alert(tN+" *+");
			break;
		default:
		dc = new Number(dondeC);
		dec = new String(t.substr(0,dc));
		len = new Number(dec.length);
		len--;
		for (var i=len;i>1;i--){
			tN = new Number(tN.toFixed(i));
		}
	}
	t = tN.toString();
	//alert(t+" t");
	cBsF = t.replace(".",",");
	cBsF = invertir(cBsF);
	cBsF = zeros(cBsF);
	//alert(cBsF+" cBsF");
	dondeC = cBsF.indexOf(",");
	tamCant = cBsF.length;
	puntos= tamCant-dondeC;
	for (var i=dondeC+4;i<tamCant;i=i+4){
		v1 = cBsF.substr(0,i);
		otra = cBsF;
		v2 = otra.substr(i);
		cBsF = v1+"."+v2;
		tamCant = cBsF.length;
	}
	cBsF = invertir(cBsF);
	//alert(cBsF+" cBsF");
	return cBsF;
}

function alertkey(e) {
  if( !e ) {
    //if the browser did not pass the event information to the
    //function, we will have to obtain it from the event register
    if( window.event ) {
      //Internet Explorer
      e = window.event;
    } else {
      //total failure, we have no way of referencing the event
      return;
    }
  }
  /*if( typeof( e.keyCode ) == 'number'  ) {
    //DOM
	//alert("dom");
    e = e.keyCode;
  } else if( typeof( e.which ) == 'number' ) {
    //NS 4 compatible
    e = e.which;
  } else if( typeof( e.charCode ) == 'number'  ) {
    //also NS 6+, Mozilla 0.9+
	alert("mozi");
    e = e.charCode;
  } else {
    //total failure, we have no way of obtaining the key code
    return;
  }*/
  return e;
  window.alert('The key pressed has keycode ' + e +
    ' and is key ' + String.fromCharCode( e ) );
}

function fino( oName, oFrame, oDoc ) {
  if( !oDoc ) { if( oFrame ) { oDoc = oFrame.document; } else { oDoc = window.document; } }
  if( oDoc[oName] ) { return oDoc[oName]; } if( oDoc.all && oDoc.all[oName] ) { return oDoc.all[oName]; }
  if( oDoc.getElementById && oDoc.getElementById(oName) ) { return oDoc.getElementById(oName); }
  for( var x = 0; x < oDoc.forms.length; x++ ) { if( oDoc.forms[x][oName] ) { return oDoc.forms[x][oName]; } }
  for( var x = 0; x < oDoc.anchors.length; x++ ) { if( oDoc.anchors[x].name == oName ) { return oDoc.anchors[x]; } }
  for( var x = 0; document.layers && x < oDoc.layers.length; x++ ) {
    var theOb = MWJ_findObj( oName, null, oDoc.layers[x].document ); if( theOb ) { return theOb; } }
  if( !oFrame && window[oName] ) { return window[oName]; } if( oFrame && oFrame[oName] ) { return oFrame[oName]; }
  for( var x = 0; oFrame && oFrame.frames && x < oFrame.frames.length; x++ ) {
    var theOb = MWJ_findObj( oName, oFrame.frames[x], oFrame.frames[x].document ); if( theOb ) { return theOb; } }
  return null;
}

function keypres(e) {
if (((document.all)?e.keyCode:e.which)=="32"){
	alert("Caracteres no vlidos!")
	}
}

