/**************************************************************** ** Licensed Materials - Property of IBM ** ** IBM Cognos Products: drill ** ** (C) Copyright IBM Corp. 2001, 2010 ** ** US Government Users Restricted Rights - Use, duplication or ** disclosure restricted by GSA ADP Schedule Contract with ** IBM Corp. *****************************************************************/ function encode64(inp) { var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var output = ""; var chr1, chr2, chr3 = ""; var enc1, enc2, enc3, enc4 = ""; var i = 0; do { chr1 = inp.charCodeAt(i++); //1st byte. chr2 = inp.charCodeAt(i++); //2nd byte. chr3 = inp.charCodeAt(i++); //3rd byte. enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } // Store the 4 encoded bytes output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4); // clean up variables. chr1 = chr2 = chr3 = ""; enc1 = enc2 = enc3 = enc4 = ""; } while (i < inp.length); //return the encoded value. return output; }