function ShowHide(obj){
	var objLabel;
	var objInfo;
	var realStyle;
	
	objLabel = obj.parentNode.parentNode;
	objInfo = getElementsByClass('DiscountInfo', 'div', objLabel.parentNode)[0];

	if (objInfo.currentStyle)
		// IE
		realStyle = objInfo.currentStyle.display;
	else if (window.getComputedStyle)
		// W3C
		realStyle = window.getComputedStyle(objInfo,null).display; 
	
	if (realStyle == "block"){
		objInfo.style.display = "none";
	} else {
		objInfo.style.display = "block";
	}
}

function OnlyNumbers(e){
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event) // IE
	  {
	  keynum = e.keyCode;
	  }
	else if(e.which) // Netscape/Firefox/Opera
	  {
	  keynum = e.which;
	  }
	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;
	
	if ((keynum==null) || (keynum==0) || (keynum==8) || (keynum==9) || (keynum==13) || (keynum==27) || (keynum == 37) ||  (keynum == 39)){
		return true;
	}
	else if(keynum >= 96 && keynum <= 105){
		return true;
	}
	else{
		return numcheck.test(keychar);
	}
}

function PhoneNumberCheck(e){
	var keynum;
	var keychar;
	var numcheck;
	var ValidValues = {'0': "",'8': "backspace",'9': "",'13': "enter",'27': "",'32': "space",'37': "<-",'39': "->",'43': "+",'45': "-"};
	
	if(window.event) // IE
	  {
	  keynum = e.keyCode;
	  }
	else if(e.which) // Netscape/Firefox/Opera
	  {
	  keynum = e.which;
	  }
	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;
	
	if ( keynum in ValidValues ){
		return true;
	}
	else if( keynum == null ){
		return true;
	}
	else{
		return numcheck.test(keychar);
	}
}
function DateCheck(e){
	var keynum;
	var keychar;
	var numcheck;
	var ValidValues = {'0': "",'8': "backspace",'9': "",'13': "enter",'27': "",'32': "space",'37': "<-",'39': "->",'45': "-"};
	
	if(window.event) // IE
	  {
	  keynum = e.keyCode;
	  }
	else if(e.which) // Netscape/Firefox/Opera
	  {
	  keynum = e.which;
	  }
	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;
	
	if ( keynum in ValidValues ){
		return true;
	}
	else if( keynum == null ){
		return true;
	}
	else{
		return numcheck.test(keychar);
	}
}

function SelectReason(intReason){
	var InputFields;
	var TextAreas;
	var ErrorFields;
	var arrStyle;
	var j;
	
	arrStyle = new Array();
	arrStyle[1] = 'none';
	arrStyle[2] = 'none';
	arrStyle[3] = 'none';
	
	if(intReason == 1){
		arrStyle[1] = 'block';
	}
	else if(intReason == 2){
		arrStyle[1] = 'block';
		arrStyle[3] = 'block';
	}
	else if(intReason == 3){
		arrStyle[1] = 'block';
		arrStyle[2] = 'block';
	}
	
	document.getElementById('UwHaard').style.display = arrStyle[1];
	if(arrStyle[1] == 'none'){
		InputFields = document.getElementById('UwHaard').getElementsByTagName('input');
		for (j=0;j<InputFields.length;j++){
			ClearInputField(InputFields[j]);
		}
		TextAreas = document.getElementById('UwHaard').getElementsByTagName('textarea');
		for (j=0;j<TextAreas.length;j++){
			ClearInputField(TextAreas[j]);
		}
		ErrorFields = getElementsByClass('FormQuestionError', 'td', document.getElementById('UwHaard'));
		for (j=0;j<ErrorFields.length;j++){
			ErrorFields[j].innerHTML = '';
		}
	}
	document.getElementById('Klacht').style.display = arrStyle[2];
	if(arrStyle[2] == 'none'){
		InputFields = document.getElementById('Klacht').getElementsByTagName('input');
		for (j=0;j<InputFields.length;j++){
			ClearInputField(InputFields[j]);
		}
		TextAreas = document.getElementById('Klacht').getElementsByTagName('textarea');
		for (j=0;j<TextAreas.length;j++){
			ClearInputField(TextAreas[j]);
		}
		ErrorFields = getElementsByClass('FormQuestionError', 'td', document.getElementById('Klacht'));
		for (j=0;j<ErrorFields.length;j++){
			ErrorFields[j].innerHTML = '';
		}
	}
	document.getElementById('Probleem').style.display = arrStyle[3];
	if(arrStyle[3] == 'none'){
		InputFields = document.getElementById('Probleem').getElementsByTagName('input');
		for (j=0;j<InputFields.length;j++){
			ClearInputField(InputFields[j]);
		}
		TextAreas = document.getElementById('Probleem').getElementsByTagName('textarea');
		for (j=0;j<TextAreas.length;j++){
			ClearInputField(TextAreas[j]);
		}
		
		ErrorFields = getElementsByClass('FormQuestionError', 'td', document.getElementById('Probleem'));
		for (j=0;j<ErrorFields.length;j++){
			ErrorFields[j].innerHTML = '';
		}
	}
	return true;
}

function ClearInputField(objField){
	var i;
	if(objField.type == 'radio'){
		objField.checked = false;
	}else{
		objField.value = '';
	}
}

if (!Array.prototype.push) Array.prototype.push = function() {
    for (var i=0; i<arguments.length; i++) this[this.length] = arguments[i];
    return this.length;
}

Array.prototype.find = function(value, start) {
    start = start || 0;
    for (var i=start; i<this.length; i++)
        if (this[i]==value)
            return i;
    return -1;
}

Array.prototype.has = function(value) {
    return this.find(value)!==-1;
}

// FUNCTIONAL

function map(list, func) {
    var result = [];
    func = func || function(v) {return v};
    for (var i=0; i < list.length; i++) result.push(func(list[i], i, list));
    return result;
}

function filter(list, func) {
    var result = [];
    func = func || function(v) {return v};
    map(list, function(v) { if (func(v)) result.push(v) } );
    return result;
}


// DOM

function getElem(elem) {
    if (document.getElementById) {
        if (typeof elem == "string") {
            elem = document.getElementById(elem);
            if (elem===null) throw 'cannot get element: element does not exist';
        } else if (typeof elem != "object") {
            throw 'cannot get element: invalid datatype';
        }
    } else throw 'cannot get element: unsupported DOM';
    return elem;
}

function hasClass(elem, className) {
    return getElem(elem).className.split(' ').has(className);
}

function getElementsByClass(className, tagName, parentNode) {
    parentNode = !isUndefined(parentNode)? getElem(parentNode) : document;
    if (isUndefined(tagName)) tagName = '*';
    return filter(parentNode.getElementsByTagName(tagName),
        function(elem) { return hasClass(elem, className) });
}


// DOM EVENTS

function listen(event, elem, func) {
    elem = getElem(elem);
    if (elem.addEventListener)  // W3C DOM
        elem.addEventListener(event,func,false);
    else if (elem.attachEvent)  // IE DOM
        elem.attachEvent('on'+event, function(){ func(new W3CDOM_Event(elem)) } );
        // for IE we use a wrapper function that passes in a simplified faux Event object.
    else throw 'cannot add event listener';
}

function mlisten(event, elem_list, func) {
    map(elem_list, function(elem) { listen(event, elem, func) } );
}

function W3CDOM_Event(currentTarget) {
    this.currentTarget  = currentTarget;
    this.preventDefault = function() { window.event.returnValue = false }
    return this;
}


// MISC CLEANING-AFTER-MICROSOFT STUFF

function isUndefined(v) {
    var undef;
    return v===undef;
}


