var fadeObjects = new Object();
var fadeTimers = new Object();
var fadeClick = new Object();

function fade(object, fade_to){

    if (object != "[object]") eval("object="+object);

    //const wont work :'(
    var delta = 10;

    //cancel all other fades acording to this object
    clearTimeout(fadeTimers[object.sourceIndex]);


    //determine if its a fade in or out.
    var direction = 1;
    if (fade_to-object.filters.alpha.opacity < 0){
        direction = -1;
    }

    if (direction == 1) {
      if (object.filters.alpha.opacity+delta >= fade_to) {
        object.filters.alpha.opacity=fade_to;
        return;
      }
      else
        object.filters.alpha.opacity+=delta;
    }
    else {
      if (object.filters.alpha.opacity-delta <= fade_to) {
        object.filters.alpha.opacity=fade_to;
        return;
      }
      else
        object.filters.alpha.opacity-=delta;
    }

    fadeObjects[object.sourceIndex]=object;
    fadeTimers[object.sourceIndex]=setTimeout("fade(fadeObjects["+object.sourceIndex+"],"+fade_to+")",10);
    //asdf.innerHTML = fadeTimers[object.sourceIndex];
  }

function fadeclick(object) {
  if (fadeClick[object.sourceIndex]) {
    fadeClick[object.sourceIndex]=0;
    fade(object, 0);
  }
  else {
    fadeClick[object.sourceIndex]=1;
    fade(object, 100);
  }
}

function show(object,cur) {
        document.getElementById(cur).style.display = 'none';
        document.getElementById(object).style.display = 'block';
}
