﻿
//Funcion genérica para los popups
function popup(url,nombre,ancho,alto,scroll){
	window.open(url,nombre,'"width=" + ancho + ", height=" + alto + ",toolbar=no,resizable=no,scrollbars=" + scroll + ",top=10,left=20"');
}

/*****************************************************************************
** Saca la diferencia entre una fecha y la actual y la compara con un entero** 
******************************************************************************/
function comparaAnt(fechaInicio, diasAnt)
	{
	 
	 tmpstrFecExpira = fechaInicio;
	 tmpSplitFecExpira = tmpstrFecExpira.split("/");
	 
	 dia1 = eval(tmpSplitFecExpira[0]);
	 mes1 = eval(tmpSplitFecExpira[1]) - 1;
	 ano1 = eval(tmpSplitFecExpira[2]);
	
	 fecExpira = new Date(ano1, mes1, dia1);
	 
	 tmpstrFecPublic = new Date();
	 dia2 = tmpstrFecPublic.getDate();
	 mes2 = tmpstrFecPublic.getMonth();
	 ano2 = tmpstrFecPublic.getYear();

	 fecPublic = new Date(ano2, mes2, dia2);
	 
	 /*convierte la diferencia que esta en milisegundos a días*/
	 ares = ((fecExpira - fecPublic)/86400000);
	  
	 if (Number(ares) >= Number(diasAnt))
		 return true;
	 else
		 return false;
	}

/*****************************************************************************
** Saca la diferencia entre una fecha y la actual y la compara con un entero** 
******************************************************************************/
function comparaFechas(fechaInicio, fechaFin, diasAnt)
	{
	 
	 tmpstrFecExpira = fechaInicio;	 
	 tmpSplitFecExpira = tmpstrFecExpira.split("/");
	 
	 dia1 = eval(tmpSplitFecExpira[0]);
	 mes1 = eval(tmpSplitFecExpira[1]) - 1;
	 ano1 = eval(tmpSplitFecExpira[2]);
	
	 fecExpira = new Date(ano1, mes1, dia1); 
	 tmpstrFecPublic = fechaFin;
	 tmpstrFecPublic = tmpstrFecPublic.split("/");
	 dia2 = eval(tmpstrFecPublic[0]);
	 mes2 = eval(tmpstrFecPublic[1]) -1;
	 ano2 = eval(tmpstrFecPublic[2]);

	 fecPublic = new Date(ano2, mes2, dia2);
	 
	 /*convierte la diferencia que esta en milisegundos a días*/
	 ares = ((fecPublic - fecExpira)/86400000);	  
	 if (Number(ares) <= Number(diasAnt))	
		 return true;
	 else
		 return false;
	}
/*****************************************************************************
** Saca la diferencia entre una fecha y la actual y la compara con un entero** 
******************************************************************************/

function FechaMenor(fechaInicio, fechaFin)
	{
	 
	 tmpstrFecExpira = fechaInicio;	 
	 tmpSplitFecExpira = tmpstrFecExpira.split("/"); 
	 
	 dia1 = eval(tmpSplitFecExpira[0]);
	 mes1 = eval(tmpSplitFecExpira[1]) - 1;
	 ano1 = eval(tmpSplitFecExpira[2]);
	
	 fecExpira = new Date(ano1, mes1, dia1); 
	 tmpstrFecPublic = fechaFin;
	 tmpstrFecPublic = tmpstrFecPublic.split("/");
	 dia2 = eval(tmpstrFecPublic[0]);
	 mes2 = eval(tmpstrFecPublic[1]) -1;
	 ano2 = eval(tmpstrFecPublic[2]);

	 fecPublic = new Date(ano2, mes2, dia2);
	 
	 /*convierte la diferencia que esta en milisegundos a días*/
	 ares = ((fecPublic - fecExpira)/86400000);
	 if (Number(ares) <= 0)	
		 return true;
	 else
		 return false;
	}	
	 
/*********************************************************
** Valida si descrip tiene solamente espacios en blanco **
*********************************************************/
function blancodesc(descrip)
{
 cont=0;
 if (descrip.length == 0)
  return true;
 for (l=0; l<descrip.length;l++){
  if (descrip.substring(l,l+1)== " ")
   cont++;
   }
 
 if (cont == descrip.length)
  return true;
 else
  return false;
}

//Función para validar que un campo tenga solamente números como valor
function esNumerico(nombrecampo){
	nombre = eval(nombrecampo);
	for (var i = 0 ; i < nombre.value.length; i++){
		var chr = nombre.value.charAt(i);
		if (!(chr >= '0' && chr <= '9')){			
			return false;
			break;
		} 
	}
	return true;
}

//Funcion para reemplazar
function replace(string,text,by) {
    var strLength = string.length;
    var txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) {
		 return string; 
	}

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) {
		return string;
	}
    if (i == -1) {
		return string;
    }
    var newstr= string.substring(0,i) 
	newstr += by;

    if (i+txtLength < strLength){
        newstr += replace(string.substring(i+txtLength,strLength),text,by);
	}
    return newstr;
}

//------------------------------------------------------------------------------
function op(url,name)
{	
	if(name==""){
		name="current";
	}
	window.open(url,name,"toolbar=0,scrollbars=yes,location=0,status=yes,menubar=1,resizable=yes,width=850,height=600,left = 45,top=30");
}



/*------------------ FUNCIONES GENERICAS DE VALIDACION -----------------*/
//Función para validar un email	
function esEmail(direccion){
	return(direccion.search(/^\w+\.?\w+@\w+\.\w+(\.\w+)*$/)==0)
}

function isEmail (s)
{       
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++;
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++;
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}


function esNum(campo){
	var temp = new String(campo);
	temp = temp.search(/[^0-9.]/);
	if (temp >= 0)
		return false;
	else
		return true;
}
function esNumEntero(campo){
	var temp = new String(campo);
	temp = temp.search(/[^0-9]/);
	if (temp >= 0)
		return false;
	else
		return true;
}

function isFloat (s)

{   var i;
    var seenDecimalPoint = false;

    if (s == '.') return false;

    // Search through string's characters one by one
    // until we find a non-numeric character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if ((c == '.') && !seenDecimalPoint) seenDecimalPoint = true;
        else if ((c == '.') && seenDecimalPoint) return false;
        else if (!esNum(c)) return false;
        
    }

    // All characters are numbers.
    return true;
}



// valida solo de a un caracter. Se fija que este dentro del string declarado
function isValidLetter(let)
{
	var goodStr =" 0123456789abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZáéíóúäöü;,.;&-()ª=/"
	for(var j = 0; j <= goodStr.length-1; j++ )
	{
		if (let == goodStr.charAt(j)) {
			return true;
		}
	} 
	return false;

}

/*
// validación de cada caracter individual para extended ascii (128-255).
function isValidLetterIdiomas(let)
{
	// se dividio la cadena de caracteres validos por cuestiones de incompatibilidad
	// entre ascii y unicode.
	var goodStr1 = "' 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
	var goodStr2 = "áéíóúäöüàèùâêîôûëïäöüÄÖÜßçœåÿ,.;-()ª=/Ññ"
	
	// valores unicode para los caracteres en goodStr2 (39 caracteres)
	var goodStr2ToUnicode = new Array(225,233,237,243,250,228,246,252,224,232,249,226,234,238,244,251,235,239,228,246,252,196,214,220,223,231,339,229,255,44,46,59,45,40,41,170,61,47,209,241)
	
	// primera parte validacion (ascii 0-127)
	for(var j = 0; j <= goodStr1.length-1; j++ )	{
		if (let == goodStr1.charAt(j)) {
			return true;
		}
	} 
	
	// segunda parte validacion (extended ascii mediante unicode)
	for(var k = 0; k < goodStr2ToUnicode.length; k++) {
		if (let == String.fromCharCode(goodStr2ToUnicode[k])) {
			return true;
		}
	}
	
	return false;

}
*/

// valida solo de a un caracter. Se fija que este dentro del string declarado
function isValidLetterIdiomas(let)
{
	var goodStr ="' 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZáéíóúäöüàèùéâêîôûëïäöüÄÖÜßçœåÿ,.;-()ª=/Ññ"
	for(var j = 0; j <= goodStr.length-1; j++ )
	{
		if (let == goodStr.charAt(j)) {
			return true;
		}
	} 
	return false;

}

//recibe una cadena y dev. true si la cadena no contiene caract. especiales		 
/*function isValidString(string)
{ 
		if (string == "") 
		{
			return true;
		}
		else
		{
			for(var i = 0; i <= string.length-1; i ++)
			{
				if (!isValidLetter(string.charAt(i))) return false;
			}
		}
		return true;
}	
*/	
/*function isValidStringTextArea(string)
	{ 
	var ban;
	var badChar = "!@#$%^&=+[]{}\\|'\"/<>_`~?";
	if (string == "") 
	{
	return true;
	}
	else
	{
	    for(var i = 0; i <= string.length-1; i ++){
	        for(var j = 0; j <= badChar.length-1; j++)
	        {
	            if (string.charAt(i)==badChar.charAt(j))
	            {
	            return false;
	            }
	            else
	            {
	            ban = true;
	            }
	        }
	    }
	if (ban == true) return true
	}

}*/

// Funcion agregada.
function isValidLengthTextArea(string,max_lenght){ 
	if (string.length <= max_lenght){
	    return true;
	    }
	else {
	    return false;
	    }
}
// Funcion agregada.

function isValidLength(string,max_lenght){ 
	if (string<=max_lenght){
	    return true;
	    }
	else {
	    return false;
	    }
}

 



/*****************************************************************************
** Compara dos fechas y devuelve TRUE si fechaMayor es mayor que fechaMenor **
******************************************************************************/
function comparaFecha(fechaMenor, fechaMayor)
	{
	 
	 tmpstrFecExpira = fechaMayor;
	 tmpSplitFecExpira = tmpstrFecExpira.split("/");
	 
	 dia1 = eval(tmpSplitFecExpira[0]);
	 mes1 = eval(tmpSplitFecExpira[1]) - 1;
	 ano1 = eval(tmpSplitFecExpira[2]);
	 fecExpira = new Date(ano1, mes1, dia1);
	 
	 tmpstrFecPublic = fechaMenor;
	 tmpSplitFecPublic = tmpstrFecPublic.split("/");
	 
	 dia2 = eval(tmpSplitFecPublic[0]);
	 mes2 = eval(tmpSplitFecPublic[1]) - 1;
	 ano2 = eval(tmpSplitFecPublic[2]);
	 fecPublic = new Date(ano2, mes2, dia2);
	   
	 difMilSeg = fecExpira - fecPublic;
	 if (difMilSeg > 0)
	  return true;
	 else
	  return false;
	}


 /*****************************************************************************
** Compara dos fechas y devuelve TRUE si fechaMayor es mayor o igual  que fechaMenor **
******************************************************************************/
function comparaFechaIgual(fechaMenor, fechaMayor)
	{
	 
	 
	 tmpstrFecExpira = fechaMayor;
	 tmpSplitFecExpira = tmpstrFecExpira.split("/");
	 
	 dia1 = eval(tmpSplitFecExpira[0]);
	 mes1 = eval(tmpSplitFecExpira[1]) - 1;
	 ano1 = eval(tmpSplitFecExpira[2]);
	 fecExpira = new Date(ano1, mes1, dia1);
	 
	 tmpstrFecPublic = fechaMenor;
	 tmpSplitFecPublic = tmpstrFecPublic.split("/");
	 
	 dia2 = eval(tmpSplitFecPublic[0]);
	 mes2 = eval(tmpSplitFecPublic[1]) - 1;
	 ano2 = eval(tmpSplitFecPublic[2]);
	 fecPublic = new Date(ano2, mes2, dia2);
	   
	 difMilSeg = fecExpira - fecPublic;
	 if (difMilSeg >= 0)
	  return true;
	 else
	  return false;
	}




//Valida si existe un campo checkeado
function validaChecked(nombreCampo){
	var lintHasta;
	var lbChecked;
	var lint;
	lintHasta  = eval(nombreCampo + '.length-1');
	for (lint=0;lint<=lintHasta;++lint){
		lbChecked = eval(nombreCampo+'('+lint+').checked');
		if (lbChecked){
			return true;
		}
	}
	return false;
}

 
