/*
	=============================================
	SelektMail Online Intranet
	Javascript navigation controls
	
	Version		: 0.1
	Author		: Beemster, P.J.
	Date		: 2005-03-02
	=============================================
	Version		: 0.2
	Author		: Van der Harg, W.
	Date		: 2005-10-31
	=============================================
	Version		: 0.3
	Author		: Hagemann, V.
	Date		: 2007-09-20
	=============================================
*/

// =============================================
// KEYWORDS
// =============================================
	var fadeInterval = 100;
	var fadeInitialDelay = 4000;
	var fadeSteps = new Array();
		fadeSteps[1] = "ff";
		fadeSteps[2] = "ff";
		fadeSteps[3] = "ee";
		fadeSteps[4] = "dd";
		fadeSteps[5] = "cc";
		fadeSteps[6] = "bb";
		fadeSteps[7] = "aa";
		fadeSteps[8] = "99";
		fadeSteps[9] = "88";
		fadeSteps[10] = "77";
		fadeSteps[11] = "66";
		fadeSteps[12] = "55";
		fadeSteps[13] = "44";
		fadeSteps[14] = "33";
		fadeSteps[15] = "22";
		fadeSteps[16] = "11";
	var startFadeAt = 16;

	fadeKeyword = function(step, xhtmlElement) {
		if(step >= 1 && fadeSteps[step]) { xhtmlElement.style.background = "#ffff"+fadeSteps[step]; } 
		if(step==1)   			  { xhtmlElement.style.background = "transparent"; }
		return true;
	}
	fadeOut = function(step) {
		if(document.getElementsByTagName) {
			var keywords = document.getElementsByTagName("span");
			for(var i=0; i<keywords.length; i++) {
				if(keywords[i].className && keywords[i].className=="searchword") {
					fadeKeyword(step, keywords[i]);
				}
			}
			step--;
			if(step>0) {
				setTimeout("fadeOut("+step+");", fadeInterval);
			}
		}
		return true;
	}
	highlightWord = function(node,word) {
		// Iterate into this nodes childNodes
		if (node.hasChildNodes) {
			var hi_cn;
			for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {
				highlightWord(node.childNodes[hi_cn],word);
			}
		}

		// And do this node itself
		if (node.nodeType == 3) { // text node
			tempNodeVal = node.nodeValue.toLowerCase();
			tempWordVal = word.toLowerCase();
			if (tempNodeVal.indexOf(tempWordVal) != -1) {
				pn = node.parentNode;
				if (pn.className != "searchword") {
					// word has not already been highlighted!
					nv = node.nodeValue;
					ni = tempNodeVal.indexOf(tempWordVal);
					// Create a load of replacement nodes
					before = document.createTextNode(nv.substr(0,ni));
					docWordVal = nv.substr(ni,word.length);
					after = document.createTextNode(nv.substr(ni+word.length));
					hiwordtext = document.createTextNode(docWordVal);
					hiword = document.createElement("span");
					hiword.className = "searchword";
					hiword.appendChild(hiwordtext);
					pn.insertBefore(before,node);
					pn.insertBefore(hiword,node);
					pn.insertBefore(after,node);
					pn.removeChild(node);
				}
			}
		}
	}

	searchHighlight = function() {
		if (!document.createElement) return;
		ref = document.URL;
		if (ref.indexOf('?') == -1) return;
		qs = ref.substr(ref.indexOf('?')+1);
		qsa = qs.split('&');
		for (i=0;i<qsa.length;i++) {
			qsip = qsa[i].split('=');
		      if (qsip.length == 1) continue;
        		if (qsip[0] == 'q' || qsip[0] == 'p') { // q= for Google, p= for Yahoo
				words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);
				for (w=0;w<words.length;w++) {
					highlightWord(document.getElementById("contents"),words[w]);
      	          	}
	      	}
		}
	}

// =============================================
// ZOEKRESULTATEN
// =============================================
	var searchCurrent = 1;
	var searchLast = 1;
	var searchResultsPerPage = 10;

	w3cdom = function() {
		if(document.getElementById && document.getElementsByTagName) {
			return(true);
		} else {
			return(false);
		}
	}
	setResultsPerPage = function(number) {
		searchResultsPerPage = number;
	}
	setNumberOfPages = function(number) {
		searchLast = number;
	}
	hideResults = function() {
		if(w3cdom) {
			var searchResult = document.getElementById("searchResult");
			if(searchResult) {
				var results = searchResult.getElementsByTagName("li");
				for(i=0; i<results.length; i++) {
					results[i].style.display='none';
				}
			}
		}	
		return true;
	}
	showResults = function(groupId) {
		if(w3cdom) {
			hideResults();
			var searchResult = document.getElementById("searchResult");
			if(searchResult) {
				var results = searchResult.getElementsByTagName("li");
				//0 = alle resultaten, dus alles op block zetten
				if(searchResultsPerPage == '0'){
					for(i=results.length-1; i>-1; i--) {
							results[i].style.display='block';
							searchCurrent=groupId;
					}
				}else{
					for(i=results.length-1; i>-1; i--) {
						if(((groupId-1)*searchResultsPerPage) < results[i].value && results[i].value<=(groupId*searchResultsPerPage)) {
							results[i].style.display='block';
							searchCurrent=groupId;
						}
					}
				}
			}
		}
		return true;
	}
	showPrevious = function() {
		var previous = searchCurrent-1;
		if(previous < 1) {
			previous = 1;
		}	
		showResults(previous);
		return true;
	}
	showNext = function() {
		var next = searchCurrent+1;
		if(next > searchLast) {
			next = searchLast;
		}
		showResults(next);
		return true;
	}
	getSearchParameter = function(fieldName) {
		var returnValue = 0;
		if(w3cdom) {
			var formField = document.getElementById(fieldName);
			if(formField) {
				returnValue = formField.value;
			}
		}
		return(returnValue);
	}
	initSearch = function() {
		if(w3cdom) {
			var parametersForm = document.getElementById("searchResultParameters");
			if(parametersForm) {
				setResultsPerPage(getSearchParameter("resultsPerPage"));
				setNumberOfPages(getSearchParameter("numberOfPages"));
			}
		}	
		showResults(1);
		return(true);
	}
// =============================================
// FORMULIEREN
// =============================================
	clearValue = function(control) {
		// if(control) {
		// 	control.value = "";
		// }
		return true;
	}	
	suckerfishFocus = function() {
		/* 
		   based on Suckerfish :focus by Patick Griffiths and Dan Webb
		   http://www.htmldog.com/articles/suckerfish/focus/ 
		*/
		if(document.getElementsByTagName) {
			var formFields = document.getElementsByTagName("input");
			var i=0;
			for(i=0; i < formFields.length-1; i++) {
				if(formFields[i].type == "text") {
					formFields[i].onfocus = function() {
						this.className += " focus";
						clearValue(this);
					}
					formFields[i].onblur = function() {
						this.className = this.className.replace(new RegExp(" focus\\b"), "");
					}
				}
			}
			var formFields = document.getElementsByTagName("textarea");
			var i=0;
			for(i=0; i < formFields.length-1; i++) {
				formFields[i].onfocus = function() {
					this.className += " focus";
					clearValue(this);
				}
				formFields[i].onblur = function() {
					this.className = this.className.replace(new RegExp(" focus\\b"), "");
				}
			}
		}
		return true;
	}
	submitForm = function(formId) {
		if(document.getElementById) { 
			var form = document.getElementById(formId);
			if(form) {
				form.submit();
			}
			return false;
		}
	}
	
// =============================================
// NAVIGATIE
// =============================================
	// Function menuCollapse
	// Purpose		: Collapses inactive submenu
	// Callers		: Function menuCollapseAll
	// Parameters	: menuItem	- <UL> element in <DIV> "navLinks"
	// Returns		: Boolean	- true
	menuCollapse = function(menuItem) {
		var subMenus = menuItem.getElementsByTagName("ul");
		var i=0;
		for(i=0; i<subMenus.length; i++) {
			subMenus[i].style.display = 'none';
		}
		i = null;
		subMenus = null;
		return true;
	}
	
	// Function menuCollapseAll
	// Purpose		: Selects all submenus to collapse
	// Callers		: Function menuExpand
	// Parameters	: menu		- <DIV> "navLinks" element
	// Returns		: Boolean	- true
	menuCollapseAll = function(menu) {
		subMenus = menu.getElementsByTagName("ul");
		for(i=0; i<subMenus.length; i++) {
			menuCollapse(subMenus[i]);
		}
		return true;
	}
	
	// Function menuExpand
	// Purpose		: Expands active submenu
	// Callers		: Include menuLinks.asp
	// Parameters	: menuItem	- <UL> element in <DIV> "navLinks"
	// Returns		: Boolean	- true
	menuExpand = function(menuItem) {
		menuCollapseAll(document.getElementById("secondaryNav"))
		var thisMenu = menuItem.getElementsByTagName("ul");
		var i=0;
		for(i=0; i<thisMenu.length; i++) {
			thisMenu[i].style.display = 'block';
			menuCollapse(thisMenu[i]);
		}
		return true;
	}
	//showNavElement = function(itemUri) {
	//	if(document.getElementById) {
	//		var navItem = document.getElementById(itemUri);
	//		if(navItem) {
	//			navItem.className += " active";
	//			if(navItem.parentNode.parentNode) {
	//				menuExpand(navItem.parentNode.parentNode);
	//			// } else {
	//			// 	menuExpand(navItem.parentNode);
	//			}
	//		}
	//		navItem = null;
	//	}
	//}
	showNavElement = function(itemUri) {
		if(document.getElementById && document.getElementsByTagName) {
			var secondaryNav = document.getElementById("secondaryNav");
			if(secondaryNav) {
				var navItems = secondaryNav.getElementsByTagName("a");
				var i=0;
				for(i=0; i<navItems.length; i++){
					if(navItems[i].className && navItems[i].className.indexOf("active")>-1) {
						navItems[i].parentNode.parentNode.style.display = "block";
					}
				}
			}
		}
	}	
	initNavElements = function(elementId, hoverEffect) {
		var navSection = document.getElementById(elementId);
		if(navSection) {
			var navItems = navSection.getElementsByTagName("li");
			var i=0;
			for(i=0;i<navItems.length;i++){
				if(hoverEffect) {
					navItems[i].onmouseover = function() {
						this.className += " hover";
					}
					navItems[i].onmouseout = function() {
						if(this.className.indexOf("active")>-1) {
							this.className = "active";
						} else {
							this.className = "";
						}
						//this.className = this.className.replace(" hover", "");
					}
				} else {
					navItems[i].onclick = function() {
						menuExpand(this);
					}
					navItems[i].ondblclick = function() {
						menuCollapse(this);
					}
				}
			}
			navItems=null;
			i=null;
		}
		navSection=null;
		return true;
	}
	redirect = function(url) {
		if(url && url.length!="0") {
			window.location = url;
			return true;
		} else {
			return false;
		}
	}
// =============================================
// NEWSITEMS
// =============================================
	showDetailPage = function(newsitem) {
		var redirectUrl = null;
		if(document.getElementsByTagName && newsitem) {
			var anchors = newsitem.getElementsByTagName("a"); 
			var i=0;
			for(i=0;i<anchors.length;i++){
				if(anchors[i].className == "readmore") {
					redirectUrl = anchors[i].href;
				}
			}
			var i=null;
			var anchors=null;
		}
		if(redirectUrl) {
			window.location = redirectUrl;
		}
		redirectUrl = null;
		return true;
	}
	initNewsitems = function() {
		if(document.getElementsByTagName) {
			var divs = document.getElementsByTagName("div");
			var i=0;
			for(i=0;i<divs.length;i++){
				if(divs[i].className.indexOf("hilite") > -1) {
					divs[i].onmouseover = function() {
						this.className += " focus";
						return true;
					}
					divs[i].onmouseout = function() {
						this.className = this.className.replace(" focus","");
						return true;
					}
					divs[i].onclick = function() {
						showDetailPage(this);
						return true;
					}
				}
			}
		}
	}
	initSearchItems = function() {
		if(w3cdom) {
			var searchResult = document.getElementById("searchResult");
			if(searchResult) {
				var results = searchResult.getElementsByTagName("div");
				var i=0;
				for(i=0; i<results.length; i++) {
					results[i].onmouseover = function() {
						this.className += " focus";
						return(true);
					}
					results[i].onmouseout = function() {
						this.className = this.className.replace("focus", "");
						return(true);
					}
					results[i].onclick=function() {
						showDetailPage(this);
						return(true);
					}
				}
			}
		}
		return(true);
	}
// =============================================
// POLL
// =============================================
	var boolHasVoted=false;
	applyDisplayStyle = function(xhtmlElementId, displayStyle) {
		if(document.getElementById) {
			var element = document.getElementById(xhtmlElementId);
			if(element){
				element.style.display = displayStyle;
			}
			element = null;
		}
		return true;
	}
	hidePollResultAnchors = function(pollResultsId) {
		if(document.getElementById && document.getElementsByTagName) {
			var element = document.getElementById(pollResultsId);
			if(element){
				var anchors = element.getElementsByTagName("a");
				var i=0;
				for(i=0; i<anchors.length; i++) {
					anchors[i].style.display = "none";
				}
				anchors = null;
				i = null;
			}
		}
		return true;
	} 
	showPollResult = function() {
		applyDisplayStyle("pollQuestion", "none");
		applyDisplayStyle("pollResult", "block");
		if(boolHasVoted) {
			hidePollResultAnchors("pollResult");
		}
		return false;
	}
	showPollQuestion = function() {
		applyDisplayStyle("pollQuestion", "block");
		applyDisplayStyle("pollResult", "none");
		return false;
	}
	submitPoll = function(optionId) {
		if(document.getElementById) {
			var formId = null;
			var formIdElements = optionId.split("-");
			if(formIdElements.length>0) {
				formId = formIdElements[0]+"-"+formIdElements[1];
			}
			var form = document.getElementById(formId);
			if(form) {
				form.submit();
			}
			form = null;
			formIdElements = null;
			formId = null;
		}
		return false;
	}
	
// =============================================
// PRINT / EMAIL
// =============================================
	submitEmailForm = function(pageUrl, fixedRecipient) {
		if(document.getElementById) {
			var emailForm = document.getElementById("emailForm");
			if(emailForm) {
				var sendToFriend = document.getElementById("sendToFriend");
				var url = document.getElementById("pageUrl");
				if(sendToFriend) {
					sendToFriend.value = fixedRecipient;
				}
				if(pageUrl) {
					url.value = pageUrl;
				} 
				submitForm(emailForm.id);
			}
		}
		return true;
	}
	email = function(url) {
		submitEmailForm(url, true);
		return true;
	}
	sendPage = function(url) {
		submitEmailForm(url, false);
		return true;
	}
// =============================================
// STRIPE TABLES
// =============================================
	stripeTables = function() {
		if(document.getElementsByTagName && document.getElementById) {
			var contents = document.getElementById("contents");
			if(contents){
				var tables = contents.getElementsByTagName("table");
				var i=0;
				for(i=0;i<tables.length;i++){
					if(tables[i].className.indexOf("addressDetails")<0) {
						var tableRows = tables[i].getElementsByTagName("tr");
						var j=0;
						var odd=true;
						for(j=0;j<tableRows.length;j++) {
							if(odd){
								tableRows[j].className += " zebra";
							}
							odd=!odd;
						}
						tableRows=null;
						j=null;
						odd=null;
					}
				}
				tables=null;
			}
			contents=null;
		}
		return true;
	}
	
// =============================================
// INTERACTIEVE SCHERMELEMENTEN
// =============================================
	enableElementsByClassName = function(elementName, className) {
		if(document.getElementsByTagName) {
			var elements = document.getElementsByTagName(elementName);
			var i=0;
			if(elements){
				for(i=0; i<elements.length; i++){
					if(elements[i].className.indexOf(className) > -1){
						elements[i].style.display = "inline";
					}
				}
			}
			elements = null;
			i = null;
		}
		return true;
	}
	moveLayer = function(layerId, topOffset) {
		if(document.getElementById){
			var layer = document.getElementById(layerId);
			if(layer){
				layer.style.top = topOffset;
			}
			layer = null;
		}
		return true;
	}
	hideMenus = function() {
		return true;
	}
	showQuickMenu = function(node) {
		if (window.ActiveXObject)
		{
			node.style.display="block";
			if (node.getElementsByTagName("ul").length>0)
			{
				node.getElementsByTagName("ul")[0].style.display="block";
			}
		}
	}
	hideQuickMenu = function(node) {
		if (window.ActiveXObject)
		{
			node.getElementsByTagName("ul")[0].style.display="none";
		}
	}
	showToplevelSearch = function() {
		hideMenus();
		return true;
	}
	hideInfo = function() {
		if(w3cdom) {
			var inkoopwizard = document.getElementById("inkoopwizard");
			if(inkoopwizard) {
				var tooltips = inkoopwizard.getElementsByTagName("dd");
				for(var i=0; i<tooltips.length; i++) {
					tooltips[i].style.top = "-1000em";
				}
			}
		}
		return(true);
	}
	showInfo = function(anchorElement) {
		hideInfo();
		if(w3cdom && anchorElement) {
			if(anchorElement.parentNode.parentNode) {
				var definitionList = anchorElement.parentNode.parentNode;
				if(definitionList) {
					var tooltip = definitionList.getElementsByTagName("dd");
					for(var i=0; i<tooltip.length; i++) {
						// attach to mouse position
						var e = window.event;
						var posx = 0;
						var posy = 0;
						if(e.pageX && e.pageY) {
							posx = e.pageX;
							posy = e.pageY;
						} else if(e.clientX && e.clientY) {
							posx = e.clientX - document.body.scrollLeft;
							posy = e.clientY - document.body.scrollTop;
						}
						tooltip[i].style.left = (posx-175)+"px";
						tooltip[i].style.top  = "auto";
					}
				}
			}
		}
		return(true);
	}
// =============================================
// LIQUID LAYOUT
// =============================================
	positionFooter = function() {
		if(document.getElementById) {
			var header = document.getElementById("header");
			var footer = document.getElementById("footer");
			var contents = document.getElementById("contents");
			var sidebar = document.getElementById("sidebar");
			var homepageBar = document.getElementById("homepageBar");
			var secondaryNav = document.getElementById("secondaryNav");
			var mainMenuBanners = document.getElementById("mainMenuBanners");

			// retrieve window size
			if(self.innerHeight)
			{
				windowHeight = parseInt(self.innerHeight);
			}
			else if(document.documentElement && document.documentElement.clientHeight)
			{
				windowHeight = parseInt(document.documentElement.clientHeight);
			}
			else if(document.body)
			{
				windowHeight = parseInt(document.body.clientHeight);
			}

			// retrieve element sizes
			var sidebarHeight		= (sidebar		&& sidebar.clientHeight)		? parseInt(sidebar.clientHeight)		: 0;
			var homepageBarHeight	= (homepageBar	&& homepageBar.clientHeight)	? parseInt(homepageBar.clientHeight)	: 0;
			var secondaryNavHeight	= (secondaryNav	&& secondaryNav.clientHeight)	? parseInt(secondaryNav.clientHeight)	: 0;
			var secondaryNavBannerHeight	= (mainMenuBanners	&& mainMenuBanners.clientHeight)	? parseInt(mainMenuBanners.clientHeight)	: 0;
			var headerHeight		= (header		&& header.clientHeight)			? parseInt(header.clientHeight)			: 0;
			var footerOffset		= (footer		&& footer.offsetTop)			? parseInt(footer.offsetTop)			: 0;
			var footerHeight		= (footer		&& footer.clientHeight)			? parseInt(footer.clientHeight)			: 0;

			// resize if required
			if(header && footer)
			{
				var contentsAreaHeight = windowHeight-footerHeight-headerHeight-footerHeight;
				contentsHeight = footerOffset - headerHeight;
				contentsHeight = Math.max(contentsHeight, contentsAreaHeight);
				contentsHeight = Math.max(contentsHeight, sidebarHeight);
				contentsHeight = Math.max(contentsHeight, homepageBarHeight);
				contentsHeight = Math.max(contentsHeight, secondaryNavHeight+secondaryNavBannerHeight);
				contents.style.height = contentsHeight-2+"px";	// 5px marge
				footer.style.visibility = "visible";
			}
		}
		return true;
	}
// =============================================
// EXTERNE LINKS
// =============================================
	externalLinks = function() {
		if(document.getElementsByTagName) {
			var anchors = document.getElementsByTagName("a");
			for(var i=0; i<anchors.length; i++) {
				var anchor = anchors[i];
				if(anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
					anchor.target = "_blank";
				}
			}
		}
		return true;
	}
	imagePopup = function(imageUrl) {
		window.open(imageUrl, "popupImage", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=640, height=480");
		return true;
	}

// =============================================
// COMMENTS
// =============================================
	showLayer = function(layerId) {
		if(document.getElementById){
			var layer = document.getElementById(layerId);
			if(layer){
				layer.style.display = 'block';
			}
		}
		return true;
	}
	hideLayer = function(layerId) {
		if(document.getElementById){
			var layer = document.getElementById(layerId);
			if(layer){
				layer.style.display = 'none';
			}
		}
		return true;
	}
	initFeedbackForm = function() {
		// initial form state
		if(document.getElementById){
			var showForm = false;
			var divFeedbackForm = document.getElementById("isPostback");
			if(divFeedbackForm){
				showForm = true;
			}
			if(showForm){
				showLayer("feedbackForm");
			}
		}
		return true;
	}
	toggleLayer = function(layerId) {
		if(document.getElementById){
			var layer = document.getElementById(layerId);
			if(layer){
				switch(layer.style.display){
					case 'block':
						hideLayer(layerId);
						break;
					case 'none':
						showLayer(layerId);
						break;
					default:
						break;				
				}
			}
		}
		return true;
	}
// =============================================
// EVENTS
// =============================================
	window.onload = function() {
		window.defaultStatus = "";
		doRequest(xmlHTTP=getHTTPObject(), '/includes/navigatie.xml');
		externalLinks();
		initSearchItems();
		initSearch();
		searchHighlight();
		positionFooter();
		setTimeout("fadeOut(startFadeAt);", fadeInitialDelay);

/*		hideMenus();
		initNavElements("primaryNav", true);
		initNewsitems();
		initFeedbackForm();
		stripeTables();
		suckerfishFocus();
		enableElementsByClassName("li", "jsFunction");
		enableElementsByClassName("a", "jsFunction");
*/		return true;
	}



function lastUsefullChild(object)
{
	/*
		Mozilla telt sluit nodes als aparte kinderen
		Deze hebben een "undefined" tagName.
	*/
	var node = object.lastChild;
	if (typeof(node.tagName) == "undefined")
		node = object.childNodes[(object.childNodes.length-2)];
	return node;
}

function changeTarget(){
 if (document.forms.searchForm.queryDomain[2].checked){
	document.forms.searchForm.target='_blank';
 }else{
	document.forms.searchForm.target='_self';
 }
 return true;
}

function addkeywordToBox(box){
  if(document.forms.searchForm.queryKeywords.value == ""){
     document.forms.searchForm.queryKeywords.value = box.value;
  }else{
     document.forms.searchForm.queryKeywords.value = document.forms.searchForm.queryKeywords.value + " "+ box.value;
  }
}


function addProfielKeyword(profiel){
   var x=document.getElementById("selectedProfielen");
   var alreadyAdded = false;
  for (var i = 0; i < x.options.length; i++) {

     if(x.options[i].value == profiel.value){
        alreadyAdded = true;
      }
  }
  if(!alreadyAdded){
        var hiddenProfielen = document.getElementById("profielhidden");
        if(hiddenProfielen.value == "" ){
            hiddenProfielen.value = profiel.value;
        }else{
			hiddenProfielen.value = hiddenProfielen.value + "#" + profiel.value;
		}
		var oOption = document.createElement("OPTION");
		x.options.add(oOption);
		oOption.text = profiel.value;
		oOption.value = profiel.value;
   }
}

function removeProfielKeyword(){
   var x=document.getElementById("selectedProfielen");
   var hiddenProfielen = document.getElementById("profielhidden");
   if(hiddenProfielen.value.indexOf(x.value)==0){
      hiddenProfielen.value = hiddenProfielen.value.replace(x.value,"");
      if(hiddenProfielen.value.indexOf("#")==0){
		hiddenProfielen.value = hiddenProfielen.value.replace("#","");
      }
   }else{
     hiddenProfielen.value = hiddenProfielen.value.replace("#"+x.value,""); 
   }
   x.remove(x.selectedIndex)
}

/*
	=============================================
	END
	=============================================
*/