function virtualpaginate(className,chunksize,elementType){var elementType=(typeof elementType=="undefined")?"div":elementType
this.pieces=virtualpaginate.collectElementbyClass(className,elementType)
this.chunksize=(typeof chunksize=="undefined")?1:(chunksize>0&&chunksize<this.pieces.length)?chunksize:this.pieces.length
this.pagecount=Math.ceil(this.pieces.length/this.chunksize)
this.showpage(-1)
this.currentpage=0
this.showpage(this.currentpage)}
virtualpaginate.collectElementbyClass=function(classname,element){var classnameRE=new RegExp("(^|\\s+)"+classname+"($|\\s+)","i")
var pieces=[]
var alltags=document.getElementsByTagName(element)
for(var i=0;i<alltags.length;i++){if(typeof alltags[i].className=="string"&&alltags[i].className.search(classnameRE)!=-1)
pieces[pieces.length]=alltags[i]}
return pieces}
virtualpaginate.prototype.showpage=function(pagenumber){var totalitems=this.pieces.length
var showstartindex=pagenumber*this.chunksize
var showendindex=showstartindex+this.chunksize-1
for(var i=0;i<totalitems;i++){if(i>=showstartindex&&i<=showendindex)
this.pieces[i].style.display="block"
else
this.pieces[i].style.display="none"}
this.currentpage=parseInt(pagenumber)
if(this.cpspan)
this.cpspan.innerHTML='Page '+(this.currentpage+1)+'/'+this.pagecount}
virtualpaginate.prototype.paginate_build_selectmenu=function(paginatedropdown){var instanceOfBox=this
this.selectmenupresent=1
for(var i=0;i<this.pagecount;i++)
paginatedropdown.options[i]=new Option("Page "+(i+1)+" of "+this.pagecount,i)
paginatedropdown.selectedIndex=this.currentpage
paginatedropdown.onchange=function(){instanceOfBox.showpage(this.selectedIndex)}}
virtualpaginate.prototype.paginate_build_regularlinks=function(paginatelinks){var instanceOfBox=this
for(var i=0;i<paginatelinks.length;i++){var currentpagerel=paginatelinks[i].getAttribute("rel")
if(currentpagerel=="previous"||currentpagerel=="next"||currentpagerel=="first"||currentpagerel=="last")
paginatelinks[i].onclick=function(){instanceOfBox.navigate(this.getAttribute("rel"))
return false}}}
virtualpaginate.prototype.paginate_build_flatview=function(flatviewcontainer){var instanceOfBox=this
var flatviewhtml=""
for(var i=0;i<this.pagecount;i++)
flatviewhtml+='<a href="#flatview" rel="'+i+'">'+(i+1)+'</a> '
flatviewcontainer.innerHTML=flatviewhtml
this.flatviewlinks=flatviewcontainer.getElementsByTagName("a")
for(var i=0;i<this.flatviewlinks.length;i++){this.flatviewlinks[i].onclick=function(){instanceOfBox.flatviewlinks[instanceOfBox.currentpage].className=""
this.className="selected"
instanceOfBox.showpage(this.getAttribute("rel"))
return false}}
this.flatviewlinks[this.currentpage].className="selected"
this.flatviewpresent=true}
virtualpaginate.prototype.paginate_build_cpinfo=function(cpspan){this.cpspan=cpspan
cpspan.innerHTML='Page '+(this.currentpage+1)+'/'+this.pagecount}
virtualpaginate.prototype.buildpagination=function(divid){var instanceOfBox=this
var paginatediv=document.getElementById(divid)
if(this.chunksize==this.pieces.length){paginatediv.style.display="none"
return}
var paginationcode=paginatediv.innerHTML
if(paginatediv.getElementsByTagName("select").length>0)
this.paginate_build_selectmenu(paginatediv.getElementsByTagName("select")[0])
if(paginatediv.getElementsByTagName("a").length>0)
this.paginate_build_regularlinks(paginatediv.getElementsByTagName("a"))
var allspans=paginatediv.getElementsByTagName("span")
for(var i=0;i<allspans.length;i++){if(allspans[i].className=="flatview")
this.paginate_build_flatview(allspans[i])
else if(allspans[i].className=="paginateinfo")
this.paginate_build_cpinfo(allspans[i])}
this.paginatediv=paginatediv}
virtualpaginate.prototype.navigate=function(keyword){if(this.flatviewpresent)
this.flatviewlinks[this.currentpage].className=""
if(keyword=="previous")
this.currentpage=(this.currentpage>0)?this.currentpage-1:(this.currentpage==0)?this.pagecount-1:0
else if(keyword=="next")
this.currentpage=(this.currentpage<this.pagecount-1)?this.currentpage+1:0
else if(keyword=="first")
this.currentpage=0
else if(keyword=="last")
this.currentpage=this.pieces.length-1
this.showpage(this.currentpage)
if(this.selectmenupresent)
this.paginatediv.getElementsByTagName("select")[0].selectedIndex=this.currentpage
if(this.flatviewpresent)
this.flatviewlinks[this.currentpage].className="selected"}
var rssoutputscript="rssbox/main.php"
rssoutputscript="http://"+window.location.hostname+"/data/rssbox/main.php"
function rssdisplaybox(RSS_id,divId,divClass){this.loadingHTML='<img src="'+rssoutputscript.replace('main.php','')+'/loading.gif" /> Initializing RSS Display Box...'
this.RSS_id=RSS_id
this.boxid=divId
this.boxclass=divClass
this.cachetime=30
this.template=""
this.paginatemode="auto"
this.pos_or_div="bottom"
document.write('<div id="'+divId+'-maincontainer"></div>')}
rssdisplaybox.getvirtualpaginate=function(){}
rssdisplaybox.getvirtualpaginate.prototype=virtualpaginate.prototype
rssdisplaybox.prototype=new rssdisplaybox.getvirtualpaginate
rssdisplaybox.prototype.constructor=rssdisplaybox
rssdisplaybox.prototype.set_items_shown=function(items_fetched,items_shown_per_page){this.utotalitems=parseInt(items_fetched)
if(typeof items_shown_per_page!="undefined"&&(items_shown_per_page<items_fetched||items_fetched==0))
this.uchunksize=parseInt(items_shown_per_page)}
rssdisplaybox.prototype.set_template=function(tname){this.template=tname.toLowerCase()}
rssdisplaybox.prototype.set_cache_time=function(minutes){this.cachetime=parseInt(minutes)}
rssdisplaybox.prototype.setpagination=function(paginatemode,pos_or_div){this.paginatemode=paginatemode
this.pos_or_div=pos_or_div}
rssdisplaybox.prototype.start=function(){var rssboxhtml='<div id="'+this.boxid+'" class="'+this.boxclass+'"></div>'
if(typeof this.uchunksize!="undefined"&&this.paginatemode=="auto")
document.getElementById(this.boxid+'-maincontainer').innerHTML=this.rssboxhtmlauto(rssboxhtml,this.pos_or_div)
else
document.getElementById(this.boxid+'-maincontainer').innerHTML=rssboxhtml
if(typeof this.uchunksize!="undefined")
this.paginatedivid=(this.paginatemode=="auto")?this.boxid+"-paginatediv":this.pos_or_div
this.ajaxobj=createAjaxObj()
this.getAjaxcontent()}
rssdisplaybox.prototype.rssboxhtmlauto=function(rssboxhtml,position){var paginatedivauto='<div id="'+this.boxid+'-paginatediv" class="rsspaginate"><form><a href="#" rel="previous">Prev</a> <select class="paginateselect"></select> <a href="#" rel="next">Next</a></form></div>'
var rssboxhtmlauto=(position=="top")?paginatedivauto+rssboxhtml:rssboxhtml+paginatedivauto
return rssboxhtmlauto}
rssdisplaybox.prototype.getAjaxcontent=function(){if(this.ajaxobj){var instanceOfBox=this
var parameters="id="+encodeURIComponent(this.RSS_id)+"&cachetime="+this.cachetime+"&limit="+this.utotalitems+"&template="+this.template+"&bustcache="+new Date().getTime()
document.getElementById(this.boxid).innerHTML=this.loadingHTML
this.loadingHTML=null
this.ajaxobj.onreadystatechange=function(){instanceOfBox.initialize()}
this.ajaxobj.open('GET',rssoutputscript+"?"+parameters,true)
this.ajaxobj.send(null)}}
rssdisplaybox.prototype.initialize=function(){if(this.ajaxobj.readyState==4){if(this.ajaxobj.status==200){var rsscontent=this.ajaxobj.responseText
if(typeof this.uchunksize!="undefined"){document.getElementById(this.boxid).style.visibility="hidden"
document.getElementById(this.boxid).innerHTML=rsscontent
this.gatheritems()}
else
document.getElementById(this.boxid).innerHTML=rsscontent}
else
document.getElementById(this.boxid).innerHTML=this.ajaxobj.responseText}}
rssdisplaybox.prototype.gatheritems=function(){var rssdivtags=document.getElementById(this.boxid).getElementsByTagName("div")
this.pieces=[]
for(var i=0;i<rssdivtags.length;i++){if(rssdivtags[i].className=="rsscontainer")
this.pieces[this.pieces.length]=rssdivtags[i]}
this.pagecount=Math.ceil(this.pieces.length/this.uchunksize)
for(var i=0;i<this.pieces.length;i++)
this.pieces[i].style.display="none"
this.chunksize=(this.uchunksize>0&&this.uchunksize<this.pieces.length)?this.uchunksize:this.pieces.length
this.pagecount=Math.ceil(this.pieces.length/this.chunksize)
this.showpage(-1)
this.currentpage=0
this.showpage(this.currentpage)
if(this.chunksize!=this.pieces.length)
this.buildpagination(this.paginatedivid)
else
document.getElementById(this.paginatedivid).style.display="none"
document.getElementById(this.boxid).style.visibility="visible"}
function createAjaxObj(){var httprequest=false
if(window.XMLHttpRequest){httprequest=new XMLHttpRequest()}
else if(window.ActiveXObject){try{httprequest=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){try{httprequest=new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){}}}
return httprequest}