
(function($){$.fn.mCustomScrollbar=function(scrollType,animSpeed,easeType,bottomSpace,draggerDimType,mouseWheelSupport,scrollBtnsSupport,scrollBtnsSpeed){var id=$(this).attr("id");var $customScrollBox=$("#"+id+" .customScrollBox");var $customScrollBox_container=$("#"+id+" .customScrollBox .container");var $customScrollBox_content=$("#"+id+" .customScrollBox .content");var $dragger_container=$("#"+id+" .dragger_container");var $dragger=$("#"+id+" .dragger");var $scrollUpBtn=$("#"+id+" .scrollUpBtn");var $scrollDownBtn=$("#"+id+" .scrollDownBtn");var $customScrollBox_horWrapper=$("#"+id+" .customScrollBox .horWrapper");if(!$customScrollBox.data("minDraggerHeight")){$customScrollBox.data("minDraggerHeight",$dragger.height());}
if(!$customScrollBox.data("minDraggerWidth")){$customScrollBox.data("minDraggerWidth",$dragger.width());}
if(!$customScrollBox.data("contentHeight")){$customScrollBox.data("contentHeight",$customScrollBox_container.height());}
if(!$customScrollBox.data("contentWidth")){$customScrollBox.data("contentWidth",$customScrollBox_container.width());}
CustomScroller();function CustomScroller(reloadType){if(scrollType=="horizontal"){var visibleWidth=$customScrollBox.width();$customScrollBox_horWrapper.css("width",999999);$customScrollBox.data("totalContent",$customScrollBox_container.width());$customScrollBox_horWrapper.css("width",$customScrollBox.data("totalContent"));if($customScrollBox_container.width()>visibleWidth){$dragger.css("display","block");if(reloadType!="resize"&&$customScrollBox_container.width()!=$customScrollBox.data("contentWidth")){$dragger.css("left",0);$customScrollBox_container.css("left",0);$customScrollBox.data("contentWidth",$customScrollBox_container.width());}
$dragger_container.css("display","block");$scrollDownBtn.css("display","inline-block");$scrollUpBtn.css("display","inline-block");var totalContent=$customScrollBox_content.width();var minDraggerWidth=$customScrollBox.data("minDraggerWidth");var draggerContainerWidth=$dragger_container.width();function AdjustDraggerWidth(){if(draggerDimType=="auto"){var adjDraggerWidth=Math.round(totalContent-((totalContent-visibleWidth)*1.3));if(adjDraggerWidth<=minDraggerWidth){$dragger.css("width",minDraggerWidth+"px");}else if(adjDraggerWidth>=draggerContainerWidth){$dragger.css("width",draggerContainerWidth-10+"px");}else{$dragger.css("width",adjDraggerWidth+"px");}}}
AdjustDraggerWidth();var targX=0;var draggerWidth=$dragger.width();$dragger.draggable({axis:"x",containment:"parent",drag:function(event,ui){ScrollX();},stop:function(event,ui){DraggerRelease();}});$dragger_container.click(function(e){var $this=$(this);var mouseCoord=(e.pageX-$this.offset().left);if(mouseCoord<$dragger.position().left||mouseCoord>($dragger.position().left+$dragger.width())){var targetPos=mouseCoord+$dragger.width();if(targetPos<$dragger_container.width()){$dragger.css("left",mouseCoord);ScrollX();}else{$dragger.css("left",$dragger_container.width()-$dragger.width());ScrollX();}}});$(function($){if(mouseWheelSupport=="yes"){$customScrollBox.unbind("mousewheel");$customScrollBox.bind("mousewheel",function(event,delta){var vel=Math.abs(delta*10);$dragger.css("left",$dragger.position().left-(delta*vel));ScrollX();if($dragger.position().left<0){$dragger.css("left",0);$customScrollBox_container.stop();ScrollX();}
if($dragger.position().left>$dragger_container.width()-$dragger.width()){$dragger.css("left",$dragger_container.width()-$dragger.width());$customScrollBox_container.stop();ScrollX();}
return false;});}});if(scrollBtnsSupport=="yes"){$scrollDownBtn.mouseup(function(){BtnsScrollXStop();}).mousedown(function(){BtnsScrollX("down");}).mouseout(function(){BtnsScrollXStop();});$scrollUpBtn.mouseup(function(){BtnsScrollXStop();}).mousedown(function(){BtnsScrollX("up");}).mouseout(function(){BtnsScrollXStop();});$scrollDownBtn.click(function(e){e.preventDefault();});$scrollUpBtn.click(function(e){e.preventDefault();});btnsScrollTimerX=0;function BtnsScrollX(dir){if(dir=="down"){var btnsScrollTo=$dragger_container.width()-$dragger.width();var scrollSpeed=Math.abs($dragger.position().left-btnsScrollTo)*(100/scrollBtnsSpeed);$dragger.stop().animate({left:btnsScrollTo},scrollSpeed,"linear");}else{var btnsScrollTo=0;var scrollSpeed=Math.abs($dragger.position().left-btnsScrollTo)*(100/scrollBtnsSpeed);$dragger.stop().animate({left:-btnsScrollTo},scrollSpeed,"linear");}
clearInterval(btnsScrollTimerX);btnsScrollTimerX=setInterval(ScrollX,20);}
function BtnsScrollXStop(){clearInterval(btnsScrollTimerX);$dragger.stop();}}
var scrollAmount=(totalContent-visibleWidth)/(draggerContainerWidth-draggerWidth);function ScrollX(){var draggerX=$dragger.position().left;var targX=-draggerX*scrollAmount;var thePos=$customScrollBox_container.position().left-targX;$customScrollBox_container.stop().animate({left:"-="+thePos},animSpeed,easeType);}}else{$dragger.css("left",0).css("display","none");$customScrollBox_container.css("left",0);$dragger_container.css("display","none");$scrollDownBtn.css("display","none");$scrollUpBtn.css("display","none");}}else{var visibleHeight=$customScrollBox.height();if($customScrollBox_container.height()>visibleHeight){$dragger.css("display","block");if(reloadType!="resize"&&$customScrollBox_container.height()!=$customScrollBox.data("contentHeight")){$dragger.css("top",0);$customScrollBox_container.css("top",0);$customScrollBox.data("contentHeight",$customScrollBox_container.height());}
$dragger_container.css("display","block");$scrollDownBtn.css("display","inline-block");$scrollUpBtn.css("display","inline-block");var totalContent=$customScrollBox_content.height();var minDraggerHeight=$customScrollBox.data("minDraggerHeight");var draggerContainerHeight=$dragger_container.height();function AdjustDraggerHeight(){if(draggerDimType=="auto"){var adjDraggerHeight=Math.round(totalContent-((totalContent-visibleHeight)*1.3));if(adjDraggerHeight<=minDraggerHeight){$dragger.css("height",minDraggerHeight+"px").css("line-height",minDraggerHeight+"px");}else if(adjDraggerHeight>=draggerContainerHeight){$dragger.css("height",draggerContainerHeight-10+"px").css("line-height",draggerContainerHeight-10+"px");}else{$dragger.css("height",adjDraggerHeight+"px").css("line-height",adjDraggerHeight+"px");}}}
AdjustDraggerHeight();var targY=0;var draggerHeight=$dragger.height();$dragger.draggable({axis:"y",containment:"parent",drag:function(event,ui){Scroll();},stop:function(event,ui){DraggerRelease();}});$dragger_container.click(function(e){var $this=$(this);var mouseCoord=(e.pageY-$this.offset().top);if(mouseCoord<$dragger.position().top||mouseCoord>($dragger.position().top+$dragger.height())){var targetPos=mouseCoord+$dragger.height();if(targetPos<$dragger_container.height()){$dragger.css("top",mouseCoord);Scroll();}else{$dragger.css("top",$dragger_container.height()-$dragger.height());Scroll();}}});$(function($){if(mouseWheelSupport=="yes"){$customScrollBox.unbind("mousewheel");$customScrollBox.bind("mousewheel",function(event,delta){var vel=Math.abs(delta*10);$dragger.css("top",$dragger.position().top-(delta*vel));Scroll();if($dragger.position().top<0){$dragger.css("top",0);$customScrollBox_container.stop();Scroll();}
if($dragger.position().top>$dragger_container.height()-$dragger.height()){$dragger.css("top",$dragger_container.height()-$dragger.height());$customScrollBox_container.stop();Scroll();}
return false;});}});if(scrollBtnsSupport=="yes"){$scrollDownBtn.mouseup(function(){BtnsScrollStop();}).mousedown(function(){BtnsScroll("down");}).mouseout(function(){BtnsScrollStop();});$scrollUpBtn.mouseup(function(){BtnsScrollStop();}).mousedown(function(){BtnsScroll("up");}).mouseout(function(){BtnsScrollStop();});$scrollDownBtn.click(function(e){e.preventDefault();});$scrollUpBtn.click(function(e){e.preventDefault();});btnsScrollTimer=0;function BtnsScroll(dir){if(dir=="down"){var btnsScrollTo=$dragger_container.height()-$dragger.height();var scrollSpeed=Math.abs($dragger.position().top-btnsScrollTo)*(100/scrollBtnsSpeed);$dragger.stop().animate({top:btnsScrollTo},scrollSpeed,"linear");}else{var btnsScrollTo=0;var scrollSpeed=Math.abs($dragger.position().top-btnsScrollTo)*(100/scrollBtnsSpeed);$dragger.stop().animate({top:-btnsScrollTo},scrollSpeed,"linear");}
clearInterval(btnsScrollTimer);btnsScrollTimer=setInterval(Scroll,20);}
function BtnsScrollStop(){clearInterval(btnsScrollTimer);$dragger.stop();}}
if(bottomSpace<1){bottomSpace=1;}
var scrollAmount=(totalContent-(visibleHeight/bottomSpace))/(draggerContainerHeight-draggerHeight);function Scroll(){var draggerY=$dragger.position().top;var targY=-draggerY*scrollAmount;var thePos=$customScrollBox_container.position().top-targY;$customScrollBox_container.stop().animate({top:"-="+thePos},animSpeed,easeType);}}else{$dragger.css("top",0).css("display","none");$customScrollBox_container.css("top",0);$dragger_container.css("display","none");$scrollDownBtn.css("display","none");$scrollUpBtn.css("display","none");}}
$dragger.mouseup(function(){DraggerRelease();}).mousedown(function(){DraggerPress();});function DraggerPress(){$dragger.addClass("dragger_pressed");}
function DraggerRelease(){$dragger.removeClass("dragger_pressed");}}
$(window).resize(function(){if(scrollType=="horizontal"){if($dragger.position().left>$dragger_container.width()-$dragger.width()){$dragger.css("left",$dragger_container.width()-$dragger.width());}}else{if($dragger.position().top>$dragger_container.height()-$dragger.height()){$dragger.css("top",$dragger_container.height()-$dragger.height());}}
CustomScroller("resize");});};})(jQuery);
