/**
 * 	Core java-script methods usefull in every project
 * 	@author Ephigenia M. Eichner
 */
 
/**
 *	Checks if the given var is empty in any kind of perspective
 *	@param mixed string
 *  @return boolean
 */
function isEmpty(string) {
	if (string == '') return true;
	if (string == undefined) return true;
	if (typeof(string) == 'number') return (string !== 0);
	return string.match(/^$/, string);
}

/**
 *	Url Escapes utf8 characters in a string and returns it
 *	@param string data
 *	@return string
 */
function escape_utf8(data) {
	if (data == '' || data == null) return '';
	data = data.toString();
	var buffer = '';
	var chars = '0123456789ABCDEF';
	for (var i = 0; i < data.length; i++) {
		var c = data.charCodeAt(i);
		var bs = new Array();
		if (c > 0x10000) {
			bs[0] = 0xF0 | ((c & 0x1C0000) >>> 18);
			bs[1] = 0x80 | ((c & 0x3F000) >>> 12);
			bs[2] = 0x80 | ((c & 0xFC0) >>> 6);
			bs[3] = 0x80 | (c & 0x3F);
		} else if (c > 0x800) {
			bs[0] = 0xE0 | ((c & 0xF000) >>> 12);
			bs[1] = 0x80 | ((c & 0xFC0) >>> 6);
			bs[2] = 0x80 | (c & 0x3F);
		} else if (c > 0x80) {
			bs[0] = 0xC0 | ((c & 0x7C0) >>> 6);
			bs[1] = 0x80 | (c & 0x3f);
		} else {
			bs[0] = c;
		}
		if (bs.length > 1) {
			for (var j = 0; j < bs.length; j++) {
				var b = bs[j];
				var hex = chars.charAt((b & 0xF0) >>> 4) + chars.charAt(b & 0x0F);
				buffer += '%' + hex;
			}
		} else {
			buffer += data.charAt(i);
		}
	}
	return buffer;
}