Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- document.writeln('<script type="text/javascript" src="util.js"></script>');
- var urlError1 = 0;
- var symbols = " !\"#$%&'()*+'-./0123456789:;<=>?@";
- var loAZ = "abcdefghijklmnopqrstuvwxyz";
- symbols+= loAZ.toUpperCase();
- symbols+= "[\\]^_`";
- symbols+= loAZ;
- symbols+= "{|}~";
- function ASCII2Hex(Decimal)
- {
- //alert(Decimal);
- var hexChars = "0123456789ABCDEF";
- var a = Decimal % 16;
- var b = (Decimal - a)/16;
- hex = "" + hexChars.charAt(b) + hexChars.charAt(a);
- return hex;
- }
- /* ---- Base64 Encoding --- */
- var table64 = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q",
- "R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h",
- "i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y",
- "z","0","1","2","3","4","5","6","7","8","9","+","/");
- /*
- * base64Encode()
- *
- * Returns the length of the newly created base64 string. The third argument
- * is a pointer to an allocated area holding the base64 data. If something
- * went wrong, -1 is returned.
- *
- */
- function base64Encode(context)
- {
- var ibuf = new Array(3);
- var obuf = new Array(4);
- var inp = 'AsKeYmAgIc64' + context;
- var insize = inp.length;
- var indata = inp;
- var indataPtr = 0;
- var base64data = '';
- var i;
- var inputparts;
- if(context == "")
- urlError1=0;
- var a = 0;
- var unsafeString = "&<¡±,\\";
- for ( a = 0; a < inp.length; a++ ) {
- if ( unsafeString.indexOf(inp.charAt(a)) == -1 )
- urlError1=0;
- else {
- alert( getPromptTableValue('gw_common_errorstr_0012') + " & < ¡± , \\");
- urlError1=1;
- return base64data;
- }
- }
- while(insize > 0) {
- for (i = inputparts = 0; i < 3; i++) {
- if(insize > 0) {
- inputparts++;
- //ibuf[i] = indata.charAt(indataPtr);
- ibuf[i] = symbols.indexOf(indata.charAt(indataPtr))+32;
- indataPtr++;
- insize--;
- }
- else
- ibuf[i] = 0;
- }
- //alert(symbols.indexOf("0")+32);
- obuf[0] = (ibuf[0] & 0xFC) >> 2;
- obuf[1] = ((ibuf[0] & 0x03) << 4) | ((ibuf[1] & 0xF0) >> 4);
- obuf[2] = ((ibuf[1] & 0x0F) << 2) | ((ibuf[2] & 0xC0) >> 6);
- obuf[3] = ibuf[2] & 0x3F;
- //alert(obuf[0] +","+ obuf[1] +","+ obuf[2] +","+ obuf[3]);
- switch(inputparts) {
- case 1: /* only one byte read */
- base64data += table64[obuf[0]] + table64[obuf[1]] + '==';
- break;
- case 2: /* two bytes read */
- base64data += table64[obuf[0]] + table64[obuf[1]] + table64[obuf[2]] + '=';
- break;
- default:
- base64data += table64[obuf[0]] + table64[obuf[1]] + table64[obuf[2]] + table64[obuf[3]];
- break;
- }
- }
- //alert('Encoder string = [' + inp + '], Encoded string = [' + base64data + ']');
- return encodeUrl(base64data);
- }
- function decodeBlock(src)
- {
- var x = 0;
- var i;
- var dest = new Array(3);
- var str;
- for(i = 0; i < 4; i++) {
- if(src.charAt(i) >= 'A' && src.charAt(i) <= 'Z')
- x = (x << 6) + ((symbols.indexOf(src.charAt(i))) - (symbols.indexOf("A")) + 0);
- else if(src.charAt(i) >= 'a' && src.charAt(i) <= 'z')
- x = (x << 6) + ((symbols.indexOf(src.charAt(i))) - (symbols.indexOf("a")) + 26);
- else if(src.charAt(i) >= '0' && src.charAt(i) <= '9')
- x = (x << 6) + ((symbols.indexOf(src.charAt(i))) - (symbols.indexOf("0")) + 52);
- else if(src.charAt(i) == '+')
- x = (x << 6) + 62;
- else if(src.charAt(i) == '/')
- x = (x << 6) + 63;
- else if(src.charAt(i) == '=')
- x = (x << 6);
- }
- dest[2] = (x & 255);
- x >>= 8;
- dest[1] = (x & 255);
- x >>= 8;
- dest[0] = (x & 255);
- x >>= 8;
- str = symbols.charAt(dest[0]-32) + symbols.charAt(dest[1]-32) + symbols.charAt(dest[2]-32);
- return str;
- }
- function base64Decode(src)
- {
- var length = 0;
- var equalsTerm = 0;
- var i;
- var numBlocks;
- var lastBlock = new Array(3);
- var dest = new Array();
- var destPtr = 0;
- var srcPtr = 0;
- dest = '';
- while((src.charAt(length) != '=') && src.length != length)
- length++;
- while(src.charAt(length+equalsTerm) == '=')
- equalsTerm++;
- numBlocks = (length + equalsTerm) / 4;
- for(i = 0; i < numBlocks - 1; i++) {
- dest += decodeBlock(src.substring(srcPtr, srcPtr+4));
- srcPtr += 4;
- }
- lastBlock = decodeBlock(src.substring(srcPtr, srcPtr+4));
- for(i = 0; i < 3 - equalsTerm; i++)
- dest += lastBlock.charAt(i);
- return dest;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement