<!--
/*
*	Funciones JavasScript 
*   Utilerias Basicas
*   Version: 19-06-2005
*	Programador: Jesús Hernández Suárez
*/




/*
*	Esta funcion permite aceptar solo datos numericos
* 	Se usa sobre onkeyup del input
*   formatoNumericos(objeto,limite);
*
*   Ejemplo:  <input name="prueba" onKeyUp="JavaScript:formatoNumerico(this,6)
*				permite introducir solo 6 caracteres numericos
*/
function formatoNumericos(objeto,tamano)
	{
		objeto.maxLength=tamano;
		vPosicion=objeto.value.length-1;
		vCaracter=objeto.value.charAt(vPosicion);
		SubCadena=objeto.value.substr(0,vPosicion)
		AceptarPunto=false;
		if(vCaracter=="." && SubCadena.indexOf(".")>=0)
			AceptarPunto=false;
		else if(vCaracter==".")
			AceptarPunto=true;
		if(!((vCaracter>=0 && vCaracter<=9)||AceptarPunto))
		{
			objeto.value=SubCadena;
		}
	}
/*
*	Esta funcion permite aceptar solo datos numericos DECIMALES
* 	Se usa sobre onkeyup del input
*   formatoDecimales(objeto,limite);
*
*   Ejemplo:  <input name="prueba" onKeyUp="JavaScript:formatoDecimales(this,6)
*				permite introducir solo 6 caracteres numericos decimales
*/
function formatoDecimales(objeto,tamano)
	{
		objeto.maxLength=tamano;
		vPosicion=objeto.value.length -1;
		vCaracter=objeto.value.charAt(vPosicion);
		
		SubCadena=objeto.value.substr(0,vPosicion)
		if(!(vCaracter>=0 && vCaracter<=9))
		{
			objeto.value=objeto.value.substr(0,vPosicion);
		}
	}
/*
*	Esta funcion permite aceptar solo datos ALFABETICOS (A..z,a..z, y el espacio)
* 	Se usa sobre onkeyup del input
*   formatoAlfabetico(objeto,limite);
*
*   Ejemplo:  <input name="prueba" onKeyUp="JavaScript:formatoDecimales(this,6)
*				permite introducir solo 6 caracteres alfabeticos
*/	
function formatoAlfabetico(objeto,tamano)
	{
		objeto.maxLength=tamano;
		vPosicion=objeto.value.length -1;
		vCaracter=objeto.value.charCodeAt(vPosicion);
		SubCadena=objeto.value.substr(0,vPosicion)
		if(!((vCaracter>=97 && vCaracter<=122)||(vCaracter>=65 && vCaracter<=90)||vCaracter==209||vCaracter==241||vCaracter==241))
		{
			objeto.value=objeto.value.substr(0,vPosicion);
		}
	}
/*
*	Esta funcion permite aceptar solo caracteres especificos
* 	Se usa sobre onkeyup del input
*   formatoDecimales(objeto,limite,caracteres);
*
*   Ejemplo:  <input name="prueba" onKeyUp="JavaScript:formatoDecimales(this,6,'0123456789abcdefABCDEF')">
*				permite introducir solo 6 caracteres numericos hexadecimales
*/	
function formatoEspecial(objeto,tamano,Codigos)
	{
		objeto.maxLength=tamano;
		vPosicion=objeto.value.length -1;
		vCaracter=objeto.value.charAt(vPosicion);
		SubCadena=objeto.value.substr(0,vPosicion)
		if(Codigos.indexOf(vCaracter)==-1)
		{
			objeto.value=objeto.value.substr(0,vPosicion);
		}
	}	
/*
*	Esta funcion permite saltar al siguiente campo caundo llege al numero de caracteres limite
* 	Se usa sobre onkeyup del input
*   SiguinteIndex(objeto,limite,siguienteTab);
*
*   Ejemplo:  <input name="prueba" tabindex="1" onKeyUp="JavaScript:SiguinteIndex(this,3,2)">
*				despues de habre introducido 3 caracteres salta la siguiente campo
*
*	Recomendaciones:  De ser posible agregarle la propiedad "tabindex" a cada campo 
*					 dependiendo de su posición iniciando en 0 y sin saltarse valores
*/
function SiguienteIndex(objeto,limite,TabSig)
{
	nCaracteres=objeto.value.length;
	formulario=objeto.form;
	nElem=formulario.elements.length;
	if(nCaracteres>=limite)
	{
		for(Cont=0;Cont<nElem;Cont++)
		{
			if(formulario.elements[Cont].tabIndex==TabSig)
			{
				formulario.elements[Cont].focus();
				break;
			}
		}
	}
}






/*
*
*
*  Funciones Fecha
*
*/
/*
*   Inicio:21/06/2006
*	Variable que permite determiar en que como leer los texto Fecha
*    mascaras posibles:
*	dd - le los siguiente dos digitos deben ser numericos y se tomaran como el dia del mes 01-31
*   mm - le los siguiente dos digitos se tomaran como el mes 01-12
*   aaaa - los siguientes 4 digitos se tomaran como año 1900-20xx
*   aa  - los siguientes 2 digitos se tomaran como año 2000-20xx
*   los demas  caracteres se tomara como paja
*/
MascaraFormatoFecha="dd/mm/aaaa";

/*
* 	Determina si el texto metido es una fecha valida
*   validarFecha("10-05-1978")
*   el formato de a fecha es tomado apartir de la variable global "MascaraFormatoFecha"
*   regresa -1 si es false y  1 si es valido
*/

function validarFecha()
{
//	alert(arguments.length);
	Texto=arguments[0];
	PosicionDia=-1;
	PosicionMes=-1;
	PosicionAnio=-1;
	TipoAnio=0;//0 - 4 dig, 1 - 2 dig
	dia=0;
	mes=0;
	anio=0;
	if(Texto.length!=10)
		return false;
	PosicionDia=MascaraFormatoFecha.indexOf("dd");
	PosicionMes=MascaraFormatoFecha.indexOf("mm");
	PosicionAnio=MascaraFormatoFecha.indexOf("aaaa");
	if(PosicionAnio==-1)
	{
		PosicionAnio=Texto.indexOf("aa");
		TipoAnio=1;
	}
	//alert(PosicionDia);
	if(PosicionDia>=0)
	{
		dia="" + strsubnum(Texto,PosicionDia);
		dia=dia.substr(0,2);
		if(dia<1||dia>31)
			return -1;
	}
	else
		dia=1;
	
	if(PosicionMes>=0)
	{
		mes=strsubnum(Texto,PosicionMes);
		mes=mes.substr(0,2);
		if(mes<1||mes>12)
			return false;
	}
	else
		mes=1;
	if(PosicionAnio>=0)
	{
		anio=strsubnum(Texto,PosicionAnio);
		if(TipoAnio==1)
		{
			anio=anio.substr(0,2);
			anio=anio + 2000;
		}
		else
		{
			anio=anio.substr(0,4);
		}
		if(anio<1900||anio>2100)
			return false;
	}
	else
		anio=1900;
		
	if((anio%4 != 0) && (mes == 2) && (dia > 28))	//en año viciesto solo hay 28 dias
		return false;
	if ((((mes == 4) || (mes == 6) || (mes == 9) || (mes==11)) && (dia>30)) || ((mes==2) && (dia>29)))
		return false;
	if(arguments.length==2)
	{
		var fechasal=new Date();
		fechasal.setTime(0);
		fechasal.setDate(dia);
		fechasal.setMonth(mes-1);
		fechasal.setYear(anio);
		
		//regresa la fecha en tipo DATE
		return fechasal;
	}
			
	return true;//paso todas las pruebas y no se pido convertir lo a tipo fecha
}


/*
*	Permite recoger los caracteres numericos desde la posicion dada hasta donde dejen des ser numeros
*
*
*/
function strsubnum(texto,pos)
{
	var Resultado="";
	var Caracter="";
	Max=texto.length;
	//var Contador=pos;
	//alert(texto.charCodeAt(Contador));
	for(Contador=pos;(texto.charCodeAt(Contador)>=48 && texto.charCodeAt(Contador)<=57)&&Contador<Max;Contador++)
//	if(texto.charCodeAt(Contador)>=48 && texto.charCodeAt(Contador)<=57)
	{
		Resultado=Resultado + texto.charAt(Contador);
	}
	return Resultado;
}



/*
function valida email
{
	
}*/
function valida_correo(email){
    regx = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
    return regx.test(email);
}
 

//-->
