var ie4 = document.all?true:false;
var nn6=document.getElementById&&!document.all;
var isdrag=false;
var tempX=tempY=0;
var dragme;
var counters=new Array();
var spans=document.getElementsByTagName("span");

if(!ie4) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = mousemove;
document.onmousedown=mousedown;
document.onmouseup=mouseup;

function mousedown(e){
 var fobj=nn6 ? e.target : event.srcElement;
 var topelement=nn6 ? "HTML" : "BODY";
 while(fobj.tagName!=topelement && fobj.getAttribute("kind") != "dragdrop"){
  fobj=nn6 ? fobj.parentNode : fobj.parentElement;
 }
 fobj.style.position='relative';
 if(fobj.getAttribute("kind")=="dragdrop"){
  isdrag=true;
  dragme=fobj;
  tx=parseInt(fobj.style.left+0);
  ty=parseInt(fobj.style.top+0);
  x=nn6 ? e.clientX : event.clientX;
  y=nn6 ? e.clientY : event.clientY;
  return false;
 }
}

function mouseup(e){
 isdrag=false;
}

function mousemove(e){
 if(ie4){
  tempX=event.clientX + document.body.scrollLeft;
  tempY=event.clientY + document.body.scrollTop;
 }else{
  tempX=e.pageX;
  tempY=e.pageY;
 }  
 if(tempX<0) tempX=0;
 if(tempY<0) tempY=0;
 if(isdrag){
  dragme.style.left=nn6 ? tx + e.clientX - x : tx + event.clientX - x;
  dragme.style.top=nn6 ? ty + e.clientY - y : ty + event.clientY - y;
  return false;
 }
}

function getObject(id){
 if(ie4) return document.all[id];
 else return document.getElementById(id);
}

function spankind(){
 for(var i=0; i<spans.length; i++){
  spans[i].loaded=false;
  var kind=spans[i].getAttribute("kind");
  if(!kind) continue;
  switch(kind){
   case "counter":
    counters[i]=setInterval("counter("+i+")",'1000');
   break;
   case "dragdrop":
    spans[i].onmouseover=spans[i].style.cursor='move';
   break;
  }
 }
}

function counter(id){
 var val=spans[id].getAttribute("innerHTML");
 if(isNaN(val)) val=unmake_time(val);
 if(isNaN(val)) val=0;
 val++;
 spans[id].innerHTML=make_time(val);
}

function unmake_time(string){
 var string=string.split(' ');
 string=string.reverse();
 var hours=minutes=seconds=out=0*1;
 if(string.length>=3){
  hours=string[2].substring(0,string[2].length-1)*1;
  out+=hours*3600;
 }
 if(string.length>=2){
  minutes=string[1].substring(0,string[1].length-1)*1;
  out+=minutes*60;
 }
 seconds=string[0].substring(0,string[0].length-1)*1;
 out+=seconds;
 return out*1;
}

function make_time(integer){
 var minutes=hours=0;
 var string='';
 while(integer>=3600){
  integer-=3600;
  hours++;
 }
 while(integer>=60){
  integer-=60;
  minutes++;
 }
 if(hours>0) string+=hours+'h ';
 if(minutes>0||hours>0) string+=minutes+'m ';
 string+=integer+'s';
 return string;
}

function SimpleSwap(el,which){
 el.src=el.getAttribute(which || "origsrc");
}

var images=document.getElementsByTagName("img");
function SimpleSwapSetup(){
 for(var i=0; i<images.length; i++){
  images[i].loaded=false;
  var oversrc=images[i].getAttribute("oversrc");
  var clicksrc=images[i].getAttribute("clicksrc");
  if(oversrc){
   images[i].oversrc_img=new Image();
   images[i].oversrc_img.src=oversrc;
   images[i].onmouseover=new Function("SimpleSwap(this,'oversrc');");
   images[i].onmouseout=new Function("SimpleSwap(this);");
   images[i].setAttribute("origsrc",images[i].src);
  }
  if(clicksrc){
   images[i].clicksrc_img=new Image();
   images[i].clicksrc_img.src=clicksrc;
   images[i].onmousedown=new Function("SimpleSwap(this,'clicksrc');");
   if(oversrc) images[i].onmouseup=new Function("SimpleSwap(this,'oversrc');");
   else images[i].onmouseup=new Function("SimpleSwap(this);");
   images[i].setAttribute("origsrc",images[i].src);
  }
 }
}

function currency(el){
 var temp='';
 var tempval=el.value;
 for(var t=0; t<el.value.length; t++){
  var letter=tempval.substring(0, 1);
  tempval=tempval.substring(1, tempval.length);
  if(letter=='1'||letter=='2'||letter=='3'||letter=='4'||letter=='5'||letter=='6'||letter=='7'||letter=='8'||letter=='9'||letter=='0') temp+=letter;
 }
 el.value=temp.substring(0, temp.length-2)+'.'+temp.substring(temp.length-2, temp.length);
}

function inputkind(){
 var x=document.getElementsByTagName("input");
 for(var i=0; i<x.length; i++){
  var kind=x[i].getAttribute("kind");
  if(!kind) continue;
  switch(kind){
   case "numonly":
    x[i].onkeyup=new Function("numonly(this)");
    x[i].onkeydown=new Function("numonly(this)");
    x[i].onblur=new Function("numonly(this)");
   break;
   case "phone":
    x[i].onkeydown=new Function("numonly(this)");
    x[i].onkeyup=new Function("numonly(this)");
    x[i].onblur=new Function("phone(this)");
   break;
   case "currency":
    x[i].onkeydown=new Function("numonly(this)");
    x[i].onkeyup=new Function("numonly(this,1)");
    x[i].onblur=new Function("currency(this)");
   break;
   case "postalcode":
    x[i].onblur=new Function("postalcode(this)");
   break;
  }
 }
}

function formsubmit(webpage,target){
 if(target==null) target='_top';
 document.form.target=target;
 document.form.action=webpage;
 document.form.submit();
}

function formconfirm(message,webpage,target){
 var conf=confirm(message);
 if(conf) formsubmit(webpage,target);
}

function phone(el){
 var out=temp="";
 var tempval=el.value;
 for(var t=0; t<el.value.length; t++){
  var letter=tempval.substring(0, 1);
  tempval=tempval.substring(1, tempval.length);
  if(letter=='1'||letter=='2'||letter=='3'||letter=='4'||letter=='5'||letter=='6'||letter=='7'||letter=='8'||letter=='9'||letter=='0') temp+=letter;
 }
 for(var t=0; t<14; t++){
  if(t==0) out+='(';
  else if(t==4){
   out+=') ';
   t++;
  }else if(t==9) out+='-';
  else{
   var number=temp.substring(0,1);
   temp=temp.substring(1, temp.length);
   out+=number;
  }
 }
 el.value=out;
}

function currency(el){
 var temp='';
 var tempval=el.value;
 for(var t=0; t<el.value.length; t++){
  var letter=tempval.substring(0, 1);
  tempval=tempval.substring(1, tempval.length);
  if(letter=='1'||letter=='2'||letter=='3'||letter=='4'||letter=='5'||letter=='6'||letter=='7'||letter=='8'||letter=='9'||letter=='0') temp+=letter;
 }
 el.value=temp.substring(0, temp.length-2)+'.'+temp.substring(temp.length-2, temp.length);
}

function numonly(el,phone){
 var temp="";
 var tempval=el.value;
 for(var t=0; t<el.value.length; t++){
  var letter=tempval.substring(0, 1);
  tempval=tempval.substring(1, tempval.length);
  if(temp.length==14&&phone==1) break;
  if(letter=='1'||letter=='2'||letter=='3'||letter=='4'||letter=='5'||letter=='6'||letter=='7'||letter=='8'||letter=='9'||letter=='0'||letter=='('||letter==')'||letter==' '||letter=='-'||letter=='.') temp+=letter;
 }
 el.value=temp;
}

function postalcode(el){
 var temp='';
 var tempval=el.value;
 for(var t=0; t<el.value.length; t++){
  if(t>'5') continue;
  var letter=tempval.substring(0, 1);
  tempval=tempval.substring(1, tempval.length);
  if(t=='3') temp+=' ';
  temp+=letter;
 }
 el.value=temp;
}

function MyAjaxRequest(target_div,file,check_div){
 var MyHttpRequest = false;
 if(check_div) var check_value = getObject(check_div).value;
 else var check_value = '';
 if(window.XMLHttpRequest){
  try{
   MyHttpRequest = new XMLHttpRequest();
  }catch(e){
   MyHttpRequest = false;
  }
 }else if(window.ActiveXObject){
  try{
   MyHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
  }catch(e){
   try{
    MyHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
   }catch(e){
    MyHttpRequest = false;
   }
  }
 }else MyHttpRequest = false;
 if(MyHttpRequest){
  var random = Math.random() * Date.parse(new Date());
  var file_array = file.split('.');
  if(file_array[1] == 'php') var query_string = '?rand=' + random;
  else if(file_array[1] == 'htm' || file_array[1] == 'html') var query_string = '';
  else var query_string = check_value + '&rand=' + random;
  MyHttpRequest.open("get", url_encode(file + query_string), true);
  MyHttpRequest.onreadystatechange = function (){
   if(MyHttpRequest.readyState == 4) document.getElementById(target_div).innerHTML = MyHttpRequest.responseText;
   else getObject(target_div).innerHTML='<img src="images/loading.gif">';
  }
  MyHttpRequest.send(null);
 }else document.getElementById(target_div).innerHTML = 'Sorry - No XMLHTTP support in your browser, buy a newspaper instead';
}

function url_encode(string){
 var string;
 var safechars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/-_.&?=";
 var hex = "0123456789ABCDEF";
 var encoded_string="";
 for(var i=0; i<string.length; i++){
  var character = string.charAt(i);
  if(character == " ") encoded_string += "+";
  else if(safechars.indexOf(character) != -1) encoded_string += character;
  else{
   var hexchar = character.charCodeAt(0);
   if(hexchar > 255) encoded_string += "+";
   else{
    encoded_string += "%";
    encoded_string += hex.charAt((hexchar >> 4) & 0xF);
    encoded_string += hex.charAt(hexchar & 0xF);
   }
  }
 }
 return encoded_string;
}

function selectfirstinput(int){
 var inputs=document.getElementsByTagName("input");
 var i=0;
 for(var i=0; i<inputs.length; i++){
  var type=inputs[i].getAttribute("type");
  if(type!='text'&&type!='textbox') continue;
  i++;
  if(i==int){
   inputs[i].focus();
   break;
  }
 }
}

function playSound(id){
 if(document.embeds){
  document.embeds["sound"+id].play();
 }
}

function autoform(){
 var a=document.getElementsByTagName("a");
 var url=location.href.substr(0,location.href.lastIndexOf('/')+1);
 for(i=0; i<a.length; i++){
  var target=a[i].getAttribute("to");
  if(target==null) target='';
  var href=a[i].getAttribute("href");
  if(href==''||href.indexOf('javascript')!='-1'||href.indexOf(url)=='-1') continue;
  a[i].href='javascript:formsubmit("'+href+'","'+target+'");';
 }
}

function swatch(url){
 var picture=getObject('picture');
 if(picture.src.indexOf(url)==-1) picture.src=url;
}

function uncheck(el){
 el=getObject(el);
 if (el.checked==true) el.checked=false;
}

function unselect(el){
 el=getObject(el);
 info=el.childNodes;
 for(var i=0; i<info.length;i++){
  if(info[i].tagName!='OPTION') continue;
  info[i].selected=false;
 }
}

function empty(string){
 if(string==''||string==undefined) return true;
 return false;
}

function is_hex(hex){
 if(hex.indexOf('#')!=-1) hex=hex.substr(1);
 hex=hex.toLowerCase();
 if(hex.length=='3'){
  var out='';
  for(var i=0; i<hex.length; i++) out+=hex.substr(i,1)+hex.substr(i,1);
  hex=out;
 }
 if(hex.length!='6') return false;
 for(var i=0; i<hex.length; i++){
  if(hex.substr(i,1)!=1&&hex.substr(i,1)!=2&&hex.substr(i,1)!=3&&hex.substr(i,1)!=4&&hex.substr(i,1)!=5&&hex.substr(i,1)!=6&&hex.substr(i,1)!=7&&hex.substr(i,1)!=8&&hex.substr(i,1)!=9&&hex.substr(i,1)!=0&&hex.substr(i,1)!='a'&&hex.substr(i,1)!='b'&&hex.substr(i,1)!='c'&&hex.substr(i,1)!='d'&&hex.substr(i,1)!='e'&&hex.substr(i,1)!='f') return false;
 }
 return true;
}

function getEleHeight(id){
 return getObject(id).offsetHeight;
}

function getEleWidth(id){
 return getObject(id).offsetWidth;
}

var md5= function (string) {
 function RotateLeft(lValue, iShiftBits) {
  return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
 }

 function AddUnsigned(lX,lY) {
  var lX4,lY4,lX8,lY8,lResult;
  lX8 = (lX & 0x80000000);
  lY8 = (lY & 0x80000000);
  lX4 = (lX & 0x40000000);
  lY4 = (lY & 0x40000000);
  lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
  if (lX4 & lY4) {
   return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
  }
  if (lX4 | lY4) {
   if (lResult & 0x40000000) {
    return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
   } else {
    return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
   }
  } else {
   return (lResult ^ lX8 ^ lY8);
  }
 }

 function F(x,y,z) { return (x & y) | ((~x) & z); }
 function G(x,y,z) { return (x & z) | (y & (~z)); }
 function H(x,y,z) { return (x ^ y ^ z); }
 function I(x,y,z) { return (y ^ (x | (~z))); }

 function FF(a,b,c,d,x,s,ac) {
  a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
  return AddUnsigned(RotateLeft(a, s), b);
 };

 function GG(a,b,c,d,x,s,ac) {
  a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
  return AddUnsigned(RotateLeft(a, s), b);
 };

 function HH(a,b,c,d,x,s,ac) {
  a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
  return AddUnsigned(RotateLeft(a, s), b);
 };

 function II(a,b,c,d,x,s,ac) {
  a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
  return AddUnsigned(RotateLeft(a, s), b);
 };

 function ConvertToWordArray(string) {
  var lWordCount;
  var lMessageLength = string.length;
  var lNumberOfWords_temp1=lMessageLength + 8;
  var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
  var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
  var lWordArray=Array(lNumberOfWords-1);
  var lBytePosition = 0;
  var lByteCount = 0;
  while ( lByteCount < lMessageLength ) {
   lWordCount = (lByteCount-(lByteCount % 4))/4;
   lBytePosition = (lByteCount % 4)*8;
   lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
   lByteCount++;
  }
  lWordCount = (lByteCount-(lByteCount % 4))/4;
  lBytePosition = (lByteCount % 4)*8;
  lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
  lWordArray[lNumberOfWords-2] = lMessageLength<<3;
  lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
  return lWordArray;
 };

 function WordToHex(lValue) {
  var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
  for (lCount = 0;lCount<=3;lCount++) {
   lByte = (lValue>>>(lCount*8)) & 255;
   WordToHexValue_temp = "0" + lByte.toString(16);
   WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
  }
  return WordToHexValue;
 };

 function Utf8Encode(string) {
  string = string.replace(/\r\n/g,"\n");
  var utftext = "";
  for (var n = 0; n < string.length; n++) {
   var c = string.charCodeAt(n);
   if (c < 128) {
    utftext += String.fromCharCode(c);
   }else if((c > 127) && (c < 2048)) {
    utftext += String.fromCharCode((c >> 6) | 192);
    utftext += String.fromCharCode((c & 63) | 128);
   }else {
    utftext += String.fromCharCode((c >> 12) | 224);
    utftext += String.fromCharCode(((c >> 6) & 63) | 128);
    utftext += String.fromCharCode((c & 63) | 128);
   }
  }
  return utftext;
 };

 var x=Array();
 var k,AA,BB,CC,DD,a,b,c,d;
 var S11=7, S12=12, S13=17, S14=22;
 var S21=5, S22=9 , S23=14, S24=20;
 var S31=4, S32=11, S33=16, S34=23;
 var S41=6, S42=10, S43=15, S44=21;
 string = Utf8Encode(string);
 x = ConvertToWordArray(string);
 a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
 for (k=0;k<x.length;k+=16) {
  AA=a; BB=b; CC=c; DD=d;
  a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
  d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
  c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
  b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
  a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
  d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
  c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
  b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
  a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
  d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
  c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
  b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
  a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
  d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
  c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
  b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
  a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
  d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
  c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
  b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
  a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
  d=GG(d,a,b,c,x[k+10],S22,0x2441453);
  c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
  b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
  a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
  d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
  c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
  b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
  a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
  d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
  c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
  b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
  a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
  d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
  c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
  b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
  a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
  d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
  c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
  b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
  a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
  d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
  c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
  b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
  a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
  d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
  c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
  b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
  a=II(a,b,c,d,x[k+0], S41,0xF4292244);
  d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
  c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
  b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
  a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
  d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
  c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
  b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
  a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
  d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
  c=II(c,d,a,b,x[k+6], S43,0xA3014314);
  b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
  a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
  d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
  c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
  b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
  a=AddUnsigned(a,AA);
  b=AddUnsigned(b,BB);
  c=AddUnsigned(c,CC);
  d=AddUnsigned(d,DD);
 }
 var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
 return temp.toLowerCase();
}
