var lineObject = document.getElementById("menuline");
var m = document.getElementById("menu0");
var timeoutID;
var targetPosition;
var i;
var rate = 5;
var fastStep = 6.0;
var isLeftMove = true;
var widthRate;
var moveSpeed;
var lineWidth = new Array(6);
var currentLeft;
var lineLeft = new Array(6);
var currentWidth;
var lineTop;
var isIe = (navigator.userAgent.toLowerCase().indexOf("msie") != -1);
Init();
InitDefaultLine();

function Init()
{
	lineWidth[0] = document.getElementById("menu0").offsetWidth;
	lineWidth[1] = document.getElementById("menu1").offsetWidth;
	lineWidth[2] = document.getElementById("menu2").offsetWidth;
	lineWidth[3] = document.getElementById("menu3").offsetWidth;
	lineWidth[4] = document.getElementById("menu4").offsetWidth;
	lineWidth[5] = document.getElementById("menu5").offsetWidth;
	lineWidth[6] = document.getElementById("menu6").offsetWidth;
	lineWidth[7] = document.getElementById("menu7").offsetWidth;
	lineWidth[8] = document.getElementById("menu8").offsetWidth;
	lineWidth[9] = document.getElementById("menu9").offsetWidth;
	lineWidth[10] = document.getElementById("menu10").offsetWidth;
	lineWidth[11] = document.getElementById("menu11").offsetWidth;
	lineWidth[12] = document.getElementById("menu12").offsetWidth;

	currentWidth = lineWidth[cur];
	
	if (isIe)
	{
		lineLeft[0] = ElementLeft(document.getElementById("menu0"));
		lineLeft[1] = ElementLeft(document.getElementById("menu1"));
		lineLeft[2] = ElementLeft(document.getElementById("menu2"));
		lineLeft[3] = ElementLeft(document.getElementById("menu3"));
		lineLeft[4] = ElementLeft(document.getElementById("menu4"));
		lineLeft[5] = ElementLeft(document.getElementById("menu5"));
		lineLeft[6] = ElementLeft(document.getElementById("menu6"));
		lineLeft[7] = ElementLeft(document.getElementById("menu7"));
		lineLeft[8] = ElementLeft(document.getElementById("menu8"));
		lineLeft[9] = ElementLeft(document.getElementById("menu9"));
		lineLeft[10] = ElementLeft(document.getElementById("menu10"));
		lineLeft[11] = ElementLeft(document.getElementById("menu11"));
		lineLeft[12] = ElementLeft(document.getElementById("menu12"));

		lineTop = ElementTop(document.getElementById("menu" + cur)) + 3;
	}
	else
	{
		lineLeft[0] = ElementLeft(document.getElementById("menu0"));
		lineLeft[1] = ElementLeft(document.getElementById("menu1"));
		lineLeft[2] = ElementLeft(document.getElementById("menu2"));
		lineLeft[3] = ElementLeft(document.getElementById("menu3"));
		lineLeft[4] = ElementLeft(document.getElementById("menu4"));
		lineLeft[5] = ElementLeft(document.getElementById("menu5"));
		lineLeft[6] = ElementLeft(document.getElementById("menu6"));
		lineLeft[7] = ElementLeft(document.getElementById("menu7"));
		lineLeft[8] = ElementLeft(document.getElementById("menu8"));
		lineLeft[9] = ElementLeft(document.getElementById("menu9"));
		lineLeft[10] = ElementLeft(document.getElementById("menu10"));
		lineLeft[11] = ElementLeft(document.getElementById("menu11"));
		lineLeft[12] = ElementLeft(document.getElementById("menu12"));

		lineTop = ElementTop(document.getElementById("menu" + cur)) + document.getElementById("menu" +cur).offsetHeight;
	}
	
	currentLeft = lineLeft[cur];
}

function InitDefaultLine()
{
	lineObject.style.width=lineWidth[cur] + "px";
	lineObject.style.top=lineTop + "px";
	lineObject.style.left=lineLeft[cur] + "px";
}

function ResizeLeft()
{
	lineLeft[0] = ElementLeft(document.getElementById("menu0"));
	lineLeft[1] = ElementLeft(document.getElementById("menu1"));
	lineLeft[2] = ElementLeft(document.getElementById("menu2"));
	lineLeft[3] = ElementLeft(document.getElementById("menu3"));
	lineLeft[4] = ElementLeft(document.getElementById("menu4"));
	lineLeft[5] = ElementLeft(document.getElementById("menu5"));
	lineLeft[6] = ElementLeft(document.getElementById("menu6"));
	lineLeft[7] = ElementLeft(document.getElementById("menu7"));
	lineLeft[8] = ElementLeft(document.getElementById("menu8"));
	lineLeft[9] = ElementLeft(document.getElementById("menu9"));
	lineLeft[10] = ElementLeft(document.getElementById("menu10"));
	lineLeft[11] = ElementLeft(document.getElementById("menu11"));
	lineLeft[12] = ElementLeft(document.getElementById("menu12"));
	
	InitDefaultLine();
}

function ElementLeft(obj)
{
	var nLeft=0;
	var offsetParent = obj;
	
	while (offsetParent!=null && offsetParent!=document.body)
	{
		nLeft+=offsetParent.offsetLeft;
		
		if (isIe)
		{
			parseInt(offsetParent.currentStyle.borderLeftWidth)>0?nLeft+=parseInt(offsetParent.currentStyle.borderLeftWidth):"";
		}
		offsetParent=offsetParent.offsetParent;
	}
	
	return nLeft;
}

function ElementTop(obj)
{
	var nTop=0;
	var offsetParent = obj;
	
	while (offsetParent!=null && offsetParent!=document.body)
	{
		nTop+=offsetParent.offsetTop;
		
		if (isIe)
		{
			parseInt(offsetParent.currentStyle.borderTopWidth)>0?nTop+=parseInt(offsetParent.currentStyle.borderTopWidth):"";
		}
		offsetParent=offsetParent.offsetParent;
	}
	return nTop;
}

function LinePositionChange(position){
	clearTimeout(timeoutID);
	targetPosition = position;
	i = 0;
	
	if (lineLeft[targetPosition] > currentLeft)
	{
		
		moveSpeed = (lineLeft[position] - currentLeft) / ((4 + fastStep) * rate);
		widthRate = (lineWidth[position] - currentWidth) / fastStep;
		isLeftMove = false;
		timeoutID = setTimeout("Move()", 5);
		
	}

	else if (lineLeft[targetPosition] < currentLeft)
	{
		moveSpeed = (lineLeft[position] - currentLeft) / ((4 + fastStep) * rate);
		widthRate = (lineWidth[position] - currentWidth) / fastStep;
		isLeftMove = true;
		timeoutID = setTimeout("Move()", 5);
	}
}
	
function Move()
{
	i++;
	currentLeft = PxToInt(lineObject.style.left) + moveSpeed;

	if (i<=(rate * 4 + fastStep - 1))
	{
		lineObject.style.left = currentLeft + "px";
		
		if (i==(rate * 2))
		{
			moveSpeed = moveSpeed * rate;
		}
		
		if (i==(rate * 2 + fastStep))
		{
			moveSpeed = moveSpeed / rate;
		}
		
		if (i>(rate * 2) && i<(rate * 2 + fastStep))
		{
			currentWidth = PxToInt(lineObject.style.width) + widthRate;
			lineObject.style.width = currentWidth + "px";
		}
		
		setTimeout("Move()", 10);
	}
	else
	{
		lineObject.style.left = lineLeft[targetPosition] + "px";
		lineObject.style.width = lineWidth[targetPosition] + "px";
		currentLeft = PxToInt(lineObject.style.left);
	}
}

function PxToInt(px)
{
	return px.substr(0,px.length - 2) - 0;
}

function Home()
{
	clearTimeout(timeoutID);
	targetPosition = cur;
	position = cur;
	i = 0;
	
	moveSpeed = (lineLeft[position] - currentLeft) / ((4 + fastStep) * rate);
	widthRate = (lineWidth[position] - currentWidth) / fastStep;
	isLeftMove = true;
	timeoutID = setTimeout("Move()", 500);
}