var W3CDOM = (document.createElement && document.getElementsByTagName);

var mouseOvers = new Array();
var mouseOversPaths = new Array('/hba/graphics/diverse/downarrow_focus.png',
								'/hba/graphics/diverse/uparrow_focus.png');

var mouseOversLevelOneImages = new Array();

function initMouseOver()
{
	if (!W3CDOM) return;
	
	preloadImages();
	
	var updown = document.getElementById('mouseovers_uple_right');
	var imgs = updown.getElementsByTagName('img');
	for (var i=0; i<imgs.length; i++)
	{
		imgs[i].onmouseover = mouseGoesOver;
		imgs[i].onmouseout = mouseGoesOut;	
		imgs[i].number = i;
	}

}


function preloadImages()
{
	
	// images for mouseOvers
	for (var i=0; i<mouseOversPaths.length; i++)
	{
		mouseOvers[i] = new Image();
		try { mouseOvers[i].src = mouseOversPaths[i]; }
		catch(errorObject) { mouseOvers[i].src = ""; }
	}
	
}



function mouseGoesOver()
{
	var img = this;

	img.oldsrc = img.src;
	img.src = mouseOvers[img.number].src;
}


function mouseGoesOut()
{
	var img = this;
	img.src = img.oldsrc;
}



function getElementsByClassName(class_name, obj)
{
	if (!W3CDOM) return new Array();
	
	var all_obj, teststr;
	var ret_obj = new Array();
	var j = 0;
	
	if (obj)
	{ 
		try
		{ all_obj = obj.getElementsByTagName("*"); }
		catch(errObj) 
		{ return new Array(); }
	}
	else 
	{ all_obj = document.getElementsByTagName("*") }
	
	for (var i=0; i<all_obj.length; i++)
	{
		if (all_obj[i].className.indexOf(class_name) != -1)
		{
			teststr = "," + all_obj[i].className.split(" ").join(",") + ",";
			if (teststr.indexOf("," + class_name + ",") != -1)
			{
				ret_obj[j] = all_obj[i];
				j++;
			}
		}
	}	

	return ret_obj;
}



/////////////////////////////////////////////////////////////////////////
function sfHover()
{
	if (clientbrowser && (clientbrowser=='ie'))
	{
		var sfEls = document.getElementById("nav").getElementsByTagName("LI");
		for (var i=0; i<sfEls.length; i++)
		{
			sfEls[i].onmouseover=function()
			{
				this.className += " sfhover";
			}
			sfEls[i].onmouseout=function()
			{
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
}


/////////////////////////////////////////////////////////////////////////

window.onresize = reSize;

function reSize() 
{
	if (!W3CDOM) return;
	
	var myWidth = 0, myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) 
	{
    	//Non-IE
    	//myWidth = window.innerWidth;
    	myHeight = window.innerHeight;
	} 
	else if( document.documentElement &&
      ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
	{
    	//IE 6+ in 'standards compliant mode'
    	//myWidth = document.documentElement.clientWidth;
    	myHeight = document.documentElement.clientHeight;
	} 
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
	{
    	//IE 4 compatible
   	 	//myWidth = document.body.clientWidth;
   	 	myHeight = document.body.clientHeight;
	}
  	
	var upperleftdiv = document.getElementById('upperleftdiv');
	var upperrightdiv = document.getElementById('upperrightdiv');
	
	marginHeight = (myHeight-546)/2;
	if (marginHeight>0)
	{
		upperleftdiv.style.marginTop = marginHeight+'px';
		upperrightdiv.style.marginTop = marginHeight+'px';
	}
	
	createCookie("hbacookie", marginHeight+'px', 1)
	
	//window.alert( 'Width = ' + myWidth + ' Height = ' + myHeight);
}


////////////////////////////////////////////////////////////////////////
// Click handler
function docClickHandler(evt)
{	
	evt = evt || window.event;
	
	// Where in the document did we click
	var src = evt.target || evt.srcElement;
	
	// nodeType=1 -> The node represents an element, like an anchor <a>
	// nodeType=2 -> The node represents an attribute of an element
	// nodeType>2 -> See www.devguru.com/Technologies/xmldom/quickref/obj_node.html#types
	// Use parentNode to iterate through to the actual element (nodeType=1)
	if (src.nodeType && src.nodeType != 1) src = src.parentNode;
	
	while (src)
	{
		if ((src.nodeName||src.tagName||'').toLowerCase() == 'a' && src.id && (src.id.match(/^loadinto-([^\-]+)-(\d+)$/) || src.id.match(/^loadinto-level-([^\-]+)-(\d+)$/) || src.id.match(/^loadinto-kontoret-([^\-]+)-(\d+)$/)  ))
		{	
		
			// Find id of child node image.
			try
			{
				smallImgName = src.firstChild.name;
			}
			catch(errObj)
			{
				smallImgName = '';
			}
			
			//displayBigImage('targetDiv', 'big_img_text', 'targetImg', src.name, img_id2, 300, 300);
			
			if (src.id.match(/^loadinto-level-([^\-]+)-(\d+)$/))
				displaySmallAndBigImage('upperRightImg', src.firstChild);
			else if (src.id.match(/^loadinto-kontoret-([^\-]+)-(\d+)$/))
			{
				//number = src.firstChild.getAttribute("number");
				//displayBigImageKontoret('upperRightImg', smallImgName, number);
				displaySmallAndBigImageKontoret('upperRightImg', src.firstChild);
			}
			else
				displayBigImage('upperRightImg', smallImgName);
			
			// We have found the target that we clicked, so just close up...
			if (evt.stopPropagation) evt.stopPropagation();
			if (evt.cancelable && evt.preventDefault) evt.preventDefault();
			evt.returnValue = false;
			return false;
		}
		
		src = src.parentNode;
	}
};


function displayBigImage(upperRightImg, smallImgName)
{
	var imgDest = document.getElementById ? document.getElementById(upperRightImg) : (document.all ? document.all[upperRightImg] : null);
	if (!imgDest) 
		return;
	
	imgDest.src = smallImgName;
	if (clientbrowser=='ie')
	  imgDest.style.cssText = 'visibility:visible;'	
	else
	  imgDest.style.visibility = 'visible';
};


function displayBigImageKontoret(upperRightImg, smallImgName, number)
{
	var imgDest = document.getElementById ? document.getElementById(upperRightImg) : (document.all ? document.all[upperRightImg] : null);
	if (!imgDest) 
		return;
	
	//alert(number);
	
	try
	{
		var upperrightheadline = getElementsByClassName("upperrightheadline", document.getElementById("upperRightTextDiv"));
		var upperrighttext = getElementsByClassName("upperrighttext", document.getElementById("upperRightTextDiv"));
	
		if (upperrightheadline.length>0)
		{ 
			upperrightheadline = upperrightheadline[0]; 
			setInnerHTML(upperrightheadline, levelOneTexts[number][0]);
		}
					
		if (upperrighttext.length>0)
		{ 
			upperrighttext = upperrighttext[0];
			setInnerHTML(upperrighttext, levelOneTexts[number][1]);
		}
	}
	catch(errObj){}
	
	imgDest.src = smallImgName;
	
	if (clientbrowser=='ie')
	  imgDest.style.cssText = 'visibility:visible;'	
	else
	  imgDest.style.visibility = 'visible';
};


function displaySmallAndBigImage(upperRightImg, smallImg)
{
	if (!W3CDOM) return;

	var imgDest = document.getElementById ? document.getElementById(upperRightImg) : (document.all ? document.all[upperRightImg] : null);
	if (!imgDest) return;
	
	imgname = smallImg.name || smallImg.getAttribute("name");
	
	for (i=0; i<levelOneImages.length; i++)
	{
		var item         = levelOneImages[i];
		var bigImg       = item[1];
		var smallImgText = item[2];
		var rownum       = item[3];
		var found_flag   = 0;
		
		if (bigImg==imgname)
		{
			
			try
			{
				var upperrighttext = getElementsByClassName("upperrighttext", document.getElementById("upperRightTextDiv"));
				var upperrighttextUtdrag = getElementsByClassName("upperrighttextUtdrag", document.getElementById("upperrighttext"));
				
				if ((upperrighttext.length>0) && (upperrighttextUtdrag.length>0))
				{ 
					upperrighttext = upperrighttext[0];
					upperrighttextUtdrag = upperrighttextUtdrag[0];
					upperrighttext.removeChild(upperrighttextUtdrag);
				}
				
				for (ii=0; ii<levelOneTexts.length; ii++)
				{
					if (rownum == levelOneTexts[ii][2])
					{
						var upperrightheadline = getElementsByClassName("upperrightheadline", document.getElementById("upperRightTextDiv"));
						var upperrighttext = getElementsByClassName("upperrighttext", document.getElementById("upperRightTextDiv"));
					
						if (upperrightheadline.length>0)
						{ 
							upperrightheadline = upperrightheadline[0]; 
							setInnerHTML(upperrightheadline, levelOneTexts[ii][0]);
						}
					
						if (upperrighttext.length>0)
						{ 
							upperrighttext = upperrighttext[0];
							setInnerHTML(upperrighttext, levelOneTexts[ii][1]);
						}
					
						break;
					}
				}
			}
			catch(errObj){}
			
			thisitem = levelOneImages[i];
			if (levelOneImages.length-1 > i)
			{
				nextitem = levelOneImages[i+1];
			
				if (nextitem[3] == rownum)
				{
					imgDest.src = thisitem[1];
							
					smallImg.src = nextitem[0];
					//imgDest.src  = nextitem[1];	
					smallImg.name = nextitem[1];
					break;					
				}
				else
				{
					for (j=0; j<levelOneImages.length; j++)
					{
						nextitem = levelOneImages[j];
						if (nextitem[3] == rownum)
						{
							//temp = smallImg.src;
							//large_img = change_to_max(temp);
							
							imgDest.src = thisitem[1];
		
							smallImg.src = nextitem[0];
							//imgDest.src  = nextitem[1];	
							smallImg.name = nextitem[1];
							found_flag = 1;
							break;
						}	
					}
					if (found_flag==1)
						break;
				}
			}
			else
			{
				for (j=0; j<levelOneImages.length; j++)
				{
					nextitem = levelOneImages[j];
					if (nextitem[3] == rownum)
					{
						imgDest.src = thisitem[1];
						
						smallImg.src = nextitem[0];
						//imgDest.src  = nextitem[1];	
						smallImg.name = nextitem[1];
						found_flag = 1;
						break;
					}	
				}
				if (found_flag==1)
					break;	
			}
		}
	}
	
	
	//imgDest.src = smallImgName;
	if (clientbrowser=='ie')
	  imgDest.style.cssText = 'visibility:visible;'	
	else
	  imgDest.style.visibility = 'visible';
	  
};





function displaySmallAndBigImageKontoret(upperRightImg, smallImg)
{
	if (!W3CDOM) return;

	var imgDest = document.getElementById ? document.getElementById(upperRightImg) : (document.all ? document.all[upperRightImg] : null);
	if (!imgDest) return;
	
	imgname = smallImg.name;
	
	for (i=0; i<levelOneImages.length; i++)
	{
		var item            = levelOneImages[i];
		var bigImg          = item[1];
		var smallImgText    = item[2];
		var upperLeftDivRow = item[3];
		var rowInRow        = item[4];
		
		var found_flag      = 0;
		
		if (bigImg==imgname)
		{
			var upperrightheadline = getElementsByClassName("upperrightheadline", document.getElementById("upperRightTextDiv"));
			var upperrighttext     = getElementsByClassName("upperrighttext", document.getElementById("upperRightTextDiv"));
			if (upperrightheadline.length>0) { upperrightheadline = upperrightheadline[0]; }
			if (upperrighttext.length>0) { upperrighttext = upperrighttext[0]; }
			
			thisItemImg = levelOneImages[i];
			thisItemTxt = levelOneTexts[i];
			if (levelOneImages.length-1 > i)
			{
				nextItemImg = levelOneImages[i+1];
			
				if (nextItemImg[3] == upperLeftDivRow)
				{
					imgDest.src   = thisItemImg[1];
					smallImg.src  = nextItemImg[0];
					smallImg.name = nextItemImg[1];
					
					try
					{
						setInnerHTML(upperrightheadline, thisItemTxt[0]);
						setInnerHTML(upperrighttext, thisItemTxt[1]);
					}
					catch(errObj){}
			
					break;					
				}
				else
				{
				
					//textList(headline, imagetext, upperLeftDivRow, rowInRow)
					//imageList(smallImgName, bigImageName, plainName, upperLeftDivRow, rowInRow)
				
					for (j=0; j<levelOneImages.length; j++)
					{
						nextItemImg = levelOneImages[j];
						if (nextItemImg[3] == upperLeftDivRow)
						{
							imgDest.src = thisItemImg[1];
							smallImg.src = nextItemImg[0];
							smallImg.name = nextItemImg[1];
							found_flag = 1;
							
							try
							{
								setInnerHTML(upperrightheadline, thisItemTxt[0]);
								setInnerHTML(upperrighttext, thisItemTxt[1]);
							}
							catch(errObj){}
							
							break;
						}	
					}
					if (found_flag==1)
						break;
				}
			}
			else
			{
				for (j=0; j<levelOneImages.length; j++)
				{
					nextItemImg = levelOneImages[j];
					if (nextItemImg[3] == upperLeftDivRow)
					{
						imgDest.src = thisItemImg[1];
						smallImg.src = nextItemImg[0];
						smallImg.name = nextItemImg[1];
						found_flag = 1;
						
						try
						{
							setInnerHTML(upperrightheadline, thisItemTxt[0]);
							setInnerHTML(upperrighttext, thisItemTxt[1]);
						}
						catch(errObj){}
						
						break;
					}	
				}
				if (found_flag==1)
					break;	
			}
		}
	}
	
	
	//imgDest.src = smallImgName;
	if (clientbrowser=='ie')
	  imgDest.style.cssText = 'visibility:visible;'	
	else
	  imgDest.style.visibility = 'visible';
	  
};





function setInnerHTML(node, html) 
{
	if (typeof node.innerHTML != 'undefined') 
	{node.innerHTML = html; return;}
};


// Attach click handler to the document. Safari can't reliably
// cancel addEventListeners
function addClickHandler()
{
	if (document.addEventListener && navigator.userAgent.indexOf('Safari') == -1)
	{
		document.addEventListener('click', docClickHandler, false);
	}
	else
	{
		document.hhrDocOC = document.onclick;
		document.onclick = function(evt)
		{
			if (document.hhrDocOC) document.hhrDocOC(evt);
			return docClickHandler(evt);
		};
	}
};

////////////////////////////////////////////////////////////////////////


function createCookie(name, value, days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function doReSize()
{
	try
	{
		if (!cookieIsSet || (cookieIsSet && (cookieIsSet == 0)))
		{
			reSize();		
		}
		
	}
	catch(errObj)
	{
		reSize();
	}
}


function onLoad()
{
	//if (document.all && window.attachEvent) sfHover();
	//initMouseOver();
	
	//sfHover();
	addClickHandler();
	doReSize();
	
};
