function addEvent(obj, evType, fn){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, true);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

function hasClass(obj) {
	var result = false;
	/*
	if (obj.getAttributeNode("class") != null) {
		Result = obj.getAttributeNode("class").value;
	}
	*/
	if (obj.className != null) {
		Result = obj.className;
	}
	return result;
}

var TNTwebsite = (top == self);
function onTop(){
	if (!TNTwebsite) top.location.href = document.location.href;
}

// simple but accessible popup
// example: href="normalurl.html" onclick="return XY_openPopup(this.href,800,600, 1, 1, 1, 1, 0, 0);"
function XY_openPopup(i, width, height, location, menubar, resizable, scrollbars, status, toolbar) {
	window.open(i, 'popup', 'width='+width+',height='+height+',location='+location+',menubar='+menubar+',resizable='+resizable+',scrollbars='+scrollbars+',status='+status+',toolbar='+toolbar);
	return false;
}
function openPopup(i, width, height, location, menubar, resizable, scrollbars, status, toolbar) {
	window.open(i, 'popup', 'width='+width+',height='+height+',location='+location+',menubar='+menubar+',resizable='+resizable+',scrollbars='+scrollbars+',status='+status+',toolbar='+toolbar);
	return false;
}

function flipFlopTables() {
    var evenColor = " flip";
    var oddColor = " flop";
	var table = document.getElementsByTagName("table");
	
	for(var g = 0; g < table.length; g++){
		var even = true
		
		if(table[g].className == 'flipFlop'){
		    var tbodies = table[g].getElementsByTagName("tbody");

			for (var h = 0; h < tbodies.length; h++) {
				var trs = tbodies[h].getElementsByTagName("tr");

				for (var i = 0; i < trs.length; i++) {
					if (!hasClass(trs[i]) && ! trs[i].style.backgroundColor) {
						var tds = trs[i].getElementsByTagName("td");
						var ths = trs[i].getElementsByTagName("th");

						for (var j = 0; j < tds.length; j++) {
							var mytd = tds[j];
							
							if (! hasClass(mytd) && ! mytd.style.backgroundColor) {
								if (mytd.className == "noDownload"){ // for multiple download table
									mytd.className += even ? evenColor : oddColor;
								} else {
									mytd.className = even ? evenColor : oddColor;
								}
							}
						}
						for (var l = 0; l < ths.length; l++) {
							var myth = ths[l];
							
							if (! hasClass(myth) && ! myth.style.backgroundColor) {
								myth.className = even ? evenColor : oddColor;
							}				
						}
						if(tds[0]){	tds[0].className += " tdLeftSide"}
					}
					even =  ! even;
				}
			}
		}
	}
}

function stripHTML(oldString) {
	var newString = "";
	var inTag = false;
	for(var i = 0; i < oldString.length; i++) {
		if(oldString.charAt(i) == '<') inTag = true;
		if(oldString.charAt(i) == '>') {
			inTag = false;
			i++;
		}
		if(!inTag) newString += oldString.charAt(i);
	}
	return newString;
}

function markExternalLinks() {
	if(typeof(arrExceptionsExternal) == "undefined") { arrExceptionsExternal = new Array(); }
	arrExceptionsExternal[arrExceptionsExternal.length] = "mailto";

	var aA = document.getElementsByTagName('a');
	for (var i=0;i<aA.length;++i) {
		var imgG = aA[i].getElementsByTagName('img');
		for(var k=0; ((k<imgG.length) && (aA[i].className.indexOf('noMark') === -1)); k++) {
			aA[i].className += ' noMark';
			externalLink = true;
			for(var ii=0; ii<arrExceptionsExternal.length; ii++) {
				if((aA[i].href.indexOf(arrExceptionsExternal[ii]) === -1) && (aA[i].className.indexOf('external') === -1) && (externalLink === true)) {
					externalLink = true;
				} else {
					externalLink = false;
				}
			}
			if((externalLink === true) || (aA[i].rel.indexOf('external') != -1)) {
				aA[i].target = '_blank';
				aA[i].rel = 'external';
			}
		}
	}
	for (var i=0;i<aA.length;++i) {
		var externalLink = true;

		for(var ii=0; ii<arrExceptionsExternal.length; ii++) {
			if((aA[i].href.indexOf(arrExceptionsExternal[ii]) === -1) && (aA[i].className.indexOf('noMark') === -1) && (aA[i].className.indexOf('external') === -1) && (externalLink === true)) {
				externalLink = true;
			} else {
				externalLink = false;
			}
		}
			if(((externalLink === true) || ((aA[i].rel.indexOf('external') != -1) && (aA[i].getElementsByTagName('img').length <= 0))) && (aA[i].href.replace(document.location.href, "").length > 0)) {
			aA[i].className += ' external';
			aA[i].target = '_blank';
			aA[i].rel = 'external';

			if(aA[i].title.length > 0) { var infix = ': '; } else { var infix = ' '; }
			if(document.location.host.indexOf('tnt.nl') != -1) {
				var strAlt = '(externe website, opent nieuw venster)';
				aA[i].title = "Externe website" + infix + aA[i].title + infix + "(opent nieuw venster)";
			} else {
				var strAlt = '(Externe Webseite, neues Fenster wird geöffnet)';
				aA[i].title = "Externe Webseite" + infix + aA[i].title + infix + "(neues Fenster wird geöffnet)";				
			}
			mark = document.createElement("img");
			mark.src = "../../img/icon_external_link.gif";
			mark.alt = strAlt;
			mark.className = "external";
			aA[i].appendChild(mark);
		}
	}
}

function markSpecialLinks() {
	if(typeof(arrSpecialExtensions) == "undefined") { arrSpecialExtensions = new Array(); }
	// Check if the page-extension is not excisting in the array arrSpecialExtensions
	var pageURL       = document.location.href;
	var pageDocument  = pageURL.substr(0, (document.location.href.length-document.location.hash.length-document.location.search.length));
	var pageExtension = pageDocument.substr(pageDocument.lastIndexOf("."));
	var blnDocumentIsHtml = true;
	for(var j=0; j<arrSpecialExtensions.length; j++) {
		var arrExtensions = arrSpecialExtensions[j].split(';')[5].split(',');
		for(var k=0; k<arrExtensions.length; k++) {
			if((pageExtension == arrExtensions[k]) && (blnDocumentIsHtml == true)) {
				blnDocumentIsHtml = false;
			}
		}
	}
	// Check if the page is a normal html-page
	if(blnDocumentIsHtml == true) {
		if(typeof(arrSpecialExtensions) == "undefined") { arrSpecialExtensions = new Array(); }
		var aA = document.getElementsByTagName('a');
		for(var i=0; i<aA.length; i++) {
			var imgG = aA[i].getElementsByTagName('img');
			if((aA[i].className.indexOf('noMark') === -1) && (imgG.length <= 0)) {
				var SpecialLink = false;
				var MailtoLink = false;
				for(var j=0; j<arrSpecialExtensions.length; j++) {
					arrSpecialExtensions[j] = arrSpecialExtensions[j].replace(';', ',');
					var arrExtensions = arrSpecialExtensions[j].split(',');
					for(var k=5; k<arrExtensions.length; k++) {
						if(aA[i].href.split('?')[0].indexOf(arrExtensions[k]) != -1) {
							strAlt = arrExtensions[2];
							strSrc = '../../img/file_type_icon_' + arrExtensions[1].replace('.','') + '.gif';
							intWidth  = arrExtensions[3];
							intHeight = arrExtensions[4];
							var TargetBlank = false;
							if(arrExtensions[0] === '1') {
								TargetBlank = true;
							}
							SpecialLink = true;
						}
					}
				}
				if(aA[i].href.indexOf('mailto:') != -1) {
					MailtoLink = true;
				}
				if(SpecialLink === true) {
					mark = document.createElement("img");
					mark.src = strSrc;
					mark.alt = strAlt;
					//mark.className = "special";
					if(TargetBlank === true) {
						aA[i].target = "_blank";
					}
					mark.width = intWidth;
					mark.height = intHeight;
					aA[i].insertBefore(mark, aA[i].firstChild);
				} else if(MailtoLink === true) {
					mark = document.createElement("img");
					mark.src = '../../img/email_icon.gif';
					mark.alt = "Email: " + aA[i].href.replace('mailto:', '');
					// mark.className = "external";
					aA[i].appendChild(mark);
				}
			}
		}
	}
}

// Exceptions for markExternalLinks
if(typeof(arrExceptionsExternal) == "undefined") { arrExceptionsExternal = new Array(); }
arrExceptionsExternal[arrExceptionsExternal.length] = document.location.host;
arrExceptionsExternal[arrExceptionsExternal.length] = "javascript";
arrExceptionsExternal[arrExceptionsExternal.length] = "group.tnt.com";
arrExceptionsExternal[arrExceptionsExternal.length] = "group.tnt.nl";
arrExceptionsExternal[arrExceptionsExternal.length] = "www.tnt.de";
arrExceptionsExternal[arrExceptionsExternal.length] = "www.tntinnight.de";

// Defining extensions for speciallink mark
if(typeof(arrSpecialExtensions) == "undefined") { arrSpecialExtensions = new Array(); }
// "0=same window 1=new window;iconfilename;Alt-text;Width;Height;extension 1,extension 2,extension 3"
arrSpecialExtensions[arrSpecialExtensions.length] = "1;pdf;PDF-icon;15;15;.pdf";
arrSpecialExtensions[arrSpecialExtensions.length] = "0;wmv;Video-icon;15;15;.wmv,.mov,.avi";
arrSpecialExtensions[arrSpecialExtensions.length] = "0;audio;Audio-icon;15;15;.wav,.mp3";
arrSpecialExtensions[arrSpecialExtensions.length] = "1;xml;XML-icon;12;12;.xml";
arrSpecialExtensions[arrSpecialExtensions.length] = "1;img;Picture-icon;15;15;.jpg,.jpeg,.gif";
arrSpecialExtensions[arrSpecialExtensions.length] = "0;doc;Word document icon;15;15;.doc";
arrSpecialExtensions[arrSpecialExtensions.length] = "0;xls;Excel document icon;15;15;.xls";

// Functions for the Global Footprint
function groupTNTInit(){
	if (document.getElementById && document.getElementsByTagName){
		enrichBrowsableLists();
		openActiveAddress();
	};
};
gfp_timeOut=0;
function gfp_showMenu(Id,division){
	if(document.getElementById){ 
		clearTimeout(gfp_timeOut);

		for(var i=1;i<7;i++){
			if(i!=Id){
				var divisionMenu = document.getElementById(division+'_menu'+i);
				if(divisionMenu != null){ divisionMenu.style.visibility = "hidden"; }
			}
		}

		if(Id!=undefined){
			var divisionMenu = document.getElementById(division+'_menu'+Id);
			if(divisionMenu != null){ divisionMenu.style.visibility = "visible"; }
		}
	}
}
function gfp_hideMenu(Id,division){
	if(document.getElementById){
		var divisionMenu = document.getElementById('"+division+"_menu"+Id+"');
		if(divisionMenu != null) {
			gfp_timeOut = setTimeout("document.getElementById('"+division+"_menu"+Id+"').style.visibility = 'hidden';",100);
		}
	}
}
function gfp_hideAllMenus(){
	var divisions = new Array;
	divisions[1] = 'express';
	divisions[2] = 'logistics';
	divisions[3] = 'mail';
	for(var i=1;i<4;i++){
		for(var j=1;j<7;j++){
			var divisionMenu = document.getElementById(divisions[i]+'_menu'+j);
			if(divisionMenu != null){ divisionMenu.style.visibility = "hidden"; }
		}
	}
}
function openActiveAddress(){
	var anchorId = document.location.hash.substr(1, document.location.hash.length);
	if(location.hash.indexOf('_continent_') != -1) {
		var anchorElement = document.getElementById(anchorId);
		if(anchorElement != null){
			var parentDiv = anchorElement.parentNode;
			toggleList(0, anchorElement);
			location.hash = location.hash;
		}
	} else {
		var anchorElement = document.getElementById(anchorId);
		if(anchorElement != null){
			var parentDiv = anchorElement.parentNode;
			toggleList(0, parentDiv.previousSibling);
			location.hash = location.hash;
		}
	}
}
function enrichBrowsableLists(){
	var blnFaq = document.getElementById('faq');
	if(blnFaq != null && blnFaq != -1) {
		var headers = document.getElementsByTagName('h4');
	} else {
		var elBrowsableList = document.getElementById('browsableList');
		if(elBrowsableList != null && elBrowsableList != -1) {
			var headers = document.getElementsByTagName('h3');
		};
	};
	var nextEl;
	if(headers != null && headers != -1) {
		for (var i = 0; i < headers.length; i++){
		nextEl = headers[i].nextSibling;
		if (nextEl.nodeType != 1)
			nextEl = nextEl.nextSibling;
			if ((nextEl.nodeName == 'DIV' || (nextEl.nodeName == 'DIV' && nextEl.className.indexOf('collapsibleGroup') != -1)) || ((nextEl.nodeName == 'UL' || (nextEl.nodeName == 'UL' && nextEl.className.indexOf('collapsibleGroup') != -1)) && nextEl.parentNode.id == 'faq')){
				appendClass(headers[i], 'expandable');
				appendClass(nextEl, 'expandable');
				headers[i].tabIndex = '0';
				headers[i].onclick = toggleList;
				headers[i].onkeypress = handleKeysList;
				headers[i].onfocus = highlightList;
				headers[i].onmouseover = highlightList;
				headers[i].onmouseout = unhighlightList;
				headers[i].onblur = unhighlightList;
			};
		};
	};
};
function toggleList(e, node){
	var header = node ? node : this;
	var list = header.nextSibling;
	if ((header.parentNode.currentItem) &&  (header.parentNode.currentItem != null) && (header.parentNode.currentItem != -1)){
		var oldHeader = header.parentNode.currentItem;
		var oldList = oldHeader.nextSibling;
		if (oldList.nodeType != 1)
			oldList = oldList.nextSibling;
		removeClass(oldHeader, 'collapsible');
		appendClass(oldHeader, 'expandable');
		removeClass(oldList, 'collapsible');
		appendClass(oldList, 'expandable');
	};
	if (list.nodeType != 1)
		list = list.nextSibling;
	if (header.parentNode.currentItem != header){
		removeClass(header, 'expandable');
		appendClass(header, 'collapsible');
		removeClass(list, 'expandable');
		appendClass(list, 'collapsible');
		header.parentNode.currentItem = header;
	}
	else
		header.parentNode.currentItem = null;
};
function handleKeysList(evt){
	var e = window.event ? event : evt ? evt : null;
	if (!e) return;
	if (e.keyCode == 13 || e.keyCode == 32)
		toggleList(e, this);
};
function highlightList(){
	appendClass(this, 'hover');
};
function unhighlightList(){
	removeClass(this, 'hover');
};
function appendClass(el, className){
	var newClass = true;
	var c = el.className.split(' ');
	for (var i = 0; i < c.length; i++)
		if (c[i] == className){
			newClass = false;
			break;
		};
	if (newClass) c[c.length] = className;
	el.className = c.join(' ');
};
function removeClass(el, className){
	var c = el.className.split(' ');
	for (var i = 0; i < c.length; i++)
		if (c[i] == className)
			c.splice(i, 1);
	el.className = c.join(' ');
};

// Functions for the FAQ pages
function faqInit(){
	if (document.getElementById && document.getElementsByTagName){
		var faqItems = document.getElementsByTagName('li');
		var qId = 0;
		for(var i=0;i<faqItems.length;i++){
			qId++;
			if(faqItems[i].className.indexOf('faqItem') != -1){
				var answerDiv = null;
				var answerDiv = faqItems[i].getElementsByTagName('div');
				if(answerDiv != null && answerDiv != -1){
					appendClass(answerDiv[0], 'faqAnswer');
					answerDiv[0].id = 'a'+qId;
				}
				var showHideLink = document.createElement("a");
				showHideLink.href = '#';

				showHideLink.className = 'faqShowAnswer';
				showHideLink.id = 'q'+qId;
				showHideLink.innerHTML = '+ <span>Show answer</span>';
				showHideLink.onclick = toggleAnswer;
				faqItems[i].appendChild(showHideLink);
			}
		}
	}
};

function toggleAnswer(){
	var owner = this;
	var qId = 'a'+this.id.substr(1, this.id.length);
	if (document.getElementById && document.getElementsByTagName){
		var qAnswerEl = document.getElementById(qId);
		if(qAnswerEl != null) {
			if(qAnswerEl.className.indexOf('faqAnswer') != -1){
				removeClass(qAnswerEl, 'faqAnswer');
				owner.innerHTML = '- <span>Hide answer</span>';
			} else {
				appendClass(qAnswerEl, 'faqAnswer');
				owner.innerHTML = '+ <span>Show answer</span>';
			};
			return false;
		};
	};
};

// Form validation functions
function checkConvertPhoneNumber(txtMobileNumber,lang) {
	var inputEl = document.getElementById(txtMobileNumber);
	var value = inputEl.value;

	if (lang == "NL"){
		errorNumber = "Het nummer is geen geldige waarde.\nVerander dit alstublieft naar een numerieke waarde zoals bijvoorbeeld: 0612345678."	
	} else if (lang == "EN"){
		errorNumber = "Number is not valid.\nPlease change it to a numeric value like: 0031612345678."
	} else {
		errorNumber = "Number is not valid.\nPlease change it to a numeric value like: 0031612345678."
	}
	while(value.indexOf('+') != -1) { value = value.replace('+', '00'); }
	while(value.indexOf(' ') != -1) { value = value.replace(' ', ''); }
	while(value.indexOf('-') != -1) { value = value.replace('-', ''); }
	while(value.indexOf('(') != -1) { value = value.replace('(', ''); }
	while(value.indexOf(')') != -1) { value = value.replace(')', ''); }
	pattern = /^[0-9]*$/;
	if((pattern.test(value)==false) || (value.length < 1)){
		alert(errorNumber);
		return false;
	} else {
		inputEl.value = value;
		return true;
	}
}

addEvent(window, "load", faqInit);
addEvent(window, "load", gfp_hideAllMenus);
addEvent(window, "load", onTop);
addEvent(window, "load", flipFlopTables);
//addEvent(window, "load", markExternalLinks);
//addEvent(window, "load", markSpecialLinks);
addEvent(window, "load", groupTNTInit);

