function removeEl(selection){
	selection.parentNode.removeChild(selection);
}

function nl2br(text){
	var strSingleLineText = text.replace(new RegExp( "\\n", "g" ), "<br>");
	return strSingleLineText;
}

function ajaxObject(url, callbackFunction) {
	var that=this;
	this.updating = false;
	this.abort = function() {
		if (that.updating) {
			that.updating=false;
			that.AJAX.abort();
			that.AJAX=null;
		}
	}
	this.update = function(passData,postMethod) {
		if (that.updating) { return false; }
		that.AJAX = null;
		if (window.XMLHttpRequest) {
			that.AJAX=new XMLHttpRequest();
		} else {
			that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
		}
		if (that.AJAX==null) {
			return false;
		} else {
			that.AJAX.onreadystatechange = function() {
				if (that.AJAX.readyState==4) {
					that.updating=false;
					that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);
					that.AJAX=null;
				}
			}
			that.updating = new Date();
			if (/post/i.test(postMethod)) {
				var uri=urlCall+'?'+that.updating.getTime();
				that.AJAX.open("POST", uri, true);
				that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				that.AJAX.setRequestHeader("Content-Length", passData.length);
				that.AJAX.send(passData);
			} else {
				var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime());
				that.AJAX.open("GET", uri, true);
				that.AJAX.send(null);
			}
			return true;
		}
	}
	var urlCall = url;
	this.callback = callbackFunction || function () { };
}

function getElementsByClassName(className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

function goTo(page) {
	window.location=page;
}

function toggle(id){
	if (document.getElementById){
		var el = document.getElementById(id);
		el.style.display = (el.style.display == 'block') ? 'none' : 'block';
	}
}

var contentsResponse = '';
function fetchData(dataSource) {
	var XMLHttpRequestObject = false;
	if (window.XMLHttpRequest) {XMLHttpRequestObject = new XMLHttpRequest();}
	else if (window.ActiveXObject) {XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");}
	else if (window.ActiveXObject) {XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");}

	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", dataSource);
		XMLHttpRequestObject.onreadystatechange = function() {
			if (XMLHttpRequestObject.readyState == 4 &&	XMLHttpRequestObject.status == 200) {
				contentsResponse = XMLHttpRequestObject.responseText;
			}
		}
		XMLHttpRequestObject.send(null);
	}
	return true;
}

function getData(dataSource, divID) {
	var XMLHttpRequestObject = false;
	if (window.XMLHttpRequest) {XMLHttpRequestObject = new XMLHttpRequest();}
	else if (window.ActiveXObject) {XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");}
	else if (window.ActiveXObject) {XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");}

	if(XMLHttpRequestObject) {
		var obj = document.getElementById(divID);
		XMLHttpRequestObject.open("GET", dataSource);
		XMLHttpRequestObject.onreadystatechange = function() {
			if (XMLHttpRequestObject.readyState == 4 &&	XMLHttpRequestObject.status == 200) {
				obj.innerHTML = XMLHttpRequestObject.responseText;
			}
		}
		XMLHttpRequestObject.send(null);
	}
}

function appendElement(node, tag, id, html) {
	var ne = document.createElement(tag);
	if (id) {ne.id = id};
	if (html) {ne.innerHTML = html};

	document.getElementById(node).appendChild(ne);
}
function appendData(dataSource, divID, append, id) {
	var XMLHttpRequestObject = false;
	if (window.XMLHttpRequest) {XMLHttpRequestObject = new XMLHttpRequest();}
	else if (window.ActiveXObject) {XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");}
	else if (window.ActiveXObject) {XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");}

	if(XMLHttpRequestObject) {
		var obj = document.getElementById(divID);
		XMLHttpRequestObject.open("GET", dataSource);
		XMLHttpRequestObject.onreadystatechange = function() {
			if (XMLHttpRequestObject.readyState == 4 &&	XMLHttpRequestObject.status == 200) {
				if (append.length == 0) {obj.innerHTML = XMLHttpRequestObject.responseText;}
				else {appendElement(divID, 'div', id, XMLHttpRequestObject.responseText);}
			}
		}
		XMLHttpRequestObject.send(null);
	}
}

function makePostRequest(url, parameters, div) {
	var XMLHttpRequestObject = false;
	if (window.XMLHttpRequest) {XMLHttpRequestObject = new XMLHttpRequest();}
	else if (window.ActiveXObject) {XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");}
	else if (window.ActiveXObject) {XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");}

	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.onreadystatechange = function() {
			if (XMLHttpRequestObject.readyState == 4) {
				if (XMLHttpRequestObject.status == 200) {
					//alert(XMLHttpRequestObject.responseText);
					result = XMLHttpRequestObject.responseText;
					document.getElementById(div).innerHTML = result;
				}
				else {alert('There was a problem with the request.');}
			}
		}
		XMLHttpRequestObject.open('POST', url, true);
		XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		XMLHttpRequestObject.setRequestHeader("Content-length", parameters.length);
		XMLHttpRequestObject.setRequestHeader("Connection", "close");
		XMLHttpRequestObject.send(parameters);
	}
	else {
		alert('There was an error while creating the AJAX Object!');
		return false;
	}
}

function sendPost(form_id, phpfile, fields, div) {
	//javascript:get(document.getElementById('???')); Use this as the action for your form to make it work.
	var field_array = fields.split(",");
	var poststr = "";

	for ( var temp in field_array )	{
		var val = field_array[temp];
		var object1 = document.getElementById(val);
		var content = object1.value;
		poststr = poststr + val + "=" + encodeURI(content);
	}
	makePostRequest(phpfile, poststr, div);
}
function disableEnterKey(e) {
	var key;
	if(window.event) {key = window.event.keyCode;} //IE
	else {key = e.which;} //firefox

	if(key == 13) {return false;}
	else {return true;}
}
function goodchars(e, goods) {
	var key, keychar;
	key = getkey(e);

	if(key == null) {return true;}
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	goods = goods.toLowerCase();
	if(goods.indexOf(keychar) != -1) {return true;}
	if(key==null || key==0 || key==8 || key==9 || key==13 || key==27 ) {
		return true;
	}
	else {
		return false;
	}
}

function formCheck(formobj,fieldRequired,fieldDescription){
	var alertMsg = "De volgende velden zijn verplicht en zijn niet ingevuld:\n\n";
	var l_Msg = alertMsg.length;
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}
	if (alertMsg.length == l_Msg){return true;}
	else{alert(alertMsg); return false;}
}

function highlightMandatory(formobj, fieldsRequired) {
	for (var i = 0; i < fieldsRequired.length; i++){
		var obj = document.getElementById(formobj).elements[fieldsRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
			case "select-multiple":
			case "text":
			case "textarea":
				obj.style.border="1px solid orange";
				break;
			}
		}
	}
}

ballow = true; // true is for whitelist, false is for blacklist
function limitinput(evt, strList, ballow) {
	var charCode = evt.keyCode;
	if (charCode==0) {
		charCode = evt.which;
	}
	var strChar = String.fromCharCode(charCode);
	var controlArray = Array(0, 8, 9, 10, 13, 27);
	var intOut = 0;
	if (ballow==true) {
		if (charCode==8 || charCode==9 || charCode==37 || charCode==39 || charCode==46 || charCode==116 || (strList.indexOf(strChar)!=-1)) {
			return true;
		}
		else {
			return false;
		}
	}
	else {
		if (charCode==8 || charCode==9 || charCode==37 || charCode==39 || charCode==46 || charCode==116 || (strList.indexOf(strChar)==-1)) {
		return true;
	}
	else {
		return false;
		}
	}
}

$(document).ready(function() {
	$("a.group").fancybox({
		'speedIn'		:	600,
		'speedOut'		:	200,
		'overlayShow'	:	false,
		'hideOnContentClick': true
	});

	$("a.imggroup").fancybox({
		'speedIn'		:	600,
		'speedOut'		:	200,
		'overlayShow'	:	false,
		'hideOnContentClick': true
	});

	// News hover function
	var selectedNews = 0;
	$("#newsheaders a").hover(
		function () {
			$("#newsheaders a").each(function() {
				$(this).removeClass("selected");
			});

			var idExp = $(this).attr('id').split("_");
			$(this).addClass("selected");
			if ($('#newsitem'+idExp[1]).css('display') != "block") {
				$('.newsitem').hide();
				$('#newsitem'+idExp[1]).fadeIn('1', function() {});
			}
			selectedNews = idExp[1];
		},
		function () {
			var idExp = $(this).attr('id').split("_");

			if ($('#newsitem'+idExp[1]).css('display') != "block") {
				$(this).addClass("selected");
			}
		}
	);
});