/*
RSS feed that allows clicking on the article title to show the results in the displayed area
*/

//URL to "scrollerbridge.php" on your server:
var bridgepath="scripts/lastrss/scrollerbridge.php"

// tracks whether or not a particular description is displayed 
// so we can toggle it on or off 
var displayedDescriptions = new Array()



function formatAllRSSHeaders (tickerid, RSSID, toggleMsg)
{
var curEl = 0
if (rsscontentdata == undefined )
{ 
return "" 
}

var top = rsscontentdata[tickerid].length
var res = "" 
while (curEl < top) {
res = res + formathiddenrss (tickerid, curEl, RSSID, toggleMsg)
curEl = curEl + 1
}

document.getElementById(tickerid).innerHTML= res  

}


function formathiddenrss (divid, msgnumber, rssid, toggleMsg){

var rsscontent=rsscontentdata[divid][msgnumber]
var linktitle= ' <a href ="javascript: formatAllRSSHeaders(\'' + 
	divid + '\', \''  + 
	rssid + '\', \'' + msgnumber + '\'); "> \n ' + 
	decodeURIComponent(rsscontent.title) + '<\a> \n' + 
	"\n<p> \n"	
	
if (toggleMsg == msgnumber) 
{ 
if (displayedDescriptions[divid][msgnumber] == 0) 
{ displayedDescriptions[divid][msgnumber] = 1 } 
else 
{ displayedDescriptions[divid][msgnumber] = 0 } 
}

if (displayedDescriptions[divid][msgnumber] == 1)
{ linktitle = linktitle + decodeURIComponent(rsscontent.description) + "\n<p> \n" } 

return linktitle
}



var rsscontentdata=new Array() //global array to hold RSS feeds contents


function rsshiddenbody(RSS_id, divId,toggleMsg){
this.tickerid=divId //ID of ticker div to display information
this.hiddendivpointer=1 //index of message array for hidden div
this.js_is_loaded=0
this.number_of_tries=0
this.RSSID = RSS_id 
this.toggleMsg = toggleMsg 
document.getElementById(this.tickerid).innerHTML="Loading RSS Feed...\n"
if (document.getElementById){ //perform basic DOM browser support
var parameters="id="+encodeURIComponent(RSS_id)+"&divid="+divId+"&bustcache="+new Date().getTime()
rsshiddenbody.getRSScontentJS(bridgepath+"?"+parameters)
return this.do_hiddenonjsload()

}
}

// -------------------------------------------------------------------
// do_onjsload()- Checks if external JS containing RSS feed is loaded yet
// -If not, continue to check until yes, or abort after certain tries.
// -------------------------------------------------------------------

rsshiddenbody.prototype.do_hiddenonjsload=function(){

var rssinstance=this
if (typeof rsscontentdata[this.tickerid]=="undefined" && this.number_of_tries<40){ //if JS array holding RSS content not yet loaded
this.number_of_tries++
setTimeout(function(){rssinstance.do_hiddenonjsload()}, 500) //recheck
}
else if (typeof rsscontentdata[this.tickerid]!="undefined"){ //if JS array has loaded

displayedDescriptions[this.tickerid] = new Array () 
res = ""
for (i=0;i< rsscontentdata[this.tickerid].length; i++)
{
displayedDescriptions[this.tickerid][i] = 0
res = res +  formathiddenrss (this.tickerid, i, this.RSSID, this.toggleMsg)
}
document.getElementById(this.tickerid).innerHTML=res
}


else {
document.getElementById(this.tickerid).innerHTML="Unable to load content. Refresh page to try again. <p>\n"
}
}

// -------------------------------------------------------------------
// getRSScontentJS()- Fetch RSS feed as external JavaScript
// -------------------------------------------------------------------

rsshiddenbody.getRSScontentJS=function(scripturl){
var scriptref=document.createElement('script')
scriptref.setAttribute("type","text/javascript")
scriptref.setAttribute("src", scripturl)
document.getElementsByTagName("head").item(0).appendChild(scriptref)
}


rsshiddenbody.getCSSpadding=function(tickerobj){ //get CSS padding value, if any
if (tickerobj.currentStyle)
return tickerobj.currentStyle["paddingTop"]
else if (window.getComputedStyle) //if DOM2
return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-top")
else
return 0
}

