//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// FUNCIONES GENERALES PARA CLIENTE
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
aPrefijo = new Array(945, 967, 96, 950, 920, 924, 971, 93, 947, 927, 956, 964, 926, 957, 981, 969,
	972, 958, 949, 943, 959, 974, 953, 987, 973, 941, 982, 91, 95, 968, 948, 988, 98, 979, 928,
	986, 923, 922, 942, 921, 95, 975, 977, 978, 925, 96, 983, 94, 980, 976, 956, 95);
//-----------------------------------------------------------------------
function isLetter(c)
{
	return(((c >= "a")&&(c<="z"))||((c >= "A")&&(c <= "Z")));
}
function checkCaracter(op , ch) {

  // Compruebo que ch es un caracter
  if(op==1)
   if (ch >= "A" &&  ch <= "z")
          return true;
      else
            return false;


     // Compruebo que la mitad es toda de numeros
     if(op==0) {
      for (var i=0; i<ch.length; i++)
      {
       if (ch[i] >= "A" &&  ch[i] <= "z")
         return false;
  } return true;
  }

     // Compruebo que el ultimo esta entre A y J o es un numero
     if(op==3) {
      if((ch>="A" && ch <="J") || (ch >= "0" && ch <="9"))
       return true;
      else
       return false;
     }


}
//-----------------------------------------------------------------------
function isDate(f)
{
	//	Comprueba si el formato de una fecha es correcto.

	if (f.indexOf('/') == -1 || f.length < 8)
		return(false);

	d = f.substring(0, f.indexOf('/'));
	m = f.substring(f.indexOf('/')+1, f.lastIndexOf('/'));
	a = f.substring(f.lastIndexOf('/')+1, f.length);

	if (isNaN(a) || isNaN(d) || isNaN(m))
		return false;

	if ((Number(d) < 1) || (Number(d) > 31))
		return false;

	if ((Number(m) < 1) || (Number(m) > 12))
		return false;

	if ((Number(a) < 1900) || (Number(a) > 2099))
		return false;

	if (((Number(m) == 4) || (Number(m) == 6) || (Number(m) == 9) || (Number(m) == 11)) && (Number(d) > 30)) // Meses de 30 dias
		return false;

	if ((Number(m) == 2) && (Number(a)%4 != 0) && (Number(d) > 28)) // Para bisiestos
		return false;

	return true;
}
//-----------------------------------------------------------------------
function isDigit(c)
{
	return((c >= "0")&&(c <= "9"));
}
//-----------------------------------------------------------------------
function isACorrectInterval(n1, n2)
{
	if (isNaN(n1))
		return(false);

	if (isNaN(n2))
		return(false);

	if (n1 > n2)
		return(false);

	return(true);
}
//-----------------------------------------------------------------------
function isACorrectPeriod(n1, n2)
{
	var date1;
	var date2;
	var d1;
	var d2;

	if ((!isDate(n1))||(!isDate(n2)))
		return false;

	var date1 = n1.split("/");
	var date2 = n2.split("/");
	var d1 = new Date(date1[2], date1[1], date1[0]);
	var d2 = new Date(date2[2], date2[1], date2[0]);

	if (d1>d2)
		return(false);

	return(true);
}
//-----------------------------------------------------------------------
function charInString(c, s)
{
	for (i = 0; i<s.length; i++)
		if (s.charAt(i) == c)
			return(true);

    return false;
}
//-----------------------------------------------------------------------
function isFloat(s)
{
	var i;
	var c;

	if (s.length == 0)
		return false;

	 for (i = 0; i<s.length; i++){
			c = s.charAt(i);
			if (!isDigit(c)  && c !=',' && c !='.'){ /**/
			return false;
			}
	 }

	 return true;
}
//-----------------------------------------------------------------------
function isInteger(s)
{
	var i;
	var c;

	if (s.length == 0)
		return false;

    for (i = 0; i<s.length; i++){
        c = s.charAt(i);

        if (!isDigit(c))
			return false;
    }

    return true;
}
//-----------------------------------------------------------------------
function isNifCif(s)
{
	var i;
	var c;
	if (s.length == 0)
		return false;

    for (i = 0; i<s.length; i++){
        c = s.charAt(i);

        if (!isDigit(c) && !isLetter(c)){
			return false;
		}
    }
    return true;
}
//-----------------------------------------------------------------------
function isPositive(n)
{
	if (isNaN(n))
		return(false);

	return(n > 0);
}
//-----------------------------------------------------------------------
function isNegative(n)
{
	if (isNaN(n))
		return(false);

	return(n < 0);
}
//-----------------------------------------------------------------------
function isZero(n)
{
	if (isNaN(n))
		return(false);

	return(n == 0);
}
//-----------------------------------------------------------------------
function validarCif(texto){
 var cCIF  = texto;

 var tabla="JABCDEFGHI";
 var suma=0;

 if (cCIF.length!=9)
	return false;
 else{
  var primero= cCIF.substring(0,1);
  var mitad= cCIF.substring(1,cCIF.length-1);
  var ultimo=cCIF.substring(cCIF.length-1,cCIF.length);
  var fin=cCIF.substring(cCIF.length-1,cCIF.length);

  if (checkCaracter(1,fin))
   fin=fin.toUpperCase()


  if (!checkCaracter(1,primero))
  {
   return false;
  }
  else
  {
	return true;
   if (!checkCaracter(0,mitad))
   {
    return false;
   }
   else
   {
    if (!checkCaracter(3,ultimo))
    {

     return false;
    } else {
     if (checkCaracter(1,ultimo))
     {
      var may=ultimo.toUpperCase()
      ultimo=tabla.indexOf(may)
     }
     for (var i=1; i<8; i++)
     {
      if (i%2 == 0)
      {
       suma+=Number(cCIF.charAt(i))
      } else {
       aux=Number(2*cCIF.charAt(i))
       suma+=Number(aux%10 + aux/10)
      }
     }
     suma=suma%10
     suma+=Number(ultimo)
     // Objidentif.value = primero.toUpperCase() + mitad + fin ;
     if ((suma%10) == 0)
     {
      return true;
     }
     else
     {
      return false;
     }
    }
   }
  }
 }
}
//-----------------------------------------------------------------------
function validaNif(n){
	var nifChars1 = "ABCDEFGHPQSKLXabcdefghpqsklx";
	var nifChars2 = "ABCDEFGHTabcdefght";
	var nifChars3 = "TRWAGMYFPDXBNJZSQVHLCKE";
	var i;
	var longitud;
	var s = '';

	if(n.length!=9) {
			return false;
		}
    return true;

	for(i=0;i<n.length;i++)
		if (isDigit(n.charAt(i)) || isLetter(n.charAt(i)))
			s = s + n.charAt(i);


	for(i=1;i<s.length-1;i++){
		if(!isDigit(s.charAt(i))) return false;
	}

	// Si el primero y el último son numeros, el formato no es correcto
	if((isDigit(s.charAt(0))) && (isDigit(s.charAt(s.length-1)))) {
		return '';
	}

	// Si el primero es un numero, el ultimo seguro que es una letra
	if(isDigit(s.charAt(0))) {
		// VALIDAR FORMATO #3
		baseStr = s.substring(0,s.length-1);
		letra=s.charAt(s.length-1);
		letra=letra.toUpperCase();
	} else {
		// VALIDAR FORMATO #2
		//extranjero
		if (((s.substr(0,1))=='x')||((s.substr(0,1))=='X')){
			baseStr = s.substring(1,s.length-1);
			letra=s.charAt(s.length-1);
			letra=letra.toUpperCase();
		}
		else{
			baseStr = s.substring(0,s.length-1);
			letra=s.charAt(s.length-1);
			letra=letra.toUpperCase();
			}
	}

	if(!isInteger(baseStr)) return false;

	baseInt = Number(baseStr);
	indice = baseInt % 23;
	if(letra==nifChars3.charAt(indice))
		return true;
	else
		return false;
}
//-----------------------------------------------------------------------
function validarNif(n){
	if (validaNif(n)) return true;

	if (validarCif(n)) return true;

	return false;
}
//-----------------------------------------------------------------------
function validarEmail(s)
{
    var i = 1;
    var sLength = s.length;

    if (sLength < 5) return false;

    while ((i < sLength) && (s.charAt(i) != "@")) i++;

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != ".")) i++;

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}
//-----------------------------------------------------------------------
function validarCorreo(dir) {

	var caracteres_validos;
	var i;

	caracteres_validos = '1234567890QWERTYUIOPASDFGHJKLZXCVBNM_-.@qwertyuiopasdfghjklzxcvbnm';

	if (
		(dir.charAt(dir.length-1)=='-') ||
		(dir.charAt(dir.length-1)=='.') ||
		(dir.charAt(dir.length-1)=='@') ||
		(dir.charAt(dir.length-1)=='_')
		) {

		return false;
	}

	if (
		(dir.charAt(0)=='-') ||
		(dir.charAt(0)=='.') ||
		(dir.charAt(0)=='@') ||
		(dir.charAt(0)=='_')
		) {
		return false;
	}

	var j;
	j=0;
	for (i=0; i<dir.length; i++) {
		if (caracteres_validos.search(dir.charAt(i))==-1) {
			return false;
		}
		if (dir.charAt(i)=='@') j++;
	}

	//Si hay más de una @ la dirección es incorrecta
	if (j>1) {
		return false;
	}
	if (j==0) {
		return false;
	}

	if (dir.indexOf('.')==-1) return false;

	if (dir.indexOf('@.')!=-1) return false;
	if (dir.indexOf('.@')!=-1) return false;

	return true;

}
//-----------------------------------------------------------------------
function validarDC(entidad, sucursal, dc, numcuenta)
{
	var pesosDC = new Array(10);
	pesosDC[1] = 6;
	pesosDC[2] = 3;
	pesosDC[3] = 7;
	pesosDC[4] = 9;
	pesosDC[5] = 10;
	pesosDC[6] = 5;
	pesosDC[7] = 8;
	pesosDC[8] = 4;
	pesosDC[9] = 2;
	pesosDC[10] = 1;
	var j;
	var entsuc = entidad+sucursal;
	var sumapesos1=0;
	var sumapesos2=0;

	for (j=entsuc.length;j>0;j--)
		 sumapesos1+=((entsuc.charAt(j-1))*(pesosDC[(entsuc.length-j)+1]));

	var dc11=(sumapesos1%11);
	var dc1 = 11-dc11;

	if (dc1==11)
		dc1=0;
	if (dc1==10)
		dc1=1;

	for (j=numcuenta.length;j>0;j--)
		 sumapesos2+=((numcuenta.charAt(j-1))*pesosDC[(numcuenta.length-j)+1]);

	var dc21=(sumapesos2%11);
	var dc2 = 11-dc21;

	if (dc2==11)
		dc2=0;
	if (dc2==10)
		dc2=1;

	var dccorrecto=(dc1*10)+dc2;
	if(dccorrecto==dc)
		return true;

	return false;
}
//-----------------------------------------------------------------------
function validarPrefijo(n, codprov)
{
	var s;
	s = '';
	var p;

	for(i=0; i<n.length; i++)
		if ((n.charAt(i) >= '0') && (n.charAt(i) <= '9'))
			s = s + n.charAt(i);

	if (s.length < 4)
		return '';

	if ((s.substr(0, 3) == '900') || (s.substr(0, 3) == '902') || (s.substr(0, 1) == '6'))
		return s;

	p = new String(aPrefijo[codprov-1]);

	if (s.substr(0, p.length) != pref[codprov-1])
		return '';

	return s;
}
//-----------------------------------------------------------------------
function validarClave(str)
{
	for (i=0; i<str.length; i++)
		if (((!isLetter(str.charAt(i))) || (str.charAt(i)=='ñ') || (str.charAt(i)=='Ñ')) &&
			(!isDigit(str.charAt(i))))
			return(false);

	return(true);
}
//-----------------------------------------------------------------------
function ptas2euros(p)
{
	var fPrecio;
	var fDecimal;
	var fLider;

	fPrecio = p/166.386;

	fDecimal = Math.floor((fPrecio-Math.floor(fPrecio))*100);
	fLider = Math.floor((((fPrecio-Math.floor(fPrecio))*100)-fDecimal)*10);

	if (fLider >= 5)
		fLider = 0.01;
	else
		fLider = 0;

	if (fDecimal > 0)
		fDecimal = fDecimal/100.0;

	fPrecio = Math.floor(fPrecio);
	fPrecio = fPrecio+(fDecimal+fLider);
	return(fPrecio);
}
//-----------------------------------------------------------------------
function euros2ptas(e)
{
	return(e * 166.386);
}
//-----------------------------------------------------------------------
function validardigitos(digitos){
 for (i=0;i<digitos.length;i++)
     if (digitos.charAt(i)<'0' || digitos.charAt(i)>'9'){
        return(0);
     }
 return(1);
}

//-----------------------------------------------------------------------
function comprobarfecha(strFecha){
//Comprueba si el formato de una fecha es correcto.
//No controla los meses que tengan menos de 31 días
		if (strFecha.indexOf('/') == -1)
			return false;
		Dia = strFecha.substring(0, strFecha.indexOf('/'));
		Mes = strFecha.substring(strFecha.indexOf('/')+1, strFecha.lastIndexOf('/'));
		Ano = strFecha.substring(strFecha.lastIndexOf('/')+1, strFecha.length);
		if (isNaN(Ano) || isNaN(Dia) || isNaN(Mes))
			return false;
		if ((Dia < 1) || (Dia > 31))
			return false;
		if ((Mes < 1) || (Mes > 12))
			return false;
		if ((Ano.length > 4) || (Ano.length < 4))
			return false;

		return true;
}
//-----------------------------------------------------------------------
function comprobarCantidad(n)
{
return (!isNaN(n));
}
/*************************************************************************************************/
//Función limita a maxlen el total de caracteres incluidos en objetotext (textarea,text..),
//al mismo tiempo que en el control de salida (inputsalida) indicamos el número actual de caracterés que se incluyen
//en el control
function validarLenText(objetotext,maxlen,inputsalida){
var longitud;

longitud=objetotext.value.length;
if (longitud > maxlen){
   longitud=maxlen;
   objetotext.value=objetotext.value.substr(0,maxlen);
   alert('La longitud máxima permitida es '+maxlen+',el resto de caracteres serán ignorados');

}
inputsalida.value=maxlen-longitud;
}

/*************************************************************************************************/
//Función limita a maxlen el total de caracteres incluidos en objetotext (textarea,text..),
//al mismo tiempo que en el control de salida (inputsalida) indicamos el número actual de caracterés que se incluyen
//en el control
function validarLenTextArea(objetotext,maxlen){
var longitud;

longitud=objetotext.value.length;
if (longitud > maxlen){
   longitud=maxlen;
   objetotext.value=objetotext.value.substr(0,maxlen);
   alert('La longitud máxima permitida es '+maxlen+', el resto de caracteres serán ignorados');

}
}
function Trim(cadena)
{
	return(ltrim(rtrim(cadena)));
}

function ltrim(str)
{

	var whitespace=new String(' \t\n\r');
	var s=new String(str);

	if (whitespace.indexOf(s.charAt(0)) != -1)
	{

		var j=0, i=s.length;

		while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
			j++;

		s=s.substring(j, i);
	}
	return s;
}

//------------------------------------------------------------------

function rtrim(str)
{
	var whitespace=new String(' \t\n\r');
	var s=new String(str);

	if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
	{

		var j=0, i = s.length-1;

		while (i > j && whitespace.indexOf(s.charAt(i)) != -1)

		i--;
		s = s.substring(j, i+1);

}

return s;

}

function ValidarFormulario(formulario)
{
	for (i = 0; i < formulario.length; i++)
	{	
		var elemento = formulario.elements[i];

		var tipo = null;
		if(elemento.src != null && elemento.src.length > 0)
		{
			var ultimo = elemento.src.lastIndexOf('/',elemento.src.length);
			tipo = elemento.src.substring(ultimo+1,elemento.src.length);
			//alert(elemento.name+' '+elemento.src+' '+tipo);
			if(tipo == '' || tipo.indexOf('.',0) >= 0) tipo = null;
		}
		
		var completo,correcto,longitudminima;
		completo = true; correcto = true; longitudminima = true;
		if (elemento.alt != null && elemento.alt.charAt(0) == '*'){
			//Se comprueban que algun elemento de radio esta chequeado.	
			if (elemento.type == 'radio'){
				objeto = eval('formulario.'+elemento.name);
				chequeado = false;
				for (j=0;j<objeto.length;j++)
				    if (objeto[j].checked) chequeado=true;
				if (!chequeado){
					alert('Debe elegir una opción para el campo "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length));
					return false;
				}
//				for(i=0;elemento.length)
			}
			if (elemento.type == 'checkbox'){
				objeto = eval('formulario.'+elemento.name);
				if (!objeto.checked){
					alert('Debe Marcar la casilla "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length));
					return false;
				}
			}

			if ( ((elemento.type == 'file' || elemento.type == 'text'|| elemento.type == 'password' || elemento.type == 'textarea' || elemento.type == 'hidden')
			&& Trim(elemento.value).length <= 0) || (elemento.type.toString().charAt(0) == 's' && elemento.selectedIndex <= 0) )
				completo = false;
		}			//alert(elemento.selectedIndex + " " + elemento.alt + " " + elemento.value + " " + elemento.type + " " + completo);
		/*
					Añadimos ademas la comprobación de cada campo del formulario en base al tipo de datos que debe
		contener para asegurarnos que el formato es correcto, además de si la longitud del mismo es la
		mínima exigida.
		Para ellos utilizaremos los siguientes tipos de datos
		int, float, date, email
		*/
		if (!completo && elemento.minlength != null){
						 if ( elemento.type.toLowerCase() == 'text'  && Trim(elemento.value).length < Number(elemento.minlength))
			 longitudminima = false;
		}
		
		if (completo && longitudminima && tipo != null){
						 if ( elemento.type.toLowerCase() == 'text'  && elemento.value.length > 0){
			 if (tipo.toLowerCase() == 'date')correcto = isDate(elemento.value);
			 if (tipo.toLowerCase() == 'int') correcto = isInteger(elemento.value);
			 if (tipo.toLowerCase() == 'tlf'){
									 if (isInteger(elemento.value) && elemento.value.length>=9 )
					 correcto = true;
					else{
											alert('El Formato de Teléfono del campo "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" es incorrecto');
					return false;
					}
			 }
			 if (tipo.toLowerCase() == 'sexo'){
			    if (elemento.value.toLowerCase() == 'h' || elemento.value.toLowerCase() =='m' )
					correcto = true;
				else correcto = false;
			 }
			 if (tipo.toLowerCase() == 'float') correcto = isFloat(elemento.value);
			 if (tipo.toLowerCase() == 'email') correcto = validarCorreo(elemento.value);
 		    if (tipo.toLowerCase() == 'nif') correcto = validarNif(elemento.value);
			if (tipo.toLowerCase() == 'ccc'){
				if (elemento.value != '00000000000000000000')
					correcto = validarDC(elemento.value.substring(0,4),elemento.value.substring(4,8),elemento.value.substring(8,10),elemento.value.substring(10,20));
				else
					correcto = false
			}

						 }
		}
		if (! completo)
		{
			alert('El campo "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" es obligatorio');
			return false;
		}
		if (! longitudminima)
		{
			alert('El campo "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" ha de tener una Longitud mínima de ' + elemento.minlength + ' caracteres');
			return false;
		}
		if (! correcto)
		{
			if (tipo.toLowerCase() == 'ccc'){
					alert('Los dígitos de"' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" son incorrectos, compruebelos de nuevo ');
				return false;
			}

			if (tipo.toLowerCase() == 'date'){
					alert('El Formato de "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" ha de ser dd/mm/aaaa');
				return false;
			}
			if (tipo.toLowerCase() == 'sexo'){
					alert('El Formato de "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" ha de ser H (Hombre) o M (Mujer)');
				return false;
			}
			alert('El Formato del campo "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" es Incorrecto');
			return false;
		}
	}
	return true;
}
function ValidarFormulario2a(formulario)
{
	for (i = 0; i < formulario.length; i++)
	{
		var elemento = formulario.elements[i];
		var completo,correcto,longitudminima;
		completo = true; correcto = true; longitudminima = true;
		if (elemento.alt != null && elemento.alt.charAt(1) == '*'){
			if ( ((elemento.type == 'file' || elemento.type == 'text'|| elemento.type == 'password' || elemento.type == 'textarea')
			&& Trim(elemento.value).length <= 0) || (elemento.type.toString().charAt(0) == 's' && elemento.selectedIndex <= 0) )
				completo = false;
		}

			//alert(elemento.selectedIndex + " " + elemento.alt + " " + elemento.value + " " + elemento.type + " " + completo);
		/*
					Añadimos ademas la comprobación de cada campo del formulario en base al tipo de datos que debe
		contener para asegurarnos que el formato es correcto, además de si la longitud del mismo es la
		mínima exigida.
		Para ellos utilizaremos los siguientes tipos de datos
		int, float, date, email
		*/
		if (!completo && elemento.minlength != null){
						 if ( elemento.type.toLowerCase() == 'text'  && Trim(elemento.value).length < Number(elemento.minlength))
			 longitudminima = false;
		}
		if (completo && longitudminima && tipo != null){
						 if ( elemento.type.toLowerCase() == 'text'  && elemento.value.length > 0){
			 if (tipo.toLowerCase() == 'date') correcto = isDate(elemento.value);
			 if (tipo.toLowerCase() == 'int') correcto = isInteger(elemento.value);
			 if (tipo.toLowerCase() == 'tlf'){
									 if (isInteger(elemento.value) && elemento.value.length>=9 )
					 correcto = true;
					else{
						alert('El Formato de Teléfono del campo "' + elemento.alt.substring(elemento.alt.charAt(1) == '*' ? 1:0, elemento.alt.length) + '" es incorrecto');
					return false;
					}
			 }
			 if (tipo.toLowerCase() == 'sexo'){
			    if (elemento.value.toLowerCase() == 'h' || elemento.value.toLowerCase() =='m' )
					correcto = true;
				else correcto = false;
			 }
			 if (tipo.toLowerCase() == 'float') correcto = isFloat(elemento.value);
			 if (tipo.toLowerCase() == 'email') correcto = validarCorreo(elemento.value);
 		    if (tipo.toLowerCase() == 'nif') correcto = validarNif(elemento.value);
			if (tipo.toLowerCase() == 'ccc'){
				if (elemento.value != '00000000000000000000')
					correcto = validarDC(elemento.value.substring(0,4),elemento.value.substring(4,8),elemento.value.substring(8,10),elemento.value.substring(10,20));
				else
					correcto = false
			}

						 }
		}
		if (! completo)
		{
			alert('El campo "' + elemento.alt.substring(elemento.alt.charAt(1) == '*' ? 1:0, elemento.alt.length) + '" es obligatorio');
			return false;
		}
		if (! longitudminima)
		{
			alert('El campo "' + elemento.alt.substring(elemento.alt.charAt(1) == '*' ? 1:0, elemento.alt.length) + '" ha de tener una Longitud mínima de ' + elemento.minlength + ' caracteres');
			return false;
		}
		if (! correcto)
		{
			if (tipo.toLowerCase() == 'ccc'){
					alert('Los dígitos de"' + elemento.alt.substring(elemento.alt.charAt(1) == '*' ? 1:0, elemento.alt.length) + '" son incorrectos, compruebelos de nuevo ');
				return false;
			}

			if (tipo.toLowerCase() == 'date'){
					alert('El Formato de "' + elemento.alt.substring(elemento.alt.charAt(1) == '*' ? 1:0, elemento.alt.length) + '" ha de ser dd/mm/aaaa');
				return false;
			}
			if (tipo.toLowerCase() == 'sexo'){
					alert('El Formato de "' + elemento.alt.substring(elemento.alt.charAt(1) == '*' ? 1:0, elemento.alt.length) + '" ha de ser H (Hombre) o M (Mujer)');
				return false;
			}
			alert('El Formato del campo "' + elemento.alt.substring(elemento.alt.charAt(1) == '*' ? 1:0, elemento.alt.length) + '" es Incorrecto');
			return false;
		}
	}
	return true;
}
function ValidarCampo(elemento){
	var completo,correcto,longitudminima;
	completo = true; correcto = true; longitudminima = true;
	if (elemento.alt != null && elemento.alt.charAt(0) == '*'){
            if (elemento.type == 'radio'){
                    objeto = eval('formulario.'+elemento.name);
                    chequeado = false;
                    for (j=0;j<objeto.length;j++)
                        if (objeto[j].checked) chequeado=true;
                    if (!chequeado){
                            alert('Debe elegir una opción para el campo "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length));
                            return false;
                    }
//				for(i=0;elemento.length)
            }
            if (elemento.type == 'checkbox'){
                    objeto = eval('formulario.'+elemento.name);
                    if (!objeto.checked){
                            alert('Debe Marcar la casilla "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length));
                            return false;
                    }
            }
		if ( ((elemento.type == 'file' || elemento.type == 'text'|| elemento.type == 'password' || elemento.type == 'textarea')
		&& Trim(elemento.value).length <= 0) || (elemento.type.toString().charAt(0) == 's' && elemento.selectedIndex <= 0) )
			completo = false;
	}

		//alert(elemento.selectedIndex + " " + elemento.alt + " " + elemento.value + " " + elemento.type + " " + completo);
	/*
				Añadimos ademas la comprobación de cada campo del formulario en base al tipo de datos que debe
	contener para asegurarnos que el formato es correcto, además de si la longitud del mismo es la
	mínima exigida.
	Para ellos utilizaremos los siguientes tipos de datos
	int, float, date, email
	*/
	if (completo && elemento.minlength != null){
		if ( elemento.type.toLowerCase() == 'text'  && Trim(elemento.value).length < Number(elemento.minlength))
			longitudminima = false;
	}
	if (completo && longitudminima && tipo != null){
	   if ( elemento.type.toLowerCase() == 'text'  && elemento.value.length > 0){
		 	if (tipo.toLowerCase() == 'date') correcto = isDate(elemento.value);
		 	if (tipo.toLowerCase() == 'int') correcto = isInteger(elemento.value);
		 	if (tipo.toLowerCase() == 'tlf'){
				if (isInteger(elemento.value) && elemento.value.length>=9 )
					correcto = true;
				else{
					alert('El Formato de Teléfono del campo "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" es incorrecto');
					return false;
				}
		 	}
			if (tipo.toLowerCase() == 'sexo'){
				if (elemento.value.toLowerCase() == 'h' || elemento.value.toLowerCase() =='m' )
					correcto = true;
				else correcto = false;
			}
			if (tipo.toLowerCase() == 'float') correcto = isFloat(elemento.value);
			if (tipo.toLowerCase() == 'email') correcto = validarCorreo(elemento.value);
 		    if (tipo.toLowerCase() == 'nif') correcto = validarNif(elemento.value);
			if (tipo.toLowerCase() == 'ccc'){
				if (elemento.value != '00000000000000000000')
					correcto = validarDC(elemento.value.substring(0,4),elemento.value.substring(4,8),elemento.value.substring(8,10),elemento.value.substring(10,20));
				else
					correcto = false
			}
		}
	}
	if (! completo)
	{
		alert('El campo "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" es obligatorio');
		return false;
	}
	if (! longitudminima)
	{
		alert('El campo "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" ha de tener una Longitud mínima de ' + elemento.minlength + ' caracteres');
		return false;
	}
	if (! correcto)
	{
		if (tipo.toLowerCase() == 'ccc'){
				alert('Los dígitos de"' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" son incorrectos, compruebelos de nuevo ');
			return false;
		}

		if (tipo.toLowerCase() == 'date'){
				alert('El Formato de "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" ha de ser dd/mm/aaaa');
			return false;
		}
		if (tipo.toLowerCase() == 'sexo'){
				alert('El Formato de "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" ha de ser H (Hombre) o M (Mujer)');
			return false;
		}

		alert('El Formato del campo "' + elemento.alt.substring(elemento.alt.charAt(0) == '*' ? 1:0, elemento.alt.length) + '" es Incorrecto');
		return false;
	}

return true;
}
/**********************************************************************************************************************************************************************/
function FormatDoble(entrada,ndecimales){
	var antes,despues;
	var salida;
	
	antes=''; despues='';
	if (entrada.indexOf(',')>=0 )
		antes = entrada.substring(0,entrada.indexOf(','));
	else{
		despues = entrada.substring((entrada.indexOf(',')+1),(entrada.length-1));			
		despues = despues.substring(0,1);
	}
		
		while (antes.length>0){
			i=antes.length-1;
			if (antes.length>3){			
				salida = '.' + antes.substring(i-3,i);
				antes = antes.substring(0,i-3);
			}
			else{
				salida = antes;
				antes = '';
				}
		}	
		
		salida = antes + despues;
		return salida;
	}
/**********************************************************************************************************************************************************************/
function formatDigitos(objeto){
 var valor,salida;
 
 var entera,decimal,c;
 valor = objeto.value;
 salida = '';
 
 entera = '';
 decimal = '';
 salida = '';
 entrada = valor;
 	  
 for (i = 0; i<valor.length; i++){
	if (valor.charAt(i)!='.')
		salida += valor.charAt(i);
 }
 valor = salida;
 if (valor.indexOf(',')>=0){
     entera= valor.substr(0,(valor.indexOf(',')));
	 decimal = valor.substr((valor.indexOf(',')),valor.length);
 }
 else{
	 entera = valor;
	 decimal = '';	 
	 }
 salida='';	 
 
 if (decimal.length>3)
    decimal= decimal.substr(0,3);	
 
 while(entera.length>0){
    if (entera.length>3){
		if ((entera.length%3) > 0){
		   salida +=  entera.substr(0,(entera.length%3)) + '.';
		   entera = entera.substr(((entera.length%3)),entera.length);
		}else{
		   salida +=  entera.substr(0,3) + '.';
		   entera = entera.substr(3,entera.length);
			}			
	}
	else{
		salida += entera;
	    entera = '';
	}

 }
 
 if (decimal.length>0)
 	salida += decimal;
 if (entrada!=salida)	
    objeto.value = salida;
}
/************************************************************************************/
function formatDigitosStr(entrada){
 var valor,salida;
 
 var entera,decimal,c;
 valor = entrada;
 salida = '';
 
 entera = '';
 decimal = '';
 salida = '';
 entrada = valor;
 	  
 for (i = 0; i<valor.length; i++){
	if (valor.charAt(i)!='.')
		salida += valor.charAt(i);
 }
 valor = salida;
 if (valor.indexOf(',')>=0){
     entera= valor.substr(0,(valor.indexOf(',')));
	 decimal = valor.substr((valor.indexOf(',')),valor.length);
 }
 else{
	 entera = valor;
	 decimal = '';	 
	 }

 if (entera.length<=3 && decimal.length<=0) return(entrada);
 salida='';	 

 if (decimal.length>3)
    decimal= decimal.substr(0,3);	
 
 while(entera.length>0){
    if (entera.length>3){
		if ((entera.length%3) > 0){
		   salida +=  entera.substr(0,(entera.length%3)) + '.';
		   entera = entera.substr(((entera.length%3)),entera.length);
		}else{
		   salida +=  entera.substr(0,3) + '.';
		   entera = entera.substr(3,entera.length);
			}			
	}
	else{
		salida += entera;
	    entera = '';
	}

 }
 
 if (decimal.length>0)
	 salida = salida.concat(decimal);
 
 return(salida);
}
/******************************************************************************************/
function quitarnoDigitos(valor){
	var salida;
	
 salida = '';	
 for (i = 0; i<valor.length; i++){
	if (valor.charAt(i)!='.')
		salida += valor.charAt(i);
 }	
 return salida;
	}
	
/******************************************************************************************/
function reemplazaChar(entrada,cadenaorigen,cadenadestino,pintar){
	var salida;
	
 salida = '';	

 for (i = 0; i<entrada.length; i++){
	if (entrada.charAt(i)==cadenaorigen)
		salida += cadenadestino;
	else
		salida += entrada.charAt(i);	

 }	

 return salida;
}
/******************************************************************************************/
