/*
    ============================================================================
    DHTML DaVinci - Versión 3.0 Mini (IE5++,NS6+,OP6+)
    Componente: Validación y login de usuarios - login.js
    Tamaño: 9311 bytes (9.09 Kb)
    Copyright (c) 2005 - Francisco Vida (info@pacovida.com)
    www.espirituDaVinci.com - info@espirituDaVinci.com
    ============================================================================
*/
    var loginSubmit=0
    function login()
    {
      if(loginSubmit){return}
      var txtError=new Array('Debe introducir su nombre de Usuario y su Contraseña.',"Los campos 'Usuario' y 'Password' deben contener\n de 4 a 12 carácteres alfanúmericos [a-z0-9].")
      var patron=new RegExp('^[0-9a-zñÑ]{4,12}$','i')
      var form=document.forms['log'].elements
      var user=document.forms['log'].elements['logUser'].value
      var pass=document.forms['log'].elements['logPass'].value
      var code=document.forms['log'].elements['logCode'].value
      if(user.search(patron)==-1||pass.search(patron)==-1)
      {
        var error=(!user||!pass)? 0 : 1
        alert(txtError[error])
        loginSubmit=0
        return
      }
      else
      {
        document.forms['log'].elements['logCode'].value=md5(code)+md5(pass)
        document.forms['log'].elements['logPass'].value=''
        loginSubmit=1
        document.forms['log'].submit()
      }
    }



    /************************************************************************/
    /*                                                                      */
    /* Copyright (c) 1996 Henri Torgemane. All Rights Reserved.             */
    /* Copyright (c) 2000-2004 by the phpAdsNew developers                  */
    /* For more information visit: http://www.phpadsnew.com                 */
    /*                                                                      */
    /* This program is free software. You can redistribute it and/or modify */
    /* it under the terms of the GNU General Public License as published by */
    /* the Free Software Foundation; either version 2 of the License.       */
    /************************************************************************/

    var state=new array(4);
    var count=new array(2);count[0]=0;count[1]=0;
    var buffer=new array(64);
    var transformBuffer=new array(16);
    var digestBits=new array(16);
    var S11= 7,S12=12,S13=17,S14=22,S21= 5,S22= 9,S23=14,S24=20
    var S31= 4,S32=11,S33=16,S34=23,S41= 6,S42=10,S43=15,S44=21
    var ascii="01234567890123456789012345678901"+" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+"[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";

    function rotateLeft(a,n){return or(shl(a,n),(shr(a,(32-n))))}
    function F(x,y,z){return or(and(x,y),and(not(x),z))}
    function G(x,y,z){return or(and(x,z),and(y,not(z)))}
    function H(x,y,z){return xor(xor(x,y),z)}
    function I(x,y,z){return xor(y,or(x,not(z)))}
    function FF(a,b,c,d,x,s,ac){a=a+F(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b;return a}
    function GG(a,b,c,d,x,s,ac){a=a+G(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b;return a}
    function HH(a,b,c,d,x,s,ac){a=a+H(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b;return a}
    function II(a,b,c,d,x,s,ac){a=a+I(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b;return a}

    function transform(buf,offset)
    {
      var a=0,b=0,c=0,d=0
      var x=transformBuffer
      a=state[0];b=state[1];c=state[2];d=state[3]
      for(i=0;i<16;i++)
      {
        x[i]=and(buf[i*4+offset],0xff);
        for(j=1;j<4;j++){x[i]+=shl(and(buf[i*4+j+offset],0xff),j*8)}
      }
      a=FF(a,b,c,d,x[ 0],S11,0xd76aa478);d=FF(d,a,b,c,x[ 1],S12,0xe8c7b756);c=FF(c,d,a,b,x[ 2],S13,0x242070db);b=FF(b,c,d,a,x[ 3],S14,0xc1bdceee)
      a=FF(a,b,c,d,x[ 4],S11,0xf57c0faf);d=FF(d,a,b,c,x[ 5],S12,0x4787c62a);c=FF(c,d,a,b,x[ 6],S13,0xa8304613);b=FF(b,c,d,a,x[ 7],S14,0xfd469501)
      a=FF(a,b,c,d,x[ 8],S11,0x698098d8);d=FF(d,a,b,c,x[ 9],S12,0x8b44f7af);c=FF(c,d,a,b,x[10],S13,0xffff5bb1);b=FF(b,c,d,a,x[11],S14,0x895cd7be)
      a=FF(a,b,c,d,x[12],S11,0x6b901122);d=FF(d,a,b,c,x[13],S12,0xfd987193);c=FF(c,d,a,b,x[14],S13,0xa679438e);b=FF(b,c,d,a,x[15],S14,0x49b40821)
      a=GG(a,b,c,d,x[ 1],S21,0xf61e2562);d=GG(d,a,b,c,x[ 6],S22,0xc040b340);c=GG(c,d,a,b,x[11],S23,0x265e5a51);b=GG(b,c,d,a,x[ 0],S24,0xe9b6c7aa)
      a=GG(a,b,c,d,x[ 5],S21,0xd62f105d);d=GG(d,a,b,c,x[10],S22, 0x2441453);c=GG(c,d,a,b,x[15],S23,0xd8a1e681);b=GG(b,c,d,a,x[ 4],S24,0xe7d3fbc8)
      a=GG(a,b,c,d,x[ 9],S21,0x21e1cde6);d=GG(d,a,b,c,x[14],S22,0xc33707d6);c=GG(c,d,a,b,x[ 3],S23,0xf4d50d87);b=GG(b,c,d,a,x[ 8],S24,0x455a14ed)
      a=GG(a,b,c,d,x[13],S21,0xa9e3e905);d=GG(d,a,b,c,x[ 2],S22,0xfcefa3f8);c=GG(c,d,a,b,x[ 7],S23,0x676f02d9);b=GG(b,c,d,a,x[12],S24,0x8d2a4c8a)
      a=HH(a,b,c,d,x[ 5],S31,0xfffa3942);d=HH(d,a,b,c,x[ 8],S32,0x8771f681);c=HH(c,d,a,b,x[11],S33,0x6d9d6122);b=HH(b,c,d,a,x[14],S34,0xfde5380c)
      a=HH(a,b,c,d,x[ 1],S31,0xa4beea44);d=HH(d,a,b,c,x[ 4],S32,0x4bdecfa9);c=HH(c,d,a,b,x[ 7],S33,0xf6bb4b60);b=HH(b,c,d,a,x[10],S34,0xbebfbc70)
      a=HH(a,b,c,d,x[13],S31,0x289b7ec6);d=HH(d,a,b,c,x[ 0],S32,0xeaa127fa);c=HH(c,d,a,b,x[ 3],S33,0xd4ef3085);b=HH(b,c,d,a,x[ 6],S34, 0x4881d05)
      a=HH(a,b,c,d,x[ 9],S31,0xd9d4d039);d=HH(d,a,b,c,x[12],S32,0xe6db99e5);c=HH(c,d,a,b,x[15],S33,0x1fa27cf8);b=HH(b,c,d,a,x[ 2],S34,0xc4ac5665)
      a=II(a,b,c,d,x[ 0],S41,0xf4292244);d=II(d,a,b,c,x[ 7],S42,0x432aff97);c=II(c,d,a,b,x[14],S43,0xab9423a7);b=II(b,c,d,a,x[ 5],S44,0xfc93a039)
      a=II(a,b,c,d,x[12],S41,0x655b59c3);d=II(d,a,b,c,x[ 3],S42,0x8f0ccc92);c=II(c,d,a,b,x[10],S43,0xffeff47d);b=II(b,c,d,a,x[ 1],S44,0x85845dd1)
      a=II(a,b,c,d,x[ 8],S41,0x6fa87e4f);d=II(d,a,b,c,x[15],S42,0xfe2ce6e0);c=II(c,d,a,b,x[ 6],S43,0xa3014314);b=II(b,c,d,a,x[13],S44,0x4e0811a1)
      a=II(a,b,c,d,x[ 4],S41,0xf7537e82);d=II(d,a,b,c,x[11],S42,0xbd3af235);c=II(c,d,a,b,x[ 2],S43,0x2ad7d2bb);b=II(b,c,d,a,x[ 9],S44,0xeb86d391)
      state[0]+=a;state[1]+=b;state[2]+=c;state[3]+=d
    }

    function md5(entree)
    {
      var l,s,k,ka,kb,kc,kd
      init()
      for(k=0;k<entree.length;k++){l=entree.charAt(k);update(ascii.lastIndexOf(l))}
      finish()
      ka=kb=kc=kd=0
      for(i=0;i<4;i++){ka+=shl(digestBits[15-i],(i*8))}
      for(i=4;i<8;i++){kb+=shl(digestBits[15-i],((i-4)*8))}
      for(i=8;i<12;i++){kc+=shl(digestBits[15-i],((i-8)*8))}
      for(i=12;i<16;i++){kd+=shl(digestBits[15-i],((i-12)*8))}
      s=hexa(kd)+hexa(kc)+hexa(kb)+hexa(ka)
      return s
    }

    function init()
    {
      count[0]=count[1]=0
      state[0]=0x67452301;state[1]=0xefcdab89;state[2]=0x98badcfe;state[3]=0x10325476
      for(i=0;i<digestBits.length;i++){digestBits[i]=0}
    }

    function update(b)
    {
      var index,i
      index=and(shr(count[0],3),0x3f)
      if(count[0]<0xffffffff-7){count[0]+=8}else{count[1]++;count[0]-=0xffffffff+1;count[0]+=8}
      buffer[index]=and(b,0xff)
      if(index>=63){transform(buffer,0)}
    }

    function finish()
    {
      var bits=new array(8);var padding;var i=0,index=0,padLen=0
      for(i=0;i<4;i++){bits[i]=and(shr(count[0],(i*8)),0xff)}
      for(i=0;i<4;i++){bits[i+4]=and(shr(count[1],(i*8)),0xff)}
      index=and(shr(count[0],3),0x3f)
      padLen=(index<56)?(56-index):(120-index)
      padding=new array(64)
      padding[0]=0x80
      for(i=0;i<padLen;i++){update(padding[i])}
      for(i=0;i<8;i++){update(bits[i])}
      for(i=0;i<4;i++){for(j=0;j<4;j++){digestBits[i*4+j]=and(shr(state[i],(j*8)),0xff)}}
    }

    function array(n){for(i=0;i<n;i++)this[i]=0;this.length=n}
    function integer(n){return n%(0xffffffff+1)}

    function shr(a,b)
    {
      a=integer(a);b=integer(b)
      if(a-0x80000000>=0){a=a%0x80000000;a>>=b;a+=0x40000000>>(b-1)}else{a>>=b}
      return a
    }

    function shl(a,b)
    {
      a=integer(a);b=integer(b)
      for(var i=0;i<b;i++){a=shl1(a)}
      return a;
    }

    function shl1(a)
    {
      a=a%0x80000000
      if(a&0x40000000==0x40000000){a-=0x40000000;a*=2;a+=0x80000000;}else{a*=2}
      return a
    }

    function and(a,b)
    {
      a=integer(a);b=integer(b)
      var t1=(a-0x80000000),t2=(b-0x80000000)
      if(t1>=0){if(t2>=0){return((t1&t2)+0x80000000)}else{return(t1&b)}}
      else{if(t2>=0){return(a&t2)}else{return(a&b)}}
    }

    function or(a,b)
    {
      a=integer(a);b=integer(b)
      var t1=(a-0x80000000),t2=(b-0x80000000)
      if(t1>=0){if(t2>=0){return((t1|t2)+0x80000000)}else{return((t1|b)+0x80000000)}}
      else{if(t2>=0){return((a|t2)+0x80000000)}else{return(a|b)}}
    }

    function xor(a,b)
    {
      a=integer(a);b=integer(b)
      var t1=(a-0x80000000),t2=(b-0x80000000)
      if(t1>=0){if(t2>=0){return(t1^t2)}else{return((t1^b)+0x80000000)}}
      else{if(t2>=0){return((a^t2)+0x80000000)}else{return(a^b)}}
    }

    function not(a){a=integer(a);return(0xffffffff-a)}

    function hexa(n)
    {
      var hexa_h="0123456789abcdef",hexa_c="",hexa_m=n
      for(hexa_i=0;hexa_i<8;hexa_i++){hexa_c=hexa_h.charAt(Math.abs(hexa_m)%16)+hexa_c;hexa_m=Math.floor(hexa_m/16)}
      return hexa_c
    }

//  === DHTML DaVinci (c) 2005 =================================================
