function addEventToObject(obj,evt,func) {
	var oldhandler = obj[evt];
	obj[evt] = (typeof obj[evt] != 'function') ? func : function(ev){oldhandler(ev);func(ev);};
}
function ajaxRequest(url,func,obj) {
	if (window.XMLHttpRequest) {var req = new XMLHttpRequest();}
	else if (window.ActiveXObject) {try {req = new ActiveXObject("Msxml2.XMLHTTP");}catch(e) {req = new ActiveXObject("Microsoft.XMLHTTP");}}
	if (func) {req.onreadystatechange = function() {func(req,obj);}}
	req.open('GET',url,true);
	req.setRequestHeader('X-Requested-With','XMLHttpRequest');
	req.setRequestHeader('If-Modified-Since','Wed, 15 Nov 1995 00:00:00 GMT');
	if (req.overrideMimeType) {req.overrideMimeType("text/xml");}
	req.send(null);
	return false;
}

var rssFetchAndDisplay = {
	aFeeds: [[['hot-news'],['The latest Hot News headlines from Apple'],['<a href="/hotnews/">Hot News RSS Headlines<\/a>'],['../ticker.rss']]],
	iCurrentFeedsItem: 0,
	aNews: new Array(),
	iCurrentNewsItem: 0,
	tTM: null,
	sState: 'hide',
	iCycleCount: 5000,
	iFadeInCount: 230,
	iFadeOutCount: 230,
	Init: function()
		{
		var r = rssFetchAndDisplay;
		r.Create();
		},
/*
	SetXml: function(sUrl)
		{
		var r = rssFetchAndDisplay;
		ajaxRequest(sUrl,r.XmlFetchResponse);
		},
	XmlFetchResponse: function(req)
		{
		var r = rssFetchAndDisplay;
		if (req.readyState == 4) 
			{
			if (req.status == 200)
				{
				if (r.tTM){clearTimeout(r.tTM);}
				} 
			else
				{
				// alert("There was a problem retrieving the XML data:\n\r" + req.statusText);
				}
			}
		},
*/
	Create: function()
		{
		var r = rssFetchAndDisplay;
		r.iCurrentNewsItem = 0,
		r.ParseXMLToArray();
		var oTickerCont = document.getElementById('ticker');
		oTickerCont.innerHTML = "\n\r" + '<div id="tic-item">' + "\n\r" + '<a href="' + r.aNews[r.iCurrentNewsItem].url + '" class="testimonial">' + "\n\r" + '"' + r.aNews[r.iCurrentNewsItem].title + '"<br />' + "\n\r" + '<em>' + r.aNews[r.iCurrentNewsItem].quoteSrc + '</em><br />' + "\n\r" + '</a>' + "\n\r" + '</div>';

/*
		"\n\r"+'<table border="0" cellpadding="0" cellspacing="0" class="'+r.sState+'">'+"\n\r"+'<tr><td id="tic-title"><span>'+r.aFeeds[r.iCurrentFeedsItem][2]+'</span></td><td id="tic-item"><a href="'+r.aNews[r.iCurrentNewsItem].url+'">'+r.aNews[r.iCurrentNewsItem].title+'</a></td></tr>'+"\n\r"+'</table>'+"\n\r";
*/
		
		var oFadeItem = document.getElementById('tic-item').getElementsByTagName('a')[0];
		oFadeItem.style.KHTMLOpacity = 0.999; // Safari<1.2, Konqueror
		oFadeItem.style.MozOpacity = 0.999; // Older Mozilla and Firefox
		oFadeItem.style.opacity = 0.999; // Safari 1.2, newer Firefox and Mozilla, CSS3

		var aHrefs = document.getElementById('tic-item').getElementsByTagName('a');
		addEventToObject(aHrefs[0],'onmouseover',r.PauseTicker);
		addEventToObject(aHrefs[0],'onmouseout',r.RestartTicker);
		r.CycleTicker();
		},
	ParseXMLToArray: function()
		{
		var r = rssFetchAndDisplay;

		aItems = new Array();
		aItems[0] = new Array('...we\'ve been revisiting many of the single serve coffee makers... We really still feel the simplehuman Coffee Pod Brewer is one of the best designed machines around.','http://www.simplehuman.com/products/coffee/intro.html?ssc2','singleservecoffee.com');
		aItems[1] = new Array('This isn\'t your Granny\'s coffee maker.','http://www.simplehuman.com/products/coffee/intro.html?top','Gizmodo');
		aItems[2] = new Array('After testing out the simplehuman Pod Brewer for a couple weeks now, we can easily say that it\'s the best single-serve coffee maker we\'ve ever used.','http://www.simplehuman.com/products/coffee/intro.html?uncrate','Uncrate');
		aItems[3] = new Array('After using our simplehuman single cup pod brewer for the past month, we\'re ready to say that this is one of the better designed coffee pod brewers.','http://www.simplehuman.com/products/coffee/intro.html?olive','Daily Olive');

		for (var i=0;i<aItems.length;i++)
			{
			r.aNews[i] = new Array();
			r.aNews[i].title = aItems[i][0];
			r.aNews[i].url = aItems[i][1];
			r.aNews[i].quoteSrc = aItems[i][2];
			}
		},
	PauseTicker: function()
		{
		var r = rssFetchAndDisplay;
		if (r.tTM){clearTimeout(r.tTM)};
		var oFadeItem = document.getElementById('tic-item').getElementsByTagName('a')[0];
		oFadeItem.style.KHTMLOpacity = 0.999; // Safari<1.2, Konqueror
		oFadeItem.style.MozOpacity = 0.999; // Older Mozilla and Firefox
		oFadeItem.style.opacity = 0.999; // Safari 1.2, newer Firefox and Mozilla, CSS3
		//obj.style.zoom = 1; // bizarre ie fix
		//obj.style.filter = 'alpha(opacity:'+obj.fadeCount+')'; // IE/Win
		r.iFadeOutCount = 220;
		},
	RestartTicker: function()
		{
		var r = rssFetchAndDisplay;
		r.iCycleCount = 5000;
		r.CycleTicker();
		},
	CycleTicker: function()
		{
		var r = rssFetchAndDisplay;		
      if (r.tTM){clearTimeout(r.tTM);}
		if (r.iCycleCount < 0)
			{
			r.iCycleCount = 5000;
			r.FadeOut();
			}
		else
			{
			r.iCycleCount -= 220;
			//var iDelay = (r.iCurrentNewsItem == 0) ? 0 : 100;
			r.tTM = setTimeout(function(){r.CycleTicker()},220); 		  
			}
		},
	FadeOut: function()
		{
		var r = rssFetchAndDisplay;
		if (r.tTM){clearTimeout(r.tTM)};                         
		if (r.iFadeOutCount < 0)
			{
			r.iCurrentNewsItem = (r.iCurrentNewsItem < r.aNews.length-1) ? r.iCurrentNewsItem + 1 : 0;
			var oActiveItem = document.getElementById('tic-item');
			oActiveItem.innerHTML = "\n\r" + '<a href="' + r.aNews[r.iCurrentNewsItem].url + '" class="testimonial">' + "\n\r" + '"' + r.aNews[r.iCurrentNewsItem].title + '"<br />' + "\n\r" + '<em>' + r.aNews[r.iCurrentNewsItem].quoteSrc + '</em><br />' + "\n\r" + '</a>' + "\n\r";
  		var oFadeItem = document.getElementById('tic-item').getElementsByTagName('a')[0];
  		oFadeItem.style.KHTMLOpacity = 0.999; // Safari<1.2, Konqueror
  		oFadeItem.style.MozOpacity = 0.999; // Older Mozilla and Firefox
  		oFadeItem.style.opacity = 0.999; // Safari 1.2, newer Firefox and Mozilla, CSS3
			var aHrefs = document.getElementById('tic-item').getElementsByTagName('a');
			addEventToObject(aHrefs[0],'onmouseover',r.PauseTicker);
			addEventToObject(aHrefs[0],'onmouseout',r.RestartTicker);
			r.iFadeOutCount = 230;
			r.CycleTicker();
			}
		else
			{
			r.iFadeOutCount -= 10;
			if (r.iFadeOutCount <= 220)
				{
				var oFadeItem = document.getElementById('tic-item').getElementsByTagName('a')[0];
				var opac = ((r.iFadeOutCount/220) > 0.999) ? 0.999 : (r.iFadeOutCount/220);
				oFadeItem.style.KHTMLOpacity = opac; // Safari<1.2, Konqueror
				oFadeItem.style.MozOpacity = opac; // Older Mozilla and Firefox
				oFadeItem.style.opacity = opac; // Safari 1.2, newer Firefox and Mozilla, CSS3
				//obj.style.zoom = 1; // bizarre ie fix
				//obj.style.filter = 'alpha(opacity:'+obj.fadeCount+')'; // IE/Win
				}
			r.tTM = setTimeout(function(){r.FadeOut()},50);   
			}
		}
	}
	
addEventToObject(window,'onload',rssFetchAndDisplay.Init); 
