var gallery={
enableTitle: true, 
enableTransition: true, 
hideimgmouseout: false,

iefilterstring: 'progid:DXImageTransform.Microsoft.GradientWipe(GradientSize=1.0 Duration=0.7)', 
iefiltercapable: document.compatMode && window.createPopup? true : false,
preloadedimages:[],
targetlinks:[],
alreadyrunflag: false,

loadimage:function(linkobj){
var imagepath=linkobj.getAttribute("href")
var showcontainer=document.getElementById(linkobj.getAttribute("rev").split("::")[0])
var dest=linkobj.getAttribute("rev").split("::")[1] 
var description=(gallery.enableTitle && linkobj.getAttribute("title"))? linkobj.getAttribute("title") : "" 
var imageHTML='<img src="'+imagepath+'" style="border-width: 0" />' 
if (typeof dest!="undefined") 
imageHTML='<a href="'+dest+'">'+imageHTML+'</a>'
if (description!="") 
imageHTML+='<br />'+description
if (this.iefiltercapable){ 
showcontainer.style.filter=this.iefilterstring
showcontainer.filters[0].Apply()
}
showcontainer.innerHTML=imageHTML
this.featureImage=showcontainer.getElementsByTagName("img")[0] 
this.featureImage.onload=function(){ 
if (gallery.iefiltercapable) 
showcontainer.filters[0].Play()
}
this.featureImage.onerror=function(){ 
if (gallery.iefiltercapable) 
showcontainer.filters[0].Stop()
}
},

hideimage:function(linkobj){
var showcontainer=document.getElementById(linkobj.getAttribute("rev").split("::")[0]) 
showcontainer.innerHTML=""
},


cleanup:function(){ 
if (this.featureImage){this.featureImage.onload=null; this.featureImage.onerror=null; this.featureImage=null}
this.showcontainer=null
for (var i=0; i<this.targetlinks.length; i++){
this.targetlinks[i].onclick=null
this.targetlinks[i].onmouseover=null
this.targetlinks[i].onmouseout=null
}
},

addEvent:function(target, functionref, tasktype){ 
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)
},

init:function(){
this.iefiltercapable=(this.iefiltercapable && this.enableTransition)
var pagelinks=document.getElementsByTagName("a")
for (var i=0; i<pagelinks.length; i++){
if (pagelinks[i].getAttribute("rel") && /enlargeimage:/i.test(pagelinks[i].getAttribute("rel"))){ 
var initType=pagelinks[i].getAttribute("rel").split("::")[1]
if (initType=="mouseover"){
this.preloadedimages[this.preloadedimages.length]=new Image()
this.preloadedimages[this.preloadedimages.length-1].src=pagelinks[i].href
pagelinks[i]["onclick"]=function(){
return false
}
}
pagelinks[i]["on"+initType]=function(){ 
gallery.loadimage(this)
return false
}
if (this.hideimgmouseout)
pagelinks[i]["onmouseout"]=function(){
gallery.hideimage(this)
}
this.targetlinks[this.targetlinks.length]=pagelinks[i]
}
}
}
}


if (document.addEventListener) //Take advantage of "DOMContentLoaded" event in select Mozilla/ Opera browsers for faster init
gallery.addEvent(document, function(){gallery.alreadyrunflag=1; gallery.init()}, "DOMContentLoaded") //Initialize script on page load
else if (document.all && document.getElementsByTagName("a").length>0){ //Take advantage of "defer" attr inside SCRIPT tag in IE for instant init
gallery.alreadyrunflag=1
gallery.init()
}
gallery.addEvent(window, function(){if (!gallery.alreadyrunflag) gallery.init()}, "load") //Default init method: window.onload
gallery.addEvent(window, function(){gallery.cleanup()}, "unload")
