if(typeof window.addEventListener != 'undefined') {
	window.addEventListener('load', dropsInit, false);
}
else if(typeof document.addEventListener != 'undefined') {
	document.addEventListener("DOMContentLoaded", dropsInit, false);
}
else if(typeof window.attachEvent != 'undefined') {
	window.attachEvent('onload', dropsInit);
}

var showTimer;
var hideTimer;
var isHiding = false;
var http_request;

function dropsInit () {
	if(document.all && !window.opera && !window.XMLHttpRequest) hover();
	document.getElementById('tafdrop').style.top = '-1000px';
	document.getElementById('searchdrop').style.top = '-1000px';
	document.getElementById('sitemapdrop').style.top = '-1000px';
	document.getElementById('aPrint').onclick = function () {window.print(); return false;}
	document.getElementById('aSearch').onclick = function () {toggle('searchdrop'); return false;}
	document.getElementById('aTaf').onclick = function () {toggle('tafdrop'); return false;}
	document.getElementById('aSitemap').onclick = function () {toggle('sitemapdrop'); return false;}
	expandSitemap("uldrop");
}

function expandSitemap(ulName) {
	ul = document.getElementById(ulName);
	for (i=0; i<ul.childNodes.length; i++) {
		node = ul.childNodes[i];
		if (node.nodeName=="LI" && node.className == 'expand') {
			node.onclick=function() {
				if(this.className == "expand"){
					this.className +=" collapse";
				} else {
					this.className=this.className.replace(" collapse", "");
				}
				var e = document.getElementById("sitemapdrop");
				var height = e.offsetHeight;
				document.getElementById('hiddenDrops').style.height = height + 'px';
			}
		}
	}
}

function hover() {
	try {
	  document.execCommand("BackgroundImageCache", false, true);
	} catch(err) {}
	navRoot = document.getElementById("menu");
	for (i=0; i<navRoot.childNodes.length; i++) {
		node = navRoot.childNodes[i];
		if (node.nodeName=="LI" && node.className == 'drop') {
			node.onmouseover=function() {
				this.className +=" over";
			}
			node.onmouseout=function() {
				this.className=this.className.replace(" over", "");
			}
		}
	}
}

function toggle(id) {
	var speed = 12;
	var e = document.getElementById(id);
	var drops = new Array("tafdrop","searchdrop","sitemapdrop");
	clearInterval(showTimer);
	if(isHiding == true){
		if(e.style.top != '-1000px'){
			clearInterval(hideTimer);
			isHiding = false;
		}
		showTimer = setInterval("show('" + id + "')", speed);
	} else if(e.style.top == '-1000px') {
		for(i in drops) {
			if(document.getElementById(drops[i]).style.top != '-1000px'){
				isHiding = true;
				hideTimer = setInterval("hide('" + drops[i] + "')", (speed));
			}
		}
		showTimer = setInterval("show('" + id + "')", speed);
	} else {
		isHiding = true;
		hideTimer = setInterval("hide('" + id + "')", speed);
	}
	return false;
}

function hideTaf() {
	isHiding = true;
	hideTimer = setInterval("hide('tafdrop')", 12);
}
function hide(id) {
	var e = document.getElementById(id);
	var top = parseInt(e.style.top.split("px")[0]);
	var change = 2;
	if(top < -10) {change = 4;}
	if(top < -20) {change = 6;}
	if(top < -30) {change = 8;}
	if(e.offsetHeight < (-top)) {
		clearInterval(hideTimer);
		e.style.top = '-1000px';
		document.getElementById('hiddenDrops').style.height = '0px';
		isHiding = false;
	} else {
		var newTop = top - change;
		e.style.top = newTop + 'px';
	}
}

function show(id) {
	if(isHiding != true) {
		var e = document.getElementById(id);
		var top = parseInt(e.style.top.split("px")[0]);
		var height = e.offsetHeight;
		var change = 1;
		if(top < -5) {change = 2;}
		if(top < -10) {change = 3;}
		if(top < -20) {change = 4;}
		if(top < -30) {change = 5;}
		document.getElementById('hiddenDrops').style.height = height + 'px';
		if(top == '-1000'){
			var height = e.offsetHeight;
			e.style.top = (-height + change) + 'px'
		} else if(top > -change) {
			clearInterval(showTimer);
			e.style.top = '0px';
			if(id == 'searchdrop') {
				document.getElementById('search').focus();
			} else if(id == 'tafdrop') {
				document.getElementById('friendName').focus();
			}
		} else {
			var newTop = top + change;
			e.style.top = newTop + 'px';
		}
	}
}

function makePOSTRequest() {
	var http_request = null;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	return http_request;
}

function encodeDK(text){
	text = replaceAll(text,"æ","*ae*");
	text = replaceAll(text,"ø","*oe*");
	text = replaceAll(text,"å","*aa*");
	text = replaceAll(text,"Æ","*Ae*");
	text = replaceAll(text,"Ø","*Oe*");
	text = replaceAll(text,"Å","*Aa*");
	text = replaceAll(text,"&","*and*");
	text = encodeURI( text );
	return text
}

function replaceAll( str, from, to ) {
    var idx = str.indexOf( from );
    while ( idx > -1 ) {
        str = str.replace( from, to ); 
        idx = str.indexOf( from );
    }
    return str;
}

function tafResponse() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var response = http_request.responseXML.documentElement;
			var succes = response.getElementsByTagName('succes')[0].firstChild.nodeValue;
			var status = response.getElementsByTagName('message')[0].firstChild.nodeValue;
			var ul = response.getElementsByTagName('ul')[0].firstChild.nodeValue;
			document.getElementById('dropoverlay').style.display = 'none';
			document.getElementById('taffieldset').style.opacity = '1';
			document.getElementById('taffieldset').style.filter = 'alpha(opacity=100)';
			document.getElementById('tafh3').innerHTML = status;
			if (succes == 1) {
				document.getElementById('tafform').reset();
				setTimeout("hideTaf()", 3000);
			} else {
				var errors = response.getElementsByTagName('error');
				for (i = 0; i < errors.length; i++) {
					document.getElementById(errors[i].firstChild.nodeValue).style.borderColor='red';
				}
			}
			document.getElementById('tafbutton').disabled = false;
			document.getElementById('tafbutton').value = "Send";
		} else {
			alert("Der opstod en serverfejl, forsøg venligst igen.");
		}
	}
}
   
function tafValidate() {
	document.getElementById('tafh3').innerHTML = "Validerer data";
	var friendname = document.getElementById('friendName');
	var friendemail = document.getElementById('friendEmail');
	var myname = document.getElementById('myname');
	var myemail = document.getElementById('myemail');
	var url = document.getElementById('url').value;
	var status = '';
	friendname.style.borderColor='#cccccc';
	friendemail.style.borderColor='#cccccc';
	myname.style.borderColor='#cccccc';
	myemail.style.borderColor='#cccccc';
	if(friendname.value == ''){
		friendname.style.borderColor='red';
		status += '<li>Vens navn skal angives.</li>';
	}
	if(friendemail.value == ''){
		friendemail.style.borderColor='red';
		status += '<li>Vens e-mail skal angives.</li>';
	}
	if(myname.value == ''){
		myname.style.borderColor='red';
		status += '<li>Dit navn skal angives.</li>';
	}
	if(myemail.value == ''){
		myemail.style.borderColor='red';
		status += '<li>Din e-mail skal angives.</li>';
	}
	if(status != ''){
		document.getElementById('tafh3').innerHTML = "Fejl i formular";
	} else {
		document.getElementById('taffieldset').style.opacity = '0.5';
		document.getElementById('taffieldset').style.filter = 'alpha(opacity=50)';
		document.getElementById('dropoverlay').style.display = 'block';
		var poststr = "friendname=" + encodeDK( friendname.value ) + "&friendemail=" + encodeDK( friendemail.value ) +
		"&myname=" + encodeDK( myname.value ) + "&myemail=" + encodeDK( myemail.value ) + "&url=" + encodeDK( url );
		document.getElementById('tafbutton').disabled = true;
		document.getElementById('tafbutton').value = "Validerer og sender";
		http_request = makePOSTRequest();
		if(http_request != null) {
			http_request.open('POST', "ajaxTaf.php", true);
			http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			http_request.setRequestHeader("Content-length", poststr.length);
			http_request.setRequestHeader("Connection", "close");
			http_request.onreadystatechange = tafResponse;
			http_request.send(poststr);
		} else {
			alert("Der opstod en fejl, forsøg igen.");
		}
	}
	return false;
}