function display(what,where){
  if(!where){
    var where = 'message_box';
  }
  if(document.getElementById(where)){
    document.getElementById(where).innerHTML = what;
  }
}
function addEvent(obj, evType, fn){if (obj.addEventListener){obj.addEventListener(evType, fn, false);return true;}else if(obj.attachEvent){var r = obj.attachEvent("on"+evType, fn);return r;}else{return false;}}
function findPosX(obj){var curleft=0;if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft;obj=obj.offsetParent;}}else if(obj.x){curleft+=obj.x;}return curleft;}
function findPosY(obj){var curtop=0;if(obj.offsetParent){while(obj.offsetParent){curtop+=obj.offsetTop;obj=obj.offsetParent;}}else if(obj.y){curtop+=obj.y;}return curtop;}

function in_list(list,findthis){for(var i=0;i<list.length;i++){if(list[i]==findthis){return i}}return -1}
function join_lists(l1,l2){var f=[];for(var i=0;i<l1.length;i++){f.push(l1[i]);}for(var i=0;i<l2.length;i++){f.push(l2[i]);}return f}
function shuffle(l){
  // Shuffles a list!
  var x = new Array(l.length);
  for(var i=0;i<x.length;i++){
    x[i] = i;
  }
  var z = 0,r = 0,t = [];
  for(var e=0;e<x.length;e++){
    z = 0;
    while(z==0){
      r=Math.floor(Math.random()*x.length)
      if(in_list(t,x[r])==-1){
        t.push(x[r])
        z=1
      }
    }
  }
  for(var i=0;i<t.length;i++){
    x[i]=l[t[i]]
  }
  return x
}

function toggle(szDivID,onoff){var obj=document.getElementById(szDivID).style;var isV=obj.visibility=="hidden"?0:1;obj.display=(onoff?(onoff=="on"?"inline":"none"):(isV?"none":"inline"));obj.visibility=(onoff?(onoff=="on"?"visible":"hidden"):(isV?"hidden":"visible"));}
function getHTTPObject() { var xmlhttp; /*@cc_on @if (@_jscript_version >= 5) try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } @else xmlhttp = false; @end @*/ if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { try { xmlhttp = new XMLHttpRequest(); } catch (e) { xmlhttp = false; } } return xmlhttp; }
var http = getHTTPObject(); // We create the HTTP Object

function fade(elem_name,fading,percent,increase,delay,onoff,target){
  var elem = document.getElementById(elem_name);
  if(!fading){if(onoff=="on"){toggle(elem_name,'on')}window.setTimeout("fade('"+elem_name+"',1,"+percent+","+increase+","+delay+",'"+onoff+"',"+target+")",delay);display("Fading");}
  else{
    percent += increase;
    if(percent > 100 || percent < 0 || ( increase < 0 && percent < target ) || ( increase > 0 && percent > target ) ){
      if(increase<0){
        percent = percent<target?target:1;
      }
      else if(increase>0){
        percent = percent>target?target:100;
      }
      fading = 0;
      if(onoff=="off"){toggle(elem_name,'off')}
      display("Done Fading")
    }
    else{fading = 1;display("Fading: "+percent)}
    if(elem.filters){elem.filters.alpha.opacity = percent;}
    else if(elem.style.opacity){elem.style.opacity = percent / 100;}
    else{elem.style.MozOpacity = percent / 100;}
    if(fading == 1){window.setTimeout("fade('"+elem_name+"',1,"+percent+","+increase+","+delay+",'"+onoff+"',"+target+")",delay);}
  }
}

function shade(elem_name,start,finish,increase,delay,code,shading,position){
  //alert(elem_name +" "+ start +" "+ finish +" "+ increase +" "+ delay +" "+ code +" "+ shading +" "+ position);
  function done(){
    position=finish;
    shading = 0;
    display("Done Shading");
    eval(code);
  }
  var elem = document.getElementById(elem_name);
  if(!shading){
    window.setTimeout("shade('"+elem_name+"',"+start+","+finish+","+increase+","+delay+","+code+",1,"+start+")",delay);
    elem.style.height=start;
    display("Shading");
  }
  else{
    position += increase;
    if(increase<0&&shading){if(position<=finish){done()}}
    else if(increase>=0&&shading){if(position>=finish){done()}}
    else{shading = 1;display("Shading: "+position)}
    elem.style.height = position;
    if(shading == 1){
      window.setTimeout("shade('"+elem_name+"',"+start+","+finish+","+increase+","+delay+","+code+","+shading+","+position+")",delay);
    }
  }
}

function move(elem_name,start,finish,delay,moving,position,ix,iy){
  var elem = document.getElementById(elem_name);
  if(!moving){
    start = [elem.style.left,elem.style.top]
    var ix = (finish[0]-start[0])/10;
    var iy = (finish[1]-start[1])/10;
    elem.style.left = start[0];
    elem.style.top  = start[1];
    window.setTimeout("move('"+elem_name+"',0,0,"+delay+",1,0,"+ix+","+iy+")",delay);
  }
  else{
    position++;
    elem.style.left += position*ix;
    elem.style.top  += position*iy;
    if(position>=10){moving=0;display("Done")}
    else{moving = 1;}
    if(moving == 1){
      window.setTimeout("move('"+elem_name+"',0,0,"+delay+",1,"+position+","+ix+","+iy+")",delay);
    }
  }
}

