var ddajaxtabssettings={}
ddajaxtabssettings.bustcachevar = 1
ddajaxtabssettings.loadstatustext = "<br><br><br><br><br><center><img src='"+base_url+"images/icons/ajax_loading.gif'></center><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
function ddajaxtabs(tabinterfaceid, contentdivid)
{
this.tabinterfaceid=tabinterfaceid
this.tabs=document.getElementById(tabinterfaceid).getElementsByTagName("a")
this.enabletabpersistence=true
this.hottabspositions=[]
this.contentdivid=contentdivid
this.defaultHTML=""
this.defaultIframe='<iframe src="about:blank" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" class="tabcontentiframe" style="width:100%; height:auto; min-height: 100px"></iframe>'
this.defaultIframe=this.defaultIframe.replace(/<iframe/i, '<iframe name="'+"_ddajaxtabsiframe-"+contentdivid+'" ')
this.revcontentids=[]
this.selectedClassTarget="link"
}
ddajaxtabs.connect = function(pageurl, tabinstance)
{
var page_request = false
var bustcacheparameter=""
if (window.XMLHttpRequest)
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
var ajaxfriendlyurl = pageurl.replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+"/")
page_request.onreadystatechange = function(){ddajaxtabs.loadpage(page_request, pageurl, tabinstance)}
if (ddajaxtabssettings.bustcachevar)
bustcacheparameter=(ajaxfriendlyurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', ajaxfriendlyurl+bustcacheparameter, true)
page_request.send(null)
}
ddajaxtabs.loadpage=function(page_request, pageurl, tabinstance)
{
var divId=tabinstance.contentdivid
document.getElementById(divId).innerHTML = ddajaxtabssettings.loadstatustext
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
{
document.getElementById(divId).innerHTML=page_request.responseText
ddajaxtabs.ajaxpageloadaction(pageurl, tabinstance)
}
}
ddajaxtabs.ajaxpageloadaction=function(pageurl, tabinstance)
{
tabinstance.onajaxpageload(pageurl)
}
ddajaxtabs.getCookie=function(Name)
{
var re=new RegExp(Name+"=[^;]+", "i");
if (document.cookie.match(re))
return document.cookie.match(re)[0].split("=")[1]
return ""
}
ddajaxtabs.setCookie=function(name, value)
{
document.cookie = name+"="+value+";path=/"
}
ddajaxtabs.prototype={
expandit:function(tabid_or_position)
{
this.cancelautorun()
var tabref=""
try
{
if (typeof tabid_or_position=="string" && document.getElementById(tabid_or_position).getAttribute("rel"))
tabref=document.getElementById(tabid_or_position)
else if (parseInt(tabid_or_position)!=NaN && this.tabs[tabid_or_position].getAttribute("rel"))
tabref=this.tabs[tabid_or_position]
}
catch(err){alert("Invalid Tab ID or position entered!")}
if (tabref!="")
this.expandtab(tabref)
},
setpersist:function(bool)
{
this.enabletabpersistence=bool
},
loadajaxpage:function(pageurl)
{
ddajaxtabs.connect(pageurl, this)
},
loadiframepage:function(pageurl)
{
this.iframedisplay(pageurl, this.contentdivid)
},
setselectedClassTarget:function(objstr)
{
this.selectedClassTarget=objstr || "link"
},
getselectedClassTarget:function(tabref)
{
return (this.selectedClassTarget==("linkparent".toLowerCase()))? tabref.parentNode : tabref
},
onajaxpageload:function(pageurl)
{
},
expandtab:function(tabref)
{
var relattrvalue=tabref.getAttribute("rel")
var associatedrevids=(tabref.getAttribute("rev"))? ","+tabref.getAttribute("rev").replace(/\s+/, "")+"," : ""
if (relattrvalue=="#default")
document.getElementById(this.contentdivid).innerHTML=this.defaultHTML
else if (relattrvalue=="#iframe")
this.iframedisplay(tabref.getAttribute("href"), this.contentdivid)
else
ddajaxtabs.connect(tabref.getAttribute("href"), this)
this.expandrevcontent(associatedrevids)
for (var i=0; i<this.tabs.length; i++)
{
this.getselectedClassTarget(this.tabs[i]).className=(this.tabs[i].getAttribute("href")==tabref.getAttribute("href"))? "selected" : ""
}
if (this.enabletabpersistence)
ddajaxtabs.setCookie(this.tabinterfaceid, tabref.tabposition)
},
iframedisplay:function(pageurl, contentdivid)
{
if (typeof window.frames["_ddajaxtabsiframe-"+contentdivid]!="undefined")
{
try{delete window.frames["_ddajaxtabsiframe-"+contentdivid]}
catch(err){}
}
document.getElementById(contentdivid).innerHTML=this.defaultIframe
window.frames["_ddajaxtabsiframe-"+contentdivid].location.replace(pageurl)
},
expandrevcontent:function(associatedrevids)
{
var allrevids=this.revcontentids
for (var i=0; i<allrevids.length; i++)
{
document.getElementById(allrevids[i]).style.display=(associatedrevids.indexOf(","+allrevids[i]+",")!=-1)? "block" : "none"
}
},
autorun:function()
{
var currentTabIndex=this.automode_currentTabIndex
var hottabspositions=this.hottabspositions
this.expandtab(this.tabs[hottabspositions[currentTabIndex]])
this.automode_currentTabIndex=(currentTabIndex<hottabspositions.length-1)? currentTabIndex+1 : 0
},
cancelautorun:function()
{
if (typeof this.autoruntimer!="undefined")
clearInterval(this.autoruntimer)
},
init:function(automodeperiod)
{
var persistedtab = ddajaxtabs.getCookie(this.tabinterfaceid)
var persisterror = true
this.automodeperiod = automodeperiod || 0
this.defaultHTML=document.getElementById(this.contentdivid).innerHTML
for (var i=0; i<this.tabs.length; i++)
{
this.tabs[i].tabposition=i
if (this.tabs[i].getAttribute("rel"))
{
var tabinstance=this
this.hottabspositions[this.hottabspositions.length]=i
this.tabs[i].onclick=function()
{
tabinstance.expandtab(this)
tabinstance.cancelautorun()
return false
}
if (this.tabs[i].getAttribute("rev"))
{
this.revcontentids=this.revcontentids.concat(this.tabs[i].getAttribute("rev").split(/\s*,\s*/))
}
if (this.enabletabpersistence && parseInt(persistedtab)==i || !this.enabletabpersistence && this.getselectedClassTarget(this.tabs[i]).className=="selected")
{
this.expandtab(this.tabs[i])
persisterror=false
this.automode_currentTabIndex=(i>0)? 0 : 1
}
}
}
if (persisterror)
this.expandtab(this.tabs[this.hottabspositions[0]])
if (parseInt(this.automodeperiod)>500 && this.hottabspositions.length>1)
{
this.automode_currentTabIndex=this.automode_currentTabIndex || 0
this.autoruntimer=setInterval(function(){tabinstance.autorun()}, this.automodeperiod)
}
}
}
