var doble_click = false;

function validar(args) {
	var error = "";
	var ajax = false;
	var el_form = arguments[0];
	for (var i=1; i<arguments.length; i++) {
		switch (arguments[i]) {
			case 'login':
				error += valida_login(el_form);
			break;
			case 'cclave':
				error += valida_cclave(el_form);
			break;
			case 'fecha':
				error += valida_fecha(el_form.fecha,"Fecha");
			break;
			case 'fecha1':
				error += valida_fecha(el_form.fecha1,"Fecha desde");
			break;
			case 'fecha2':
				error += valida_fecha(el_form.fecha2,"Fecha hasta");
			break;
			case 'edad':
				error += valida_opciones_prev(el_form,el_form.edad,"Edad");
			break;
			case 'slaboral':
				error += valida_opciones_prev(el_form,el_form.slaboral,"Situación Laboral");
			break;
			case 'profesion':
				error += valida_opciones_prev(el_form,el_form.profesion,"Profesión");
			break;
			case 'gastodia':
				error += valida_opciones_prev(el_form,el_form.gastodia,"Dinero por día");
			break;
			case 'transporte':
				error += valida_opciones_prev(el_form,el_form.transporte,"Medio de Transporte");
			break;
			case 'orgviaje':
				error += valida_opciones_prev(el_form,el_form.orgviaje,"Organización de su viaje");
			break;
			case 'conquien':
				error += valida_opciones_prev(el_form,el_form.conquien,"Con quien ha venido");
			break;
			case 'alojado':
				error += valida_opciones_prev(el_form,el_form.alojado,"Está Ud. Alojado");
				error += valida_entero(el_form.noches,1,false,"Noches de estancia");
			break;
			case 'alojamiento':
				error += valida_opciones_prev(el_form,el_form.alojamiento,"Tipo de Alojamiento");
			break;
			case 'conocio':
				error += valida_opciones_prev(el_form,el_form.elements['conocio[]'],"Cómo conoció Jerez");
			break;
			case 'motivos':
				error += valida_opciones_prev(el_form,el_form.elements['motivos[]'],"Principales Motivos de elección");
			break;
			case 'opinion':
				error += valida_opinion(el_form.elements['opinion[]'],0,10);
			break;
			case 'nhabitaciones':
				error += valida_entero(el_form.nhabitaciones,1,false,"Número de Habitaciones");
			break;
			case 'ncamas':
				error += valida_entero(el_form.ncamas,1,false,"Número de Camas");
			break;
			case 'nempleados':
				error += valida_entero(el_form.nempleados,1,false,"Número de Empleados");
			break;
			case 'viajeros':
				error += valida_viajeros(el_form);
			break;
			case 'npernocta':
				error += valida_entero(el_form.npernocta,0,false,"Número de Pernoctaciones Realizadas");
			break;
			case 'nhabitaciones_ocu':
				error += valida_entero(el_form.nhabitaciones_ocu,0,false,"Número de Habitaciones Ocupadas");
			break;
			case 'viajeros_nacionales':
				error += valida_viajeros_zona(el_form,"cautonomas[]","viajeros_cautonomas[]","Comunidad",false);
			break;
			case 'viajeros_nacionales(obliga)':
				error += valida_viajeros_zona(el_form,"cautonomas[]","viajeros_cautonomas[]","Comunidad",true);
			break;
			case 'viajeros_internacionales':
				error += valida_viajeros_zona(el_form,"paises[]","viajeros_paises[]","Pais",false);
			break;
			case 'viajeros_internacionales(obliga)':
				error += valida_viajeros_zona(el_form,"paises[]","viajeros_paises[]","Pais",true);
			break;
			case 'aeropuertos':
				error += valida_aeropuertos(el_form);
			break;
			case 'calidad':
				error += valida_calidad(el_form);
			break;
			case 'perfil_visitante':
				error += valida_perfil_visitante(el_form);
			break;
			case 'datos_stat_aloj_tur':
				error += valida_datos_stat_aloj_tur(el_form);
			break;		
			case 'datos_stat_aero':
				error += valida_datos_stat_aero(el_form);
			break;	
			case 'encuestas_priv_lista':
				error += valida_encuestas_priv_lista(el_form);
			break;
			case 'do_it':
				if (!error) {
					ajax = true;
					valida_do_it(el_form);	
				}
			break;
		}

	}
	//error = "";
	if (error) {
		error = "Se han producido los siguientes errores:\t\n\n" + error;
		alert (error);
	}
	else if (!doble_click) {
		doble_click = !doble_click;
		if (!ajax)
			el_form.submit();
	//	alert('ok');
	}
}


function obliga (obj,name) {
	var msg_error = "";
	if (obj.value=="") {
		msg_error = "  - El campo " + name + " no puede estar vacío.\t\n";
	}
	return msg_error;	
}


function valida_login(el_form) {
	var error = "";
	if (trim(el_form.username.value).length<1)
		error = " - El campo Usuario no puede estar vacío.\t\n";
	else if (trim(el_form.username.value).length>16) 
		error = " - El campo Usuario no puede tener más de 16 caracteres.\t\n";
	if (trim(el_form.clave.value).length<1)
		error += " - El campo Clave no puede estar vacío.\t\n";
	else if (trim(el_form.clave.value).length<4||trim(el_form.clave.value).length>8)
		error += " - El campo Clave debe tener entre 4 y 8 caracteres.\t\n";
	
	return error;
}

function valida_cclave(el_form) {
	var error = "";
	if (trim(el_form.clave0.value).length<1)
		error += " - El campo Clave Anterior no puede estar vacío.\t\n";
	else if (trim(el_form.clave0.value).length<4||trim(el_form.clave0.value).length>8)
		error += " - El campo Clave Anterior debe tener entre 4 y 8 caracteres.\t\n";
		
	if (trim(el_form.clave1.value).length<1)
		error += " - El campo Nueva Clave no puede estar vacío.\t\n";
	else if (trim(el_form.clave1.value).length<4||trim(el_form.clave1.value).length>8)
		error += " - El campo Nueva Clave debe tener entre 4 y 8 caracteres.\t\n";
		
	if (trim(el_form.clave2.value).length<1)
		error += " - El campo Confirmar Nueva Clave no puede estar vacío.\t\n";
	else if (trim(el_form.clave2.value).length<4||trim(el_form.clave2.value).length>8)
		error += " - El campo Confirmar Nueva Clave debe tener entre 4 y 8 caracteres.\t\n";	
		
	if (error==""&&(el_form.clave1.value!=el_form.clave2.value)) {
		error += " - El campo Nueva Clave no coincide con Confirmar Nueva Clave.\t\n";
	}
	
	return error;
}


function valida_do_it(el_form) {
	
	var error = "";
	mes = el_form.mes.options[el_form.mes.selectedIndex].value;
	ano = el_form.ano.options[el_form.ano.selectedIndex].value;
	url = document.location.search;
	patron = /id=([0-9]+)/;
	id = url.match(patron).pop();
	
	
	getPaises = function() {
		vpaises = new Array();
		los_select = el_form.getElementsByTagName("select");
		t_los_select = los_select.length;
		for (i=0;i<t_los_select;i++) {
			if (los_select[i].getAttribute('name')=='paises[]')
				vpaises.push(los_select[i].options[los_select[i].selectedIndex].value);
		}	
		
		return vpaises;
	};
	
	switch (id) {	
		case '504':
			dw = 'iit_d_encuesta_hoteles_existe_wk';
			texto_error = " Se ha producido un error:\n - La fecha introducida no es válida: la encuesta ya existe.\t\n";
		break;
		case '503':
			dw = 'iit_d_encuesta_atractivos_existe_wk';
			texto_error = " Se ha producido un error:\n - La fecha introducida no es válida: la encuesta ya existe.\t\n";
		break;		
		case '502':
			dw = 'iit_d_encuesta_aero_existe_wk' + '&cod_pais=' + getPaises();
			texto_error = " Se ha producido un error:\n - De uno de los paises ya se ha realizado la encuesta.\t\n";
		break;		
	}
	
	
	if (req != null && req.readyState != 0 && req.readyState != 4) {
		req.abort();	
	}
	
	try {
		var req = new XMLHttpRequest();	
	}
	catch(e) {
		try {
			var req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e) {
			return e;	
		}
	}

	
	req.open("POST","fileadmin/my_scripts/situr/valida_fecha.php",true);
	req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=iso-8859-1");
	req.send("mes="+mes+"&ano="+ano+"&dw="+dw);
	
	req.onreadystatechange = function() { 
		if (req.readyState == 4 && (req.status == 200 || req.status == 304)) { 
			var res = req.responseXML;
			var res2 = res.getElementsByTagName("resultado")[0].firstChild.nodeValue;
		//	var res = req.responseText;
		//	alert(res);


			if (parseInt(res2)) {
				error = texto_error;
				set_background (el_form.mes,'#FFFFA8');
				set_background (el_form.ano,'#FFFFA8');
			}
			else {
				set_background (el_form.mes,'#FFFFFF');
				set_background (el_form.ano,'#FFFFFF');	
			}
			
			if (error)
				alert(error);
			else
				el_form.submit();
		} 
	};	
}


function valida_opciones_prev(el_form,el_option,texto) {
	
	var error = "";
	fieldset = el_option[0].parentNode.parentNode;
	
	error = valida_opciones(el_form,el_option,texto);
	if (error) 
		set_background (fieldset,'#FFFFA8');
	else
		set_background (fieldset,'transparent');
	
	return error;
	
}


function valida_opciones(el_form,el_option,texto) {
	var error = " - Debe seleccionar \"" + texto + "\".\t\n";
	t = el_option.length;
	if (t) {
		for (i=0;i<t;i++) {
			if (el_option[i].checked)
				error = "";
		} 
	}
	else {
		if (el_option.checked)
			error = "";
	}
	
	return error;
}

function valida_opinion(obj,linf,lsup) {
	
	error = "";
	
	for (i=0;i<obj.length;i++) {
		label = document.getElementById("label_"+obj[i].id).firstChild.nodeValue;
		if (obj[i].value!='')
			error += valida_entero (obj[i],linf,lsup,label);
	}
	
	return error;
}


function valida_viajeros(el_form) {
	
	var error = "";
	
	error += valida_entero(el_form.nviajeros,0,false,"Número de Viajeros Alojados");
	error += valida_entero(el_form.espanoles,0,false,"Número de Españoles Alojados");
	error += valida_entero(el_form.extranjeros,0,false,"Número de Extranjeros Alojados");
	
	if (!error) {
		if (parseInt(el_form.nviajeros.value)!=parseInt(el_form.espanoles.value)+parseInt(el_form.extranjeros.value)) {
			error += " - El Número de Viajeros Alojados debe ser la suma de los Españoles mas los Extranjeros.\t\n";
			set_background (el_form.nviajeros,'#FFFFA8');
			set_background (el_form.espanoles,'#FFFFA8');
			set_background (el_form.extranjeros,'#FFFFA8');
		}
		else {
			set_background (el_form.nviajeros,'#FFFFFF');
			set_background (el_form.espanoles,'#FFFFFF');
			set_background (el_form.extranjeros,'#FFFFFF');			
		}
	}
	
	return error;
}

function valida_viajeros_zona(el_form,los_select,los_input,texto,obliga) {
	
	var error = "";
	
	if (!el_form.elements[los_select].disabled) {
		
		var total = (el_form.elements[los_input].length) ? el_form.elements[los_input].length : 1;
		
		if (obliga || hay_algo(el_form,los_select,los_input,total)) {
			
			error += valida_viajeros_zona_select(el_form,los_select,total,texto);
			if (!error)
				error += valida_viajeros_zona_input(el_form,los_input,los_select,total,texto);
				
		}
		
	}
	
	return error;
}

function hay_algo(el_form,los_select,los_input,total) {
	
	var hay = false;
	if(total>1) {
		for (i=0;i<total;i++) {
			val_select = el_form.elements[los_select][i].value;
			val_input = el_form.elements[los_input][i].value;
			if (val_select!=""||val_input!="")
				hay = true;
		}
	}
	else {
		val_select = el_form.elements[los_select].value;
		val_input = el_form.elements[los_input].value;
		if (val_select!=""||val_input!="")
			hay = true;
	}

	return hay;
}


function valida_viajeros_zona_select(el_form,los_select,total,texto) {
	
	var error = "";
	
	if (total>1) {
		v_ind = new Array(total);
		for (i=0;i<total;i++) {
			ind = el_form.elements[los_select][i].selectedIndex;
			v_ind[i] = ind;
			if (ind<1) {
				error += " - Debe seleccionar " + texto + " en el menu " + (i+1) + " de " + texto + "es.\t\n";	
				set_background (el_form.elements[los_select][i],'#FFFFA8');
			}
			else {
				set_background (el_form.elements[los_select][i],'#FFFFFF');
			}
		}
		
		if (!error) {
			for (k=0;k<v_ind.length;k++) {
				donde = el_form.elements[los_select][k].options[v_ind[k]].text;
				for (j=(k+1);j<v_ind.length;j++) {
					if(v_ind[k]==v_ind[j]) {
						error += " - " + donde + " aparece repetido en los menus " + " de " + texto + "es.\t\n";
					}
				}
			}
		}
	}
	else {
		   ind = el_form.elements[los_select].selectedIndex;
		   if (ind<1) {
		   		error += " - Debe seleccionar " + texto + " en el menu de " + texto + "es.\t\n";
				set_background (el_form.elements[los_select],'#FFFFA8');
		   }
		   else {
			    set_background (el_form.elements[los_select],'#FFFFFF');
		   }
	}
	
	return error;
}

function valida_viajeros_zona_input(el_form,los_input,los_select,total,texto) {
	
	var error = "";
	var total_viajeros = 0;
	
	if (total>1) {
		for (i=0;i<total;i++) {
			ind = el_form.elements[los_select][i].selectedIndex;
			donde = el_form.elements[los_select][i].options[ind].text;
			error += valida_entero(el_form.elements[los_input][i],1,false,"Viajeros de "+donde);
			if (!error)
				total_viajeros += parseInt(el_form.elements[los_input][i].value);
		}
		nombre_input = el_form.elements[los_input][0].name;
	}
	else {
			ind = el_form.elements[los_select].selectedIndex;
			donde = el_form.elements[los_select].options[ind].text;
			error += valida_entero(el_form.elements[los_input],1,false,"Viajeros de "+donde);
			if (!error)
				total_viajeros += parseInt(el_form.elements[los_input].value);
			nombre_input = el_form.elements[los_input].name;		
	}
	
	if (!error) {
		compara = (nombre_input.indexOf("cautonomas")!=-1) ? el_form.espanoles : el_form.extranjeros;
		if (total_viajeros!=compara.value) {
			error += " - No coinciden los viajeros alojados " + compara.name + " con los seleccionados en los menús de " +texto+"es.\t\n";
			set_background (compara,'#FFFFA8');
		}
		else {
			set_background (compara,'#FFFFFF');	
		}
		
	}
	
	return error;
}


function valida_aeropuertos(el_form) {
	
	var error = "";
	los_select = el_form.getElementsByTagName("select");
	t_los_select = el_form.getElementsByTagName("select").length;
	total = 0;
	for (i=0;i<t_los_select;i++) {
		nombre = los_select[i].getAttribute("name");
		if (nombre=="paises[]")
			total += 1;
	}
	
	error += valida_viajeros_zona_select(el_form,"paises[]",total,"Pais");
	
	if (!error)
		error += valida_vuelos(el_form);
	
	return error;
}

function valida_vuelos(el_form) {
	
	var error = "";
	
	fieldset = el_form.getElementsByTagName("fieldset");
	tfieldset = fieldset.length;
	patron = /pais([0-9]+)/;
	paises = new Array();
	for (i=0;i<tfieldset;i++) {
		if (fieldset[i].attributes.getNamedItem('id')&&fieldset[i].attributes.getNamedItem('id').value.substring(0,4)=='pais') {
			error += valida_pais(fieldset[i]);
			if (error) 
				break;
		}
	}
	
	return error;
}

function valida_pais(fieldset) {
	
	var error = "";
	
	pais = fieldset.getElementsByTagName("legend")[0].firstChild.nodeValue;
	num = fieldset.getAttribute("id").replace('pais','');
	
	pas_reg_arr = document.getElementById("pas_reg_arr"+num);
	vol_reg_arr = document.getElementById("vol_reg_arr"+num);
	error += valida_par(pas_reg_arr,vol_reg_arr,pais,"Llegadas");
	
	pas_char_arr = document.getElementById("pas_char_arr"+num);
	vol_char_arr = document.getElementById("vol_char_arr"+num);
	error += valida_par(pas_char_arr,vol_char_arr,pais,"Llegadas");
	
	pas_otros_arr = document.getElementById("pas_otros_arr"+num);
	vol_otros_arr = document.getElementById("vol_otros_arr"+num);
	error += valida_par(pas_otros_arr,vol_otros_arr,pais,"Llegadas");
	
	pas_tran_arr = document.getElementById("pas_tran_arr"+num);
	vol_tran_arr = document.getElementById("vol_tran_arr"+num);
	error += valida_par(pas_tran_arr,vol_tran_arr,pais,"Llegadas");
	
	pas_reg_sal = document.getElementById("pas_reg_sal"+num);
	vol_reg_sal = document.getElementById("vol_reg_sal"+num);
	error += valida_par(pas_reg_sal,vol_reg_sal,pais,"Salidas");
	
	pas_char_sal = document.getElementById("pas_char_sal"+num);
	vol_char_sal = document.getElementById("vol_char_sal"+num);
	error += valida_par(pas_char_sal,vol_char_sal,pais,"Salidas");
	
	pas_otros_sal = document.getElementById("pas_otros_sal"+num);
	vol_otros_sal = document.getElementById("vol_otros_sal"+num);
	error += valida_par(pas_otros_sal,vol_otros_sal,pais,"Salidas");
	
	pas_reg_otr = document.getElementById("pas_reg_otr"+num);
	vol_reg_otr = document.getElementById("vol_reg_otr"+num);
	error += valida_par(pas_reg_otr,vol_reg_otr,pais,"Otros no comerciales");
	
	return error;
	
}


function valida_par(obj1,obj2,pais,tipo) {

	error = "";
	error1 = "";
	error2 = "";
	texto1 = obj1.previousSibling.previousSibling.firstChild.nodeValue;
	texto2 = obj2.previousSibling.previousSibling.firstChild.nodeValue;
	
	error1 = valida_entero (obj1,0,false,texto1+" en "+pais);
	error2 = valida_entero (obj2,0,false,texto2+" en "+pais);

	if (!error1&&!error2) {
		if (parseInt(obj1.value)<1&&parseInt(obj2.value)>0)
			error1 = " - El campo \"" + texto1 + "\" en " + tipo + " de " + pais + " debe ser mayor que 0.\t\n";
		else if (parseInt(obj1.value)>0&&parseInt(obj2.value)<1)
			error2 = " - El campo \"" + texto2 + "\" en " + tipo + " de " + pais + " debe ser mayor que 0.\t\n";
	}
		
	if (error1)
		set_background (obj1,'#FFFFA8');	
	else
		set_background (obj1,'#FFFFFF');
		
	if (error2)
		set_background (obj2,'#FFFFA8');	
	else
		set_background (obj2,'#FFFFFF');

		
	error = error1 + error2;
	return error;
}


function valida_calidad(el_form) {
	
	var error = "";
	fieldset = document.getElementsByTagName("fieldset");
	tfieldset = fieldset.length;
	attr_class = (document.all ? 'className' : 'class')
	for (k=0;k<tfieldset;k++) {
		css = fieldset[k].getAttribute(attr_class);	
		if (css&&css.toLowerCase()=='respuestaq') {
			legend = fieldset[k].getElementsByTagName("legend")[0].firstChild.nodeValue;
			el_option = el_form.elements[fieldset[k].getElementsByTagName("input")[0].getAttribute('name')];
			
			error_op = valida_opciones(el_form,el_option,legend);
			if (error_op)
				set_background(fieldset[k],'#FFFFA8');
			else
				set_background(fieldset[k],'transparent');
				
		   	error += error_op;
		}
	}
	
	return error;
	
}

function valida_perfil_visitante(el_form) {
	
	var error = "";
	
		error += valida_fecha(el_form.fecha1,"'Fecha desde'");
		error += valida_fecha(el_form.fecha2,"'Fecha hasta'");
		if (document.getElementById("fieldset_fuentes").style.display!='none')
	    	error += valida_opciones(el_form,el_form.elements['fuentes[]'],'Fuentes');
		error += valida_opciones(el_form,el_form.elements['datos[]'],'Datos a mostrar');
		error += valida_opciones(el_form,el_form.elements['agrupa'],'Agrupación');
		error += valida_opciones(el_form,el_form.elements['tipodato'],'Tipo de Dato');
	
	return error;

}

function valida_datos_stat_aloj_tur(el_form) {
	
	var error = "";
	
		error += valida_fecha(el_form.fecha1,"'Fecha desde'");
		error += valida_fecha(el_form.fecha2,"'Fecha hasta'");
		if (document.getElementById("fieldset_fuentes").style.display!='none')
	    	error += valida_opciones(el_form,el_form.elements['fuentes[]'],'Fuentes');
		if (document.getElementById("fieldset_catego").style.display!='none')
	    	error += valida_opciones(el_form,el_form.elements['categorias[]'],'Categorias');
		error += valida_opciones(el_form,el_form.elements['datos[]'],'Datos a mostrar');
		error += valida_opciones(el_form,el_form.elements['agrupa'],'Agrupación');
		error += valida_opciones(el_form,el_form.elements['tipodato'],'Tipo de Dato');
	
	return error;

}


function valida_datos_stat_aero(el_form) {
	
	var error = "";
	
		error += valida_fecha(el_form.fecha1,"'Fecha desde'");
		error += valida_fecha(el_form.fecha2,"'Fecha hasta'");
		error += valida_opciones(el_form,el_form.elements['datos[]'],'Datos a mostrar');
		error += valida_opciones(el_form,el_form.elements['agrupa'],'Agrupación');
		error += valida_opciones(el_form,el_form.elements['tipodato'],'Tipo de Dato');
	
	return error;

}

function valida_encuestas_priv_lista(el_form) {
	
	var error = "";
	
		error += valida_fecha(el_form.fecha1,"'Fecha desde'");
		error += valida_fecha(el_form.fecha2,"'Fecha hasta'");
		error += valida_opciones(el_form,el_form.elements['datos[]'],'Encuestas');
		error += valida_opciones(el_form,el_form.elements['agrupa'],'Agrupación');
	
	return error;

}


function set_background (obj,color) {
	obj.style.background = color;	
}


function valida_fecha(obj,texto) {
	error = "";
	var isD = is_fecha(obj.value);
	if (!isD) {
		error += " - La " + texto + " es errónea.\t\n";
		set_background (obj,'#FFFFA8');	
	}
	else
		set_background (obj,'#FFFFFF');
	
	return error;
}

function valida_entero (obj,limit_inf,limit_sup,nombre) {
	
	slimit_inf = limit_inf.toString();
	slimit_sup = limit_sup.toString();
	
	if (obj.disabled)
		return "";
		
	var error = "";
	
	var v = parseInt(obj.value);
	if (isNaN(v)) {
		error = " - El campo \"" + nombre + "\" debe ser un número entero.\t\n";
	}
	else {	
		if (limit_inf&&limit_sup) {
			if (v < parseInt(slimit_inf) || v > parseInt(slimit_sup))
				error = " - El campo \"" + nombre + "\" debe estar comprendido entre " + slimit_inf + " y " + slimit_sup + ".\t\n";
		}
		else if (limit_inf) {
			if (v < parseInt(slimit_inf))
				error = " - El campo \"" + nombre + "\" debe ser mayor que " + slimit_inf + ".\t\n";
		}
		else {
			if (v > parseInt(slimit_sup))
				error = " - El campo \"" + nombre + "\" debe ser menor que " + slimit_sup + ".\t\n";
		}
	}
	
	if (error)
		set_background(obj,'#FFFFA8');
	else
		set_background(obj,'#FFFFFF');
		
	return error;
}


function valida_email(email) {
	var email_error = "";
	if (email!="") {
		var email = trim(email);
		var patron = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-\.]{2,200}\.[a-zA-Z]{2,6}$/;
		if (!patron.test(email))
			email_error = "  - El Email de contacto no es correcto.\t\n";
	}
	return email_error;	
}

function valida_tfno(tfno,nombre) {
	var tfno_error = "";
	if(tfno!="") {
		var tfno = parseInt(trim(tfno));
		if (!((tfno>=600000000&&tfno<=699999999)||(tfno>=800000000&&tfno<=999999999)))
			tfno_error = "  - El " + nombre + " de contacto no es correcto.\t\n";
	}
	return tfno_error;
}

function valida_movil(tfno,nombre) {
	var tfno_error = "";
	if(tfno!="") {
		var tfno = parseInt(trim(tfno));
		if (!(tfno>=600000000&&tfno<=699999999))
			tfno_error = "  - El " + nombre + " no es correcto.\t\n";
	}
	return tfno_error;
}


function valida_edadxx(obj) {
	var age_error = "";
	if (obj.value==""||isNaN(obj.value)||parseInt(obj.value)<0||parseInt(obj.value)>140)
		age_error += "  - Introduzca una edad correcta.\t\n";;
	
	return age_error;
}


function trim(str) {
   return str.replace(/^\s*|\s*$/g,"");
}



function is_fecha(PossibleDate)
{
	var PDate = new String(PossibleDate);
	
	var regex = /(^\d{1,2})\/(\d{1,2})\/(\d{4,4})|(^\d{1,2})\/(\d{1,2})\/(\d{2,2})/;
	
	if( regex.test(PDate) )
	{
		var day = new String(RegExp.$1);
		var month = new String(RegExp.$2);
		var year = new String(RegExp.$3);
		if( month.length == 0 )
		{
			day = new String(RegExp.$4);
			month = new String(RegExp.$5);
			year = new String(RegExp.$6);
		}
		
		var today = new Date();
		var thisYear = new String(today.getFullYear());
		
		if( year.length == 2 )
		{					
			if( year > 50 )
			{
				year = String(Number(thisYear.substring(0,2))-1) + year;
			}
			else
			{
				year = thisYear.substring(0,2) + year;
			}
		}
		
		if( month < 1 || month > 12 ) { return false; }

		if( day < 1 || day > 31 ) { return false; }

		if ((month==4 || month==6 || month==9 || month==11) && day>30) { return false; }

		if (month == 2) // check for february 29th
		{ 
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day>29 || (day==29 && !isleap)) 
			{
				return false;
			}
		}		
		
		if( (Number(year) < Number(thisYear) - 250) ||
			(Number(year) > Number(thisYear) + 250) )
			{ return false; }
			
		return true;
	}
	return false;
}


/* Funciones encuestas */

function cambia_pais() {
	
	var f = document.enc_turistica;
	var regiones = document.getElementById("lista_regiones");
	var lregiones = document.getElementById("label_lista_regiones");
	if (f.lista_paises.options[f.lista_paises.selectedIndex].value!="108") {
		f.lista_regiones.disabled = true;
		regiones.style.visibility = "hidden";
		lregiones.style.visibility = "hidden";
	}
	else {
		f.lista_regiones.disabled = false;
		regiones.style.visibility = "visible";	
		lregiones.style.visibility = "visible";	
	}
}


function sublistas(el_form,nombre,id) {

	var obj = eval("el_form.elements['"+nombre+"']");
	var total = obj.length;
	nombre = nombre.replace("[]","");

	for (i=0;i<total;i++) {
		var sublista = nombre + (i+1) + "_sublista";
		if (obj[i].checked) {
			modo = 'visible';
			act = false;
		}
		else {
			modo = 'hidden';
			act = true;
		}
		if (document.getElementById(sublista)) {
			document.getElementById(sublista).disabled = act;
			document.getElementById(sublista).style.visibility = modo;
		}
		document.getElementById(sublista+"_cod").disabled = act;
	}

}


function fnoches(valor) {
	var p = document.getElementById("pnoches");
	var i = document.getElementById("noches");
	var modo = (parseInt(valor)) ? 'block' : 'none';
	var act = (parseInt(valor)) ? false : true;
	p.style.display = modo;
	i.disabled = act;
}


function clonarLista(obj) {
		
	  var legend = document.getElementById(obj);
	  var fieldset = legend.parentNode;
	  p = fieldset.getElementsByTagName("p")[0];
	  pboton = fieldset.getElementsByTagName("p")[(fieldset.getElementsByTagName("p").length)-1];
	  np = p.cloneNode(true);
	  np.getElementsByTagName("input")[0].value = "";
	  set_background(np.getElementsByTagName("input")[0],'#FFFFFF');
	  set_background(np.getElementsByTagName("select")[0],'#FFFFFF');
	  
	  fieldset.insertBefore(np,pboton);
	  
	  mostrar_borrar(np);
	  
	  set_label(fieldset,p,np,0,"select");
	  set_label(fieldset,p,np,1,"input");
}

function set_label(fieldset,p,np,pos,tag) {

	  var dom_label = (document.all) ? "htmlFor" : "for";	
	  old_label = p.getElementsByTagName("label")[pos].getAttribute(dom_label);
	  old_label = old_label.substring(0,(old_label.length-1))
	  totalp = (fieldset.getElementsByTagName("p").length)-1;  //quitamos 1 por el ultimo parrafo con botones
	  new_label = old_label + totalp;

	  // Ponemos el nuevo label for
	  np.getElementsByTagName("label")[pos].setAttribute(dom_label,new_label);
	  //Ponemos el nuevo select id
	  np.getElementsByTagName(tag)[0].setAttribute("id",new_label);
}

function mostrar_borrar(elp) {
		elp.getElementsByTagName("input")[1].style.visibility = 'visible';
}

function eliminar(obj) {
	var p = obj.parentNode;
	p.parentNode.removeChild(p);
}

function habilitar(obj,valor) {
	
	valor = parseInt(valor);
	hab = (valor>0) ? true : false;
	
	var legend = document.getElementById(obj);
	var fieldset = legend.parentNode;
	
	// Nos cargamos todos los parrafos menos el primero y el ultimo(boton añadir)
	if (!hab) {
		los_p = fieldset.getElementsByTagName("p");
		t_los_p = los_p.length;
		for (i=1;i<(t_los_p-1);i++) {
			fieldset.removeChild(los_p[i]);	
		}
		los_p[0].getElementsByTagName("select")[0].selectedIndex = 0;
		los_p[0].getElementsByTagName("input")[0].value = "";
	}
	
	los_select = fieldset.getElementsByTagName("select");	
	los_input = fieldset.getElementsByTagName("input");
	t_los_select = los_select.length;
	t_los_input = los_input.length;
	
	for (i=0;i<t_los_select;i++) {
		los_select[i].disabled = !hab;
	}
		
	for (i=0;i<t_los_input;i++) {
		los_input[i].disabled = !hab;	
	}
	
}

function set_legend(obj) {
	fieldset = 	obj.parentNode.parentNode;
	legend = fieldset.getElementsByTagName("legend")[0];
	texto = (obj.selectedIndex>0) ? obj.options[obj.selectedIndex].text : "PAIS";
	legend.firstChild.nodeValue = texto;
}

function clonarPais(obj) {
	
	fieldset = document.getElementById(obj);
	nfieldset = fieldset.cloneNode(true);
	pboton = document.getElementById("agregarPais").parentNode;
	fieldset.parentNode.insertBefore(nfieldset,pboton);
	total = document.aeropuertos.elements['paises[]'].length;
	set_id (nfieldset,total,true);
	
	//Habilitamos boton borrar
	document.getElementById("borrar"+total).style.visibility = 'visible';
	document.getElementById("borrar"+total).disabled = false;	
}


function set_id(root,v,setid_fieldset) {
	
	dom_label = (document.all) ? "htmlFor" : "for";
	patron = /([a-z_]+)([0-9]+)/i;
	
	if (setid_fieldset) {
		newid = root.getAttribute("id").replace(patron,"$1"+v);
		root.setAttribute("id",newid);
	}

  	if (root) {
		var i=0;
		var child = root.childNodes[i];
		while (child&&child.nodeName.toLowerCase()!='option') {
			if (child.id) {
				child.id = child.id.replace(patron,"$1"+v);
			}
			if (child.nodeName.toLowerCase()=='label') {
				new_label = child.getAttribute(dom_label).replace(patron,"$1"+v);
				child.setAttribute(dom_label,new_label);
			}
			if (child.nodeName.toLowerCase()=='input'&&child.type=='text') {
				child.value = '0';	
				set_background(child,'#FFFFFF');
			}
      		set_id(child,v,false);
      		i++;
      		child = root.childNodes[i];
    	}
	}
	
}

function eliminar_pais(obj) {
	var fieldset = obj.parentNode.parentNode;
	fieldset.parentNode.removeChild(fieldset);
}


function cambio_estilo(obj,modo) {

	if (document.all&&document.getElementById) {
		if (modo=='in')
			obj.className += " over";
		else
			obj.className = obj.className.replace(" over","");
	}
	
}

function habilitar_tipograf(obj,id,nombre) {
	
	if (document.getElementById(nombre+id)) {
		var h = (obj.checked) ? false : true;
		document.getElementById(nombre+id).disabled = h;
	}
}

function selecc_todos(obj) {
	
	var total = obj.length;
	
	if (total) {
		for (i=0;i<total;i++) {
			obj[i].checked = true;
		}
		nombre = obj[0].name;
	}
	else {
		obj.checked = true;
		nombre = obj.name;	
	}
		
	if (nombre=="datos[]") {
		l_select = document.getElementsByTagName("select");
		t_l_select = l_select.length;
		for (i=0;i<t_l_select;i++) {
			if (l_select[i].name == "tipos_graf[]")	
				l_select[i].disabled = false;
		}
	}
}

function cambia_action_form(id_pagina,id_action) {

	var q = document.location.search;
	patron = /id=([0-9]+)/;
	var res = q.match(patron);

	if (res) {
		var id =res[1];
		if (id==id_pagina) {
			document.datos_estad.action='index.php?id='+id_action;
			if (document.getElementById("fieldset_fuentes"))
				document.getElementById("fieldset_fuentes").style.display='none';	
			if (document.getElementById("fieldset_catego"))	
				document.getElementById("fieldset_catego").style.display='none';
		}
	}
	
}


function pausa(millis) {

	date = new Date();
	var curDate = null;

	do { 
		var curDate = new Date(); 
	}
	while (curDate-date < millis);
	
	return true;
} 


function max_campos() {
	if (document.forms.length > 0) {
		el_form = document.forms[document.forms.length-1];
		objeto = new Array();
		if (el_form) {
			for (i=0;i<el_form.length;i++) {
				
				if (el_form.elements[i].type) {
					if ((el_form.elements[i].type.toLowerCase()=="textarea")||(el_form.elements[i].type.toLowerCase()=="text")) {
						if(!el_form.elements[i].onkeyup)
						el_form.elements[i].onkeyup = function () { check_length(this) };
					}
				}
			}
		}
	}
}

function check_length(obj) {
	var maximo = 255;
	if (obj.value.length>maximo) 
		obj.value = obj.value.substr(0,maximo);
}

//window.onload = max_campos;

