123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- // Licensed Materials - Property of IBM
- //
- // IBM Cognos Products: pps
- //
- // (C) Copyright IBM Corp. 2005, 2017
- //
- // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- // Encoding Utilities
- function CEncodingUtil() {};
- CEncodingUtil.HtmlEncode = function(str)
- {
- var encodedStr = "";
- for (var i = 0; i < str.length; i++) {
- switch(str.charAt(i))
- {
- case '<':
- encodedStr += "<";
- break;
- case '>':
- encodedStr += ">";
- break;
- case '&':
- encodedStr += "&";
- break;
- case '"':
- encodedStr += """;
- break;
- case '\'':
- encodedStr += "'";
- break;
- default:
- encodedStr += str.charAt(i);
- break;
- }
- }
- return encodedStr;
- }
- CEncodingUtil.JavascriptEncode = function( str ){
- var encodedStr="";
- for (var i = 0; i < str.length; i++) {
- switch(str.charAt(i))
- {
- case '\'':
- encodedStr += "\\\'";
- break;
- case '"':
- encodedStr += "\\\"";
- break;
- case '\\':
- encodedStr += "\\\\";
- break;
- default:
- encodedStr += str.charAt(i);
- break;
- }
- }
- return encodedStr;
- }
- CEncodingUtil.UrlEncode = function( str ) {
-
- var encodedStr = escape(str);
- encodedStr = encodedStr.replace(/\+/g, "%2b");
-
- return encodedStr;
- }
- CEncodingUtil.EncodeStrOperand = function( str ) {
- var encodedStr = str.replace(/\t/g, "\\t");
- encodedStr = encodedStr.replace(/\"/g, "\\042");
- return encodedStr;
- }
- CEncodingUtil.EscapeQuote = function( str ){
- var encodedStr = "";
- for (var i = 0; i < str.length; i++) {
- switch(str.charAt(i))
- {
- case '"':
- encodedStr += """;
- break;
- default:
- encodedStr += str.charAt(i);
- break;
- }
- }
- return encodedStr;
- }
- //Xalan escapes extended characters that are sometime not unescaped by browser.
- //This function provides a workaround to force browser to unescape the str.
- CEncodingUtil.ForceUnescape = function( str ){
- var sUnescape = "<INPUT value=\"" + CEncodingUtil.ReplaceQuoteAndSpace(str, 0) + "\"/>";
- var p = document.createElement("P");
- p.innerHTML = sUnescape;
- sUnescape = CEncodingUtil.ReplaceQuoteAndSpace(p.childNodes[0].value, 1);
- return sUnescape;
- }
- //opt: 0 - encode quote and space; 1 - decode quote and space
- CEncodingUtil.ReplaceQuoteAndSpace = function( str, opt ){
- var sResult, quotPattern, quotReplace, spacePattern, spaceReplace;
-
- if(opt == 0)
- {
- quotPattern = RegExp("\"", "g");
- quotReplace = "_quot_holder";
- spacePattern = RegExp(" ", "g");
- spaceReplace = "_space_holder";
- }
- else
- {
- quotPattern = RegExp("_quot_holder", "g");
- quotReplace = "\"";
- spacePattern = RegExp("_space_holder", "g");
- spaceReplace = " ";
- }
-
- sResult = str.replace(quotPattern, quotReplace);
- sResult = sResult.replace(spacePattern, spaceReplace);
-
- return sResult;
- }
|