var form
var bgColor="red";
var color="white";
var bgColorOriginal="white";
var colorOriginal="black";
var i=0;

function validaFormulario(form){
	this.form = form;
	for(i=0;i<form.length;i++){
		tipo = form[i].className;

		arrTipos = tipo.split("_");
		
		if (arrTipos.length == 1)
		{
			arrTipos = new Array(1);
			arrTipos[0] =form[i].className;
		}

		for(j=0;j<arrTipos.length;j++){
			if (arrTipos[j] != "")
			{				
				resultado = eval(arrTipos[j] + "()");	
				
				if (resultado)
				{
					return false;
				}
			}
						
		}
		if (form[i].type != "button" && form[i].type != "checkbox" && form[i].type != "radio"){
			//form[i].style.color=colorOriginal;
			//form[i].style.backgroundColor=bgColorOriginal;
		}
	}

	//OPCIONAL:	todos validados, justo antes de enviar, duplicamos las comillas simples "'" para los insert de sql
	for(i=0;i<form.length;i++){		
		if (form[i].type){
			form[i].value = form[i].value.replace(/'/g, "''");
		}
	}

	//form.submit();

	return true;
}

function error(){
	alert(form[i].alt);
	form[i].focus();
	form[i].style.color=color;
	form[i].style.backgroundColor=bgColor;

	return 1;
}

function obligatorio(){
	if (form[i].value == "")
	{	
		return error();
	}
	return 0;	
}

function numero(){
	if (isNaN(form[i].value))
	{
		return error();
	}
	return 0;	
}
function numeropositivo(){
	if (isNaN(form[i].value))
	{
		return error();
	}
	if (form[i].value<1)
	{
		return error();
	}
	return 0;	
}

function seleccion(){
	if (form[i].selectedIndex == 0)
	{
		return error();
	}
	return 0;
	
}

function contrasena(){
	if (form[i].value.indexOf(" ")>0)
	{
		return error();
	}
	if (form[i].value.indexOf("'")>0)
	{
		return error();
	}
	if (form[i].value.indexOf("/")>0)
	{
		return error();
	}
	if (form[i].value.indexOf("\\")>0)
	{
		return error();
	}
	return 0;
	
}

function email(){
	if (form[i].value == "")
	{
		return 0;
	}

	if (form[i].value.indexOf(" ")>0)
	{
		return error();
	}
	if (form[i].value.indexOf("@")<0)
	{
		return error();
	}
	if (form[i].value.indexOf(".")<0)
	{
		return error();
	}
	
	arrCadenas = form[i].value.split("@");
	
	if (arrCadenas.length != 2)
	{
		return error();
	}	

	arrCadenas2 = form[i].value.split(".");

	if (arrCadenas2.length < 2)
	{
		return error();
	}

	if (arrCadenas2[arrCadenas2.length - 1].length < 2)
	{
		return error();
	}

	return 0;

}

function decimal(){
	if (form[i].value == "")
	{
		return 0;
	}
	if(!parseFloat(form[i].value)){
		return error();
	}

	return 0;
}
arrLetras = 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');
function nif(){
	
	if (form[i].value == "")
	{
		return 0;
	}
	
	letra = form[i].value.charAt(form[i].value.length - 1);
	
	numeroNif = form[i].value.substring(0, form[i].value.length - 1);
	
	if (isNaN(numeroNif))
	{
		return error();
	}
	if(arrLetras[numeroNif%23] != letra.toUpperCase()){
		return error();
	}

	return 0;
}
function cif(){

	if (form[i].value == "")
	{
		return 0;
	}
	
    temp = form[i].value.toUpperCase(); // pasar a mayúsculas

    if (!/^[A-Za-z0-9]{9}$/.test(temp)){ // Son 9 dígitos? 
		//alert ("Longitud incorrecta, un CIF consta de 9 dígitos");
		return error();

    }else if (!/^[ABCDEFGHKLMNPQS]/.test(temp)){ // Es una letra de las admitidas ?
		//alert("El primer dígito es incorrecto, debe ser una letra de las siguientes: A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S ");
		return error();
    }

    
    v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
    temp2 = 0; 
    var temp1;


    for( j = 2; j <= 6; j += 2 ) 
    {
      temp2 = temp2 + v1[ parseInt(form[i].value.substr(j-1,1)) ];
      temp2 = temp2 + parseInt(form[i].value.substr(j,1));
    };

    temp2 = temp2 + v1[ parseInt(form[i].value.substr(7,1)) ];

    temp2 = (10 - ( temp2 % 10));

    if( temp2 == 10 ){
		//alert( "El dígito de control es: J ó 0" );
		if (form[i].value != "J" && form[i].value != "0" )
		{
			return error();
		}	
    }else{
      //alert( "El dígito de control es: "+temp2 ); 
		if (temp2 != form[i].value.charAt(form[i].value.length - 1))
		{
			return error();
		}
	}

    return 0;
}

function radio(){
	longitud = eval("document." + document.frm.name + "." + form[i].name  + ".length");
	
	var chequeado = false;

	if (!longitud)
	{		
		if (!form[i].checked)
		{
			return error();
		}
	}else{
		for (j=0;j< longitud;j++ )
		{
			if (eval("document." + document.frm.name + "." + form[i].name  + "[" + j + "].checked"))
			{
				chequeado = true;
			}
		}
		if (!chequeado)
		{
			return error();
		}
	}
}

function check(){
	if (document.frm[form[i].name].length){
		longitud = eval("document." + document.frm.name + "." + form[i].name  + ".length");
	}else{
		longitud = 0;
	}
	
	var chequeado = false;

	if (!longitud)
	{		
		if (!form[i].checked)
		{
			return error();
		}
	}else{
		for (j=0;j< longitud;j++ )
		{
			if (eval("document." + document.frm.name + "." + form[i].name  + "[" + j + "].checked"))
			{
				chequeado = true;
			}
		}
		if (!chequeado)
		{
			return error();
		}
	}
}

function fecha(){
	var cadenaFechaNumerica = "";
	var anio = "";
	var mes = "";
	var dia = "";
	var bisiesto=0;
	var separador = "/";
	var flag=1;
	var longuitud=0;
	var inicio=0;
	var fin=0;
	
	var fecha = form[i].value;
	
	//fecha vacia
	if(fecha==""){	 
		return 0;
	}
	 
	/*******************************************************************************************************************/
	/*******************************************************************************************************************/
	/*******************************************************************************************************************/
	while((flag==1) && (longuitud<fecha.length)){
		if(isNaN(fecha.substring(longuitud,longuitud+1))!=0){
			separador = fecha.substring(longuitud,longuitud+1);
			flag = 0;
		}
		longuitud++;
	}
	 
	if(flag==1){
		return error();
	}
	 
	fin = fecha.indexOf(separador,inicio);
	if(fin!=0){
		dia = fecha.substring(inicio,fin);
		inicio = fin + 1;
	}
	else{
		return error();
	}
	 
	fin = fecha.indexOf(separador,inicio);
	if(fin > 0){
		mes = fecha.substring(inicio,fin);
		inicio = fin +1;
	}else{
		return error();	 
	}
	 
	fin=fecha.length; 
	anio = fecha.substring(inicio,fin);
	 
	if (isNaN(anio) || isNaN(mes) || isNaN(dia))
	{	
		return error();
	}
	 
	if((anio.length<2) || (anio.length>4) || (anio.length==3)){ 
		return error();
	}
	 
	 
	if((dia.length<2) && (eval(dia)<=9)){
		dia = "0" + dia;
	}
	 
	if((mes.length<2) && (eval(mes)<=9)){
		mes = "0" + mes;
	}
	 
	if(anio.length==2){
		anio = "20" + anio;
	}
 
 
 /*******************************************************************************************************************/
 /*******************************************************************************************************************/
 /*******************************************************************************************************************/
 
 
 
    /* Validacion del mes*/ 
    if ((eval(mes) < 1) || (eval(mes) > 12)) {
		return error();
    }
            
    /* Validacion del día*/
    if (eval(dia) < 1) {
		return error();
    }
    
    /* Validacion anio bisiesto / febrero / di */
    if ((eval(anio) % 4 == 0) || (eval(anio) % 100 == 0) || (eval(anio) % 400 == 0)) {
        bisiesto = 1;
    }
    if ((eval(mes) == 2) && (bisiesto == 1) && (eval(dia) > 29)) {
		return error();
    }
    
    if ((eval(mes) == 2) && (bisiesto != 1) && (eval(dia) > 28)) {
		return error();
    }
    
    /* Validacion of otros meses */
    if ((eval(dia) > 31) && ((eval(mes) == 1) || (eval(mes) == 3) || (eval(mes) == 5) || (eval(mes) == 7) || (eval(mes) == 8) || (eval(mes) == 10) || (eval(mes) == 12))) {
		return error();
    }
    if ((eval(dia) > 30) && ((eval(mes) == 4) || (eval(mes) == 6) || (eval(mes) == 9) || (eval(mes) == 11))) {
		return error();
    }
    form[i].value = dia + separador + mes + separador + anio;

}

function tarjeta(){
	var Num = form[i].value;
	var DC = "";
	var Sum = 0;
	var AuxNum = "";
	var Digit = 0;
	var Resto = 0;
	var Check = 0;
	DC = Num.substr(Num.length - 1);
	AuxNum = Num.substr(0, Num.length - 1);
	do {
		Digit = parseInt(AuxNum.substr(AuxNum.length - 1, 1)) * 2;
		Digit = Digit.toString();
		if(Digit.length > 1)
			Sum = Sum + (parseInt(Digit.substr(0, 1)) +	parseInt(Digit.substr(1, 1)));
		else
			Sum = Sum + parseInt(Digit);
		if(AuxNum.length > 2)
			AuxNum = AuxNum.substr(0, AuxNum.length - 2);
		else
			AuxNum = AuxNum.substr(0, AuxNum.length - 1);
	}while(AuxNum.length > 0);
	AuxNum = Num.substr(0, Num.length - 2);
	do {
		Sum = Sum + parseInt(AuxNum.substr(AuxNum.length - 1, 1));
		if(AuxNum.length >= 2)
			AuxNum = AuxNum.substr(0, AuxNum.length - 2);
		else
			AuxNum = AuxNum.substr(0, AuxNum.length - 1);
	}while(AuxNum.length > 0);
	Resto = Sum % 10;
	if (Resto == 0)
		Check = 0;
	else
		Check = 10 - Resto;

	Check = Check.toString();
	if(DC == Check)
		return 0;
	else 
		return error();
}

//para poder poner al los botones la clase botón
function boton(){
	return 0;
}