var externalLinks = {
    init: function()
    {
        var extLinks = Core.getElementsByClass("external");
        for (var i = 0; i < extLinks.length; i++)
        {
            extLinks[i].onclick = externalLinks.clickHandler;
            
        }
    },
    clickHandler: function()
    {
        open(this.href);
        return false;
    }
};

var gallery = {
    init: function()
    {
    	if(document.getElementById("thumbWrapper")){
    	    var galleryLinks = document.getElementById("thumbWrapper").getElementsByTagName("a");
    	    for(var i = 0; i <galleryLinks.length; i++) {
    	        galleryLinks[i].onclick = gallery.clickHandler;
    	        galleryLinks[i].onmouseover																																																																																																																							 = gallery.clickHandler;
	        }
	    }
    },
    clickHandler: function()
    {
        var nextPic = this.firstChild.src.slice(59, 61);
        gallery.changeBigPic(nextPic);
        gallery.changeSmallPic(nextPic);
        return false;
    },
    changeBigPic: function(nextPic) {
    	var bigPic = Core.getElementsByClass("largePhoto")[0].firstChild;
    	var newBigPicSrc = bigPic.src.slice(0, 58) + nextPic + bigPic.src.slice(60);
    	bigPic.src = newBigPicSrc;    	
    },
    changeSmallPic: function(nextPic) {
        var galleryLinks = document.getElementById("thumbWrapper").getElementsByTagName("a");
    	for(var i = 0; i <galleryLinks.length; i++) {
    		var linkSrc = galleryLinks[i].firstChild.src;
    		var state = galleryLinks[i].firstChild.src.indexOf("inactive");
    	    if( state != -1 ) {
    	        galleryLinks[i].firstChild.src = galleryLinks[i].firstChild.src.replace("inactive", "active");
    	    }
    	    if(i == parseInt(nextPic, 10)-1) {
    	    	galleryLinks[i].firstChild.src = galleryLinks[i].firstChild.src.replace("active", "inactive" );
    	    }
	    }
        	
    }
};

var Tooltips =
{
  init: function()
  {
    var links = document.getElementsByTagName("a");
    for (var i = 0; i < links.length; i++)
    {
      var title = links[i].getAttribute("title");
      if (title && title.length > 0)
      {
        Core.addEventListener(
            links[i], "mouseover", Tooltips.showTipListener);
        Core.addEventListener(
            links[i], "focus", Tooltips.showTipListener);
        Core.addEventListener(
            links[i], "mouseout", Tooltips.hideTipListener);
        Core.addEventListener(
            links[i], "blur", Tooltips.hideTipListener);
      }
    }    
  },
  showTip: function(link)
  {
  	//window.clearTimeout(this._timer);
    //Tooltips.hideTip(link);
    var outerSpan = document.createElement("span");
    var tip = document.createElement("span");
    outerSpan.className = "tooltip";
    var tipText = document.createTextNode(link.title);
    tip.appendChild(tipText);
    outerSpan.appendChild(tip);
    link.appendChild(outerSpan);
    link._tooltip = outerSpan;
    link.title = "";
    // Fix for Safari2/Opera9 repaint issue
    document.documentElement.style.position = "relative";
  },
  hideTip: function(link)
  {
    if (link._tooltip)
    {
      link.title = link._tooltip.firstChild.childNodes[0].nodeValue;
      link.removeChild(link._tooltip);
      link._tooltip = null;
    // Fix for Safari2/Opera9 repaint issue
    document.documentElement.style.position = "static";
    }    
  },
  showTipListener: function(event)
   {
    var link = this;
    this._timer = setTimeout(function()
      {
        Tooltips.showTip(link);
      }, 500);
    Core.preventDefault(event);
  },
  hideTipListener: function(event)
  {
   clearTimeout(this._timer);
   Tooltips.hideTip(this);
  }
};

Core.start(Tooltips);
Core.start(externalLinks);
Core.start(gallery);