function Slider_Abstract(){this.initialized=false;}$.extend(Slider_Abstract.prototype,{setSettings:function(settings){this.settings=$.extend({},$.fn.slider.defaults,settings||{});},init:function($slider,settings){this.setSettings(settings);if(!this.initialized){this.pane=null;this.prevPageNav=null;this.nextPageNav=null;this.items=null;this.itemDimension=0;this.animation=false;this.mouseWheelContainer=null;this.wipeTouch=null;this.slider=$slider;this.createHtml();this.initialized=true;}this.cssAnimationSupport=this.supportsCssAnimation();this.bindEvents();this.initPanePosition();this.refreshItems(true);},initPanePosition:function(){this.setPanePosition(0);},refreshItems:function(centerItem){this.items=this.pane.children();if(this.items.length>1){this.itemDimension=this.getItemDimension();this.initPaneDimensions();this.initSliderDimensions();if(centerItem){this.centerSelectedItem(false);}this.adjustNavigation();}},addItem:function(item,position,centerItem){if(this.cssAnimationSupport){item.css("-webkit-backface-visibility","hidden");item.css("-webkit-perspective","1000");}if(position=="before"){this.pane.prepend(item);}else{this.pane.append(item);}this.refreshItems(centerItem);},deleteItem:function(index,centerItem){var item=$(this.items[index]);if(item){item.remove();delete this.items[index];this.refreshItems(centerItem);}},bindEvents:function(){if(this.mouseWheelContainer){this.mouseWheelContainer.unmousewheel();}if(this.settings.mouseWheelContainer){this.mouseWheelContainer=this.settings.mouseWheelContainer;this.mouseWheelContainer.mousewheel($.proxy(this.mouseWheel,this));}if(this.settings.enableKeys){this.keyDownHandler=$.proxy(function(event){this.keyDown(event);},this);$(document).keydown(this.keyDownHandler);}if(this.settings.wipeTouchContainer){var wipeTouchContainer=this.settings.wipeTouchContainer;wipeTouchContainer.wipetouch({tapToClick:true,moveX:this.settings.wipeTouchMinMove,moveY:this.settings.wipeTouchMinMove,allowVertical:this.allowVerticalWipeTouch,allowHorizontal:this.allowHorizontalWipeTouch,wipeMove:$.proxy(function(result){this.wipeMove(result);},this),wipeLeft:$.proxy(function(result){this.wipeNextPage(result);},this),wipeRight:$.proxy(function(result){this.wipePrevPage(result);},this),wipeUp:$.proxy(function(result){this.wipePrevPage(result);},this),wipeDown:$.proxy(function(result){this.wipeNextPage(result);},this)});this.wipeTouch=wipeTouchContainer.wipetouch("get");}},mouseWheel:function(event,delta){event.preventDefault();if(this.animation){return;}if(delta<0){this.nextPage();}if(delta>0){this.prevPage();}},keyDown:function(event){var code=event.charCode||event.keyCode;switch(code){case 37:if(this.allowHorizontalKeys){event.preventDefault();this.prevPage();}break;case 39:if(this.allowHorizontalKeys){event.preventDefault();this.nextPage();}break;case 38:if(this.allowVerticalKeys){event.preventDefault();this.prevPage();}break;case 40:if(this.allowVerticalKeys){event.preventDefault();this.nextPage();}break;}},wipePrevPage:function(result){if(this.animation){return;}var itemsToMove=this.settings.wipeTouchItemsToMove?this.settings.wipeTouchItemsToMove-1:result.speed;var panePosition=this.getPanePosition();var paneOffset=this.getPaneOffset1();var move=itemsToMove*this.itemDimension;var settings={effect:this.settings.wipeTouchEasingEffect,speed:this.settings.wipeTouchEasingSpeed};if(panePosition>0){move=-panePosition;}else{var paneItemOffset=Math.ceil(panePosition/this.itemDimension)*this.itemDimension-panePosition;move+=paneItemOffset>=(this.itemDimension*this.settings.wipeTouchItemTreshold)?paneItemOffset:(paneItemOffset-this.itemDimension);move=Math.min(move,paneOffset);if(this.settings.wipeRightCallback){settings.callback=this.settings.wipeRightCallback;}}if(move!=0){this.animate(panePosition+move,settings);}},wipeNextPage:function(result){if(this.animation){return;}var itemsToMove=this.settings.wipeTouchItemsToMove?this.settings.wipeTouchItemsToMove-1:result.speed;var panePosition=this.getPanePosition();var paneOffset=this.getPaneOffset2();var move=itemsToMove*this.itemDimension;var maxMove=this.getSliderDimension()-this.getPaneDimension();var settings={effect:this.settings.wipeTouchEasingEffect,speed:this.settings.wipeTouchEasingSpeed};if(panePosition<maxMove){move=panePosition-maxMove;}else{var paneItemOffset=Math.ceil(panePosition/this.itemDimension)*this.itemDimension-panePosition;move+=paneItemOffset<=(this.itemDimension*this.settings.wipeTouchItemTreshold)?-paneItemOffset:(this.itemDimension-paneItemOffset);move=Math.min(move,paneOffset);if(this.settings.wipeLeftCallback){settings.callback=this.settings.wipeLeftCallback;}}if(move!=0){this.animate(panePosition-move,settings);}},wipeMove:function(result){if(!this.settings.wipeTouchEnableMoveWhileAnimation&&this.animation){return;}if(this.animation){this.stopAnimation();}var move=result.deltaX;var position=this.getPanePosition();var maxMove=this.getSliderDimension()-this.getPaneDimension();if(position+move<maxMove-this.settings.wipeTouchElasticLength){move=maxMove-position-this.settings.wipeTouchElasticLength;}this.setPanePosition(position+move);},adjustNavigation:function(){if(this.settings.createNavigation){this.prevPageNav.addClass("hidden");this.nextPageNav.addClass("hidden");if(this.getSliderDimension()<this.getPaneDimension()){var paneOffset1=this.getPaneOffset1();var paneOffset2=this.getPaneOffset2();this.prevPageNav.removeClass("hidden");this.nextPageNav.removeClass("hidden");this.prevPageNav.removeClass("disabled");this.nextPageNav.removeClass("disabled");if(paneOffset1==0){this.prevPageNav.addClass("disabled");}if(paneOffset2==0){this.nextPageNav.addClass("disabled");}}}},centerSelectedItem:function(animate){var selectedElement=this.pane.find(".selected");if(selectedElement.length>0){var elementMargin=this.getElementMargin(selectedElement);var elementPosition=this.getElementPosition(selectedElement);var prevItemCount=(elementPosition+elementMargin)/this.itemDimension;var sliderDimension=Math.floor((this.getSliderDimension()+elementMargin)/this.itemDimension)*(this.itemDimension-1);var prevItemInViewCount=Math.floor((sliderDimension/2)/this.itemDimension);var itemsToMove=Math.max(prevItemCount-prevItemInViewCount,0);var position=Math.min(itemsToMove*this.itemDimension,this.getPaneDimension()-this.getSliderDimension());if(animate){if(parseInt(-position)!=parseInt(this.getPanePosition())){this.animate(-position);}}else{this.setPanePosition(-position);}}return null;},selectItem:function(index,centerItem,animate){if(index>=0&&index<this.items.length){this.items.removeClass("selected");$(this.items[index]).addClass("selected");if(centerItem){this.centerSelectedItem(animate);}this.adjustNavigation();}},getPaneOffset1:function(){return Math.abs(this.getPanePosition());},getPaneOffset2:function(){return this.getPaneDimension()+this.getPanePosition()-this.getSliderDimension();},createHtml:function(){var items=this.slider.children();this.slider.css("position","relative");this.slider.css("overflow","hidden");this.slider.addClass(this.sliderTypeClass);this.pane=$('<div class="pane"/>');this.slider.append(this.pane);this.pane.css("display","block");this.pane.css("position","absolute");this.pane.css("left",0);this.pane.css("top",0);this.initPanePosition();items.each($.proxy(function(index,element){this.pane.append($(element));},this));if(this.settings.createNavigation){this.prevPageNav=$('<div class="sliderNavBt prevPage"/>');this.nextPageNav=$('<div class="sliderNavBt nextPage"/>');this.prevPageNav.insertBefore(this.slider);this.nextPageNav.insertAfter(this.slider);this.prevPageNav.addClass(this.sliderTypeClass);this.nextPageNav.addClass(this.sliderTypeClass);this.prevPageNav.click($.proxy(this.prevPage,this));this.nextPageNav.click($.proxy(this.nextPage,this));}},prevPage:function(){if(this.animation){return;}var panePosition=this.getPanePosition();var paneOffset=this.getPaneOffset1();var move=this.settings.itemsToMove*this.itemDimension;move=Math.min(move,paneOffset);this.animate(panePosition+move);},nextPage:function(){if(this.animation){return;}var panePosition=this.getPanePosition();var paneOffset=this.getPaneOffset2();var move=this.settings.itemsToMove*this.itemDimension;move=Math.min(move,paneOffset);this.animate(panePosition-move);},animationEnd:function(callback){if(callback){callback();}this.stopAnimation();this.adjustNavigation();},stopAnimation:function(){if(this.wipeTouch){this.wipeTouch.start();}this.animation=false;this.pane.stop();if(this.cssAnimationSupport){this.pane.unbind("webkitTransitionEnd");this.pane.unbind("transitionend");this.pane.unbind("oTransitionEnd");this.pane.unbind("MSTransitionEnd");}},startAnimation:function(){if(this.wipeTouch){this.wipeTouch.stop();}this.animation=true;},supportsCssAnimation:function(){if(!this.settings.cssAnimation){return false;}var b=document.body||document.documentElement;var s=b.style;var p="transition";if(typeof s[p]=="string"){return true;}v=["Moz","Webkit","Khtml","O","ms"],p=p.charAt(0).toUpperCase()+p.substr(1);for(var i=0;i<v.length;i++){if(typeof s[v[i]+p]=="string"){return true;}}return false;},css:function(element,property,value){if(value){element.css("-ms-"+property,value);element.css("-moz-"+property,value);element.css("-webkit-"+property,value);element.css("-o-"+property,value);}else{var value1=element.css("-ms-"+property);var value2=element.css("-moz-"+property);var value3=element.css("-webkit-"+property);var value4=element.css("-o-"+property);return value1||value2||value3||value4;}},getCssAnimationEffect:function(uiEffect){switch(uiEffect){case"linear":return"linear";case"swing":case"easeOutSine":case"easeOutExpo":case"easeOutCirc":case"easeOutCubic":case"easeOutQuad":case"easeOutQuart":case"easeOutQuint":return"ease-out";case"easeInSine":case"easeInExpo":case"easeInCirc":case"easeInCubic":case"easeInQuad":case"easeInQuart":case"easeInQuint":return"ease-in";case"easeInOutSine":case"easeInOutExpo":case"easeInOutCirc":case"easeInOutCubic":case"easeInOutQuad":case"easeInOutQuart":case"easeInOutQuint":return"ease-in-out";default:return"default";}}});function Slider_Horizontal(){this.sliderTypeClass="horizontal";this.allowVerticalWipeTouch=false;this.allowHorizontalWipeTouch=true;this.allowVerticalKeys=false;this.allowHorizontalKeys=true;}$.extend(Slider_Horizontal.prototype,Slider_Abstract.prototype,{initPaneDimensions:function(){var width=0;if(this.items.length>0){width+=$(this.items[0]).outerWidth(true);}if(this.items.length>1){width+=$(this.items[this.items.length-1]).outerWidth(true);}if(this.items.length>2){width+=this.itemDimension*(this.items.length-2);}this.pane.width(width);},initSliderDimensions:function(){this.slider.attr("style",this.slider.attr("style").toLowerCase().replace(/width[^;]+;?/,""));if(this.slider.width()>this.pane.width()){this.slider.width(this.pane.width());}},getItemDimension:function(){return $(this.items[1]).outerWidth(true);},getItemPosition:function(item){return item.position().left;},getPanePosition:function(){if(this.cssAnimationSupport){var matrix=this.css(this.pane,"transform");if(matrix&&matrix!="none"){var match=matrix.match(/matrix\((.+?),\s*(.+?),\s*(.+?),\s*(.+?),\s*(.+?),\s*(.+?)\)/);if(match){return parseInt(match[5].replace("px",""));}}return 0;}return this.pane.position().left;},setPanePosition:function(left){if(this.cssAnimationSupport){this.css(this.pane,"transition","none");this.css(this.pane,"transform","translateX("+left+"px)");}else{this.pane.css("left",left);}},getPaneDimension:function(){return this.pane.width();},getSliderDimension:function(){return this.slider.width();},getElementMargin:function(element){return parseInt(element.css("margin-left"));},getElementPosition:function(element){return element.position().left;},animate:function(move,settings){this.startAnimation();var defaultSettings={effect:this.settings.easingEffect,speed:this.settings.speed,callback:null};var mergedSettings=$.extend({},defaultSettings,settings||{});if(this.cssAnimationSupport){this.pane.css("-webkit-backface-visibility","hidden");this.pane.css("-webkit-perspective","1000");this.pane.bind("webkitTransitionEnd",$.proxy(function(){this.animationEnd(mergedSettings.callback);},this));this.pane.bind("transitionend",$.proxy(function(){this.animationEnd(mergedSettings.callback);},this));this.pane.bind("MSTransitionEnd",$.proxy(function(){this.animationEnd(mergedSettings.callback);},this));this.pane.bind("oTransitionEnd",$.proxy(function(){this.animationEnd(mergedSettings.callback);},this));this.css(this.pane,"transition-property","all");this.css(this.pane,"transition-duration",(mergedSettings.speed/1000)+"s");this.css(this.pane,"transition-timing-function",this.getCssAnimationEffect(mergedSettings.effect));this.css(this.pane,"transform","translateX("+move+"px)");}else{this.pane.animate({left:move},mergedSettings.speed,mergedSettings.effect,$.proxy(function(){this.animationEnd(mergedSettings.callback);},this));}}});(function($){var types={horizontal:1,vertical:2};var methods={init:function(type,settings){var ret;this.each(function(){var $this=$(this);var slider=$this.data("slider");if(!slider){if(type==types.vertical){slider=new Slider_Vertical();}else{slider=new Slider_Horizontal();}}var mergedSettings=$.extend({},$.fn.slider.defaults,settings||{});slider.init($this,mergedSettings);$this.data("slider",slider);});return ret;},get:function(){var slider=this.data("slider");if(!slider){$.error("Method get must be call after init on jQuery.slider");}return slider;}};$.extend($.fn,{slider:function(type,method){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,2));}else{if(typeof method==="object"||!method){return methods.init.apply(this,arguments);}else{$.error("Method "+method+" does not exist on jQuery.slider");}}},verticalSlider:function(method){return this.slider(types.vertical,method);},horizontalSlider:function(method){return this.slider(types.horizontal,method);}});$.fn.slider.defaults={speed:400,itemsToMove:3,createNavigation:true,mouseWheelContainer:null,enableKeys:false,easingEffect:"linear",cssAnimation:false,wipeTouchContainer:null,wipeTouchItemsToMove:null,wipeTouchEasingSpeed:1000,wipeTouchEasingEffect:"linear",wipeTouchMinMove:5,wipeTouchItemTreshold:0,wipeLeftCallback:null,wipeRightCallback:null,wipeTouchEnableMoveWhileAnimation:true};})(jQuery);function Slider_Vertical(){this.sliderTypeClass="vertical";this.allowVerticalWipeTouch=true;this.allowHorizontalWipeTouch=false;this.allowVerticalKeys=true;this.allowHorizontalKeys=false;}$.extend(Slider_Vertical.prototype,Slider_Abstract.prototype,{initPaneDimensions:function(){var height=0;if(this.items.length>0){height+=$(this.items[0]).outerHeight(true);}if(this.items.length>1){height+=$(this.items[this.items.length-1]).outerHeight(true);}if(this.items.length>2){height+=this.itemDimension*(this.items.length-2);}this.pane.height(height);},initSliderDimensions:function(){this.slider.attr("style",this.slider.attr("style").toLowerCase().replace(/height[^;]+;?/,""));if(this.slider.height()>this.pane.height()){this.slider.height(this.pane.height());}},getItemDimension:function(){return $(this.items[1]).outerHeight(true);},getItemPosition:function(item){return item.position().top;},getPanePosition:function(){if(this.cssAnimationSupport){var matrix=this.css(this.pane,"transform");if(matrix&&matrix!="none"){var match=matrix.match(/matrix\((.+?),\s*(.+?),\s*(.+?),\s*(.+?),\s*(.+?),\s*(.+?)\)/);if(match){return parseInt(match[6].replace("px",""));}}return 0;}return this.pane.position().top;},setPanePosition:function(top){if(this.cssAnimationSupport){this.css(this.pane,"transition","none");this.css(this.pane,"transform","translateY("+top+"px)");}else{this.pane.css("top",top);}},getPaneDimension:function(){return this.pane.height();},getSliderDimension:function(){return this.slider.height();},getElementMargin:function(element){return parseInt(element.css("margin-top"));},getElementPosition:function(element){return element.position().top;},animate:function(move,settings){this.startAnimation();var defaultSettings={effect:this.settings.easingEffect,speed:this.settings.speed,callback:null};var mergedSettings=$.extend({},defaultSettings,settings||{});if(this.cssAnimationSupport){this.pane.bind("webkitTransitionEnd",$.proxy(function(){this.animationEnd(mergedSettings.callback);},this));this.pane.bind("transitionend",$.proxy(function(){this.animationEnd(mergedSettings.callback);},this));this.pane.bind("MSTransitionEnd",$.proxy(function(){this.animationEnd(mergedSettings.callback);},this));this.pane.bind("oTransitionEnd",$.proxy(function(){this.animationEnd(mergedSettings.callback);},this));this.css(this.pane,"transition-property","all");this.css(this.pane,"transition-duration",(mergedSettings.speed/1000)+"s");this.css(this.pane,"transition-timing-function",this.getCssAnimationEffect(mergedSettings.effect));this.css(this.pane,"transform","translateY("+move+"px)");}else{this.pane.animate({top:move},mergedSettings.speed,mergedSettings.effect,$.proxy(function(){this.animationEnd(mergedSettings.callback);},this));}}});(function($){var methods={init:function(settings){var ret;this.each(function(){var $this=$(this);var thumbZoom=$this.data("thumbZoom");if(!thumbZoom){thumbZoom=new ThumbZoom(settings);thumbZoom.init($this);$this.data("thumbZoom",thumbZoom);}ret=ret?ret.add($this):$this;});return ret;},get:function(){var ret=[];this.each(function(){var $this=$(this);var thumbZoom=$this.data("thumbZoom");if(!thumbZoom){$.error("Method get must be call after init on jQuery.thumbZoom");}ret.push(thumbZoom);});return ret;}};$.extend($.fn,{thumbZoom:function(method){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1));}else{if(typeof method==="object"||!method){return methods.init.apply(this,arguments);}else{$.error("Method "+method+" does not exist on jQuery.slider");}}}});$.fn.thumbZoom.defaults={zoomSize:100};})(jQuery);function ThumbZoom(settings){this.settings=$.extend({},$.fn.thumbZoom.defaults,settings||{});this.clone=null;}$.extend(ThumbZoom.prototype,{init:function($thumb){this.thumb=$thumb;this.thumb.mouseenter($.proxy(this.show,this));this.thumb.mouseleave($.proxy(this.thumbLeave,this));},thumbLeave:function(event){var target=$(event.relatedTarget);while(target.length>0&&target[0]!=$("body")[0]){if(target[0]==this.clone[0]){return;}target=target.parent();}this.hide();},show:function(){this.clone=this.thumb.clone(true);this.clone.mouseleave($.proxy(this.hide,this));this.clone.unbind("mouseenter");this.clone.unbind("click");this.clone.click($.proxy(this.cloneClick,this));$("body").append(this.clone);var cloneImage=this.clone.find("img")[0];$(cloneImage).removeAttr("width");$(cloneImage).removeAttr("height");var size=this.settings.zoomSize;cloneImage.width=size;cloneImage.height=size;this.clone.addClass("zoomed");this.clone.css("z-index",500);this.clone.css("position","absolute");this.clone.css("top",0);this.clone.css("left",0);var thumbPosition=this.thumb.offset();var left=thumbPosition.left-((this.clone.outerWidth()-this.thumb.outerWidth())/2)-parseInt($("body").css("margin-left"));var top=thumbPosition.top-((this.clone.outerHeight()-this.thumb.outerHeight())/2)-parseInt($("body").css("margin-top"));this.clone.css("top",top);this.clone.css("left",left);},hide:function(){if(this.clone){this.clone.remove();this.clone=null;}},cloneClick:function(){this.thumb.trigger("click");this.hide();this.show();}});(function($){var methods={init:function(settings){var ret;this.each(function(){var $this=$(this);var wipetouch=$this.data("wipetouch");if(!wipetouch){wipetouch=new WipeTouch();}wipetouch.init($this,settings);$this.data("wipetouch",wipetouch);ret=ret?ret.add($this):$this;});return ret;},get:function(){var wipetouch=this.data("wipetouch");if(!wipetouch){$.error("Method get must be call after init on jQuery.wipetouch");}return wipetouch;}};$.extend($.fn,{wipetouch:function(method){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1));}else{if(typeof method==="object"||!method){return methods.init.apply(this,arguments);}else{$.error("Method "+method+" does not exist on jQuery.wipetouch");}}}});$.fn.wipetouch.defaults={moveX:40,moveY:40,preventDefault:true,allowDiagonal:false,allowVertical:true,allowHorizontal:true,tapToClick:false,wipeLeft:false,wipeRight:false,wipeUp:false,wipeDown:false,wipeUpLeft:false,wipeDownLeft:false,wipeUpRight:false,wipeDownRight:false,wipeMove:false};})(jQuery);function WipeTouch(){this.element=null;this.active=true;this.startX=false;this.startY=false;this.startDate=false;this.curX=false;this.curY=false;this.isMoving=false;this.touchedElement=false;}$.extend(WipeTouch.prototype,{init:function($element,settings){this.element=$element;this.settings=$.extend({},$.fn.wipetouch.defaults,settings||{});this.clear();this.resetTouch();if("ontouchstart" in document.documentElement){this.element[0].addEventListener("touchstart",$.proxy(this.onTouchStart,this),false);this.element[0].addEventListener("touchend",$.proxy(this.onTouchEnd,this),false);}this.active=true;},clear:function(){if("ontouchstart" in document.documentElement){this.element[0].removeEventListener("touchstart",$.proxy(this.onTouchStart,this),false);this.element[0].removeEventListener("touchend",$.proxy(this.onTouchEnd,this),false);}},onTouchStart:function(e){if(this.settings.preventDefault){e.preventDefault();}if(!this.active){return;}if(!this.isMoving&&e.touches.length>0){this.startDate=new Date().getTime();this.startX=e.touches[0].pageX;this.startY=e.touches[0].pageY;this.curX=this.startX;this.curY=this.startY;this.isMoving=true;this.touchedElement=$(e.target);this.element[0].removeEventListener("touchmove",$.proxy(this.onTouchMove,this),false);this.element[0].addEventListener("touchmove",$.proxy(this.onTouchMove,this),false);}},onTouchEnd:function(e){if(!this.active){return;}if(this.isMoving){this.element[0].removeEventListener("touchmove",$.proxy(this.onTouchMove,this),false);this.touchCalculate(e);}},onTouchMove:function(e){if(this.settings.preventDefault){e.preventDefault();}if(!this.active){return;}if(this.isMoving){var result={};result.deltaX=e.touches[0].pageX-this.curX;result.deltaY=e.touches[0].pageY-this.curY;this.curX=e.touches[0].pageX;this.curY=e.touches[0].pageY;this.triggerEvent(this.settings.wipeMove,result);}},touchCalculate:function(e){var endDate=new Date().getTime();var ms=this.startDate-endDate;var x=this.curX;var y=this.curY;var dx=x-this.startX;var dy=y-this.startY;var ax=Math.abs(dx);var ay=Math.abs(dy);if(ax<this.settings.moveX&&ay<this.settings.moveY&&ms<100){if(this.touchedElement[0].nodeName=="#text"){this.touchedElement=this.touchedElement.parent();}this.touchedElement.trigger("click");this.resetTouch();return;}var toright=dx>0;var tobottom=dy>0;var s=((ax+ay)*60)/((ms)/15*(ms));if(s<1){s=1;}if(s>10){s=10;}var result={speed:parseInt(s),x:ax,y:ay};if(ax>=this.settings.moveX){if(this.settings.allowDiagonal&&ay>=this.settings.moveY){if(toright&&tobottom){this.triggerEvent(this.settings.wipeDownRight,result);}else{if(toright&&!tobottom){this.triggerEvent(this.settings.wipeUpRight,result);}else{if(!toright&&tobottom){this.triggerEvent(this.settings.wipeDownLeft,result);}else{this.triggerEvent(this.settings.wipeUpLeft,result);}}}}else{if(ax>=ay){if(this.settings.allowHorizontal){if(toright){this.triggerEvent(this.settings.wipeRight,result);}else{this.triggerEvent(this.settings.wipeLeft,result);}}else{if(tobottom){this.triggerEvent(this.settings.wipeDown,result);}else{this.triggerEvent(this.settings.wipeUp,result);}}}}}if(ay>=this.settings.moveY&&ay>ax){if(this.settings.allowVertical){if(tobottom){this.triggerEvent(this.settings.wipeDown,result);}else{this.triggerEvent(this.settings.wipeUp,result);}}else{if(toright){this.triggerEvent(this.settings.wipeRight,result);}else{this.triggerEvent(this.settings.wipeLeft,result);}}}if(this.settings.preventDefault){e.preventDefault();}this.resetTouch();},resetTouch:function(){this.startX=false;this.startY=false;this.startDate=false;this.isMoving=false;},start:function(){this.resetTouch();this.active=true;},stop:function(){this.active=false;this.resetTouch();},triggerEvent:function(wipeEvent,result){if(wipeEvent){wipeEvent(result);}}});var Cookies={init:function(){var allCookies=document.cookie.split("; ");for(var i=0;i<allCookies.length;i++){var cookiePair=allCookies[i].split("=");this[cookiePair[0]]=cookiePair[1];}},create:function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}else{var expires="";}document.cookie=name+"="+value+expires+"; path=/";this[name]=value;},erase:function(name){this.create(name,"",-1);this[name]=undefined;}};Cookies.init();var Hash={createId:function(relation,index){return relation+"-"+index;},parseId:function(hash){var urlId={relation:null,index:null};var matches=hash.replace("#","").match(/^(.+)-(\d+)/);if(matches){urlId.relation=matches[1];urlId.index=parseInt(matches[2]);}return urlId;},clear:function(){window.location.hash="_";}};(function($){var locationWrapper={put:function(hash,win){(win||window).location.hash=this.encoder(hash);},get:function(win){var hash=((win||window).location.hash).replace(/^#/,"");try{return $.browser.mozilla?hash:decodeURIComponent(hash);}catch(error){return hash;}},encoder:encodeURIComponent};var iframeWrapper={id:"__jQuery_history",init:function(){if($("#"+this.id).length==0){var html='<iframe id="'+this.id+'" style="display:none" src="javascript:false;" />';$("body").prepend(html);}return this;},_document:function(){return $("#"+this.id)[0].contentWindow.document;},put:function(hash){var doc=this._document();doc.open();doc.close();locationWrapper.put(hash,doc);},get:function(){return locationWrapper.get(this._document());}};function initObjects(options){options=$.extend({unescape:false},options||{});locationWrapper.encoder=encoder(options.unescape);function encoder(unescape_){if(unescape_===true){return function(hash){return hash;};}if(typeof unescape_=="string"&&(unescape_=partialDecoder(unescape_.split("")))||typeof unescape_=="function"){return function(hash){return unescape_(encodeURIComponent(hash));};}return encodeURIComponent;}function partialDecoder(chars){var re=new RegExp($.map(chars,encodeURIComponent).join("|"),"ig");return function(enc){return enc.replace(re,decodeURIComponent);};}}var implementations={};implementations.base={callback:undefined,type:undefined,check:function(){},load:function(hash){},init:function(callback,options){initObjects(options);self.callback=callback;self._options=options;self._init();},_init:function(){},_options:{}};implementations.timer={_appState:undefined,_init:function(){var current_hash=locationWrapper.get();self._appState=current_hash;self.callback(current_hash);setInterval(self.check,100);},check:function(){var current_hash=locationWrapper.get();if(current_hash!=self._appState){self._appState=current_hash;if(!self.hashLoaded){self.callback(current_hash);}}self.hashLoaded=false;},load:function(hash){if(hash!=self._appState){self.hashLoaded=true;locationWrapper.put(hash);self._appState=hash;}}};implementations.iframeTimer={_appState:undefined,_init:function(){var current_hash=locationWrapper.get();self._appState=current_hash;iframeWrapper.init().put(current_hash);self.callback(current_hash);setInterval(self.check,100);},check:function(){var iframe_hash=iframeWrapper.get(),location_hash=locationWrapper.get();if(location_hash!=iframe_hash){if(location_hash==self._appState){self._appState=iframe_hash;locationWrapper.put(iframe_hash);self.callback(iframe_hash);}else{self._appState=location_hash;iframeWrapper.put(location_hash);}}self.hashLoaded=false;},load:function(hash){if(hash!=self._appState){self.hashLoaded=true;locationWrapper.put(hash);iframeWrapper.put(hash);self._appState=hash;}}};implementations.hashchangeEvent={_init:function(){self.callback(locationWrapper.get());$(window).bind("hashchange",self.check);},check:function(){if(!self.hashLoaded){self.callback(locationWrapper.get());}self.hashLoaded=false;},load:function(hash){self.hashLoaded=true;locationWrapper.put(hash);}};var self=$.extend({},implementations.base);if($.browser.msie&&($.browser.version<8||document.documentMode<8)){self.type="iframeTimer";}else{if("onhashchange" in window){self.type="hashchangeEvent";}else{self.type="timer";}}$.extend(self,implementations[self.type]);$.history=self;})(jQuery);(function($){var types=["DOMMouseScroll","mousewheel"];$.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var i=types.length;i;){this.addEventListener(types[--i],handler,false);}}else{this.onmousewheel=handler;}},teardown:function(){if(this.removeEventListener){for(var i=types.length;i;){this.removeEventListener(types[--i],handler,false);}}else{this.onmousewheel=null;}}};$.fn.extend({mousewheel:function(fn){return fn?this.bind("mousewheel",fn):this.trigger("mousewheel");},unmousewheel:function(fn){return this.unbind("mousewheel",fn);}});function handler(event){var orgEvent=event||window.event,args=[].slice.call(arguments,1),delta=0,returnValue=true,deltaX=0,deltaY=0;event=$.event.fix(orgEvent);event.type="mousewheel";if(event.wheelDelta){delta=event.wheelDelta/120;}if(event.detail){delta=-event.detail/3;}deltaY=delta;if(orgEvent.axis!==undefined&&orgEvent.axis===orgEvent.HORIZONTAL_AXIS){deltaY=0;deltaX=-1*delta;}if(orgEvent.wheelDeltaY!==undefined){deltaY=orgEvent.wheelDeltaY/120;}if(orgEvent.wheelDeltaX!==undefined){deltaX=-1*orgEvent.wheelDeltaX/120;}args.unshift(event,delta,deltaX,deltaY);return $.event.handle.apply(this,args);}})(jQuery);function Tooltip(holder,settings){this.settings=settings;this.holder=holder;if(this.isActive()){this.createHtml();this.timer=null;this.tooltip=this.holder.find(".zsTooltip");this.slides=this.holder.find(".zsSlide");this.closeBt=this.holder.find(".zsCloseBt");this.closeBt.click($.proxy(this.hide,this));}}$.extend(Tooltip.prototype,{show:function(){if(!this.isActive()){return;}Cookies.create(this.settings.cookies.name,true,this.settings.cookies.expiration);this.activeSlideIndex=0;this.tooltip.show();this.hideSlides();this.timer=setInterval($.proxy(this.nextSlide,this),this.settings.slideshowSpeed);},hide:function(){if(this.tooltip){this.clearTimer();this.tooltip.hide();}},nextSlide:function(){var activeSlide=$(this.slides[this.activeSlideIndex]);activeSlide.css("z-index",1);this.activeSlideIndex=(this.activeSlideIndex+1)%this.slides.length;var newSlide=$(this.slides[this.activeSlideIndex]);newSlide.show();newSlide.css("z-index",2);},hideSlides:function(){this.slides.hide();$(this.slides[this.activeSlideIndex]).show();},clearTimer:function(){if(this.timer){clearInterval(this.timer);this.timer=null;}},createHtml:function(){this.holder.append($('<div class="zsTooltip"/>').append($('<div class="zsSlides"/>').append($('<div class="zsSlide keys"/>'),$('<div class="zsslide mousewheel"/>'),$('<div class="zsSlide trackpad"/>')),$('<div class="zsText">'+Translate.t("tooltip",this.settings.language)+"</div>"),$('<div class="zsCloseBt"/>').append($('<span class="zsIcon"/>'))));},isActive:function(){return this.settings.active&&!Cookies[this.settings.cookies.name];}});var Translate={t:function(message,language){if(typeof translations!="undefined"&&translations[language]&&translations[language][message]){return translations[language][message];}return message;}};function Model_Abstract(){this.urlId=null;this.index=null;}$.extend(Model_Abstract.prototype,{isRelated:function(){var relation=this.element.data("zs-gallery");if(relation){return $.find("*[data-zs-gallery="+relation+"]").length>1;}return false;},isLoaded:function(){return this.loaded;},getRelation:function(){return this.element.data("zs-gallery");},click:function(callback){this.clickCallback=function(event){event.preventDefault();callback();};this.element.click(this.clickCallback);},setUrlId:function(urlId){this.urlId=urlId;},hasUrlId:function(){return this.urlId!=null;},getUrlId:function(){return this.urlId;},setIndex:function(index){this.index=index;}});var Model_Factory={getItem:function($element,settings){var imageSettings=settings.image;return new Model_Image($element,imageSettings);}};function Model_Image($element,settings){this.element=$element;this.settings=settings;this.view=null;this.image=null;this.loaded=false;this.dimensions={width:0,height:0};this.title=this.element.data("zs-title");this.text=this.element.data("zs-text");this.thumbImageSrc=this.element.data("zs-thumb-image");if(!this.thumbImageSrc){var thumbImage=this.element.find("img")[0];this.thumbImageSrc=thumbImage?thumbImage.src:null;}this.preloadingImageSrc=this.element.data("zs-preloading-image");if(this.hasPreloadingContent()){this.preloadingImageSrc=this.parseSrcWithDimensions(this.preloadingImageSrc);this.preloadingImage=new Image();this.preloadingImage.src=this.preloadingImageSrc;}this.imageSrc=this.getSource();}$.extend(Model_Image.prototype,Model_Abstract.prototype,{getSource:function(){var source=this.element.attr("href");var device=View_Factory.getDevice().name.toLowerCase();if(this.element.data("zs-"+device+"-image")){source=this.parseSrcWithDimensions(this.element.data("zs-"+device+"-image"));}if(this.settings.disableCache){var date=new Date();source+="?nc="+date.getTime();}return source;},parseSrcWithDimensions:function(src){var exp=new RegExp("^(.+)"+this.settings.dimensionsSeparator+"(\\d+)x(\\d+)$");var matches=src.match(exp);if(matches){src=matches[1];this.preloadingImageWidth=matches[2];this.preloadingImageHeight=matches[3];}return src;},load:function(view){this.view=view;if(this.loaded){if(this.view){this.view.itemLoaded(this.index);}return;}this.image=new Image();this.image.onload=$.proxy(function(){this.loaded=true;if(view&&view.renderingItem==this){setTimeout($.proxy(function(){this.view.itemLoaded(this.index);},this),0);}},this);this.image.src=this.imageSrc;if(this.view){this.view.itemLoading(this.index);}},calculateDimensions:function(width,height){var newWidth=width;var newHeight;var totalHeight=height;var descriptionHeight=0;if(this.hasDescription()){descriptionHeight=this.view.getDescriptionMaxHeight();totalHeight+=descriptionHeight;}var viewport=this.view.getViewport();var heightRatio=viewport.height/totalHeight;var widthRatio=viewport.width/width;if(heightRatio<1&&heightRatio<=widthRatio){newWidth=Math.floor(((totalHeight*heightRatio)-descriptionHeight)*(width/height));}if(widthRatio<1&&widthRatio<heightRatio){newWidth=Math.floor(width*widthRatio);}newWidth=Math.max(newWidth,this.settings.minSize);newHeight=Math.floor(newWidth*(height/width));this.dimensions={width:newWidth,height:newHeight};},hasDescription:function(){return this.title||this.text;},html:function(){var html="";if(!this.loaded){if(this.hasPreloadingContent()){html=this.loadingHtml();}}else{html=this.loadedHtml();}return html;},thumbHtml:function(selected){var selectedClass=selected?"selected":"";if(!this.thumbImageSrc){return'<div class="zsThumb empty '+selectedClass+'"><span class="zsBorder"></span></div>';}return'<div class="zsThumb '+selectedClass+'"><img src="'+this.thumbImageSrc+'" alt=""/><span class="zsBorder"></span></div>';},loadedHtml:function(){this.calculateDimensions(this.image.width,this.image.height);return'<img src="'+this.imageSrc+'" alt="" width="'+this.dimensions.width+'" height="'+this.dimensions.height+'" />';},loadingHtml:function(){var src;this.calculateDimensions(this.preloadingImageWidth,this.preloadingImageHeight);if(this.preloadingImageSrc){if(this.preloadingImage.complete){src=this.preloadingImageSrc;}}else{src=this.thumbImageSrc;}if(src){return'<img src="'+src+'" alt="" width="'+this.dimensions.width+'" height="'+this.dimensions.height+'" />';}return"";},hasPreloadingContent:function(){return this.preloadingImageSrc;}});function View_Abstract(){}$.extend(View_Abstract.prototype,{init:function(settings){this.setSettings(settings);if(!this.initialized){this.renderingItem=null;this.items=[];this.actualIndex=0;this.mouseWheelLocked=false;this.keyLocked=false;this.viewport=null;this.createHtml();this.onInit();this.overlay.hide();this.initialized=true;}return this;},setSettings:function(settings){this.settings=settings;return this;},showOverlay:function(){if(this.overlay&&this.overlay.is(":visible")){return;}$("html").addClass("zoomscriptActive");this.setTheme();this.overlay.css("top",$(window).scrollTop());this.overlay.css("left",$(window).scrollLeft());this.overlay.show();this.clearContent();this.pager.css("visibility","hidden");if(this.thumbs){if(this.settings.thumbs.active){this.thumbs.show();}else{if(this.thumbs){this.thumbs.hide();}}}this.onShowOverlay();this.adjustViewport();},setTheme:function(){$.each(themesCss,$.proxy(function(name,css){this.overlay.removeClass(name);},this));this.overlay.addClass(this.settings.theme);},hideOverlay:function(){this.hide();if(this.settings.history){Hash.clear();}},hide:function(){this.items=[];this.actualIndex=0;this.renderingItem=null;this.overlay.hide();$("html").removeClass("zoomscriptActive");this.onHideOverlay();},showItem:function(item,restoreFromUrl){this.showOverlay();this.showItemDelayed(item,restoreFromUrl);},showItemDelayed:function(item,restoreFromUrl){this.items.push(item);this.thumbsSlider=null;this.onShowItem(restoreFromUrl);this.render();},showItems:function(items,index,restoreFromUrl){this.showOverlay();this.showItemsDelayed(items,index,restoreFromUrl);},showItemsDelayed:function(items,index,restoreFromUrl){this.items=items;this.actualIndex=index;if(this.settings.thumbs.active){this.createThumbsHtml();var thumbsSliderSettings=this.getThumbsSliderSettings();this.thumbsSliderHolder.verticalSlider(thumbsSliderSettings);this.thumbsSlider=this.thumbsSliderHolder.verticalSlider("get");this.adjustThumbSliderPostion();}this.updatePager();this.onShowItems(restoreFromUrl);this.render();},prevItem:function(){if(this.actualIndex>0){this.actualIndex--;if(this.thumbsSlider){this.thumbsSlider.selectItem(this.actualIndex,true,false);}this.updatePager();this.onPrevItem();this.render();}},nextItem:function(){if(this.actualIndex<this.items.length-1){this.actualIndex++;if(this.thumbsSlider){this.thumbsSlider.selectItem(this.actualIndex,true,false);}this.updatePager();this.onNextItem();this.render();}},selectItem:function(index){if(this.actualIndex!=index){this.actualIndex=index;if(this.thumbsSlider){this.thumbsSlider.selectItem(this.actualIndex,true,true);}this.updatePager();this.onSelectItem();this.render();}},updatePager:function(){if(this.pager){this.pager.css("visibility","visible");this.pagerPage.html(this.actualIndex+1);this.pagerCount.html(this.items.length);}},render:function(){var item=this.items[this.actualIndex];this.renderingItem=item;item.load(this);if(item.hasUrlId()){jQuery.history.load(item.getUrlId());}},clearContent:function(){this.itemContent.html("");this.itemContent.width(0);this.itemContentHolder.width(0);},updateContent:function(index){var item=this.items[index];this.itemHolder.removeClass("zsLoading");this.itemContent.html(item.html());this.itemHolder.width(item.dimensions.width);this.itemContent.width(item.dimensions.width);this.itemContentHolder.width(item.dimensions.width);if(!this.itemContent[0].innerHTML){this.itemHolder.addClass("zsLoading");}this.itemDescription.hide();if(item.hasDescription()){this.itemDescription.show();this.itemDescriptionTitle.hide();this.itemDescriptionText.hide();if(item.title){this.itemDescriptionTitle.show();this.itemDescriptionTitle.html(item.title);}if(item.text){this.itemDescriptionText.show();this.itemDescriptionText.html(item.text);}}var top=Math.round((this.content.height()-this.itemHolder.outerHeight(true))/2);var left=Math.round((this.content.width()-this.itemHolder.outerWidth(true))/2);this.itemHolder.css("top",top);this.itemHolder.css("left",left);},refreshPosition:function(){this.overlay.css("top",$(window).scrollTop());this.overlay.css("left",$(window).scrollLeft());},getViewport:function(){return this.viewport;},itemLoading:function(index){this.clearContent();this.updateContent(index);this.showPreloader(index);},itemLoaded:function(index){this.updateContent(index);this.hidePreloader(index);if(this.settings.cacheItems>0&&this.items.length>1){var startIndex=Math.max(0,this.actualIndex-this.settings.cacheItems);var stopIndex=Math.min(this.items.length-1,this.actualIndex+this.settings.cacheItems);for(var i=startIndex;i<=stopIndex;i++){if(i!=this.actualIndex){this.items[i].load();}}}},showPreloader:function(index){this.preloaderTimer=setTimeout($.proxy(function(){this.preloader.show();},this),this.settings.showPreloaderAfter);},hidePreloader:function(index){if(this.preloaderTimer){clearTimeout(this.preloaderTimer);this.preloaderTimer=null;}this.preloader.hide();},getDescriptionMaxHeight:function(){var descriptionVisible=this.itemDescription.is(":visible");var titleVisible=this.itemDescriptionTitle.is(":visible");var textVisible=this.itemDescriptionText.is(":visible");this.itemDescription.show();this.itemDescriptionTitle.show();this.itemDescriptionText.show();var titleSpacer=$("<div/>");var textSpacer=$("<div/>");this.itemDescriptionTitle.append(titleSpacer);this.itemDescriptionText.append(textSpacer);titleSpacer.height(500);textSpacer.height(500);var height=this.itemDescription.outerHeight();titleSpacer.remove();textSpacer.remove();if(!descriptionVisible){this.itemDescription.hide();}if(!titleVisible){this.itemDescriptionTitle.hide();}if(!textVisible){this.itemDescriptionText.hide();}return height;}});var view;var View_Factory={devices:["mobile","monitor"],getView:function(settings){if(!view){var device=this.getDevice();var ViewClass="View_"+this.capitalize(device.name);eval("view = new "+ViewClass+"();");}var mergedSettings=this.mergeSettings(settings,view.deviceType);return view.init(mergedSettings);},getDevice:function(){if(navigator.userAgent.match(/iPad/i)!=null){return{type:"mobile",name:"iPad"};}else{if(navigator.userAgent.match(/iPhone/i)!=null){return{type:"mobile",name:"iPhone"};}else{if(navigator.userAgent.match(/iPod/i)!=null){return{type:"mobile",name:"iPhone"};}else{if(navigator.userAgent.match(/Android/i)!=null){return{type:"mobile",name:"Android"};}}}}return{type:"monitor",name:"monitor"};},mergeSettings:function(settings,device){var deviceSettings=$.extend({},settings[device]||{});var newSettings=$.extend({},settings);$.each(this.devices,function(index,deviceType){delete newSettings[deviceType];});return $.extend(true,{},newSettings,deviceSettings);},capitalize:function(name){return name.charAt(0).toUpperCase()+name.slice(1);}};function View_Monitor(){this.deviceType="monitor";}$.extend(View_Monitor.prototype,View_Abstract.prototype,{onInit:function(){this.overlay=$("#zoomscript");this.content=this.overlay.find(".zsContent");this.thumbs=this.overlay.find(".zsThumbs");this.itemHolder=this.overlay.find(".zsItemHolder");this.itemContent=this.itemHolder.find(".zsItemContent");this.itemContentHolder=this.itemHolder.find(".zsItemContentHolder");this.itemDescription=this.itemHolder.find(".zsItemDescription");this.itemDescriptionTitle=this.itemDescription.find(".zsTitle");this.itemDescriptionText=this.itemDescription.find(".zsText");this.preloader=this.overlay.find(".zsPreloader");this.navHolder=this.overlay.find(".zsNavHolder");this.prevItemNav=this.overlay.find(".zsPrevItem");this.nextItemNav=this.overlay.find(".zsNextItem");this.thumbsSliderHolder=this.thumbs.find(".zsThumbsSlider");this.thumbsSliderPane=this.thumbs.find(".pane");this.pager=this.overlay.find(".zsPager");this.pagerPage=this.overlay.find(".zsPager .zsPage");this.pagerCount=this.overlay.find(".zsPager .zsCount");this.tooltip=new Tooltip(this.overlay,this.getTooltipSettings());},onShowOverlay:function(){this.resizeEvent=$.proxy(this.resize,this);$(window).resize(this.resizeEvent);this.keyUpHandler=$.proxy(function(event){this.keyUp(event);},this);this.keyDownHandler=$.proxy(function(event){this.keyDown(event);},this);$(document).keydown(this.keyDownHandler);$(document).keyup(this.keyUpHandler);this.tooltip.show();},onHideOverlay:function(){this.thumbs.hide();this.tooltip.hide();$(window).unbind("resize",this.resizeEvent);$(document).unbind("keyup",this.keyUpHandler);$(document).unbind("keydown",this.keyDownHandler);},onShowItem:function(){this.adjustNavigation();this.thumbs.hide();this.adjustViewport();},onShowItems:function(){this.adjustNavigation();},onPrevItem:function(){this.adjustNavigation();},onNextItem:function(){this.adjustNavigation();},onSelectItem:function(){this.adjustNavigation();},getThumbsSliderSettings:function(){return $.extend({},this.settings.slider,{mouseWheelContainer:this.thumbs,createNavigation:false,enableKeys:true});},getTooltipSettings:function(){return $.extend({},this.settings.tooltip,{language:this.settings.language});},resize:function(){clearTimeout(this.resizeTimer);this.resizeTimer=setTimeout($.proxy(this.resizeDelayed,this),10);},resizeDelayed:function(){this.adjustViewport();this.render();},adjustNavigation:function(){this.prevItemNav.show();this.nextItemNav.show();if(this.items.length==1){this.prevItemNav.addClass("hidden");this.nextItemNav.addClass("hidden");this.navHolder.addClass("disabled");this.content.unmousewheel();}else{this.prevItemNav.removeClass("hidden");this.nextItemNav.removeClass("hidden");this.prevItemNav.removeClass("disabled");this.nextItemNav.removeClass("disabled");this.navHolder.removeClass("disabled");if(this.actualIndex==0){this.prevItemNav.addClass("disabled");}if(this.actualIndex==this.items.length-1){this.nextItemNav.addClass("disabled");this.navHolder.addClass("disabled");}this.content.mousewheel($.proxy(this.mouseWheel,this));}},adjustViewport:function(){if(this.thumbs.is(":visible")){this.content.width(this.overlay.width()-this.thumbs.outerWidth(true));this.thumbs.height(this.overlay.height()-this.thumbs.outerHeight(true)+this.thumbs.height());if(this.thumbsSlider){this.thumbsSlider.refreshItems(true);}this.adjustThumbSliderPostion();}else{this.content.width(this.overlay.width());}this.content.height(this.overlay.height());var height=this.content.height();var width=this.content.width();var borderBottom=parseInt(this.itemHolder.css("border-bottom-width"));var borderTop=parseInt(this.itemHolder.css("border-top-width"));var borderLeft=parseInt(this.itemHolder.css("border-left-width"));var borderRight=parseInt(this.itemHolder.css("border-right-width"));height-=parseInt(this.itemHolder.css("margin-top"));height-=parseInt(this.itemHolder.css("margin-bottom"));if(!isNaN(borderBottom)){height-=borderBottom;}if(!isNaN(borderTop)){height-=borderTop;}width-=parseInt(this.itemHolder.css("margin-left"));width-=parseInt(this.itemHolder.css("margin-right"));if(!isNaN(borderLeft)){width-=borderLeft;}if(!isNaN(borderRight)){width-=borderRight;}this.viewport={width:width,height:height};},adjustThumbSliderPostion:function(){var top=Math.round(this.thumbs.height()-this.thumbsSliderHolder.height())/2;top=Math.max(top,0);this.thumbsSliderHolder.css("top",top);},mouseWheel:function(event,delta){event.preventDefault();if(this.mouseWheelLocked){return;}this.mouseWheelLocked=true;if(delta<0){this.nextItem();}if(delta>0){this.prevItem();}setTimeout($.proxy(this.mouseWheelUnlock,this),this.itemNavigationLockDuration);},mouseWheelUnlock:function(){this.mouseWheelLocked=false;},keyUp:function(event){var code=event.charCode||event.keyCode;switch(code){case 27:this.hideOverlay();break;}},keyDown:function(event){if(this.keyLocked){return;}this.keyLocked=true;setTimeout($.proxy(this.keyUnlock,this),this.itemNavigationLockDuration);var code=event.charCode||event.keyCode;switch(code){case 37:this.prevItem();break;case 39:this.nextItem();break;default:break;}},keyUnlock:function(){this.keyLocked=false;},createHtml:function(){if(this.overlay){return;}if($("#zoomscript").length==0){$("body").append($('<div id="zoomscript" class="monitor '+this.settings.thumbs.position+'"/>').append($('<div class="zsContent">').append($('<div class="zsItemHolder"/>').append($('<div class="zsItemContentHolder"/>').append($('<div class="zsItemContent"/>'),$('<div class="zsPreloader"/>'),$('<div class="zsNavHolder"/>').append($('<div class="zsNavBt zsPrevItem"><span class="zsIcon"></span></div>'),$('<div class="zsNavBt zsNextItem"><span class="zsIcon"></span></div>'))),$('<div class="zsItemDescription"/>').append($('<div class="zsTitle"/>'),$('<div class="zsText"/>'))),$('<div class="zsPager"/>').append($('<span class="zsPage"/>'),"/",$('<span class="zsCount"/>'))),$('<div class="zsThumbs">').append($('<div class="zsThumbsSlider">'))));$("#zoomscript .zsThumbsSlider").verticalSlider(this.getThumbsSliderSettings());$("#zoomscript .zsNavHolder").click($.proxy(this.nextItem,this));$("#zoomscript .zsPrevItem").click($.proxy(function(event){event.stopPropagation();this.prevItem();},this));$("#zoomscript .zsNextItem").click($.proxy(function(event){event.stopPropagation();this.nextItem();},this));$("#zoomscript .zsItemHolder").click(function(event){event.stopPropagation();});$("#zoomscript .zsContent").click($.proxy(this.hideOverlay,this));}},createThumbsHtml:function(){this.thumbs.show();this.thumbsSliderPane.html("");$.each(this.items,$.proxy(function(i,item){var selected=i==this.actualIndex;var thumb=$(item.thumbHtml(selected));this.thumbsSliderPane.append(thumb);thumb.click($.proxy(function(){this.selectItem(i);},this));},this));}});function View_Mobile(){}$.extend(View_Mobile.prototype,View_Abstract.prototype,{onInit:function(){this.overlay=$("#zoomscript");this.itemDescription=this.overlay.find(".zsItemDescription");this.itemDescriptionTitle=this.overlay.find(".zsTitle");this.itemDescriptionText=this.overlay.find(".zsText");this.topPanel=this.overlay.find(".zsTopPanel");this.bottomPanel=this.overlay.find(".zsBottomPanel");this.closeBt=this.overlay.find(".zsCloseBt");this.thumbsSliderHolder=this.bottomPanel.find(".zsThumbsSlider");this.thumbsSliderPane=this.thumbsSliderHolder.find(".pane");this.contentSliderHolder=this.overlay.find(".zsContentSlider");this.contentSliderPane=this.contentSliderHolder.find(".pane");this.preloaderTimers={};this.pager=this.overlay.find(".zsPager");this.pagerPage=this.overlay.find(".zsPager .zsPage");this.pagerCount=this.overlay.find(".zsPager .zsCount");this.afterRefreshTime=0;},onShowOverlay:function(){this.originalMetaViewport=$("head meta[name=viewport]");var scrollTop=$(window).scrollTop();$("head meta[name=viewport]").remove();$("head").prepend('<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" />');$(window).scrollTop(scrollTop);this.refresh();this.topPanel.show();this.bottomPanel.show();this.hidePanelsTimerActive=true;this.orientationEvent="onorientationchange" in window?"orientationchange":"resize";this.resizeEvent=$.proxy(this.resize,this);$("body").bind(this.orientationEvent,this.resizeEvent);},onHideOverlay:function(){if(this.originalMetaViewport){$("head meta[name=viewport]").remove();if(this.originalMetaViewport.length==0){this.originalMetaViewport='<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=10.0, minimum-scale=1, user-scalable=1" />';}var scrollTop=$(window).scrollTop();$("head").prepend(this.originalMetaViewport);$(window).scrollTop(scrollTop);}$("body").unbind(this.orientationEvent,this.resizeEvent);},onShowItem:function(restoreFromUrl){this.showPanels();this.createContentSlider();if(restoreFromUrl){this.restorePositionAfterRefresh();}},onShowItems:function(restoreFromUrl){this.showPanels();this.createContentSlider();if(restoreFromUrl){this.restorePositionAfterRefresh();}},onPrevItem:function(){this.contentSlider.selectItem(0,false,false);this.deleteItemHtml(this.actualIndex+2);this.createItemHtml(this.actualIndex-1,"before");},onNextItem:function(){this.contentSlider.selectItem(this.actualIndex==1?1:2,false,false);this.deleteItemHtml(this.actualIndex-2);this.createItemHtml(this.actualIndex+1,"after");},onSelectItem:function(){this.hidePanelsTimeout();this.createContentSlider();},restorePositionAfterRefresh:function(){if(this.overlay&&this.overlay.is(":visible")){if($(window).scrollTop()>1){this.refreshPosition();}else{if(this.afterRefreshTime<5000){this.afterRefreshTime+=100;setTimeout($.proxy(this.restorePositionAfterRefresh,this),100);}}}},refresh:function(){if($(window).scrollTop()==0){scrollTo(0,1);}this.adjustOverlayDimensions();this.refreshPosition();this.adjustViewport();this.overlay.removeClass("landscape");this.overlay.removeClass("portrait");if($(window).height()>$(window).width()){this.overlay.addClass("portrait");}else{this.overlay.addClass("landscape");}},adjustOverlayDimensions:function(){},resize:function(){this.refresh();this.createContentSlider();this.render();},getThumbsSliderSettings:function(){return $.extend({},this.settings.slider,this.settings.thumbsSlider||{},{wipeTouchContainer:this.bottomPanel,createNavigation:false,cssAnimation:true});},createContentSlider:function(){var contentSliderSettings=this.getContentSliderSettings();this.contentSliderHolder.horizontalSlider(contentSliderSettings);this.contentSlider=this.contentSliderHolder.horizontalSlider("get");this.createItemsHtml();this.contentSlider.selectItem(this.actualIndex==0?0:1,true);},getContentSliderSettings:function(){return $.extend({},this.settings.slider,this.settings.contentSlider||{},{createNavigation:false,cssAnimation:true,wipeTouchContainer:this.contentSliderHolder,wipeTouchItemsToMove:1,wipeLeftCallback:$.proxy(this.nextItem,this),wipeRightCallback:$.proxy(this.prevItem,this),wipeTouchEnableMoveWhileAnimation:false});},showPanels:function(){this.topPanel.show();this.hidePanelsTimeout();this.bottomPanel.hide();if(this.thumbsSlider){this.bottomPanel.show();this.thumbsSlider.selectItem(this.actualIndex,true);}},hidePanelsTimeout:function(){if(this.hidePanelsTimerActive){if(this.hidePanelsTimer){clearTimeout(this.hidePanelsTimer);}this.hidePanelsTimer=setTimeout($.proxy(this.hidePanels,this),this.settings.hidePanelsAfter);}this.hidePanelsTimerActive=false;if(this.pager){this.pager.removeClass("zsNoPanels");}},hidePanels:function(){if(this.hidePanelsTimer){clearTimeout(this.hidePanelsTimer);}this.topPanel.hide();this.bottomPanel.hide();if(this.pager){this.pager.addClass("zsNoPanels");}},togglePanels:function(){if(this.topPanel.is(":visible")){this.hidePanels();}else{this.showPanels();}},adjustViewport:function(){var height=this.overlay.height();var width=this.overlay.width();this.viewport={width:width,height:height};},adjustThumbSliderPostion:function(){},getDescriptionMaxHeight:function(){return 0;},createHtml:function(){if(this.overlay){return;}if($("#zoomscript").length==0){$("body").append($('<div id="zoomscript" class="'+this.deviceType+" "+this.deviceName.toLowerCase()+'"/>').append($('<div class="zsContentSlider"/>'),$('<div class="zsTopPanel"/>').append($('<div class="zsCloseBt">'+Translate.t("Close",this.settings.language)+"</div>"),$('<div class="zsItemDescription"/>').append($('<div class="zsTitle"/>'),$('<div class="zsText"/>'))),$('<div class="zsBottomPanel"/>').append($('<div class="zsPadding"/>').append($('<div class="zsThumbsSlider"/>'))),$('<div class="zsPager">').append($('<span class="zsPage"/>'),"/",$('<span class="zsCount"/>'))));$("#zoomscript .zsThumbsSlider").horizontalSlider(this.getThumbsSliderSettings());$("#zoomscript .zsContentSlider").horizontalSlider(this.getContentSliderSettings());$("#zoomscript .zsCloseBt").click($.proxy(this.hideOverlay,this));$("#zoomscript .zsContentSlider").click($.proxy(this.togglePanels,this));$("#zoomscript .zsTopPanel").wipetouch({tapToClick:true});$("#zoomscript .zsBottomPanel").click($.proxy(this.hidePanelsTimeout,this));}},createItemsHtml:function(){this.contentSliderPane.html("");this.itemContents={};this.preloaders={};this.itemHolders={};var startIndex=Math.max(0,this.actualIndex-1);var stopIndex=Math.min(this.items.length-1,this.actualIndex+1);for(var i=startIndex;i<=stopIndex;i++){this.createItemHtml(i,"after");}},createItemHtml:function(index,position){if(index<0||index>=this.items.length){return;}var newItem=$('<div class="zsItemContentHolder" style="width: '+this.overlay.width()+"px; height: "+this.overlay.height()+'px"/>').append($('<div class="zsItemContent"/>'),$('<div class="zsPreloader"/>'));this.itemContents[index]=newItem.find(".zsItemContent");this.preloaders[index]=newItem.find(".zsPreloader");this.preloaders[index].hide();this.itemHolders[index]=newItem;this.contentSlider.addItem(newItem,position,true);},deleteItemHtml:function(index){if(!this.itemHolders[index]){return;}this.contentSlider.deleteItem(index<this.actualIndex?0:2,true);delete (this.itemHolders[index]);delete (this.itemContents[index]);delete (this.preloaders[index]);},createThumbsHtml:function(){this.thumbsSliderHolder.show();this.thumbsSliderPane.html("");this.thumbs=null;$.each(this.items,$.proxy(function(i,item){var selected=i==this.actualIndex;var thumb=$(item.thumbHtml(selected));this.thumbsSliderPane.append(thumb);thumb.click($.proxy(function(){this.selectItem(i);},this));this.thumbs=this.thumbs?this.thumbs.add(thumb):thumb;},this));},clearContent:function(){},updateContent:function(index){var item=this.items[index];var itemContent=this.itemContents[index];if(itemContent){itemContent.removeClass("zsLoading");itemContent.html(item.html());if(index==this.actualIndex){this.itemDescription.hide();if(item.hasDescription()){this.itemDescription.show();this.itemDescriptionTitle.hide();this.itemDescriptionText.hide();if(item.title){this.itemDescriptionTitle.show();this.itemDescriptionTitle.html(item.title);}if(item.text){this.itemDescriptionText.show();this.itemDescriptionText.html(item.text);}}}var top=Math.round((this.overlay.height()-itemContent.outerHeight(true))/2);var left=Math.round((this.overlay.width()-itemContent.outerWidth(true))/2);itemContent.css("top",top);itemContent.css("left",left);}},itemLoaded:function(index){this.updateContent(index);this.hidePreloader(index);if(this.settings.cacheItems>0&&this.items.length>1){var startIndex=Math.max(0,index-this.settings.cacheItems);var stopIndex=Math.min(this.items.length-1,index+this.settings.cacheItems);for(var i=startIndex;i<=stopIndex;i++){if(i!=index){var item=this.items[i];if(item.isLoaded()){this.updateContent(i);this.hidePreloader(i);}else{this.items[i].load(this);}}}}},showPreloader:function(index){if(this.preloaders[index]){this.preloaderTimers[index]=setTimeout($.proxy(function(){this.preloaders[index].show();},this),this.settings.showPreloaderAfter);}},hidePreloader:function(index){if(this.preloaders[index]){if(this.preloaderTimers[index]){clearTimeout(this.preloaderTimers[index]);this.preloaderTimers[index]=null;}this.preloaders[index].hide();}}});function View_Android(){this.deviceType="mobile";this.deviceName="android";}$.extend(View_Android.prototype,View_Abstract.prototype,View_Mobile.prototype,{showItem:function(item,restoreFromUrl){this.showOverlay();setTimeout($.proxy(function(){this.calculateViewport();this.showItemDelayed(item,restoreFromUrl);},this),0);},showItems:function(items,index,restoreFromUrl){this.showOverlay();setTimeout($.proxy(function(){this.calculateViewport();this.showItemsDelayed(items,index,restoreFromUrl);},this),0);}});function View_IPad(){this.deviceType="mobile";this.deviceName="iPad";}$.extend(View_IPad.prototype,View_Abstract.prototype,View_Mobile.prototype,{adjustOverlayDimensions:function(){this.overlay.height(window.innerHeight);}});function View_IPhone(){this.deviceType="mobile";this.deviceName="iPhone";}$.extend(View_IPhone.prototype,View_Abstract.prototype,View_Mobile.prototype,{adjustOverlayDimensions:function(){this.overlay.height(window.innerHeight);}});(function($){$.extend($.fn,{zoomscript:function(settings){if($.browser.msie&&$.browser.version.substr(0,1)<7){return;}var zs=new ZoomScript(settings);zs.init(this);return zs;}});$.fn.zoomscript.defaults={pluginPath:"/zoomscript",language:"en",theme:"dark",history:false,cacheItems:2,showPreloaderAfter:200,slider:{speed:300,itemsToMove:5,easingEffect:"linear",wipeTouchEasingEffect:"linear",wipeTouchEasingSpeed:500},thumbs:{active:true},image:{minSize:100,dimensionsSeparator:",",disableCache:false},monitor:{itemNavigationLockDuration:50,slider:{},thumbs:{position:"right"}},mobile:{hidePanelsAfter:1500,slider:{},contentSlider:{wipeTouchEasingSpeed:200},thumbsSlider:{},thumbs:{}},tooltip:{active:true,cookies:{name:"zsTooltipShown",expiration:31},slideshowSpeed:3000,animationSpeed:0}};})(jQuery);var themesCss={};function ZoomScript(settings){this.setSettings(settings);this.relatedItemsList=[];this.singleItemsList=[];this.themeLoadingTime=0;this.themeMaxLoadingTime=5000;}$.extend(ZoomScript.prototype,{setSettings:function(settings){this.settings=$.extend(true,{},$.fn.zoomscript.defaults,settings||{});},init:function($elements){this.loadTheme();$elements.each($.proxy(function(index,element){var item=Model_Factory.getItem($(element),this.settings);this.add(item);},this));if(this.settings.history){$.history.init($.proxy(function(hash){this.initFromHash(hash);},this));}},loadTheme:function(){if(!themesCss[this.settings.theme]){var commonCss=$('<link rel="stylesheet" type="text/css" href="'+this.settings.pluginPath.replace(/\/$/,"")+"/themes/"+this.settings.theme+'/styles/common.css" />');var deviceCss=$('<link rel="stylesheet" type="text/css" href="'+this.settings.pluginPath.replace(/\/$/,"")+"/themes/"+this.settings.theme+"/styles/"+View_Factory.getDevice().type.toLowerCase()+'.css" />');$("head").append(commonCss).append(deviceCss);themesCss[this.settings.theme]={};themesCss[this.settings.theme]["common"]=commonCss;themesCss[this.settings.theme]["device"]=deviceCss;}},isThemeLoaded:function(){try{var result=(themesCss[this.settings.theme]["common"][0].sheet&&themesCss[this.settings.theme]["device"][0].sheet&&themesCss[this.settings.theme]["common"][0].sheet.cssRules.length>0&&themesCss[this.settings.theme]["device"][0].sheet.cssRules.length>0)||(themesCss[this.settings.theme]["common"][0].styleSheet&&themesCss[this.settings.theme]["device"][0].styleSheet&&themesCss[this.settings.theme]["common"][0].styleSheet.rules.length>0&&themesCss[this.settings.theme]["device"][0].styleSheet.rules.length>0);}catch(err){return false;}return result;},afterThemeLoaded:function(callback){if(!this.isThemeLoaded()){if(this.themeLoadingTime>this.themeMaxLoadingTime){console.error('CSS could not be loaded: "'+themesCss[this.settings.theme]["common"][0].href+'" or "'+themesCss[this.settings.theme]["device"][0].href+'"');return;}setTimeout($.proxy(function(){this.afterThemeLoaded(callback);},this),100);this.themeLoadingTime+=100;return;}callback();},initFromHash:function(hash){if(!hash||hash=="_"){var view=View_Factory.getView(this.settings);view.hide();return;}var urlId=Hash.parseId(hash);if(urlId.relation=="single"&&this.singleItemsList[urlId.index]){this.showItem(this.singleItemsList[urlId.index],true);}else{if(this.relatedItemsList[urlId.relation]&&this.relatedItemsList[urlId.relation][urlId.index]){this.showItems(urlId.relation,urlId.index,true);}}},add:function(item){var index;var urlRelationName;if(item.isRelated()){var relation=item.getRelation();var list=this.relatedItemsList[relation]||(this.relatedItemsList[relation]=[]);index=list.length;list[index]=item;item.click($.proxy(function(){this.showItems(relation,index);},this));item.setIndex(index);urlRelationName=relation;}else{index=this.singleItemsList.length;urlRelationName="single";item.click($.proxy(function(){this.showItem(item);},this));item.setIndex(0);this.singleItemsList.push(item);}if(this.settings.history){item.setUrlId(Hash.createId(urlRelationName,index));}},showItem:function(item,restoreFromUrl){var callback=$.proxy(function(){this.showItemDelayed(item,restoreFromUrl);},this);this.afterThemeLoaded(callback);},showItemDelayed:function(item,restoreFromUrl){var view=View_Factory.getView(this.settings);view.showItem(item,restoreFromUrl);},showItems:function(relation,index,restoreFromUrl){var callback=$.proxy(function(){this.showItemsDelayed(relation,index,restoreFromUrl);},this);this.afterThemeLoaded(callback);},showItemsDelayed:function(relation,index,restoreFromUrl){var view=View_Factory.getView(this.settings);var relatedItems=this.relatedItemsList[relation];view.showItems(relatedItems,index,restoreFromUrl);}});
