;(function($){$.fn.extend({"scrollBar":function(options){var settings={barWidth:5,position:"x,y",wheelDis:15};options=$.extend(settings,options);var horizontalDiv='<div class="zl-scrollBarBox" style="width:100%;left:0;height:'+settings.barWidth+'px;bottom:0;">'+
'<div class="zl-scrollBar zl-horizontalBar" style="height:'+settings.barWidth+'px;border-radius:'+settings.barWidth/2+'px;"></div>'+
'</div>';var verticalDiv='<div class="zl-scrollBarBox" style="height:100%;top:0;width:'+settings.barWidth+'px;right:0;">'+
'<div class="zl-scrollBar zl-verticalBar" style="width:'+settings.barWidth+'px;border-radius:'+settings.barWidth/2+'px;"></div>'+
'</div>';var T=this;T.each(function(){$(this).attr("paddingR",$(this).css("padding-right")).attr("paddingB",$(this).css("padding-bottom"));});function creatScrollBar(obj){var This=$(obj).get(0);var paddingR=parseFloat($(obj).attr("paddingR"));var paddingB=parseFloat($(obj).attr("paddingB"));$(obj).css({"padding-right":paddingR+"px","padding-bottom":paddingB+"px","overflow":"hidden"});if(!($(obj).children().hasClass("zl-scrollContentDiv"))){$(obj).wrapInner('<div class="zl-scrollContentDiv"></div>');};if($(obj).css("position")=="static"){$(obj).css({"position":"relative"});};var scrollContentDiv=$(obj).find(".zl-scrollContentDiv");var scrollH=scrollContentDiv[0].scrollHeight;var scrollW=scrollContentDiv[0].scrollWidth;var innerH=scrollContentDiv.height();var innerW=scrollContentDiv.width();var outerH=$(obj).innerHeight();var outerW=$(obj).innerWidth();function addVerticalBar(a){This.style.paddingRight=paddingR+settings.barWidth+'px';innerH=$(a).height();var barHeight=outerH*(innerH/scrollH);$(a).find(".zl-scrollBarBox").remove().end().append(verticalDiv).find(".zl-verticalBar").height(barHeight);};function addHorizontalBar(a){This.style.paddingBottom=paddingB+settings.barWidth+'px';innerW=$(a).width();var barWidth=outerW*(innerW/scrollW);$(a).find(".zl-scrollBarBox").remove().end().append(horizontalDiv).find(".zl-horizontalBar").width(barWidth);};switch(settings.position){case "x,y":if(scrollH>innerH&&scrollW>innerW){This.style.paddingRight=paddingR+settings.barWidth+'px';innerH=$(obj).height();outerH=$(obj).innerHeight();var barHeight=(outerH-settings.barWidth)*((innerH-settings.barWidth)/scrollH);if(!($(obj).find(".zl-verticalBar").length)){$(obj).append(verticalDiv);};$(obj).find(".zl-verticalBar").height(barHeight).parent().height(outerH-settings.barWidth);This.style.paddingBottom=paddingB+settings.barWidth+'px';innerW=$(obj).width();var barWidth=(outerW-settings.barWidth)*((innerW-settings.barWidth)/scrollW);if(!($(obj).find(".zl-horizontalBar").length)){$(obj).append(horizontalDiv);};$(obj).find(".zl-horizontalBar").width(barWidth).parent().width(outerW).css({"padding-right":settings.barWidth+"px","box-sizing":"border-box"});}else if(scrollH>innerH){addVerticalBar(obj);}else if(scrollW>innerW){addHorizontalBar(obj);}else{$(obj).find(".zl-scrollBarBox").remove();}
break;case "x":if(scrollW>innerW){addHorizontalBar(obj);}else{$(obj).find(".zl-scrollBarBox").remove();}
break;case "y":if(scrollH>innerH){addVerticalBar(obj);}else{$(obj).find(".zl-scrollBarBox").remove();}
break;};}
function recycleThis(){T.each(function(){creatScrollBar(this);});};recycleThis();function creatTimer(obj,oldWidth,oldHeight,oldInnerWidth,oldInnerHeight,timer){timer=setInterval(function(){var newWidth=null;var newHeight=null;var newInnerWidth=null;var newInnerHeight=null;var topDiv=null;var leftDiv=null;var topBar=null;var leftBar=null;var scrollContentDiv=$(obj).find(".zl-scrollContentDiv");if(scrollContentDiv.length){newWidth=scrollContentDiv[0].scrollWidth;newHeight=scrollContentDiv[0].scrollHeight;newInnerWidth=scrollContentDiv.width();newInnerHeight=scrollContentDiv.height();}else{newWidth=$(obj)[0].scrollWidth-parseFloat($(obj).css("padding-left"));newHeight=$(obj)[0].scrollHeight-parseFloat($(obj).css("padding-top"));newInnerWidth=$(obj).width();newInnerHeight=$(obj).height();};if(newWidth!=oldWidth||newHeight!=oldHeight||newInnerWidth!=oldInnerWidth||newInnerHeight!=oldInnerHeight){if(scrollContentDiv.length){topDiv=parseFloat(scrollContentDiv.css("top"));leftDiv=parseFloat(scrollContentDiv.css("left"));};if($(obj).find(".zl-verticalBar").length){topBar=parseFloat($(obj).find(".zl-verticalBar").css("top"));};if($(obj).find(".zl-horizontalBar").length){leftBar=parseFloat($(obj).find(".zl-horizontalBar").css("left"));};creatScrollBar(obj);if($(obj).find(".zl-scrollBarBox").length){if(topDiv){var maxTopBox=scrollContentDiv[0].scrollHeight-$(obj).height();var maxLeftBox=scrollContentDiv[0].scrollWidth-$(obj).width();if(-leftDiv>maxLeftBox){leftDiv=-maxLeftBox;}
if(-topDiv>maxTopBox){topDiv=-maxTopBox;}
scrollContentDiv.css({"left":leftDiv+'px',"top":topDiv+'px'});};if(topBar&&$(obj).find(".zl-verticalBar").length){var verticalBar=$(obj).find(".zl-verticalBar");var maxTop=verticalBar.parent().height()-verticalBar.height();if(topBar>maxTop){topBar=maxTop;}
verticalBar.css("top",topBar+'px');};if(leftBar&&$(obj).find(".zl-horizontalBar").length){var horizontalBar=$(obj).find(".zl-verticalBar");var maxLeft=horizontalBar.parent().width()-horizontalBar.width();if(leftBar>maxLeft){leftBar=maxLeft;}
$(obj).find(".zl-horizontalBar").css("left",leftBar+'px');};}
oldWidth=newWidth;oldHeight=newHeight;oldInnerHeight=newInnerHeight;oldInnerWidth=newInnerWidth;}},100);}
function addTimer(){$.each(T,function(k,v){var obj=v;var timer="timer"+k;var oldWidth=null;var oldHeight=null;var oldInnerWidth=null;var oldInnerHeight=null;if($(v).find(".zl-scrollContentDiv").length){oldWidth=$(v).find(".zl-scrollContentDiv")[0].scrollWidth;oldHeight=$(v).find(".zl-scrollContentDiv")[0].scrollHeight;oldInnerWidth=$(v).find(".zl-scrollContentDiv").width();oldInnerHeight=$(v).find(".zl-scrollContentDiv").height();}else{oldWidth=$(obj)[0].scrollWidth-parseFloat($(obj).css("padding-left"));oldHeight=$(obj)[0].scrollHeight-parseFloat($(obj).css("padding-top"));oldInnerWidth=$(obj).width();oldInnerHeight=$(obj).height();}
creatTimer(obj,oldWidth,oldHeight,oldInnerWidth,oldInnerHeight,timer);});}
addTimer();function clearTimer(){$.each(T,function(index,item){var timer="timer"+index;clearInterval(timer);});};this.on("mousedown",".zl-scrollBar",function(ev){clearTimer();var direction=null;if($(this).hasClass("zl-verticalBar")){direction="0";}else if($(this).hasClass("zl-horizontalBar")){direction="1";}
var This=$(this).get(0);var height=$(this).parent().height()-$(this).height();var width=$(this).parent().width()-$(this).width();var contentDiv=$(this).parent().parent().find(".zl-scrollContentDiv").get(0);var scrollH=contentDiv.scrollHeight;var innerH=$(this).parent().parent().height();var scrollW=contentDiv.scrollWidth;var innerW=$(this).parent().parent().width();var ev=ev||event;var disY=ev.clientY-This.offsetTop;var disX=ev.clientX-This.offsetLeft;var topCount=null;var leftCount=null;switch(direction){case "0":document.onmousemove=function(ev){var ev=ev||event;if(ev.clientY-disY<=0){topCount=0;}else
if((ev.clientY-disY)>=height){topCount=height;}else{topCount=ev.clientY-disY;}
This.style.top=topCount+"px";contentDiv.style.top=-(topCount*(scrollH-innerH)/height)+'px';};break;case "1":document.onmousemove=function(ev){var ev=ev||event;if(ev.clientX-disX<=0){leftCount=0;}else
if((ev.clientX-disX)>=width){leftCount=width;}else{leftCount=ev.clientX-disX;}
This.style.left=leftCount+"px";contentDiv.style.left=-(leftCount*(scrollW-innerW)/width)+'px';};break;}
document.onmouseup=function(){document.onmousemove=null;document.onmouseup=null;addTimer();};return false;});function fn(ev,a){if(a.find(".zl-verticalBar").length){var b=true;var height=a.find(".zl-scrollBarBox").height()-a.find(".zl-scrollBar").height();var contentDiv=a.find(".zl-scrollContentDiv").get(0);var scrollH=contentDiv.scrollHeight;var innerH=a.height();if(ev.wheelDelta){b=ev.wheelDelta>0?true:false;}else{b=ev.detail<0?true:false;}
var topDis=parseFloat(a.find(".zl-scrollBar").css("top"));if(b){topDis-=settings.wheelDis;if(topDis<0){topDis=0;}}else{topDis+=settings.wheelDis;if(topDis>height){topDis=height;}}
a.find(".zl-scrollBar").get(0).style.top=topDis+"px";a.find(".zl-scrollContentDiv").get(0).style.top=-(topDis*(scrollH-innerH)/height)+'px';}};T.each(function(){var oDiv=$(this).get(0);if(oDiv.addEventListener){oDiv.addEventListener("DOMMouseScroll",function(ev){var ev=ev||event;var $This=$(this);fn(ev,$This);ev.preventDefault();},false);}
oDiv.onmousewheel=function(ev){var ev=ev||event;var $This=$(this);fn(ev,$This);return false;};});return this;}});})(jQuery);