function cleanWhitespace($node) {
	for(var $i = 0; $i < $node.childNodes.length; $i++) {
		var $childNode = $node.childNodes[$i];
		if($childNode.nodeType == 3 && /^[\s]*$/.test($childNode.nodeValue)) {
			$node.removeChild($node.childNodes[$i]);
			$i --;
		}
		if($childNode.nodeType == 1) {
			cleanWhitespace($childNode);
		}
	}
}

function encode($string) {
	var chars = [
		{search: "&",	replace: "&amp;"},
		{search: '"',	replace: "&quot;"},
		{search: "<",	replace: "&lt;"},
		{search: ">",	replace: "&gt;"}
	];
	for(var $i = 0; $i < chars.length; $i ++) {
		var $char = chars[$i];
		$string = $string.replace($char.search, $char.replace);
	}
	return $string;
}

function decode($string) {
	$string = $string.replace(/\+/g, " ");
    $string = unescape($string);
	return $string;
}