// JavaScript Document

/*
 * jquery scroller
 * 
 *  @author Erik Willems
 *  
 *  options:
 *  direction:       horizontal or vertical slide direction                                                            / default value = horizontal
 *  duration:        time duration for 1 slide                                                                         / default value = 1000
 *  scrollId:        id from the scroll pane                                                                           / default value = scrollPane
 *  backButtonId :   id from the back button                                                                           / default value = backButton
 *  nextButtonId :   if from the next button                                                                           / default value = nextButton
 *  easingType :     easing type (jquery easing plugin is needed)                                                      / default value = ''
 *  auto:            auto scroll on page load (false or true)                                                          / defeult value = false
 *  autoBuffer:      time buffer between two slides if auto is true 												   / default value = 0
 *  stopAutoOnClick: stop auto slide when next or back button is clicked (false or true) 							   / default value = true
 *  resetOnEnd:      reset the slider back to the begin when the last element is reached in auto slide (false or true) / default value = false
 * 
 */





(function(b){var a={init:function(c){var d={direction:"horizontal",duration:1000,scrollId:"scrollPane",backButtonId:"backButton",nextButtonId:"nextButton",easingType:"",auto:"false",autoBuffer:0,stopAutoOnClick:"true",resetOnEnd:"false"};return this.each(function(){if(c){b.extend(d,c)}var f=b(this);var g=c;var e=f.find("div.item").length;if(e>1){b("#"+g.nextButtonId).show()}g.interSlide=0;f.setItemDimensions(f);f.setScrollDimensions(f,g);if(g.auto=="true"){f.loadHiddenButtons(f,g)}f.loadAnimation(f,g);if(g.auto=="true"){f.loadAutoSlide(f,g)}})},destroy:function(){return this.each(function(){var d=b(this),c=d.data("scroller");c.scroller.remove();d.removeData("scroller")})}};b.fn.scroller=function(c){if(a[c]){return a[c].apply(this,Array.prototype.slice.call(arguments,1))}else{if(typeof c==="object"||!c){return a.init.apply(this,arguments)}else{b.error("Method "+c+" does not exist on jQuery.scroller")}}},b.fn.loadHiddenButtons=function(d,c){var e='<a href="javascript: void(0);" style="display:none;" id="hidden'+c.backButtonId+'">&nbsp;</a><a href="javascript: void(0);" style="display:none;" id="hidden'+c.nextButtonId+'">&nbsp;</a>';d.append(e)},b.fn.loadAutoSlide=function(d,c){c.interSlide=setInterval(function(){b("#hidden"+c.nextButtonId).click()},c.autoBuffer+c.duration)},b.fn.loadAnimation=function(d,c){switch(c.direction){case"vertical":d.slideVertical(d,c);break;case"horizontal":d.slideHorizontal(d,c);break}},b.fn.slideHorizontal=function(f,k){f.find("div.item").css({"float":"left"});var d=f.find("div.item").length;var h=f.offset();var c=h.left-((d-1)*f.width());var i=h.left;var j=f.width();var g=0;var e=d;b("#"+k.nextButtonId+", #hidden"+k.nextButtonId).click(function(m){if(b(this).attr("id")==k.nextButtonId){clearInterval(k.interSlide);if(k.stopAutoOnClick=="false"){f.loadAutoSlide(f,k)}}g+=1;b("#"+k.backButtonId).show();if(g<e){var l=f.children("#"+k.scrollId).offset();if(l.left>c){f.children("#"+k.scrollId).animate({left:"-="+j},{duration:k.duration,easing:k.easingType})}}if(g+1==e){if(b(this).attr("id")=="hidden"+k.nextButtonId&&k.resetOnEnd=="true"){clearInterval(k.interSlide);f.resetSlider(f,k);g=0}b("#"+k.nextButtonId).hide()}});b("#"+k.backButtonId+", #hidden"+k.backButtonId).click(function(m){if(b(this).attr("id")==k.backButtonId){clearInterval(k.interSlide);if(k.stopAutoOnClick=="false"){f.loadAutoSlide(f,k)}}b("#"+k.nextButtonId).show();if(g!=0){var l=f.children("#"+k.scrollId).offset();if(l.left<i){f.children("#"+k.scrollId).animate({left:"+="+j},{duration:k.duration,easing:k.easingType})}}g-=1;if(g==0){b("#"+k.backButtonId).hide()}})},b.fn.resetSlider=function(d,c){if(c.direction=="horizontal"){setTimeout(function(){var f=d.find("div.item").length;var e=(f-1)*d.width();b("#"+c.nextButtonId).show();b("#"+c.backButtonId).hide();d.children("#"+c.scrollId).animate({left:"+="+e},{duration:c.duration*f,easing:c.easingType,complete:function(){d.loadAutoSlide(d,c)}})},c.autoBuffer+c.duration)}else{if(c.direction=="vertical"){setTimeout(function(){var f=d.find("div.item").length;var e=(f-1)*d.height();b("#"+c.nextButtonId).show();b("#"+c.backButtonId).hide();d.children("#"+c.scrollId).animate({top:"+="+e},{duration:c.duration*f,easing:c.easingType,complete:function(){d.loadAutoSlide(d,c)}})},c.autoBuffer+c.duration)}}},b.fn.slideVertical=function(f,k){f.find("div.item").css({clear:"both"});var d=f.find("div.item").length;var h=f.offset();var c=h.top-((d-1)*f.height());var i=h.top+((d)*f.height());var j=f.height();var g=0;var e=d;b("#"+k.nextButtonId+", #hidden"+k.nextButtonId).click(function(){g+=1;b("#"+k.backButtonId).show();if(g<e){var l=f.children("#"+k.scrollId).offset();if(l.top>c){f.children("#"+k.scrollId).animate({top:"-="+j},{duration:k.duration,easing:k.easingType})}}if(g+1==e){if(b(this).attr("id")=="hidden"+k.nextButtonId&&k.resetOnEnd=="true"){clearInterval(k.interSlide);f.resetSlider(f,k);g=0}b("#"+k.nextButtonId).hide()}});b("#"+k.backButtonId+", #hidden"+k.backButtonId).click(function(){b("#"+k.nextButtonId).show();if(g!=0){var l=f.children("#"+k.scrollId).offset();if(l.top<i){f.children("#"+k.scrollId).animate({top:"+="+j},{duration:k.duration,easing:k.easingType})}}g-=1;if(g==0){b("#"+k.backButtonId).hide()}})},b.fn.setItemDimensions=function(d){var e=d.width();var c=d.height();d.find("div.item").width(e);d.find("div.item").height(c)},b.fn.setScrollDimensions=function(d,c){var e=d.find("div.item").length;if(c.direction=="horizontal"){b("#"+c.scrollId).width(e*d.width())}}})(jQuery);
