window.onload = attachEvents;

function attachEvents() {
   document.getElementById("convertButton").onclick = convert;
}

function convert() {
	var inp = document.getElementById("input").value;
	var inpLength = inp.length;
	var outp = '"';
	for (idx = 0; idx < inpLength; idx++) {
		outp = outp + convertChar(inp.charCodeAt(idx));
	}
	document.getElementById("output").value = outp + '"';
}

function convertChar(chr) {
	switch (chr) {
		case 8:
			chr = "\\b"; // BackSpace
		break;
		case 9:
			chr = "\\t"; // Horizontal Tab
		break;
		case 10:
			chr = "\\n"; // LineFeed
		break;
		case 12:
			chr = "\\f"; // Form Feed
		break;
		case 13:
			chr = "\\r"; // Carriage Return
		break;
		case 34:
			chr = '\\"'; // Double Quote
		break;
		case 92:
			chr = "\\\\";// Backslash
		break;
		default:
			if (chr < 32 || chr > 126) {
				chr = "\\u"
					+ hexify(chr >> 12)
					+ hexify(chr >> 8)
					+ hexify(chr >> 4)
					+ hexify(chr);
			} else {
				chr = String.fromCharCode(chr);
			}
	}
	return chr;
}

function hexify(chr) {
	return "0123456789ABCDEF".charAt(chr & 15);
}