/*
  Sliding Panels
  Version 1.0.3
  Copyright (c) 2010 DMXzone.com
*/
(function($){var version="1.0.3";var frictionDefaults={fast:0.9,normal:0.95,slow:0.97};var durationDefaults={fast:200,normal:400,slow:600};$.fn.dmxSlidingPanels=function(options){return this.each(function(){options=options||{};if(options.deceleration!=null){options.friction=options.deceleration}if(options.scrollSpeed!=null){options.transitionDuration=options.scrollSpeed}$.extend(this,new $.dmxSlidingPanels(this,options))})};$.dmxSlidingPanels=function(el,options){var _this=this,_main=$(el),_slide=null,_page=null,_pageNav=null,_nextNav=null,_prevNav=null,_scrollbar=null,_width=0,_height=0,_totalPages=0,_currentPage=0,_touchDevice=!!("ontouchstart" in window),_iPhone=!!(navigator.platform=="iPhone"||navigator.platform=="iPad"),_dragHorizontal=false,_tracking=false,_dragging=false,_firstDrag=false,_decelerating=false,_timer=0,_velocity=0,_trackingData=[],_lastPosition={x:0,y:0},_autoPlayTimer=0,_autoPlayReverse=false,_target=null,_startEvent=_touchDevice?"touchstart":"mousedown",_moveEvent=_touchDevice?"touchmove":"mousemove",_endEvent=_touchDevice?"touchend":"mouseup",_options=$.extend({},$.dmxSlidePanelDefaults,options);$.extend(_this,{version:version,currentPage:function(){return _currentPage},totalPages:function(){return _totalPages},prevPage:function(animated){_this.moveToPage(_currentPage-1,animated)},nextPage:function(animated){_this.moveToPage(_currentPage+1,animated)},moveToPage:function(index,animated){if(typeof index=="string"){index=index.replace("#","");for(var i=0;i<_page.length;++i){if(_page.eq(i).attr("id")==index){index=i;break}}}if(isNaN(index)){return}index=Math.min(Math.max(index,0),_totalPages-1);if(_currentPage!=index){_execute(_options.onPageHide);_currentPage=index;_execute(_options.onPageShow)}$(_options.currentPageText).text(_currentPage+1);_pageNav.each(function(){$("a",this).removeClass("selected").eq(_currentPage).addClass("selected")});_prevNav.removeClass("disabled");_nextNav.removeClass("disabled");if(index==0){_prevNav.addClass("disabled")}else{if(index==_totalPages-1){_nextNav.addClass("disabled")}}index*=-1;_moveTo(_slide,index*_width,0,animated)},scrollTo:function(position,animated){var page=_page.eq(_currentPage);if(typeof position=="string"){position=position.replace("#","");var links=$("a",_slide);for(var i=0;i<links.length;++i){var link=links.eq(i);if(link.attr("name")){page=link.closest("."+_options.pageClass);var maxPos=page.outerHeight()-_height;_this.moveToPage(_page.index(page),animated);position=Math.min(Math.max(link.position().top,0),maxPos);break}}}if(isNaN(position)){return}var factor=_height/page.outerHeight();var scrollbarTop=factor*position;var scrollbarHeight=(factor*(_height-10));if(position<0){scrollbarHeight=Math.max(5,scrollbarHeight+scrollbarTop);scrollbarTop=5}else{if(position>page.outerHeight()-_height){scrollbarHeight=Math.max(5,_height-scrollbarTop-5)}}_scrollbar.css({top:scrollbarTop,height:scrollbarHeight});var left=page.position().left;if(_iPhone){left=parseFloat(page.css("-webkit-transform").match(/translate3d\((.*?),(.*?),(.*?)\)/)[1])}position*=-1;_moveTo(page,_iPhone?0:left,position,animated)},play:function(){if(_autoPlayTimer==0){_autoPlayTimer=setInterval(function(){if(_currentPage==_totalPages-1){_autoPlayReverse=true}else{if(_currentPage==0){_autoPlayReverse=false}}if(_autoPlayReverse){_this.prevPage(true)}else{_this.nextPage(true)}},_options.autoPlayInterval)}},stop:function(){if(_autoPlayTimer!=0){clearInterval(_autoPlayTimer);_autoPlayTimer=0}}});function _init(){if(typeof _options.friction=="string"){_options.friction=frictionDefaults[_options.friction]}if(typeof _options.transitionDuration=="string"){_options.transitionDuration=durationDefaults[_options.transitionDuration]}_options.friction=Math.min(Math.max(_options.friction,0),1);_options.transitionDuration+=_iPhone?"ms":"";_slide=_main.wrapInner("<div></div>").find("> div");_page=_slide.children().addClass(_options.pageClass);_scrollbar=$('<div class="'+_options.scrollbarClass+'"></div>').appendTo(_main);_totalPages=_page.length;$(_options.totalPagesText).text(_totalPages);_pageNav=_main.parent().find(_options.pageNavigation);_prevNav=$(_options.prevPage+" a");_nextNav=$(_options.nextPage+" a");if(_pageNav.length==0){_pageNav=$(_options.pageNavigation)}_pageNav.each(function(){$("a",this).eq(0).addClass("selected")});_prevNav.addClass("disabled");$.each(["padding-top","padding-right","padding-bottom","padding-left"],function(i,name){var mainValue=parseInt(_main.css(name),10)||0;if(mainValue>0){_page.each(function(){pageValue=parseInt($(this).css(name),10)||0;$(this).css(name,pageValue+mainValue)})}});_width=_main.width();_height=_main.height();_main.css({position:_main.css("position")=="static"?"relative":_main.css("position"),overflow:"hidden",padding:0});_slide.css({position:"absolute",left:0,top:0,margin:0,padding:0});_page.css({position:"absolute",overflow:"hidden",left:0,top:0,width:_width,height:"auto",minHeight:_height});_scrollbar.css({position:"absolute",right:5,top:5,width:5,height:150,padding:0,margin:0}).hide();if(_iPhone){var initCss={webkitTransitionProperty:"-webkit-transform",webkitTransitionDuration:0,webkitTransform:"translate3d(0px,0px,0px)"};_slide.css(initCss).bind("webkitTransitionEnd",_transitionEnd);_page.css(initCss).bind("webkitTransitionEnd",_transitionEnd);_scrollbar.css({webkitTransitionProperty:"opacity",webkitTransitionDuration:200})}_resetPagePositions();_bindEvents();if(window.location.hash){_this.moveToPage(window.location.hash,false)}if(_options.autoPlay){_this.play()}_execute(_options.onPageShow)}function _resetPagePositions(){_width=_main.width();_height=_main.height();if(_options.autoHeight){_height=_main.parent().innerHeight();_main.siblings().each(function(){_height-=$(this).outerHeight(true)});_height-=_main.outerHeight(true)-_main.height();_main.height(_height)}_page.each(function(i){var hPadding=parseInt($(this).css("padding-left"),10)||0;hPadding+=parseInt($(this).css("padding-right"),10)||0;var vPadding=parseInt($(this).css("padding-top"),10)||0;vPadding+=parseInt($(this).css("padding-bottom"),10)||0;$(this).css({left:(i*_width),width:_width-hPadding,minHeight:_height-vPadding})})}function _bindEvents(){$(window).bind("resize",_resize);$(window).bind("orientationchange",_resize);_main.bind(_startEvent,_startTracking);if(_options.mousewheel&&_main.mousewheel){_main.mousewheel(_mousewheel)}$(_options.prevPage).click(function(event){event.preventDefault();_this.prevPage(true)});$(_options.nextPage).click(function(event){event.preventDefault();_this.nextPage(true)});_pageNav.each(function(){$("a",this).each(function(i){$(this).bind("click",{page:i},function(event){event.preventDefault();_this.moveToPage(event.data.page,true)})})})}function _startTracking(event){if($.inArray(event.target.tagName.toLowerCase(),_options.ignoreDragOn)>-1){return}event.preventDefault();if(document.addEventListener){_main[0].addEventListener("click",_cancel,true)}_target=event.target;_stopAllAnimations();_lastPosition=_getPositionFromEvent(event);_trackingData=[];_trackingData.push({timeStamp:event.timeStamp,position:_lastPosition});_tracking=true;_dragging=false;$(document).bind(_moveEvent,_moved);$(document).bind(_endEvent,_ended);$(document).bind("touchcancelled",_cancelled)}function _moved(event){event.preventDefault();var position=_getPositionFromEvent(event);var delta={x:position.x-_trackingData[_trackingData.length-1].position.x,y:position.y-_trackingData[_trackingData.length-1].position.y};if(!_dragging){if(Math.abs(delta.x)>_options.minTrackForDrag||Math.abs(delta.y)>_options.minTrackForDrag){_dragging=true;_firstDrag=true}}if(_dragging){event.stopPropagation();if(_firstDrag){_firstDrag=false;_dragHorizontal=!!(_totalPages>1&&Math.abs(delta.x)>Math.abs(delta.y));_lastPosition=position;if(_dragHorizontal){_snapToBounds(false);_scrollbar.fadeOut(_options.scrollbarFadeDuration)}else{_scrollbar.fadeIn(_options.scrollbarFadeDuration)}return}_lastPosition=position;if(_dragHorizontal){var minX=(_totalPages-1)*_width*-1;var left=_slide.position().left;if(_iPhone){left=parseFloat(_slide.css("-webkit-transform").match(/translate3d\((.*?),(.*?),(.*?)\)/)[1])}var newX=Math.min(Math.max(left+delta.x,minX),0);_moveTo(_slide,newX,0,false)}else{var page=_page.eq(_currentPage);var pageY=page.position().top;if(_iPhone){pageY=parseFloat(page.css("-webkit-transform").match(/translate3d\((.*?),(.*?),(.*?)\)/)[2])}var minY=_height-page.outerHeight();var newY=pageY+delta.y;if(_options.bounce){if(newY<minY||newY>0){newY-=delta.y/2}}else{newY=Math.min(Math.max(newY,minY),0)}_this.scrollTo(-newY,false)}_trackingData.push({timeStamp:event.timeStamp,position:position})}}function _ended(event){$(document).unbind(_moveEvent,_moved);$(document).unbind(_endEvent,_ended);$(document).unbind("touchcancelled",_cancelled);if(document.addEventListener&&!_dragging){var node=_target;_main[0].removeEventListener("click",_cancel,true);while(node.nodeType!=1){node=node.parentNode}$(node).trigger("focus");var e=event.originalEvent,mouseEvent=document.createEvent("MouseEvents");mouseEvent.initMouseEvent("click",true,true,e.view,1,e.changedTouches?e.changedTouches[0].screenX:e.screenX,e.changedTouches?e.changedTouches[0].screenY:e.screenY,e.changedTouches?e.changedTouches[0].clientX:e.clientX,e.changedTouches?e.changedTouches[0].clientY:e.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,0,null);node.dispatchEvent(mouseEvent)}if(_dragging){event.stopPropagation();_dragging=false;while(_trackingData.length>0){if(event.timeStamp-_trackingData[0].timeStamp<=_options.maxTimeTrackingData){break}_trackingData.shift()}if(_trackingData.length>1){var firstData=_trackingData[0];var lastData=_trackingData[_trackingData.length-1];var delta=_dragHorizontal?lastData.position.x-firstData.position.x:lastData.position.y-firstData.position.y;_velocity=delta/(lastData.timeStamp-firstData.timeStamp);_velocity*=_options.animFrameRate;if(_dragHorizontal){if(Math.abs(_velocity)>_options.minVelocityForPaging){_decelerating=true;if(_velocity>0){_this.prevPage(true)}else{_this.nextPage(true)}}}else{if(_options.decelerate&&Math.abs(_velocity)>_options.minVelocityForDeceleration){_startDecelerating()}}}}if(!_decelerating){_snapToBounds(true);_scrollbar.fadeOut(_options.scrollbarFadeDuration)}}function _cancel(event){event.preventDefault();event.stopPropagation()}function _cancelled(event){_ended(event)}function _resize(event){_width=_main.width();_height=_main.height();_page.css({minHeight:_height});_resetPagePositions();_snapToBounds(true)}function _mousewheel(event,delta){event.preventDefault();var page=_page.eq(_currentPage);var distance=parseInt(page.css("line-height"),10)*3||50;if(delta<0){distance*=-1}_stopAllAnimations();_moveBy(page,0,distance,false);_snapToBounds(false)}function _transitionEnd(event){_decelerating=false;_scrollbar.fadeOut(_options.scrollbarFadeDuration)}function _startDecelerating(){_decelerating=true;_timer=setInterval(_stepDecelerating,_options.animFrameRate)}function _stepDecelerating(){if(!_decelerating){return}var page=_page.eq(_currentPage);var pageY=page.position().top;if(_iPhone){pageY=parseFloat(page.css("-webkit-transform").match(/translate3d\((.*?),(.*?),(.*?)\)/)[2])}pageY+=_velocity;if(!_options.bounce&&(pageY<_height-page.outerHeight()||pageY>0)){pageY=Math.min(Math.max(pageY,_height-page.outerHeight()),0);_velocity=0}_this.scrollTo(-pageY,false);_velocity*=_options.friction;if(Math.abs(_velocity)<_options.minVelocity){_scrollbar.fadeOut(_options.scrollbarFadeDuration);_finishDeceleration();return}if(_options.bounce&&(pageY<_height-page.outerHeight()||pageY>0)){_velocity*=0.5}}function _finishDeceleration(){_velocity=0;_stopAllAnimations();_snapToBounds(true)}function _stopAllAnimations(){clearInterval(_timer);_decelerating=false;if(_iPhone){_slide.css({webkitTransitionDuration:0});_page.css({webkitTransitionDuration:0})}else{_slide.stop();_page.stop()}}function _snapToBounds(animated){var slideX=_slide.position().left;if(_iPhone){slideX=parseFloat(_slide.css("-webkit-transform").match(/translate3d\((.*?),(.*?),(.*?)\)/)[1])}var index=Math.round(slideX/_width)*-1;_this.moveToPage(index,animated);var page=_page.eq(_currentPage);var pageY=page.position().top;if(_iPhone){pageY=parseFloat(page.css("-webkit-transform").match(/translate3d\((.*?),(.*?),(.*?)\)/)[2])}var y=Math.min(Math.max(pageY,_height-page.outerHeight()),0);if(pageY!=y){y*=-1;_scrollbar.hide();_this.scrollTo(y,animated)}else{_scrollbar.fadeOut(_options.scrollbarFadeDuration)}}function _getPositionFromEvent(event){event=event.originalEvent.touches&&event.originalEvent.touches.length>0?event.originalEvent.touches[0]:event;return{x:event.pageX,y:event.pageY}}function _moveBy(layer,dx,dy,animated){var position=layer.position();if(_iPhone){position.left=parseFloat(layer.css("-webkit-transform").match(/translate3d\((.*?),(.*?),(.*?)\)/)[1]);position.top=parseFloat(layer.css("-webkit-transform").match(/translate3d\((.*?),(.*?),(.*?)\)/)[2])}_moveTo(layer,position.left+dx,position.top+dy,animated)}function _moveTo(layer,x,y,animated){var curPos=layer.position();if(_iPhone){curPos.left=parseFloat(layer.css("-webkit-transform").match(/translate3d\((.*?),(.*?),(.*?)\)/)[1]);curPos.top=parseFloat(layer.css("-webkit-transform").match(/translate3d\((.*?),(.*?),(.*?)\)/)[2])}if(curPos.left==x&&curPos.top==y){return}if(_iPhone){layer.css({webkitTransitionDuration:animated?_options.transitionDuration:"0",webkitTransform:"translate3d("+x+"px,"+y+"px,0px)"})}else{layer.stop();if(animated){layer.animate({left:x,top:y},_options.transitionDuration,"swing",_transitionEnd)}else{layer.css({left:x,top:y})}}}function _execute(code){if(typeof code=="string"&&code.length>0){code=code.replace("##index##",_currentPage);eval(code)}else{if($.isFunction(code)){code.call(_page.eq(_currentPage),_currentPage)}}}_init()};$.dmxSlidePanelDefaults={autoHeight:true,autoPlay:false,autoPlayInterval:5000,bounce:true,decelerate:true,friction:0.95,maxTimeTrackingData:100,animFrameRate:1000/60,minVelocity:0.05,minVelocityForDeceleration:1,minVelocityForPaging:5,minTrackForDrag:5,transitionDuration:250,mousewheel:true,ignoreDragOn:["input","select","textarea","button"],pageClass:"dmxSlidingPanelsPage",pageNavigation:".dmxSlidingPanelsNav",currentPageText:".dmxSlidingPanelsCurrentPage",totalPagesText:".dmxSlidingPanelsTotalPages",prevPage:".dmxSlidingPanelsPrev",nextPage:".dmxSlidingPanelsNext",scrollbarClass:"dmxSlidingPanelsScrollbar",scrollbarFadeDuration:200,onPageShow:null,onPageHide:null}})(jQuery);