//Elaborado por: Héctor Gutierrez - CDSI
//Fecha Sep-24-2003


function JsNumerico() // VALIDATE NUMERIC
{
	if(((event.keyCode>=0x30)&&(event.keyCode<=0x39))||(event.keyCode==8)||(event.keyCode==13))
	{
		return true;
	}
	event.keyCode=0;
}

//**********************************************************************

function DoWinBack() // BACK HISTORY
{
	window.history.go(-1);
}

function jsDoImprime() // DEFAULT PRINTER 
{
window.print();
}

// *** DELETE ***********************************************************

//Funcion del Check All
var sCheckflag = "false";	

function jsCheck(field) 
{
	if (sCheckflag == "false") {
		for (i = 0; i < field.length; i++) {
			field[i].checked = true;}
			sCheckflag = "true";	//return "Seleccionar Ninguno"; 
			}
	else {
		for (i = 0; i < field.length; i++) {
			field[i].checked = false; }
			sCheckflag = "false"; //return "Seleccionar Todos"; 
			}
	}

function jsElimina(field) // DELETE REGESTRY SELEC
{
	var iVal
	iVal = 0
	cad = "("
		for (i = 0; i < field.length; i++) 
		{
			//alert (field[i].checked);
			if (field[i].checked == true) 
			{
				iVal = 1
				cad = cad+field[i].value+",";
			}
		}

	if (iVal == 1)
	{
		if (confirm("Esta seguro de eliminar el registro?"))						
		{
			document.form1.cadenaG.value = cad		
			document.form1.submit();		
		}
	}	
}


//****************************************************************************
// hace el submit de la forma y modifica su propiedad "action"
	function submitTheForm(theFormName,action){
		if(action!='')
			document.forms[theFormName].action = action;
		document.forms[theFormName].submit()
	}


// Valida la un campo text como requerido y con una longitud maxima, imprime el nombre del campo o un texto opcional
	function validaCampo(nombreForma,nombreCampo){
	var strTexto
	var chrTipoDeDato
	var longitud
	var minimo
	var requerido
	
		//checo si argumentos extra
		if(arguments.length>=6)
			longitud = arguments[5]; // numero que representa longitud maxima
			
		if(arguments.length>=7)
			minimo = arguments[6];	// numero que representa longitud minima

		if(arguments.length>=4)
			requerido = arguments[3]; // 1 si es requerido, 0 sino lo es
	
		if(arguments.length>=3)			//texto que se imprimira el los alerts
			 strTexto = arguments[2]
		else
			 strTexto = nombreCampo;
	  
		if(arguments.length>=5)			
			 chrTipoDeDato = arguments[4] // A=texto, 9=entero, D=decimal;
		
		

		// valida el campo como requerido
		//alert("-----> " + strTexto)
		if(requerido)
			if (document.forms[nombreForma].elements[nombreCampo].value == "")
			{
			  alert("Por favor introduzca un valor para: [" + strTexto + "] .") 
			  document.forms[nombreForma].elements[nombreCampo].focus();
			  return (false); 
			}
		
		//valida la logitud maxima
				
		if (!isNaN(longitud)){
			if (document.forms[nombreForma].elements[nombreCampo].value.length > longitud)
			{
			  alert("Por favor introduzca solo " + longitud + " caracteres en el campo [" + strTexto + "] .");
			  document.forms[nombreForma].elements[nombreCampo].focus();
			  return (false); // 
			}
		}			
		
		//valida la logitud minima
		if (!isNaN(minimo)){
			if (document.forms[nombreForma].elements[nombreCampo].value.length < minimo)
			{
			  alert("Por favor introduzca almenos " + minimo + " caracteres en el campo [" + strTexto + "] .");
			  document.forms[nombreForma].elements[nombreCampo].focus();
			  return (false); // 
			}
		}
		// valida que sea solo texto	
		if (chrTipoDeDato=='A'){
		  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ \t\r\n\f";
		  var checkStr = document.forms[nombreForma].elements[nombreCampo].value;
		  var allValid = true;
		  for (i = 0;  i < checkStr.length;  i++)
		  {
		    ch = checkStr.charAt(i);
		    for (j = 0;  j < checkOK.length;  j++)
		      if (ch == checkOK.charAt(j))
		        break;
		    if (j == checkOK.length)
		    {
		      allValid = false;
		      break;
		    }
		  }
		  if (!allValid)
		  {
		    alert("Por favor introduzca solo letras para: [" + strTexto + "]");
		    document.forms[nombreForma].elements[nombreCampo].focus();
		    return (false); //
		  }
		}

		// valida si es Entero valido
		if (chrTipoDeDato=='9'){
		  var checkOK = "0123456789,";
		  var checkStr = document.forms[nombreForma].elements[nombreCampo].value;
		  var allValid = true;
		  var decPoints = 0;
		  var allNum = "";
		  for (i = 0;  i < checkStr.length;  i++)
		  {
		    ch = checkStr.charAt(i);
		    for (j = 0;  j < checkOK.length;  j++)
		      if (ch == checkOK.charAt(j))
		        break;
		    if (j == checkOK.length)
		    {
		      allValid = false;
		      break;
		    }
		    if (ch != ",")
		      allNum += ch;
		  }
		  if (!allValid)
		  {
		    alert("Por favor introduzca solo números enteros para: [" + strTexto + "] Ej: 99,999");
		    document.forms[nombreForma].elements[nombreCampo].focus();
		    return (false); //
		  }
		}

		//valida si es decimal 
		if (chrTipoDeDato=='D'){
		  var checkOK = "0123456789.,";
		  var checkStr = document.forms[nombreForma].elements[nombreCampo].value;
		  var allValid = true;
		  var decPoints = 0;
		  var allNum = "";
		  for (i = 0;  i < checkStr.length;  i++)
		  {
		    ch = checkStr.charAt(i);
		    for (j = 0;  j < checkOK.length;  j++)
		      if (ch == checkOK.charAt(j))
		        break;
		    if (j == checkOK.length)
		    {
		      allValid = false;
		      break;
		    }
		    if (ch == ".")
		    {
		      allNum += ".";
		      decPoints++;
		    }
		    else if (ch != ",")
		      allNum += ch;
		  }
		  if (!allValid)
		  {
		    alert("Por favor introduzca solo números decimales en: [" + strTexto + "] Ej: 9,999.99");
		    document.forms[nombreForma].elements[nombreCampo].focus();
		    return (false); //
		  }

		  if (decPoints > 1)
		  {
		    alert("Formato de número decimal incorrecto en: [" + strTexto + "] Ej: 9,999.99");
		    document.forms[nombreForma].elements[nombreCampo].focus();
		    return (false); // 
		  }
		}
			
		//valida si es fecha del tipo MM/DD/AAAA
		if (chrTipoDeDato=='F'){
			var allValid = true;
			var checkStr = document.forms[nombreForma].elements[nombreCampo].value;
			
			if(!checkStr.length==10) 
				allValid = false;
			
				if(isNaN(checkStr.charAt(0))) allValid = false;
			
			if(isNaN(checkStr.charAt(1))) allValid = false;
			if(isNaN(checkStr.charAt(3))) allValid = false;
			if(isNaN(checkStr.charAt(4))) allValid = false;
			if(isNaN(checkStr.charAt(6))) allValid = false;
			if(isNaN(checkStr.charAt(7))) allValid = false;
			if(isNaN(checkStr.charAt(8))) allValid = false;
			if(isNaN(checkStr.charAt(9))) allValid = false;
			if(checkStr.charAt(2)!='/') allValid = false;
			if(checkStr.charAt(5)!='/') allValid = false;
			
			var dia = checkStr.charAt(0)+checkStr.charAt(1)
			var mes = checkStr.charAt(3)+checkStr.charAt(4)
			var anio =checkStr.charAt(6)+checkStr.charAt(7)+checkStr.charAt(8)+checkStr.charAt(9)
			
			if(parseInt(mes,10)<1 || parseInt(mes,10)>12) allValid = false;
			if(parseInt(dia,10)<1 || parseInt(dia,10)>31) allValid = false;
			if(parseInt(anio)<1900) allValid = false;

		  if (!allValid)
		  {		    
		    alert("Formato de fecha invalido en el campo: [" + strTexto + "] use dd/mm/yyyy");
		    document.forms[nombreForma].elements[nombreCampo].focus();
		    return (false); // Formato de fecha invalido en el campo: x must use 01/01/2003
		  }
		}
				
		return(true);
	}
	
	function esCorreo(strCorreo){	
	 var contador;
	 var posAroba;
	 var strCaracterProhibido;
	 
	 strCaracterProhibido='!"#$%&/()=?¿¡°|¬{};:,><*+';
		if (esTexto(strCorreo))
			{
				posAroba = strCorreo.indexOf('@');				
				if (posAroba>0 && posAroba<strCorreo.length-1)
				{ 
					if (strCorreo.indexOf('@',posAroba+1)<0)
					{
					 for (contador=0;contador<strCorreo.length;contador++)
					   {
							if (strCaracterProhibido.indexOf(strCorreo.charAt(contador))>=0)
							{return false;}
					   }
						return true;
					}
					else
					{return false;}
				}
				else
				{ return false;}
			}
		else
		{	return false;	}
	}

	function esTexto(cadena){
		if (cadena != ""){	
			var contador, longitud; 
			longitud=cadena.length-1;
			for (contador=0;(contador<longitud && (cadena.charAt(contador)==' '));contador++);
			return (cadena.charAt(contador)!=' ');
		}
		else{ 
			return false; 
		}
	}
