/*
AUTOR: Eduardo Alemany Vicens
FECHA: 10/09/2003
Funciones para aplicar una máscara a un campo texto. ejemplo 'nn-nn'
Tomando como exemplo la mascara de arriba. Cuando el usuário escriba 8888
en el campo, será aplicada a la máscara
y el valor del campo será 88-88. El evento que llamará a la funcion sera "ONKEYPRESS".

Valores fijos de mascara:
Para referenciar números, caracter 'n'
Para referenciar caracteres, caracter 'c'.
Para referenciar Mayusculas, caracter 'M'
Para referenciar minusculas, caracter 'm'
Para referenciar guion, caracter '-'
Para referenciar separador de fecha, caracter '/'
Para referenciar separador de hora, caracter ':'
Para referenciar punto decimal, caracter '.'
Para referenciar coma, caracter ','
Para referenciar espacio, caracter ' '
*/


function mascara(Campo,teclapres,masc) { 
    //pegando el tamaño del texto de la caja de texto con delay de -1 no event 
    //o sea el último caracter que fue tecleado no sera contado. 
    strtext = Campo.value 
    tamtext = strtext.length 
    //pegando el tamaño de la mascara
    tammask = masc.length 
    //creando un array para guardar cada caracterer de la máscara 
    arrmask = new Array(tammask)     
    //copiando los caracteres para el vector 
    for (var i = 0 ; i < tammask; i++){ 
        arrmask[i] = masc.slice(i,i+1) 
    } 

   //Para capturar los eventos en el netscape!
   var isNS4 = (navigator.appName=="Netscape")?1:0;

    //Empezando el trabajo sucio 
	if (arrmask[tamtext]=="n") {
	   if (!isNS4) {
		if (teclapres.keyCode>=48 && teclapres.keyCode<=57 && (!event.altKey && !event.shiftKey)) {
		} else {
		   if (teclapres.keyCode!=8 && teclapres.keyCode!=9 && teclapres.keyCode!=13) { Event_nulo(Campo,strtext)  }
		}  
	   } else { //Es netscape
		if (teclapres.which>=48 && teclapres.which<=57 && (!event.altKey && !event.shiftKey)) {
		} else {
		   if (teclapres.which!=8 && teclapres.which!=9 && teclapres.which!=13) { return Event_nulo(Campo,strtext); }
		}
	   }//FIN else netscape
	}//FIN if numero
	if (arrmask[tamtext]=="c") {
	   if (!isNS4) {
		if ((teclapres.keyCode>=97 && teclapres.keyCode<=122) || (teclapres.keyCode==241) || (teclapres.keyCode>=65 && teclapres.keyCode<=90) || (teclapres.keyCode==192) && (!event.altKey)) {
		} else {
		   if (teclapres.keyCode!=8 && teclapres.keyCode!=9 && teclapres.keyCode!=13) { Event_nulo(Campo,strtext)  }
		}
	   } else { //Es netscape
		if (((teclapres.which>=97 && teclapres.which<=122) || (teclapres.which==241) || (teclapres.which>=65 && teclapres.which<=90) || (teclapres.which==192)) && (!event.altKey)) {
		} else {
		   if (teclapres.which!=8 && teclapres.which!=9 && teclapres.which!=13) { return Event_nulo(Campo,strtext);  }
		}
	   }//FIN else netscape
	}//FIN if caracter
	
	if ((arrmask[tamtext]!="n") && (arrmask[tamtext]!="c")) {
	    if (!isNS4) {
		if ((arrmask[tamtext + 1]=="n") && (teclapres.keyCode>=48 && teclapres.keyCode<=57)) {
		   Organiza_Casa(Campo,arrmask[tamtext],teclapres.keyCode,strtext)
		} else {
	    	   if ((arrmask[tamtext + 1]=="c") && ((teclapres.keyCode>=97 && teclapres.keyCode<=122) || (teclapres.keyCode==241) || (teclapres.keyCode>=65 && teclapres.keyCode<=90) || (teclapres.keyCode==192)) && (!event.altKey)) {			
			   Organiza_Casa(Campo,arrmask[tamtext],teclapres.keyCode,strtext)
		   } else {
			if (teclapres.keyCode!=8 && teclapres.keyCode!=9 && teclapres.keyCode!=13) { Event_nulo(Campo,strtext)  }
		   }
		}
	     } else { //Es netscape
		//alert ("masc +1: "+ arrmask[tamtext + 1]+" | Cod. tecla: "+teclapres.which);
		if ((arrmask[tamtext + 1]=="n") && (teclapres.which>=48 && teclapres.which<=57)) {
		   Organiza_Casa(Campo,arrmask[tamtext],teclapres.which,strtext);
		} else {
		//alert ("masc +1: "+ arrmask[tamtext + 1]+" | Cod. tecla: "+teclapres.which+" | Mascara actual: "+arrmask[tamtext]);
	    	   if ((arrmask[tamtext + 1]=="c") && ((teclapres.which>=97 && teclapres.which<=122) || (teclapres.which==241) || (teclapres.which>=65 && teclapres.which<=90) || (teclapres.which==192))) {				
			   Organiza_Casa(Campo,arrmask[tamtext],teclapres.which,strtext);
		   } else {
			if (teclapres.which!=8 && teclapres.which!=9 && teclapres.which!=13) { return Event_nulo(Campo,strtext)  }
		   }
		}
	     }//FIN else netscape
	}//FIN if caracter especial	
}//FIN funcion
/**********************************************************************/ 

/**********************************************************************/ 
function Organiza_Casa(Campo,arrpos,teclapres_key,strtext){
    if (((arrpos == "/") || (arrpos == ".") || (arrpos == ",") || (arrpos== ":") || (arrpos == " ") || (arrpos == "-")) && !(teclapres_key ==8)){
        separador = arrpos;
        masktext = strtext + separador;
        Campo.value = masktext;
    }
}//FIN funcion
/**********************************************************************/

function Event_nulo(Campo,strtext){
    //Para capturar los eventos en el netscape!
    var isNS4 = (navigator.appName=="Netscape")?1:0;
    
    if (!isNS4) {
      event.returnValue = false;
      if (strtext != "") {
	Campo.value = strtext
      }
    } else {
	return false;
    }//FIn si es no es netscape

}//FIN funcion
/**********************************************************************/

function mascara_unica(Campo,teclapres,mascara){
  //pegando el tamaño del texto de la caja de texto con delay de -1 no event
  //o sea el último caracter que fue tecleado no sera contado.
  strtext = Campo.value;
  //Para capturar los eventos en el netscape!
  var isNS4 = (navigator.appName=="Netscape")?1:0;

  switch (mascara) {
     case 'n' :
	if (!isNS4) {
		if (((teclapres.keyCode>=48 && teclapres.keyCode<=57) || (teclapres.keyCode==8 || teclapres.keyCode==9 || teclapres.keyCode==13)) && (!event.altKey && !event.shiftKey)) {
		} else {
			Event_nulo(Campo,strtext);
		}
	} else {
		if (((teclapres.which>=48 && teclapres.which<=57) || (teclapres.which==8 || teclapres.which==9 || teclapres.which==13)) && (!event.altKey && !event.shiftKey)) {
		} else {
			return Event_nulo(Campo,strtext);
		}
	}//FIN else netscape
     break;

     case 'c' :
	if (!isNS4) {
		if ((((teclapres.keyCode>=65 && teclapres.keyCode<=90)||(teclapres.keyCode==192)) ||((teclapres.keyCode>=97 &&teclapres.keyCode<=122)||(teclapres.keyCode==241)) || (teclapres.keyCode==8 || teclapres.keyCode==9 || teclapres.keyCode==13))&& (!event.altKey)) {
		} else {
			Event_nulo(Campo,strtext);
		}
	} else {
		if ((((teclapres.which>=65 && teclapres.which<=90)||(teclapres.which==192)) || ((teclapres.which>=97 && teclapres.which<=122)||(teclapres.which==241)) || (teclapres.which==8 || teclapres.which==9 || teclapres.which==13)) && (!event.altKey)) {
		} else {
			return Event_nulo(Campo,strtext);
		}
	}//FIN else netscape
     break;

     case 'M' :
	if (!isNS4) {
		if (((teclapres.keyCode>=65 && teclapres.keyCode<=90)||(teclapres.keyCode==192))||(teclapres.keyCode==8 || teclapres.keyCode==9 || teclapres.keyCode==13)) {
		} else {
			Event_nulo(Campo,strtext);
		}
	} else {
		if (((teclapres.which>=65 && teclapres.which<=90)||(teclapres.which==192)) || (teclapres.which==8 || teclapres.which==9 || teclapres.which==13)) {
		} else {
			return Event_nulo(Campo,strtext);
		}
	}//FIN else netscape
     break;

     case 'm' :
	if (!isNS4) {
		if ((((teclapres.keyCode>=97 && teclapres.keyCode<=122)||(teclapres.keyCode==241)) || (teclapres.keyCode==8 || teclapres.keyCode==9 || teclapres.keyCode==13)) && (!event.altKey && !event.shiftKey)) {
		} else {
			Event_nulo(Campo,strtext);
		}
	} else {
		if (((teclapres.which>=97 && teclapres.which<=122)||(teclapres.which==241)) || (teclapres.which==8 || teclapres.which==9 || teclapres.which==13)) {
		} else {
			return Event_nulo(Campo,strtext);
		}
	}//FIN else netscape
     break;
   }//FIN switch

}//FIN funcion
/**********************************************************************/

/**********************************************************************/
function moneda(Campo,teclapres){
  //pegando el tamaño del texto de la caja de texto con delay de -1 no event
  //o sea el último caracter que fue tecleado no sera contado.
  strtext = Campo.value;
  
	//Para capturar los eventos en el netscape!
  	var isNS4 = (navigator.appName=="Netscape")?1:0;
  	
    tamtext = strtext.length
    //creando un array para guardar cada caracterer
    arrtext = new Array(tamtext)
    //copiando los caracteres para el vector
    for (var i = 0 ; i < tamtext; i++){
        arrtext[i] = strtext.slice(i,i+1)
    }

  if (!isNS4) {
	if (((teclapres.keyCode>=48 && teclapres.keyCode<=57) || (teclapres.keyCode==8 || teclapres.keyCode==9 || teclapres.keyCode==13)) && (!event.altKey && !event.shiftKey)) {
	} else {
		haypunto = false;
		for (var i = 0 ; i < tamtext; i++){
			if (arrtext[i]==".") haypunto=true;
		}
		if (teclapres.keyCode==46 && !haypunto) {			
		} else {
			Event_nulo(Campo,strtext);
		}
	}
  } else {
	if (((teclapres.which>=48 && teclapres.which<=57) || (teclapres.which==8 || teclapres.which==9 || teclapres.which==13)) && (!event.altKey && !event.shiftKey)) {
	} else {
		haypunto = false;
		for (var i = 0 ; i < tamtext; i++){
			if (arrtext[i]==".") haypunto=true;
		}
		if (teclapres.which==46 && !haypunto) {			
		} else {
			return Event_nulo(Campo,strtext);
		}
	}
  }//FIN else netscape
}//FIN funcion
/**********************************************************************/

function comprueba_vacio(Campo,msjerror){
 if (Campo.value=="" || Campo.value==" ") {
  alert(msjerror);
 }
}
/**********************************************************************/

/**********************************************************************/
function compruebaObligatorios(form,tab) {
   return compruebaObligatorios(form,tab," no puede ser vacío");
 }
/**********************************************************************/

/**********************************************************************/
function compruebaObligatorios(form,tab,message) {
 tamano=tab.length;
 for(i=0; i<tamano; i++) {
    if (tab[i].value.length==0 ) {
        alert(tab[i].name+' '+message);
        event.returnValue=false;
        return false;         
    }
 } 
 return true;  
}
/**********************************************************************/

/**********************************************************************/
function activaCampo(activador,campo) {
 var campoActivador = document.getElementById(activador);
 //alert(campoActivador.checked);
 if ((campoActivador.type=="radio") || (campoActivador.type=="checkbox")) {
 	if (campoActivador.checked==true)  {
  		var campoActivar = document.getElementById(campo);
  		campoActivar.className="ACTIVO";
 		campoActivar.disabled = false;
 	} else {
 		var campoActivar = document.getElementById(campo);
 		campoActivar.value = "";
  		campoActivar.className="INACTIVO";
 		campoActivar.disabled = true;
 	}
 }//FIN if activador es radio
}//FIN funcion activaCampo
/**********************************************************************/

/**********************************************************************/
function compruebaPassword(pass1,pass2,message) {
	var campo1 = document.getElementById(pass1);
	var campo2 = document.getElementById(pass2);
	if (campo1.value != campo2.value) {
		alert (message);
	}
}
/**********************************************************************/

/**********************************************************************/
function compruebaComillas(Campo,teclapres) {
	//Se obtiene el valor del campo
	strtext = Campo.value;
	//Para capturar los eventos en el netscape
    var isNS4 = (navigator.appName=="Netscape")?1:0;
    
    if (isNS4) {
    	if (teclapres.which==34 || teclapres.which==39) {
    		Campo.value = strtext+"\\";
		}
    } else {
    	if (teclapres.keyCode==34 || teclapres.keyCode==39) {
			Campo.value = strtext+"\\";
		}
    }
    
}//FIN funcion compruebaComillas
/**********************************************************************/