function packScript() {
	var encoding = "0";
	if ($("javascript_c10").checked) { encoding = "10"; }
	if ($("javascript_c62").checked) { encoding = "62"; }
	if ($("javascript_c95").checked) { encoding = "95"; }
	try { 
		$('javascript_output').value = pack($('javascript_input').value, encoding, $('javascript_fastdecode').checked, false);
		calculateRatio();
	} catch ($error) {
		alert($error);
	}
}

function decodeScript() {
	try {
		eval("$('javascript_output').value=String" + $('javascript_output').value.slice(4));
		calculateRatio();
	} catch ($error) { alert($error); }
}

function calculateRatio() {
	var ratio = ($('javascript_output').value.length / $('javascript_input').value.length) * 100;
	var ratioMsg = ""
	if(ratio > 100) { 
		ratio -= 100; 
		ratioMsg = "larger)";
	} else {
		ratio = 100 - ratio;
		ratioMsg = "smaller)";
	}
	ratio = ratio.toFixed(2);
	ratioMsg = "(" + ratio + "% " + ratioMsg;
	
	$('javascript_savings').innerHTML = "From " + $('javascript_input').value.length + " bytes to " + $('javascript_output').value.length + " bytes " + ratioMsg;
}