var temporizador;
var selectMunicipio;
var campos= new Array ('TipoVia', 'Calle', 'Numero', 'Bloque', 'Piso', 'CodigoPostal', 'Municipio', 'Comentario', 'Telefono', 'Movil', 'PreguntarPor', 'Fax', 'ApartadoCorreos', 'Nombre', 'Apellidos', 'NombreEmpresa');
// Encriptación md5, parte del código ha sido extraído de yahoo
function hex(n){
  var h= '0123456789abcdef', s= '';
  for(var i= 4; i<32; i=i&4?i^4:i+12)
    s+= h.charAt(n>>i&15);
  return s;
}
function cmn(a, b, c, d, e, f) {
  return c+((a+=b+d+f)<<e|a>>>32-e);
}
function md5(s){
  var l, n= (l=s.length)+8>>6;
  x= new Array(n=++n<<4);
  for(var i= 0; i<n;)
    x[i++]= 0;
  for(i= 0; i<l; i++)
    x[i>>2]|= s.charCodeAt(i)<<i%4*8;
  x[i>>2]|= 0x80<<i%4*8;
  x[n-2]= l*8;
  var a= 0x67452301,b= 0xEFCDAB89,c= 0x98BADCFE,d= 0x10325476,e=a,f=b,g=c,h=d;
  for (i= 0; i < x.length;)
    a= cmn(b&c|~b&d, a, b, x[i++],  7, 0xD76AA478),
    d= cmn(a&b|~a&c, d, a, x[i++], 12, 0xE8C7B756),
    c= cmn(d&a|~d&b, c, d, x[i++], 17, 606105819),
    b= cmn(c&d|~c&a, b, c, x[i++], 22, 0xC1BDCEEE),
    a= cmn(b&c|~b&d, a, b, x[i++],  7, 0xF57C0FAF),
    d= cmn(a&b|~a&c, d, a, x[i++], 12, 0x4787C62A),
    c= cmn(d&a|~d&b, c, d, x[i++], 17, 0xA8304613),
    b= cmn(c&d|~c&a, b, c, x[i++], 22, -45705983),
    a= cmn(b&c|~b&d, a, b, x[i++],  7, 0x698098D8),
    d= cmn(a&b|~a&c, d, a, x[i++], 12, 0x8B44F7AF),
    c= cmn(d&a|~d&b, c, d, x[i++], 17, -42063),
    b= cmn(c&d|~c&a, b, c, x[i++], 22, 0x895CD7BE),
    a= cmn(b&c|~b&d, a, b, x[i++],  7, 0x6B901122),
    d= cmn(a&b|~a&c, d, a, x[i++], 12, -40341101),
    c= cmn(d&a|~d&b, c, d, x[i++], 17, 0xA679438E),
    b= cmn(c&d|~c&a, b, c, x[i++], 22, 0x49B40821),
    a= cmn(b&d|c&~d, a, b, x[i-15], 5, 0xF61E2562),
    d= cmn(a&c|b&~c, d, a, x[i-10], 9, 0xC040B340),
    c= cmn(d&b|a&~b, c, d, x[i-5], 14, 643717713),
    b= cmn(c&a|d&~a, b, c, x[i-16],20, 0xE9B6C7AA),
    a= cmn(b&d|c&~d, a, b, x[i-11], 5, 0xD62F105D),
    d= cmn(a&c|b&~c, d, a, x[i-6],  9, 38016083),
    c= cmn(d&b|a&~b, c, d, x[i-1], 14, 0xD8A1E681),
    b= cmn(c&a|d&~a, b, c, x[i-12],20, 0xE7D3FBC8),
    a= cmn(b&d|c&~d, a, b, x[i-7],  5, 568446438),
    d= cmn(a&c|b&~c, d, a, x[i-2],  9, 0xC33707D6),
    c= cmn(d&b|a&~b, c, d, x[i-13],14, 0xF4D50D87),
    b= cmn(c&a|d&~a, b, c, x[i-8], 20, 0x455A14ED),
    a= cmn(b&d|c&~d, a, b, x[i-3], 5 , 0xA9E3E905),
    d= cmn(a&c|b&~c, d, a, x[i-14], 9, -51403784),
    c= cmn(d&b|a&~b, c, d, x[i-9], 14, 0x676F02D9),
    b= cmn(c&a|d&~a, b, c, x[i-4], 20, 0x8D2A4C8A),
    a= cmn(b^c^d, a, b, x[i-11], 4, -378558),
    d= cmn(a^b^c, d, a, x[i-8], 11, 0x8771F681),
    c= cmn(d^a^b, c, d, x[i-5], 16, 0x6D9D6122),
    b= cmn(c^d^a, b, c, x[i-2], 23, -35309556),
    a= cmn(b^c^d, a, b, x[i-15], 4, 0xA4BEEA44),
    d= cmn(a^b^c, d, a, x[i-12], 11, 0x4BDECFA9),
    c= cmn(d^a^b, c, d, x[i-9], 16, 0xF6BB4B60),
    b= cmn(c^d^a, b, c, x[i-6], 23, 0xBEBFBC70),
    a= cmn(b^c^d, a, b, x[i-3], 4, 681279174),
    d= cmn(a^b^c, d, a, x[i-16], 11, 0xEAA127FA),
    c= cmn(d^a^b, c, d, x[i-13], 16, 0xD4EF3085),
    b= cmn(c^d^a, b, c, x[i-10], 23, 76029189),
    a= cmn(b^c^d, a, b, x[i-7], 4, 0xD9D4D039),
    d= cmn(a^b^c, d, a, x[i-4], 11, 0xE6DB99E5),
    c= cmn(d^a^b, c, d, x[i-1], 16, 530742520),
    b= cmn(c^d^a, b, c, x[i-14], 23, 0xC4AC5665),
    a= cmn((b|~d)^c, a, b, x[i-16], 6, 0xF4292244),
    d= cmn((a|~c)^b, d, a, x[i-9], 10, 0x432AFF97),
    c= cmn((d|~b)^a, c, d, x[i-2], 15, 0xAB9423A7),
    b= cmn((c|~a)^d, b, c, x[i-11], 21, -57434055),
    a= cmn((b|~d)^c, a, b, x[i-4], 6, 0x655B59C3),
    d= cmn((a|~c)^b, d, a, x[i-13], 10, 0x8F0CCC92),
    c= cmn((d|~b)^a, c, d, x[i-6], 15, -1051523),
    b= cmn((c|~a)^d, b, c, x[i-15], 21, 0x85845DD1),
    a= cmn((b|~d)^c, a, b, x[i-8], 6, 0x6FA87E4F),
    d= cmn((a|~c)^b, d, a, x[i-1], 10, -30611744),
    c= cmn((d|~b)^a, c, d, x[i-10], 15, 0xA3014314),
    b= cmn((c|~a)^d, b, c, x[i-3], 21, 0x4E0811A1),
    a= cmn((b|~d)^c, a, b, x[i-12], 6, 0xF7537E82),
    d= cmn((a|~c)^b, d, a, x[i-5], 10, 0xBD3AF235),
    c= cmn((d|~b)^a, c, d, x[i-14], 15, 718787259),
    b= cmn((c|~a)^d, b, c, x[i-7], 21, 0xEB86D391),
    a+= e, e= a,
    b+= f, f= b,
    c+= g, g= c,
    d+= h, h= d;
  return hex(a) + hex(b) + hex(c) + hex(d);
}
// Validar formulario, esto evita que se pasen los password como texto plano
function validar(form,url){
  url += "?";
  for(i=0; i<form.elements.length; i++)
    if(typeof(form.elements[i].name) != 'undefined')
      url += '&' + form.elements[i].name + '=' + 
          (form.elements[i].name == 'password' ?
             md5(md5(form.password.value) + form['.desafio'].value):
             escape(form.elements[i].value));
  location.href=url; 
}
// Muestra la capa de Login
function muestraCapaLogin(){
  e= document.getElementById('log');
  if (e.style.display=='block')
    e.style.display= 'none';
  else{
    e.style.opacity= 0;
    e.style.display= 'block';
    temporizador= setInterval('fundido()',100);
    document.getElementById('login').focus();   
  }
}
function fundido(){
  e= document.getElementById('log');
  e.style.opacity= Math.sqrt(parseFloat(e.style.opacity))+0.1;
  if (e.style.opacity > 1)
    clearInterval(temporizador); 
}
// Oculta la capa de Login
function ocultaCapaLogin(){
  document.getElementById('log').style.display='none';
}
// Evento pulsación de tecla en campos input del formulario de login
function tecla(e){
  t= document.all ? e.keyCode : e.which;
  u= document.getElementById('password');
  if (t == 13)
    if ((document.all ? e.srcElement.id : e.target.id) == 'login') 
      u.focus(); 
    else 
      location.href= location.href.substr(location.href,location.href.lastIndexOf('/'))+ 
          '/intranet.php?login=' + document.getElementById('login').value+'&password='+ 
          md5(md5(u.value.toUpperCase()) + document.getElementById('desafio').value); 
}
// Evento pulsación de tecla en campos input del formulario en recepción
function recepcion(e){
  t= document.all ? e.keyCode : e.which;
  f= document.all ? e.srcElement.id : e.target.id;
  u= document.getElementById('codigo');
  if (t == 9 && f=='verificar' || t == 13 && f=='peso'){
    u.focus();
    if (document.all)
      e.returnValue=false;
    else e.preventDefault();
  }
  else if (t == 13)
    if (/^\d{8}$/.test(u.value) || /^\d{10}$/.test(u.value))
      document.forms[0].submit(); 
    else {
      alert('Código no válido'); 
//    u.value='';
    } 
}
function comprobarCP(e,prefijo){ 
  f = document.getElementById(document.all ? e.srcElement.id : e.target.id);
  if (f.readOnly==false){
    if (!(selectMunicipio = document.getElementById(prefijo+'Muni'))) 
      selectMunicipio= document.createElement('select');
    selectMunicipio.setAttribute('id', prefijo+'Muni');
    selectMunicipio.addEventListener('change', cambioMunicipio, false);
    ajax= new XMLHttpRequest();
    ajax.open('GET', 'codigoPostal.php?code='+f.value);
    ajax.onreadystatechange= cargaDatos;
    ajax.send(null);
    document.getElementById(prefijo+'Poblacion').insertBefore(selectMunicipio, f.nextSibling);
  }
}
function cambioMunicipio(){
  if(selectMunicipio.selectedIndex>0)
    document.getElementById(selectMunicipio.id+'cipio').value= selectMunicipio.options[selectMunicipio.selectedIndex].text;
}
function cuentaCaracter(cadena, caracter){
  var i=0, contador=0;
  while(++i>0)
    i = cadena.indexOf(caracter, i),
    contador++; 
  return contador;
}
function cargaDatos (){
  if (ajax.readyState==4){
    selectMunicipio.innerHTML=ajax.responseText;
    if (cuentaCaracter(selectMunicipio.innerHTML, '<')==4)
      document.getElementById(selectMunicipio.id+'cipio').value= selectMunicipio.options[selectMunicipio.selectedIndex = 1].text;
  }
  else
    selectMunicipio.innerHTML='<option value="0">Cargando...</option>';
}
function cargaDirecciones(){
  if (ajax.readyState==4){
    var arrayResult= ajax.responseText.split('|');
    var comboId= arrayResult[0];
    var longitud= campos.length;
    if (comboId == 'oficina')
      longitud-= 3;
    for (i=0; i<longitud; i++)
      document.getElementById(comboId+campos[i]).value= arrayResult[i+1],
      document.getElementById(comboId+campos[i]).disabled = true;
  }
}
function cambiaCombo (combo){
  var longitud= campos.length;
  if (combo.id == 'oficina')
    longitud-= 3;
  if(combo.selectedIndex == 0){
    for (i=0; i<longitud; i++)
      document.getElementById(combo.id+campos[i]).value= '',
      document.getElementById(combo.id+campos[i]).disabled= false;
  }
  else{
    ajax = new XMLHttpRequest();
    ajax.open('GET', 'http://romulo.inauta.com/antonioj/ofiOdest.php?code='+combo.selectedIndex+'&tipo='+combo.id);
    ajax.onreadystatechange= cargaDirecciones;
    ajax.send(null);   
  } 
}
//var p=document.getElementById('tipsa');
//if (p!=null)
//  alert (p); 
//function ancla(url,form,enlace){ 
//  for(i=0; i<form.elements.length; i++)
//    if(typeof(form.elements[i].name) != 'undefined' && form.elements[i].value != '') 
//      url += '&' + form.elements[i].name + '=' + escape(form.elements[i].value); 
//  location.href=url + '#' + enlace; //}
