﻿  /////////////////////////////////
 //  TwinHelix HtmlHttpRequest  //
/////////////////////////////////
var docClickLoader = new RemoteFileLoader('docClickLoader');

function loadInto(src, destId, evt){
	var ok = docClickLoader.loadInto(src.href || src.getAttribute('href'), destId);
	if (ok) cancelEvent(evt);
// ========== mbg@ITeal - extension ============================= //
	// identify the file displayed
	file = src.href.split('.dk/')[1];
	if (!file) file = src;
	document.getElementById(destId).attributes['lang'].value=file;
	buildHash(destId, src);
// ========== mbg@ITeal - extension ============================= //
}

function toggleInto(src, destId, evt){
	var dest = document.getElementById(destId);
	if (!dest.contentLoaded){
		var ok = docClickLoader.loadInto(src.href || src.getAttribute('href'), destId);
		if (ok) dest.contentLoaded = true;
	}
	cancelEvent(evt);
	if (!dest.toggleState){
		src.innerHTML = 'Luk: ' + src.innerHTML;
		dest.style.display = 'block';
		dest.toggleState = 1;
	}
	else{
		src.innerHTML = src.innerHTML.replace(/^Luk: /, '');
		dest.style.display = 'none';
		dest.toggleState = 0;
	}
}

addEvent(document, 'click', function(evt){
	// Here we capture all clicks on the document, scanning for links with a CLASS attribute of "loadinto-IdOfTarget" and routing them to loadInto() above.
	evt = evt || window.event;
	// Only process left clicks.
	if (evt.which > 1 || evt.button > 1) return;
	var src = evt.target || evt.srcElement;
	if (src.nodeType && src.nodeType != 1) src = src.parentNode;
	// Loop up the DOM tree scanning all elements to find a matching one.
	while (src){
		var srcName = (src.nodeName||src.tagName||'').toLowerCase();
		if (srcName == 'a' && src.className && src.className.match(/^(load|toggle)into-(.+)$/)){
			// Call our load handlers if we have a match; they'll cancel the normal action.
			if (RegExp.$1 == 'load') return loadInto(src, RegExp.$2, evt);
			if (RegExp.$1 == 'toggle') return toggleInto(src, RegExp.$2, evt);
		}
		src = src.parentNode;
	}
}, 1);
  ////////////////////////////////////////
 //  end of TwinHelix HtmlHttpRequest  //
////////////////////////////////////////

function initialize(message) {    
	if (!sessionExists()) {
		saveState(message); 
	}
}

function getIFrameDocument() {
	var historyFrame=document.getElementById("sessionFrame");
	var doc=historyFrame.contentDocument;
	if (doc==undefined) // Internet Explorer
		doc=historyFrame.contentWindow.document;
	return doc;
}

function sessionExists() {
	var doc=getIFrameDocument();
	try {
		if (doc.body.innerHTML == "") return false;
		else return true;
	}
	catch (exp) {
		// sometimes an exception is thrown if a value is already in the iframe      
		return true;
	}
}

function saveState(message) {   
	var sessionFrame = document.getElementById("sessionFrame");
	var doc = sessionFrame.contentDocument;
	if (doc == undefined) { // Internet Explorer
		doc = sessionFrame.contentWindow.document;
	}
	doc.open();   
	doc.write(message);   
	doc.close();  
}

function buildHash(destId, src) {
	var hash;
	// identify the file displayed
	if (src.href) file = src.href.split('.dk/')[1];
	if (!file) file = src;
	hash = destId+'='+file;	
	document.location.hash = hash;
	saveState(hash); 
}

function goto(pos) {
	document.getElementById("maintext").scrollTop =  document.getElementById(pos).offsetTop;
}

function toggleLang() {
	if (document.getElementById('flag').attributes['lang'].value=='uk') {
		docClickLoader.loadInto('__cont/file/historie.html','maintext');
		document.images['flag'].src='__cont/image/flaguk.gif';
		document.getElementById('flag').attributes['lang'].value='dk';
	}
	else {
		docClickLoader.loadInto('__cont/file/e_historie.htm','maintext');
		document.images['flag'].src='__cont/image/flagdk.gif';
		document.getElementById('flag').attributes['lang'].value='uk'
	}
}

function editThis(pFile){
	var ckVal=getCookie('Edit');
//	if (!ckVal)	alert('Coockie er null./p'+PageID);
	if (pFile){
		if (ckVal==PageID){
			url='/__cms/EditPage.asp?p='+pFile;
//			window.open(url, 'Redigering', 'alwaysRaised, width=800, height=520, left=100, top=100');
			GB_showCenter('Redigering', url, 549, 800);
		}
		else alert('Du har ikke fået adgang til at redigere denne tekst. Hvis du mener det er en fejl så kontakt web-masteren.');
	}
	else alert('Der er ikke angivet fil-navn. Prøv at genopfriske siden.');
} // editThis

/**************************************************
(C) www.dhtmlgoodies.com, October 2005
***************************************************/	
var expandFirstItemAutomatically = false;	// Expand first menu item automatically ?
var initMenuIdToExpand = false;	// Id of menu item that should be initially expanded. the id is defined in the <li> tag.
var expandMenuItemByUrl = true;	// Menu will automatically expand by url - i.e. if the href of the menu item is in the current location, it will expand

var initialMenuItemAlwaysExpanded = true;	// NOT IMPLEMENTED YET

var dhtmlgoodies_slmenuObj;
var divToScroll = false;
var ulToScroll = false;	
var divCounter = 1;
var otherDivsToScroll = new Array();
var divToHide = false;
var parentDivToHide = new Array();
var ulToHide = false;
var offsetOpera = 0;
if(navigator.userAgent.indexOf('Opera')>=0)offsetOpera=1;	
var slideMenuHeightOfCurrentBox = 0;
var objectsToExpand = new Array();
var initExpandIndex = 0;
var alwaysExpanedItems = new Array();
	
function popMenusToShow(){
	var obj = divToScroll;
	var endArray = new Array();
	while(obj && obj.tagName!='BODY'){
		if(obj.tagName=='DIV' && obj.id.indexOf('slideDiv')>=0){
			var objFound = -1;
			for(var no=0;no<otherDivsToScroll.length;no++){
				if(otherDivsToScroll[no]==obj){
					objFound = no;		
				}					
			}	
			if(objFound>=0){
				otherDivsToScroll.splice(objFound,1);	
			}		
		}	
		obj = obj.parentNode;
	}	
}

function showSubMenu(e,inputObj){
	if(this && this.tagName)inputObj = this.parentNode;
	if(inputObj && inputObj.tagName=='LI'){
		divToScroll = inputObj.getElementsByTagName('DIV')[0];
		for(var no=0;no<otherDivsToScroll.length;no++){
			if(otherDivsToScroll[no]==divToScroll)return;
		}			
	}
	hidingInProcess = false;
	if(otherDivsToScroll.length>0){
		if(divToScroll){				
			if(otherDivsToScroll.length>0){
				popMenusToShow();
			}
			if(otherDivsToScroll.length>0){	
				autoHideMenus();
				hidingInProcess = true;
			}
		}	
	}		
	if(divToScroll && !hidingInProcess){
		divToScroll.style.display='';
		otherDivsToScroll.length = 0;
		otherDivToScroll = divToScroll.parentNode;
		otherDivsToScroll.push(divToScroll);	
		while(otherDivToScroll && otherDivToScroll.tagName!=''){
			if(otherDivToScroll.tagName=='DIV' && otherDivToScroll.id.indexOf('slideDiv')>=0){
				otherDivsToScroll.push(otherDivToScroll);
			}
			otherDivToScroll = otherDivToScroll.parentNode;
		}			
		ulToScroll = divToScroll.getElementsByTagName('UL')[0];
		if(divToScroll.style.height.replace('px','')/1<=1)scrollDownSub();
	}	
}

function autoHideMenus(){
	if(otherDivsToScroll.length>0){
		divToHide = otherDivsToScroll[otherDivsToScroll.length-1];
		parentDivToHide.length=0;
		var obj = divToHide.parentNode.parentNode.parentNode;
		while(obj && obj.tagName=='DIV'){			
			if(obj.id.indexOf('slideDiv')>=0)parentDivToHide.push(obj);
			obj = obj.parentNode.parentNode.parentNode;
		}
		var tmpHeight = (divToHide.style.height.replace('px','')/1 - slideMenuHeightOfCurrentBox);
		if(tmpHeight<0)tmpHeight=0;
		if(slideMenuHeightOfCurrentBox)divToHide.style.height = tmpHeight  + 'px';
		ulToHide = divToHide.getElementsByTagName('UL')[0];
		slideMenuHeightOfCurrentBox = ulToHide.offsetHeight;
		scrollUpMenu();		
	}else{
		slideMenuHeightOfCurrentBox = 0;
		showSubMenu();			
	}
}

function scrollUpMenu(){
	var height = divToHide.offsetHeight;
	height-=15;
	if(height<0)height=0;
	divToHide.style.height = height + 'px';

	for(var no=0;no<parentDivToHide.length;no++){	
		parentDivToHide[no].style.height = parentDivToHide[no].getElementsByTagName('UL')[0].offsetHeight + 'px';
	}
	if(height>0){
		setTimeout('scrollUpMenu()',5);
	}else{
		divToHide.style.display='none';
		otherDivsToScroll.length = otherDivsToScroll.length-1;
		autoHideMenus();			
	}
}	

function scrollDownSub(){
	if(divToScroll){			
		var height = divToScroll.offsetHeight/1;
		var offsetMove =Math.min(15,(ulToScroll.offsetHeight - height));
		height = height +offsetMove ;
		divToScroll.style.height = height + 'px';
		
		for(var no=1;no<otherDivsToScroll.length;no++){
			var tmpHeight = otherDivsToScroll[no].offsetHeight/1 + offsetMove;
			otherDivsToScroll[no].style.height = tmpHeight + 'px';
		}			
		if(height<ulToScroll.offsetHeight)setTimeout('scrollDownSub()',5); else {
			divToScroll = false;
			ulToScroll = false;
			if(objectsToExpand.length>0 && initExpandIndex<(objectsToExpand.length-1)){
				initExpandIndex++;
				
				showSubMenu(false,objectsToExpand[initExpandIndex]);
			}
		}
	}
}
	
function initSubItems(inputObj,currentDepth){
	divCounter++;		
	var div = document.createElement('DIV');	// Creating new div		
	div.style.overflow = 'hidden';	
	div.style.position = 'relative';
	div.style.display='none';
	div.style.height = '1px';
	div.id = 'slideDiv' + divCounter;
	div.className = 'slideMenuDiv' + currentDepth;		
	inputObj.parentNode.appendChild(div);	// Appending <div> as child element of <li> that is parent of input <ul>		
	div.appendChild(inputObj);	// Appending <ul> to the div
	var menuItem = inputObj.getElementsByTagName('LI')[0];
	while(menuItem){
		if(menuItem.tagName=='LI'){
			var aTag = menuItem.getElementsByTagName('A')[0];
//			aTag.className='slMenuItem_depth'+currentDepth;	
			var subUl = menuItem.getElementsByTagName('UL');
			if(subUl.length>0){
				initSubItems(subUl[0],currentDepth+1);					
			}
			aTag.onclick = showSubMenu;				
		}			
		menuItem = menuItem.nextSibling;						
	}		
}

function initSlideDownMenu(){
	dhtmlgoodies_slmenuObj = document.getElementById('dhtmlgoodies_slidedown_menu');
	dhtmlgoodies_slmenuObj.style.visibility='visible';
	var mainUl = dhtmlgoodies_slmenuObj.getElementsByTagName('UL')[0];		
	var mainMenuItem = mainUl.getElementsByTagName('LI')[0];
	mainItemCounter = 1;
	while(mainMenuItem){			
		if(mainMenuItem.tagName=='LI'){
			var aTag = mainMenuItem.getElementsByTagName('A')[0];
//			aTag.className='slMenuItem_depth1';	
			var subUl = mainMenuItem.getElementsByTagName('UL');
			if(subUl.length>0){
				mainMenuItem.id = 'mainMenuItem' + mainItemCounter;
				initSubItems(subUl[0],2);
				aTag.onclick = showSubMenu;
				mainItemCounter++;
			}				
		}			
		mainMenuItem = mainMenuItem.nextSibling;	
	}		
	
	if(location.search.indexOf('mainMenuItemToSlide')>=0){
		var items = location.search.split('&');
		for(var no=0;no<items.length;no++){
			if(items[no].indexOf('mainMenuItemToSlide')>=0){
				values = items[no].split('=');
				showSubMenu(false,document.getElementById('mainMenuItem' + values[1]));	
				initMenuIdToExpand = false;				
			}
		}			
	}else if(expandFirstItemAutomatically>0){
		if(document.getElementById('mainMenuItem' + expandFirstItemAutomatically)){
			showSubMenu(false,document.getElementById('mainMenuItem' + expandFirstItemAutomatically));
			initMenuIdToExpand = false;
		}
	}

	if(expandMenuItemByUrl)	{
		var aTags = dhtmlgoodies_slmenuObj.getElementsByTagName('A');
		for(var no=0;no<aTags.length;no++){
			var hrefToCheckOn = aTags[no].href;				
			if(location.href.indexOf(hrefToCheckOn)>=0 && hrefToCheckOn.indexOf('#')<hrefToCheckOn.length-1){
				initMenuIdToExpand = false;
				var obj = aTags[no].parentNode;
				while(obj && obj.id!='dhtmlgoodies_slidedown_menu'){
					if(obj.tagName=='LI'){							
						var subUl = obj.getElementsByTagName('UL');
						if(initialMenuItemAlwaysExpanded)alwaysExpanedItems[obj.parentNode] = true;
						if(subUl.length>0){								
							objectsToExpand.unshift(obj);
						}
					}
					obj = obj.parentNode;	
				}
				showSubMenu(false,objectsToExpand[0]);
				break;					
			}			
		}
	}
			
	if(initMenuIdToExpand){
		objectsToExpand = new Array();
		var obj = document.getElementById(initMenuIdToExpand)
		while(obj && obj.id!='dhtmlgoodies_slidedown_menu'){
			if(obj.tagName=='LI'){
				var subUl = obj.getElementsByTagName('UL');
				if(initialMenuItemAlwaysExpanded)alwaysExpanedItems[obj.parentNode] = true;
				if(subUl.length>0){						
					objectsToExpand.unshift(obj);
				}
			}
			obj = obj.parentNode;	
		}
		
		showSubMenu(false,objectsToExpand[0]);
	}
} // SlideDownMenu //
