
function validaCampos(ids){

	// Evalua si alguno de los campos de formulario recibidos 
	// no contiene ningun caracter. En caso que esto pase, 
	// se muestra una ventana de 'alert' indicando que campos
	// no han sido completados.

	error = "";
	pass=true;

	for (j=0; j < ids.length; j++) {
	
		idactual = document.getElementById(ids[j][0]);
		
		if (checkCondition(ids[j][2], idactual.value)){
			error += "-> " + ids[j][1] + "\n";
			pass = false;
		} else {
		}
	}
	
	if (!pass){
		alert("Se detectaron los siguientes errores:\n\n" + error);
		return false;
	} else {
		return true;
	}
}	

function checkCondition(type, value) {
	
	switch (type) {
		case 0: 
			return (true)
			break
		case 1: 
			return (value == "" || value == "-1")
			break
		case 2:
			return (value == "" || !checkDate(value))
			break
		case 3:
			return (value == "" || !buscar(value,'@'))
			break
		case 4:
			return (value == "" || isNaN(value))
			break
		case 5:
			return (!validaCUIT(value) || isNaN(value))
			break
		case 6:
			return (parseInt(value) <= 0 || parseInt(value) > 10000)
			break
		case 7:
			return (value != "" && isNaN(value))
			break	
		case 8:
			return (value != "" && !isNaN(value))
			break				
		default:
			return (value == "" || value == "-1")
	}
}

function validaCUIT(_nroCUIT){

	var arrayCUIT = new Array();
	var arrayMult = new Array();
	var arrayResult = new Array();
	var suma;
	var dividendo;
	var producto;
	var diferencia;
	var digitoVerif;
	
	arrayMult[0] = 5;
	arrayMult[1] = 4;
	arrayMult[2] = 3;
	arrayMult[3] = 2;
	arrayMult[4] = 7;
	arrayMult[5] = 6;
	arrayMult[6] = 5;
	arrayMult[7] = 4;
	arrayMult[8] = 3;
	arrayMult[9] = 2;

	arrayCUIT[0] = parseInt(_nroCUIT.substring(0,1));	
	arrayCUIT[1] = parseInt(_nroCUIT.substring(1,2));
	arrayCUIT[2] = parseInt(_nroCUIT.substring(2,3));
	arrayCUIT[3] = parseInt(_nroCUIT.substring(3,4));
	arrayCUIT[4] = parseInt(_nroCUIT.substring(4,5));
	arrayCUIT[5] = parseInt(_nroCUIT.substring(5,6));
	arrayCUIT[6] = parseInt(_nroCUIT.substring(6,7));
	arrayCUIT[7] = parseInt(_nroCUIT.substring(7,8));
	arrayCUIT[8] = parseInt(_nroCUIT.substring(8,9));
	arrayCUIT[9] = parseInt(_nroCUIT.substring(9,10));
	arrayCUIT[10] = parseInt(_nroCUIT.substring(10));
	
	
	for (i=0; i<10; i++) {
		arrayResult[i] = arrayMult[i] * arrayCUIT[i]; 	
	}
	
	suma = 0;
	for (i=0; i<10; i++) {
		suma = suma + arrayResult[i]; 	
	}	
	
	dividendo = Math.floor(suma / 11);
	producto = dividendo * 11;
	diferencia = suma - producto;
	
	if (diferencia > 0) 		
		digitoVerif = 11 - diferencia
	else
		digitoVerif = diferencia

	if (digitoVerif == arrayCUIT[10]) 
		return true;
		
	return false;	
}

function buscar(cadena, letra) {

	return (cadena.indexOf(letra) != -1);

}

function checkDate(cadena) {

	var Fecha = cadena;
	// Cadena Año
	var Ano= new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length));
	// Cadena Mes
	var Mes= new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")));
	// Cadena Día
	var Dia= new String(Fecha.substring(0,Fecha.indexOf("/")));

	// Valido el año
	if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){
		return false;
	}
	// Valido el Mes
	if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){
		return false;
	}
	// Valido el Dia
	if (isNaN(Dia) || parseInt(Dia)<1 || parseInt(Dia)>31){
		return false;
	}
	if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
		if (Mes==2 && Dia > 28 || Dia>30) {
			return false;
		}
	}
	
	return true;

}

function clase(item, estado){

	//0-Blur   1-Focus    2-Error en el submit del form
	
	switch(estado) {
	case 0: item.className="boxBlur"; break;
	case 1: item.className="boxFocus"; break;
	case 2: item.className="boxError"; break;
	default: item.className="boxBlur";
	}
	
	return;
	
}