var content = new Array();
var content_amount = 0;

function CrossFade(ssdiv, divone, divtwo){
  this.id = CrossFade.Instances.length;
  
  CrossFade.Instances[this.id] = this;
  this.step = 1; 

  this.div = document.getElementById(ssdiv);
  this.t1 = 1;
  this.t2 = 1;
  this.t3 = 1;
  if(divone == null) this.div1 = 'crossFade1';
  else this.div1 = divone;
  if(divtwo == null) this.div2 = 'crossFade2';
  else this.div2 = divtwo;
  
  this.divactive;
  this.divinactive;
  
  this.io = 0.2;
  
  this.minop = 0;
  this.maxop = 1;
  
  this.ss1 = 0;
  this.ss2 = 0;
  
  this.fade_up = fadeUp;
  this.fade_down = fadeDown;
  
  this.fade_stop = fadeStop; 
  this.fade_stop2 = fadeStop2; 
  this.fade_stop3 = fadeStop3; 
  
  this.start = fadeStart;
  this.start2 = fadeStart2;
  this.start3 = fadeStart3;
  
  this.setup_divs = setUpDivs;
  
  this.setup_divs();
  
  this.opacity_up = 0.0;
  this.opacity_down = 0.0;  
}

function setUpDivs(){
  this.div.innerHTML = ' <div id="'+this.div1+'"> </div> <div id="'+this.div2+'"> </div>';
  
  this.divactive = document.getElementById(this.div1);
  this.divactive.style.width = "180px";
  this.divactive.style.height = "120px";
  this.divactive.style.backgroundRepeat = 'no-repeat';
  this.divactive.style.backgroundPosition = 'right';
  this.divactive.style.position = 'absolute';
  this.divactive.style.display = 'block';
  this.divactive.style.zIndex = "22";
  
  
  
  this.divinactive = document.getElementById(this.div2);
  this.divinactive.style.width = "180px";
  this.divinactive.style.height = "120px";
  this.divinactive.style.backgroundRepeat = 'no-repeat';
  this.divinactive.style.backgroundPosition = 'right';
  this.divinactive.style.position = 'absolute';
  this.divinactive.style.display = 'block';
  this.divinactive.style.zIndex = "20";
  
  
  // Just for testing
  //this.divactive.style.backgroundColor = 'red';
  //this.divinactive.style.backgroundColor = 'orange';
  this.divinactive.style.opacity = '0.0';
  this.divactive.style.opacity = '0.0';
  this.divactive.style.filter = 'alpha(opacity = 0)';
  this.divinactive.style.filter = 'alpha(opacity = 0)';
  this.divactive.innerHTML = content[content_amount++];
  this.divinactive.innerHTML = content[content_amount++];
}

function fadeStart(){
  if(content_amount == content.length) content_amount = 0;
  this.divactive.style.zIndex = "22"; 
  this.divinactive.style.zIndex = "20"; 
  this.divactive.innerHTML = content[content_amount++];
  this.recall_t1 = this.t1*1000/((this.maxop*100)-(this.minop*100))*this.step;
  this.recall_t2 = this.t2*1000;
  this.recall_t3 = this.t3*1000/((this.maxop*100)-(this.minop*100))*this.step;
  this.myInterval = setInterval('CrossFade.Instances['+this.id+'].fade_up()', this.recall_t1);
  setTimeout('CrossFade.Instances['+this.id+'].fade_stop()', this.t1*1000);
}

function fadeStart2(){
  setTimeout('CrossFade.Instances['+this.id+'].fade_stop2()', this.recall_t2);
}

function fadeStart3(){
  this.myInterval2 = setInterval('CrossFade.Instances['+this.id+'].fade_down()', this.recall_t3);
  setTimeout('CrossFade.Instances['+this.id+'].fade_stop3()', this.t3*1000+(10*this.recall_t3));
  setTimeout('CrossFade.Instances['+this.id+'].start()', (this.t3*1000)-(this.t1*1000*this.io));  
}

function fadeUp(){
   this.divactive.style.opacity = this.opacity_up;
   this.divactive.style.filter = 'alpha(opacity = '+this.opacity_up*100+')';
   this.opacity_up += this.step/100;
}

function fadeDown(){
  this.divinactive.style.opacity = this.opacity_down;
  this.divinactive.style.filter = 'alpha(opacity = '+this.opacity_down*100+')';
  this.opacity_down -= this.step/100;
  
}

function fadeStop(){
  clearInterval(this.myInterval);
  this.opacity_down = this.opacity_up;
  this.opacity_up = 0;
  var divswitch = this.divinactive;
  this.divinactive = this.divactive;
  this.divactive = divswitch;
  
  this.start2();
}

function fadeStop2(){
  this.start3();
}

function fadeStop3(){
  clearInterval(this.myInterval2);
}
         
CrossFade.Instances = new Array();
