var drawerId = null;
//var drawerIds = [];
var inAction = false;
//var drawerWidth = 240;
var drawerWidth = 220;
var marginAdded = 0;
var dx = 10;
var dt = 20;
var openDrawers = [];

function open_drawer(id)
{
	if(!inAction)
	{
		document.getElementById('more' + id).style.display = 'none';
		document.getElementById('close' + id).style.display = 'inline';
		inAction = true;
		drawerId = id;
		if(!inArray(id, openDrawers))
		{
			openDrawers[openDrawers.length] = id;
		}
		open();
	}
}

function close_drawer(id)
{
	if(!inAction)
	{
		document.getElementById('more' + id).style.display = 'inline';
		document.getElementById('close' + id).style.display = 'none';
		inAction = true;
		drawerId = id;
		close();
	}
}



function close_open_drawer(id)
{
	//alert(window.pageYOffset);
	//scrollValues = getScrollXY();
	//alert(scrollValues[1]);
	//alert(document.window.scrollTop);
	if(!inAction)
	{
		//window.scroll(0, 500);
		
		for(i = 0; i < openDrawers.length; i++)
			{
				document.getElementById('more' + openDrawers[i]).style.display = 'inline';
				document.getElementById('close' + openDrawers[i]).style.display = 'none';
			}
			document.getElementById('more' + id).style.display = 'none';
					document.getElementById('close' + id).style.display = 'inline';
			inAction = true;
		drawerId = id;
	
		//hslide.setValue((id * 165 + id * 40) / 2460);
		
		
		scroll_page();
	}
}

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 - 25;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}


var scroll_count = 0;

function scroll_page()
{
	if(scroll_count < 5)
	{
		scroll_count++;
		window.scrollBy(0, 0);
		setTimeout('scroll_page()', 20);
	}
	else
	{
		scroll_count = 0;
		close_open();
	}
}


/*function close_open_drawer(id)
{
	if(!inAction)
	{
		drawerId = id;
	
		//hslide.setValue((id * 165 + id * 40) / 2460);
		
		
		var i;
		for(i = 0; i < openDrawers.length; i++)
		{
			document.getElementById('more' + openDrawers[i]).style.display = 'inline';
			document.getElementById('close' + openDrawers[i]).style.display = 'none';
		}
		document.getElementById('more' + id).style.display = 'none';
		document.getElementById('close' + id).style.display = 'inline';
		inAction = true;
		drawerId = id;
		//drawerIds.push('profile' + id);
		close_drawers();
	}
}*/

var destination;
var focusing = false;

function focus()
{
	//destination = 205 * drawerId / 2460;
	destination = drawerId / (document.getElementById( 'num_employees' ).value - 1 );

	if(hslide.value < destination)
	{
		focus_right();
	}
	else if(hslide.value > destination)
	{
		focus_left();
	}
	else if(!inArray(drawerId, openDrawers))
	{
		open_drawer(drawerId);
	}
}

function focus_right()
{
	focusing = true;
	focus_right_loop();
}

function focus_right_loop()
{
	if(focusing)
	{
		hslide.setValueBy(0.014);
		if(hslide.value >= destination)
		{
			hslide.setValue(destination);
			focusing = false;
			//close_open();
			if(!inArray(drawerId, openDrawers))
			{
				open_drawer(drawerId);
			}
		}
		setTimeout('focus_right_loop()', 20);
	}
}

function focus_left()
{
	focusing = true;
	focus_left_loop();
}

function focus_left_loop()
{
	if(focusing)
	{
		hslide.setValueBy(-0.014);
		if(hslide.value <= destination)
		{
			hslide.setValue(destination);
			focusing = false;
			//close_open();
			if(!inArray(drawerId, openDrawers))
			{
				open_drawer(drawerId);
			}
		}
		setTimeout('focus_left_loop()', 20);
	}
}

/*function close_open_drawer(id)
{
	if(!inAction)
	{
		hslide.setValue((id * 165 + id * 40) / 2460);
		
		var i;
		for(i = 0; i < openDrawers.length; i++)
		{
			document.getElementById('more' + openDrawers[i]).style.display = 'inline';
			document.getElementById('close' + openDrawers[i]).style.display = 'none';
		}
		document.getElementById('more' + id).style.display = 'none';
		document.getElementById('close' + id).style.display = 'inline';
		inAction = true;
		drawerId = id;
		//drawerIds.push('profile' + id);
		close_open();
	}
}*/


/*function close_open()
{
	if(marginAdded < drawerWidth)
	{
		marginAdded += dx;
		var i;
		for(i = 0; i < openDrawers.length; i++)
		{
			if(openDrawers[i] != drawerId)
			{
				document.getElementById('profile' + openDrawers[i]).style.marginLeft = -marginAdded + 'px';
			}
		}
		if(!inArray(drawerId, openDrawers))
		{
			document.getElementById('profile' + drawerId).style.marginLeft = (marginAdded - drawerWidth) + 'px';
		}
		setTimeout('close_open()', dt);
	}
	else
	{
		inAction = false;
		marginAdded = 0;
		openDrawers = [];
		openDrawers[0] = drawerId;
		focus();
	}
}*/

function close_open()
{
	if(marginAdded < drawerWidth && openDrawers.length != 0)
	{
		marginAdded += dx;
		var i;
		for(i = 0; i < openDrawers.length; i++)
		{
			if(openDrawers[i] != drawerId)
			{
				document.getElementById('profile' + openDrawers[i]).style.marginLeft = -marginAdded + 'px';
			}
		}
		/*if(!inArray(drawerId, openDrawers))
		{
			document.getElementById('profile' + drawerId).style.marginLeft = (marginAdded - drawerWidth) + 'px';
		}*/
		setTimeout('close_open()', dt);
	}
	else
	{
		inAction = false;
		marginAdded = 0;
		if(inArray(drawerId, openDrawers))
		{
			openDrawers = [];
			openDrawers[0] = drawerId;
		}
		else
		{
			openDrawers = [];
		}
		//openDrawers[0] = drawerId;
		focus();
	}
}

/*function close_open()
{
	close_drawers();
}*/


/*function close_drawers()
{
	if(marginAdded < drawerWidth)
	{
		marginAdded += dx;
		var i;
		for(i = 0; i < openDrawers.length; i++)
		{
			if(openDrawers[i] != drawerId)
			{
				document.getElementById('profile' + openDrawers[i]).style.marginLeft = -marginAdded + 'px';
			}
		}
		setTimeout('close_drawers()', dt);
	}
	else
	{
		marginAdded = 0;
		openDrawers = [];
		open_drawer(drawerId);
	}
}*/

/*function open_drawer()
{
	if(marginAdded < drawerWidth)
	{
		marginAdded += dx;
		document.getElementById('profile' + drawerId).style.marginLeft = (marginAdded - drawerWidth) + 'px';
		setTimeout('open_drawer()', dt);
	}
	else
	{
		marginAdded = 0;
		openDrawers.push(drawerId);
		in*/


function open()
{
	if(marginAdded < drawerWidth)
	{
		marginAdded += dx;
		document.getElementById('profile' + drawerId).style.marginLeft = (marginAdded - drawerWidth) + 'px';
		setTimeout('open()', dt);
	}
	else
	{
		inAction = false;
		marginAdded = 0;
		if(!inArray(drawerId, openDrawers))
		{
			openDrawers[openDrawers.length] = drawerId;
		}
	}
}



/* Experimental version of open().  Attempt to vary animation speed
var ddx = 10;
var i = 0;

function open()
{
	if(marginAdded < drawerWidth)
	{
		marginAdded += ddx;
		i++;
		if(ddx > 2 && i == 8)
		{
			ddx -= 2;
			i = 0;
		}
		document.getElementById(drawerId).style.marginLeft = (marginAdded - drawerWidth) + 'px';
		setTimeout('open()', dt);
	}
	else
	{
		inAction = false;
		marginAdded = 0;
		i = 0;
		ddx = 10;
	}
}*/

// Seems confusing, but it's just the reverse of open().
function close()
{
	if(marginAdded < drawerWidth)
	{
		marginAdded += dx;
		document.getElementById('profile' + drawerId).style.marginLeft = -marginAdded + 'px';
		setTimeout('close()', dt);
	}
	else
	{
		inAction = false;
		marginAdded = 0;
		var i;
		for(i = 0; i < openDrawers.length; i++)
		{
			if(openDrawers[i] == drawerId)
			{
				openDrawers.splice(i, 1);
			}
		}
	}
}

function inArray(needle, haystack)
{
	var i;
	for(i = 0; i < haystack.length; i++)
	{
		if(needle == haystack[i])
		{
			return true;
		}
	}
	return false;
}