//functions to control window appearance and behaviour

var global_defaultWindowsizeSpeed;
var global_defaultWindowsizeInterval;
var global_PickedElementForSwapping;

var global_Maximizing;
var global_Minimizing;

function InitWindows()
{
	global_defaultWindowsizeSpeed = 10;
	global_defaultWindowsizeInterval = 15;
	global_PickedElementForSwapping = null;
	global_Maximizing = false;
	global_Minimizing = false;
}

function setMovetoTopLinks()
{	
	global_PickedElementForSwapping = null;
	contentElements = document.getElementsByName("content");	
	
	for(var i=0;i<contentElements.length ;i++)
	{
		//alert(contentElements[i].id);
		if($(contentElements[i].id).parentNode.parentNode.id == "slot1")
		{
			$(contentElements[i].id+"_toplink").style.display="none";			
		}
		else
		{
			$(contentElements[i].id+"_toplink").style.display="block";
		}
		
		//Sort out swap buttons.
		$(contentElements[i].id+"_swaplink").innerHTML = "Swap";
		$(contentElements[i].id+"_swaplink").parentNode.className = "WindowSizing";
	}
}

//either pick a slot for swapping or swap slot 1 into slot 2
function SwapWindow(elementID)
{
	if(global_PickedElementForSwapping == null)
	{
		global_PickedElementForSwapping = $(elementID);
		$(elementID+"_swaplink").parentNode.className = "WindowSwapping";
		$(elementID+"_swaplink").innerHTML = "Cancel";
	}
	else
	{
		$(global_PickedElementForSwapping.id+"_swaplink").parentNode.className = "WindowSizing";
		$(global_PickedElementForSwapping.id+"_swaplink").innerHTML = "Swap";
		
		var source = global_PickedElementForSwapping.parentNode.parentNode;
		var target = $(elementID).parentNode.parentNode;
		
		var sourceHTML = source.innerHTML;
		var targetHTML = target.innerHTML;		
		
		source.innerHTML="";
		target.innerHTML="";
	
		source.innerHTML = targetHTML;
		target.innerHTML = sourceHTML;
		
		global_PickedElementForSwapping = null;
		
		//Sort out new order button availability
		setMovetoTopLinks();
	}
}

//reorder elements
function BringWindowToTop(elementID)
{	
	var bottomSlot = $(elementID).parentNode.parentNode;
	var topSlot = $("slot1");		
	
	var bottomHTML = bottomSlot.innerHTML;
	var topHTML = topSlot.innerHTML;		
	
	if(bottomSlot.id == "slot2") // If slot two, just a straight swap is needed.
	{
		bottomSlot.innerHTML="";
		topSlot.innerHTML="";
	
		bottomSlot.innerHTML = topHTML;
		topSlot.innerHTML = bottomHTML;
		
		//alert(bottomHTML);
		//alert(topHTML);
	}
	else
	{
		var bottomIndex = parseInt(bottomSlot.id.replace("slot","")); // If a lower slot, need to shuffle the slots down.
		var nextHTML = "";
		//shuffle down
		topSlot.innerHTML="";
		topSlot.innerHTML=bottomHTML;		
		//alert(bottomIndex);
		
		for(var j = 2;j<=bottomIndex;j++)
		{
			nextHTML = $("slot"+j).innerHTML;	
			$("slot"+j).innerHTML = "";
			$("slot"+j).innerHTML = topHTML;
			topHTML = nextHTML;
		}
	}
	
	setMovetoTopLinks();	
}

//minimize
function rollupElement(elementID,targetsize)
{		
	if(!global_Minimizing && !global_Maximizing)
	{
		global_Minimizing = true;
		setTimeout("shrinkTo('"+elementID+"',"+targetsize+","+global_defaultWindowsizeSpeed+","+global_defaultWindowsizeInterval+");",global_defaultWindowsizeInterval);
	}
}

//maximize
function rolldownElement(elementID,targetsize)
{		
	if(!global_Minimizing && !global_Maximizing)
	{
		global_Maximizing = true;
		setTimeout("expandTo('"+elementID+"',"+targetsize+","+global_defaultWindowsizeSpeed+","+global_defaultWindowsizeInterval+");",global_defaultWindowsizeInterval);
	}
}

function shrinkTo(elementID,targetsize,speed,interval)
{	
	var e = $(elementID);
	var currentHeight = parseInt(e.clientHeight);
	var newheight = currentHeight - speed;
	
	if(currentHeight > targetsize)
		e.style.height = newheight + "px";
	else
		global_Minimizing = false;
	
	if(newheight > targetsize)	
		setTimeout("shrinkTo('"+elementID+"',"+targetsize+","+speed+","+interval+");",interval);
	else
		global_Minimizing = false;
}

function expandTo(elementID,targetsize,speed,interval)
{	
	var e = $(elementID);
	var currentHeight = parseInt(e.clientHeight);
	var newheight = currentHeight + speed;
	
	if(currentHeight < targetsize)
		e.style.height = newheight + "px";
	else
		global_Maximizing = false;
		
	if(newheight < targetsize)
		setTimeout("expandTo('"+elementID+"',"+targetsize+","+speed+","+interval+");",interval);
	else
		global_Maximizing = false;
}
