if (window.focus) self.focus();

function openAnyWindow(url, name) {
  var l = openAnyWindow.arguments.length;
  var w = "";
  var h = "";
  var features = "";
  for (i=2; i<l; i++) {
 var param = openAnyWindow.arguments[i];
 if ((parseInt(param) == 0) || (isNaN(parseInt(param))) ) {
features += param + ',';
 } else {
(w == "") ? w = "width=" + param + "," : h = "height=" + param;
 }
  }
  features += w + h;
  var code = "popupWin = window.open(url, name";
  if (l > 2) code += ", '" + features;
  code += "')";
  eval(code);
}








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 shl1(a)
{
	a = a%0x80000000;

	if (a&0x40000000==0x40000000)
	{
		a-=0x40000000;
		a*=2;
		a+=0x80000000;
	}
	else a*=2;

	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 and(a,b)
{
	a = integer(a);
	b = integer(b);

	var t1 = (a-0x80000000);
	var 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);
	var 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);
	var 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);
}



	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;
	var S12 = 12;
	var S13 = 17;
	var S14 = 22;
	var S21 = 5;
	var S22 = 9;
	var S23 = 14;
	var S24 = 20;
	var S31 = 4;
	var S32 = 11;
	var S33 = 16;
	var S34 = 23;
	var S41 = 6;
	var S42 = 10;
	var S43 = 15;
	var S44 = 21;

 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 rotateLeft(a,n)
	{
  return or(shl(a,n),(shr(a,(32-n))));
 }

 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 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 hexa(n) {
 var hexa_h = "0123456789abcdef";
 var hexa_c="";
 var 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;
}


var ascii="01234567890123456789012345678901" +
 " !\"#" + '\$' + "%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+
 "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";

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 check_login()
{
  
	if(document.user_login.username.value=="")
	{
	  alert("Please input AceNet ID");
	  return false;
	}
	if(document.user_login.password1.value=="")
	{
	  alert("Please input password");
	  return false;
	}
	encode_login();
	
}
function encode_login()
{
    
   document.user_login.password.value = md5(document.user_login.password1.value);
   document.user_login.password1.disabled =true ;
   
    return true;
}


function check_register()
{
   if((document.user_reg.username.value=="")||(checkstr(document.user_reg.username.value)<6))
	{
	  alert("Please input an available AceNet ID");
	   return false;
	}
	if((document.user_reg.password1.value=="")||(checkstr(document.user_reg.password1.value)<6))
	{
	  alert("Please input an available password");
	   return false;
	}
   if((document.user_reg.companyname.value=="")||(checkstr(document.user_reg.companyname.value)<4))
	{
	  alert("Please input an available company name");
	   return false;
	}
	
	if((document.user_reg.realname.value=="")||(checkstr(document.user_reg.realname.value)<2))
	{
	  alert("Please input an available real name");
	   return false;
	}
	
	
	if((document.user_reg.address.value=="")||(checkstr(document.user_reg.address.value)<6))
	{
	  alert("Please input an available address");
	   return false;
	}
	if(document.user_reg.country.value=="")
	{
	  alert("Please input an available country");
	  return false;
	}
	if((document.user_reg.postcode.value=="")||(checkstr(document.user_reg.postcode.value)<3))
	{
	  alert("Please input an available postcode");
	   return false;
	}

	if(document.user_reg.contact.value=="")
	{
	  alert("Please input an available contact");
	   return false;
	}
	if((document.user_reg.tel.value=="")||(checkstr(document.user_reg.tel.value)<12))
	{
	  alert("Please input an available telephone");
	   return false;
	}
	
	if(document.user_reg.email.value=="")
	{
	  alert("Please input an available E-Mail");
	  return false;
	}
	
	encode_register();
	
	
}
function  checkstr(str)    
{    
	num=str.length  
	return num  
}    
function encode_register()
{
    
   document.user_reg.password.value = md5(document.user_reg.password1.value);
   document.user_reg.password1.disabled =true ;
    return true;
}
function   isMail(str)   {   
          var   a=str.indexOf("@")+1;   
          var   p=str.indexOf(".")+1;   
          if(str.indexOf("'")   >   0)   
      return   false;   
    if(str.indexOf('"')   >   0)   
      return   false;   
          if   (a<2)   
                return   false;           
          if   (p<1)   
                return   false;           
          if   (p<a+2)   
                return   false;           
          if   (str.length==p)   
                return   false;       
          return   true;     
  }  		
  
function forgot_check()
{
	if(document.passmodify.user.value==''||document.passmodify.user.value==null)
	{
	    alert("Please input an available AceNet ID");
		return false;
	}
	if(document.passmodify.mail.value==''||document.passmodify.mail.value==null)
	{
	    alert("Please input an available E-Mail");
		return false;
	}
	if(document.passmodify.newpasswd.value==''||document.passmodify.newpasswd.value==null)
	{
	    alert("Please input an available new password");
		return false;
	}
}

