
/************************************************************************************************************
(C) Xtranet 2008 www.xtranet.es
Última Actualización: 18/02/2008
************************************************************************************************************/
errores_array = new Array();
errores_array[0] = new Array("","Se han encontrado los siguientes errores:","The following errors have been found:");
errores_array[1] = new Array("","- El campo WWWW debe rellenarse.","- The field WWWW must be filled out.");
errores_array[2] = new Array("","- El campo WWWW debe ser un email valido.","- The field WWWW must feature a valid e-mail address.");
errores_array[3] = new Array("","- El campo WWWW debe ser de tipo numerico.","- The field WWWW must feature a numerical value.");
errores_array[4] = new Array("","- Debes seleccionar un valor en el campo WWWW.","- You have to select a value for field WWWW.");
errores_array[5] = new Array("","- El campo WWWW debe ser un numero de teléfono válido: i.e. (+34) 93 222 22 22","- The field WWWW must feature a valid telephone number: i.e. (+1) 212 429-3105 or (+44) 20 7720 1030");
errores_array[6] = new Array("","- El campo WWWW debe tener un maximo de XXXX caracteres.","- The field WWWW can contain upto XXXX characters.");
errores_array[7] = new Array("","- El campo WWWW debe estar entre RRRR1 y RRRR2.","- The field WWWW can range from RRRR1 to RRRR2.");
errores_array[8] = new Array("","- Debe marcar la opción 'He leido el Aviso Legal'.","- You must check the option 'I have read the Legal Disclaimer'.");
errores_array[9] = new Array("","- El campo WWWW debe tener XXXX caracteres.","- The field WWWW can contain XXXX characters.");
errores = new Array();
function iniciaErrores(idioma){
	for(i=0;i<errores_array.length;i++){
		errores[i] = errores_array[i][idioma];	
	}
}
iniciaErrores(1);
campos = new Array("");
function creaCampo(nombre, tipo, propiedades, tamano, respuesta,requerido){
	campos[campos.length] = new Array(nombre, tipo, propiedades, tamano, respuesta, requerido);
}
error_v = "";
function compruebaCampos(oForm){
	//oForm = document.base;
	error_v ="";
	for(var i=1; i<= campos.length-1; i++){
		nombre_v = campos[i][0];
		tipo_v = campos[i][1];
		propiedades_v = campos[i][2];
		tamano_v = campos[i][3];
		respuesta_v = campos[i][4];
		if(campos[i][5] == "R"){
			requerido_v = true;
		}else{
			requerido_v = false;
		}
		if(tipo_v == "text"){	
		    if(propiedades_v == "texto"){
				if(oForm[nombre_v].value.length == 0 && requerido_v){
					error_v += errores[1].replace("WWWW",respuesta_v)+"\n";
				}
			}else if(propiedades_v == "telefono"){
				tmp = oForm[nombre_v].value.replace("-","").replace("+","").replace("(","").replace(")","").replace(" ","").replace(" ","").replace(" ","").replace(" ","").replace(" ","");
				if(oForm[nombre_v].value.length == 0 && requerido_v){
					error_v += errores[1].replace("WWWW",respuesta_v)+"\n";
				}else if(isNaN(Number(tmp))){
				   error_v += errores[5].replace("WWWW",respuesta_v)+"\n";
				}
			}else if(propiedades_v == "numero"){
				tmp = oForm[nombre_v].value;
				if(oForm[nombre_v].value.length == 0 && requerido_v){
					error_v += errores[1].replace("WWWW",respuesta_v)+"\n";
				}else if(isNaN(Number(tmp))){
				   error_v += errores[3].replace("WWWW",respuesta_v)+"\n";
				}else if(tamano_v.length>0 && (oForm[nombre_v].value.length > tamano_v || oForm[nombre_v].value.length < tamano_v)){
					error_v += errores[9].replace("WWWW",respuesta_v).replace("XXXX",tamano_v)+"\n";
				}
			}else if(propiedades_v == "rango"){
				tmp = oForm[nombre_v].value;
				tmp2 = tamano_v.split("-");
				//alert(tmp);
				if(oForm[nombre_v].value.length == 0 && requerido_v){
					error_v += errores[1].replace("WWWW",respuesta_v)+"\n";
				}else if(isNaN(Number(tmp)) && tmp.length > 0){
				   	error_v += errores[3].replace("WWWW",respuesta_v)+"\n";
				}else if(Number(tmp)< Number(tmp2[0]) || Number(tmp)> Number(tmp2[1])){
					if(tmp.length > 0){
						error_v += errores[7].replace("WWWW",respuesta_v).replace("RRRR1",tmp2[0]).replace("RRRR2",tmp2[1])+"\n";
					}
				}
			}else if(propiedades_v == "email"){
			    tmp = oForm[nombre_v].value;
				valido = true;
				arroba = tmp.indexOf("@",0);
				if(arroba == -1 || arroba < 2){
					valido = false;
				}
				punto = tmp.lastIndexOf(".",tmp.length);
				if(punto < arroba || punto == -1 || punto > tmp.length - 2){
				   valido = false;	
				}
				if(oForm[nombre_v].value.length == 0 && requerido_v){
					error_v += errores[1].replace("WWWW",respuesta_v)+"\n";
				}
				if(!valido && tmp.length > 1){
				   error_v += errores[2].replace("WWWW",respuesta_v)+"\n";	
				}
					
			}
		
		}else if(tipo_v == "select"){
			if(propiedades_v == "valor"){
				if(oForm[nombre_v].value.length == "" && requerido_v){
					error_v += errores[4].replace("WWWW",respuesta_v)+"\n";
				}
			}
		}else if(tipo_v =="area"){
			if(propiedades_v == "maximo"){
				if(oForm[nombre_v].value.length == 0 && requerido_v){
					error_v += errores[1].replace("WWWW",respuesta_v)+"\n";
				}else if(oForm[nombre_v].value.length > tamano_v){
					error_v += errores[6].replace("WWWW",respuesta_v).replace("XXXX",tamano_v)+"\n";
				}
			}
		}else if(tipo_v =="radio"){
			if(propiedades_v == "valor"){
				tmp = false;
				for(j=0;j<oForm[nombre_v].length;j++){
					if(oForm[nombre_v][j].checked){
						tmp = true;
					}
				}
				if(!tmp && requerido_v){
					error_v += errores[4].replace("WWWW",respuesta_v)+"\n";
				}
			}
		}else if(tipo_v =="checkbox"){
			if(propiedades_v == "aviso"){
				if(!oForm[nombre_v].checked && requerido_v){
					error_v += errores[8]+"\n";
				}
			}
		}
		
	}
	if(error_v.length > 1){
		alert(errores[0]+"\n\n"+error_v);
	}else{
		//alert(errores[0]+"\n\n"+error_v);
		oForm.submit();	
	}
}
/*
function iniciaFormulario(){
	creaCampo("d1","text","texto","50","First name(s)","R");
	creaCampo("d2","text","texto","50","Last name","R");
	creaCampo("d3","text","email","50","E-mail","R");
	creaCampo("d4","select","valor","","Country","R");
	creaCampo("d5","text","texto","50","Town","R");
	creaCampo("d6","text","texto","50","Street address","R");
	creaCampo("d7","text","numero","0","Number","R");
	creaCampo("d9","text","texto","50","ZIP / Area code","R");
	creaCampo("d10","text","telefono","0","Telephone","R");
	creaCampo("aviso","checkbox","aviso","","Legal Context & Disclaimer","R");
}
*/
