function onlythis(myfield,e,cadena){// onKeyPress="return onlythis(this,event,6);"
	var temp_cadena;
	switch(cadena){
		case 'nickname'				: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz-_";break;
		case 'telefono'				: temp_cadena = "0123456789-";break;
		case 'solo_letras_espacio'	: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZabcdefghijklmnopqrstuvwxyzñÑ ";break;
		case 'nombres'				: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZabcdefghijklmnopqrstuvwxyzñÑáéíóúÁÉÍÓÚ-. ";break;
		case 'asunto'				: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz\/?#$%&()=*+}{[]_-><:,.;ñÑáéíóúÁÉÍÓÚº ";break;
		case 'textarea'				: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz\/?#$%&()=*+}{[]_-><:,.;ñÑáéíóúÁÉÍÓÚº ";break;
		case 'password'				: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz_-.";break;
		case 1: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz_-.";break;
		case 'dep_prov_dist_dir'	: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz\/?#$%&()=*+}{[]_-><:,.;ñÑáéíóúÁÉÍÓÚº ";break;
		case 'codigo_postal'		: temp_cadena = "0123456789-";break;
		case 'ruc'					: temp_cadena = "0123456789";break;
		case 'razon_social'			: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZabcdefghijklmnopqrstuvwxyzñÑáéíóúÁÉÍÓÚ-&. ";break;
		case 'observaciones'		: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz\/?#$%&()=*+}{[]_-><:,.;ñÑáéíóúÁÉÍÓÚº ";break;
		case 'numero_recibo'		: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz_";break;
		case 'file'					: temp_cadena = "";break;
		case 'precio'				: temp_cadena = "0123456789.";break;
		case 'codigo'				: temp_cadena = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz-_";break;
	}
	var key;
	var keychar;
	var keycadena = temp_cadena;
	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;
	keychar = String.fromCharCode(key);

	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27))
		return true;
	else 
		if (((keycadena).indexOf(keychar) > -1))
			return true;
	return false;
}

//*****************
// funcion k se copio jorge y k se utiliza para restringir el numero de caracteres escritos en un textarea
//**************
function corta(forma,objeto,tam){
   	with (forma){
        if (objeto.value.length>tam)
           objeto.value=objeto.value.substring(0,tam);
        objeto.focus();
   }
}
//************************************************************
// Quita todos los caracteres que que estan en "bag" de la cadena
//  "s".
//************************************************************
function stripCharsInBag (s, bag)
{
	var i;
    var returnString = "";
    // Buscar por el string, si el caracter no esta en "bag",
    // agregarlo a returnString
    for (i = 0; i < s.length; i++)
    {   var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;

    }
    return returnString;
}
//************************************************************
// Quita espacios en blanco
//************************************************************
function trim(cadena){
	temp_cadena = "";
	for (i=0;i<cadena.length;i++){
		letra=cadena.substring(i,i+1);
		if (letra != ' ')
			temp_cadena = temp_cadena + letra;
	}
	return(temp_cadena);
}
//************************************************************
// Verifica si una cadena es un número real
//************************************************************
function EsReal(numero){
   Decimal=false
   numerostr="" + numero
   for (var i=0; i < numerostr.length; i++) {
   var caracter=numerostr.charAt(i)
   if (caracter== "." && !Decimal) {
      Decimal=true
      continue
   }
   if (caracter < "0" || caracter > "9") {
       return false
   }
 }
 if (numero>9999999999999.99)
 {
	return false
 }
 return true
}
//************************************************************
// Verifica si una cadena contiene sólo letras.
//************************************************************
function isAlphabetic (s)
{   var i;
    for (i = 0; i < s.length; i++)
    {
        // Check that current character is letter.
        var c = s.charAt(i);
        if (!isLetter(c))
             return false;
    }
    return true;
}
//************************************************************
// Verifica si es una cadena es un nombre válido: tiene sólo letras,
// números o espacios en blanco.
//************************************************************
function EsNombre (s){
	var whitespace = "-,. \t\n\r";
	variable = stripCharsInBag( s, whitespace );
	return( isAlphabetic(variable) );
}
function numchar(cade)
{
	return cade.length
}

//************************************************************
// Verifica si es una cadena es una dirección de correo válida
//************************************************************
function EsEmail_1 (s)
{
    if (isWhitespace(s)) return false;
    var i = 1;
    var sLength = s.length;
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }
   if ((i >= sLength) || (s.charAt(i) != "@"))  return false;
    else i += 2;
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++

    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function EsEmail (x){
	var filtro  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filtro.test(x))
		return true;
	else
		return false;
}

//************************************************************
// Remover caracteres al comienzo y al final de una cadena
//************************************************************
function removercaracteres (inputString, removeChar) 
{
	var returnString = inputString;
	if (removeChar.length)
	{
	  while(''+returnString.charAt(0)==removeChar)
		{
		  returnString=returnString.substring(1,returnString.length);
		}
		while(''+returnString.charAt(returnString.length-1)==removeChar)
	  {
	    returnString=returnString.substring(0,returnString.length-1);
	  }
	}
	return returnString;
}

//************************************************************
// Verifica si una cadena es una dirección (ubicación) válida
//************************************************************

function EsDireccion (s)
{   var i;
     var whitespace = " \t\n\r";
     s=stripCharsInBag( s, whitespace )
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) || (c=="'") || (c==",") || (c==".") || (c=="(") || (c=="/") || (c==")") || (c=="#") || (c=="-") ) )
        return false;
    }
    return true;
}
//************************************************************
// Verifica si es un direccion
//************************************************************
function EsNumDireccion (s)
{   var i;
     var whitespace = " \t\n\r";
     s=stripCharsInBag( s, whitespace )
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) || (c=="-") || (c=="/")) )
        return false;
    }
    return true;
}
//************************************************************
// Verifica si es un numero valido
//************************************************************
 function fnumero(numero){
	 for (var i = 0; i < numero.length; i++){
		 var carac = numero.substring(i,i+1)
         if (carac < "0" || carac > "9")
			return false;
	}
	return true;
}
//************************************************************
// Verifica si una cadena es un número de teléfono válido
//************************************************************
function EsTelefono (s){
	var modString;
	var phoneChars = "()-+, ";
	modString = stripCharsInBag( s, phoneChars );
	if (modString.length < 6 )
		return false;
	variable =  fnumero(modString)
	return variable;
}
//************************************************************
// Verifica si es una cadena está vacía.
//************************************************************
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}
//************************************************************
// Verifica si es una cadena contiene sólo espacios en blanco,
// tabuladores, o retornos de linea)
//************************************************************
function isWhitespace (s)
{   var i;
     var whitespace = " \t\n\r";
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {
       var c = s.charAt(i);
        // si el caracter en que estoy no aparece en whitespace,
        // entonces retornar falso
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}
//************************************************************
// Verifica si es un caracter es una letra.
//************************************************************
function isLetter (c)
{
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzáéíóúñü"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ"
    return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
            ( lowercaseLetters.indexOf( c ) != -1 ) )
}
//************************************************************
// Verifica si un caracter es un número
//************************************************************
function isDigit (c)
{   return (((c >= "0") && (c <= "9")) || (c <= "."))
}
//************************************************************
// Verifica si una cadena contiene sólo letras o números
// ademas de otros caracteres necesarios
//************************************************************
function isAlphanumeric (s){
	var i;
	var whitespace = "-,./ \t\n\r";
	li = stripCharsInBag( s, whitespace );
    for (i = 0; i < li.length; i++){
		var c = li.charAt(i);
		if (! (isLetter(c) || isDigit(c) ) )
			return false;
	}
	return true;
}
//************************************************************
// Verifica si una cadena contiene  solo números
//************************************************************
function EsPorcentaje(cadena)
{
	if (!EsNumero(cadena))
	{
		return false
	}
	else
	{
		if ((parseInt(cadena)<0)||(parseInt(cadena)>100))
		{
			alert ("Ingrese un porcentaje")

			return false
		}
		else
		{

			return true
		}
	}
}
//************************************************************
// Verifica si una cadena es un numero
//************************************************************
function EsNumero(s)

{   var i;
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (! (isDigit(c) ) )
        return false;
    }
    return true;
}
//************************************************************
// Verifica si la extension es valida
//************************************************************

function archivovalido(extension,archivo){
	var strArchivo;
	var lastPosPoint;
	var strExtensionArchivo;
	var strExtensionPrueba;
	strExtensionPrueba = filtro(extension.toString());
	strArchivo = filtro(archivo.toString());
	lastPosPoint = strArchivo.lastIndexOf(".");
	if (lastPosPoint == -1){
		return false;
	}
	strExtensionArchivo = strArchivo.substring(lastPosPoint + 1,strArchivo.length);
	if (strExtensionArchivo != strExtensionPrueba){
		return false;
	}
	return true;
}
//************************************************************
// Filtro
//************************************************************

function filtro(cadena) 
{ 
	cadena = cadena.replace(/[\s]/g,""); 
        return cadena.replace("'","''"); 
} 

function filtro2(cadena) 
{ 
	cadena = cadena.replace(/[\s]/g,""); 
        return cadena;
} 
//************************************************************
// Verifica si es la cadena contiene caracteres invalidos
//************************************************************

function cadenainvalida(strCadena)
{
var valido = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz\/?#$%&()=*+}{[]_-> <:,.;ñÑáéíóúÁÉÍÓÚ";
	for (i = 0 ; i <= strCadena.length - 1; i++)
	{	
if (valido.indexOf(strCadena.substring(i,i+1),0) == -1)
		{
alert ("El caracter '"+strCadena.substring(i,i+1)+"' no es válido");
return true;
		} 
	}	
	return false;
}


function eliminar(parametro,pregunta,accion)
{
	if (confirm(pregunta))
	 {
		document.formulario.oculto.value = parametro
		document.formulario.action = accion
		document.formulario.submit()
	}else{

	}
}

function editar(parametro,accion)
{
		document.formulario.oculto.value = parametro
		document.formulario.action = accion
		document.formulario.submit()
}
function nuevo(accion)
{
		document.formulario.action = accion
		document.formulario.submit()
}

function abrirx(accion)
{
window.open(accion,'Ventana','width=660,height=606,resizable=no,toolbars=no,scrollbars=yes,left=100,top=50')
}


//************************************************************
// Funcion que permite saber si una variable existe dentro de la forma
//************************************************************
function js_ExisteElemento(forma,elemento)
{ for (var i = 0; i < forma.length; i++) {
       if (forma.elements[i].name == elemento) {
          return 1; }
 } return 0;
}
//************************************************************
// Verifica si una cadena es una fecha válida.
//************************************************************
function valida_fecha(dia,mes,ano)
{
	dia=trim(dia)
	mes=trim(mes)
	ano=trim(ano)
	if (! EsNumero(dia)) 	return false;
	if (! EsNumero(mes)) 	return false;
	if (! EsNumero(ano)) 	return false;
	if(dia.substring(0,1)=='0')
	{
		dia=dia.substring(1,2)
	}
	if(mes.substring(0,1)=='0')
	{
		mes=mes.substring(1,2)
	}
	if (mes < 1 || mes > 12)
	   return false;
	if (dia < 1 || dia > 31)
	   return false;
	if (ano < 1754 || ano > 9999)
	   return false;
	if(mes==2 && dia>29)   	//valida Febrero
	   return false;
	if ((ano%4)!=0 && dia ==29 && (mes==2)) // anio bisiesto
	{
		return false;
	}
	if ((mes==4||mes==6||mes==9||mes==11)& dia>30) //Meses de 30 dias.
		return false;
	return true;
}

//************************************************************
// Verifica si una cadena es válida como login o password
//************************************************************
function isLoginPass(inputVal)
{
    if (fnumero(inputVal))
    {
    	alert("Ingrese una cadena que contenga caracteres y numeros");
    	return false;
    }
    return isAlphanumeric(inputVal);
}
//************************************************************
// Verifica si una cadena contiene sólo letras o números
//************************************************************
function isLoginPassword (s){
	var i;
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if ( c == "á" || c == "é" || c == "í" || c == "ó" || c == "ú" )
        	return false;
    }
    return true;
}
//************************************************************
// Verifica si una palabra se encuentra en una cadena
//************************************************************
function Pal_in_Cad (cadena, palabra)
{   var i, longpalabra, longcadena, fin;
	longcadena  = cadena.length;
	longpalabra = palabra.length;
    fin=0;
    i=0;
    if (longcadena >= longpalabra)
    {
		while ( !fin && i<longcadena)
		{
			if (palabra == cadena.substring(i,i+longpalabra))
			{	fin=1;
				return false;
			}
			i=i+1;
		}
	}
    return true;
}

function cadenanombres(strCadena)
{
var valido = "ABCDEFGHIJKLMNOPQRSTUVWYXZabcdefghijklmnopqrstuvwxyz ñÑáéíóúÁÉÍÓÚ";
	for (i = 0 ; i <= strCadena.length - 1; i++)
	{	
if (valido.indexOf(strCadena.substring(i,i+1),0) == -1)
		{
alert ("El caracter '"+strCadena.substring(i,i+1)+"' no es válido");
return true;
		} 
	}	
	return false;
}

//02
function cadenadireccion(strCadena)
{
var valido = "ABCDEFGHIJKLMNOPQRSTUVWYXZabcdefghijklmnopqrstuvwxyz ñÑáéíóúÁÉÍÓÚ";
	for (i = 0 ; i <= strCadena.length - 1; i++)
	{	
if (valido.indexOf(strCadena.substring(i,i+1),0) == -1)
		{
alert ("El caracter '"+strCadena.substring(i,i+1)+"' no es válido");
return true;
		} 
	}	
	return false;
}
//03
function cadenaletrasnumeros(strCadena)
{
var valido = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz ñÑáéíóúÁÉÍÓÚ";
	for (i = 0 ; i <= strCadena.length - 1; i++)
	{	
if (valido.indexOf(strCadena.substring(i,i+1),0) == -1)
		{
alert ("El caracter '"+strCadena.substring(i,i+1)+"' no es válido");
return true;
		} 
	}	
	return false;
}

function cadenarefesencia(strCadena)
{
var valido = "ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789abcdefghijklmnopqrstuvwxyz :,;\/'=-*+(){}[].;ñÑáéíóúÁÉÍÓÚ";
	for (i = 0 ; i <= strCadena.length - 1; i++)
	{	
if (valido.indexOf(strCadena.substring(i,i+1),0) == -1)
		{
alert ("El caracter '"+strCadena.substring(i,i+1)+"' no es válido");
return true;
		} 
	}	
	return false;
}

function numreal(strCadena)
{
var valido = "0123456789.";
	for (i = 0 ; i <= strCadena.length - 1; i++)
	{	
		if (valido.indexOf(strCadena.substring(i,i+1),0) == -1)
		{
			alert ("El caracter '"+strCadena.substring(i,i+1)+"' no es válido");
			return true;
		} 
	}	
	return false;
}

function fecha(cadena) // Verifica que la fechas sea formato dd/mm/aaaa
{
var fecha=new String(cadena)
if (fecha.length!=10)
{
alert ("Compruebe que se ha ingresado en formato dd/mm/aaaa");
return false;
}
else
{
	if ((fecha.charAt(2)!="/") || (fecha.charAt(5)!="/") )
	{
alert ("Compruebe que se ha ingresado en formato dd/mm/aaaa");
return false;
	}
	else
	{
		if (isNaN(fecha.substring(0,2)) || isNaN(fecha.substring(3,5)) || isNaN(fecha.substring(6,10)))
		{
		return false
		}
		else
		{
			compd=fecha.substring(0,2)
			compm=fecha.substring(3,5)
			compa=fecha.substring(6,10)
					if (!valida_fecha(compd,compm,compa))				
 						{
						alert ("Compruebe que se ha ingresado una fecha correcta");
						return false;
						}

						else
						{
		
						return true
						}

			}
		}
}
}


function fecha_null(cadena) // Verifica que la fechas sea formato dd/mm/aaaa (acepta nulos)
{
var fecha=new String(cadena)
//alert(fecha.length)
if ((fecha.length!=10)&&(fecha.length!=0))
{
alert ("Compruebe que se ha ingresado en formato dd/mm/aaaa");
return false;
}
else
{
	if (((fecha.charAt(2)!="/") || (fecha.charAt(5)!="/") )&&(fecha.length!=0))
	{
alert ("Compruebe que se ha ingresado en formato dd/mm/aaaa");
return false;
	}
	else
	{
		if ((isNaN(fecha.substring(0,2)) || isNaN(fecha.substring(3,5)) || isNaN(fecha.substring(6,10)))&&(fecha.length!=0))
		{
		return false
		}
		else
		{
			compd=fecha.substring(0,2)
			compm=fecha.substring(3,5)
			compa=fecha.substring(6,10)
					if ((!valida_fecha(compd,compm,compa))&&(fecha.length!=0))				
 						{
						alert ("Compruebe que se ha ingresado una fecha correcta");
						return false;
						}

						else
						{
		
						return true
						}

			}
		}
}
}


/********************************************************************************************/
//Verifica que la fecha ingresada no sea mayor a la fecha de hoy
/********************************************************************************************/

function fecha_menor(cadena){

	var fecha=new String(cadena)
	compd=fecha.substring(0,2)
	compm=fecha.substring(3,5)
	compa=fecha.substring(6,10)

	fecha_ingresada=compa+compm+compd

	fecha_actual=new Date()
	dia=fecha_actual.getDate()
	if(dia<10) dia='0'+dia
		mes=fecha_actual.getMonth()+1
	if(mes<10) mes='0'+mes
		anio=fecha_actual.getYear()
	
	
	fecha_hoy=String(anio)+String(mes)+String(dia)
	
	if(eval(fecha_ingresada)>eval(fecha_hoy)){
		alert("No puede ingresar una fecha mayor a la fecha actual: "+dia+"/"+mes+"/"+anio)
		return false
	}else{
		return true
	}
	
}

/********************************************************************************************/
//Verifica que fecha_uno sea menor a fecha_dos
/********************************************************************************************/
function fecha_comp(cadena_uno,cadena_dos){

	var fecha_uno=new String(cadena_uno)
	compd=fecha_uno.substring(0,2)
	compm=fecha_uno.substring(3,5)
	compa=fecha_uno.substring(6,10)

	fecha_ingresada_uno=compa+compm+compd
	
	var fecha_dos=new String(cadena_dos)
	compd=fecha_dos.substring(0,2)
	compm=fecha_dos.substring(3,5)
	compa=fecha_dos.substring(6,10)

	fecha_ingresada_dos=compa+compm+compd
	
	if(eval(fecha_ingresada_uno)>eval(fecha_ingresada_dos)){
		alert("Fecha de Inicio no puede ser mayor que Fecha de Término")
		return false
	}else{
		return true
	}
	
}



function hora(cadena) // Verifica que el formato de hora hh:mm
{
var hora=new String(cadena)
if (hora.length!=5)
{
alert ("Compruebe que se ha ingresado en formato hh:mm");
return false;
}
else
{
	if (hora.charAt(2)!=":")
	{
		alert ("Compruebe que se ha ingresado en formato hh:mm");
		return false;
	}
	else
	{
		if (isNaN(parseInt(hora.substring(0,2),10)) || isNaN(parseInt(hora.substring(3,5),10)) )
		{
			alert ("Compruebe que se ha ingresado en formato hh:mm");		
			return false
		}
		else
		{
			comph=hora.substring(0,2)
			if ((parseInt(comph,10)<0)||(parseInt(comph,10)>24))
			{
				alert ("Compruebe que se ha ingresado en formato hh:mm");			
				return false
			}

			compm=hora.substring(3,5)
			if ((parseInt(compm,10)<0)||(parseInt(compm,10)>59))			
			{
				alert ("Compruebe que se ha ingresado en formato hh:mm");			
				return false				
			}

			return true
		}
	}
}
}
