/*
 ======================================================================
 RSS JavaScript Ticker object
 Author: George at JavaScriptKit.com/ DynamicDrive.com
 Created: Feb 5th, 2006. Updated: Feb 5th, 2006
 ======================================================================
*/

function createAjaxObj()
{
  var httprequest = false;
  if (window.XMLHttpRequest)
  { // if Mozilla, Safari etc
    httprequest = new XMLHttpRequest();
    if (httprequest.overrideMimeType)
    httprequest.overrideMimeType('text/xml');
  }
  else if (window.ActiveXObject)
  { // if IE
    try 
    {
      httprequest = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (e)
    {
      try
      {
        httprequest = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e)
      {}
    }
  }
  return httprequest
}

// -------------------------------------------------------------------
// Main RSS Ticker Object function
// rss_ticker(RSS_id, cachetime, divId, divClass, speed, optionalswitch)
// -------------------------------------------------------------------

function rss_ticker(RSS_id, cachetime, divId, divClass, speed, optionalswitch)
{
  this.RSS_id = RSS_id; //Array key indicating which RSS feed to display
  this.cachetime = cachetime; //Time to cache feed, in minutes. 0=no cache.
  this.tickerid = divId; //ID of ticker div to display information
  this.speed= speed; //Delay between msg change, in miliseconds.
  this.logicswitch = (typeof optionalswitch!="undefined") ? optionalswitch : -1;
  this.mouseoverBol = 0; //Boolean to indicate whether mouse is currently over ticker (and pause it if it is)
  this.pointer = 0;
  this.ajaxobj = createAjaxObj();
  document.write('<div  id="'+divId+'" class="'+divClass+'">Initializing ticker...</div>');
  this.getAjaxcontent();
}

// -------------------------------------------------------------------
// getAjaxcontent()- Makes asynchronous GET request to "rssfetch.php" with the supplied parameters
// -------------------------------------------------------------------

rss_ticker.prototype.getAjaxcontent=function()
{
  if (this.ajaxobj)
  {
    var instanceOfTicker = this;
    // mad:modified
    //var parameters="id="+encodeURIComponent(this.RSS_id)+"&cachetime="+this.cachetime+"&bustcache="+new Date().getTime()
    //this.ajaxobj.onreadystatechange=function(){instanceOfTicker.initialize()}
    //this.ajaxobj.open('GET', "rssfetch.php?"+parameters, true)

    this.ajaxobj.onreadystatechange = function(){instanceOfTicker.initialize()};
    this.ajaxobj.open('GET', this.RSS_id, true);

    this.ajaxobj.send(null)
  }
}

// -------------------------------------------------------------------
// initialize()- Initialize ticker method.
// -Gets contents of RSS content and parse it using JavaScript DOM methods 
// -------------------------------------------------------------------

rss_ticker.prototype.initialize=function()
{ 
  if (this.ajaxobj.readyState == 4)
  { //if request of file completed
    if (this.ajaxobj.status == 200)
    { //if request was successful
      var xmldata=this.ajaxobj.responseXML;
      if(xmldata.getElementsByTagName("item").length == 0)
      { //if no <item> elements found in returned content
        //document.getElementById(this.tickerid).innerHTML = "<b>Error</b> fetching remote RSS feed!<br />" + this.ajaxobj.responseText;
        document.getElementById(this.tickerid).innerHTML = "";
        return;
      }
      var instanceOfTicker = this;
      this.feeditems = xmldata.getElementsByTagName("item");
      this.scrollingText="";

      //Cycle through RSS XML object and store each peice of the item element as an attribute of the element
      for (var i=0; i<this.feeditems.length; i++)
      {
        this.feeditems[i].setAttribute("ctitle", this.feeditems[i].getElementsByTagName("title")[0].firstChild.nodeValue);
        this.feeditems[i].setAttribute("clink", this.feeditems[i].getElementsByTagName("link")[0].firstChild.nodeValue);
        //this.feeditems[i].setAttribute("cdescription", this.feeditems[i].getElementsByTagName("description")[0].firstChild.nodeValue);
        this.scrollingText += ' <a href="'+this.feeditems[i].getAttribute("clink")+'"><font color="#0000FF">'+this.feeditems[i].getAttribute("ctitle")+'</font></a> &nbsp;&nbsp;';
		
      }
      document.getElementById(this.tickerid).onmouseover = function(){instanceOfTicker.mouseoverBol=1};
      document.getElementById(this.tickerid).onmouseout = function(){instanceOfTicker.mouseoverBol=0};
      this.rotatemsg()
    }
  }
}

// -------------------------------------------------------------------
// rotatemsg()- Rotate through RSS messages and displays them
// -------------------------------------------------------------------

rss_ticker.prototype.rotatemsg=function()
{
  var instanceOfTicker = this;
  
  //if (this.mouseoverBol == 1) //if mouse is currently over ticker, do nothing (pause it)
    //setTimeout(function(){instanceOfTicker.rotatemsg()}, 100)
  //else
  //{
    var tickerDiv=document.getElementById(this.tickerid);
    tickerDiv.innerHTML='<MARQUEE bgcolor="#FFFFFF" onMouseOver="this.stop();" onMouseOut="this.start();" direction="left" loop="-1" SCROLLAMOUNT="'+this.speed+'" width="100%">'+this.scrollingText+'</MARQUEE>';
	//this.scrollingText=this.scrollingText.substring(1) + this.scrollingText.substring(0,1);
	//setTimeout(function(){instanceOfTicker.rotatemsg()}, this.delay); //update container every second
  //}
}

