var sMensaje = aArrayAlertas[iIdioma][0];
var sListadoCampos = "";

function ValidarFormularioNIFTIE(oFormulario) {
	
	if ((oFormulario.dni.value == "") && (oFormulario.tie.value == "")) {
	
		alert("Debe rellenar al menos un documento de identificación (DNI o TIE)");
		return false;
	
	} else {
		
		return ValidarFormulario(oFormulario);
		
	}	
}

function ValidarFormulario(oFormulario){

 var oElemento;
 // El valor de iEstado se obtiene de hacer una operación AND entre todos los estados de los distintos campos
 var iEstado;
 var i;

 sListadoCampos = "";

 iEstado = true;

 for(i=0;i<oFormulario.elements.length;i++){
  sTipo = oFormulario.elements[i].type;

  // A la hora de evaluar iEstado es importante el orden. Si iEstado es falso y se escribe:
  // iEstado = iEstado && ValidarInput(oFormulario.elements[i]);
  // entonces no se vuelve a evaluar la segunda expresión (una operación && donde el primero es falso => falso)

  if(sTipo=="text" || sTipo=="password"){
   iEstado = ValidarInput(oFormulario.elements[i]) && iEstado;
  }

  if(sTipo=="checkbox"){
   iEstado = ValidarCheckBox(oFormulario.elements[i]) && iEstado;
  }

  if(sTipo=="textarea"){
   iEstado = ValidarTextArea(oFormulario.elements[i]) && iEstado;
  }

  if(sTipo=="select-one"){
   iEstado = validarCombo(oFormulario.elements[i]) && iEstado;
  }

	if(sTipo=="radio"){
		var anterior
		if(anterior!=oFormulario.elements[i].name){
  		iEstado = ValidarRadios(oFormulario,oFormulario.elements[i]) && iEstado;
  		anterior = oFormulario.elements[i].name
  	}
  }

 }
  if (!iEstado) {
  	window.alert(sMensaje+sListadoCampos);
  }
 return iEstado;

}






function ValidarFormularioCheckBoxes(oFormulario){

 var oElemento;
 // El valor de iEstado se obtiene de hacer una operación AND entre todos los estados de los distintos campos
 var iEstado;
 var i;

 sListadoCampos = "";

 iEstado = true;

 for(i=0;i<oFormulario.elements.length;i++){
  sTipo = oFormulario.elements[i].type;  

  // A la hora de evaluar iEstado es importante el orden. Si iEstado es falso y se escribe:
  // iEstado = iEstado && ValidarInput(oFormulario.elements[i]);
  // entonces no se vuelve a evaluar la segunda expresión (una operación && donde el primero es falso => falso)

  if(sTipo=="text" || sTipo=="password"){
   iEstado = ValidarInput(oFormulario.elements[i]) && iEstado;
  }

  if(sTipo=="checkbox"){
   iEstado = ValidarCheckBox(oFormulario.elements[i]) && iEstado;
  }

  if(sTipo=="textarea"){
   iEstado = ValidarTextArea(oFormulario.elements[i]) && iEstado;
  }

  if(sTipo=="select-one"){
   iEstado = validarCombo(oFormulario.elements[i]) && iEstado;
  }

	if(sTipo=="radio"){
		var anterior
		if(anterior!=oFormulario.elements[i].name){
  		iEstado = ValidarRadios(oFormulario,oFormulario.elements[i]) && iEstado;
  		anterior = oFormulario.elements[i].name
  	}
  }

 }
 
  if (!iEstado) {
  	window.alert(sMensaje+sListadoCampos);
  } else {  	
  	iEstado = ContarChecks(oFormulario);
  }
  
  //return false;
  return iEstado;  

}


function ValidarFormularioCursosMujer(oFormulario){

 var oElemento;
 // El valor de iEstado se obtiene de hacer una operación AND entre todos los estados de los distintos campos
 var iEstado;
 var i;

 sListadoCampos = "";

 iEstado = true;

 for(i=0;i<oFormulario.elements.length;i++){
  sTipo = oFormulario.elements[i].type;  

  // A la hora de evaluar iEstado es importante el orden. Si iEstado es falso y se escribe:
  // iEstado = iEstado && ValidarInput(oFormulario.elements[i]);
  // entonces no se vuelve a evaluar la segunda expresión (una operación && donde el primero es falso => falso)

  if(sTipo=="text" || sTipo=="password"){
   iEstado = ValidarInput(oFormulario.elements[i]) && iEstado;
  }

  if(sTipo=="checkbox"){
   iEstado = ValidarCheckBox(oFormulario.elements[i]) && iEstado;
  }

  if(sTipo=="textarea"){
   iEstado = ValidarTextArea(oFormulario.elements[i]) && iEstado;
  }

  if(sTipo=="select-one"){
   iEstado = validarCombo(oFormulario.elements[i]) && iEstado;
  }

	if(sTipo=="radio"){
		var anterior
		if(anterior!=oFormulario.elements[i].name){
  		iEstado = ValidarRadios(oFormulario,oFormulario.elements[i]) && iEstado;
  		anterior = oFormulario.elements[i].name
  	}
  }

 }
 
  if (!iEstado) {
  	window.alert(sMensaje+sListadoCampos);
  } else {  	
  	iEstado = ContarChecksCursosMujer(oFormulario);
  }
  
  //return false;
  return iEstado;  

}
















function ValidarInput(oElemento){

 var sRequerido = "", sTipoValidacion = "", sClase = "", sValor = "";

 sClase = oElemento.className;
 sTitulo = TratarCadena(oElemento.title);
 sValor = oElemento.value;
 sRequerido = sClase.split("_")[0];
 sTipoValidacion = sClase.split("_")[1];

 if ((sRequerido=='si') && (miTrim(sValor)=='')){
  switch(sTipoValidacion){
   case "fecha":
    sListadoCampos = sListadoCampos + "\n          -  " + sTitulo+" es un dato obligatorio.";
    //alert("Debe rellenar la " + sTitulo);
    return false;
   break;
   default:
   sListadoCampos = sListadoCampos + "\n          -  " + sTitulo+" es un dato obligatorio.";
   //alert("Debe rellenar el campo " + sTitulo);
   return false;
  }
 }

if ((sRequerido=="si") || (miTrim(sValor)!="")) { 
 switch (sTipoValidacion) {
  case "email":
	   sEmail = sValor;
	   if (!IsMail(sEmail)) {
		  sListadoCampos = sListadoCampos + "\n          -  '" + sTitulo + "' no es un e-mail válido.";
		  return false;
	   }
   break;
   case "euro":
    var euro = /^\d+\.\d{2}$/;
    if(!euro.test(sValor)){
    	sListadoCampos = sListadoCampos + "\n          -  '" + sTitulo + "' debe ser un número.";
        //alert("El campo '" + sTitulo + "' debe ser un número.");
     return false;
    }
  break;
  // Cinco casos posibles de fechas (fechadesde, fechahasta, unica_desde, unica_hasta, unica)
  // Validación común: formato dd/mm/aaaa
  // Los de id "desde_[nombre]" y "hasta_[nombre]" van en pareja
  case "fecha":

   	if (validarFechaCampo(oElemento)){
   		return true;
	} else {
		sListadoCampos = sListadoCampos + "\n          -  " + "'" + sTitulo + "' no es una fecha válida.";
		return false;
	}
  break;
  case "numerico":
   if (isNaN(Number(sValor))){
   	sListadoCampos = sListadoCampos + "\n          -  " + "'" + sTitulo + "' debe ser un número.";
        //alert("El campo '" + sTitulo + "' debe ser un número.");
        return false;
   }
  break;
  case "dc":
  	if (isNaN(Number(sValor))){
   	sListadoCampos = sListadoCampos + "\n          -  " + "'" + sTitulo + "' debe ser un número.";
        //alert("El campo '" + sTitulo + "' debe ser un número.");
        return false;
   }else{

    if(!validarDCcuenta(sValor)){
    	sListadoCampos = sListadoCampos + "\n          - " + "El DC (digito de control) de la cuenta no es valido.";
         //alert("Por favor, introduzca la letra de su NIF correctamente");
         return false;
    }
   }
  break;
  case "entero":
   if (isNaN(Number(sValor))){
   	sListadoCampos = sListadoCampos + "\n          -  " + "'" + sTitulo + "' debe ser un número sin decimales.";
        //alert("El campo '" + sTitulo + "' debe ser un número sin decimales.");
        return false;
   }else{
    if (parseInt(sValor,10)!= sValor){
    	sListadoCampos = sListadoCampos + "\n          -  " + "'" + sTitulo + "' debe ser un número sin decimales.";
        //alert("El campo '" + sTitulo + "' debe ser un número sin decimales.");
        return false;
    }
   }
  break;
  case "dni":
   if (sValor.length < 9){
   		sListadoCampos = sListadoCampos + "\n          - '" + sTitulo + "' no es un N.I.F./N.I.E. válido.";
        //alert("Por favor, introduzca su NIF correctamente");
        return false;
   }else{

    if(!validarLetraDNI(sValor)){
    	sListadoCampos = sListadoCampos + "\n          - " + "Por favor, introduzca la letra de su " + sTitulo + " correctamente";
         //alert("Por favor, introduzca la letra de su NIF correctamente");
         return false;
    }
   }
  break;
  case "nifniecif":
   if (sValor.length < 9){
   		sListadoCampos = sListadoCampos + "\n          - '" + sTitulo + "' no es un N.I.F./N.I.E./C.I.F válido.";
        //alert("Por favor, introduzca su NIF correctamente");
        return false;
   }else{

    if(!validarNIF_NIE_CIF(sValor)){
    	sListadoCampos = sListadoCampos + "\n          - " + "Por favor, introduzca la letra de su " + sTitulo + " correctamente";
         //alert("Por favor, introduzca la letra de su NIF correctamente");
         return false;
    }
   }
  break;
  case "alfanumerico":
  break;
  case "imagen":
  break;
  case "adjunto":
  break;
  case "documento":
  break;
  case "undefined":
  break;
  case "camposiguales":
  	var sElementoCopy = document.getElementById(oElemento.id + 'Igual').value;
  	if (sValor!=sElementoCopy){
  		sListadoCampos = sListadoCampos + "\n          -  " + "'" + sTitulo + "' debe ser igual a Repita la '"+ sTitulo+"'";
  		return false;
  	}
  	break;
  default:
  }
 }

 return true;

}

function ValidarCheckBox(oElemento){

	var sClase = oElemento.className;
	var bChecked = oElemento.checked;
    var sTitulo = TratarCadena(oElemento.title);
	var ID = oElemento.id
	var sRequerido = sClase.split("_")[0];

	if (sRequerido == 'si' && !bChecked){
		 if(ID="avisolegal")
		 {
			 sListadoCampos = sListadoCampos + "\n          -  Debe aceptar las condiciones legales.";
		 }else{
			 sListadoCampos = sListadoCampos + "\n          -  '" + sTitulo+"' es un dato obligatorio.";
		 }
	 return false;
	}

	return true;

}

function ValidarRadios(oFormulario,oElemento){

	var sClase       = oElemento.className;
  var sTitulo      = TratarCadena(oElemento.title);
	var sRequerido   = sClase.split("_")[0];
	var oRadio       = oFormulario.elements[oElemento.name]
	var bOk = false;
	var control=0;

	for(i=0;i<=oRadio.length-1;i++){
		if(oRadio[i].checked){
			bOk = true;
			if(oRadio[i].id=="carnet_1"){
		 		control=1;
			}
		}
	}

	if (!bOk && sRequerido == 'si'){
		 sListadoCampos = sListadoCampos + "\n          -  '" + sTitulo+ "' es un dato obligatorio.";
	}else{
			if(control==1){
				if(oFormulario.elements["clase"].value==""){
		 			sListadoCampos = sListadoCampos + "\n          -  'Clase' es un dato obligatorio.";
		 		}else{
		 			bOk = true;
		 		}
			}else{
				bOk = true;
			}
	}

	return bOk;

}

function ValidarTextArea(oElemento){

 sClase = oElemento.className;
 sTitulo = oElemento.title;
 sValor = oElemento.value;
 sRequerido = sClase.split("_")[0];
 sTipovalidacion = sClase.split("_")[1];
 iMaxCar = sClase.split("_")[2];

 if ((sRequerido=='si') && (miTrim(sValor)=='')){
 	sListadoCampos = sListadoCampos + "\n          -  '" + sTitulo+"' es un dato obligatorio.";
        //alert("Por favor, rellene el campo " + sTitulo )
        return false
 }

 if ((iMaxCar!='') && ((sValor).length > iMaxCar)){
 	sListadoCampos = sListadoCampos + "\n          -  La longitud del campo '"+ sTitulo + "' no puede sobrepasar los "+iMaxCar+" caracteres";
        //alert("La longitud del campo '" + sTitulo + "' no puede sobrepasar los " + elemento.max_car +" caracteres" )
        return false;
 }
 return true;
}

function validarLetraDNI(dniOriginal){

	var dni="";

	dni = dniOriginal.replace(/[ ,.-]/g,'');

	if(dni.length==9){
		// cuando estamos validando un NIE
		if(dni.charAt(0) == "X" || dni.charAt(0) == "x") {dni=dni.replace(/[Xx]/,'0');}

		if(/^[0-9a-z]/.test(dni)){

			var letra = dni.substr(dni.length-1,dni.length);
			var valorDNI = dni.substr(0,dni.length-1);
			var resto=(valorDNI % 23);
			var letra_NIF;
			
	    switch(resto){
				case 0:letra_NIF = "T";break;
				case 1:letra_NIF = "R";break;
				case 2:letra_NIF = "W";break;
				case 3:letra_NIF = "A";break;
				case 4:letra_NIF = "G";break;
				case 5:letra_NIF = "M";break;
				case 6:letra_NIF = "Y";break;
				case 7:letra_NIF = "F";break;
				case 8:letra_NIF = "P";break;
				case 9:letra_NIF = "D";break;
				case 10:letra_NIF = "X";break;
				case 11:letra_NIF = "B";break;
				case 12:letra_NIF = "N";break;
				case 13:letra_NIF = "J";break;
				case 14:letra_NIF = "Z";break;
				case 15:letra_NIF = "S";break;
				case 16:letra_NIF = "Q";break;
				case 17:letra_NIF = "V";break;
				case 18:letra_NIF = "H";break;
				case 19:letra_NIF = "L";break;
				case 20:letra_NIF = "C";break;
				case 21:letra_NIF = "K";break;
				case 22:letra_NIF = "E";break;
			 }
				if(letra.toUpperCase()!=letra_NIF){return false;}
				return true;

			}else{
				return validarCIF(dni)
			}
		}
}

/*Función para validar lel CIF*/

function validarCIF(cif){

		var sLetra, sNumeros, sDigitoControl, sCadAux, aLetrasControl;
		var bValido = false;

		sLetra         = cif.substr(0,1);
		sNumeros       = cif.substring(1,8);
		sDigitoControl = cif.substr((cif.length-1),1);
		aLetrasControl = new Array("J","A","B","C","D","E","F","G","H","I");

		iResultadoA  = parseInt(sNumeros.substring(1,2)) + parseInt(sNumeros.substring(3,4)) + parseInt(sNumeros.substring(5,6));

		iImpar1 = parseInt(sNumeros.substring(0,1))*2+"";
		iImpar2 = parseInt(sNumeros.substring(2,3))*2+"";
		iImpar3 = parseInt(sNumeros.substring(4,5))*2+"";
		iImpar4 = parseInt(sNumeros.substring(6,7))*2+"";

		if (iImpar1.length > 1){iImpar1 = parseInt(iImpar1.substr(0,1)) + parseInt(iImpar1.substr(1,2));}
		if (iImpar2.length > 1){iImpar2 = parseInt(iImpar2.substr(0,1)) + parseInt(iImpar2.substr(1,2));}
		if (iImpar3.length > 1){iImpar3 = parseInt(iImpar3.substr(0,1)) + parseInt(iImpar3.substr(1,2));}
		if (iImpar4.length > 1){iImpar4 = parseInt(iImpar4.substr(0,1)) + parseInt(iImpar4.substr(1,2));}

		iResultadoB  = parseInt(iImpar1) + parseInt(iImpar2) + parseInt(iImpar3) + parseInt(iImpar4);

		iResultadoC  = parseInt(iResultadoA) + parseInt(iResultadoB);
		iResultadoC  = iResultadoC+"";

		iUnidadC     = parseInt(iResultadoC.substr((iResultadoC.length-1),1));

		iResultadoD  = 10 - parseInt(iUnidadC);

		if(iResultadoD == 10){iResultadoD = 0;}

		if(/^[0-9]/.test(sDigitoControl)){

			if(sDigitoControl == iResultadoD){bValido= true;}

		}else{

			if (aLetrasControl[iResultadoD] == sDigitoControl){bValido= true;}
		}

		return(bValido);

}


//Valida NIF/NIE/Y CIF EN UN ÚNICO CAMPO
/******************************************************************/
function validarNIF_NIE_CIF(cf)
	{
	var i = temp = 0;
	var v1 = new Array(0,2,4,6,8,1,3,5,7,9);
	cf = cf.toUpperCase();
	if (validarNIFNIE(cf)) return true;
	else if (!/^[A-Za-z0-9]{9}$/.test(cf)) return false
	else if (!/^[ABCDEFGHKLMNPQS]/.test(cf)) return false
	else
		{
		for(i=2; i<=6; i+=2)
			{
			temp += v1[parseInt(cf.substr(i-1, 1))];
			temp += parseInt(cf.substr(i, 1));
			}
		temp = temp + v1[parseInt(cf.substr(7,1))];
		temp = (10 - ( temp % 10));
		if(temp == 10 && (cf.charAt(cf.length-1) == 'J' || cf.charAt(cf.length-1) == 0)) return true;
		else if (cf.charAt(cf.length-1) == temp || cf.charAt(cf.length-1) == String.fromCharCode(64 + temp)) return true;
		else return false;
		}
	}

function validarNIFNIE(nif) {
	if (!nif) return false;
	var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
	if (nif.length != 9) return false;
	else {
		letra = nif.substr(8, 1); letra = letra.toUpperCase();		
		dni = nif.substr(0, 8);		
		dni = dni.toUpperCase(); dni = dni.replace('X','0'); dni = dni.replace('Y','1');
		dni -= parseInt(dni/23) * 23;
		//alert (letras.charAt(dni) + " - " + letra);
		if (letras.charAt(dni) != letra) return false; 
		else return true;
		}
	}
/*******************************************************************/


/*Función para validar la fecha*/

function validarFecha(dia, mes, anno){

var leap = 0;
var err = 0;
var i;
err = 0;

   /* Se comprueba que el año no sea igual a 0000 */
   if (anno == 0) {
      err = 20;
   }
   /* Validación del mes */
   if ((mes < 1) || (mes > 12)) {
      err = 21;
   }
   /* Validación del dia */
   if (dia < 1) {
     err = 22;
   }
   /* Validación de febrero en función de si es año bisiesto */
   if ((anno % 4 == 0) || (anno % 100 == 0) || (anno % 400 == 0)) {
      leap = 1;
   }
   if ((mes == 2) && (leap == 1) && (dia > 29)) {
      err = 23;
   }
   if ((mes == 2) && (leap != 1) && (dia > 28)) {
      err = 24;
   }
   /* Validación de los otros meses */
   if ((dia > 31) && ((mes == "01") || (mes == "03") || (mes == "05") || (mes == "07") || (mes == "08") || (mes == "10") || (mes == "12"))) {
      err = 25;
   }
    if ((dia > 31) && ((mes == "1") || (mes == "3") || (mes == "5") || (mes == "7") || (mes == "8") || (mes == "10") || (mes == "12"))) {
      err = 25;
   }
   if ((dia > 30) && ((mes == "04") || (mes == "06") || (mes == "09") || (mes == "11"))) {
      err = 26;
   }
    if ((dia > 30) && ((mes == "4") || (mes == "6") || (mes == "9") || (mes == "11"))) {
      err = 26;
   }
   if ((dia == 0) && (mes == 0) && (anno == 00)) {
      err = 0; dia = ""; mes = ""; anno = "";
   }

   if (err == 0) {
      return true;
   }
   /* Si hay algún error mensaje de alerta */
   else {
      //alert("Formato de fecha incorrecto");
      return false;
   }
}

// Validar el valor escrito en un campo fecha
function validarFechaCampo(oElemento) {
   var sValor = oElemento.value;

   if (sValor.length==10) {
   	var iDia = sValor.split("/")[0];
   	var iMes = sValor.split("/")[1];
   	var iAnno = sValor.split("/")[2];
   	// Comprobar que sean números
   	if ((isNaN(Number(iDia))) ||(isNaN(Number(iMes))) ||(isNaN(Number(iAnno)))) {
   		//alert("Alguno de los datos insertados en la fecha no es un número.");
   		return false;
   	} else {
   		// Comprobar que sea una fecha válida
   		if (validarFecha(iDia,iMes,iAnno)) {
   			// Caso especial: que sea un campo fecha de tipo "desde" => buscar "hasta" correspondiente
   			if (oElemento.id.substr(0,6)=="desde_") {
   				return validarFechaHasta(oElemento);
   			} else {
   				return true;
   			}
   			//alert("Formato de fecha correcto");
   		} else {
   			return false;
   		}
   	}
   } else {
   	//alert("La fecha no tiene el formato correcto dd/mm/aaaa");
   	return false;
   }
}

// En caso de ser un par de fechas esta función comprueba que la segunda sea >= a la primera
function validarFechaHasta(oElementoFechaDesde) {
	var sIdDesde = oElementoFechaDesde.id;
	var sIdHasta = "hasta_" + sIdDesde.split("_")[1];
	var oElementoFechaHasta = document.getElementById(sIdHasta);
	//alert(sIdHasta);
	//alert(oElementoFechaHasta.value);
	if(oElementoFechaHasta.value != ""){
		if (validarFechaCampo(oElementoFechaHasta)) {
			// Comprobar que "hasta" >= "desde"
			var iDiaDesde = oElementoFechaDesde.value.split("/")[0];
			var iDiaHasta = oElementoFechaHasta.value.split("/")[0];
			var iMesDesde = oElementoFechaDesde.value.split("/")[1];
			var iMesHasta = oElementoFechaHasta.value.split("/")[1];
			var iAnnoDesde = oElementoFechaDesde.value.split("/")[2];
			var iAnnoHasta = oElementoFechaHasta.value.split("/")[2];
			//alert("ok");
			return ((iAnnoHasta > iAnnoDesde) || ((iAnnoHasta == iAnnoDesde) && (iMesHasta > iMesDesde)) || ((iAnnoHasta == iAnnoDesde) && (iMesHasta == iMesDesde) && (iDiaHasta >= iDiaDesde)));
		} else {
			//alert("wrong");
			return false;
		}
	}else{
		return true;
	}
}

function validarCombo(oElementoCombo) {

	var sRequerido = "", sTipoValidacion = "", sClase = "", sValor = "";

	sClase = oElementoCombo.className;
	sTitulo = TratarCadena(oElementoCombo.title);
	sValor = oElementoCombo.value;
	sRequerido = sClase.split("_")[0];
	sTipoValidacion = sClase.split("_")[1];

	if ((sRequerido=='si') && ((sValor=='')||(sValor=='0'))){
	  sListadoCampos = sListadoCampos + "\n          -  " + sTitulo+ " es un dato obligatorio.";
	  return false;
	}else{
		return true;
	}
}


function TratarCadena(sCadena){
   /* Entidades HTML */
   sCadena = sCadena.replace("&aacute;","á");
   sCadena = sCadena.replace("&eacute;","é");
   sCadena = sCadena.replace("&iacute;","í");
   sCadena = sCadena.replace("&oacute;","ó");
   sCadena = sCadena.replace("&uacute;","ú");
   sCadena = sCadena.replace("&Aacute;","Á");
   sCadena = sCadena.replace("&Eacute;","É");
   sCadena = sCadena.replace("&Iacute;","Í");
   sCadena = sCadena.replace("&Oacute;","Ó");
   sCadena = sCadena.replace("&Uacute;","Ú");
   sCadena = sCadena.replace("&ntilde;","ñ");
   sCadena = sCadena.replace("&Ntilde;","Ñ");
   /* Entidades XML */
   sCadena = sCadena.replace("&#225;","á");
   sCadena = sCadena.replace("&#233;","é");
   sCadena = sCadena.replace("&#237;","í");
   sCadena = sCadena.replace("&#243;","ó");
   sCadena = sCadena.replace("&#250;","ú");
   sCadena = sCadena.replace("&#193;","Á");
   sCadena = sCadena.replace("&#201;","É");
   sCadena = sCadena.replace("&#205;","Í");
   sCadena = sCadena.replace("&#211;","Ó");
   sCadena = sCadena.replace("&#218;","Ú");
   sCadena = sCadena.replace("&#241;","ñ");
   sCadena = sCadena.replace("&#209;","Ñ");
   sCadena = sCadena.replace("&euro;","€");

   return sCadena;

}

//Función que emula el maxlength de un input sobre un textarea.
function ismaxlength(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
	obj.value=obj.value.substring(0,mlength)
}

//Función para comprobar si no existe ningún check marcado entre un listado de ellos.
function ContarChecks(form) {
	var cuentaChecked=0;
	for(var i=0;i<form.elements.length;i++) {		
		if(form.elements[i].checked) {			
			cuentaChecked+=1;		
		}
	}
	if(cuentaChecked <= 2) {
		var mensaje = "Datos erróneos. Por favor rellene los siguientes campos correctamente:\n-  Debe seleccionar al menos una categoría."	
		window.alert(mensaje);	
		return false;
	} else{
		return true;
	}
}

//Función para comprobar si no existe ningún check marcado entre un listado de ellos.
function ContarChecksCursosMujer(form) {
	var cuentaChecked=0;
	for(var i=0;i<form.elements.length;i++) {		
		if(form.elements[i].checked) {			
			cuentaChecked+=1;		
		}
	}
	if(cuentaChecked <= 2 || cuentaChecked > 4) {
		var mensaje = "Datos erróneos. Por favor rellene los siguientes campos correctamente:\n-  Debe seleccionar al menos una categoría y no más de dos."	
		window.alert(mensaje);	
		return false;
	} else{
		return true;
	}
}

//Esta función añade código a un botón que hace que sobre su onclick se anule la llamada a validarFormulario del formulario padre
function desactivarValidacionCliente(oBoton){
	if (oBoton.addEventListener){
			oBoton.addEventListener('click',function(){document.forms['formulario'].onsubmit='';},false);
	}
		else
			oBoton.onclick = function(){document.forms['formulario'].onsubmit = '';};
}

function IsMail(mail){
			var Template = /^(.+\@.+\..+)$/
      //var Template = /^[a-z-A-Z]+([0-9-_\.]*[a-z-A-Z-0-9]+)*@{1}[a-z-A-Z]+([0-9-_\.]+[a-z-A-Z-0-9]+)+$/i
      var Template = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-ñÑ\-0-9]+\.)+[a-zA-Z]{2,}))$/
      if (mail != " ")
      {
            return (Template.test(mail)) ? 1 : 0
      }
      return true
}

//==============================================================================
// Descripcion: elimina espacios en blanco anteriores y posteriores a una
// cadena los espacios en blanco internos permanecen
// Salida:     la cadena sin blancos por delante ni por detrás, y en mayúsculas
//==============================================================================

function miTrim(cadena){
	var seguir = true;
	var oStr = new String(cadena);
	//Calcular el índice por delante
	var iInic = 0;
	while (seguir)
	{
		if (oStr.charAt(iInic) == " ") iInic++;
		else seguir = false;
	}
	//Calcular el índice por detrás
	seguir = true;
	var iFin = oStr.length - 1;
	while (seguir)
	{
		if (oStr.charAt(iFin) == " ") iFin--;
		else seguir = false;
	}
	//Caso especial: la cadena de entrada es una sucesión de blancos
	if(iInic > iFin)
		return "";
	else
		return oStr.substring(iInic, iFin + 1).toString();

}

function borrarCampos(iId){

	var oForm = document.getElementById(iId)

	for(i=0;i<=oForm.elements.length-1;i++){

		var tipo = oForm.elements[i].type

		//No borrar los campos readonly
		if(oForm.elements[i].readOnly != true && oForm.elements[i].readOnly != "readonly") {

			if(tipo=="text" || tipo=="password")
			{
				oForm.elements[i].value=""
			}
			if(tipo=="select-one")
			{
				oForm.elements[i].value=0
			}
			if(tipo=="checkbox")
			{
				oForm.elements[i].checked=false
			}
			if(tipo=="textarea")
			{
				oForm.elements[i].value=""
			}

		}

	}

}

function validarDCcuenta(digito){

	var numero = "00"+document.getElementById("entidad").value+""+document.getElementById("sucursal").value;
	var numero2= document.getElementById("numCuenta").value;
	var control = false
	 
	if(numero>0){
		control = true
		var cifras = new Array(1,2,4,8,5,10,9,7,3,6);
		var chequeo = 0;
		for (var i=0; i < cifras.length; i++){
			chequeo += parseInt(numero.charAt(i)) * cifras[i];
		}
		chequeo = 11 - (chequeo % 11);
		if (chequeo == 11) {chequeo = 0}
		if (chequeo == 10) {chequeo = 1}
		
		if(digito.charAt(0)!=chequeo){control=false;}
		
	}
	
	if(numero2>0){
		control = true
		var cifras = new Array(1,2,4,8,5,10,9,7,3,6);
		var chequeo = 0;
		for (var i=0; i < cifras.length; i++){
			chequeo += parseInt(numero2.charAt(i)) * cifras[i];
		}
		chequeo = 11 - (chequeo % 11);
		if (chequeo == 11) {chequeo = 0}
		if (chequeo == 10) {chequeo = 1}
		
		if(digito.charAt(1)!=chequeo){control=false;}

	}
	
	return control;
	
}

