cookie = cookie_parse();

function trimval(str) {
    var ini = 0;
    var fin = str.length - 1;
    while (ini <= fin && str.charAt(ini) == " ")
        ini++;
    if (ini <= fin) {
        while (str.charAt(fin) == " ")
            fin--;
        if (fin < str.length-1) {
            fin++;
            return str.substring(ini,fin);
        } else
            return str.substr(ini);
    } else
        return '';
}

function isNumero(str) {
    var flag = true;
    var i = 0;
    var nums = new Array(1,1,1,1,1,1,1,1,1,1);
    while (i < str.length && flag) {
        flag = (nums[str.charAt(i++)] != null);
    }
    return flag;
}

function isRut(rut, dv) {
    var flag = true;
    if (rut == null || rut=='' || !isNumero(rut) ||
        dv == null || dv == '' || (!isNumero(dv) && dv != 'K'))
        flag=false;

    return flag;
}

function trimobj(obj) {
    obj.value = trimval(obj.value);
    return obj.value;
}

function validaM11(rut, dv) {
    var suma = 0;
    var mul = 2;
    var i = 0;
    for (i = rut.length-1; i >= 0; i--) {
        suma = suma + rut.charAt(i) * mul;
        mul = mul==7 ? 2 : mul+1;
    }
    var dvr = '' + (11 - suma % 11);
    if (dvr == '10')
        dvr = 'K';
    else if (dvr=='11')
        dvr = '0';
    if (dvr != dv)
        return false;
    else
        return true;
}

function cookie_parse(prm) {
    var datos = document.cookie.split('; ');
    var cookie = new Array();
    var i = '';
    var par = '';
    for (i in datos) {
        par = datos[i].split('=');
        cookie[par[0]] = par[1];
    }
    if (prm != null) {
        cookie['rut'] = cookie['NETSCAPE_LIVEWIRE.rutm'];
        cookie['dv'] = cookie['NETSCAPE_LIVEWIRE.dvm'];
        cookie['clave'] = cookie['NETSCAPE_LIVEWIRE.clave'];
        cookie['mac'] = cookie['NETSCAPE_LIVEWIRE.mac'];
        cookie['locexp'] = cookie['NETSCAPE_LIVEWIRE.locexp'];
    }
    return cookie;
}

function query_string_parse() {
    var locacion = (location+'').split('?');
    var querystring = (locacion.length==2) ? locacion[1] : '';
    var datos = querystring.split('&');
    var cgi = new Array();
    var i = '';
    var par = '';
    for (i in datos) {
        par = datos[i].split('=');
        cgi[par[0]] = par[1];
    }
    return cgi;
}

function printRut() {
    if (cookie['rut'])
        document.write(cookie['rut']+' - '+cookie['dv']);
    else
        document.write(cookie['NETSCAPE_LIVEWIRE.rut']+' - '+cookie['NETSCAPE_LIVEWIRE.dv']);
}

function printRutFisca() {
    document.write(cookie.dv+cookie.rut);
}

function cleanAut() {
    var today = new Date();
    var expires = new Date(today.getTime() - 1000);
    document.cookie = "NETSCAPE_LIVEWIRE.rut=;expires="+expires.toGMTString();
    document.cookie = "NETSCAPE_LIVEWIRE.dv=;expires="+expires.toGMTString();
    document.cookie = "NETSCAPE_LIVEWIRE.clave=;expires="+expires.toGMTString();
    document.cookie = "NETSCAPE_LIVEWIRE.mac=;expires="+expires.toGMTString();
}

function _substr(str, ini) {
    var v = '';
    for (i = ini; i < str.length; i++)
        v += str.charAt(i);
    return v;
}

function _substring(str, ini, fin) {
    var v = '';
    var bound = (fin > str.length) ? str.length : fin;
    for (i = ini; i < bound; i++)
        v += str.charAt(i);
    return v;
}

function repite(str) {
    var i = 0;
    for (i = 0; i < str.length-2; i++)
        if (str.charAt(i) == str.charAt(i+1) &&
            str.charAt(i) == str.charAt(i+2))
            return true;
    return false;
}

function isLetra(str) {
    var flag = true;
    var i = 0;
    var alpha = 'ABCDEFGHIJKLMN\321OPQRSTUVWXYZ\301\311\315\323\332';
    alpha += alpha.toLowerCase();
    while (i < str.length && flag){
        flag = (alpha.indexOf(str.charAt(i++)) != -1);
    }
    return flag;
} 

function caracteresValidos(str) {
// los caracteres validos son las letras mayusculas y minusculas - excepto
// la enie y las vocales acentuadas -, los numeros y los siguientes signos:
// . , - _ ' @ / & $ " % # ( ) y el espacio en blanco
    var flag = true;
    var i = 0;
    var validos = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    validos += validos.toLowerCase();
    validos += '0123456789 .,-_@/&$%#()';
    validos += "'";
    while (i < str.length && flag){
        flag = (validos.indexOf(str.charAt(i++)) != -1);
    }
    return flag;
}

function validaFecha(dd, mm, yy) {
var hoy = new Date();
var year = hoy.getYear();
var diames = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

   if(((yy%4 == 0) && (yy%100 !=0) ) || (yy%400 == 0)) diames[1] = 29;

   if(yy > year){
     return false;
   }
   else 
     if((mm < 1) || (mm > 12)){
       //alert("mes fuera de rango");
       return false;
     } else 
     if(diames[mm-1] < dd){
       return false
     }
    return true; 
}

function validaRDP(rutpaso){
  var paso = rutpaso.split('-');
  var rrl = paso[0];
  var dvrl1 = paso[1];
  var dvrl = dvrl1.toUpperCase();
  var resp = ""; 
  
  if ( !isNumero(rrl) || rrl*1==0) {
      return false;
  }else if ((!isNumero(dvrl) && (dvrl != "K")) || (dvrl == "")){
      return false;
  }else if (!validaM11(rrl,dvrl)){
      return false;
  }
  return true;
}

function validaRutDP(rutdp){
     var firstGuion  = rutdp.indexOf("-");
     var ultGuion    = rutdp.lastIndexOf("-");
     var punto       = rutdp.indexOf(".");
     var ultcaracter = rutdp.charAt(rutdp.length-1);
     var guion       = rutdp.charAt(rutdp.length-2);
     var validarutdp = (firstGuion > 0) && (firstGuion == ultGuion) 
                    && (ultcaracter != "-") && ( punto <= 0 ) 
                    && (guion == "-") && (guion != ultcaracter);
     return validarutdp;
  }

function validaStrFecha(fecha){
   if ( !isNumero(fecha.substring(0,2)) ){
       return false;
   }else if (!isNumero(fecha.substring(5,3))){
       return false;
   }else if (!isNumero(fecha.substring(10,6))){
       return false;
   }
   dia = eval(fecha.substring(0,2));
   mes = eval(fecha.substring(5,3));
   ano = eval(fecha.substring(10,6));
   if ( !validaFecha(dia, mes, ano) )
       return false;
   return true;
}

function validaMail(mail) {
    var primerArr     = mail.indexOf("@");
    var ultimoArr     = mail.lastIndexOf("@");
    var primerPto     = mail.indexOf(".");
    var ultimoPto     = mail.lastIndexOf(".");
    var doblePto      = mail.indexOf("..");
    var ptodespues    = primerArr+1;
    var valptodespues = mail.charAt(primerArr+1);  
    var ultimocarac   = mail.charAt((mail.length-1)); 
    var valida = (primerArr > 0) &&
	         (primerArr == ultimoArr) &&
	         (ultimoPto > primerArr) &&
	         (ultimocarac != " ") &&
	         (valptodespues != "." ) &&
	         (ultimoPto < (mail.length-1)) &&
	         (doblePto < 0);
    return valida;
}

