/*
values: [{value,name,count}]
dirX: true|false|{min,max}
dirY: true|false|{min,max}
type: single|range
onStop: function
onStopL: function
onStopH: function
*/
function Slider(obj,para){
	
	obj = $(obj)
	
	var paraObj = {
		onStop: false,
		currentValue:0
	}
	
	Object.extend(paraObj,para)
	
	var marker = document.createElement('div')
	marker.className = 'marker'
	obj.appendChild(marker)
	
	var dirX = {min:new Number(0),max:parseInt(obj.offsetWidth)-parseInt(marker.offsetWidth)}
	
	var inc = new drag(marker,{
		onDrag:function(event){
			var minPos = 0
			var maxPos = parseInt(obj.offsetWidth)- parseInt(marker.offsetWidth)
			
			var curPos = parseInt(Event.pointerX(event)) - inc.getOffset()[0]
			if(curPos<=maxPos ){
				if(curPos>=minPos){
				}else{
					curPos = minPos
				}
			}else{
				curPos = maxPos
			}
			
			var values = paraObj.values.length -1
			paraObj.currentValue = paraObj.values[Math.floor((curPos*values)/maxPos)]
		},
		onStart:function(event){
			marker.style.cursor = 'move'
		},
		onStop:function(event){
			if(paraObj.onStop)paraObj.onStop()
			marker.style.cursor = 'pointer'
		},
		dirY:false,
		dirX:dirX
	});
	
	this.getCurrentValue = function(){
		return paraObj.currentValue
	}
	
	this.setCurrentValue = function(value){
		
		var left = parseInt((parseInt(obj.offsetWidth)/paraObj.values.length)*value)
		marker.style.left = left +'px'
		
		return left
	}
}
