/**********************Valida un Entero********************************/
	function ValNumberInteger(objSrc, strText)
	{
	    var i = 0;
	    var sLength = objSrc.value.length;
	    while (i < sLength)
	    {
	        
	        if ( (objSrc.value.charCodeAt(i) < 48 || objSrc.value.charCodeAt(i) > 57) && objSrc.value.charCodeAt(i) != 44 && objSrc.value.charCodeAt(i) != 46 ){
	            //alert(objSrc.value.charCodeAt(i)+objSrc.value.charAt(i));
	            alert(strText + " Debe ingresar sólo números");
	            return false;
	        }

	        if (objSrc.value.charCodeAt(i) == 44 || objSrc.value.charCodeAt(i) == 46) 
	        {
	            alert(strError + strText + ". Debe ingresar sólo números enteros");
	            return false;
	        }
	        i++;
	    }
	    return true;
	}
/**********************************************************************/


/*************Determina entre dos strings tipo fecha cuál es el mayor.
 Salida       : 0 <== Iguales
                1 <== fecha1 > fecha2
               -1 <== fecha1 < fecha2
                2 <== Problemas con los argumentos (fechas)         */
    var MAX_LENGTH_DATE = 10;
    var MAX_YEAR_DATE = 3000;
    var MIN_YEAR_DATE = 1900;
    
	function DateCmp(fecha1,fecha2)
	{
	 var dd1, mm1, yy1; 
	 var dd2, mm2, yy2; 
	 var aux;
	 var lenYear = MAX_LENGTH_DATE - 6; 
	 var fec1, fec2;
	 var resultado;
	 
	 //Comprueba  que las fechas no sean string vacios.
	 if ( fecha1 == "" ) return 2;
	 if ( fecha2 == "" ) return 2;
	 
	 //Comprueba que largo de 'fecha1' y 'fecha2' no sea mayor que MAX_LENGTH_DATE.
	 if ( ( fecha1.length > MAX_LENGTH_DATE ) || ( fecha2.length > MAX_LENGTH_DATE ) )  return 2;
	 
	 //Comprueba que largo de 'fecha1' y 'fecha2' no sea menor que 6.
	 if ( ( fecha1.length < 6 ) || ( fecha2.length < 6 ) )  return 2;
 
  
	//Obtención de los valores de día, mes y año.
	// fechas con formato : (0/0/0000) ó (0-0-0000) ó (0 0 0000)
	  if ( (fecha1.substr(1,1) == "/" && fecha1.substr(3,1) == "/") || (fecha1.substr(1,1) == "-" && fecha1.substr(3,1) == "-") || (fecha1.substr(1,1) == " " && fecha1.substr(3,1) == " ") ){ 
	 dd1 = fecha1.substr(0,1);
	 mm1 = fecha1.substr(2,1);
	 yy1 = fecha1.substr(4,lenYear);
	}
	  if ( (fecha2.substr(1,1) == "/" && fecha2.substr(3,1) == "/") || (fecha2.substr(1,1) == "-" && fecha2.substr(3,1) == "-") || (fecha2.substr(1,1) == " " && fecha2.substr(3,1) == " ") ){ 
	 dd2 = fecha2.substr(0,1);
	 mm2 = fecha2.substr(2,1);
	 yy2 = fecha2.substr(4,lenYear);
	}
 
	//---------------------------------------------------------
	//  fechas con  formato : (0/00/0000) ó (0-00-0000) ó (0 00 0000)
	if ( (fecha1.substr(1,1) == "/" && fecha1.substr(4,1) == "/") || (fecha1.substr(1,1) == "-" && fecha1.substr(4,1) == "-") || (fecha1.substr(1,1) == " " && fecha1.substr(4,1) == " ") ){ 
	 dd1 = fecha1.substr(0,1);
	 mm1 = fecha1.substr(2,2);
	 yy1 = fecha1.substr(5,lenYear);
	}
	//  fecha2 con  formato : (0/00/0000) ó (0-00-0000) ó (0 00 0000)
	if ( (fecha2.substr(1,1) == "/" && fecha2.substr(4,1) == "/") || (fecha2.substr(1,1) == "-" && fecha2.substr(4,1) == "-") || (fecha2.substr(1,1) == " " && fecha2.substr(4,1) == " ") ){ 
	 dd2 = fecha2.substr(0,1);
	 mm2 = fecha2.substr(2,2);
	 yy2 = fecha2.substr(5,lenYear);
	}
 
	//---------------------------------------------------------
	//  fechas con formato : (00/0/0000) ó (00-0-0000) ó (00 0 0000)
	if ( (fecha1.substr(2,1) == "/" && fecha1.substr(4,1) == "/") || (fecha1.substr(2,1) == "-" && fecha1.substr(4,1) == "-") || (fecha1.substr(2,1) == " " && fecha1.substr(4,1) == " ") ){ 
	 dd1 = fecha1.substr(0,2);
	 mm1 = fecha1.substr(3,1);
	 yy1 = fecha1.substr(5,lenYear);
	}
	if ( (fecha2.substr(2,1) == "/" && fecha2.substr(4,1) == "/") || (fecha2.substr(2,1) == "-" && fecha2.substr(4,1) == "-") || (fecha2.substr(2,1) == " " && fecha2.substr(4,1) == " ") ){ 
	 dd2 = fecha2.substr(0,2);
	 mm2 = fecha2.substr(3,1);
	 yy2 = fecha2.substr(5,lenYear);
	}
 
	//---------------------------------------------------------
	//  fechas con formato : (00/00/0000) ó (00-00-0000) ó (00 00 0000)
	if ( (fecha1.substr(2,1) == "/" && fecha1.substr(5,1) == "/") || (fecha1.substr(2,1) == "-" && fecha1.substr(5,1) == "-") || (fecha1.substr(2,1) == " " && fecha1.substr(5,1) == " ") ){ 
	 dd1 = fecha1.substr(0,2);
	 mm1 = fecha1.substr(3,2);
	 yy1 = fecha1.substr(6,lenYear);
	}
	if ( (fecha2.substr(2,1) == "/" && fecha2.substr(5,1) == "/") || (fecha2.substr(2,1) == "-" && fecha2.substr(5,1) == "-") || (fecha2.substr(2,1) == " " && fecha2.substr(5,1) == " ") ){ 
	 dd2 = fecha2.substr(0,2);
	 mm2 = fecha2.substr(3,2);
	 yy2 = fecha2.substr(6,lenYear);
	}
 
	//---------------------------------------------------------
	//  fechas con formato : (0000/0/0) ó (0000-0-0) ó (0000 0 0)
	if ( ((fecha1.substr(lenYear,1) == "/" && fecha1.substr(lenYear+2,1) == "/") || (fecha1.substr(lenYear,1) == "-" && fecha1.substr(lenYear+2,1) == "-") || (fecha1.substr(lenYear,1) == " " && fecha1.substr(lenYear+2,1) == " ")) && fecha1.length == 8){ 
	 dd1 = fecha1.substr(lenYear+3,1);
	 mm1 = fecha1.substr(lenYear+1,1);
	 yy1 = fecha1.substr(0,lenYear);
	}
	if ( ((fecha2.substr(lenYear,1) == "/" && fecha2.substr(lenYear+2,1) == "/") || (fecha2.substr(lenYear,1) == "-" && fecha2.substr(lenYear+2,1) == "-") || (fecha2.substr(lenYear,1) == " " && fecha2.substr(lenYear+2,1) == " ")) && fecha2.length == 8){ 
	 dd2 = fecha2.substr(lenYear+3,1);
	 mm2 = fecha2.substr(lenYear+1,1);
	 yy2 = fecha2.substr(0,lenYear);
	}
 
	//---------------------------------------------------------
	//  fechas con formato : (0000/00/0) ó (0000-00-0) ó (0000 00 0)
	if ( ((fecha1.substr(lenYear,1) == "/" && fecha1.substr(lenYear+3,1) == "/") || (fecha1.substr(lenYear,1) == "-" && fecha1.substr(lenYear+3,1) == "-") || (fecha1.substr(lenYear,1) == " " && fecha1.substr(lenYear+3,1) == " ")) && fecha1.length == 9){ 
	 dd1 = fecha1.substr(lenYear+4,1);
	 mm1 = fecha1.substr(lenYear+1,2);
	 yy1 = fecha1.substr(0,lenYear);
	}
	if ( ((fecha2.substr(lenYear,1) == "/" && fecha2.substr(lenYear+3,1) == "/") || (fecha2.substr(lenYear,1) == "-" && fecha2.substr(lenYear+3,1) == "-") || (fecha2.substr(lenYear,1) == " " && fecha2.substr(lenYear+3,1) == " ")) && fecha2.length == 9){ 
	 dd2 = fecha2.substr(lenYear+4,1);
	 mm2 = fecha2.substr(lenYear+1,2);
	 yy2 = fecha2.substr(0,lenYear);
	}
 
	//---------------------------------------------------------
	//  fechas con formato : (0000/0/00) ó (0000-0-00) ó (0000 0 00)
	if ( ((fecha1.substr(lenYear,1) == "/" && fecha1.substr(lenYear+2,1) == "/") || (fecha1.substr(lenYear,1) == "-" && fecha1.substr(lenYear+2,1) == "-") || (fecha1.substr(lenYear,1) == " " && fecha1.substr(lenYear+2,1) == " ")) && fecha1.length == 9){ 
	 dd1 = fecha1.substr(lenYear+3,2);
	 mm1 = fecha1.substr(lenYear+1,1);
	 yy1 = fecha1.substr(0,lenYear);
	}
	if ( ((fecha2.substr(lenYear,1) == "/" && fecha2.substr(lenYear+2,1) == "/") || (fecha2.substr(lenYear,1) == "-" && fecha2.substr(lenYear+2,1) == "-") || (fecha2.substr(lenYear,1) == " " && fecha2.substr(lenYear+2,1) == " ")) && fecha2.length == 9){ 
	 dd2 = fecha2.substr(lenYear+3,2);
	 mm2 = fecha2.substr(lenYear+1,1);
	 yy2 = fecha2.substr(0,lenYear);
	}
 
	//---------------------------------------------------------
	//  fechas con formato : (0000/00/00) ó (0000-00-00) ó (0000 00 00)
	if ( ((fecha1.substr(lenYear,1) == "/" && fecha1.substr(lenYear+3,1) == "/") || (fecha1.substr(lenYear,1) == "-" && fecha1.substr(lenYear+3,1) == "-") || (fecha1.substr(lenYear,1) == " " && fecha1.substr(lenYear+3,1) == " ")) && fecha1.length == 10){ 
	    dd1 = fecha1.substr(lenYear+4,2);
	 mm1 = fecha1.substr(lenYear+1,2);
	 yy1 = fecha1.substr(0,lenYear);
	}
	if ( ((fecha2.substr(lenYear,1) == "/" && fecha2.substr(lenYear+3,1) == "/") || (fecha2.substr(lenYear,1) == "-" && fecha2.substr(lenYear+3,1) == "-") || (fecha2.substr(lenYear,1) == " " && fecha2.substr(lenYear+3,1) == " ")) && fecha2.length == 10){ 
	    dd2 = fecha2.substr(lenYear+4,2);
	 mm2 = fecha2.substr(lenYear+1,2);
	 yy2 = fecha2.substr(0,lenYear);
	}
 
	//alert("ANTES ==> dd="+dd+" "+"mm="+mm+" "+"aa="+yy);
 
	fec1 = yy1 + mm1 + dd1;
	fec2 = yy2 + mm2 + dd2;
 	dd1 = parseInt(dd1,10);
	mm1 = parseInt(mm1,10);
	yy1 = parseInt(yy1,10);
 	dd2 = parseInt(dd2,10);
	mm2 = parseInt(mm2,10);
	yy2 = parseInt(yy2,10);
 
	//alert("DESPUES ==> dd="+dd+" "+"mm="+mm+" "+"aa="+yy);
 
	//Comprueba si los valores obtenidos no son numéricos. 
	if ( isNaN(dd1) || isNaN(mm1) || isNaN(yy1) || isNaN(dd2) || isNaN(mm2) || isNaN(yy2) )
	{
	 return 2;
	}
	else 
	{
	 //Comprueba si la fecha ingresada está en formato es mm/dd/aaaa. Si es así,
	 // intercambia los valores  de dias por meses y viceversa.
	 if ( mm1 > 12  ){
	  aux = dd1;
	  dd1 = mm1;
	  mm1 = aux;
	 }
	 if ( mm2 > 12  ){
	  aux = dd2;
	  dd2 = mm2;
	  mm2 = aux;
	 } 
   
	//Comprueba valor del día dentro de los límites máximos.
	if ( dd1 <= 0 || dd1 > 31 ) return 2; 
	if ( dd2 <= 0 || dd2 > 31 ) return 2; 
  
	//Comprueba valor del mes dentro de los límites máximos.
	if ( mm1 <= 0 || mm1 > 12 ) return 2;
	if ( mm2 <= 0 || mm2 > 12 ) return 2;  
	  
	//Comprueba valor del año aceptando como válidos desde MIN_YEAR_DATE hasta MAX_YEAR_DATE.
	if ( yy1 < MIN_YEAR_DATE || yy1 > MAX_YEAR_DATE )  return 2; 
	if ( yy2 < MIN_YEAR_DATE || yy2 > MAX_YEAR_DATE )  return 2;
	 
	//Comprueba que dd corresponda al máximo de dias para los meses con 31 dias.
	if ( (mm1 == 1 || mm1 == 3 || mm1 == 5 || mm1 == 7 || mm1 == 8 || mm1 == 10 || mm1 == 12) && dd1 > 31 ) return 2;
	if ( (mm2 == 1 || mm2 == 3 || mm2 == 5 || mm2 == 7 || mm2 == 8 || mm2 == 10 || mm2 == 12) && dd2 > 31 ) return 2;
  
	 //Comprueba que dd corresponda al máximo de dias para los meses con 30 dias.
	 if ( (mm1 == 4 || mm1 == 6 || mm1 == 9 || mm1 == 11) && dd1 > 30 ) return 2;
	 if ( (mm2 == 4 || mm2 == 6 || mm2 == 9 || mm2 == 11) && dd2 > 30 ) return 2;
	 
	 //Compreuba que dd c||responda al máximo de dias para un febrero de año bisiesto.
	 if ( ( yy1 % 4 ) == 0 && mm1 == 2 && dd1 > 29 ) return 2;
	 if ( ( yy2 % 4 ) == 0 && mm2 == 2 && dd2 > 29 ) return 2;
	 
	 //Compreuba que dd c||responda al máximo de dias para un febrero de año normal.
	 if ( ( yy1 % 4 ) != 0 && mm1 == 2 && dd1 > 28 ) return 2;
	 if ( ( yy2 % 4 ) != 0 && mm2 == 2 && dd2 > 28 ) return 2;
	 
	}
 
	 fec1 = parseInt(fec1,10);
	 fec2 = parseInt(fec2,10);
	 if ( fec1 == fec2 ) resultado = 0;
	 if ( fec1  > fec2 ) resultado = 1;
	 if ( fec1  < fec2 ) resultado = -1;
	 
	 //alert('resultado :' + resultado);
	 return resultado;  
	}
/**********************************************************************/


/****************Valida la entrada de una Fecha************************/
//Valida que la fecha este en formato dd/mm/aaaa
function ValidarFecha(s)
{
    var dd;
    var mm;
    var yy;
    var aux;
    var lenYear = 10 - 6;
    
    //Comprueba  que 's' no sea vacio.
    if ( s == "" ) return false;
    
    //Comprueba que largo de 's' no sea mayor que 10.
    if ( s.length > 10 ) return false;
  
    //  s con formato : (00/00/0000)
    if ( (s.substr(2,1) == "/" && s.substr(5,1) == "/") ){ 
        dd = s.substr(0,2);
        mm = s.substr(3,2);
        yy = s.substr(6,lenYear);
    }

    dd = parseInt(dd,10);
    mm = parseInt(mm,10);
    yy = parseInt(yy,10);

    //Comprueba si los valores obtenidos no son numéricos. 
    if ( isNaN(dd) || isNaN(mm) || isNaN(yy) )
    {
        return false;
    }
    else 
    {
        //Comprueba si la fecha ingresada está en formato es mm/dd/aaaa. Si es así,
        // intercambia los valores  de dias por meses y viceversa.
        if ( mm > 12  ){
            return false;
        }
        
        //Comprueba valor del día dentro de los límites máximos.
        if ( dd <= 0 || dd > 31 ){
            return false; 
        }
        
        //Comprueba valor del mes dentro de los límites máximos.
        if ( mm <= 0 || mm > 12 ){
            return false; 
        }
                
        //Comprueba valor del año aceptando como válidos desde 1900 hasta 2100. //(3)OBS.
        if ( yy < 1900 || yy > 2100 ){
            return false; 
        }
        
        //Comprueba que dd corresponda al máximo de dias para los meses con 31 dias.
        if ( (mm == 1 || mm == 3 || mm == 5 || mm == 7 || mm == 8 || mm == 10 || mm == 12) && dd > 31 ) {
            return false;
        }
        //Comprueba que dd corresponda al máximo de dias para los meses con 30 dias.
        if ( (mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30 ) {
            return false;
        }
        
        //Comprueba que dd corresponda al máximo de dias para un febrero de año bisiesto.
        if ( ( yy % 4 ) == 0 && mm == 2 && dd > 29 ) {
            return false;
        }
        
        //Comprueba que dd corresponda al máximo de dias para un febrero de año normal.
        if ( ( yy % 4 ) != 0 && mm == 2 && dd > 28 ) {
            return false;
        }
        
    }
    return true;        
}

/**********************************************************************/


/****************Valida la entrada de una Fecha************************/
    function esDigito(sChr)
    {   var sCod = sChr.charCodeAt(0);
        return ((sCod > 47) && (sCod < 58));
    }
    function valSep(oTxt)
    {   var bOk = false;
        bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
        bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
        return bOk;
    }
    function finMes(oTxt)
    {   var nMes = parseInt(oTxt.value.substr(3, 2), 10);
        var nRes = 0;
        switch (nMes){
        case 1: nRes = 31; break;
        case 2: nRes = 29; break;
        case 3: nRes = 31; break;
        case 4: nRes = 30; break;
        case 5: nRes = 31; break;
        case 6: nRes = 30; break;
        case 7: nRes = 31; break;
        case 8: nRes = 31; break;
        case 9: nRes = 30; break;
        case 10: nRes = 31; break;
        case 11: nRes = 30; break;
        case 12: nRes = 31; break;  }
        return nRes;
    }
    function valDia(oTxt)
    {   var bOk = false;
        var nDia = parseInt(oTxt.value.substr(0, 2), 10);
        bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
        return bOk;
    }
    function valMes(oTxt)
    {   var bOk = false;
        var nMes = parseInt(oTxt.value.substr(3, 2), 10);
        bOk = bOk || ((nMes >= 1) && (nMes <= 12));
        return bOk;
    }
    function valAno(oTxt)
    {   var bOk = true;
        var nAno = oTxt.value.substr(6);
        bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
        if (bOk)
        {   for (var i = 0; i < nAno.length; i++)
            {   bOk = bOk && esDigito(nAno.charAt(i));  }
        }
        return bOk;
    }
    
    function valFecha(oTxt,actual)
    {   var bOk = true;
        if (oTxt.value != "")
        {   bOk = bOk && (valAno(oTxt));
            bOk = bOk && (valMes(oTxt));
            bOk = bOk && (valDia(oTxt));
            bOk = bOk && (valSep(oTxt));
            //alert(oTxt.value);
            //alert(bOk);
            if (bOk==false)
            {   alert("Fecha Inválida (dd/mm/aaaa)");
                oTxt.value = "";
                oTxt.focus();
            }else
            if (bOk==true)
            {   //alert("Fecha Ingresada("+oTxt.value+") - Fecha Actual("+actual+")");
                var difer=DateCmp(oTxt.value,actual);
                //alert(difer);
                if(difer==-1 || difer==2)
                {    alert("Fecha Anterior a la de Hoy ("+actual+")");
                     oTxt.value = "";
                     oTxt.focus();
                }
                
            }
        
        }
    }
/**********************************************************************/

    
/*************Formatea un Numero Entero (con puntos) ******************/
    function FormatNum(fld, milSep, e) 
    {   var sep = 0;
        var key = '';
        var i = j = 0;
        var len = len2 = 0;
        var strCheck = '0123456789';
        var aux = aux2 = '';
        var whichCode = (window.Event) ? e.which : e.keyCode;
            if (whichCode == 13) return true;  // Enter
                key = String.fromCharCode(whichCode);  // Get key value from key code
            if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
                len = fld.value.length;
            if((whichCode == 48) && (len==0))
                return false;
            for(i = 0; i < len; i++)
            if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != milSep)) 
                break;

            aux = '';
            for(; i < len; i++)
            if (strCheck.indexOf(fld.value.charAt(i))!=-1) 
                aux += fld.value.charAt(i);

            len = aux.length;
            aux2 = '';
            for (j=0, i=len; i>=0; i--) 
            {   if (j == 3) 
                {   aux2 += milSep;
                    j = 0;
                }
                aux2 += aux.charAt(i);
                j++;
            }   
            fld.value = '';
            len2 = aux2.length;
            for (i = len2 - 1; i >= 0; i--)
            {   fld.value += aux2.charAt(i);    }   
    }
/**********************************************************************/
    

/*******************Menu Izquerda(Efecto Rollover)*********************/
    function Ir(tabla)
    {  if(event.srcElement.tagName=='TD')
       tabla.children.tags('A')[0].click();
    }
 
    function Encima(tabla) 
    {   if (!tabla.contains(event.fromElement)) 
        {  tabla.style.cursor = 'hand';  
           tabla.children.tags('A')[0].style.color = "#000000"; 
           tabla.bgColor = '#DDDFDE';
           
           tabla.style.border = "1px solid #62656A";          
         //  tabla.background = "../images/botones/caja2.gif"; 
        }
    }
 
    function Fuera(tabla) 
    {  if (!tabla.contains(event.toElement)) 
        {   tabla.style.cursor = 'default';
            tabla.bgColor = '#7b869A';
            tabla.children.tags('A')[0].style.color = "#FFFFFF";
            tabla.style.border = "1px solid #7a869a";
            //tabla.style.border = "";
            //tabla.background = ""; 

        }
    } 
/**********************************************************************/


/**************Efecto de Opacidad para las imagenes********************/
    var iex = navigator.appName=="Microsoft Internet Explorer"?true:false;
   
    if(iex)
    {   with(document)
        {   write ('<style type="text/css" >')
            write ('#prod {')
            write ('filter: alpha(opacity=100)}')
            write ('</style>')      }
    }
    else 
    {    window.onload=function()
         {  document.getElementById('prod').style.MozOpacity = 1
           }
    }
    
    function fuera(imagen1)
	{	if (imagen1.style.MozOpacity) 
			imagen1.style.MozOpacity=1
		else 
			if (imagen1.filters) 
			imagen1.filters.alpha.opacity=100 
	} 

	function dentro(imagen2)
	{
	/*	if (imagen2.style.MozOpacity) 
			imagen2.style.MozOpacity = 0.5
		else	*/
		if (imagen2.filters) 
			imagen2.filters.alpha.opacity = 50
	} 
	
/**********************************************************************/
