// 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 = ""; 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; }