// -------------------------------------------------------------------
// Image Thumbnail Viewer II- By Dynamic Drive, available at: http://www.dynamicdrive.com
// Last updated: Feb 5th, 2007
// -------------------------------------------------------------------

var thumbnailviewer2=
{
  enableTitle: true, //Should "title" attribute of link be used as description?
  enableTransition: true, //Enable fading transition in IE?
  hideimgmouseout: false, //Hide enlarged image when mouse moves out of anchor link? (if enlarged image is hyperlinked, always set to false!)
  
  GradientSize:1.0,
  Duration:0.7,
//  GradientSize:0.3,
//  Duration:0.1,
  
  /////////////No need to edit beyond here/////////////////////////
  
  //iefilterstring: 'progid:DXImageTransform.Microsoft.GradientWipe(GradientSize=1.0 Duration=0.7)', //IE specific multimedia filter string
  iefiltercapable: document.compatMode && window.createPopup? true : false, //Detect browser support for IE filters
  preloadedimages:[], //array to preload enlarged images (ones set to display "onmouseover"
  targetlinks:[], //array to hold participating links (those with rel="enlargeimage:initType")
  alreadyrunflag: false, //flag to indicate whether init() function has been run already come window.onload
  
  loadimage:function(linkobj)
  {
    var imagepath=linkobj.getAttribute("href") //Get URL to enlarged image
    var showcontainer=document.getElementById(linkobj.getAttribute("rev").split("::")[0]) //Reference container on page to show enlarged image in
    var dest=linkobj.getAttribute("rev").split("::")[1] //Get URL enlarged image should be linked to, if any
    var targetframename=linkobj.getAttribute("rev").split("::")[2];
    var description=(thumbnailviewer2.enableTitle && linkobj.getAttribute("title"))? linkobj.getAttribute("title") : "" //Get title attr
    var imageHTML='<img src="'+imagepath+'" style="border-width: 0" />' //Construct HTML for enlarged image
    
    //if (typeof dest!="undefined") // kiszedtem.. ha meg van adva target frame, akkor ne rontsa el a menut, abban nyissa meg..
    if ((typeof dest!="undefined")&&(typeof targetframename=="undefined")) //Hyperlink the enlarged image?
      imageHTML='<a href="'+dest+'">'+imageHTML+'</a>'
    if (description!="") //Use title attr of the link as description?
      imageHTML+='<br />'+description
    if (this.iefiltercapable)
    { //Is this an IE browser that supports filters?
      //showcontainer.style.filter=this.iefilterstring
      showcontainer.style.filter='progid:DXImageTransform.Microsoft.GradientWipe(GradientSize='+this.GradientSize+' Duration='+this.Duration+')'
      showcontainer.filters[0].Apply()
    }
    showcontainer.innerHTML=imageHTML
    
    this.featureImage=showcontainer.getElementsByTagName("img")[0] //Reference enlarged image itself
    
    this.featureImage.onload=function()
    { //When enlarged image has completely loaded
      if (thumbnailviewer2.iefiltercapable) //Is this an IE browser that supports filters?
        showcontainer.filters[0].Play()
    }
    
    this.featureImage.onerror=function()
    { //If an error has occurred while loading the image to show
      if (thumbnailviewer2.iefiltercapable) //Is this an IE browser that supports filters?
        showcontainer.filters[0].Stop()
    }
  },
  
  hideimage:function(linkobj)
  {
    var showcontainer=document.getElementById(linkobj.getAttribute("rev").split("::")[0]) //Reference container on page to show enlarged image in
    showcontainer.innerHTML=""
  },
  
  setfadespeed:function(gs,dur)
  {
    this.GradientSize=gs
    this.Duration=dur
  },

  cleanup:function()
  { //Clean up routine on page unload
    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)
  { //assign a function to execute to an event handler (ie: onunload)
    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()
  { //Initialize thumbnail viewer script
    this.iefiltercapable=(this.iefiltercapable && this.enableTransition) //True or false: IE filters supported and is enabled by user
    var pagelinks=document.getElementsByTagName("a")
    
    for (var i=0; i<pagelinks.length; i++)
    { //BEGIN FOR LOOP
      if (pagelinks[i].getAttribute("rel") && (/enlargeimage:/i).test(pagelinks[i].getAttribute("rel")))
      { //Begin if statement: Test for rel="enlargeimage"
        var initType=pagelinks[i].getAttribute("rel").split("::")[1] //Get display type of enlarged image ("click" or "mouseover")
        if (initType=="mouseover")
        { //If type is "mouseover", preload the enlarged image for quicker display
          this.preloadedimages[this.preloadedimages.length]=new Image()
          this.preloadedimages[this.preloadedimages.length-1].src=pagelinks[i].href
          
          
          pagelinks[i]["onclick"]=function()
          { //Cancel default click action
            var dest=this.getAttribute("rev").split("::")[1];
            var targetframename=this.getAttribute("rev").split("::")[2];
            
            if ((typeof dest!="undefined")&&(typeof targetframename!="undefined"))
            { // betesszuk a dest-et oda, ahova valo..
              document.getElementById(targetframename).src=dest;
            }
            
            return false;
          }
          
        }
        
        pagelinks[i]["on"+initType]=function()
        { //Load enlarged image based on the specified display type (event)
          thumbnailviewer2.loadimage(this) //Load image
          return false
        }
        
        if (this.hideimgmouseout)
          pagelinks[i]["onmouseout"]=function()
          {
            thumbnailviewer2.hideimage(this)
          }
        this.targetlinks[this.targetlinks.length]=pagelinks[i] //store reference to target link
      } //end if statement
    } //END FOR LOOP
  } //END init() function
}


if (document.addEventListener) //Take advantage of "DOMContentLoaded" event in select Mozilla/ Opera browsers for faster init
  thumbnailviewer2.addEvent
  (
    document,
    function()
    {
      thumbnailviewer2.alreadyrunflag=1;
      thumbnailviewer2.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
    thumbnailviewer2.alreadyrunflag=1
    thumbnailviewer2.init()
  }

thumbnailviewer2.addEvent
(
  window,
  function()
  {
    if (!thumbnailviewer2.alreadyrunflag) 
      thumbnailviewer2.init()
  },
  "load"
) //Default init method: window.onload

thumbnailviewer2.addEvent
(
  window,
  function()
  {
    thumbnailviewer2.cleanup()
  },
  "unload"
)

