/**
 * SlideDeck 1.2.2 Lite - 2011-03-22
 * Copyright (c) 2011 digital-telepathy (http://www.dtelepathy.com)
 * 
 * Support the developers by purchasing the Pro version at http://www.slidedeck.com/download
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * Full Usage Documentation: http://www.slidedeck.com/usage-documentation 
 */

var SlideDeck;(function($){SlideDeck=function(el,opts){var self=this,el=$(el);var VERSION="1.2.2";this.options={speed:500,transition:'swing',start:1,activeCorner:true,index:true,scroll:true,keys:true,autoPlay:false,autoPlayInterval:5000,hideSpines:false,cycle:false};this.classes={slide:'slide',spine:'spine',label:'label',index:'index',active:'active',indicator:'indicator',activeCorner:'activeCorner',disabled:'disabled',vertical:'slidesVertical',previous:'previous',next:'next'};this.current=1;this.deck=el;this.spines=el.children('dt');this.slides=el.children('dd');this.controlTo=1;this.session=[];this.disabledSlides=[];this.pauseAutoPlay=false;this.isLoaded=false;var UA=navigator.userAgent.toLowerCase();this.browser={chrome:UA.match(/chrome/)?true:false,firefox:UA.match(/firefox/)?true:false,firefox2:UA.match(/firefox\/2/)?true:false,firefox30:UA.match(/firefox\/3\.0/)?true:false,msie:UA.match(/msie/)?true:false,msie6:(UA.match(/msie 6/)&&!UA.match(/msie 7|8/))?true:false,msie7:UA.match(/msie 7/)?true:false,msie8:UA.match(/msie 8/)?true:false,msie9:UA.match(/msie 9/)?true:false,chromeFrame:(UA.match(/msie/)&&UA.match(/chrome/))?true:false,opera:UA.match(/opera/)?true:false,safari:(UA.match(/safari/)&&!UA.match(/chrome/))?true:false};for(var b in this.browser){if(this.browser[b]===true){this.browser._this=b}}if(this.browser.chrome===true&&!this.browser.chromeFrame){this.browser.version=UA.match(/chrome\/([0-9\.]+)/)[1]}if(this.browser.firefox===true){this.browser.version=UA.match(/firefox\/([0-9\.]+)/)[1]}if(this.browser.msie===true){this.browser.version=UA.match(/msie ([0-9\.]+)/)[1]}if(this.browser.opera===true){this.browser.version=UA.match(/version\/([0-9\.]+)/)[1]}if(this.browser.safari===true){this.browser.version=UA.match(/version\/([0-9\.]+)/)[1]}var width;var height;var spine_inner_width,spine_outer_width,slide_width,spine_half_width;var FixIEAA=function(spine){if(self.browser.msie&&!self.browser.msie9){var bgColor=spine.css('background-color');var sBgColor=bgColor;if(sBgColor=="transparent"){bgColor="#ffffff"}else{if(sBgColor.match('#')){if(sBgColor.length<7){var t="#"+sBgColor.substr(1,1)+sBgColor.substr(1,1)+sBgColor.substr(2,1)+sBgColor.substr(2,1)+sBgColor.substr(3,1)+sBgColor.substr(3,1);bgColor=t}}}bgColor=bgColor.replace("#","");cParts={r:bgColor.substr(0,2),g:bgColor.substr(2,2),b:bgColor.substr(4,2)};var bgRGB="#";var hexVal="01234567890ABCDEF";for(var k in cParts){cParts[k]=Math.max(0,(parseInt(cParts[k],16)-1));cParts[k]=hexVal.charAt((cParts[k]-cParts[k]%16)/16)+hexVal.charAt(cParts[k]%16);bgRGB+=cParts[k]}spine.find('.'+self.classes.index).css({'filter':'progid:DXImageTransform.Microsoft.BasicImage(rotation=1) chroma(color='+bgRGB+')',backgroundColor:bgRGB})}};var autoPlay=function(){gotoNext=function(){if(self.pauseAutoPlay===false){if(self.options.cycle===false&&self.current==self.slides.length){self.pauseAutoPlay=true}else{self.next()}}};setInterval(gotoNext,self.options.autoPlayInterval)};var buildDeck=function(){if($.inArray(el.css('position'),['position','absolute','fixed'])){el.css('position','relative')}el.css('overflow','hidden');for(var i=0;i<self.slides.length;i++){var slide=$(self.slides[i]);if(self.spines.length>i){var spine=$(self.spines[i])}var sPad={top:parseInt(slide.css('padding-top'),10),right:parseInt(slide.css('padding-right'),10),bottom:parseInt(slide.css('padding-bottom'),10),left:parseInt(slide.css('padding-left'),10)};var sBorder={top:parseInt(slide.css('border-top-width'),10),right:parseInt(slide.css('border-right-width'),10),bottom:parseInt(slide.css('border-bottom-width'),10),left:parseInt(slide.css('border-left-width'),10)};for(var k in sBorder){sBorder[k]=isNaN(sBorder[k])?0:sBorder[k]}if(i<self.current){if(i==self.current-1){if(self.options.hideSpines!==true){spine.addClass(self.classes.active)}slide.addClass(self.classes.active)}offset=i*spine_outer_width;if(self.options.hideSpines===true){if(i==self.current-1){offset=0}else{offset=0-(self.options.start-i-1)*el.width()}}}else{offset=i*spine_outer_width+slide_width;if(self.options.hideSpines===true){offset=(i+1-self.options.start)*el.width()}}self.slide_width=(slide_width-sPad.left-sPad.right-sBorder.left-sBorder.right);slide.css({position:'absolute',left:offset,zIndex:1,height:(height-sPad.top-sPad.bottom-sBorder.top-sBorder.bottom)+"px",width:self.slide_width+"px",margin:0,paddingLeft:sPad.left+spine_outer_width+"px"}).addClass(self.classes.slide).addClass(self.classes.slide+"_"+(i+1));if(self.options.hideSpines!==true){var spinePad={top:parseInt(spine.css('padding-top'),10),right:parseInt(spine.css('padding-right'),10),bottom:parseInt(spine.css('padding-bottom'),10),left:parseInt(spine.css('padding-left'),10)};for(var k in spinePad){if(spinePad[k]<10&&(k=="left"||k=="right")){spinePad[k]=10}}var spinePadString=spinePad.top+"px "+spinePad.right+"px "+spinePad.bottom+"px "+spinePad.left+"px";var spineStyles={position:'absolute',zIndex:3,display:'block',left:offset,width:(height-spinePad.left-spinePad.right)+"px",height:spine_inner_width+"px",padding:spinePadString,rotation:'270deg','-webkit-transform':'rotate(270deg)','-webkit-transform-origin':spine_half_width+'px 0px','-moz-transform':'rotate(270deg)','-moz-transform-origin':spine_half_width+'px 0px','-o-transform':'rotate(270deg)','-o-transform-origin':spine_half_width+'px 0px',textAlign:'right'};if(!self.browser.msie9){spineStyles.top=(self.browser.msie)?0:(height-spine_half_width)+"px";spineStyles.marginLeft=((self.browser.msie)?0:(0-spine_half_width))+"px";spineStyles.filter='progid:DXImageTransform.Microsoft.BasicImage(rotation=3)'}spine.css(spineStyles).addClass(self.classes.spine).addClass(self.classes.spine+"_"+(i+1));if(self.browser.msie9){spine[0].style.msTransform='rotate(270deg)';spine[0].style.msTransformOrigin=Math.round(parseInt(el[0].style.height)/2)+'px '+Math.round(parseInt(el[0].style.height)/2)+'px'}}else{if(typeof(spine)!="undefined"){spine.hide()}}if(i==self.slides.length-1){slide.addClass('last');if(self.options.hideSpines!==true){spine.addClass('last')}}if(self.options.hideSpines!==true){var index=document.createElement('DIV');index.className=self.classes.index;if(self.options.index!==false){var textNode;if(typeof(self.options.index)!='boolean'){textNode=self.options.index[i%self.options.index.length]}else{textNode=""+(i+1)}index.appendChild(document.createTextNode(textNode))}spine.append(index);spine.find('.'+self.classes.index).css({position:'absolute',zIndex:2,display:'block',width:spine_inner_width+"px",height:spine_inner_width+"px",textAlign:'center',bottom:((self.browser.msie)?0:(0-spine_half_width))+"px",left:((self.browser.msie)?5:20)+"px",rotation:"90deg",'-webkit-transform':'rotate(90deg)','-webkit-transform-origin':spine_half_width+'px 0px','-moz-transform':'rotate(90deg)','-moz-transform-origin':spine_half_width+'px 0px','-o-transform':'rotate(90deg)','-o-transform-origin':spine_half_width+'px 0px'});if(self.browser.msie9){spine.find('.'+self.classes.index)[0].style.msTransform='rotate(90deg)'}FixIEAA(spine)}}if(self.options.hideSpines!==true){self.spines.bind('click',function(event){event.preventDefault();self.goTo(self.spines.index(this)+1)})}if(self.options.keys!==false){$(document).bind('keydown',function(event){if($(event.target).parents().index(self.deck)==-1){if(event.keyCode==39){self.pauseAutoPlay=true;self.next()}else if(event.keyCode==37){self.pauseAutoPlay=true;self.prev()}}})}if(typeof($.event.special.mousewheel)!="undefined"){el.bind("mousewheel",function(event){if(self.options.scroll!==false){var delta=event.detail?event.detail:event.wheelDelta;if(self.browser.msie||self.browser.safari||self.browser.chrome){delta=0-delta}var internal=false;if($(event.originalTarget).parents(self.deck).length){if($.inArray(event.originalTarget.nodeName.toLowerCase(),['input','select','option','textarea'])!=-1){internal=true}}if(internal!==true){if(delta>0){switch(self.options.scroll){case"stop":event.preventDefault();break;case true:default:if(self.current<self.slides.length||self.options.cycle==true){event.preventDefault()}break}self.pauseAutoPlay=true;self.next()}else{switch(self.options.scroll){case"stop":event.preventDefault();break;case true:default:if(self.current!=1||self.options.cycle==true){event.preventDefault()}break}self.pauseAutoPlay=true;self.prev()}}}})}$(self.spines[self.current-2]).addClass(self.classes.previous);$(self.spines[self.current]).addClass(self.classes.next);if(self.options.autoPlay===true){autoPlay()}self.isLoaded=true};var getValidSlide=function(ind){ind=Math.min(self.slides.length,Math.max(1,ind));return ind};var slide=function(ind,params){ind=getValidSlide(ind);var forward=true;if(ind<self.current){forward=false}var classReset=[self.classes.active,self.classes.next,self.classes.previous].join(' ');self.current=ind;self.spines.removeClass(classReset);self.slides.removeClass(classReset);el.find('.'+self.classes.activeCorner).hide();$(self.spines[self.current-2]).addClass(self.classes.previous);$(self.spines[self.current]).addClass(self.classes.next);for(var i=0;i<self.slides.length;i++){var pos=0;if(self.options.hideSpines!==true){var spine=$(self.spines[i])}var slide=$(self.slides[i]);if(i<self.current){if(i==(self.current-1)){slide.addClass(self.classes.active);if(self.options.hideSpines!==true){spine.addClass(self.classes.active);spine.next('.'+self.classes.activeCorner).show()}}pos=i*spine_outer_width}else{pos=i*spine_outer_width+slide_width}if(self.options.hideSpines===true){pos=(i-self.current+1)*el.width()}var animOpts={duration:self.options.speed,easing:self.options.transition};slide.stop().animate({left:pos+"px",width:self.slide_width+"px"},animOpts);if(self.options.hideSpines!==true){FixIEAA(spine);if(spine.css('left')!=pos+"px"){spine.stop().animate({left:pos+"px"},{duration:self.options.speed,easing:self.options.transition});spine.next('.'+self.classes.activeCorner).stop().animate({left:pos+spine_outer_width+"px"},{duration:self.options.speed,easing:self.options.transition})}}}};var setOption=function(opts,val){var newOpts=opts;if(typeof(opts)==="string"){newOpts={};newOpts[opts]=val}for(var key in newOpts){val=newOpts[key];switch(key){case"speed":case"start":val=parseFloat(val);if(isNaN(val)){val=self.options[key]}break;case"scroll":case"keys":case"activeCorner":case"hideSpines":case"autoPlay":case"cycle":if(typeof(val)!=="boolean"){val=self.options[key]}break;case"transition":if(typeof(val)!=="string"){val=self.options[key]}break;case"complete":case"before":if(typeof(val)!=="function"){val=self.options[key]}break;case"index":if(typeof(val)!=="boolean"){if(!$.isArray(val)){val=self.options[key]}}break}self.options[key]=val}};var setupDimensions=function(){height=el.height();width=el.width();el.css('height',height+"px");spine_inner_width=0;spine_outer_width=0;if(self.options.hideSpines!==true&&self.spines.length>0){spine_inner_width=$(self.spines[0]).height();spine_outer_width=$(self.spines[0]).outerHeight()}slide_width=width-spine_outer_width*self.spines.length;if(self.options.hideSpines===true){slide_width=width}spine_half_width=Math.ceil(spine_inner_width/2)};var initialize=function(opts){if((self.browser.opera&&self.browser.version<"10.5")||self.browser.msie6||self.browser.firefox2||self.browser.firefox30){if(typeof(console)!="undefined"){if(typeof(console.error)=="function"){console.error("This web browser is not supported by SlideDeck. Please view this page in a modern, CSS3 capable browser or the latest version of Internet Explorer")}}return false}if(typeof(opts)!="undefined"){for(var key in opts){self.options[key]=opts[key]}}if(self.spines.length<1){self.options.hideSpines=true}if(self.options.hideSpines===true){self.options.activeCorner=false}self.current=Math.min(self.slides.length,Math.max(1,self.options.start));if(el.height()>0){setupDimensions();buildDeck()}else{var startupTimer;startupTimer=setTimeout(function(){setupDimensions();if(el.height()>0){clearInterval(startupTimer);setupDimensions();buildDeck()}},20)}};var loaded=function(func){var thisTimer;thisTimer=setInterval(function(){if(self.isLoaded==true){clearInterval(thisTimer);func()}},20)};this.loaded=function(func){loaded(func);return self};this.next=function(params){var nextSlide=Math.min(self.slides.length,(self.current+1));if(self.options.cycle===true){if(self.current+1>self.slides.length){nextSlide=1}}slide(nextSlide,params);return self};this.prev=function(params){var prevSlide=Math.max(1,(self.current-1));if(self.options.cycle===true){if(self.current-1<1){prevSlide=self.slides.length}}slide(prevSlide,params);return self};this.goTo=function(ind,params){self.pauseAutoPlay=true;slide(Math.min(self.slides.length,Math.max(1,ind)),params);return self};this.setOption=function(opts,val){setOption(opts,val);return self};initialize(opts)};$.fn.slidedeck=function(opts){var returnArr=[];for(var i=0;i<this.length;i++){if(!this[i].slidedeck){this[i].slidedeck=new SlideDeck(this[i],opts)}returnArr.push(this[i].slidedeck)}return returnArr.length>1?returnArr:returnArr[0]}})(jQuery);
