function getFrameContents(id_description_iframe) {
	var iFrame = document.getElementById(id_description_iframe);
	var iFrameBody;
	if (iFrame.contentDocument)
		iFrameBody = iFrame.contentDocument
	else if (iFrame.contentWindow)
		iFrameBody = iFrame.contentWindow.document
	return iFrameBody;
}
function str_replace(search, replace, subject, count) {
	var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0, f = [].concat(search), r = [].concat(replace), s = subject, ra = Object.prototype.toString.call(r) === '[object Array]', sa = Object.prototype.toString.call(s) === '[object Array]';
	s = [].concat(s);
	if (count)
		this.window[count] = 0;
	for (i = 0, sl = s.length; i < sl; i++) {
		if (s[i] === '')
			continue;
		for (j = 0, fl = f.length; j < fl; j++) {
			temp = s[i] + '';
			repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
			s[i] = (temp).split(f[j]).join(repl);
			if (count && s[i] !== temp)
				this.window[count] += (temp.length - s[i].length) / f[j].length;
		}
	}
	return sa ? s : s[0];
}
function rectime(secs) {
	var hr = Math.floor(secs / 3600);
	var min = Math.floor((secs - (hr * 3600)) / 60);
	var sec = Math.floor((secs - (hr * 3600) - (min * 60)));
	if (hr < 10)
		hr = "0" + hr;
	if (min < 10)
		min = "0" + min;
	if (sec < 10)
		sec = "0" + sec;
	if (hr)
		hr = "00";
	return hr + ':' + min + ':' + sec;
}
function in_array(needle, haystack, argStrict) {
	var key = '', strict = !!argStrict;
	if (strict) {
		for (key in haystack)
			if (haystack[key] === needle)
				return true;
	} else {
		for (key in haystack)
			if (haystack[key] == needle)
				return true;
	}
	return false;
}
function ucwords(str) {
	return str.replace(/^(.)|\s(.)/g, function($1) {
		return $1.toUpperCase()
	});
}
function strval(str) {
	var type = '';
	if (str === null)
		return '';
	type = this.gettype(str);
	switch (type) {
		case 'boolean':
			if (str === true)
				return '1';
			return '';
		case 'array':
			return 'Array';
		case 'object':
			return 'Object';
	}
	return str;
}
function gettype(mixed_var) {
	var s = typeof mixed_var, name;
	var getFuncName = function(fn) {
		var name = (/\W*function\s+([\w\$]+)\s*\(/).exec(fn);
		if (!name)
			return '(Anonymous)';
		return name[1];
	};
	if (s === 'object') {
		if (mixed_var !== null) {
			if (typeof mixed_var.length === 'number' && !(mixed_var.propertyIsEnumerable('length')) && typeof mixed_var.splice === 'function') {
				s = 'array';
			} else if (mixed_var.constructor && getFuncName(mixed_var.constructor)) {
				name = getFuncName(mixed_var.constructor);
				if (name === 'Date') {
					s = 'date';
				} else if (name === 'RegExp') {
					s = 'regexp';
				} else if (name === 'PHPJS_Resource') {
					s = 'resource';
				}
			}
		} else {
			s = 'null';
		}
	} else if (s === 'number') {
		s = this.is_float(mixed_var) ? 'double' : 'integer';
	}
	return s;
}
function strstr(haystack, needle, bool) {
	var pos = 0;
	haystack += '';
	pos = haystack.indexOf(needle);
	if (pos == -1)
		return false;
	else {
		if (bool)
			return haystack.substr(0, pos);
		else
			return haystack.slice(pos);
	}
}
function isset() {
	var a = arguments, l = a.length, i = 0, undef;
	if (l === 0)
		throw new Error('Empty isset');
	while (i !== l) {
		if (a[i] === undef || a[i] === null)
			return false;
		i++;
	}
	return true;
}
function strip_tags(input, allowed) {
	allowed = (((allowed || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('');
	var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi, commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
	return input.replace(commentsAndPhpTags, '').replace(tags, function($0, $1) {
		return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
	});
}
function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent)
		while (1) {
			curleft += obj.offsetLeft;
			if (!obj.offsetParent)
				break;
			obj = obj.offsetParent
		}
	else if (obj.x)
		curleft += obj.x;
	return curleft
}
function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent)
		while (1) {
			curtop += obj.offsetTop;
			if (!obj.offsetParent)
				break;
			obj = obj.offsetParent
		}
	else if (obj.y)
		curtop += obj.y;
	return curtop
}
function in_array(needle, haystack, argStrict) {
	var key = '', strict = !!argStrict;
	if (strict) {
		for (key in haystack)
			if (haystack[key] === needle)
				return true;
	} else {
		for (key in haystack)
			if (haystack[key] == needle)
				return true;
	}
	return false;
}
function isArray(o) {
	return (isObject(o) && (o.length) && (!isString(o)))
}
function boolval(strin) {
	if (in_array(strtolower(strin), [ 'true', 'yes', 'y', '1', 'on', true, 1 ]))
		return true;
	return false;
}
function strtolower(str) {
	return (str + '').toLowerCase();
}
function trim(str, charlist) {
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
function urlencode(url) {
	if (url) {
		var SAFECHARS = "0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "-_.!~*'()";
		var HEX = "0123456789ABCDEF";
		var plaintext = url;
		var encoded = "";
		for ( var i = 0; i < plaintext.length; i++) {
			var ch = plaintext.charAt(i);
			if (ch == " ") {
				encoded += "+"
			} else if (SAFECHARS.indexOf(ch) != -1) {
				encoded += ch
			} else {
				var charCode = ch.charCodeAt(0);
				if (charCode > 255) {
					alert("Unicode Character '" + ch + "' cannot be encoded using standard URL encoding.\n" + "(URL encoding only supports 8-bit characters.)\n" + "A space (+) will be substituted.");
					encoded += "+"
				} else {
					encoded += "%";
					encoded += HEX.charAt((charCode >> 4) & 0xF);
					encoded += HEX.charAt(charCode & 0xF)
				}
			}
		}
		return encoded
	}
}
function urldecode(url) {
	var HEXCHARS = "0123456789ABCDEFabcdef";
	var encoded = url;
	var plaintext = "";
	var i = 0;
	while (i < encoded.length) {
		var ch = encoded.charAt(i);
		if (ch == "+") {
			plaintext += " ";
			i++
		} else if (ch == "%") {
			if (i < (encoded.length - 2) && HEXCHARS.indexOf(encoded.charAt(i + 1)) != -1 && HEXCHARS.indexOf(encoded.charAt(i + 2)) != -1) {
				plaintext += unescape(encoded.substr(i, 3));
				i += 3
			} else {
				alert('Bad escape combination near ...' + encoded.substr(i));
				plaintext += "%[ERROR]";
				i++
			}
		} else {
			plaintext += ch;
			i++;
		}
	}
	return plaintext
}
function print_r(x, max, sep, l) {
	l = l || 0;
	max = max || 10;
	sep = sep || ' ';
	if (l > max)
		return "[WARNING: Too much recursion]\n";
	var i, r = '', t = typeof x, tab = '';
	if (x === null)
		r += "(null)\n";
	else if (t == 'object') {
		l++;
		for (i = 0; i < l; i++)
			tab += sep;
		if (x && x.length)
			t = 'array';
		r += '(' + t + ") :\n";
		for (i in x)
			try {
				r += tab + '[' + i + '] : ' + print_r(x[i], max, sep, (l + 1));
			} catch (e) {
				return "[ERROR: " + e + "]\n";
			}
	} else {
		if (t == 'string')
			if (x == '')
				x = '(empty)';
		r += '(' + t + ') ' + x + "\n";
	}
	return r;
};
// ------------------------------------------------------------------------------------------------
function readCookie(name) { // todo: uitfaseren
	alert('1 Function: ' + arguments.callee.name); // verwijderen
	var cookiename = name + "=";
	var ca = document.cookie.split(';');
	for ( var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ')
			c = c.substring(1, c.length);
		if (c.indexOf(cookiename) == 0)
			return c.substring(cookiename.length, c.length);
	}
	return null;
}
function djcms_popup(url, width, height) {
	alert('2 Function: ' + arguments.callee.name); // verwijderen
	window.open(url, "myWindow", "status = 0, height = " + height + ", width = " + width + ", resizable = 1, scrollbars=yes")
}
function defined(constant_name) {
	alert('3 Function: ' + arguments.callee.name); // verwijderen
	return (typeof window[constant_name] !== 'undefined')
}
function isObject(o) {
	alert('4 Function: ' + arguments.callee.name); // verwijderen
	return (typeof (o) == "object")
}
function isFunction(o) {
	alert('5 Function: ' + arguments.callee.name); // verwijderen
	return (typeof (o) == "function")
}
function isString(o) {
	alert('6 Function: ' + arguments.callee.name); // verwijderen
	return (typeof (o) == "string")
}
function ucfirst(str) {
	alert('7 Function: ' + arguments.callee.name); // verwijderen
	var f = str.charAt(0).toUpperCase();
	return f + str.substr(1, str.length - 1)
}
function evalRequest(url) {
	alert('8 Function: ' + arguments.callee.name); // verwijderen
	var xmlhttp = new XMLHttpRequest();
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
			eval(xmlhttp.responseText);
	};
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
}

