/* /////////////////////////////////////////////////////////////////////////
// 
//            k a t h e r i n e h o l l y p h o t o g r a p h y
//							  
//            by derek blank (2009) - http://www.derekblank.com
//
//								 myquery.js
//
// /////////////////////////////////////////////////////////////////////////
//
//                   MENU variables + $(document).ready
//
*/ /////////////////////////////////////////////////////////////////////////



		var timeout    = 300;
		var closetimer = 0;
		var ddmenuitem = 0;

		function jsddm_open()
		{  jsddm_canceltimer();
		   jsddm_close();
		   ddmenuitem = $(this).find('ul').css('visibility', 'visible');}

		function jsddm_close()
		{  if(ddmenuitem) ddmenuitem.css('visibility', 'hidden'); }

		function jsddm_timer()
		{  closetimer = window.setTimeout(jsddm_close, timeout);}

		function jsddm_canceltimer()
		{  if(closetimer)
 		  {  window.clearTimeout(closetimer);
		      closetimer = null;}}
	
		$(document).ready( function()
			{ 	
						
				// drop-down menu	
			    $('.jsddm > li').bind('mouseover', jsddm_open);
			    $('.jsddm > li').bind('mouseout',  jsddm_timer);
			    			   			  	    						
	});	
		
		document.onclick = jsddm_close;
		


/* /////////////////////////////////////////////////////////////////////////
//
//                             GALLERIA QUERY
//
*/ /////////////////////////////////////////////////////////////////////////
		

	jQuery(function($) {
		
		$('.gallery_unstyled').addClass('gallery_d'); // adds new class name to maintain degradability
		
		$('ul.gallery_d').galleria({
			history   : true, // activates the history object for bookmarking, back-button etc.
			clickNext : true, // helper for making the image clickable
			insert    : '#main_image', // the containing selector for our main image
			onImage   : function(image,caption,thumb) { // let's add some image effects for demonstration purposes
				
				// fade in the image & caption
				if(! ($.browser.mozilla && navigator.appVersion.indexOf("Win")!=-1) ) { // FF/Win fades large images terribly slow
					image.css('display','none').fadeIn(1000);
				}
				caption.css('display','none').fadeIn(1000);
				
				// fetch the thumbnail container
				var _li = thumb.parents('li');
				
				// fade out inactive thumbnail
				_li.siblings().children('img.selected').fadeTo(500,0.3);
				
				// fade in active thumbnail
				thumb.fadeTo('fast',1).addClass('selected');
				
				// add a title for the clickable image
				image.attr('title','Next image >>');
			},
			onThumb : function(thumb) { // thumbnail effects goes here
				
				// fetch the thumbnail container
				var _li = thumb.parents('li');
				
				// if thumbnail is active, fade all the way.
				var _fadeTo = _li.is('.active') ? '1' : '0.3';
				
				// fade in the thumbnail when finnished loading
				thumb.css({display:'none',opacity:_fadeTo}).fadeIn(1500);
				
				// hover effects
				thumb.hover(
					function() { thumb.fadeTo('fast',1); },
					function() { _li.not('.active').children('img').fadeTo('fast',0.3); } // don't fade out if the parent is active
				)
			}
		});
	});

		/*
		$('.gallery_unstyled').addClass('gallery_d'); 
		
		$('.gallery_d').galleria({
			history   : false, 
			clickNext : true,
			insert    : '#main_image', 
			onImage   : function(image,caption,thumb) { 
				
				// fade-in the image & caption
				if(! ($.browser.mozilla && navigator.appVersion.indexOf("Win")!=-1) ) { // FF/Win fades large images terribly slow
					image.css('display','none').fadeIn(300);
				}
				var _li = thumb.parents('li');
				_li.siblings().children('img.selected').fadeTo(500,0.3);
				thumb.fadeTo('fast',1).addClass('selected');
				image.attr('title','Next image >>');
			}, 
			
			onThumb : function(thumb) { 
				
				var _li = thumb.parents('li');
				var _fadeTo = _li.is('.active') ? '1' : '0.5';
				
				// thumbnail fade-in
				thumb.css({display:'none',opacity:_fadeTo}).fadeIn(800);
				
				thumb.hover(
					function() { thumb.fadeTo('fast',1); },
					function() { _li.not('.active').children('img').fadeTo('fast',0.5); } // don't fade out if the parent is active 
				) 
			} 
		});
	});	
	
	*/
	
$(function(){
  var div = $('div.db-scroll'),
               ul = $('ul.db-scroll'),
               ulPadding = 15;

  var divWidth = div.width();

  div.css({overflow: 'hidden'});

  var lastLi = ul.find('li:last-child');

  div.mousemove(function(e){

    var ulWidth = lastLi[0].offsetLeft + lastLi.outerWidth() + ulPadding;

    var left = (e.pageX - div.offset().left) * (ulWidth-divWidth) / divWidth;
    div.scrollLeft(left);
  });
});	
	
	
/* /////////////////////////////////////////////////////////////////////////
//
//                       	  JS SNAK-BYTES
//
*/ /////////////////////////////////////////////////////////////////////////
	
	// uses rel="external" instead of target="_blank" for xhtml validity  
 	function externalLinks() {
 		if (!document.getElementsByTagName) return;
		 var anchors = document.getElementsByTagName("a");
		 for (var i=0; i<anchors.length; i++) {
		   var anchor = anchors[i];
		   if (anchor.getAttribute("href") &&
		       anchor.getAttribute("rel") == "external")
		     anchor.target = "_blank";
		 }
		}
		window.onload = externalLinks;

	
	// preloads "loading.gif" - ironic, huh?
	loader= new Image(48,48); 
	loader.src="http://www.katherineholly.com/img/loader.gif"; 
	
	
/* /////////////////////////////////////////////////////////////////////////
//
//                       	  V-H ALIGN
//
*/ /////////////////////////////////////////////////////////////////////////	
	
(function ($) {
$.fn.vAlign = function() {
	return this.each(function(i){
	var h = $(this).height();
	var oh = $(this).outerHeight();
	var mt = (h + (oh - h)) / 2;	
	$(this).css("margin-top", "-" + mt + "px");	
	$(this).css("top", "50%");
	$(this).css("position", "absolute");	
	});	
};
})(jQuery);

(function ($) {
$.fn.hAlign = function() {
	return this.each(function(i){
	var w = $(this).width();
	var ow = $(this).outerWidth();	
	var ml = (w + (ow - w)) / 2;	
	$(this).css("margin-left", "-" + ml + "px");
	$(this).css("left", "50%");
	$(this).css("position", "absolute");
	});
};
})(jQuery);

$(document).ready(function() {
	$(".vA").vAlign();
	$(".hA").hAlign();
});	
	
