function rnd() 
{
      var dd=new Date();
      return((Math.round(Math.abs(Math.sin(dd.getTime()))*1000000000)));
}

var ultimo;

//document.oncontextmenu=inhabilitar

if(history.forward(1))
{
     // history.replace(history.forward(1));
}

function diferencia(f_ini,f_fin)
{
        var f1 = f_ini.split('/')
        var f2 = f_fin.split('/')

        var ff1=new Date(f1[2],f1[1] - 1,f1[0]);
        var ff2=new Date(f2[2],f2[1] - 1,f2[0]);

        var dd=Date.parse(ff2)-Date.parse(ff1);
        var dias=(Math.round((Date.parse(ff2)-Date.parse(ff1))/(24*60*60*1000))*1)

        if ( dias < 0 )
        {
                dias = dias  - 1;
        }
        else
        {
                if ( dias > 0 )
                {
                        dias = dias  + 1;
                }
        }
        return dias;  
}


function inhabilitar()
{
        //alert ("¡Esta función está inhabilitada.......!")
        return false;
}

function Trim(TRIM_VALUE)
{
        if(TRIM_VALUE.length < 1)
        {
            return"";
        }
		
        TRIM_VALUE = RTrim(TRIM_VALUE);
        TRIM_VALUE = LTrim(TRIM_VALUE);

        if(TRIM_VALUE=="")
        {
            return "";
        }
        else
        {
            return TRIM_VALUE;
        }
}

function RTrim(VALUE)
{
        var w_space  = String.fromCharCode(32);
        var v_length = VALUE.length;
        var strTemp  = "";

        if(v_length < 0)
        {
              return"";
        }
	
        var iTemp = v_length -1;

        while(iTemp > -1)
        {
            if(VALUE.charAt(iTemp) == w_space)
            {
            }
            else
            {
                  strTemp = VALUE.substring(0,iTemp +1);
                  break;
            }
            iTemp = iTemp-1;
        }
        return strTemp;
}

function LTrim(VALUE)
{
        var w_space = String.fromCharCode(32);
        if(v_length < 1)
        {
              return"";
        }

        var v_length = VALUE.length;
        var strTemp = "";

        var iTemp = 0;

        while(iTemp < v_length)
        {
              if(VALUE.charAt(iTemp) == w_space)
              {
              }
              else
              {
                    strTemp = VALUE.substring(iTemp,v_length);
                    break;
              }			
              iTemp = iTemp + 1;
        }
        return strTemp;
}


function textCounter(field, maxlimit)
{
        if (field.value.length > maxlimit)
        {
              field.value = field.value.substring(0, maxlimit);
        }
        var y=document.getElementById('desc').value
        document.getElementById('desc').value=y.toLowerCase()
}

function Blancos(s)
{
      var j    = 0;
      for(var i=s.length-1; i>-1; i--)
            if(s.substring(i,i+1) != ' ')
            {
                  j += 1;
                  break;
            }
      if (j == 0)
          return true;
      else
          return false;
}

function extractNumber(obj, decimalPlaces, allowNegative)
{
        var temp = obj.value;
	
        // avoid changing things if already formatted correctly
        var reg0Str = '[0-9]*';
        if (decimalPlaces > 0) 
        {
                reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
        } else if (decimalPlaces < 0) 
        {
                reg0Str += '\\.?[0-9]*';
        }
        reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
        reg0Str = reg0Str + '$';
        var reg0 = new RegExp(reg0Str);
        if (reg0.test(temp)) return true;

        // first replace all non numbers
        var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
        var reg1 = new RegExp(reg1Str, 'g');
        temp = temp.replace(reg1, '');

        if (allowNegative) 
        {
              // replace extra negative
              var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
              var reg2 = /-/g;
              temp = temp.replace(reg2, '');
              if (hasNegative) temp = '-' + temp;
        }
	
        if (decimalPlaces != 0) 
        {
              var reg3 = /\./g;
              var reg3Array = reg3.exec(temp);
              if (reg3Array != null) 
              {
                      // keep only first occurrence of .
                      //  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
                      var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
                      reg3Right = reg3Right.replace(reg3, '');
                      reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
                      temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
              }
        }
        obj.value = temp;
}

function blockNonNumbers(obj, e, allowDecimal, allowNegative)
{
        var key;
        var isCtrl = false;
        var keychar;
        var reg;
		
        if(window.event) 
        {
                key = e.keyCode;
                isCtrl = window.event.ctrlKey
        }
        else if(e.which) 
        {
                key = e.which;
                isCtrl = e.ctrlKey;
        }

        if (isNaN(key)) return true;
	
        keychar = String.fromCharCode(key);
	
        // check for backspace or delete, or if Ctrl was pressed
        if (key == 8 || isCtrl)
        {
                return true;
        }

        reg = /\d/;
        var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
        var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;

        return isFirstN || isFirstD || reg.test(keychar);
}

var nav4 = window.Event ? true : false;

function acceptNum(evt)
{
      // NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57	
      var key = nav4 ? evt.which : evt.keyCode;	
      return (key <= 13 || (key >= 48 && key <= 57));
}

function ultimoDia(fecha)
{
        //calculo la fecha que recibo y la descompongo en un array
        var array_fecha = fecha.split("/");
        //si el array no tiene tres partes, la fecha es incorrecta
        if (array_fecha.length!=3)
              return false;

        var diasEnElMes=new Array(31,29,31,30,31,30,31,31,30,31,30,31);
    
        var dia;

        if ( parseFloat(array_fecha[1]) == 2)
              dia = diasEnFebrero(array_fecha[2]);
        else
              dia = diasEnElMes[parseFloat(array_fecha[1]) - 1];
    
        return dia + "/" + array_fecha[1] + "/" + array_fecha[2];
}

function diasEnFebrero(year)
{
        return(((year%4==0)&&((!(year%100==0))||(year%400==0)))?29:28)
}

function primerDia(fecha)
{
        //calculo la fecha que recibo y la descompongo en un array
        var array_fecha = fecha.split("/");
        //si el array no tiene tres partes, la fecha es incorrecta
        if (array_fecha.length!=3)
              return false;

        return  "01/" + array_fecha[1] + "/" + array_fecha[2];
}

function fieldNumber(objeto, decimales)
{
        var valorCampo;
        var evento_key = window.event.keyCode;
        var numPosPunto = 0;
        var strParteEntera = "";
        var strParteDecimal = "";
        
         var NUM_DECIMALES = (decimales == null) ? 2 : decimales;
//        var NUM_DECIMALES = 2;

        switch (evento_key)
        {
              case 48:
              case 49:
              case 50:
              case 51:
              case 52:
              case 53:
              case 54:
              case 55:
              case 56:
              case 57:
              case 46:
                      break;
              default:
                      window.event.keyCode = 0;
                      return false;
        }

        valorCampo = objeto.value;
        if (evento_key == 46)
                if (valorCampo.indexOf(".") != -1)
                {
                      window.event.keyCode = 0;
                      return false;
                }
                /* Sólo puede teclear el número de decimales indicado en NUM_DECIMALES */
                if ((numPosPunto = valorCampo.indexOf(".")) != -1)
                {
                        strParteEntera = valorCampo.substr(0,(numPosPunto - 1));
                        strParteDecimal = valorCampo.substr((numPosPunto + 1), valorCampo.length)
                        if (strParteDecimal.length > (NUM_DECIMALES - 1))
                        {
                                  window.event.keyCode = 0;
                                  return false;
                        }
                }
        return true;
}



function BrowserCheck()
{
        var b = navigator.appName;
        if (b=="Netscape") this.b = "ns";
        else if (b=="Microsoft Internet Explorer") this.b = "ie";
        else this.b = b;
        this.v = parseInt(navigator.appVersion);
        this.ns = (this.b=="ns" && this.v>=4);
        this.ns4 = (this.b=="ns" && this.v==4);
        this.ns5 = (this.b=="ns" && this.v==5);
        this.ie = (this.b=="ie" && this.v>=4)
        this.ie4 = (navigator.userAgent.indexOf('MSIE 4')>0);
        this.ie5 = (navigator.userAgent.indexOf('MSIE 5')>0);
        if (this.ie5) this.v = 5;
        this.min = (this.ns||this.ie);
}



function MostrarFila(Fila)
{
    var elementos = document.getElementsByName(Fila);
    for (i = 0; i< elementos.length; i++)
    {
          if(navigator.appName.indexOf("Microsoft") > -1)
          {
                var visible = 'block'
          }
          else
          {
                var visible = 'table-row';
          }
          elementos[i].style.display = visible;
    }
}

function OcultarFila(Fila)
{
    var elementos = document.getElementsByName(Fila);
    for (k = 0; k< elementos.length; k++)
    {
          elementos[k].style.display = "none";
    }
}

function MostrarCelda(Fila)
{
    var elementos = document.getElementsByName(Fila);
    for (i = 0; i< elementos.length; i++)
    {
          if(navigator.appName.indexOf("Microsoft") > -1)
          {
                var visible = 'block'
          }
          else
          {
                var visible = 'table-row';
          }
          elementos[i].style.display = visible;
    }
}

function OcultarCelda(Fila)
{
    var elementos = document.getElementsByName(Fila);
    for (k = 0; k< elementos.length; k++)
    {
          elementos[k].style.display = "none";
    }
}









//	Creada por	: 
//	Fecha		: 
//	Objetivo	: Verifica si la fecha es correcta develve 
//	Resultados	: 0 Correcto, 1 dia malo, 2 mes malo, 3 ano malo
//	Parametros	: dia , mes , ano

function VFecha(iFecha)
{
      var intDia = 0;
      var intMes = 0;
      var intAno = 0;
      var intFec = 0;
      var intErr = 0;
      var msg='';

      intDia = iFecha.value.substring(0,2);
      intMes = iFecha.value.substring(3,5);
      intAno = iFecha.value.substring(6,10);

      if (iFecha.value.length == 2 && (intDia < 1 || intDia > 31))
      {
          msg = 'Error Dia';
          intErr = 1;
      }

      if (iFecha.value.length == 5 && (intMes < 1 || intMes > 12))
      {
          msg = 'Error Mes';
          intErr = 1;
      }

      if (intErr == 1)
      {	
          alert(msg);
          event.returnValue = false;
      }
      else
      {
            if (iFecha.value.length == 2 || iFecha.value.length == 5)	
                    intFec = iFecha.value + "/";
            else intFec = iFecha.value;
            iFecha.value = intFec;
      }
}

function VFRango(iFecha)
{
      var intErr = 0;

      var msg='';

 

      if (iFecha.value.length == 10)

      {

            intDia = eval(iFecha.value.substring(0,2));

            intMes = eval(iFecha.value.substring(3,5));

            intAno = eval(iFecha.value.substring(6,10));

            

            if ( intDia > 0 && intMes > 0 && intAno > 0 )

            {

                    if ( intMes == 2 && intDia == 29 && !Bisiesto(intAno) )

                    { 

                          intErr = 0;

                    }

                    else

                          Dias = new Array(13)

                    Dias[1] = 31; Dias[2] = 28; Dias[3] = 31; Dias[4] = 30; Dias[5] = 31; Dias[6] = 30; Dias[7] = 31;

                    Dias[8] = 31; Dias[9] = 30; Dias[10] = 31;  Dias[11] = 30;   Dias[12] = 31;

                    if ( Bisiesto(intAno) )

                    {

                        Dias[2] = 29;

                    }

 

                    if ( intDia > Dias[intMes] )

                    { 

                            intErr = 1; 

                            msg = 'Error en la fecha';

                    }

              }

              if (intErr == 1)

              {         

                    alert(msg);

                    event.returnValue = false;

                    iFecha.focus();

              }

              else iFecha.value = iFecha.value;

      }

}



function Bisiesto(year) 
{
    if ((year % 4 == 0) && (( year % 100 != 0) || (year % 400 ==0)))
          return true;
    else
          return false;
}



function fechaValida(Cadena)
{
      var Fecha= new String(Cadena)	// Crea un string
      var RealFecha= new Date()	// Para sacar la fecha de hoy
      // Cadena Año
      var Ano= new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length))
      // Cadena Mes
      var Mes= new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")))
      // Cadena Día
      var Dia= new String(Fecha.substring(0,Fecha.indexOf("/")))

      // Valido el año
      if (isNaN(Ano) || Ano.length < 4 || parseFloat(Ano) < 1900)
      {
              return false;
      }

      // Valido el Mes
      if (isNaN(Mes) || parseFloat(Mes) < 1 || parseFloat(Mes) > 12)
      {
            return false;
      }

      // Valido el Dia
      if (isNaN(Dia) || parseFloat(Dia) < 1 || parseFloat(Dia) > 31)
      {

            return false;
      }

      if (Dia < 1 && Dia > ultimoDia(Fecha))
      {
            return false;
      }
      return true;
}
function html(cadena) 
{
    cadena = cadena.replace(/&/g, "&amp;");
    cadena = cadena.replace(/'/g, "&#039;");
    cadena = cadena.replace(/Á/g, "&Aacute;");
    cadena = cadena.replace(/É/g, "&Eacute;");
    cadena = cadena.replace(/Í/g, "&Iacute;");
    cadena = cadena.replace(/Ó/g, "&Oacute;");
    cadena = cadena.replace(/Ú/g, "&Uacute;");
    cadena = cadena.replace(/á/g, "&aacute;");
    cadena = cadena.replace(/é/g, "&eacute;");
    cadena = cadena.replace(/í/g, "&iacute;");
    cadena = cadena.replace(/ó/g, "&oacute;");
    cadena = cadena.replace(/ú/g, "&uacute;");
    cadena = cadena.replace(/Ñ/g, "&Ntilde;");
    cadena = cadena.replace(/ñ/g, "&ntilde;");
    cadena = cadena.replace(/¿/g, "&iquest;");
    cadena = cadena.replace(/¡/g, "&iexcl;");
    cadena = cadena.replace(/Ü/g, "&Uuml;");
    cadena = cadena.replace(/ü/g, "&uuml;");
    cadena = cadena.replace(/ª/g, "&ordf;");
    cadena = cadena.replace(/º/g, "&ordm;");
    cadena = cadena.replace(/"/g, "&quot;");
    cadena = cadena.replace(/</g, "&lt;");
    cadena = cadena.replace(/>/g, "&gt;");        
    cadena = cadena.replace(/\n/g, "<br />");
    return cadena;
}
