function postFormNameValue(name, value, destination)
{
	var form = document.getElementById('AtnlForm');
	var nameInput = document.getElementById('AtnlFormPostName');
	var valueInput = document.getElementById('AtnlFormPostValue');
	
	nameInput.value = name;
	valueInput.value = value;
	
	if (destination)
	{
		form.action=destination;
	}
	form.method='post';
	form.submit();
	return false;
}

function getDestination(destination)
{
	var form = document.getElementById('AtnlForm');
	form.action=destination;
	form.method='get';
	form.submit();
	return false;
}
function toggleCollapsableContent(which)
{
	var title = document.getElementById('collapsabletitle_'+which);
	var content = document.getElementById('collapsablecontent_'+which);
	if (content.style.display && content.style.display=='block')
	{
		content.style.display='none';
		title.style.background='none';
	}
	else
	{
		content.style.display='block';
		title.style.backgroundColor='#cccccc';
	}
}
function animatedock()
{
	var base = document.getElementById('dockbase');
	var dock = document.getElementById('dock');
	dock.style.width='100px';
	if (base.dockleft == base.docktarget)
	{
		clearInterval(base.interval);
		base.interval=0;
		return;	//cancel;
	}
	else if (base.docktarget>base.dockleft)	//we're becoming visible
	{
		base.dockleft+=10;
		if (base.dockleft>=base.docktarget)
		{
			base.dockleft = base.docktarget;
			clearInterval(base.interval);
			base.interval=0;
		}
		base.style.left = ''+base.dockleft+'px';
		return;
	}
	else if (base.docktarget<base.dockleft)	//we're hiding
	{
		base.dockleft-=3;
		if (base.dockleft<=base.docktarget)
		{
			base.dockleft = base.docktarget;
			clearInterval(base.interval);
			base.interval=0;
			dock.style.width='50px';
		}
		base.style.left = ''+base.dockleft+'px';
		return;
	}
}
		
function showdock()
{
	var base = document.getElementById('dockbase');
	//Set a new timeout
	if (base.timeout) clearTimeout(base.timeout);
	base.timeout = setTimeout('hidedock()', 3000);
	
	if (base.dockleft==0) return;

	if (base.interval)
	{
		if (base.docktarget==0) return;	//already coming
		base.docktarget=0;	//set.
		return;
	}
	//start 
	base.dockleft = -40;
	base.docktarget = 0;
	base.interval = setInterval('animatedock()', 40);
	base.dockvisible = true;
}

function hidedock()
{
	var base = document.getElementById('dockbase');
	if (base.timeout){
		clearTimeout(base.timeout);
		base.timeout = 0;
	}
	if (base.interval)
	{
		base.docktarget=-40;
		return;
	}
	//start
	base.docktarget = -40;
	base.interval = setInterval('animatedock()', 40);
	mouseover(null);
	base.dockvisible = false;
}

function mouseX(evt) {
	if (evt.pageX) return evt.pageX;
	else if (evt.clientX)
	   return evt.clientX + (document.documentElement.scrollLeft ?
	   document.documentElement.scrollLeft :
	   document.body.scrollLeft);
	else return null;
}
function mouseY(evt) {
	if (evt.pageY) return evt.pageY;
	else if (evt.clientY)
	   return evt.clientY + (document.documentElement.scrollTop ?
	   document.documentElement.scrollTop :
	   document.body.scrollTop);
	else return null;
}		

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function mouseover(evt)
{
	var dock = document.getElementById('dock');
	var dockbase = document.getElementById('dockbase');
	
	if (!evt) evt = window.event;

	var e;
	if (evt)
	{
		e = new Object();
		e.y=mouseY(evt);
		e.x=mouseX(evt);
	}

	if (!dockbase.dockvisible && e) showdock();

	
	if (!dock.inited && dock.dockItems)
	{
		//Set original values.
		for (var i=0; i<dock.dockItems.length; i++)
		{
			dock.dockItems[i].originalHeight = findPos(dock.dockItems[i])[1];
			dock.dockItems[i].originalLeft = findPos(dock.dockItems[i])[0];
		}
		dockbase.originalHeight = findPos(dockbase)[1];
		dock.inited=1;
	}
	
	if (!dock.dockItems)
	{
		return;
	}
	
	//Are we in an item ?
	
	var initem = -1;
	if (e)
	{
		for (var i=0; i<dock.dockItems.length; i++)
		{
			if (((dock.dockItems[i].originalHeight - 3 ) <=e.y) && 
				((dock.dockItems[i].originalHeight +64 +3))>e.y && 
				(findPos(dock.dockItems[i])[0] < e.x ) && 
				(findPos(dock.dockItems[i])[0]+dock.dockItems[i].width)>e.x)
			{
				initem = i;
				break;
			}
		}
	}
	
	if (initem>-1)
	{
		var dockmove = 0;
		
		for (var i=0; i<dock.dockItems.length; i++)
		{
			if (initem==i)
			{
				dock.dockItems[i].style.width='96px';
				dock.dockItems[i].style.height='96px';
				var lm = (e.y-(dock.dockItems[i].originalHeight));
				dockmove+=dockbase.originalHeight-lm/2;	//(32/2);
			}
			else
			{
				//Calculate distance 
				var itemCenter = dock.dockItems[i].originalHeight + 32;
				var distance = 40 - Math.abs(e.y - itemCenter)/4;
				if (distance<0) distance = 0;
				if (distance>=32) distance = 32;
				dock.dockItems[i].style.width=''+(64+distance)+'px';
				dock.dockItems[i].style.height=''+(64+distance)+'px';
				if (i<initem)
				{
					dockmove-=distance;
				}
			}
		}
		dockbase.style.top=''+(dockmove - findPos(dock)[1])+'px';
	}
	else
	{
		for (var i=0; i<dock.dockItems.length; i++)
		{
			dock.dockItems[i].style.width='64px';
			dock.dockItems[i].style.height='64px';
		}
		dockbase.style.top=''+(dockbase.originalHeight-findPos(dock)[1])+'px';
	}

	var hh = 0;
	for (var i=0; i<dock.dockItems.length; i++)
	{
		hh = hh + dock.dockItems[i].height+4;
	}
	hh = Math.floor(hh);
	
//	if (dockmove) dock.style.height=''+(hh+dockmove-32)+'px';
//	else dock.style.height=''+(hh + dockbase.originalHeight-32)+'px';
	dockbase.style.height=''+(hh)+'px';
}

function prepareDock(elements)
{
	var dock = document.getElementById('dock');
	var base = document.getElementById('dockbase');
	var contents = document.getElementById('dockcontents');
	for (var i=0; i<elements.length; i+=2)
	{
		var icon = elements[i];
		var url = elements[i+1];
		var linkje = document.createElement("a");
		linkje.setAttribute('href', url);
		var image = document.createElement("img");
		image.setAttribute('border', '0');
		image.setAttribute('id', 'dockimage'+(i/2));
		image.setAttribute('src', icon);
		image.setAttribute('onmouseout', mouseover(null));
		image.setAttribute('onmousemove', mouseover(null));
		image.setAttribute('width', 64);
		image.setAttribute('height', 64);
		image.setAttribute('num', i/2);
		linkje.appendChild(image);
		contents.appendChild(linkje);
	}
	var dockItems = new Array();
	for (var i=0; i<elements.length; i+=2)
	{
		var dockItem = document.getElementById('dockimage'+(i/2));
		dockItem.originalHeight = dockItem.y;
		dockItems[i/2] = dockItem;
	}
	dock.dockItems = dockItems;
	dock.style.height = ''+(68*dockItems.length+48+42+32)+'px';
}

function showBlockingDiv(name)
{
	var page= document.getElementById('page');
	//page.style.opacity='0.5';
	//page.style.display='none';
	
	var element = document.getElementById(name);
	var elementbg = document.getElementById(name+'_bg');

	var elementbglayer = document.getElementById(name+'_bglayer');
	var elementbgtitle= document.getElementById(name+'_title');
	

	elementbg.style.zIndex='4';
	elementbg.style.position='fixed';
	elementbg.style.top='0px';
	elementbg.style.left='0px';
	elementbg.style.width='100%';
	elementbg.style.height='100%';
	elementbg.style.paddingTop='30px';

	element.style.zIndex='5';
	element.style.bottom='0px';

	elementbglayer.style.opacity='0.60';
	elementbglayer.style.filter='alpha(opacity=60);';
	elementbglayer.style.position='fixed';
	elementbglayer.style.zIndex='-1';
	elementbglayer.style.width='100%';
	elementbglayer.style.top='0px';
	elementbglayer.style.left='0px';
	elementbglayer.style.height='100%';
	
	elementbgtitle.style.position='fixed';
	elementbgtitle.style.top='4px';
	elementbgtitle.style.left='0%';
	elementbgtitle.style.right='0%';
	elementbgtitle.style.color='#FFFFFF';
	elementbgtitle.style.filter='alpha(opacity=100);';

	elementbg.style.opacity='0.00';
	elementbg.style.filter='alpha(opacity=0);';
	elementbg.style.display='block';
	
	element.opc = 0;
	element.interval = setInterval('showIn(\''+name+'\')',25);
}

function showIn(name)
{
	var element = document.getElementById(name);
	var elementbg = document.getElementById(name+'_bg');
	
	element.opc = element.opc + 1;
	elementbg.style.opacity=(element.opc/10);
	elementbg.style.filter='alpha(opacity='+(element.opc*10)+');';
	
	if (element.opc>=10)
	{
		clearInterval(element.interval);
	}
	
}

function hideBlockingDiv(name)
{
	var page= document.getElementById('page');
	//page.style.opacity='0.5';
	//page.style.display='none';
	
	var element = document.getElementById(name+'_bg');
	element.style.display='none';
}
function preventShake()
{
//	var a = document.getElementsByTagName
	var documentHeight = document.getElementsByTagName('html')[0].scrollHeight;
	var windowHeight = window.innerHeight;
	if (!windowHeight) return;		//ie does fail this, but doesn't shake because it fails to hide the scroll at all.
	
	var windowWidth = window.innerWidth;
	
	var extraNudge = -(windowWidth%2);
	
	if (documentHeight && windowHeight)
	{
		if (documentHeight<=windowHeight)
		{
			var bg = document.getElementById('background');
			bg.style.marginLeft='-'+(8+extraNudge)+'px';
			var pg = document.getElementById('page');
			pg.style.marginLeft='-'+(8+extraNudge)+'px';
			var ft = document.getElementById('footer');
			if (ft)
				ft.style.marginRight='-'+(486)+'px';
		}
	}

/*	if (document.height && window.innerHeight)
	{
		if (document.height <= window.innerHeight)
		{
			var d = document.getElementById('background');
			d.style.marginLeft='-508px';
			d = document.getElementById('page');
			d.style.left='-8px';
			d = document.getElementById('footer');
			d.style.marginRight='-487px';
		}
	}
	*/
}
