var ajaxpageclass=new Object()
ajaxpageclass.loadstatustext="Requesting content, please wait..."
ajaxpageclass.ajaxbustcache=false
ajaxpageclass.paginatepersist=false
ajaxpageclass.pagerange=4
ajaxpageclass.ellipse="..."
var TimeToFade=1000.0;function fade(eid)
{var element=document.getElementById(eid);if(element==null)
return;if(element.FadeState==null)
{if(element.style.opacity==null||element.style.opacity==''||element.style.opacity=='1')
{element.FadeState=2;}
else
{element.FadeState=-2;}}
element.FadeState=-2;if(element.FadeState==1||element.FadeState==-1)
{element.FadeState=element.FadeState==1?-1:1;element.FadeTimeLeft=TimeToFade-element.FadeTimeLeft;}
else
{element.FadeState=element.FadeState==2?-1:1;element.FadeTimeLeft=TimeToFade;setTimeout("animateFade("+new Date().getTime()+",'"+eid+"')",33);}}
function animateFade(lastTick,eid)
{var curTick=new Date().getTime();var elapsedTicks=curTick-lastTick;var element=document.getElementById(eid);if(element.FadeTimeLeft<=elapsedTicks)
{element.style.opacity=element.FadeState==1?'1':'0';element.style.filter='alpha(opacity = '+(element.FadeState==1?'100':'0')+')';element.FadeState=element.FadeState==1?2:-2;return;}
element.FadeTimeLeft-=elapsedTicks;var newOpVal=element.FadeTimeLeft/TimeToFade;if(element.FadeState==1)
newOpVal=1-newOpVal;element.style.opacity=newOpVal;element.style.filter='alpha(opacity = '+(newOpVal*100)+')';setTimeout("animateFade("+curTick+",'"+eid+"')",33);}
ajaxpageclass.connect=function(pageurl,divId){var page_request=false
var bustcacheparameter=""
if(window.XMLHttpRequest&&!document.all)
page_request=new XMLHttpRequest()
else if(window.ActiveXObject){try{page_request=new ActiveXObject("Msxml2.XMLHTTP")}
catch(e){try{page_request=new ActiveXObject("Microsoft.XMLHTTP")}
catch(e){}}}
else
return false
page_request.onreadystatechange=function(){ajaxpageclass.loadpage(page_request,divId)}
if(this.ajaxbustcache)
bustcacheparameter=(pageurl.indexOf("?")!=-1)?"&"+new Date().getTime():"?"+new Date().getTime()
page_request.open('GET',pageurl+bustcacheparameter,true)
page_request.send(null)}
ajaxpageclass.loadpage=function(page_request,divId){if(page_request.readyState==4&&(page_request.status==200||window.location.href.indexOf("http")==-1)){document.getElementById(divId).innerHTML=page_request.responseText}}
ajaxpageclass.getCookie=function(Name){var re=new RegExp(Name+"=[^;]+","i");if(document.cookie.match(re))
return document.cookie.match(re)[0].split("=")[1]
return null}
ajaxpageclass.setCookie=function(name,value){document.cookie=name+"="+value}
ajaxpageclass.getInitialPage=function(divId,pageinfo){var persistedpage=this.getCookie(divId)
var selectedpage=(this.paginatepersist&&this.getCookie(divId)!=null)?parseInt(this.getCookie(divId)):pageinfo.selectedpage
return(selectedpage>pageinfo.pages.length-1)?0:selectedpage}
ajaxpageclass.createBook=function(pageinfo,divId,paginateIds){this.pageinfo=pageinfo
this.divId=divId
this.paginateIds=paginateIds
this.paginateInfo={divs:[],pagelinks:[[]],prevlink:[],nextlink:[],previouspage:null,previousrange:[null,null],leftellipse:[],rightellipse:[]}
this.dopagerange=false
this.pagerangestyle=''
this.ellipse='<span style="display:none">'+ajaxpageclass.ellipse+'</span>'
var initialpage=ajaxpageclass.getInitialPage(divId,pageinfo)
this.buildpagination(initialpage)
this.selectpage(initialpage)}
ajaxpageclass.createBook.prototype={buildpagination:function(selectedpage){this.dopagerange=(this.pageinfo.pages.length>ajaxpageclass.pagerange)
this.pagerangestyle=this.dopagerange?'style="display:none"':''
this.paginateInfo.previousrange=null
if(this.pageinfo.pages.length<=1){return}
else{var paginateHTML='<div class="pagination"><ul>\n'
paginateHTML+='<li><a href="#previous" rel="'+(selectedpage-1)+'">&laquo;</a></li>\n'
for(var i=0;i<this.pageinfo.pages.length;i++){var ellipses={left:(i==0?this.ellipse:''),right:(i==this.pageinfo.pages.length-1?this.ellipse:'')}
paginateHTML+='<li>'+ellipses.right+'<a href="#page'+(i+1)+'" rel="'+i+'" '+this.pagerangestyle+'>'+(i+1)+'</a>'+ellipses.left+'</li>\n'}
paginateHTML+='<li><a href="#next" rel="'+(selectedpage+1)+'">&raquo;</a></li>\n'
paginateHTML+='</ul></div>'}
this.paginateInfo.previouspage=selectedpage
for(var i=0;i<this.paginateIds.length;i++){var paginatediv=document.getElementById(this.paginateIds[i])
this.paginateInfo.divs[i]=paginatediv
paginatediv.innerHTML=paginateHTML
var paginatelinks=paginatediv.getElementsByTagName("a")
var ellipsespans=paginatediv.getElementsByTagName("span")
this.paginateInfo.prevlink[i]=paginatelinks[0]
if(paginatelinks.length>0)
this.paginateInfo.nextlink[i]=paginatelinks[paginatelinks.length-1]
this.paginateInfo.leftellipse[i]=ellipsespans[0]
this.paginateInfo.rightellipse[i]=ellipsespans[1]
this.paginateInfo.pagelinks[i]=[]
for(var p=1;p<paginatelinks.length-1;p++){this.paginateInfo.pagelinks[i][p-1]=paginatelinks[p]}
var pageinstance=this
paginatediv.onclick=function(e){var targetobj=window.event?window.event.srcElement:e.target
if(targetobj.tagName=="A"&&targetobj.getAttribute("rel")!=""){if(!/disabled/i.test(targetobj.className)){pageinstance.selectpage(parseInt(targetobj.getAttribute("rel")))}}
return false}}},selectpage:function(selectedpage){if(this.pageinfo.pages.length>0){var ajaxfriendlyurl=this.pageinfo.pages[selectedpage].replace(/^http:\/\/[^\/]+\//i,"http://"+window.location.hostname+"/")
if(selectedpage!=0){document.getElementById(this.divId).style.opacity=0;fade(this.divId)}
ajaxpageclass.connect(ajaxfriendlyurl,this.divId)}
if(this.pageinfo.pages.length<=1)
return
var paginateInfo=this.paginateInfo
for(var i=0;i<paginateInfo.divs.length;i++){paginateInfo.prevlink[i].className=(selectedpage==0)?"prevnext disabled":"prevnext"
paginateInfo.prevlink[i].setAttribute("rel",selectedpage-1)
paginateInfo.nextlink[i].className=(selectedpage==this.pageinfo.pages.length-1)?"prevnext disabled":"prevnext"
paginateInfo.nextlink[i].setAttribute("rel",selectedpage+1)
paginateInfo.pagelinks[i][paginateInfo.previouspage].className=""
paginateInfo.pagelinks[i][selectedpage].className="currentpage"}
paginateInfo.previouspage=selectedpage
ajaxpageclass.setCookie(this.divId,selectedpage)
this.limitpagerange(selectedpage)},limitpagerange:function(selectedpage){var paginateInfo=this.paginateInfo
if(this.dopagerange){var visiblelinks=ajaxpageclass.pagerange-1
var visibleleftlinks=Math.floor(visiblelinks/2)
var visiblerightlinks=visibleleftlinks+(visiblelinks%2==1?1:0)
if(selectedpage<visibleleftlinks){var overage=visibleleftlinks-selectedpage
visibleleftlinks-=overage
visiblerightlinks+=overage}
else if((this.pageinfo.pages.length-selectedpage-1)<visiblerightlinks){var overage=visiblerightlinks-(this.pageinfo.pages.length-selectedpage-1)
visiblerightlinks-=overage
visibleleftlinks+=overage}
var currentrange=[selectedpage-visibleleftlinks,selectedpage+visiblerightlinks]
var previousrange=paginateInfo.previousrange
for(var i=0;i<paginateInfo.divs.length;i++){if(previousrange){for(var p=previousrange[0];p<=previousrange[1];p++){paginateInfo.pagelinks[i][p].style.display="none"}}
for(var p=currentrange[0];p<=currentrange[1];p++){paginateInfo.pagelinks[i][p].style.display="inline"}
paginateInfo.pagelinks[i][0].style.display="inline"
paginateInfo.pagelinks[i][this.pageinfo.pages.length-1].style.display="inline"
paginateInfo.leftellipse[i].style.display=(currentrange[0]>1)?"inline":"none"
paginateInfo.rightellipse[i].style.display=(currentrange[1]<this.pageinfo.pages.length-2)?"inline":"none"}}
paginateInfo.previousrange=currentrange},refresh:function(pageinfo){this.pageinfo=pageinfo
var initialpage=ajaxpageclass.getInitialPage(this.divId,pageinfo)
this.buildpagination(initialpage)
this.selectpage(initialpage)}}