function joppaSleep(milliseconds) {	
	if (milliseconds > 0 && milliseconds < 21001) {
		var sleepNow = new Date();
		var exitTime = now.getTime() + milliseconds;
		while (true) {
			sleepNow = new Date();
			if (now.getTime() > exitTime)
				return;
		}
	}
} 

function joppaSelectRadio(radio_object, s_action){
    var value = null;

    if (!radio_object[s_action].checked){
        radio_object[s_action].checked = true;
    }
    return true;
}

function joppaOpenWindow(url, width, height) {
    info = open("", "zoek", "resizable=no, status=yes, scrollbars=yes, width=" + width + ", height=" + height);
    info.location.href = url;
    if (info.opener == null)
		info.opener = self;
}

function joppaConfirmDialog(url, msg) {
    response = confirm(msg, '');
    if (response == true) {
        document.location.href = url;
    }
}

function joppaFillSelectDate(formName, prefix, dayEmpty) {
	var form = document.forms[formName];
	if (form.elements[prefix + 'Day'] && form.elements[prefix + 'Year'].options != null) {
		var y = form.elements[prefix + 'Year'].options[form.elements[prefix + 'Year'].selectedIndex].value;
		var m = form.elements[prefix + 'Month'].options[form.elements[prefix + 'Month'].selectedIndex].value;

		if ( (m == 4) || (m == 6) || (m == 9) || (m == 11) ) {
			days = 30;
		} else if (m == 2) {
			if ((Math.floor(y/4) == (y/4)) && ((Math.floor(y/100) != (y/100)) || (Math.floor(y/400) == (y/400))) ) 
				days = 29;
			else
				days = 28;
		} else {
			days = 31;
		}

		var selectDays = form.elements[prefix + 'Day'].length;
		var offset = 0; 
		if (dayEmpty)
			offset++;
			
		if ((days + offset) > selectDays) {
			form.elements[prefix + 'Day'].length = days + offset;	
			for (i = selectDays; i < (days + offset); i++) {
				form.elements[prefix + 'Day'].options[i].text = i + 1 - offset; 
				form.elements[prefix + 'Day'].options[i].value = i + 1 - offset;
			}
		}
		if ((days + offset) < selectDays) {
			form.elements[prefix + 'Day'].length = days + offset;
			if (form.elements[prefix + 'Day'].selectedIndex == -1)
				form.elements[prefix + 'Day'].selectedIndex = days - 1;
		}
	}
}

function joppaToggleBlock(id) {
	var block = document.getElementById(id);
	if (block != null) {
		if (block.style.display == 'none' || block.style.display == '') {
			block.style.display = 'block';
		} else if (block.style.display != 'none') {
			block.style.display = 'none';
		}
	}
}

/**
 * Function : dump()
 * Arguments: The data - array,hash(associative array),object
 *    The level - OPTIONAL
 * Returns  : The textual representation of the array.
 * This function was inspired by the print_r function of PHP.
 * This will accept some data as the argument and return a
 * text that will be a more readable version of the
 *  array/hash/object that is given.
 */
function joppaDump(arr, level) {
	var dumped_text = "";
	if (!level) 
		level = 0;

	// The padding given at the beginning of the line.
	var level_padding = "";
	for (var j = 0; j < level+1; j++) 
		level_padding += "    ";

	if (typeof(arr) == 'object') { //Array/Hashes/Objects
 		for(var item in arr) {
  			var value = arr[item];

			if (typeof(value) == 'object') { // If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
//				dumped_text += joppaDump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>" + arr + "<===(" + typeof(arr) + ")";
	}
	return dumped_text;
} 

var joppaMenuHover = function() {
	var menuDiv = document.getElementById("menu");
	if (menuDiv != null) {
		var elements = menuDiv.getElementsByTagName("LI");
		for (var i = 0; i < elements.length; i++) {
			elements[i].onmouseover=function() {
				this.className += " joppaHover";
			}
			elements[i].onmouseout=function() {
				this.className = this.className.replace(new RegExp(" joppaHover\\b"), "");
			}
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", joppaMenuHover); 

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}