//*****************************************************************
//
// Libreria Javascript para Chequeo de forms          BWD 4-4-2001
//
//*****************************************************************

function PonFocus(Objeto){
   Objeto.focus();
   Objeto.blur();
   Objeto.select();
}

function ChequeoVacio(field,bufalo){
  if (controldeflujo==0){
    if (field.value == "") {
        alert("El campo '"+bufalo+"' esta vacío por favor rellénelo");
        PonFocus(field);
	controldeflujo=1;
    }
  }
}

function ChequeoVacioList(field,bufalo){
  if (controldeflujo==0){
    if (field.options.length == 0) {
        alert("El campo de "+bufalo+" esta vacío por favor rellénelo");
	controldeflujo=1;
    }
  }
}


function ChequeoMail(field,bufalo){
 if (controldeflujo==0){
   if ((field.value.indexOf("@") == -1)  || (field.value.indexOf(".") == -1 )){
	alert("El '"+bufalo+"' parece no ser correcto.\nPor favor repásalo");
    PonFocus(field);
	controldeflujo=1;
   }
 }
}

function ChequeoPassword(password,repassword){
 if (controldeflujo==0){
   if (password!=repassword){
     alert("Por favor asegúrate de que has repetido correctamente la contraseña");
     controldeflujo=1;
   }
 }
}

function ChequeoNumeros(field,bufalo){
 if (controldeflujo==0){
    var ok;
    var c1;
    estado = "inicio"; 
    c1 = 0;
    var str1;
    str1 = field.value;
    while (estado=="inicio"){
        if (str1.substring(c1,c1+1)!='1' &&
            str1.substring(c1,c1+1)!='2' &&
            str1.substring(c1,c1+1)!='3' &&
            str1.substring(c1,c1+1)!='4' &&
            str1.substring(c1,c1+1)!='5' &&
            str1.substring(c1,c1+1)!='6' &&
            str1.substring(c1,c1+1)!='7' &&
            str1.substring(c1,c1+1)!='8' &&
            str1.substring(c1,c1+1)!='9' &&
            str1.substring(c1,c1+1)!='0')
                {estado="kaka";};
      	c1++;
	if (c1>str1.length) {
	   estado="final";
           return(true);
	   controldeflujo=1;
	}
    }
    if (estado=="kaka") {
        alert("El campo "+bufalo+" debe ser un número");
        PonFocus(field);
	controldeflujo=1;
        return(false);
    }
 }
}

function ChequeoCombos(field,bufalo)
 {
 if (controldeflujo==0){
 if (field.value=="selecciona" ) 
 	{
	alert("Debes seleccionar una opción del desplegable en " + bufalo);
	controldeflujo=1;
	}
 }
}

function Chequeolongitud(field,long,bufalo) {
 if (controldeflujo==0){ 	
  if (field.value.length<long) {
	alert("El campo '" + bufalo + "' debe de tener '"+ long +"' dígitos");
	PonFocus(field);
	controldeflujo=1;
  }	}
}
 
function ChequeoCamposTexto(field,bufalo){
 if (controldeflujo==0){ 
  if (field.value.length>1000 && controldeflujo==0) 
  {
	alert("Has excedido el número máximo de caracteres disponibles para el campo" + bufalo);
	controldeflujo=1;
  }
 }
}


function esDigito(sChr){ 
 var sCod = sChr.charCodeAt(0); 
 return ((sCod > 47) && (sCod < 58)); 
} 

function valSep(oTxt){ 
 var bOk = false; 
 var sep1 = oTxt.value.charAt(2); 
 var sep2 = oTxt.value.charAt(5); 
 bOk = bOk || ((sep1 == "-") && (sep2 == "-")); 
 bOk = bOk || ((sep1 == "/") && (sep2 == "/")); 
 return bOk; 
} 

function finMes(oTxt){ 
 var nMes = parseInt(oTxt.value.substr(3, 2), 10); 
 var nAno = parseInt(oTxt.value.substr(6), 10); 
 var nRes = 0; 
 switch (nMes){ 
  case 1: nRes = 31; break; 
  case 2: nRes = 28; break; 
  case 3: nRes = 31; break; 
  case 4: nRes = 30; break; 
  case 5: nRes = 31; break; 
  case 6: nRes = 30; break; 
  case 7: nRes = 31; break; 
  case 8: nRes = 31; break; 
  case 9: nRes = 30; break; 
  case 10: nRes = 31; break; 
  case 11: nRes = 30; break; 
  case 12: nRes = 31; break; 
 } 
 return nRes + (((nMes == 2) && (nAno % 4) == 0)? 1: 0); 
}

function valDia(oTxt){ 
 var bOk = false; 
 var nDia = parseInt(oTxt.value.substr(0, 2), 10); 
 bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt))); 
 return bOk; 
} 

function valMes(oTxt){ 
 var bOk = false; 
 var nMes = parseInt(oTxt.value.substr(3, 2), 10); 
 bOk = bOk || ((nMes >= 1) && (nMes <= 12)); 
 return bOk; 
} 

function valAno(oTxt){ 
 var bOk = true; 
 var nAno = oTxt.value.substr(6); 
 bOk = bOk && ((nAno.length == 2) || (nAno.length == 4)); 
 if (bOk){ 
  for (var i = 0; i < nAno.length; i++){ 
   bOk = bOk && esDigito(nAno.charAt(i)); 
  } 
 } 
 return bOk; 
} 

function ChequeoFecha(oTxt){ 
 var bOk = true; 
 if (oTxt.value != ""){ 
  bOk = bOk && (valAno(oTxt)); 
  bOk = bOk && (valMes(oTxt)); 
  bOk = bOk && (valDia(oTxt)); 
  bOk = bOk && (valSep(oTxt)); 
  if (!bOk){ 
  
   controldeflujo = 1;
	alert("La fecha introducida es incorrecta");
   oTxt.value = ""; 
	PonFocus(oTxt);
  } else controldeflujo = 0;
 } 
} 


function Calcula_NIF(Dni,letra){
 if (controldeflujo==0){ 	
	var clave=new Array("T","R","W","A","G","M","Y","F","P","D","X"
			   ,"B","N","J","Z","S","Q","V","H","L","C",
			    "K","E");
	if (isNaN(Dni)){
		alert("El DNI debe estar formado exclusivamente por números");
		controldeflujo=1;
	}
	else{
		if (clave[Dni%23]!=letra.toUpperCase()){
			alert("El DNI no parece ser válido.\nRepasa la entrada de números y la letra.");
			controldeflujo=1;
		}
       }
  }
}

function Calcula_NIE(Dni,letra){
 if (controldeflujo==0){ 
	nie=Dni.substr(1);
	var clave=new Array("T","R","W","A","G","M","Y","F","P","D","X"
			   ,"B","N","J","Z","S","Q","V","H","L","C",
			    "K","E");
	if (isNaN(nie)){
		alert("El NIE debe empezar por 'X' y seguidamente estar formado exclusivamente por números");
		controldeflujo=1;
	}
	else{
		if (clave[nie%23]!=letra.toUpperCase()){
			alert("El NIE no parece ser válido.\nRepasa la entrada de números y la letra.");
			controldeflujo=1;
		}
	}
 }
}

