/**
 * RightJS UI Slider unit 
 * http://rightjs.org/ui/slider
 *
 * Copyright (C) 2009-2010 Nikolay Nemshilov
 */
var Slider=RightJS.Slider=function(j,k,e){var h=e.$,m=e.$$,n=e.$w,l=e.$E,o=e.$A,p=e.isHash,q=e.Element,g=new (function(b,a){if(!a){a=b;b="DIV"}var f=new e.Wrapper(e.Element.Wrappers[b]||e.Element,{initialize:function(c,d){this.key=c;var i=[{"class":"rui-"+c}];this instanceof e.Input||this instanceof e.Form||i.unshift(b);this.$super.apply(this,i);if(e.isString(d))d=e.$(d);if(d instanceof e.Element){this._=d._;if("$listeners"in d)d.$listeners=d.$listeners;d={}}this.setOptions(d,this);return this},setOptions:function(c,
d){d=d||this;e.Options.setOptions.call(this,e.Object.merge(c,eval("("+(d.get("data-"+this.key)||"{}")+")")));return this}});f=new e.Wrapper(f,a);e.Observer.createShortcuts(f.prototype,f.EVENTS||[]);return f})({include:{assignTo:function(b){var a=e(function(c,d){if(c=h(c))c[c.setValue?"setValue":"update"](d.target.getValue())}).curry(b),f=e(function(c,d){(c=h(c))&&c.onChange&&c.onChange(e(function(){this.setValue(c.value())}).bind(d))}).curry(b);if(h(b)){a({target:this});f(this)}else h(j).onReady(e(function(){a({target:this});
f(this)}.bind(this)));return this.onChange(a)}},extend:{version:"2.0.0",EVENTS:n("change"),Options:{min:0,max:100,snap:0,value:null,direction:"x",update:null,round:0},current:false},initialize:function(){var b=o(arguments).compact(),a=b.pop();b=b.pop();if(!p(a)||a instanceof q){b=h(b||a);a={}}this.$super("slider",b).setOptions(a).on("selectstart","stopEvent");this.level=this.first(".level")||l("div",{"class":"level"}).insertTo(this);this.handle=this.first(".handle")||l("div",{"class":"handle"}).insertTo(this);
a=this.options;this.value=a.value===null?a.min:a.value;a.update&&this.assignTo(a.update);if(a.direction==="y")this.addClass("rui-slider-vertical");else if(this.hasClass("rui-slider-vertical"))a.direction="y";this.setValue(this.value)},setValue:function(b){return this.precalc().shiftTo(b)},getValue:function(){return this.value},insertTo:function(b,a){return this.$super(b,a).setValue(this.value)},precalc:function(){var b=this.options.direction==="x",a=this.handle.setStyle(b?{left:0}:{bottom:0}).dimensions(),
f=this.hSize=b?a.width:a.height,c=this.dims=this.dimensions();this.offset=b?a.left-c.left:c.top+c.height-a.top-f;this.space=(b?c.width-f-this.offset*2:c.height-f)-this.offset*2;return this},start:function(b){return this.precalc().e2val(b)},move:function(b){return this.e2val(b)},shiftTo:function(b){var a=this.options,f=k.pow(10,a.round),c=a.direction==="x";b=k.round(b*f)/f;if(b<a.min)b=a.min;if(b>a.max)b=a.max;if(a.snap){f=a.snap;var d=b%f;b=d<f/2?b-d:b-d+f}a=this.space/(a.max-a.min)*(b-a.min);this.handle._.style[c?
"left":"bottom"]=a+"px";this.level._.style[c?"width":"height"]=(a>0?a:0)+2+"px";if(b!==this.value){this.value=b;this.fire("change")}return this},e2val:function(b){var a=this.options,f=a.direction==="x",c=this.dims,d=this.offset,i=this.space;b=b.position()[f?"x":"y"]-d-this.hSize/2;c=(a.max-a.min)/i*(b-(f?c.left+d:c.top+d));return this.shiftTo(f?a.min+c:a.max-c)}});h(j).on({ready:function(){m(".rui-slider").each(function(b){b instanceof g||new g(b)})},mousedown:function(b){var a=b.find(".rui-slider");
if(a){b.stop();a instanceof g||(a=new g(a));g.current=a.start(b)}},mousemove:function(b){g.current&&g.current.move(b)},mouseup:function(){if(g.current)g.current=false}});h(window).onBlur(function(){if(g.current)g.current=false});j.write('<style type="text/css">div.rui-slider,div.rui-slider .handle div.rui-slider .level{margin:0;padding:0;border:none;background:none}div.rui-slider{height:0.4em;width:20em;border:1px solid #bbb;background:#F8F8F8;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em;position:relative;margin:.6em 0;display:inline-block; *display:inline; *zoom:1;vertical-align:middle;user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:pointer}div.rui-slider .handle{font-size:25%;position:absolute;left:0;top:0;width:4pt;height:4em;margin-top:-1.6em;margin-left:0.4em;background:#BBB;border:1px solid #999;border-radius:.8em;-moz-border-radius:.8em;-webkit-border-radius:.8em;z-index:20}div.rui-slider .level{font-size:25%;position:absolute;top:0;left:0;width:0;height:100%;background:#ddd;z-index:1}div.rui-slider-vertical{height:10em;width:0.4em;margin:0 .3em}div.rui-slider-vertical .handle{top:auto;bottom:0;margin:0;margin-left:-1.6em;margin-bottom:0.4em;height:4pt;width:4em}div.rui-slider-vertical .level{height:0;width:100%;top:auto;bottom:0}</style>');
return g}(document,Math,RightJS);