Bug #25350 » 17979.patch
typo3_src-4.4.7/typo3/jsfunc.tbe_editor.js 2011-03-17 13:02:29.000000000 +0100 | ||
---|---|---|
* @coauthor Oliver Hader <oh@inpublica.de>
|
||
*/
|
||
/**
|
||
*
|
||
* URL encode / decode
|
||
* http://www.webtoolkit.info/
|
||
*
|
||
**/
|
||
|
||
var Url = {
|
||
|
||
// public method for url encoding
|
||
encode : function (string) {
|
||
return escape(this._utf8_encode(string));
|
||
},
|
||
|
||
// public method for url decoding
|
||
decode : function (string) {
|
||
return this._utf8_decode(unescape(string));
|
||
},
|
||
|
||
// private method for UTF-8 encoding
|
||
_utf8_encode : function (string) {
|
||
string = string.replace(/\r\n/g,"\n");
|
||
var utftext = "";
|
||
|
||
for (var n = 0; n < string.length; n++) {
|
||
|
||
var c = string.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;
|
||
},
|
||
|
||
// private method for UTF-8 decoding
|
||
_utf8_decode : function (utftext) {
|
||
var string = "";
|
||
var i = 0;
|
||
var c = c1 = c2 = 0;
|
||
|
||
while ( i < utftext.length ) {
|
||
|
||
c = utftext.charCodeAt(i);
|
||
|
||
if (c < 128) {
|
||
string += String.fromCharCode(c);
|
||
i++;
|
||
}
|
||
else if((c > 191) && (c < 224)) {
|
||
c2 = utftext.charCodeAt(i+1);
|
||
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
|
||
i += 2;
|
||
}
|
||
else {
|
||
c2 = utftext.charCodeAt(i+1);
|
||
c3 = utftext.charCodeAt(i+2);
|
||
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
|
||
i += 3;
|
||
}
|
||
|
||
}
|
||
|
||
return string;
|
||
}
|
||
}
|
||
var TBE_EDITOR = {
|
||
/* Example:
|
||
... | ... | |
rawurlencode: function(str,maxlen) {
|
||
var output = str;
|
||
if (maxlen) output = output.substr(0,200);
|
||
output = escape(output);
|
||
output = Url.encode(output);
|
||
output = TBE_EDITOR.str_replace("*","%2A", output);
|
||
output = TBE_EDITOR.str_replace("+","%2B", output);
|
||
output = TBE_EDITOR.str_replace("/","%2F", output);
|