﻿// JavaScript Document
var on_handle = null;
var A_pos = new Array();
function Slider(){
	this.init = function(nobj,slider,handle,Index,s_min,s_max,pos,sobj){
		this.handle = handle;
		this.handleId = document.getElementById(handle);
		this.sliderId = document.getElementById(slider);
		this.s_min = (s_min>=0)?s_min:0;
		this.s_max = (s_max>s_min)?s_max:s_min;
		this.draging = false;
		this.fixMouse = 0;
		this.val = 0;
		this.BeforeDrag = BeforeDrag;
		this.OnDrag = OnDrag;
		this.EngDrag = EngDrag;
		this.pos = pos;
		this.handleId.style.left = this.pos+"px";
		this.Index = Index;
		this.nobj = nobj;
		this.sobj = document.getElementById(sobj);
		this.ShowVal = ShowVal;
		this.DealVal = DealVal;
	}
	this.getPos = function(event) {
		var x = event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)) || 0;
		var y = event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) || 0;
		return {x:x, y:y};
	}
	this.setPos = function(pos){
		A_pos[this.Index] = pos;
	}
	this.repos = function(){
		return A_pos[this.Index];
	}
}
function BeforeDrag(e,obj){
	var evt = e||window.event;
	var BtnCode = evt.button||evt.which;
	if (BtnCode != 1){
		return;
	}
	on_handle = obj;
	m = on_handle.getPos(e);
	on_handle.draging = true;
	on_handle.fixMouse = m.x - on_handle.sliderId.offsetLeft - on_handle.handleId.offsetLeft;
	on_handle.handleId.style.cursor = "move";
	document.onmousemove = this.OnDrag;
	document.onmouseup = this.EngDrag;
	on_handle.val = on_handle.handleId.style.left;
}
function OnDrag(e){
	var evt = e||window.event;
	var BtnCode = evt.button||evt.which;
	if (!on_handle || !on_handle.draging){
		return;
	}
	evt.returnValue = false;
	m = mouseCoords(evt);
	var x = m.x - on_handle.sliderId.offsetLeft - on_handle.fixMouse;

if (on_handle.Index == on_handle.nobj && on_handle.Index != 0){
		n_max = on_handle.s_max;
		n_min = (A_pos[on_handle.Index-1])?A_pos[on_handle.Index-1]<on_handle.s_min?on_handle.s_min:A_pos[on_handle.Index-1]+14:on_handle.s_min;
	}else if (on_handle.Index == 0){
		n_max = (A_pos[on_handle.Index+1])?A_pos[on_handle.Index+1]>on_handle.s_max?on_handle.s_max:A_pos[on_handle.Index+1]-14:on_handle.s_max;
		n_min = on_handle.s_min;
	}else {
		n_min = A_pos[on_handle.Index-1];
		n_max = A_pos[on_handle.Index+1];
	}
	if (x>=n_min && x<=n_max){
		on_handle.setPos(x);
		on_handle.pos = x;
		on_handle.handleId.style.left = x+"px";
		on_handle.val = parseInt(((on_handle.s_max-0)*x/(on_handle.sliderId.offsetWidth-on_handle.handleId.offsetWidth)));
		on_handle.ShowVal(on_handle.val,on_handle.sobj,on_handle.handle);
		//on_handle.sobj.innerHTML = on_handle.val+ " / " + n_max;
	}
}
function EngDrag(e){
	if (!on_handle){
		return;
	}
	//on_handle.handleId.style.cursor = "default";
	on_handle.DealVal(on_handle.val,on_handle.handle);
	on_handle.draging = false;
	document.onmousemove = null;
	document.onmouseup = null;

}

function mouseCoords(ev)
{
 if(ev.pageX || ev.pageY){
   return {x:ev.pageX, y:ev.pageY};
 }
 return {
     x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
     y:ev.clientY + document.body.scrollTop - document.body.clientTop
 };
}