/* Copyright (c) 2006 Yahoo! Inc. All rights reserved. */
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();
		};
		
		if(_3._isRegion)
		{
			this.setRegionValue(0,0);
		}
		else
		{
			this.setValue(0);
		}
	}
};

YAHOO.widget.Slider.prototype=new YAHOO.util.DragDrop();

YAHOO.widget.Slider.getHorizSlider=function(_6,_7,_8,_9,_10)
{
	return new YAHOO.widget.Slider(_6,_6,new YAHOO.widget.SliderThumb(_7,_6,_8,_9,0,0,_10));
};

YAHOO.widget.Slider.getVertSlider=function(_11,_12,iUp,_14,_15)
{
	return new YAHOO.widget.Slider(_11,_11,new YAHOO.widget.SliderThumb(_12,_11,0,0,iUp,_14,_15));
};


YAHOO.widget.Slider.getSliderRegion=function(_16,_17,_18,_19,iUp,_20,_21)
{
	return new YAHOO.widget.Slider(_16,_16,new YAHOO.widget.SliderThumb(_17,_16,_18,_19,iUp,_20,_21));
};

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(_22,_23)
{};

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(_25,_26)
{
	if(this.isLocked())
	{
		return false;
	}
	if(isNaN(_25))
	{
		return false;
	}
	var t=this.thumb;
	var _27,newY;
	if(t._isRegion)
	{
		return false;
	}
	else
	{
		if(t._isHoriz)
		{
			_27=t.initPageX+_25+this.thumbCenterPoint.x;
			this.moveThumb(_27,t.initPageY,_26);
		}
		else
		{
			newY=t.initPageY+_25+this.thumbCenterPoint.y;
			this.moveThumb(t.initPageX,newY,_26);
		}
	}
	return true;
};

YAHOO.widget.Slider.prototype.setRegionValue=function(_28,_29,_30)
{
		if(this.isLocked())
		{
			return false;
		}
		if(isNaN(_28))
		{
			return false;
		}
		
		var t=this.thumb;
		
		if(t._isRegion)
		{
			var _31=t.initPageX+_28+this.thumbCenterPoint.x;
			var _32=t.initPageY+_29+this.thumbCenterPoint.y;
			this.moveThumb(_31,_32,_30);return true;
		}
		return false;
};

YAHOO.widget.Slider.prototype.verifyOffset=function()
{
	var _33=YAHOO.util.Dom.getXY(this.getEl());
	if(_33[0]!=this.baselinePos[0]||_33[1]!=this.baselinePos[1])
	{
		this.thumb.resetConstraints();
		this.baselinePos=_33;
		return false;
	}
	return true;
};
			/*
			function getScrollXY()
			{
				  var scrOfX = 0, scrOfY = 0;
				  if( typeof( window.pageYOffset ) == 'number' ) {
					//Netscape compliant
					scrOfY = window.pageYOffset;
					scrOfX = window.pageXOffset;
				  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
					//DOM compliant
					scrOfY = document.body.scrollTop;
					scrOfX = document.body.scrollLeft;
				  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
					//IE6 standards compliant mode
					scrOfY = document.documentElement.scrollTop;
					scrOfX = document.documentElement.scrollLeft;
				  }
				  return [ scrOfX, scrOfY ];
			};
			*/



YAHOO.widget.Slider.prototype.moveThumb=function(x,y,_36)
{	
	this.verifyOffset();
	var _37=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&&!_36)
	{
		this.lock();
		setTimeout(function(){_37.moveOneTick(p);},this.tickPause);
	}
	else
	{
		if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&!_36)
		{
			this.lock();
			var _40=new YAHOO.util.Motion(t.id,{points:{to:p}},0.4,YAHOO.util.Easing.easeOut);
			_40.onComplete.subscribe(function(){_37.endAnim();});
			_40.animate();
		}
		else
		{
			t.setDragElPos(x,y);
			this.fireEvents();
		}
		
	}
};
YAHOO.widget.Slider.prototype.moveOneTick=function(_41){var t=this.thumb;var _42=YAHOO.util.Dom.getXY(t.getEl());var tmp;var _44=null;if(t._isRegion){_44=this._getNextX(_42,_41);var _45=(_44)?_44[0]:_42[0];_44=this._getNextY([_45,_42[1]],_41);}else{if(t._isHoriz){_44=this._getNextX(_42,_41);}else{_44=this._getNextY(_42,_41);}}if(_44){YAHOO.util.Dom.setXY(t.getEl(),_44);if(!(_44[0]==_41[0]&&_44[1]==_41[1])){var _46=this;setTimeout(function(){_46.moveOneTick(_41);},this.tickPause);}else{this.unlock();this.fireEvents();}}else{this.unlock();this.fireEvents();}};YAHOO.widget.Slider.prototype._getNextX=function(_47,_48){var t=this.thumb;var _49;var tmp=[];var _50=null;if(_47[0]>_48[0]){_49=t.tickSize-this.thumbCenterPoint.x;tmp=t.getTargetCoord(_47[0]-_49,_47[1]);_50=[tmp.x,tmp.y];}else{if(_47[0]<_48[0]){_49=t.tickSize+this.thumbCenterPoint.x;tmp=t.getTargetCoord(_47[0]+_49,_47[1]);_50=[tmp.x,tmp.y];}else{}}return _50;};YAHOO.widget.Slider.prototype._getNextY=function(_51,_52){var t=this.thumb;var _53;var tmp=[];var _54=null;if(_51[1]>_52[1]){_53=t.tickSize-this.thumbCenterPoint.y;tmp=t.getTargetCoord(_51[0],_51[1]-_53);_54=[tmp.x,tmp.y];}else{if(_51[1]<_52[1]){_53=t.tickSize+this.thumbCenterPoint.y;tmp=t.getTargetCoord(_51[0],_51[1]+_53);_54=[tmp.x,tmp.y];}else{}}return _54;};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 _56=t.getXValue();var _57=t.getYValue();if(_56!=this.previousX||_57!=this.previousY){this.onChange(_56,_57);}this.previousX=_56;this.previousY=_57;}else{var _58=t.getValue();if(_58!=this.previousVal){this.onChange(_58);}this.previousVal=_58;}if(this._deferSlideEnd){this.onSlideEnd();this._deferSlideEnd=false;}}};YAHOO.widget.SliderThumb=function(id,_60,_61,_62,iUp,_63,_64){if(id){this.init(id,_60);this.parentElId=_60;}this.isTarget=false;this.tickSize=_64;this.maintainOffset=true;this.initSlider(_61,_62,iUp,_63,_64);};YAHOO.widget.SliderThumb.prototype=new YAHOO.util.DD();YAHOO.widget.SliderThumb.prototype.getOffsetFromParent=function(){var _65=YAHOO.util.Dom.getXY(this.getEl());var _66=YAHOO.util.Dom.getXY(this.parentElId);return [(_65[0]-_66[0]),(_65[1]-_66[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(_67,_68,iUp,_69,_70){this.setXConstraint(_67,_68,_70);this.setYConstraint(iUp,_69,_70);if(_70&&_70>1){this._graduated=true;}this._isHoriz=(_67>0||_68>0);this._isVert=(iUp>0||_69>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 _72=this.getOffsetFromParent();return (_72[0]-this.startOffset[0]);};YAHOO.widget.SliderThumb.prototype.getYValue=function(){var _73=this.getOffsetFromParent();return (_73[1]-this.startOffset[1]);};YAHOO.widget.SliderThumb.prototype.onChange=function(x,y){};if("undefined"==typeof YAHOO.util.Anim){YAHOO.widget.Slider.ANIM_AVAIL=false;}