// JavaScript Document

Number.prototype.NaN0=function(){return isNaN(this)?0:this;}
var iMouseDown  = false;
var dragObject  = null;
var curTarget   = null;
var currID = null;

function makeDraggable(item){

	if(!item) return;
	item.onmousedown = function(ev){
		dragObject  = this;
		mouseOffset = getMouseOffset(this, ev);
		return false;
	}

}



function getMouseOffset(target, ev){
	ev = ev || window.event;

	var docPos    = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e){
	
	var left = 0;
	var top  = 0;
	if(!e){
		return;	
	}
	while (e.offsetParent){
		left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
		e     = e.offsetParent;
	}

	left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
	top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);

	return {x:left, y:top};

}

function mouseCoords(ev){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	try{
	return {x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,y:ev.clientY + document.body.scrollTop  - document.body.clientTop}
}
catch(e){

}
}


function mouseDown(ev){
	

	ev         = ev || window.event;
	var target = ev.target || ev.srcElement;

	if(target.onmousedown || target.getAttribute('DragObj')){
		
		return false;
	}
}

function mouseUp(ev){
	
	ev         = ev || window.event;
	var target   = ev.target || ev.srcElement;
	
	if(target.id){
		try{
			setBarPosi(target.id,getRadioSize(target.id));
		}
		catch(e){
			
		}
	}
	dragObject = null;
	iMouseDown = false;	
	
}

function getRadioSize(id){
	id = id.substring(0,id.lastIndexOf("_"));
	var bln = true;
	var objTemp = null;
	var ii = 1;
	
	while(bln){	
		if(document.getElementById(id+"_"+ii)==null){	
			return ii-1;	
		}
		ii++;		
	}	
	return;
}


function getAdjustBar(id){

	var obj = document.getElementById(id);
	
	var objPosi = getPosition(obj);
	
	return {x1:objPosi.x,x2:objPosi.x+obj.width};

}

function mouseMove(ev){
	
	ev         = ev || window.event;

	
	var target   = ev.target || ev.srcElement;
	var mousePos = mouseCoords(ev);

	

	if(dragObject){
		var obj  = getAdjustBar(dragObject.id);


		dragObject.style.position = 'absolute';
		

		if(((mousePos.x - mouseOffset.x)<=obj.x2-10)||((mousePos.x - mouseOffset.x)>=obj.x1-10)){
			dragObject.style.left     = mousePos.x - mouseOffset.x;
		}
		
	}

	// track the current mouse state so we can compare against it next time
	lMouseState = iMouseDown;

	// this prevents items on the page from being highlighted while dragging
	if(curTarget || dragObject) return false;
	
}

document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup   = mouseUp;

function setBarPosi(id,amount){

	var BarTopPosi = getPosition(document.getElementById(id+"_Top"));

	var BarPosi = getPosition(document.getElementById(id));

	var BarTopWidth = getAdjustBar(id+"_Top");
	var BarMovedWidth = BarPosi.x-BarTopWidth.x1+10;
	var CellWidth = Math.floor ((BarTopWidth.x2-BarTopWidth.x1)/(amount-1));
	var SetPosi = 0;
	var MovedAmount =0;
	for(i=0; i<=amount;i++){
		if((i*CellWidth-CellWidth/2<=BarMovedWidth)&&(BarMovedWidth<i*CellWidth+CellWidth/2)){
			SetPosi = i*CellWidth+BarTopWidth.x1;
			document.getElementById(id.substring(0,id.lastIndexOf("_"))+"_"+(i+1)).checked = true;
			break;
		}
	}
	if(SetPosi>BarTopWidth.x2){
		SetPosi = BarTopWidth.x2;
	}
	else	if(SetPosi<BarTopWidth.x1){
		SetPosi = BarTopWidth.x1;
	}
	
	document.getElementById(id).style.left = SetPosi-10;
//	document.getElementById(id).style.top = BarPosi.y;

	
	
}
