/************************************************************************************************************
(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("","S'han trobat els següents errors: ","Se han encontrado los siguientes errores:","The following errors have been found:");
errores_array[1] = new Array("","- El camp WWWW ha d'emplenar-se.","- El campo WWWW debe rellenarse.","- The field WWWW must be filled out.");
errores_array[2] = new Array("","- El camp WWWW ha de ser un correu electrònic","- El campo WWWW debe ser un email valido.","- The field WWWW must feature a valid e-mail address.");
errores_array[3] = new Array("","- El camp WWWW ha de ser numèric.","- El campo WWWW debe ser de tipo numérico.","- The field WWWW must feature a numerical value.");
errores_array[4] = new Array("","- Has de seleccionar un valor en el camp WWWW. ","- Debes seleccionar un valor en el campo WWWW.","- You have to select a value for field WWWW.");
errores_array[5] = new Array("","- El camp WWWW ha de ser un numero de telèfon vàlid: i.i. (+34) 93 222 22 22. ","- 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 camp WWWW ha de tenir un màxim de XXXX caràcters. ","- 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.","- El campo WWWW debe estar entre RRRR1 y RRRR2.","- The field WWWW can range from RRRR1 to RRRR2.");
errores_array[8] = new Array("","- Ha de marcar l'opció 'l'Avís Legal'. ","- 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();	
	}
}

