/*  
  cycler.js
  (c) Copyright Giant Glass 2005. 
   requires enumeraAjax.js
*/

var isGecko = navigator.userAgent.toLowerCase().indexOf('gecko') != -1;
var qel, quotes, cycleThread;
var tries = 0, freq = 30, qindex = 1, opMax = isGecko ? 0.999 : 1.0, tCycle = 7, tFade = 1; // sec
function cycler () { 
  var dtCurr = new Date(); 
  var tElapsed = (dtCurr.getTime() - window.dtCyclerStart.getTime()) / 1000;
  var tMod = Math.min(tElapsed, tCycle);
  var op = Math.min(Math.min(tMod, tCycle - tMod), opMax);
  setOpacity(qel, op);  
  if (tElapsed >= tCycle) {
    window.dtCyclerStart = new Date();
    insertQuote(getQuote());
  }
//document.getElementById('temp').innerHTML = 'elapsed = [' + tElapsed + ']';  
}
function setOpacity (element, alpha) {
  element.style.MozOpacity = alpha;
  element.style.opacity = alpha;
  element.style.filter = "Alpha(opacity=" + parseInt(100 * alpha) + ")";
}
function init () {
  if (isCompatible()) {
    qel = document.getElementById('divQuoter');
    getQuotes();
  }  
}
function isCompatible () {
  return (document.createElement && document.getElementById 
    && document.getElementById('divQuoter').innerHTML && isAjaxCompat());
}
function getQuotes () {
  AjaxBase.getHTML('data/quotes.html', 'GET', '', loadQuotes, failQuotes);
}
function loadQuotes (data) {
  quotes = data ? data.split('||') : new Array();
  qindex = parseInt(Math.random() * quotes.length);
  insertQuote(getQuote());
  window.dtCyclerStart = new Date(); 
  cycleThread = setInterval(cycler, freq);
}
function failQuotes () {
  if (++tries >= 3) {
    //clearInterval(cycleThread);
    setOpacity(qel, 1.0);
  }
  else 
    getQuotes();
}
function getQuote () {
  qindex++;
  if (qindex >= quotes.length) qindex = 0;
  return quotes.length ? quotes[qindex] : '';
}
function insertQuote (quote) {
  qel.innerHTML = quote;
}
