// VARIABLE DEFINITIONS

digits = "1234567890";
float_chars= digits+".+-eE";
int_chars= digits + "+-";
phone_chars = digits + "()- ";
zip_chars = digits+"-";
email_chars = ".@";
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

//Evalua los datos ingresados en el formulario de Logueo para poder ingresar solo caracteres alfa numéricos.

function ValLogueo(formulario)
{
// Usuario
var expreg = /\W/i;
var campo = formulario.usuario;

if ( campo.value == "" || expreg.test(campo.value) ){
alert("Introduzca un valor válido. Caracteres permitidos: a-z A-Z 0-9.");
campo.focus();
return false;
}

// Clave
var expreg = /\W/i;
var campo = formulario.clave;

if ( campo.value == "" || expreg.test(campo.value) )
{

alert("Introduzca un valor válido. Caracteres permitidos: a-z A-Z 0-9.");
campo.focus();
return false;
}

return true;
}


//Valida que se ingrese un número Hexa del tamaño len
//Permite espacio en blanco
function HexaString(checkString,mens,len)
{
        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 <= "f") || (ch >= "A" && ch <= "F") || (ch >= "0" && ch <= "9"))

        {
            newString += ch;
                        // || (ch == String.fromCharCode(13)) || (ch == String.fromCharCode(10))
        }
    }

    if (((checkString != newString) || (len != checkString.length)) && (checkString.length != 0))
                return message;
    return null;
}

// Valida que el valor sea númerico
function integerCheck(val,mens,minimo,maximo) {
   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;

   if ((maximo != null) && (minimo != null)) {
                if (parseInt(maximo) < parseInt(val)) {
                        //message = "El valor no puede ser mayor que " . maximo;
                        return message;
                }
                if (parseInt(minimo) > parseInt(val)) {
                        //message = "El valor no puede ser menor que " . minimo;
                        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 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 == "ú") )

        {
            newString += ch;
        }
    }

    if (checkString != newString)
                return message;
    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 null;

   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;
}


function ValidarValorCombo (combo, valor, mens)
{

	var message = "No puede dejar el combo con ese valor.";
	if (mens != null) message = mens;
	
	if (combo[combo.selectedIndex].value == valor)
		return mens;
		
	return null;
	
}

function RadioChecked (radio, mens)
{
	var message = "Debe seleccionar al menos una opción.";
	var tmp = -1;
	
	if (mens != null) message = mens;
	
	for (var i = 0; i < radio.length; i++ )
	{
		if (radio[i].checked)
			tmp = 1;
	}
	
	if (tmp < 0) return mens;
	
	return null;
	
}

// Muestra un mensaje y se posiciona en el control dado
function validatePrompt(Ctrl,PromptStr)
{
     Ctrl.focus();
     Ctrl.select();
     alert(PromptStr);
}
