// Copyright (c) Position s.r.o.
// All rights reserved.

function scrollbar(a,b,c,e,d,g,f,h){this.Id=a;this.IdName=b;this.Display=c;if(h=="")h="#DFDFDF";this.Background=h;this.LargeChange=this.RangeJezdec=this.Range=this.PageSize=this.Pos=this.Max=this.Min=0;this.SmallChange=14;this.Smer=e;this.PxHalfJezdec=this.PxRange=this.PxPageSize=this.PxMax=this.PxMin=this.Px=0;this.ImgJezdec=Array(g,0);this.MinJezdec=9;this.LoadCounter=0;this.Add=scrollbar_add;this.RefreshPxMinMax=scrollbar_refreshPxMinMax;this.SetMinMax=scrollbar_setMinMax;this.SetJezdec=scrollbar_setJezdec;
this.RefreshJezdec=scrollbar_refreshJezdec;this.MouseDownMinMax=scrollbar_mouseDownMinMax;this.MouseUpMinMax=scrollbar_mouseUpMinMax;this.OnPositionChanged="";this.MouseUpJezdec=scrollbar_mouseUpJezdec;this.MouseMoveJezdec=scrollbar_mouseMoveJezdec;this.MouseDownJezdec=scrollbar_mouseDownJezdec;this.PxRefreshJezdec=scrollbar_pxRefreshJezdec;this.LoadImg=scrollbar_loadImg;this.Add(d,g,f)}
function scrollbar_add(a,b,c){var e=this.IdName,d=this.Id,g=document.getElementById(e);if(g){var f=g.clientHeight,h=g.clientWidth;if(this.Smer=="horizontal")var i="right",j="height:"+f+"px;";else{i="bottom";j="width:"+h+"px;"}this.LoadCounter=3;f="<div id='"+e+"_body' style='background:"+this.Background+";position:absolute;width:"+h+"px;height:"+f+"px;'>";f+="<img onload='"+d+".LoadImg();' id='"+e+"_min' style='left:0;position:absolute;' onmousedown='"+d+'.MouseDownMinMax("min", "small");\' onmouseup=\''+
d+".MouseUpMinMax();' src='"+a+"' alt='' ondrag='return false;' />";f+="<div id='"+e+"_emptyMin' style='font-size:0;line-height:0;"+j+"position:absolute;' onmousedown='"+d+'.MouseDownMinMax("min", "large");\' onmouseup=\''+d+".MouseUpMinMax();' ></div>";f+="<div id='"+e+"_emptyMax' style='font-size:0;line-height:0;"+j+"position:absolute;' onmousedown='"+d+'.MouseDownMinMax("max", "large");\' onmouseup=\''+d+".MouseUpMinMax();' ></div>";f+="<div id='"+e+"_jezdec' style='font-size:0;line-height:0;"+
j+"position:absolute;overflow:hidden;' onmousedown='"+d+".MouseDownJezdec(event);' onmouseup='"+d+".MouseUpJezdec();' ></div>";f+="<img onload='"+d+".LoadImg();' id='"+e+"_max' style='position:absolute;"+i+":0;' onmousedown='"+d+'.MouseDownMinMax("max", "small");\' onmouseup=\''+d+".MouseUpMinMax();' src='"+c+"' alt='' ondrag='return false;' />";f+="<img onload='"+d+".LoadImg();' id='"+e+"_hideJezdec' style='position:absolute;display:block;' src='"+b+"' alt='' />";f+="</div>";g.innerHTML=f}}
function scrollbar_loadImg(){this.LoadCounter--;this.LoadCounter==0&&this.RefreshPxMinMax()}
function scrollbar_refreshPxMinMax(){var a=this.IdName,b=document.getElementById(a+"_body"),c=document.getElementById(a+"_min"),e=document.getElementById(a+"_max"),d=document.getElementById(a+"_emptyMin"),g=document.getElementById(a+"_emptyMax");a=document.getElementById(a+"_hideJezdec");var f=0,h=0,i=0,j=0;if(this.Smer=="vertical"){if(b)i=b.clientHeight;if(c)f=c.clientHeight;if(e)h=e.clientHeight;if(d)d.style.top=f+"px";if(g)g.style.bottom=h+"px";if(a){this.ImgJezdec[1]=a.clientHeight;a.style.display=
"none"}}else if(this.Smer=="horizontal"){if(b)i=b.clientWidth;if(c)f=c.clientWidth;if(e)h=e.clientWidth;if(d)d.style.left=f+"px";if(g)g.style.right=h+"px";if(a){this.ImgJezdec[1]=a.width;a.style.display="none"}}this.PxMin=f;this.PxMax=i-h;if(this.PxMax<0||this.PxMax<this.PxMin)this.PxMax=this.PxMin;this.PxRange=this.PxMax-this.PxMin;this.PxHalfJezdec=0;this.LoadCounter=-1}
function scrollbar_setMinMax(a,b,c,e){if(this.LoadCounter>-1)this.SCROLL_TIMER_LOAD=setTimeout(this.Id+".SetMinMax("+a+","+b+","+c+","+e+");",100);else{this.SCROLL_TIMER_LOAD&&clearTimeout(this.SCROLL_TIMER_LOAD);if(b<a)b=a;var d=b-a,g=0,f=document.getElementById(this.IdName);if(d>e){g=d;if(f&&this.Display=="auto")f.style.display="block"}else if(f&&this.Display=="auto")f.style.display="none";this.RangeJezdec=g;b-=e;if(b<a)a=b=c;this.Min=a;this.Max=b;if(c>b)c=b;else if(c<a)c=a;this.Pos=c;this.Range=
b-a;this.SetJezdec(e);this.RefreshJezdec()}}function scrollbar_getPercentage(a,b){if(b==0)return 0;return 100*a/b}function scrollbar_getValue(a,b){return Math.round(a*b/100)}
function scrollbar_setJezdec(a){this.LargeChange=this.PageSize=a;a=scrollbar_getPercentage(a,this.RangeJezdec);a=scrollbar_getValue(a,this.PxRange);if(a>0&&a<this.MinJezdec)a=this.MinJezdec;this.PxPageSize=a;var b=this.PxHalfJezdec,c=this.PxMin-b,e=this.PxMax+b;this.PxHalfJezdec=b=Math.round(a/2);this.PxMin=c+b;this.PxMax=e-b;if(this.PxMax<this.PxMin)this.PxMax=this.PxMin;this.PxRange=this.PxMax-this.PxMin;if(b=document.getElementById(this.IdName+"_jezdec")){if(this.Smer=="horizontal"){b.style.width=
a+"px";var d="left"}else if(this.Smer=="vertical"){b.style.height=a+"px";d="top"}c=0;for(e="";c<a;){e+="<img style='position:absolute;"+d+":"+c+"px;' src='"+this.ImgJezdec[0]+"' alt='' ondrag='return false;' />";c+=this.ImgJezdec[1]}b.innerHTML=e}}
function scrollbar_refreshJezdec(){var a=scrollbar_getPercentage(this.Pos-this.Min,this.Range);a=scrollbar_getValue(a,this.PxRange)+this.PxMin;var b=this.PxHalfJezdec,c=this.PxMin,e=this.PxMax;if(a<c)a=c;if(a>e)a=e;this.Px=a;var d=document.getElementById(this.IdName+"_jezdec"),g=document.getElementById(this.IdName+"_emptyMin"),f=document.getElementById(this.IdName+"_emptyMax"),h=this.Smer;if(h=="vertical"){if(d)d.style.top=a-b+"px";if(g)g.style.height=a-c+"px";if(f)f.style.height=e-a+"px"}else if(h==
"horizontal"){if(d)d.style.left=a-b+"px";if(g)g.style.width=a-c+"px";if(f)f.style.width=e-a+"px"}}var SCROLL_TIMER_ARR,SCROLL_TIME=500;
function scrollbar_mouseDownMinMax(a,b){var c=0,e=this.Pos;if(a=="min"){if(b=="small")this.Pos-=this.SmallChange;else if(b=="large")this.Pos-=this.LargeChange;if(this.Pos<this.Min){this.Pos=this.Min;c=1}}else if(a=="max"){if(b=="small")this.Pos+=this.SmallChange;else if(b=="large")this.Pos+=this.LargeChange;if(this.Pos>this.Max){this.Pos=this.Max;c=1}}if(e==this.Pos)c=1;else{this.RefreshJezdec();this.OnPositionChanged&&this.OnPositionChanged(this)}if(c)this.MouseUpMinMax();else{SCROLL_TIMER_ARR=setTimeout(this.Id+
'.MouseDownMinMax("'+a+'", "'+b+'");',SCROLL_TIME);SCROLL_TIME=100}}function scrollbar_mouseUpMinMax(){clearTimeout(SCROLL_TIMER_ARR);SCROLL_TIME=500}
function scrollbar_pxRefreshJezdec(){var a=this.PxHalfJezdec,b=this.Px,c=this.PxMin,e=this.PxMax,d=document.getElementById(this.IdName+"_jezdec"),g=document.getElementById(this.IdName+"_emptyMin"),f=document.getElementById(this.IdName+"_emptyMax"),h=this.Smer;if(h=="vertical"){if(d)d.style.top=b-a+"px";if(g)g.style.height=b-c+"px";if(f)f.style.height=e-b+"px"}else if(h=="horizontal"){if(d)d.style.left=b-a+"px";if(g)g.style.width=b-c+"px";if(f)f.style.width=e-b+"px"}}var SCROLL_MOUSE_MOVE=0;
function scrollbar_mouseDownJezdec(a){if(window.event){a=window.event;var b=a.clientX,c=a.clientY}else{b=a.pageX;c=a.pageY}a.preventDefault&&a.preventDefault();if(a.button==0||a.button==1){SCROLL_MOUSE_MOVE=this;if(this.Smer=="vertical")this.MouseLast=c;else if(this.Smer=="horizontal")this.MouseLast=b}}
function scrollbar_mouseMoveJezdec(a){if(document.all){var b=a.clientX;a=a.clientY}else{b=a.pageX;a=a.pageY}if(this.Smer=="vertical")var c=a;else if(this.Smer=="horizontal")c=b;if(this.MouseMin)if(this.MouseMin>c)return;else{this.MouseLast=this.MouseMin;this.MouseMin=0}if(this.MouseMax)if(this.MouseMax<c)return;else{this.MouseLast=this.MouseMax;this.MouseMax=0}b=this.Px+(c-this.MouseLast);if(b<this.PxMin){b=this.PxMin;this.MouseMin=this.MouseLast}else if(b>this.PxMax){b=this.PxMax;this.MouseMax=this.MouseLast}else this.MouseLast=
c;this.Px=b;c=scrollbar_getPercentage(this.Px-this.PxMin,this.PxRange);c=scrollbar_getValue(c,this.Range)+this.Min;if(c<this.Min)c=this.Min;if(c>this.Max)c=this.Max;this.Pos=c;this.PxRefreshJezdec();this.OnPositionChanged&&this.OnPositionChanged(this)}function scrollbar_mouseUpJezdec(){if(SCROLL_MOUSE_MOVE){SCROLL_MOUSE_MOVE.MouseMin=0;SCROLL_MOUSE_MOVE.MouseMax=0}SCROLL_MOUSE_MOVE=0}function mouseMove(a){if(!a)a=window.event;SCROLL_MOUSE_MOVE&&SCROLL_MOUSE_MOVE.MouseMoveJezdec(a);return false}
function mouseUp(a){SCROLL_MOUSE_MOVE&&SCROLL_MOUSE_MOVE.MouseUpJezdec();if(SCROLL_TIMER_ARR){clearTimeout(SCROLL_TIMER_ARR);SCROLL_TIME=500}return false};
