/*Copyright 2012 Nadrox Inc. All right reserved.*/
if(typeof NADROX==="undefined"||!NADROX){var NADROX={};}if(typeof NADROX.galleries==="undefined"||!NADROX.galleries){NADROX.galleries={};}NADROX.galleries.Presentation=function(userConfig,hookedElement,userSlicesConfig){var inst=this;var D=document;this.status='NA';this.conf={debug:false,base:'',files:[],randomizeFiles:true,srcImg:null,turnOffDesc:true,desc:'img-desc-text',descShadow:'img-desc-text-shadow',displayTime:3,autoStart:true};this.slices={startIndex:0,curIndex:0,part:1,duration:3,sliceDir:1,fade:true,width:77,height:40,unit:'em',randomize:false};this.slicesSet=null;this.slicesImageSet=null;this.descWrapper=null;this.srcElem=null;this._timerID=null;this.isReady=false;inst.stackGoTo=0;inst.isAnimating=true;this.tryShow={index:-1,attempt:0,retryDelay:500,maxAttempt:240,threshold:12,msg:'This site contains hi-resolution images.<br />It is recommanded to use<br />a broadband internet connection.'};this.shuffle=function(a){if(inst.conf.debug){console.debug('shuffle');}var j,x,i;for(i=a.length;i;){j=parseInt(Math.random()*i);x=a[--i];a[i]=a[j];a[j]=x;};return a;};for(var key in userConfig){if(userConfig.hasOwnProperty(key)){if(inst.conf.debug){console.debug('set conf['+key+'] = '+userConfig[key]);}inst.conf[key]=userConfig[key];}}inst.status=(inst.conf.autostart?'playing':'pause');for(var key in userSlicesConfig){if(userSlicesConfig.hasOwnProperty(key)){if(inst.conf.debug){console.debug('set slices['+key+'] = '+userSlicesConfig[key]);}inst.slices[key]=userSlicesConfig[key];}}if(typeof hookedElement=='string'){var tmpEl=D.getElementById(hookedElement);if(!tmpEl||typeof tmpEl=='undefined'){return false;}else{inst.srcElem=tmpEl;}}this._init=function(){if(inst.conf.debug){console.debug('_init');}if(inst.isReady){return true;}inst.slices.curIndex=inst.slices.startIndex;inst.conf.displayTime*=1000;inst.slices.duration*=1000;if(inst.conf.files.length==0){return false;}else{if(inst.conf.randomizeFiles){inst.conf.files=inst.shuffle(inst.conf.files);}for(var i=0;i<inst.conf.files.length;i++){inst.conf.files[i].isAvailable=false;inst.conf.files[i].descIsAvailable=false;inst.conf.files[i].img=new Image();inst.conf.files[i].img.onload=(function(index){return function(){var idx=index;inst.conf.files[idx].isAvailable=true;if(inst.conf.debug){console.debug('image '+idx+' is available!');}};})(i);inst.conf.files[i].img.src=inst.conf.base+inst.conf.files[i].fname;inst.conf.files[i].img.alt=inst.conf.files[i].alt;if(inst.turnOffDesc){inst.conf.files[i].imgDesc=new Image();inst.conf.files[i].imgDesc.onload=(function(index){return function(){var idx=index;inst.conf.files[idx].descIsAvailable=true;if(inst.conf.debug){console.debug('description image '+idx+' is available!');}};})(i);inst.conf.files[i].imgDesc.src=inst.conf.files[i].descblurSrc;}}}inst.slices.totalDuration=inst.slices.duration;with(inst.slices){if(width.constructor.toString().indexOf("Array")==-1){part=1;}else{part=width.length;};if(part>1){duration=[];for(var i=0;i<part;i++){duration.push((totalDuration/part)*(i+1));}if(randomize){duration=inst.shuffle(duration);width=inst.shuffle(width);}}};inst.conf.srcImg=$(inst.srcElem).children('img.fn-slicer')[0];inst.conf.srcImg.style.display='none';inst.conf.srcImg.style.zIndex='1';inst.conf.srcImg.index=inst.slices.startIndex;inst.conf.desc=$('#'+inst.conf.desc)[0];inst.conf.descImg=$(inst.conf.desc).parent().children('img')[0];inst.conf.descShadow=$('#'+inst.conf.descShadow)[0];inst.conf.descShadow.innerHTML=inst.conf.desc.innerHTML=inst.conf.files[inst.slices.startIndex].desc;inst.descWrapper=$('#img-desc');inst.descWrapper.css('opacity',0).css('display','block');var sliceHtml='<span id="tryShowThreshold" style="display:none;padding:3em 10em;color:#7f8084;font-weight:bold;font-size:1.5em;text-align:center;position:relative;z-index:0;">'+inst.tryShow.msg+'</span>';var sumWidth=0;with(inst.slices){for(var i=0;i<part;i++){sliceHtml+='<div class="fn-slice" style="position:absolute;z-index:2;width:'+width[i]+unit+';height:'+height+unit+';'+'left:'+sumWidth+unit+';top:0;overflow:hidden;opacity:0;filter:alpha(opacity=0);"><img class="fn-slicer" src="'+inst.conf.files[startIndex].img.src+'" style="margin-left:-'+sumWidth+unit+';" alt="'+inst.conf.files[startIndex].img.alt+'" /></div>';sumWidth+=width[i];}}$(inst.srcElem).append(sliceHtml);inst.slicesSet=$(inst.srcElem).children('div.fn-slice');inst.slicesImageSet=inst.slicesSet.children('img');inst.slicesSet.each(function(index,refslice){this.show=(function(i,rslice){return function(){var idx=i;var slice=rslice;var callBack=(inst.slices.duration[idx]==inst.slices.totalDuration)?inst.showCallback:null;if(inst.conf.debug){console.debug('slice.show('+idx+')');}$(slice).stop().animate({"opacity":1},(inst.slices.part>1?inst.slices.duration[index]:inst.slices.duration),callBack);};})(index,this);this.hide=(function(i,rslice){return function(){var idx=i;var slice=rslice;var callBack=(inst.slices.duration[idx]==inst.slices.totalDuration)?inst.hideCallback:null;$(slice).stop().animate({"opacity":0},(inst.slices.part>1?inst.slices.duration[index]:inst.slices.duration),callBack);};})(index,this);this.instantShow=(function(rslice){return function(){var slice=rslice;$(slice).css('opacity',1);};})(this);this.instantHide=(function(rslice){return function(){var slice=rslice;$(slice).css('opacity',0);};})(this);});inst.isReady=true;};this._showSlices=function(){if(inst.conf.debug){console.debug('_showSlices');}if(inst.conf.files[inst.slices.curIndex].isAvailable){inst.slicesSet.each(function(index){this.show();});}else{if(inst.tryShow.index!=inst.slices.curIndex){inst.tryShow.index=inst.slices.curIndex;inst.tryShow.attempt=1;}else{inst.tryShow.attempt++;}if(inst.conf.debug){console.dir(inst.tryShow);}if(inst.tryShow.attempt==inst.tryShow.threshold){$('#tryShowThreshold').css('display','block');}if(inst.tryShow.attempt<inst.tryShow.maxAttempt){setTimeout(function(){inst._showSlices();},inst.tryShow.retryDelay);}else{if(inst.conf.debug){console.debug('Max attempt of '+inst.tryShow.maxAttempt+' reach... stop presentation');}clearInterval(inst._timerID);}}};this._hideSlices=function(){if(inst.conf.debug){console.debug('_hideSlices');}inst.slicesSet.each(function(index){this.hide();});};this.prepareNextImage=function(){inst.conf.desc.innerHTML=inst.conf.descShadow.innerHTML=inst.conf.files[inst.conf.srcImg.index].desc;inst.conf.srcImg.src=inst.conf.files[inst.slices.curIndex].img.src;inst.conf.srcImg.alt=inst.conf.files[inst.slices.curIndex].alt;inst.conf.srcImg.index=inst.slices.curIndex;if(inst.conf.debug){console.debug('sliceDir = '+inst.slices.sliceDir);}inst.slices.curIndex+=inst.slices.sliceDir;if(inst.slices.sliceDir>0){if(inst.slices.curIndex>inst.conf.files.length-1){inst.slices.curIndex=0;}}else{if(inst.slices.curIndex<0){inst.slices.curIndex=inst.conf.files.length-1;}}if(inst.slices.randomize){inst.slices.duration=inst.shuffle(inst.slices.duration);}};this.hideCallback=function(){if(inst.conf.debug){console.debug('hideCallback');}inst.slicesImageSet.each(function(index){this.src=inst.conf.srcImg.src;this.alt=inst.conf.srcImg.alt;inst.slicesSet[index].instantShow();});inst.prepareNextImage();if(inst.turnOffDesc){inst.changeImage();}else{inst.showDesc();}};this.showCallback=function(){if(inst.conf.debug){console.debug('showCallback');}inst.conf.srcImg.src=inst.conf.files[inst.slices.startIndex].img.src;inst.slices.curIndex+=inst.slices.sliceDir;if(inst.slices.sliceDir>0){if(inst.slices.curIndex>inst.conf.files.length-1){inst.slices.curIndex=0;}}else{if(inst.slices.curIndex<0){inst.slices.curIndex=inst.conf.files.length-1;}}inst.hideCallback();};this.hideDesc=function(){if(inst.conf.debug){console.debug('hideDesc');}if(inst.status=="playing"){inst.isAnimating=true;$(inst.descWrapper).stop().animate({"opacity":0},750,function(){inst.changeImage();});}};this.showDesc=function(){if(inst.conf.debug){console.debug('showDesc');}if(inst.conf.files[inst.slices.curIndex].descIsAvailable){if(inst.stackGoTo!=0){inst.slices.curIndex=((inst.slices.curIndex+inst.stackGoTo)%(inst.conf.files.length-1))-1;this.prepareNextImage();inst.changeImage();inst.stackGoTo=0;}else{$(inst.descWrapper).stop().animate({"opacity":1},750,function(){inst._timerID=setTimeout(function(){inst.hideDesc();},inst.conf.displayTime);});}}else{inst._timerID=setTimeout(function(){inst.hideDesc();},inst.conf.displayTime);}inst.isAnimating=false;};this.changeImage=function(){if(inst.conf.debug){console.debug('changeImage');}inst.conf.srcImg.style.display='block';clearInterval(inst._timerID);if(inst.status=='playing'){inst._hideSlices();}};if(this.conf.autoStart){inst._init();if(inst.isReady){inst.status='playing';inst._showSlices();}else{return false;}};return{isReady:function(){return inst.isReady;},getPresentation:function(){return inst;},getNbSlides:function(){return inst.conf.files.length;},next:function(){if(inst.isAnimating==true){inst.stackGoTo++;}else{inst.hideDesc();}},prev:function(){if(inst.isAnimating==true){inst.stackGoTo--;}else{inst.slices.curIndex=inst.slices.curIndex-1;inst.conf.srcImg.src=inst.conf.files[inst.slices.curIndex].img.src;inst.conf.srcImg.index=inst.slices.curIndex;}},start:function(){},playPause:function(ev,controlInst){if(inst.status=='playing'){inst.controlInst.ctrl.playPause.addClass('playPause-pause').removeClass('playPause-playing');inst.status='pause';}else{inst.controlInst.ctrl.playPause.addClass('playPause-playing').removeClass('playPause-pause');inst.status='playing';inst.hideDesc();}},status:inst.status,append:function(html){$(inst.srcElem).append(html);},appendControls:function(controlHTML,controlInst){$(inst.srcElem).append(controlHTML);inst.controlInst=controlInst;controlInst.controlsReadyEvent();},getWrapper:function(){return inst.srcElem;}};};NADROX.galleries.controls=function(userConfig,gallery){var inst=this;var D=document;inst.controlsReadyStack=Array();inst.__activeSlideChangedFuncs=Array();inst.__isControlsReady=false;inst.__previousIndex=0;this.galInst=gallery;this.galWrapper=inst.galInst.getWrapper();this.conf={debug:false,baseImageUrl:'themes/eyerick/img/gallery/',visible:true,fadeOnMouseEvent:true,addPlayPause:true,addPreviousNext:true,addBackground:true,addQuickNav:true,buttons:{playPause:{caption:['Start slideshow','%jsConrolsPause%'],id:'btnPlayPause',toggleKey:[],callback:[]},previous:{caption:'Previous picture',navKey:[],callback:[]},next:{caption:'Next picture',navKey:[],callback:[]}},barID:'imgControlsBar',quickNavID:'ControlsBarQuickNav',position:'CSS',displayDelay:1,appendTarget:inst.galInst};this.fadeTimer=false;this.ctrl={bar:null,prev:null,next:null,playPause:null};for(var key in userConfig){if(userConfig.hasOwnProperty(key)){if(inst.conf.debug){console.debug('set conf['+key+'] = '+userConfig[key]);}inst.conf[key]=userConfig[key];}}inst.conf.displayDelay*=1000;this._init=function(){var b,pp,p,n,c,style=false;if(inst.conf.position.toString().toLowerCase()=='css'){inst.conf.position='css';style=false;}else{style=true;}b='<div class="controlsBar-wrapper" id="'+inst.conf.barID+'-wrapper"><div class="controlsBar" id="'+inst.conf.barID+'"'+(style?' style="'+inst.conf.position.bar+'"':'')+'>';if(inst.conf.addBackground){b+='<img class="controlsBarBg" id="'+inst.conf.barID+'Bg" src="'+inst.conf.baseImageUrl+'bg-controls.png" alt="" />';}b+='<div class="buttonWrapper" id="'+inst.conf.barID+'-buttonWrapper">';p="";n="";if(inst.conf.addPreviousNext){p='<div class="btnPrevious" id="'+inst.conf.barID+'-btnPrevious" title="'+inst.conf.buttons.previous.caption+'"><img src="'+inst.conf.baseImageUrl+'prev-control.png" alt="'+inst.conf.buttons.previous.caption+'" /></div>';n='<div class="btnNext" id="'+inst.conf.barID+'-btnNext" title="'+inst.conf.buttons.next.caption+'"><img src="'+inst.conf.baseImageUrl+'next-control.png" alt="'+inst.conf.buttons.next.caption+'" /></div>';}c=inst.conf.buttons.playPause.caption[(inst.galInst.status=='playing'?1:0)];if(inst.conf.addPlayPause){pp='<div class="btnPlayPause playPause-'+inst.galInst.status+'" id="'+inst.conf.barID+'-btnPlayPause" title="'+c+'"><img class="playPause-playing-img" src="'+inst.conf.baseImageUrl+'play-control.png" alt="'+inst.conf.buttons.playPause.caption[0]+'" /><img class="playPause-pause-img" src="'+inst.conf.baseImageUrl+'pause-control.png" alt="'+inst.conf.buttons.playPause.caption[1]+'" /></div>';}else{pp="";}quickNav="";if(inst.conf.addQuickNav){nbSlides=inst.galInst.getNbSlides();if(nbSlides>1){quickNav="<div class='quickNav-wrapper'><div id='"+inst.conf.quickNavID+"'><ul>";for(var i=0;i<nbSlides;i++){quickNav+="<li class='quickNavItem qni-"+i+"'></li>";}quickNav+="</ul></div></div>";}}b=b+p+pp+n+'</div>'+quickNav+'</div></div>';if(typeof inst.conf.appendTarget!=='string'){inst.galInst.appendControls(b,inst);}else{inst.galInst.appendExternalControls(b,inst,inst.conf.appendTarget);inst.galWrapper=$(inst.conf.appendTarget);}inst.ctrl.bar=D.getElementById(inst.conf.barID);inst.ctrl.prev=$(inst.ctrl.bar).find(".btnPrevious");inst.ctrl.next=$(inst.ctrl.bar).find(".btnNext");inst.ctrl.playPause=$(inst.ctrl.bar).find(".btnPlayPause");if(inst.conf.fadeOnMouseEvent){$(inst.galWrapper).mouseenter(function(){inst.fadeTimer=setTimeout(function(){inst.showControl(0.5);},inst.conf.displayDelay);}).mouseleave(function(){if(inst.fadeTimer){clearTimeout(inst.fadeTimer);}inst.fadeTimer=setTimeout(function(){inst.hideControl(0.3);},inst.conf.displayDelay);});$(inst.ctrl.bar).mouseenter(function(){inst.showControl(1);}).mouseleave(function(){inst.hideControl(0.3);});}if(inst.conf.addQuickNav){inst.ctrl.quickNav=D.getElementById(inst.conf.quickNavID);$("#"+inst.conf.quickNavID+" .quickNavItem").each(function(i,value){$(this).click(function(){inst.galInst.jumpTo(i);});});}if(inst.ctrl.prev&&inst.ctrl.next){inst.ctrl.prev.click(function(){inst.galInst.prev();});inst.ctrl.next.click(function(){inst.galInst.next();});}if(inst.conf.addPlayPause){inst.ctrl.playPause.click(function(ev){inst.galInst.playPause(ev,inst);});}};inst.setActiveSlide=function(index){if(inst.conf.addQuickNav){$("#"+inst.conf.quickNavID+" .quickNavItem.active").removeClass("active");$("#"+inst.conf.quickNavID+" .quickNavItem:eq("+index+")").addClass("active");inst.activeSlideChanged(inst.__previousIndex,index);inst.__previousIndex=index;}};inst.activeSlideChanged=function(){if($.isFunction(arguments[0])){inst.__activeSlideChangedFuncs.push(arguments[0]);}else{for(var i in inst.__activeSlideChangedFuncs){inst.__activeSlideChangedFuncs[i](arguments[0],arguments[1]);}}};this.showControl=function(opacity){var curOpacity=$(inst.ctrl.bar).css('opacity');if(opacity>curOpacity){$(inst.ctrl.bar).stop().animate({'opacity':opacity},1000*(Math.abs(opacity-curOpacity)));}};this.hideControl=function(opacity){var curOpacity=$(inst.ctrl.bar).css('opacity');if(opacity<curOpacity){$(inst.ctrl.bar).stop().animate({'opacity':opacity},1000*curOpacity);}};this.controlReady=function(func){if(inst.__isControlsReady){func();}else{inst.controlsReadyStack.push(func);}};this.controlsReadyEvent=function(){inst.__isControlsReady=true;for(var i in inst.controlsReadyStack){inst.controlsReadyStack[i]();}};inst._init();};NADROX.galleries.SimpleSS=function(userConfig){var inst=this;inst.curSlide=0;inst.prevSlide=0;inst.slides=Array();inst.currentTimeout=0;inst.isStopped=false;inst.controlInst=null;inst.conf={target:"",slides:[],speed:5000,fadeSpeed:1000};inst.animate=function(firstOccurance){clearTimeout(inst.currentTimeout);if(firstOccurance){$(inst.slides[inst.curSlide]).fadeIn(inst.conf.fadeSpeed);}else{$(inst.slides[inst.curSlide]).css("display","block").css("z-index","1");$(inst.slides[inst.prevSlide]).css("z-index","2").fadeOut(inst.conf.fadeSpeed);}inst.prevSlide=inst.curSlide;if(inst.controlInst){inst.controlInst.setActiveSlide(inst.curSlide);}inst.curSlide++;if(inst.curSlide==inst.slides.length){inst.curSlide=0;}if(!inst.isStopped&&inst.conf.speed>0){inst.currentTimeout=setTimeout(function(){inst.animate(false);},inst.conf.speed);}};inst._init=function(){for(var key in userConfig){if(userConfig.hasOwnProperty(key)){inst.conf[key]=userConfig[key];}}$(inst.conf.target).css("position","relative").css("z-index","1");for(var i in inst.conf.slides){inst.slides.push(new Image());inst.slides[i].isReady=false;inst.slides[i].style.display="none";inst.slides[i].style.position="absolute";inst.slides[i].style.top="0";inst.slides[i].style.left="0";inst.slides[i].style.zIndex=inst.conf.slides.length-i;if(i!=0){inst.slides[i].onload=function(){this.isReady=true;};}else{inst.slides[i].onload=function(){this.isReady=true;inst.animate(true);};}inst.slides[i].src="uploads"+inst.conf.slides[i].path;$(inst.conf.target).append(inst.slides[i]);};if(inst.conf.slides.length<2){inst.isStopped=true;}else{$(inst.conf.target).mouseenter(function(){inst.isStopped=true;clearTimeout(inst.currentTimeout);});$(inst.conf.target).mouseleave(function(){if(inst.conf.speed>0){inst.isStopped=false;inst.currentTimeout=setTimeout(function(){inst.animate(false);},inst.conf.speed);}});}};inst.getWrapper=function(){return inst.conf.target;};inst.appendControls=function(controlHTML,controlInst){$(inst.conf.target).append(controlHTML);inst.controlInst=controlInst;controlInst.controlsReadyEvent();};inst.getNbSlides=function(){return inst.conf.slides.length;};inst.jumpTo=function(index){shownSlide=(inst.curSlide==0?inst.slides.length-1:inst.curSlide-1);if(shownSlide!=index){clearTimeout(inst.currentTimeout);inst.curSlide=index;inst.animate();}};inst.prev=function(){toShow=(inst.curSlide==1?inst.slides.length-1:(inst.curSlide==0?inst.slides.length-2:inst.curSlide-2));clearTimeout(inst.currentTimeout);inst.curSlide=toShow;inst.animate();};inst.next=function(){inst.animate();};inst._init();};
