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