/*
	===================================================
	FUNCIONES DE CONTROL, CHEKEO, VALIDACION
	===================================================
*/
  
   //evitando que se puedan escribir mas caracteres de los pasados en un obj dado
   function maxchars(e,obj,total){
		var tecla;
		if(navigator.appName.indexOf('Microsoft')!=1){tecla=e.keyCode;}
		if(navigator.appName.indexOf('Netscape')!=1){tecla=e.which;}
		else{return true;}
		if (obj.value.length>=total&&tecla!=8) {return false;}
   }
     
	//evitando que se puedan escribir menos caracteres de los deseados para un obj dado
   function minchars(obj,total){
		if (obj.value.length<total) {
			obj.value="";
			alert("Al menos se requieren "+total+" caractere/s");
			return false;
		}
		return true;
   }
   
   	//evitando que los datos introducidos sean numericos, para precios, telefonos, fax, sin signos SOLO digitos.
   	function onlydigit(obj){
		if(obj.value!=""){
			if(isNaN(num=parseInt(obj.value))){
				alert("El dato introducido no es valido ["+obj.value+"] (solo digitos).");
   				obj.value="";			
				return false;
			}
			obj.value=num;
		}
		return true;
	}
	//comprobando que la altura del inmueble es correcta: SI, NO, NUMERO
   	function ctrlaltura(obj){
		var cad=new String;
		var ctrl=obj.name;
		var form=obj.form.name
		cad=obj.value;
		cad=cad.toUpperCase();
		if(isNaN(obj.value)){
			if((cad!="SI")&&(cad!="NO")){
				obj.value="";
				if(confirm("La altura solo puede contener las siguientes opciones: SI, NO, Número de hasta 3 cifras.\n¿Desea volver a introducir la altura?")){
					eval("document."+form+"."+ctrl+".focus()");
				}
			}
		}
	}
	
   	//se le pasa el tipo de fichero: pisos, casas, negocios, en base a ello se verifica si los datos obligatorios han sido metidos
   	function datos_obli(tipo){		
		var err="Los siguientes datos obligatorios no han sido especificados, \nrellene dichos campos para continuar.";
		var flag=0;
		switch(tipo){
			case 'pisos':{
				if(document.forms[0].idlocal.value==""){err=err+"\n .- Localidad ";flag=1;}
				if(document.forms[0].precio.value==""){err=err+"\n .- Precio ";flag=1;}
				if(document.forms[0].n_habitaciones.value==""){err=err+"\n .- Número de Habitaciones ";flag=1;}
				if(document.forms[0].sup_util.value==""){err=err+"\n .- Superficie Util ";flag=1;}
				break;
			}
			case 'casas':{
				if(document.forms[0].idlocal.value==""){err=err+"\n .- Localidad ";flag=1;}
				if(document.forms[0].precio.value==""){err=err+"\n .- Precio ";flag=1;}
				if((document.forms[0].sup_solar.value=="")&&(document.forms[0].sup_construida.value=="")){err=err+"\n .- Superficie Solar Ó Superficie Construida ";flag=1;}
				break;
			}
			case 'fincas':{
				if(document.forms[0].idlocal.value==""){err=err+"\n .- Localidad ";flag=1;}
				if(document.forms[0].precio.value==""){err=err+"\n .- Precio ";flag=1;}
				if(document.forms[0].sup_solar.value==""){err=err+"\n .- Superficie Solar";flag=1;}
				break;
			}
			case 'garajes':{
				if(document.forms[0].idlocal.value==""){err=err+"\n .- Localidad ";flag=1;}
				if(document.forms[0].precio.value==""){err=err+"\n .- Precio ";flag=1;}
				if(document.forms[0].sup_util.value==""){err=err+"\n .- Superficie Util ";flag=1;}
				break;
			}
			case 'negocios':{
				if(document.forms[0].idlocal.value==""){err=err+"\n .- Localidad ";flag=1;}
				if(document.forms[0].precio.value==""){err=err+"\n .- Precio ";flag=1;}
				if((document.forms[0].sup_util.value=="")&&(document.forms[0].sup_construida.value=="")){err=err+"\n .- Superficie Util Ó Superficie Construida ";flag=1;}
				break;
			}
			case 'inversiones':{
				if(document.forms[0].idlocal.value==""){err=err+"\n .- Localidad ";flag=1;}
				if(document.forms[0].precio.value==""){err=err+"\n .- Precio ";flag=1;}
				if(document.forms[0].nombre.value==""){err=err+"\n .- Nombre ó titulo de la Propiedad ";flag=1;}
				break;
			}
			case 'promociones':{
				if(document.forms[0].idlocal.value==""){err=err+"\n .- Localidad ";flag=1;}
				if(document.forms[0].nombre.value==""){err=err+"\n .- Nombre o Título de la Promoción ";flag=1;}
				break;
			}
			case 'demandas':{
				if(document.forms[0].idlocal.value==""){err=err+"\n .- Localidad ";flag=1;}
				if(document.forms[0].precio.value==""){err=err+"\n .- Precio ";flag=1;}
				break;
			}
		}
		if(flag==1){		
			alert(err);
			displaydatosinm('obligatorios');
			return false;
		}
		
		//comprobando que las fechas de confidenciales sean correctas
		if(document.forms[0].date_since_sec.value>document.forms[0].date_until_sec.value){
			err="\n .- Las fechas del contrato de exclusividad no son correctas.\nNo son concordantes, la fecha desde ha de ser anterior a la fecha hasta.";
			alert(err);
			displaydatosinm('privados');
			return false;
		}
		return true;
   }
   
   	//validando correo e-mail veridico
	function valida_mail(mail){
		var cad=new String;
		var ctrl=mail.name;
		var form=mail.form.name
		cad=mail.value;
		if(mail.value==""){return true;}
		if(((cad.indexOf("@")==-1)||(cad.indexOf(".")==-1)||(cad.length<=6 ))&&(cad.length>0)) {
			mail.value="";
			if(confirm("El e-mail introducido no es valido. Sintaxis: id@dominio.ext\n¿Desea volver a introducir un e-mail?")){
				eval("document."+form+"."+ctrl+".focus()");
			}
		}		
	}
	
	//validando correo e-mail veridico
	function valida_web(web){
		var cad=new String;
		var ctrl=web.name;
		var form=web.form.name
		cad=web.value;
		if(web.value==""){return true;}
		if(((cad.search("http://")==-1)||(cad.indexOf(".")==-1)||(cad.length<=11 ))&&(cad.length>0)) {
			web.value="";
			if(confirm("El Web introducido no es valido. Sintaxis: http://dominio.ext\n¿Desea volver a introducir un web?")){
				web.value="";
				eval("document."+form+"."+ctrl+".focus()");
			}
		}		
	}
	
	
	// Funcion que comprueba el DNI/NIF/CIF de un particular/empresa
	function valida_nifcif(tipo,obj) {
		var resul=true; var err='';
		if(obj.value==""){return true;}
		switch(tipo){
			case 'CIF':{	//comprobacion de CIF
				var temp = obj.value.toUpperCase(); // pasar a mayúsculas
				if (!/^[A-Za-z0-9]{9}$/.test(temp)) {err="Longitud incorrecta, un NIF consta de 9 dígitos";resul=false;}
				if (!/^[ABCDEFGHKLMNPQS]/.test(temp)){err=err+"\nEl primer dígito es incorrecto, debe ser una letra de las siguientes: A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S ";resul=false;}
				var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
				var temp = 0; 
				var temp1;
				for( i = 2; i <= 6; i += 2 ) {
					temp = temp + v1[ parseInt(obj.value.substr(i-1,1)) ];
					temp = temp + parseInt(obj.value.substr(i,1));
				}
				temp = temp + v1[ parseInt(obj.value.substr(7,1)) ];
				temp = (10 - ( temp % 10));
				if(temp==10){err=err+"\nEl dígito de control es: J o 0";resul=false;}
				if(!resul){
					if(confirm("El CIF introducido no es valido.\n"+err+"\n¿Desea introducirlo correctamente?")){
						obj.value="";
						eval("document."+obj.form.name+"."+obj.name+".focus();");
						return true;
					}
					else{obj.value="";return false;}
				}
				break;
			}
			case 'NIF':{	//comprobacion de nif
				var strLetras = 'TRWAGMYFPDXBNJZSQVHLCKE'; var Letra; 
				var sNif=obj.value;	sNif=sNif.toUpperCase(); 
				if(sNif.length<9){err="Longitud incorrecta, un DNI consta de 9 caracteres.";resul=false;} 
				Letra=sNif.charAt(sNif.length-1); 
				if(Letra<'A' || Letra>'Z'){err=err+"\nEl ultimo caracter es incorrecto, debe ser una letra de la A a la Z.";resul=false;} 
				Letra=strLetras.charAt((sNif.substr(0,sNif.length-1))%23); 
				if(sNif.charAt(sNif.length-1)!=Letra){err=err+"\nLa Letra asignada al DNI para constituir el NIF no es la correcta.";resul=false;} 
				if(!resul){
					if(confirm("El DNI/NIF introducido no es valido.\n"+err+"\n¿Desea introducirlo correctamente?")){
						obj.value="";
						eval("document."+obj.form.name+"."+obj.name+".focus();");
						return true;
					}
					else{obj.value="";return false;}
				}
				break;
			}
		}
	}