	/*****************************************************************************************/
	//Función que formatea una fecha de 8 caracteres.
	//Agrega el separador a la caja de texto.
	//	elemento:caja de texto a formatear.
	function FormatearFecha(elemento){		
	
		var quitaespacio=elemento.value.replace(/\s*/g,'');
		elemento.value=quitaespacio;
		
		var re = /(\-+)|(\s+)/g;
		var cadenaaux = elemento.value.replace(re,'/');
		if (cadenaaux.length==10){
			elemento.value = cadenaaux;
		}
		
		if (cadenaaux.length==9){
			var pepe = cadenaaux.split('/');
			if (cadenaaux.search("/")>0){
				if (pepe[0].length==1){
					var dia = '0' + pepe[0];
					var mes = pepe[1];
				}else{
					var dia = pepe[0];
					var mes = '0' + pepe[1];
				}
				var anno = pepe[2];
				if (anno!= null){
					if (anno.length==4){
						elemento.value = dia + '/' + mes + '/' + anno;
					}
				}
			}
		}
		if (cadenaaux.length==8){
			if (cadenaaux.search("/")>0){
				if (cadenaaux.indexOf("/")>1)
				{
					var dia =  cadenaaux.substring(0,2);
					var mes =  cadenaaux.substring(3,5);
					var anno = '20' + cadenaaux.substring(6,8);
				}
				
				else
				{
					var dia = '0' + cadenaaux.substring(0,1);
					var mes = '0' + cadenaaux.substring(2,3);
					var anno = cadenaaux.substring(4,8);
				}
			}else{
				var dia = cadenaaux.substring(0,2);
				var mes = cadenaaux.substring(2,4);
				var anno = cadenaaux.substring(4,8);
			}
			if (anno.length==4 && !isNaN(anno)){
				elemento.value = dia + '/' + mes + '/' + anno;
			}
		}
		if (cadenaaux.length==6){
			if (cadenaaux.search("/")>0){
				var dia = '0' + cadenaaux.substring(0,1);
				var mes = '0' + cadenaaux.substring(2,3);
				var anno = '20' + cadenaaux.substring(4,6);
			}
			else{
				var dia = cadenaaux.substring(0,2);
				var mes = cadenaaux.substring(2,4);
				var anno = '20' + cadenaaux.substring(4,6);
			}
			if (anno.length==4 && !isNaN(anno)){
				elemento.value = dia + '/' + mes + '/' + anno;
			}
		}
		/*if (cadenaaux.length==10){
			return elemento.value;
		}*/
	}

	//Función que valida una fecha con el formato(dd/mm/yyyy). 
	//	Elemento:Es el objecto a validar(la caja de texto).
	function EsFecha(Elemento){
		var patron = /^\d\d\/\d\d\/\d\d\d\d$/;
		FormatearFecha(Elemento);
		var cadenaEncontrada = Elemento.value.match(patron);
		if(cadenaEncontrada != null){
			var tm = Array();
			tm[1] = 31;
			tm[2] = 29;			
			tm[3] = 31;
			tm[4] = 30;
			tm[5] = 31;
			tm[6] = 30;
			tm[7] = 31;
			tm[8] = 31;
			tm[9] = 30;
			tm[10] = 31;
			tm[11] = 30;
			tm[12] = 31;
			var dia = parseInt(Elemento.value.substring(0,2),10);
			var mes = parseInt(Elemento.value.substring(3,5),10);
			var anno = parseInt(Elemento.value.substring(6,10),10);
			
			if(dia==0 || mes==0 || anno==0){return false;}
			
			if(mes>12){return false;}
			if(mes==2){
				if (((anno % 4==0) && (anno % 100!=0)) || (anno % 400==0)){	
					if (dia>29){
						return false;
					}
				}else{
					if (dia>28){
						return false;
					}				
				}
			}
			if(dia>tm[mes]){return false;}
			if (anno < 1980){return false;}
			return true
		}
		return false;
	}	
	
	//Función que valida el rango de dos fechas:
	//Valida que el parametro FDesde sea menor o igual que el parametro FHasta
	//	FDesde:Fecha inicial.
	//	FHasta:Fecha final.
	function EsRangoFechas(FDesde,FHasta){
		patron = /^\d\d\/\d\d\/\d\d\d\d-\d\d\/\d\d\/\d\d\d\d$/;
		var cadena;
		var AuxFDesde,AuxFHasta;
		if (FDesde.value!=null){
			AuxFDesde = FDesde.value;
		}
		else{
			AuxFDesde = FDesde;
		}
		
		if (FHasta.value!=null){
			AuxFHasta = FHasta.value;
		}
		else{
			AuxFHasta = FHasta;
		}
		cadena = AuxFDesde + '-' + AuxFHasta;

		cadenaEncontrada = cadena.match(patron);
		if(cadenaEncontrada != null){
			var dia1 = AuxFDesde.substring(0, 2);
			var mes1 = AuxFDesde.substring(3, 5);
			var anio1 = AuxFDesde.substring(6, 10);
			var dia2 = AuxFHasta.substring(0, 2);
			var mes2 = AuxFHasta.substring(3, 5);
			var anio2 = AuxFHasta.substring(6, 10);
			if (anio1>anio2){
				return false
			}

			if (anio1==anio2){

				if (mes1>mes2){
					return false;
				}else{
					if (mes1==mes2){

						if (dia1>dia2){
							return false;
						}
					}
				}
			}
			return true;
		}
		return false;
	}	
	
	//*************************************************************************************
	//Funcion que me dice si una fecha + un numero de dias (param Rango) es superior a otra
	function SuperaRangoFecha(Fecha1,Rango,Fecha2)
	{
		var aux,dia,mes,anio,fecha1,fechasuma,fecha2;
		
		aux = Fecha1.split('/');
		dia = aux[0];
		mes = aux[1] - 1;
		anio = aux[2];
		
		fecha1= new Date(anio,mes,dia);
		dia = parseInt(dia,10) + Rango;
		fechasuma=new Date(anio, mes,dia);
		
		aux = Fecha2.split('/');
		dia = aux[0];
		mes = aux[1] - 1;
		anio = aux[2];
		fecha2 = new Date(anio, mes,dia);
		
		if (fechasuma>fecha2)		
			return true;
		else 
			return false;
		
	}
	
	/*****************************************************************************************/
	//Función valida el rango de dos fechas con un máximo
	//FechaDesde: es el valor que tiene la caja de texto FechaDesde
	//FechaHasta: es el valor que tiene la caja de texto FechaHasta
	//Rango: es el número de días o meses que tiene el rango máximo
	//Param: es el parámetro que nos indica si el rango viene en meses 
	//o en días. 0 si meses, 1 si días.
	//fecHasta: Es le nombre de la caja de texto
	function EsRangoMaximo(FechaDesde,FechaHasta,Rango,Param,fecHasta){
		var aux;var dia;var mes;var anio;var fecha1;var fecha2;var fechaAux;var fecha;
		aux = FechaDesde.split('/');
		dia = aux[0];
		mes = aux[1] - 1;
		anio = aux[2];
		fechaAux = new Date(anio,mes,dia);
		if (Param == 0){
			mes = parseInt(mes,10) + Rango;
		}
		else{
			dia = parseInt(dia,10) + Rango;
		}
		fecha1 = new Date(anio, mes,dia);
	
		if (FechaHasta != ""){
		
			aux = FechaHasta.split('/');
			dia = aux[0];
			mes = aux[1] - 1;
			anio = aux[2];
			fecha2 = new Date(anio, mes,dia);
			if ((fecha2 > fecha1) || (fecha2 < fechaAux)){
				return false;
			}
		}else{
			dia = fecha1.getDate();
			mes = fecha1.getMonth() + 1;
			anio = fecha1.getYear();
			if (mes<10){
				 mes = '0'+mes;
			}
			if (dia<10){
				dia = '0'+dia;
			}
			var fechaaux = dia + '/' + mes + '/' + anio;
		
			eval("window.document.forms[0]."+fecHasta+".value = '"+fechaaux+"'");
		}	
		return true;
	}
	/*****************************************************************************************/	
	// necesita una fecha dd/mm/yyyy
	// numDias par incrementar un dia -> -1
	//			para decrementar un día -> 1	
	function sumarDias(sFecha,numDias){
		if (sFecha.length<=8){
			return sFecha;
		}
		var anio = sFecha.substr(6,4);
		var mess = sFecha.substr(3,2);
		var diaa = sFecha.substr(0,2);
		
		if(numDias!=null){
			var dFecha=new Date(anio,parseInt(mess,10)-1,diaa);
			var	dFechaModif = new Date(dFecha - numDias*24*60*60*1000);				
				diaa = dFechaModif.getDate();
				if(parseInt(diaa,10)<10) diaa="0"+diaa;
				mess = dFechaModif.getMonth()+1;
				if(parseInt(mess,10)<10) mess="0"+mess;
				anio=dFechaModif.getFullYear();
		}
		
		
		return diaa + "/" + mess + "/" + anio ;
	}	
	
/*****************************************************************************************/
	//Función que devuelve una cadena 
	//sin espacios por la derecha y la izquierda.
	//	Elemento:Es el objecto a validar(la caja de texto).
	function Trim(str) {
		var resultStr = '';
		resultStr = TrimLeft(str);
		resultStr = TrimRight(resultStr);	
		return resultStr;
	}

	/*****************************************************************************************/
	//Función que quita los espacios por la izquierda.
	//	str:la cadena a limpiar.
	function TrimLeft(str) {
		var resultStr = '';
		var i =  0;
		var len = 0 ;
		if (str+'' == 'undefined' || str == null){return null;}
		str += '';
		if (str.length == 0){
			resultStr = '';
		}else{	
			len = str.length;					
	  		while ((i <= len) && (str.charAt(i) == " ")){i++;}
	  		resultStr = str.substring(i, len);
	  	}		
	  	return resultStr;
	}

	/*****************************************************************************************/
	//Función que quita los espacios por la derecha.
	//	str:la cadena a limpiar.
	function TrimRight(str) {
		var resultStr='';
		var i=0;
		if (str+'' == 'undefined' || str == null){return null;}
		str += '';
		if (str.length == 0){
			resultStr = '';
		}else{
	  		i = str.length - 1;
	  		while ((i >= 0) && (str.charAt(i) == ' ')){i--;}
		  	resultStr = str.substring(0, i + 1);
		}
		return resultStr;
	}	
	
//****************************************************************************************/
// Determina si la cadena que se le pasa como parámetro
// puede corresponder a una dirección de correo electrónico
//****************************************************************************************/
function EsMail(objMail){
	var iLongitud;
	var iIndice;
	var iIndiceAux;
	var sDominio;
	var sLastDom;
	var iPos;
	var iCodigoASCII;
	var sMail = objMail.value;

	objMail.value = sMail;
	if (sMail == ''){
		return false;
	}else{
		iLongitud = sMail.length;

		//Se busca si existe algún carácter extraño en la dirección
		for (iPos = 0; iPos <= iLongitud - 1; iPos++){
			// Obtenemos el código ASCII del caracter actual...
			iCodigoASCII = sMail.charCodeAt(iPos);
			// Comprobamos que no sea un caracter de operador lógico...
			if (iCodigoASCII==33 || iCodigoASCII==35 ||
			    iCodigoASCII==36 || iCodigoASCII==37 ||
			    iCodigoASCII==38)
			{
			  return false;
			    break;
			}
		}

		iIndice = sMail.indexOf('@',0);
		if (iIndice <= 0){
			return false;
		} else {
			iIndiceAux = iIndice;
		    iIndice = sMail.indexOf('@',iIndice+1);
		    if (iIndice != -1){
				return false;
		    }
		    iIndice = iIndiceAux;
		}
		sDominio = sMail.substring(iIndice+1);
		if (sDominio.charAt(0) == '.' || sDominio.charAt(0) == '@'){
			return false;
		}
		sLastDom = sMail.lastIndexOf('.');
		if (sLastDom == -1 || sLastDom == iLongitud -1 ){
			return false;
		}
		return true;
	}
}	