function utf8_encode(text) {
text = text.replace(/\r\n/g,"\n");
var utftext = "";
for(var n = 0; n < text.length; n++) {
var c = text.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c>127) && (c<2048)) {
utftext += String.fromCharCode((c>>6) | 192);
utftext += String.fromCharCode((c&63) | 128);
}
else {
utftext += String.fromCharCode((c>>12) | 224);
utftext += String.fromCharCode(((c>>6)&63) | 128);
utftext += String.fromCharCode((c&63) | 128);
}
}
return utftext;
}
function utf8_decode(utftext) {
var plaintext = "";
var i = 0;
var c = 0;
var c1 = 0;
var c2 = 0;
while(i < utftext.length) {
c = utftext.charCodeAt(i);
if (c<128) {
plaintext += String.fromCharCode(c); i++;
}
else if((c>191) && (c<224)) {
c2 = utftext.charCodeAt(i+1);
plaintext += String.fromCharCode(((c&31)<<6) | (c2&63));
i+=2;
}
else {
c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2);
plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63));
i+=3;
}
}
return plaintext;
}
// Wed Jul 28 18:06:30 2010