
/************************************************************************************************************
(C) Alvaro Bartra, 2006

This is a script from Alvaro Bartra  (http://www.xtranet.es, http://www.chromalife.com & http://www.chromaviewer.com)

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

Alvaro Bartra

************************************************************************************************************/
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 numérico.","- 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 = new Array();
function iniciaErrores(idioma){
	for(i=0;i<errores_array.length;i++){
		errores[i] = errores_array[i][idioma];	
	}
}
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(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{
		oForm.submit();	
	}
}

