/*
*********************************************************************************************************
** VERSION 1.12
** DATE START: June 14th 2011
****
** included main functions are:
**
**** GENERAL PURPOSE functions
** -> setBodyBG(baseName)
** -> showHide(id)
** -> hide(id)
** -> show(id)
** -> swapImage(id, img)
** -> toggleSrc(element, img1, img2, path)
** -> setActiveClass(id, cls, parentId[, tagType]) //tagType defaults to div
** -> trim(str)
**
**** TOOLTIP functions
** -> moveImage(event, aktivitet, position)
** -> mouseOut(id)
** -> mouseOver(event, id)
**
**** FORM functions
** -> setValueAndSubmit(inputValue, inputField, formField)
** -> removeAll(formId)
**
**** SPRY functions
** -> startMe(id, toWidth, toHeight, toggle)
**
**** CHANGES
** -> 1.10: removed hardcoded var tagType from setActiveClass() and made it optional, defaulting to 'div' 
** -> 1.11: fixed typo
** -> 1.12: added trim
*********************************************************************************************************
*/


/*
** GENERAL PURPOSE functions
*/

/*
** Important! sets bg of body dynamically
** So far only utilizes width to determine img size
** Sizes supported (width): 1280, 1680, 1920
*/
function setBodyBG(baseName)
{
	var h = screen.availHeight;
	var w = screen.availWidth;
	var img;
	if(w <= 1280)
		img = 1280;
	if(w <= 1680 && w > 1280)
		img = 1680;
	if(w > 1680)
		img = 1920;
	
	var newImage = baseName+"_"+img+".jpg";
	document.getElementsByTagName("body").item(0).style.backgroundImage = "url('billeder/bg/"+newImage+"')";
}


function showHide(id)
{
	var d = document.getElementById(id);
	if(d.style.display == "none")
		d.style.display = "block";
	else
		d.style.display = "none";
}

function hide(id)
{
	document.getElementById(id).style.display = "none";
}

function show(id)
{
	document.getElementById(id).style.display = "block";
}

function swapImage(id, img)
{
	document.getElementById(id).style.backgroundImage = "url('billeder/"+img+"')";
}

function toggleSrc(element, img1, img2, path)
{
	var d = document.getElementById(element);

	//isolering af nuværende billede
	var fullPath = d.src;
	fullPath = fullPath.split("/");
	var img = fullPath.pop();
	
	//isolering af img1
	img1 = img1.split("/");
	img1 = img1.pop();

	if(img == img1)
		d.src = path+img2;
	else
		d.src = path+img1;
}

function setActiveClass(id, cls, parentId, tagType)
{
	//remove active from all other classes
	if(typeof(tagType) == "undefined")
		var tagType = "div";
	
	var length = document.getElementById(parentId).getElementsByTagName(tagType).length;
	var oldClass;
	for(var i=0; i<length; i++)
	{
		oldClass = document.getElementById(parentId).getElementsByTagName(tagType).item(i).className;
		oldClass = oldClass.replace(cls, "");
		document.getElementById(parentId).getElementsByTagName(tagType).item(i).className = oldClass;
	}	
	document.getElementById(id).className += cls;
}

function trim(str)
{
	var trimmed = str.replace(/^\s+|\s+$/g, '') ;
	return trimmed;
}

//-----------------------------------------------------------------------------------------------

/*
** TOOLTIP related functions
*/

function moveImage(event, aktivitet, position)
{
	var d = document.getElementById(aktivitet);
	var x = event.clientX; //henter markørens x-position ved begivenhedens udløsning
	var zx = d.offsetWidth; //henter bredden på elementet
	if(position == "left" || typeof(position) == "undefined")
		d.style.left=(x-zx-30)+"px";
	if(position == "right")
		d.style.left=(x+30)+"px";
	//alert("zx = "+zx+" zy = "+zy+" z= "+z);
}

function mouseOut(id)
{
	var d = document.getElementById(id).style;
	d.display = 'none';
	d.top = "";
	d.left = "";
}

function mouseOver(event, id)
{
	var d = document.getElementById(id);
	d.style.left="50%";
	d.style.display = 'block';
	var y = event.clientY;
	var zy = d.offsetHeight; //henter højden på elementet
	var z = d.offsetTop; //henter afstanden fra elementet til dokumentets top v. position: absolute;
	var h = window.innerHeight;
	var scrolled = z - y;
	if(h<=(y+zy))
		d.style.top=(scrolled+h-zy-10)+"px";
	else
		d.style.top=z+"px";
}
//-------------------------------------------------------------------------


/*
** FORM related functions
*/

function setValueAndSubmit(inputValue, inputField, formField)
{
	document.getElementById(inputField).value = inputValue;	
	document.getElementById(formField).submit();
}

function removeAll(formId)
{
	var length = document.getElementById(formId).elements.length;
	for(var i=0; i<length; i++)
	{
		document.getElementById("form2").elements.item(i).checked = false;
	}
}

//------------------------------------------------------------------------


/*
** SPRY related 
*/

function startMe(id, toWidth, toHeight, toggle)
{
	var d = document.getElementById(id);
	var width = d.style.width;
	width = Number(width.replace("px", ""));
	var height = d.style.height;
	height = Number(height.replace("px", ""));
	if(toggle === true)
	{
		if(width == toWidth && height == toHeight)
		{
			toWidth = oldWidth;
			toHeight = oldHeight;
		}
		//var size = new Spry.Effect.Size(id, toRect, fromRect, {duration: 700, toggle: false});
	}
	var fromRect = new Spry.Effect.Utils.Rectangle();
	var toRect = new Spry.Effect.Utils.Rectangle();
	fromRect.width = width;
	fromRect.height = height;
	toRect.width = toWidth;
	toRect.height = toHeight;
	var size = new Spry.Effect.Size(id, fromRect, toRect, {duration: 700, toggle: false});
	oldWidth = width;
	oldHeight = height;
	size.start();
}

