
var maxItems = 10;

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
}

function rss_ticker(divId, rss_feed){
this.tickerid=divId //ID of ticker div to display information
this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over ticker (and pause it if it is)
this.pointer=0
this.rss_feed = rss_feed;
this.ajaxobj=createAjaxObj()
document.write('<ul id="'+divId+'">Initializing ticker...</ul>')
this.getAjaxcontent()

}

rss_ticker.prototype.getAjaxcontent=function(){
if (this.ajaxobj){
var instanceOfTicker=this
this.ajaxobj.onreadystatechange=function(){instanceOfTicker.initialize()}
this.ajaxobj.open('GET',this.rss_feed, true);
this.ajaxobj.send(null)
}
}

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
		return
		}
	var instanceOfTicker=this
	this.feeditems=xmldata.getElementsByTagName("item")

	//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)
			if(this.feeditems[i].getElementsByTagName("description")[0].firstChild != null)
			{
				this.feeditems[i].setAttribute("cdescription", this.feeditems[i].getElementsByTagName("description")[0].firstChild.nodeValue)
			}
		}
		this.rotatemsg();
	}
}
}

rss_ticker.prototype.rotatemsg=function(){
	var tickerDiv=document.getElementById(this.tickerid)
	tickerDiv.innerHTML= '';
	var numberitems = this.feeditems.length;
	if(numberitems > maxItems) {
		numberitems = maxItems;
	}
		
	for (var i=0; i<numberitems; i++){
		this.pointer = i;
		tickerDiv.innerHTML= tickerDiv.innerHTML + this.GenerateHeader();
		tickerDiv.innerHTML= tickerDiv.innerHTML + this.GenerateTitle(this.feeditems[this.pointer].getAttribute("ctitle"),this.feeditems[this.pointer].getAttribute("clink"));
		if(this.feeditems[this.pointer].getAttribute("cdescription") != null)
		{
			tickerDiv.innerHTML= tickerDiv.innerHTML + this.GenerateDescription(this.feeditems[this.pointer].getAttribute("cdescription"));
		}
		tickerDiv.innerHTML= tickerDiv.innerHTML + this.GenerateFooter();
	}
}

rss_ticker.prototype.GenerateHeader = function(){
	return '';
}

rss_ticker.prototype.GenerateFooter = function(){
	return '';
}

rss_ticker.prototype.GenerateTitle = function(title,link){
	return '<li class="icn goto"><a href="'+ link +'">'+ title +'</a></li>';
}

rss_ticker.prototype.GenerateDescription = function(description){
	return '';
}

