// """"""""""""""""""""""""""""""""""""""""""""""""""""""
// "	Funciones Comunes para el Filtrado de campos	" 
// """"""""""""""""""""""""""""""""""""""""""""""""""""""

	// Variable Comunes/Públicas...
	var Merr='';	// Para componer los mensajes resultantes de los errores detectados.	
	
	// """"""""""""""""""""""""""""""""""""""""""""""""""
	// "	Funciones para el Tratamiento de Fechas...	" 
	// """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
	var Df='';	
	var Hf='';
	var wDF=''; 
	var wHF='';

	function DiasEnElMes(mes, anio){
		var DiasMes = CrearTablaVacia(12);
		DiasMes[1] = 31;	
		DiasMes[2] = DiasEnFebrero(anio); //(anno  % 4==0 && (!(anno  % 100==0) || (anno  % 400==0)) ? 29 : 28);
		DiasMes[3] = 31;	DiasMes[4] = 30;
		DiasMes[5] = 31;	DiasMes[6] = 30;	DiasMes[7] = 31;	DiasMes[8] = 31;
		DiasMes[9] = 30;	DiasMes[10] = 31;	DiasMes[11] = 30;	DiasMes[12] = 31;
		
		return DiasMes[mes];
	}

	function CrearTablaVacia(n) {	 
		for(var i=1; i<=n; i++) { 
			this[i]=0;
		}
		return this;
	}

	function DiasEnFebrero(ElAno) {	 
		return (ElAno % 4==0 && (!(ElAno % 100==0) || (ElAno % 400==0)) ? 29 : 28);	
	}

	function ComprobarFecha(laFecha, obligatoria) {
		Merr='';
		if (laFecha=='' && obligatoria==false)	{ return true; }
		if (laFecha=='' && obligatoria==true)	{ Merr='es obligatioria.'; return false; }
		
		t=laFecha.split('/');
			
		if (t.length!=3)								{ Merr='no tiene el formato adecuado.';	return false; }
		if (t[0]=='' || t[1]=='' || t[2]=='')			{ Merr='no tiene valores adecuados.';	return false; }
		if (isNaN(t[0]) || isNaN(t[1]) || isNaN(t[2]))	{ Merr='no posee valores numericos.';	return false; }

		if (t[0].length==1)	{	t[0]='0'+t[0];		}
		if (t[1].length==1)	{	t[1]='0'+t[1];		}
		if (t[2].length==1)	{	t[2]='200'+t[2];	}
		if (t[2].length==2)	{	t[2]='20'+t[2];		}
		wDF=t[0]+'/'+t[1]+'/'+t[2];

		var xd=parseVal(t[0],10);
		var xm=parseVal(t[1],10);
		var xa=parseVal(t[2],10);

		if (xm<01 || xm>12)					{ Merr='el dia es erroneo.';				return false; }
		if (xd>DiasEnElMes(xm,xa))				{ Merr='el dia/mes es erroneo.';			return false; }
		//if (xm==2 && xd>DiasEnFebrero(xa))	{ Merr='el dia de Febrero es erroneo.';		return false; }
			
		return true;
	}

	function ComprobarRangoFecha(laFechaIni, laFechaFin){
		if (laFechaIni=='' && laFechaFin=='') return true;	
		if (laFechaIni=='' && laFechaFin!='') return false; 
		if (laFechaIni!='' && laFechaFin=='') return false;
		if (ComprobarFecha(laFechaIni, true)==true && ComprobarFecha(laFechaFin, true)==true) {
			t1=laFechaIni.split('/');
			t2=laFechaFin.split('/');
			var zD=t1[2]+'/'+t1[1]+'/'+t1[0];
			var zH=t2[2]+'/'+t2[1]+'/'+t2[0];
			if (zD>zH)	 return false;	
			else return true;
		} else return false; 
	}

	function FechaMenorQueHoy(laFecha){	
		var Hoy=new Date();
		var zHoy=Hoy.getDate()+'/'+(Hoy.getMonth()+1)+'/'+Hoy.getFullYear();

		t1=laFecha.split('/');
		t2=zHoy.split('/');

		if (t1[0].length==1) { t1[0]='0'+t1[0]; }
		if (t1[1].length==1) { t1[1]='0'+t1[1]; }
		
		if (t2[0].length==1) { t2[0]='0'+t2[0]; }
		if (t2[1].length==1) { t2[1]='0'+t2[1]; }

		var zF=t1[2]+'/'+t1[1]+'/'+t1[0];
		var zH=t2[2]+'/'+t2[1]+'/'+t2[0];
		if (zF<zH)	{ return true;	}
			else	{ return false;	}
	}
	// """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

	function es_mail(mail){
		if (mail.indexOf('@')==-1) return false;
		else{
			mail_tmp=mail.substring(mail.indexOf('@'),mail.length);
			if (mail_tmp.indexOf('.')==-1) return false;
			else return true;
		}
	}
	
	function es_numerico(texto){
		caracteres_validos="1234567890";
		for (k=0;k<texto.length;k++){
			tmp=texto.substr(k,1);
			if (caracteres_validos.search(tmp)=="-1"){
				return false;
			}
		}
		return true;
	}
		
	function isInteger(s){
		var i;
		for (i = 0; i < s.length; i++){   
			var c = s.charAt(i);
			if (((c < "0") || (c > "9"))) return false;
		}
		return true;
	}

	function stripCharsInBag(s, bag){
		var i;
		var returnString = "";
		for (i = 0; i < s.length; i++){   
			var c = s.charAt(i);
			if (bag.indexOf(c) == -1) returnString += c;
		}
		return returnString;
	}

	var dtCh= "/";
	var minYear=1900;
	var maxYear=2100;

	function isDate(dtStr){
		var pos1=dtStr.indexOf(dtCh)
		var pos2=dtStr.indexOf(dtCh,pos1+1)
		var strDay=dtStr.substring(0,pos1)
		var strMonth=dtStr.substring(pos1+1,pos2)
		var strYear=dtStr.substring(pos2+1)
		strYr=strYear
		if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
		if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
		for (var i = 1; i <= 3; i++) {
			if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
		}
		month=parseVal(strMonth)
		day=parseVal(strDay)
		year=parseVal(strYr)
		if (pos1==-1 || pos2==-1){
			alert("El formato de fecha debe de ser: dd/mm/aaaa")
			return false
		}
		if (strMonth.length<1 || month<1 || month>12){
			alert("Please enter a valid month")
			return false
		}
		if (strDay.length<1 || day<1 || day>31 || (month==2 && day>DiasEnFebrero(year)) || day > DiasEnElMes(month,year)){
			alert("Por favor, introduce un día válido")
			return false
		}
		if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
			alert("Por favor introduce un año válido de cuatro cifras")
			return false
		}
		if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
			alert("Por favor, introduce una fecha válida")
			return false
		}
		return true
	}

	function ultimoDiaMes(fecha){
		var datos=fecha.split("/"); 
		var dia=parseVal(datos[0]);
		var mes=parseVal(datos[1]);
		var ano=parseVal(datos[2]);
		dias=DiasEnElMes(mes,ano);
		return formatearFecha(dia + "/" + mes + "/" + ano);
	}

	function parseVal(val){
		if (val==null) return "0";
		while (val.charAt(0) == '0')
			val = val.substring(1, val.length);
		return parseInt(val);
	}
	
	function addDiasAFecha(fecha, dias){
		var nDias = parseVal(dias);
		var datos=fecha.split("/"); 
	    
		var dia=parseVal(datos[0]);
		var mes=parseVal(datos[1]);
		var ano=parseVal(datos[2]);
		nDias+=dia;


		while(nDias<1 || nDias>DiasEnElMes(mes,ano)){
			if (nDias<1){
					mes--;
					if (mes<1){ mes=12;ano--; }
					nDias+=DiasEnElMes(mes,ano);
			}
			if (nDias>DiasEnElMes(mes,ano)){
					nDias-=DiasEnElMes(mes,ano);
					mes++;
					if (mes>12){ mes=1;ano++; }
			}
		}
		return formatearFecha(cerosIzquierda(nDias,2) + "/" + 
						cerosIzquierda(mes,2) + "/" + 
						cerosIzquierda(ano,4));
	}

	function addMesAFecha(fecha, meses){
		var datos=fecha.split("/"); 
		var dia=parseVal(datos[0]);
		var mes=parseVal(datos[1]);
		var ano=parseVal(datos[2]);
		mes+=meses;
		while (mes<1) { mes+=12;ano--; }
		while (mes>12) { mes-=12;ano++; }
		if (dia>DiasEnElMes(mes,ano)) dia=DiasEnElMes(mes,ano);
		return formatearFecha(dia + "/" + mes + "/" + ano);
	}


	function ValidateForm(){
		var dt=document.frmSample.txtDate;
		if (isDate(dt.value)==false){
			dt.focus()
			return false;
		}
		return true;
    }

	function lanzarURL(id, url){ 
		lanzarURLConPregunta(id,url,"");
	}

	function lanzarURLConPregunta(id, url, pregunta){ 
		var bIr=true;
		if (pregunta!=""){
			bIr=confirm(pregunta);
		}
		if (bIr){
			var obj = document.getElementById(id);
			obj.action=url;
			obj.submit();
		}
	}

	function controlarTamano(id, maximo){
		var obj=document.getElementById(id);
		if (obj!=null){
			if (obj.value.length>maximo){
				alert("La longitud maxima de este campo es " + maximo);
				obj.value=obj.value.substring(0,maximo);
			}
		}else{
			alert("El id " + id + " no ha sido encontrado");
		}
	}
 
	function formatearFecha(fecha){
		aFecha = fecha.split("/");
		if(aFecha[0].length==1){aFecha[0]="0"+aFecha[0];}
		if(aFecha[1].length==1){aFecha[1]="0"+aFecha[1];}
		fecha=aFecha[0]+"/"+aFecha[1]+"/"+aFecha[2];
		return fecha;
	}

	function test(){
		alert("Funciones.js se ha incluido correctamente");
	}
	
	function cerosIzquierda(sTexto, tamTotal){
		while (sTexto.length<tamTotal){
			sTexto = "0" + sTexto;
		}
		return sTexto;
	}
	
	function formatearFechaDMA(dia, mes, ano){
		while (dia<1) dia++;
		while (mes<1) { mes+=12;ano--; }
		while (mes>12) { mes-=12;ano++; }
		if (dia>DiasEnElMes(mes,ano)) dia=DiasEnElMes(mes,ano);
		return formatearFecha(cerosIzquierda(dia,2) + "/" + 
							cerosIzquierda(mes,2) + "/" + 
							cerosIzquierda(ano,4));
	}

	function setVisible(id, visible){
		var obj=document.getElementById(id);
		if (visible)
			obj.style.display="";
		else
			obj.style.display="none";
	}
	
	
