/*----------------------------------------------------------------------
[Global JavaScript ] 
Desc: slideshow

Copyright:		Great Fridays 2011
Client:			Emma Watson
Project:		Emma Watson official
Created by:		Adam Foster
Last Updated:	22 - 02 - 11			
-----------------------------------------------------------------------*/

slideShow=function(){var config={speed:7000,current:0,playing:true,overViewing:true,loading:true,goingRight:true,scrollWidth:0,disabled:false,thumbsApi:null,move:1,startTimer:null,scrollerSize:9};var shelf={};function init(c){config=$j.extend({},config,c);shelf.wrapper=$j('#pageContent');shelf.img=$j('#slideshowImg',shelf.wrapper);shelf.imgScroller=$j('#imgScroller',shelf.img);shelf.imgOverCont=$j('#slideShowOverlayCont',shelf.wrapper).css({'opacity':0,'display':'block'});shelf.progress=$j('.progressBar',shelf.imgOverCont);shelf.pauseTrigger=$j('.pause',shelf.imgOverCont);shelf.nav=$j('#slideshowNavigation',shelf.wrapper);shelf.overview=$j('#slideShowOverlay',shelf.img);shelf.overviewTrigger=$j('.overviewTrigger',shelf.nav);shelf.overview.children('.overlayContent').stop().delay(3000).animate({bottom:-156},300,function(){config.overViewing=false;shelf.overview.hide();shelf.overviewTrigger.removeClass('selected');refreshCufon()});shelf.loader=$j('#slideshowLoader',shelf.img).css({'opacity':0,'display':'block'});shelf.thmbsScroller=$j('#thumbsMask',shelf.wrapper);shelf.thmbsUl=$j('ul',shelf.thmbsScroller);shelf.thumbs=$j('ul li',shelf.thmbsScroller);shelf.data=[];shelf.total=shelf.thumbs.length;shelf.currentImg=$j('.current',shelf.nav);$j('.total',shelf.nav).text(shelf.total);if(shelf.total>=9){shelf.thmbsScroller.css('width',9*74)}else{shelf.thmbsScroller.css('width',shelf.total*74);config.scrollerSize=shelf.total};showLoader();loadSlideshowData();if(browser=="isIE"){shelf.imgOverCont.hide().children('#slideshowBar').css({'bottom':'0px'})}};function loadSlideshowData(){$j.getJSON(config.JSONPath,function(data){shelf.data=data.slideshow;setUpSlideShow();bindEvents();populateThumbs()})};function populateThumbs(){$j.each(shelf.data,function(item,val){shelf.thmbsScroller.find("a[rel="+(item+1)+"]").html("<img height='38' width='74' src="+val.thumbUrl+" />").css('display','block')})};function setUpSlideShow(){$j.address.externalChange(function(event){addressChanged(event.value)});config.thumbsApi=shelf.thmbsScroller.scrollable({clickable:false,items:shelf.thumbs,keyboard:false,loop:false,speed:600,size:config.scrollerSize}).circular({api:true});shelf.thmbsScroller.find("a[rel='1']").parent().addClass('selected');if(window.location.hash==""){if(shelf.total>1){startSlideshow()}else{hideLoader()}}else{addressChanged($j.address.value())}};function startSlideshow(){hideLoader();config.playing=true;shelf.pauseTrigger.removeClass('play');shelf.progress.css('width','0').stop().animate({width:shelf.wrapper.width()-55},config.speed,'linear');config.startTimer=window.setTimeout(function(){showNext()},config.speed)};function pauseSlideShow(){if(config.playing==true){window.clearTimeout(config.startTimer);shelf.progress.stop();shelf.pauseTrigger.addClass('play');config.playing=false}};function showNext(jump){if(config.disabled==false){hideOverview();if(jump==9){config.current=config.current+9;config.move=9;if(config.current>=shelf.total){config.current=0+(config.current-shelf.total)};shelf.thmbsScroller.find(".selected").removeClass("selected").end().find("a[rel="+(config.current+1)+"]").parent().addClass("selected")}else{config.current++;config.move=1;if(config.current>=shelf.total){config.current=0};shelf.thmbsScroller.find(".selected").removeClass("selected").next().addClass('selected')};config.goingRight=true;loadImage(config.current)}};function showPrev(jump){pauseSlideShow();if(config.disabled==false){hideOverview();if(jump==9){config.current=config.current-9;config.move=-9;if(config.current<0){config.current=shelf.total+config.current};shelf.thmbsScroller.find(".selected").removeClass("selected").end().find("a[rel="+(config.current+1)+"]").parent().addClass("selected")}else{config.current--;config.move=-1;if(config.current<0){config.current=shelf.total+config.current};shelf.thmbsScroller.find(".selected").removeClass("selected").prev().addClass('selected')};config.goingRight=false;loadImage(config.current)}};function jumpPrev(){pauseSlideShow();if(config.disabled==false){hideOverview()}};function jumpNext(){if(config.disabled==false){hideOverview()}};function showId(id){pauseSlideShow();if(config.disabled==false){hideOverview();config.move=id-config.current;if(config.move<-Math.floor(config.scrollerSize/2)){config.move=shelf.total-config.current+id;config.goingRight=true}else if(config.move>Math.floor(config.scrollerSize/2)){config.move=(shelf.total-id+config.current)*-1;config.goingRight=false}else{if(id<config.current){config.goingRight=false}else if(id>config.current){config.goingRight=true}};shelf.thmbsScroller.find(".selected").removeClass("selected").end().find("a[rel="+(id+1)+"]").parent().addClass("selected");loadImage(id);config.current=id}};function updateAddress(){$j.address.value(shelf.data[config.current].mediaAddress)};function addressChanged(evtVal){if(evtVal=="/"){config.id=0}else{$j.each(shelf.data,function(item,val){if("/"+val["mediaAddress"]==evtVal+'/'){config.id=item}})};if(config.id==null){config.id=0};showId(config.id)};function loadImage(img){showLoader();config.disabled=true;var tImg=new Image();$j(tImg).load(function(){if(browser=="isIE"){shelf.imgScroller.children('img').remove().end().append(this);shelf.imgScroller.children('img').css({'width':"100%"}).css({'height':"100%"})}else{config.scrollWidth=shelf.wrapper.width();shelf.imgScroller.children('img').css('width',config.scrollWidth).end().css('width',9999);if(config.goingRight==true){shelf.imgScroller.append(this)}else{shelf.imgScroller.css('left',-config.scrollWidth).prepend(this)};$j(this).css('width',config.scrollWidth)};populateOverview();hideLoader();if(browser=="isIE"){config.thumbsApi.move(config.move);window.setTimeout(function(){config.disabled=false},500);updateAddress()}else{if(config.goingRight==true){animateNext()}else{animatePrev()}};if(config.playing==true){shelf.progress.css('width','0').stop().animate({width:shelf.wrapper.width()-55},config.speed,'linear');if(config.startTimer){window.clearTimeout(config.startTimer)}config.startTimer=window.setTimeout(function(){showNext()},config.speed)};shelf.currentImg.text(img+1)}).attr('src',shelf.data[img].mediaURL)};function animateNext(){config.thumbsApi.move(config.move);shelf.imgScroller.animate({left:-config.scrollWidth},600,function(){shelf.imgScroller.css({'width':'auto','left':0}).children('img:first-child').remove().end().children('img').css({'width':"100%"});config.disabled=false;updateAddress()})};function animatePrev(){config.thumbsApi.move(config.move);shelf.imgScroller.animate({left:0},600,function(){shelf.imgScroller.css({'width':'auto','left':0}).children('img:last-child').remove().end().children('img').css({'width':"100%"});config.disabled=false;updateAddress()})};function showLoader(){config.loading=true;shelf.loader.stop().animate({opacity:1},100)};function hideLoader(){shelf.loader.stop().animate({opacity:0},100,function(){config.loading=false})};function showOverlayControls(){if(config.loading==false){if(config.overViewing==false){if(browser=="isIE"){shelf.imgOverCont.show()}else{shelf.imgOverCont.stop().animate({opacity:1},200);shelf.imgOverCont.children('#slideshowBar').stop().animate({bottom:0},200)}}}};function hideOverviewControls(){if(browser=="isIE"){shelf.imgOverCont.hide()}else{shelf.imgOverCont.stop().animate({opacity:0},200);shelf.imgOverCont.children('#slideshowBar').stop().animate({bottom:-29},200)}};function toggleOverview(){if(config.loading==false){pauseSlideShow();if(config.overViewing==true){hideOverview()}else{shelf.overview.show().children('.overlayContent').stop().animate({bottom:0},300,function(){config.overViewing=true;shelf.overviewTrigger.addClass('selected');refreshCufon()})}}};function hideOverview(){if(config.overViewing==true){shelf.overview.children('.overlayContent').stop().animate({bottom:-156},300,function(){config.overViewing=false;shelf.overview.hide();shelf.overviewTrigger.removeClass('selected');refreshCufon()})}};function populateOverview(){var r=shelf.data[config.current];var right=shelf.overview.find('.right'),creds=shelf.overview.find('.credits');right.empty().append("<h2>"+shelf.data[config.current].title+"</h2>");if(shelf.data[config.current].desc)right.append(shelf.data[config.current].desc);creds.empty().append(r.creditCopyright==null?null:'<span>Copyright: '+r.creditCopyright+'</span>').append(r.creditText==null?null:'<span>'+r.creditText+'</span>');if(shelf.data[config.current].creditLinkURL&&shelf.data[config.current].creditLinkText)creds.append(" <span><a href='"+shelf.data[config.current].creditLinkURL+"' target='_blank'>"+shelf.data[config.current].creditLinkText)+"</a></span>";refreshCufon()};function bindEvents(){shelf.overviewTrigger.click(function(e){e.preventDefault();toggleOverview()});if(shelf.total>1){shelf.img.hoverIntent(showOverlayControls,hideOverviewControls);shelf.nav.find('.imgInfoRight').click(function(e){showNext();pauseSlideShow()});shelf.nav.find('.imgInfoLeft').click(function(e){showPrev()});shelf.imgOverCont.find('.imgRight').click(function(e){showNext();pauseSlideShow()});shelf.imgOverCont.find('.imgLeft').click(function(e){showPrev()});if(shelf.total>27){shelf.nav.find('.imgSkipLeft').css('display','inline-block').click(function(e){showPrev(9)});shelf.nav.find('.imgSkipRight').css('display','inline-block').click(function(e){showNext(9);pauseSlideShow()})};$j(document).keydown(function(event){switch(event.keyCode){case 37:showPrev();break;case 38:toggleOverview();break;case 39:showNext();pauseSlideShow();break;case 40:hideOverview();break}});shelf.pauseTrigger.click(function(e){if(config.playing==true){pauseSlideShow()}else{startSlideshow()}})}else{shelf.nav.find('.imgInfoRight').addClass('disabled');shelf.nav.find('.imgInfoLeft').addClass('disabled')};$j('#thumbsMask ul li').each(function(){$j(this).click(function(e){e.preventDefault();var relID=($j(this).children('a').attr('rel')-1);if(relID==config.current)return false;showId(relID)})})};function refreshCufon(){Cufon.refresh()};return{config:config,init:init}}();

/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:2,interval:100,timeout:700};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);

