/**
 * Gallery Utils - Script must be loaded after lighboxes are invoked
 * 
 * Copyright (C) 2009 by Benjamin Sternthal <ben@sternthal.org>
 */
 
	
$(function() {	
   //Rollover
   $('div.gallery-roll').hover(
      function () {
         if(!$.browser.msie) {
            $(this).find("div.gallery-roll-text").fadeIn("normal"); 
   		} else {
            $(this).find("div.gallery-roll-text").show(); 
   		}
      }, 
      function () {
   		$(this).find("div.gallery-roll-text").hide(); 
   	}
   );
   
   //Handle Click For Landing Overlay
   $("div.gallery-landing-caption").bind('click', function() {  
      var URL = $(this).find("a").attr("href");
      window.location = URL;
   });
   
   //Handle lightbox launch from Gallery Overlay
   $("div.gallery-caption").bind('click', function() {
      var link = $(this).find("a");
      link[0].click();
   });
   
   //Handle lightbox launch from Books Overlay
   $("div.gallery-book").bind('click', function() {  
      var link = $(this).find("a");
      $(link[0]).click();
   }); 
   
   //Check For URL Parameter And Auto Open Lightbox 
   //Example: ?lightbox=6&image=1
   //Note (image passed in -1) = image   
   var request = new Request();
   var id = request.keyValueFinder("lightbox",request.queryString());
   var activeImage = request.keyValueFinder("image",request.queryString());
   
   
   //Open lightbox on load, and open to specific image if passed in
   
   if(id) {
      if(activeImage) { 
         var lb = $('a.lightbox-' + id)[activeImage-1];       
      } else {
         var lb = $('a.lightbox-' + id)[0];      
      }
      setTimeout(function(){$(lb).click()},1000);
   }
       
});



/**
 * Provides feautures for handling/processing URL
 * invoked on page: var request = new Request();
 *
 */	
function Request() {
	this.URL = window.location.href;
	this.hash =  window.location.hash;
	this.pathname = window.location.pathname;
	this.searchEncoded = window.location.search.substring(1);
	this.search = decodeURIComponent(this.searchEncoded.replace(/\+/g,  " "));
	
	//@return array of values from request							
	this.queryString = function () {
		var queryList = new Array();					
		
		if(this.search.length > 0) {
			var pairs = this.search.split('&');
	
			for(i=0; i<pairs.length; i++) {
				var keyValuePair = pairs[i].split("="); 
				var quoteFixedValue = keyValuePair[1].replace(/\'/g,  "&#39;");
	
				queryList[i]= [[keyValuePair[0]],quoteFixedValue];
			}
			return queryList;
		}	
	}
	
	//@return single value from request that match key
	this.keyValueFinder = function(key,queryList) {
		var keyValue = "";
		
		for(var i in queryList) { 
 			if(queryList[i][0] == key) {
 				keyValue = queryList[i][1];
 			}
		}
		return keyValue.toString();				
	}	
}
