 /*TipTip, Copyright 2010 Drew Wilson (www.drewwilson.com), code.drewwilson.com/entry/tiptip-jquery-plugin - Version 1.3(Updated: Mar. 23, 2010) */
(function($){$.fn.tipTip=function(options){var defaults={activation:"hover",keepAlive:false,maxWidth:"200px",edgeOffset:3,defaultPosition:"bottom",delay:400,fadeIn:200,fadeOut:200,attribute:"title",content:false,enter:function(){},exit:function(){}};var opts=$.extend(defaults,options);if($("#tiptip_holder").length<=0){var tiptip_holder=$('<div id="tiptip_holder" style="max-width:'+opts.maxWidth+';"></div>');var tiptip_content=$('<div id="tiptip_content"></div>');var tiptip_arrow=$('<div id="tiptip_arrow"></div>');$("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')))}else{var tiptip_holder=$("#tiptip_holder");var tiptip_content=$("#tiptip_content");var tiptip_arrow=$("#tiptip_arrow")}return this.each(function(){var org_elem=$(this);if(opts.content){var org_title=opts.content}else{var org_title=org_elem.attr(opts.attribute)}if(org_title!=""){if(!opts.content){org_elem.removeAttr(opts.attribute)}var timeout=false;if(opts.activation=="hover"){org_elem.hover(function(){active_tiptip()},function(){if(!opts.keepAlive){deactive_tiptip()}});if(opts.keepAlive){tiptip_holder.hover(function(){},function(){deactive_tiptip()})}}else if(opts.activation=="focus"){org_elem.focus(function(){active_tiptip()}).blur(function(){deactive_tiptip()})}else if(opts.activation=="click"){org_elem.click(function(){active_tiptip();return false}).hover(function(){},function(){if(!opts.keepAlive){deactive_tiptip()}});if(opts.keepAlive){tiptip_holder.hover(function(){},function(){deactive_tiptip()})}}function active_tiptip(){opts.enter.call(this);tiptip_content.html(org_title);tiptip_holder.hide().removeAttr("class").css("margin","0");tiptip_arrow.removeAttr("style");var top=parseInt(org_elem.offset()['top']);var left=parseInt(org_elem.offset()['left']);var org_width=parseInt(org_elem.outerWidth());var org_height=parseInt(org_elem.outerHeight());var tip_w=tiptip_holder.outerWidth();var tip_h=tiptip_holder.outerHeight();var w_compare=Math.round((org_width-tip_w)/2);var h_compare=Math.round((org_height-tip_h)/2);var marg_left=Math.round(left+w_compare);var marg_top=Math.round(top+org_height+opts.edgeOffset);var t_class="";var arrow_top="";var arrow_left=Math.round(tip_w-12)/2;if(opts.defaultPosition=="bottom"){t_class="_bottom"}else if(opts.defaultPosition=="top"){t_class="_top"}else if(opts.defaultPosition=="left"){t_class="_left"}else if(opts.defaultPosition=="right"){t_class="_right"}var right_compare=(w_compare+left)<parseInt($(window).scrollLeft());var left_compare=(tip_w+left)>parseInt($(window).width());if((right_compare&&w_compare<0)||(t_class=="_right"&&!left_compare)||(t_class=="_left"&&left<(tip_w+opts.edgeOffset+5))){t_class="_right";arrow_top=Math.round(tip_h-13)/2;arrow_left=-12;marg_left=Math.round(left+org_width+opts.edgeOffset);marg_top=Math.round(top+h_compare)}else if((left_compare&&w_compare<0)||(t_class=="_left"&&!right_compare)){t_class="_left";arrow_top=Math.round(tip_h-13)/2;arrow_left=Math.round(tip_w);marg_left=Math.round(left-(tip_w+opts.edgeOffset+5));marg_top=Math.round(top+h_compare)}var top_compare=(top+org_height+opts.edgeOffset+tip_h+8)>parseInt($(window).height()+$(window).scrollTop());var bottom_compare=((top+org_height)-(opts.edgeOffset+tip_h+8))<0;if(top_compare||(t_class=="_bottom"&&top_compare)||(t_class=="_top"&&!bottom_compare)){if(t_class=="_top"||t_class=="_bottom"){t_class="_top"}else{t_class=t_class+"_top"}arrow_top=tip_h;marg_top=Math.round(top-(tip_h+5+opts.edgeOffset))}else if(bottom_compare|(t_class=="_top"&&bottom_compare)||(t_class=="_bottom"&&!top_compare)){if(t_class=="_top"||t_class=="_bottom"){t_class="_bottom"}else{t_class=t_class+"_bottom"}arrow_top=-12;marg_top=Math.round(top+org_height+opts.edgeOffset)}if(t_class=="_right_top"||t_class=="_left_top"){marg_top=marg_top+5}else if(t_class=="_right_bottom"||t_class=="_left_bottom"){marg_top=marg_top-5}if(t_class=="_left_top"||t_class=="_left_bottom"){marg_left=marg_left+5}tiptip_arrow.css({"margin-left":arrow_left+"px","margin-top":arrow_top+"px"});tiptip_holder.css({"margin-left":marg_left+"px","margin-top":marg_top+"px"}).attr("class","tip"+t_class);if(timeout){clearTimeout(timeout)}timeout=setTimeout(function(){tiptip_holder.stop(true,true).fadeIn(opts.fadeIn)},opts.delay)}function deactive_tiptip(){opts.exit.call(this);if(timeout){clearTimeout(timeout)}tiptip_holder.fadeOut(opts.fadeOut)}}})}})(jQuery);

/* jCarousel Lite 1.0.1 */
(function($){$.fn.jCarouselLite=function(o){o=$.extend({btnPrev:null,btnNext:null,btnGo:null,mouseWheel:false,auto:null,speed:200,easing:null,vertical:false,circular:true,visible:3,start:0,scroll:1,beforeStart:null,afterEnd:null},o||{});return this.each(function(){var running=false,animCss=o.vertical?"top":"left",sizeCss=o.vertical?"height":"width";var div=$(this),ul=$("ul",div),tLi=$("li",ul),tl=tLi.size(),v=o.visible;if(o.circular){ul.prepend(tLi.slice(tl-v-1+1).clone()).append(tLi.slice(0,v).clone());o.start+=v}var li=$("li",ul),itemLength=li.size(),curr=o.start;div.css("visibility","visible");li.css({overflow:"hidden",float:o.vertical?"none":"left"});ul.css({margin:"0",padding:"0",position:"relative","list-style-type":"none","z-index":"1"});div.css({overflow:"hidden",position:"relative","z-index":"2",left:"0px"});var liSize=o.vertical?height(li):width(li);var ulSize=liSize*itemLength;var divSize=liSize*v;li.css({width:li.width(),height:li.height()});ul.css(sizeCss,ulSize+"px").css(animCss,-(curr*liSize));div.css(sizeCss,divSize+"px");if(o.btnPrev)$(o.btnPrev).click(function(){return go(curr-o.scroll)});if(o.btnNext)$(o.btnNext).click(function(){return go(curr+o.scroll)});if(o.btnGo)$.each(o.btnGo,function(i,val){$(val).click(function(){return go(o.circular?o.visible+i:i)})});if(o.mouseWheel&&div.mousewheel)div.mousewheel(function(e,d){return d>0?go(curr-o.scroll):go(curr+o.scroll)});if(o.auto)setInterval(function(){go(curr+o.scroll)},o.auto+o.speed);function vis(){return li.slice(curr).slice(0,v)};function go(to){if(!running){if(o.beforeStart)o.beforeStart.call(this,vis());if(o.circular){if(to<=o.start-v-1){ul.css(animCss,-((itemLength-(v*2))*liSize)+"px");curr=to==o.start-v-1?itemLength-(v*2)-1:itemLength-(v*2)-o.scroll}else if(to>=itemLength-v+1){ul.css(animCss,-((v)*liSize)+"px");curr=to==itemLength-v+1?v+1:v+o.scroll}else curr=to}else{if(to<0||to>itemLength-v)return;else curr=to}running=true;ul.animate(animCss=="left"?{left:-(curr*liSize)}:{top:-(curr*liSize)},o.speed,o.easing,function(){if(o.afterEnd)o.afterEnd.call(this,vis());running=false});if(!o.circular){$(o.btnPrev+","+o.btnNext).removeClass("disabled");$((curr-o.scroll<0&&o.btnPrev)||(curr+o.scroll>itemLength-v&&o.btnNext)||[]).addClass("disabled")}}return false}})};function css(el,prop){return parseInt($.css(el[0],prop))||0};function width(el){return el[0].offsetWidth+css(el,'marginLeft')+css(el,'marginRight')};function height(el){return el[0].offsetHeight+css(el,'marginTop')+css(el,'marginBottom')}})(jQuery);

$(document).ready(function(){
	var carouselcontrols	=	'<div class="controls"><a href="#" title="Previous" class="btnPrev"><span>Previous</span></a><a href="#" title="Next" class="btnNext"><span>Next</span></a></div>';
	var mainimagecontrols	=	'<div class="controls"><a href="#" title="Previous" class="imagePrev"><span>Previous</span></a><a href="#" title="Next" class="imageNext"><span>Next</span></a></div>';
	var ajaxloader			=	'<div class="ajaxloader"><span>Loading</span></div>';
	
	function loadMainImage(trigger) {
		if($('.mainimage .ajaxloader').length)
			return false;
		if($('.mainimage .image img').attr('src')==$(trigger).attr('href'))
			return false;
		$('.thumbs .active').removeClass('active');
		$(trigger).addClass('active');
		$('.mainimage .image').html(ajaxloader);
		var i		=	new Image();
		i.src		=	$(trigger).attr('href');
		i.alt		=	$(trigger).attr('title');
		$(i).load(function(){
			$('.mainimage .image').html(i).hide().fadeIn('500');
		});
		return false;
	}
	
	//NAVIGATION
	$('.navigation li:has(ul)').hover(function(){
		$('ul',this).addClass('hover');
	},function(){
		$('ul',this).removeClass('hover');
	});
	
	// GALLERY
	// carousel	
	var totphotos	=	$('.carousel .thumbs li img').length;
	if($('.gallerysmall .carousel').length) {
		var totscroll	=	4;
		var totvisible	=	6;		
	}
	else {
		var totscroll	=	6;
		var totvisible	=	8;			
	}
	
	
	$('.carousel').append('<div class="photocount">'+totphotos+' photos</div>');
	$('.carousel li:first a').addClass('active');
	$('.carousel li.last').removeClass('last');
	if(totphotos > totvisible) {
		$('.carousel').prepend(carouselcontrols);
		$('.carousel').jCarouselLite({
			btnNext:	'.btnNext',
			btnPrev:	'.btnPrev',
			visible:	totvisible,
			scroll:		totscroll
		});	
	}
	$('.carousel .thumbs a').tipTip({delay:100});	
	$('.carousel .thumbs a').click(function(){
		return loadMainImage(this);
	});
	//main image loader
	function showMainImageControls(e,trigger) {
		var x = e.pageX - trigger.offsetLeft;
		if(x < ($('.mainimage').width()/2)) {
			if(!$('.mainimage .controls .imagePrev:visible').length) {
				$('.mainimage .controls a:visible').hide();
				$('.mainimage .controls .imagePrev').show();
			}
		}
		else {
			if(!$('.mainimage .controls .imageNext:visible').length) {
				$('.mainimage .controls a:visible').hide();
				$('.mainimage .controls .imageNext').show();
			}
		}
		return false;
	}
	$('.mainimage').append(mainimagecontrols);
	$('.mainimage .controls a').click(function(){
		if($(this).hasClass('imageNext')) {
			var target	=	$('.carousel .thumbs .active').parents('li').next('li').children('a');
			if(!target.length)	target	=	$('.carousel .thumbs li:first a');
		} else {
			var target	=	$('.carousel .thumbs .active').parents('li').prev('li').children('a');
			if(!target.length)	target	=	$('.carousel .thumbs li:last a');
		}
		if(!target.length) return false;
		return loadMainImage(target);
	});
	$('.mainimage .controls a').hide();
	$('.mainimage').mousemove(function(e){
		return(showMainImageControls(e,this));
	});
		
	$('.mainimage').mouseout(function(){
		$('.mainimage .controls a:visible').hide();
	});
});
