
<!--
// VARIABLE DEFINITIONS 

digits = "1234567890";
float_chars= digits+".+-eE";
int_chars= digits + "+-";
phone_chars = digits + "()- ";
zip_chars = digits+"-";
email_chars = ".@"; 
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// ************************ GG ***************

// FORM INPUT VALIDATION RUTINES

//--------------------------------------------------------------------
// Función que chequea que se ingresen solo letras y números.
// Existe un mínimo de números a ingresar (NumMin), y un len total
// de caracteres requeridos (LenStr).
// No se pueden ingresar caracteres especiales.
function passwordCheck(checkString,NumMin,LenStr,mens)
{
	var contNumber=0,message,message2;
	message="Ingrese solo letras y números",message2;
	message2="Existe una cantidad mínima de letras y números a ingresar.";
    newString = "";   
    count = 0;        

	if (mens != null) message=mens;
	if (checkString == null) return null;

    for (i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);

        if ((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z")) 
        {
            newString += ch;        
        }
        if  (ch >= "0" && ch <= "9") 
        {
            newString += ch;
            contNumber++;
		}        
    }

    if (checkString != newString)
		return message;
    if ( (contNumber < NumMin) || (newString.length < LenStr ))
		return message2;
        
    return null;
}


// Telephone CHECK.
// Chequeo de telefonos.  Ej.    01-787-600
function telephoneCheck(checkString,mens)
{
	var message="Ingrese solo letras y números";
    newString = "";    // REVISED/CORRECTED STRING
    count = 0;         // COUNTER FOR LOOPING THROUGH STRING

	if (mens != null) message=mens;
	if (checkString == null) return null;

    // LOOP THROUGH STRING CHARACTER BY CHARACTER
    for (i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);

        // ENSURE CHARACTER IS AN ALPHA OR NUMERIC CHARACTER
        if ((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z") ||
            (ch >= "0" && ch <= "9") || (ch == "-")) {
            newString += ch;
        }
    }

    if (checkString != newString)
		return message;
    return null;
}



// Función que chequea strings que pueden ser letras, números
// y no puede ser una cadena vacia
function AlphaNumberNotEmpty(checkString,mens)
{
	var msj=null,msj2=null
	
	msj=notEmptyCheck(checkString,mens)
	if (msj != null)
		return msj;
	
	msj2=AlphaNumber(checkString,mens)
	if (msj2 != null)
		return msj2;
		
	return null;
}


// Función que chequea strings que pueden ser números enteros
// y no puede ser una cadena vacia
function integerNotEmpty(checkString,mens)
{
	var msj2=null,msj=null;
	
	msj=notEmptyCheck(checkString,mens)
	if (msj != null)
		return msj;
	
	msj2=integerCheck(checkString,mens);
	if (msj2 != null)
		return msj2;

	return null;
}


// Función que chequea strings que pueden ser números enteros
// y no puede ser una cadena vacia y además que tenga una longitud máxima
function integerNotEmptyLenMax(checkString,mens,maxLen)
{
	var msj2=null,msj=null;
	var men="El número debe contener como máximo "+ maxLen + " dígitos";
	msj=notEmptyCheck(checkString,mens)
	if (msj != null)
		return msj;
	
	msj2=integerCheck(checkString,mens);
	if (msj2 != null)
		return msj2;
		
	if (checkString.length > maxLen)
		return men;
	return null;
}

// Función que chequea strings que pueden ser números enteros
// y no puede ser una cadena vacia y además que tenga una cierta longitud longitud 
function integerNotEmptyLen(checkString,mens,maxLen)
{
	var msj2=null,msj=null;
	var men="El número debe contener  "+ maxLen + " dígitos";
	msj=notEmptyCheck(checkString,mens)
	if (msj != null)
		return msj;
	
	msj2=integerCheck(checkString,mens);
	if (msj2 != null)
		return msj2;
	if (checkString.length!=maxLen)
		return men;
	return null;
}


// CHECK STRING - ENSURE ALL CHARACTERS ARE ALPHA OR NUMERIC ONLY
//  (NO SPECIAL CHARACTERS)
function AlphaNumber(checkString,mens)
{
	var message="Ingrese solo letras y números";
    newString = "";    // REVISED/CORRECTED STRING
    count = 0;         // COUNTER FOR LOOPING THROUGH STRING

	if (mens != null) message=mens;
	if (checkString == null) return null;

    // LOOP THROUGH STRING CHARACTER BY CHARACTER
    for (i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);

        // ENSURE CHARACTER IS AN ALPHA OR NUMERIC CHARACTER
        if ((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z") ||
            (ch >= "0" && ch <= "9") || (ch == "ñ") || (ch == "Ñ") || (ch == "á")||
            (ch == "é") || (ch == "í") || (ch == "ó") || (ch == "ú") || (ch == " ") || (ch == ".") )
            
        {
            newString += ch;
        }
    }

    if (checkString != newString)
		return message;
    return null;
}

// CHECK STRING - ENSURE ALL CHARACTERS ARE ALPHA OR NUMERIC ONLY
//  (NO SPECIAL CHARACTERS)
function AlphaNumberEspecial(checkString,mens)
{
	var message="Ingrese solo letras y números";
    newString = "";    // REVISED/CORRECTED STRING
    count = 0;         // COUNTER FOR LOOPING THROUGH STRING

	if (mens != null) message=mens;
	if (checkString == null) return null;

    // LOOP THROUGH STRING CHARACTER BY CHARACTER
    for (i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);
		
        // ENSURE CHARACTER IS AN ALPHA OR NUMERIC CHARACTER
        if ((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z") ||
            (ch >= "0" && ch <= "9") || (ch == "ñ") || (ch == "Ñ") || (ch == "á")||
            (ch == "é") || (ch == "í") || (ch == "ó") || (ch == "ú") || (ch == " ") || (ch == ".") ||
            (ch == ",") || (ch == "\n") || (ch == "\r") || (ch == "Á")||
            (ch == "É") || (ch == "Í") || (ch == "Ó") || (ch == "Ú") || (ch == "ü") || (ch == "Ü"))
            
        {
            newString += ch;
        }

    }

    if (checkString != newString)
		return message;
    return null;
}

// Chequea que en el string sean todos caracteres sean letras
// (incluyendo el espacio en blanco
function Alpha(checkString,mens)
{
	var message="Ingrese solo letras.";
    newString = "";    // REVISED/CORRECTED STRING
    count = 0;         // COUNTER FOR LOOPING THROUGH STRING

    // LOOP THROUGH STRING CHARACTER BY CHARACTER
    for (i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);

        // ENSURE CHARACTER IS AN ALPHA CHARACTER
        if ((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z") || (ch==" ") ||
           (ch == "ñ") || (ch == "Ñ") || (ch == "á")||
            (ch == "é") || (ch == "í") || (ch == "ó") || (ch == "ú") ) {
            newString += ch;
        }
    }

    if (checkString != newString)
		return message;
    return null;
}


function notEmptyCheck(val,mens) {
   var message="Ingrese un valor";

   if (val == null)  return null;
   if (mens!=null) message=mens;
   if (val.length==0) return message;
   return null;
}



function integerCheck(val,mens) {
   var i=0, start=0;
   var message="Ingrese un valor numerico";

   if (mens!=null) message=mens;
   if (val == null) return null;
   
   if (val.length==0) return null;
   if (val.length>0 && (val.charAt(0)=="+" || val.charAt(0)=="-")) 
      start=1;

   for (i=start; i<val.length; i++)
      if ("0123456789".indexOf(val.charAt(i))==-1)
         return message;
   return null;
}


function realCheck(val,mens,decimales)
{
   var i=0, j=0, start=0;
   var pref, suf, message="Ingrese un valor numerico (NNNNNN,NN)";

   if (decimales == null) decimales = 2;
   if (mens!=null) message=mens;
   if (val == null) return null;
   if (val.length==0) return null;
   i=val.indexOf(",");

   if (i==-1) {
      if (integerCheck(val,mens)!=null) return message;
      else return null;
   }
   if (i==0) return message;
   if (i==(val.length-1)) return message;
   if (i<(val.length-decimales-1)) return message;

   if (val.length>0 && (val.charAt(0)=="+" || val.charAt(0)=="-")) 
      start=1;

   pref=val.substring(start,i);
   suf=val.substring(i+1,val.length);

   if (i>0)
      for (j=0; j<pref.length; j++)
         if ("0123456789".indexOf(pref.charAt(j))==-1)
            return message;

   for (j=0; j<suf.length; j++)
      if ("0123456789".indexOf(suf.charAt(j))==-1)
         return message;

   return null;
}

// ****************************** GG ************************
function emailCheck(val,mens)
{
   var message="Ingrese una direccion de email valida";
   var i = 0;
   var c = "";
   for (i = 0; i < email_chars.length; i++) 
   {
	c = email_chars.charAt(i);
	if (val.indexOf(c) == -1) return message;
   }
   return null;
}

function intCheck(val,mens)
{
   var message="Ingrese un numero valido";
   var i = 0;
   for (i = 0; i < val.length; i++) 
   {
	c = val.charAt(i);
	if (digits.indexOf(c) == -1) return message;
   }
   return null;
}
//******************JCG*************************
function spacesCheck(val,mens)
{
   var message="Ingrese un valor";
   var i = 0;
   for (i = 0; i < val.length; i++) 
   {

	if ( val.charAt(i) != ' ') return null;
   }
   return message;
}
function digitsWithDotCheck(val,mens)
{
   var message="Ingrese un numero valido";
   var i = 0;
   for (i = 0; i < val.length; i++) 
   {
	c = val.charAt(i);
	if ("01234567890.".indexOf(c) == -1) return message;
   }
   return null;
}

function validatePrompt(Ctrl,PromptStr)
{
     Ctrl.focus();
     Ctrl.select();
     alert(PromptStr);
}

// ************************** GG **********************************


function gt0Check(val,mens) {
   var message="Ingrese un numero mayor que cero";

   if (mens!=null) message=mens;
   if (parseFloatSpanish(val)<=0) return message;
   return null;
}

function ge0Check(val,mens) {
   var message="Ingrese un numero mayor o igual que cero";

   if (mens!=null) message=mens;
   if (parseFloatSpanish(val)<0) return message;
   return null;
}

function lt0Check(val,mens) {
   var message="Ingrese un numero menor que cero";

   if (mens!=null) message=mens;
   if (0<=parseFloatSpanish(val)) return message;
   return null;
}

function le0Check(val,mens) {
   var message="Ingrese un numero menor o igual que cero";

   if (mens!=null) message=mens;
   if (0<parseFloatSpanish(val)) return message;
   return null;
}
function telefonoCheck(val,mens){
   var i=0, j=0;
   var tel, message="Ingrese un numero de T.E. correcto";
   if (mens!=null) message=mens;
   if (val.length<4)
	return message;	
   for (i=0; i<val.length; i++)
      if ("0123456789-(),".indexOf(val.charAt(i))==-1)
         return message;

   return null;
}

// Funcion que verifica fechas válidas - permite cadenas vacias
function dateCheckEmpty(val,mens) {
	var msj2=null

	if (val.length==0) 
		return null;
	
	msj2=dateCheck(val,mens)
	if  (msj2 != null)
		return msj2;
		
	return null;
}

function dateCheck(val,mens) {
   var i=0, j=0, mes=0,ano=0;maximo=0;
   var day, month, year, message="Ingrese una fecha (DD.MM.AAAA)";

   if (val.length==0) return message;

   if (mens!=null) message=mens;
   i=val.indexOf(".");
   if (i==-1 || i==0) return message;

   j=val.lastIndexOf(".");
   if (i==j || j==val.length) return message;

   day=val.substring(0,i);
   month=val.substring(i+1,j);
   year=val.substring(j+1,val.length);

   if (month.length==0) return message;
   for (i=0; i<month.length; i++)
      if ("0123456789".indexOf(month.charAt(i))==-1)
         return message;
   j=parseInt(month, 10);
   mes=j;
   if (!(1<=j && j<=12)) return message;

   if (day.length==0) return message;
   for (i=0; i<day.length; i++)
      if ("0123456789".indexOf(day.charAt(i))==-1)
         return message;
   j=parseInt(day, 10);
   
   if (year.length!=4) return message;
   for (i=0; i<year.length; i++)
      if ("0123456789".indexOf(year.charAt(i))==-1)
         return message;
   if (!(0<parseInt(year, 10)))  return message;
      
   
   switch (mes)
   {
	case 4:case 6:case 9:case 11:
		if (!(1<=j && j<=30)) return message;
		break;
   
    case 1:case 3:case 5:case 7:case 8:case 10:case 12:
		if (!(1<=j && j<=31)) return message;
		break;
		
	case 2:
		ano=parseInt(year, 10);
		
		// Años bisiestos		
		if ((ano % 4) == 0) maximo=29
		else  maximo=28;
		
		if (!(1<=j && j<=maximo)) return message;
		break;
   
   }
      
   if (!(1<=j && j<=31)) return message;

   return null;
}

// Funcion que verifica fecha válidas con formato mes y año
function dateCheckMesAnio(val,mens) {
   var i=0, j=0, mes=0,ano=0;maximo=0;
   var day, month, year, message="Ingrese una fecha (MM/AAAA)";
	var message2="Debe ingresar una fecha";
   if (val.length==0) //return null;
		return message2;
   if (mens!=null) message=mens;
   i=val.indexOf("/");
   if (i==-1 || i==0) return message;

   month=val.substring(0,i);
   year=val.substring(i+1,val.length);

   if (month.length==0) return message;
   for (i=0; i<month.length; i++)
      if ("0123456789".indexOf(month.charAt(i))==-1)
         return message;
   j=parseInt(month, 10);
   mes=j;
   if (!(1<=j && j<=12)) return message;

   
   
   if (year.length!=4) return message;
   for (i=0; i<year.length; i++)
      if ("0123456789".indexOf(year.charAt(i))==-1)
         return message;
   if (!(0<parseInt(year, 10)))  return message;
         
   return null;
}


//****************************************************


function gtDate(val1,val2,mens) {
   var i=0, j=0;
   var day1, day2;
   var month1, month2;
   var year1, year2;
   var message="FECHAS INVALIDAS: Ingrese una fecha de inicio menor a la fecha de finalización";

   if (mens!=null) message=mens;

   i=val1.indexOf("/");
   if (i==-1 || i==0) return message;

   j=val1.lastIndexOf("/");
   if (i==j || j==val1.length) return message;

   day1=val1.substring(0,i);
   month1=val1.substring(i+1,j);
   year1=val1.substring(j+1,val1.length);

   i=val2.indexOf("/");
   if (i==-1 || i==0) return message;

   j=val2.lastIndexOf("/");
   if (i==j || j==val2.length) return message;

   day2=val2.substring(0,i);
   month2=val2.substring(i+1,j);
   year2=val2.substring(j+1,val2.length);

   // compare year, month & day
   if (parseInt(year1, 10)>parseInt(year2, 10))  return message;
   if (parseInt(year1, 10)==parseInt(year2, 10)) { 
      if (parseInt(month1, 10)>parseInt(month2, 10))  return message;
      if (parseInt(month1, 10)==parseInt(month2, 10)) { 
         if (parseInt(day1, 10)>parseInt(day2, 10))  return message;
      }
   }

   return null;
}

function patternMatchCheck(val,mask,mens) {
   var message="Ingrese un valor de la forma '" + mask + "'";
   var i=0, m=null, c=null;

   if (mens!=null) message=mens;
   // Chequeo longitud
   if (val.length!=mask.length) return message;

   // Comparo caracteres uno a uno
   for (i=0; i<val.length; i++) {
      m=mask.charAt(i);
      c=val.charAt(i);
      if (m=="?") continue;
      if (m=="N") {
         if ("0123456789".indexOf(c)==-1) return message;
      } else if (m=="A") {
         if ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(c)==-1) return message;
      } else if (m!=c) return message;
   }

   return null;
}

function parseFloatSpanish(val) {
   var i=val.indexOf(",");
   var pentera="";
   var pdecimal="";
   var retval=val;

   if (!(i==-1 || i==0)) {
      pentera=val.substring(0,i);
      pdecimal=val.substring(i+1,val.length);
      retval=pentera + '.' + pdecimal;
   }

   return parseFloat(retval);
}

function CleanForm(frm) {

   return true;
}

// CHECK STRING - ENSURE ALL CHARACTERS ARE ALPHA OR NUMERIC ONLY
//  (NO SPECIAL CHARACTERS)
// Especial para los usuario AVANTGO de la bolsa
function AlphaNumberAG(checkString,mens)
{
	var message="Ingrese solo letras y números";
    newString = "";    // REVISED/CORRECTED STRING
    count = 0;         // COUNTER FOR LOOPING THROUGH STRING

	if (mens != null) message=mens;
	if (checkString == null) return null;

    // LOOP THROUGH STRING CHARACTER BY CHARACTER
    for (i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);

        // ENSURE CHARACTER IS AN ALPHA OR NUMERIC CHARACTER
        if ((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z") ||
            (ch >= "0" && ch <= "9") || (ch == "ñ") || (ch == "Ñ") || (ch == "á")||
            (ch == "é") || (ch == "í") || (ch == "ó") || (ch == "ú") || (ch == "_") || (ch == ".") || (ch == "-") || (ch == "&") || (ch == "@") || (ch == "$") )
            
        {
            newString += ch;
        }
    }

    if (checkString != newString)
		return message;
    return null;
}

//-->
