/*
Copyright (c) 2006 Yahoo! Inc. All rights reserved.
version 0.9.0
(press by amonya.com)[http://ecs.amonya.com/]
*/
YAHOO.widget.Slider=function(_1,_2,_3){
if(_1){
this.init(_1,_2,true);
var _4=this;
this.thumb=_3;
_3.onChange=function(){
_4.onThumbChange();
};
var el=_3.getEl();
this.thumbCenterPoint={x:el.offsetWidth/2,y:el.offsetHeight/2};
this.isTarget=false;
this.animate=YAHOO.widget.Slider.ANIM_AVAIL;
this.baselinePos=YAHOO.util.Dom.getXY(this.getEl());
this.tickPause=40;
if(_3._isHoriz&&_3.xTicks){
this.tickPause=Math.round(360/_3.xTicks.length);
}else{
if(_3.yTicks){
this.tickPause=Math.round(360/_3.yTicks.length);
}
}
_3.onMouseDown=function(){
return _4.focus();
};
_3.b4MouseDown=function(){
return _4.b4MouseDown();
};
_3.onMouseUp=function(){
_4.onMouseUp();
};
_3.onDrag=function(){
_4.fireEvents();
};
}
};
YAHOO.widget.Slider.prototype=new YAHOO.util.DragDrop();
YAHOO.widget.Slider.getHorizSlider=function(_6,_7,_8,_9,_a){
return new YAHOO.widget.Slider(_6,_6,new YAHOO.widget.SliderThumb(_7,_6,_8,_9,0,0,_a));
};
YAHOO.widget.Slider.getVertSlider=function(_b,_c,_d,_e,_f){
return new YAHOO.widget.Slider(_b,_b,new YAHOO.widget.SliderThumb(_c,_b,0,0,_d,_e,_f));
};
YAHOO.widget.Slider.getSliderRegion=function(_10,_11,_12,_13,iUp,_15,_16){
return new YAHOO.widget.Slider(_10,_10,new YAHOO.widget.SliderThumb(_11,_10,_12,_13,iUp,_15,_16));
};
YAHOO.widget.Slider.ANIM_AVAIL=true;
YAHOO.widget.Slider.prototype.lock=function(){
this.thumb.lock();
this.locked=true;
};
YAHOO.widget.Slider.prototype.unlock=function(){
this.thumb.unlock();
this.locked=false;
};
YAHOO.widget.Slider.prototype.onMouseUp=function(){
this._deferSlideEnd=true;
this.fireEvents();
};
YAHOO.widget.Slider.prototype.focus=function(){
var el=this.getEl();
if(el.focus){
el.focus();
}
this.verifyOffset();
if(this.isLocked()){
return false;
}else{
this.onSlideStart();
return true;
}
};
YAHOO.widget.Slider.prototype.onChange=function(_18,_19){
};
YAHOO.widget.Slider.prototype.onSlideStart=function(){
};
YAHOO.widget.Slider.prototype.onSlideEnd=function(){
};
YAHOO.widget.Slider.prototype.getValue=function(){
return this.thumb.getValue();
};
YAHOO.widget.Slider.prototype.getXValue=function(){
return this.thumb.getXValue();
};
YAHOO.widget.Slider.prototype.getYValue=function(){
return this.thumb.getYValue();
};
YAHOO.widget.Slider.prototype.onThumbChange=function(){
var t=this.thumb;
if(t._isRegion){
t.onChange(t.getXValue(),t.getYValue());
}else{
t.onChange(t.getValue());
}
};
YAHOO.widget.Slider.prototype.setValue=function(_1b,_1c){
if(this.isLocked()){
return false;
}
if(isNaN(_1b)){
return false;
}
var t=this.thumb;
var _1e,newY;
if(t._isRegion){
return false;
}else{
if(t._isHoriz){
_1e=t.initPageX+_1b+this.thumbCenterPoint.x;
this.moveThumb(_1e,t.initPageY,_1c);
}else{
newY=t.initPageY+_1b+this.thumbCenterPoint.y;
this.moveThumb(t.initPageX,newY,_1c);
}
}
return true;
};
YAHOO.widget.Slider.prototype.setRegionValue=function(_1f,_20,_21){
if(this.isLocked()){
return false;
}
if(isNaN(_1f)){
return false;
}
var t=this.thumb;
if(t._isRegion){
var _23=t.initPageX+_1f+this.thumbCenterPoint.x;
var _24=t.initPageY+_20+this.thumbCenterPoint.y;
this.moveThumb(_23,_24,_21);
return true;
}
return false;
};
YAHOO.widget.Slider.prototype.verifyOffset=function(){
var _25=YAHOO.util.Dom.getXY(this.getEl());
if(_25[0]!=this.baselinePos[0]||_25[1]!=this.baselinePos[1]){
this.thumb.resetConstraints();
this.baselinePos=_25;
return false;
}
return true;
};
YAHOO.widget.Slider.prototype.moveThumb=function(x,y,_28){
this.verifyOffset();
var _29=this;
var t=this.thumb;
t.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);
var _p=t.getTargetCoord(x,y);
var p=[_p.x,_p.y];
if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&t._graduated&&!_28){
this.lock();
setTimeout(function(){
_29.moveOneTick(p);
},this.tickPause);
}else{
if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&!_28){
this.lock();
var _2d=new YAHOO.util.Motion(t.id,{points:{to:p}},0.4,YAHOO.util.Easing.easeOut);
_2d.onComplete.subscribe(function(){
_29.endAnim();
});
_2d.animate();
}else{
t.setDragElPos(x,y);
this.fireEvents();
}
}
};
YAHOO.widget.Slider.prototype.moveOneTick=function(_2e){
var t=this.thumb;
var _30=YAHOO.util.Dom.getXY(t.getEl());
var tmp;
var _32=null;
if(t._isRegion){
_32=this._getNextX(_30,_2e);
var _33=(_32)?_32[0]:_30[0];
_32=this._getNextY([_33,_30[1]],_2e);
}else{
if(t._isHoriz){
_32=this._getNextX(_30,_2e);
}else{
_32=this._getNextY(_30,_2e);
}
}
if(_32){
YAHOO.util.Dom.setXY(t.getEl(),_32);
if(!(_32[0]==_2e[0]&&_32[1]==_2e[1])){
var _34=this;
setTimeout(function(){
_34.moveOneTick(_2e);
},this.tickPause);
}else{
this.unlock();
this.fireEvents();
}
}else{
this.unlock();
this.fireEvents();
}
};
YAHOO.widget.Slider.prototype._getNextX=function(_35,_36){
var t=this.thumb;
var _38;
var tmp=[];
var _3a=null;
if(_35[0]>_36[0]){
_38=t.tickSize-this.thumbCenterPoint.x;
tmp=t.getTargetCoord(_35[0]-_38,_35[1]);
_3a=[tmp.x,tmp.y];
}else{
if(_35[0]<_36[0]){
_38=t.tickSize+this.thumbCenterPoint.x;
tmp=t.getTargetCoord(_35[0]+_38,_35[1]);
_3a=[tmp.x,tmp.y];
}else{
}
}
return _3a;
};
YAHOO.widget.Slider.prototype._getNextY=function(_3b,_3c){
var t=this.thumb;
var _3e;
var tmp=[];
var _40=null;
if(_3b[1]>_3c[1]){
_3e=t.tickSize-this.thumbCenterPoint.y;
tmp=t.getTargetCoord(_3b[0],_3b[1]-_3e);
_40=[tmp.x,tmp.y];
}else{
if(_3b[1]<_3c[1]){
_3e=t.tickSize+this.thumbCenterPoint.y;
tmp=t.getTargetCoord(_3b[0],_3b[1]+_3e);
_40=[tmp.x,tmp.y];
}else{
}
}
return _40;
};
YAHOO.widget.Slider.prototype.b4MouseDown=function(e){
this.thumb.resetConstraints();
};
YAHOO.widget.Slider.prototype.onMouseDown=function(e){
if(!this.isLocked()){
var x=YAHOO.util.Event.getPageX(e);
var y=YAHOO.util.Event.getPageY(e);
this.moveThumb(x,y);
this.focus();
}
};
YAHOO.widget.Slider.prototype.onDrag=function(e){
if(!this.isLocked()){
var x=YAHOO.util.Event.getPageX(e);
var y=YAHOO.util.Event.getPageY(e);
this.moveThumb(x,y,true);
}
};
YAHOO.widget.Slider.prototype.endAnim=function(){
this.unlock();
this.fireEvents();
};
YAHOO.widget.Slider.prototype.fireEvents=function(){
var t=this.thumb;
t.cachePosition();
if(!this.isLocked()){
if(t._isRegion){
var _49=t.getXValue();
var _4a=t.getYValue();
if(_49!=this.previousX||_4a!=this.previousY){
this.onChange(_49,_4a);
}
this.previousX=_49;
this.previousY=_4a;
}else{
var _4b=t.getValue();
if(_4b!=this.previousVal){
this.onChange(_4b);
}
this.previousVal=_4b;
}
if(this._deferSlideEnd){
this.onSlideEnd();
this._deferSlideEnd=false;
}
}
};
YAHOO.widget.SliderThumb=function(id,_4d,_4e,_4f,iUp,_51,_52){
if(id){
this.init(id,_4d);
this.parentElId=_4d;
this.initSlider(_4e,_4f,iUp,_51,_52);
}
this.isTarget=false;
this.tickSize=_52;
this.maintainOffset=true;
};
YAHOO.widget.SliderThumb.prototype=new YAHOO.util.DD();
YAHOO.widget.SliderThumb.prototype.getOffsetFromParent=function(){
var _53=YAHOO.util.Dom.getXY(this.getEl());
var _54=YAHOO.util.Dom.getXY(this.parentElId);
return [(_53[0]-_54[0]),(_53[1]-_54[1])];
};
YAHOO.widget.SliderThumb.prototype.startOffset=null;
YAHOO.widget.SliderThumb.prototype._isHoriz=false;
YAHOO.widget.SliderThumb.prototype._prevVal=0;
YAHOO.widget.SliderThumb.prototype._graduated=false;
YAHOO.widget.SliderThumb.prototype.initSlider=function(_55,_56,iUp,_58,_59){
this.setXConstraint(_55,_56,_59);
this.setYConstraint(iUp,_58,_59);
if(_59&&_59>1){
this._graduated=true;
}
this._isHoriz=(_55>0||_56>0);
this._isVert=(iUp>0||_58>0);
this._isRegion=(this._isHoriz&&this._isVert);
this.startOffset=this.getOffsetFromParent();
};
YAHOO.widget.SliderThumb.prototype.getValue=function(){
var val=(this._isHoriz)?this.getXValue():this.getYValue();
return val;
};
YAHOO.widget.SliderThumb.prototype.getXValue=function(){
var _5b=this.getOffsetFromParent();
return (_5b[0]-this.startOffset[0]);
};
YAHOO.widget.SliderThumb.prototype.getYValue=function(){
var _5c=this.getOffsetFromParent();
return (_5c[1]-this.startOffset[1]);
};
YAHOO.widget.SliderThumb.prototype.onChange=function(x,y){
};
if("undefined"==typeof YAHOO.util.Anim){
YAHOO.widget.Slider.ANIM_AVAIL=false;
}


