// Browser safe opacity handling function

function ticker(divID, delay, url){
   this.url = url;
   this.divID = divID;
   this.tickerDiv = document.getElementById(this.divID);
   this.delay = delay;
   this.getTicker();
   this.fadeIn = false;
   this.fadeOut = true;
   var intervalID = setInterval(this.getTicker.bind(this), delay); 
   var instanceOfTicker = this;

   this.tickerDiv.onmouseover=function(){
      clearInterval(intervalID);
   }
   this.tickerDiv.onmouseout=function(){
      intervalID = setInterval(instanceOfTicker.getTicker.bind(instanceOfTicker), delay); 
   }
}

/****************************************/

ticker.prototype.setOpacity = function(value) {
   this.tickerDiv.style.opacity = value / 10;
   this.tickerDiv.style.filter = 'alpha(opacity=' + value * 10 + ')';
}

/****************************************/

ticker.prototype.fadeInMyDiv = function() {
   for( var i = 0 ; i <= 100 ; i++ ){
      setTimeout(this.setOpacity.bind(this, (i / 10)) , 8 * i);
   }
}

/****************************************/

ticker.prototype.fadeOutMyDiv = function() {
   for( var i = 0 ; i <= 100 ; i++ ) {
      setTimeout(this.setOpacity.bind(this, (10 - i / 10)), 8 * i);
   }
   setTimeout(this.fireLoad.bind(this),1000);   
}

/****************************************/

ticker.prototype.fireLoad = function(){
   sendRequest(this.url, this.changeContent.bind(this));   
}

/****************************************/



/****************************************/
      
ticker.prototype.getTicker = function(){
   this.fadeOutMyDiv();
}
      
ticker.prototype.changeContent = function(req){
   if (req.status == 200){
      this.setOpacity(0);
      this.tickerDiv.innerHTML = req.responseText;
      this.fadeInMyDiv();
   }
}