Java script with BIRTviewer in Jboss can not work
I 've javascript with use in Birt for decode base64 <br />
<br />
If deploy birtviewer on Windows plattform run so OK can work with base64<br />
<br />
<strong class='bbc'>But If I've deploy birtviewer on Jboss 5.1 can not work </strong><br />
<br />
what wrong with it in js ?<br />
<br />
what different run between windows or Jboss.<br />
<br />
Pls suggest me.<br />
<br />
<br />
(base64.js)<br />
var END_OF_INPUT = -1;<br />
var base64Str;<br />
var base64Count;<br />
<br />
function urlDecode(str){<br />
str=str.replace(new RegExp('\\+','g'),' ');<br />
return unescape(str);<br />
}<br />
function urlEncode(str){<br />
str=escape(str);<br />
str=str.replace(new RegExp('\\+','g'),'%2B');<br />
return str.replace(new RegExp('%20','g'),'+');<br />
}<br />
<br />
var base64Chars = new Array(<br />
'A','B','C','D','E','F','G','H',<br />
'I','J','K','L','M','N','O','P',<br />
'Q','R','S','T','U','V','W','X',<br />
'Y','Z','a','b','c','d','e','f',<br />
'g','h','i','j','k','l','m','n',<br />
'o','p','q','r','s','t','u','v',<br />
'w','x','y','z','0','1','2','3',<br />
'4','5','6','7','8','9','+','/'<br />
);<br />
<br />
var reverseBase64Chars = new Array();<br />
for (var i=0; i < base64Chars.length; i++){<br />
reverseBase64Chars[base64Chars] = i;<br />
}<br />
function setBase64Str(str){<br />
base64Str = str;<br />
base64Count = 0;<br />
}<br />
function readBase64(){ <br />
if (!base64Str) return END_OF_INPUT;<br />
if (base64Count >= base64Str.length) return END_OF_INPUT;<br />
var c = base64Str.charCodeAt(base64Count) & 0xff;<br />
base64Count++;<br />
return c;<br />
}<br />
function encodeBase64(str){<br />
setBase64Str(str);<br />
var result = '';<br />
var inBuffer = new Array(3);<br />
var lineCount = 0;<br />
var done = false;<br />
while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){<br />
inBuffer[1] = readBase64();<br />
inBuffer[2] = readBase64();<br />
result += (base64Chars[ inBuffer[0] >> 2 ]);<br />
if (inBuffer[1] != END_OF_INPUT){<br />
result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);<br />
if (inBuffer[2] != END_OF_INPUT){<br />
result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);<br />
result += (base64Chars [inBuffer[2] & 0x3F]);<br />
} else {<br />
result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);<br />
result += ('=');<br />
done = true;<br />
}<br />
} else {<br />
result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);<br />
result += ('=');<br />
result += ('=');<br />
done = true;<br />
}<br />
lineCount += 4;<br />
if (lineCount >= 76){<br />
result += ('\n');<br />
lineCount = 0;<br />
}<br />
}<br />
return result;<br />
}<br />
function readReverseBase64(){ <br />
if (!base64Str) return END_OF_INPUT;<br />
while (true){ <br />
if (base64Count >= base64Str.length) return END_OF_INPUT;<br />
var nextCharacter = base64Str.charAt(base64Count);<br />
base64Count++;<br />
if (reverseBase64Chars[nextCharacter]){<br />
return reverseBase64Chars[nextCharacter];<br />
}<br />
if (nextCharacter == 'A') return 0;<br />
}<br />
return END_OF_INPUT;<br />
}<br />
<br />
function ntos(n){<br />
n=n.toString(16);<br />
if (n.length == 1) n="0"+n;<br />
n="%"+n;<br />
return unescape(n);<br />
}<br />
<br />
function decodeBase64(str){<br />
setBase64Str(str);<br />
var result = "";<br />
var inBuffer = new Array(4);<br />
var done = false;<br />
while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT<br />
&& (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){<br />
inBuffer[2] = readReverseBase64();<br />
inBuffer[3] = readReverseBase64();<br />
result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));<br />
if (inBuffer[2] != END_OF_INPUT){<br />
result += ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));<br />
if (inBuffer[3] != END_OF_INPUT){<br />
result += ntos((((inBuffer[2] << 6) & 0xff) | inBuffer[3]));<br />
} else {<br />
done = true;<br />
}<br />
} else {<br />
done = true;<br />
}<br />
}<br />
return result;<br />
}<br />
<br />
var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');<br />
function toHex(n){<br />
var result = '';<br />
var start = true;<br />
for (var i=32; i>0;){<br />
i-=4;<br />
var digit = (n>>i) & 0xf;<br />
if (!start || digit != 0){<br />
start = false;<br />
result += digitArray[digit];<br />
}<br />
}<br />
return (result==''?'0':result);<br />
}<br />
<br />
function pad(str, len, pad){<br />
var result = str;<br />
for (var i=str.length; i<len; i++){<br />
result = pad + result;<br />
}<br />
return result;<br />
}<br />
<br />
function encodeHex(str){<br />
var result = "";<br />
for (var i=0; i<str.length; i++){<br />
result += pad(toHex(str.charCodeAt(i)&0xff),2,'0');<br />
}<br />
return result;<br />
}<br />
<br />
var hexv = {<br />
"00":0,"01":1,"02":2,"03":3,"04":4,"05":5,"06":6,"07":7,"08":8,"09":9,"0A":10,"0B":11,"0C":12,"0D":13,"0E":14,"0F":15,<br />
"10":16,"11":17,"12":18,"13":19,"14":20,"15":21,"16":22,"17":23,"18":24,"19":25,"1A":26,"1B":27,"1C":28,"1D":29,"1E":30,"1F":31,<br />
"20":32,"21":33,"22":34,"23":35,"24":36,"25":37,"26":38,"27":39,"28":40,"29":41,"2A":42,"2B":43,"2C":44,"2D":45,"2E":46,"2F":47,<br />
"30":48,"31":49,"32":50,"33":51,"34":52,"35":53,"36":54,"37":55,"38":56,"39":57,"3A":58,"3B":59,"3C":60,"3D":61,"3E":62,"3F":63,<br />
"40":64,"41":65,"42":66,"43":67,"44":68,"45":69,"46":70,"47":71,"48":72,"49":73,"4A":74,"4B":75,"4C":76,"4D":77,"4E":78,"4F":79,<br />
"50":80,"51":81,"52":82,"53":83,"54":84,"55":85,"56":86,"57":87,"58":88,"59":89,"5A":90,"5B":91,"5C":92,"5D":93,"5E":94,"5F":95,<br />
"60":96,"61":97,"62":98,"63":99,"64":100,"65":101,"66":102,"67":103,"68":104,"69":105,"6A":106,"6B":107,"6C":108,"6D":109,"6E":110,"6F":111,<br />
"70":112,"71":113,"72":114,"73":115,"74":116,"75":117,"76":118,"77":119,"78":120,"79":121,"7A":122,"7B":123,"7C":124,"7D":125,"7E":126,"7F":127,<br />
"80":128,"81":129,"82":130,"83":131,"84":132,"85":133,"86":134,"87":135,"88":136,"89":137,"8A":138,"8B":139,"8C":140,"8D":141,"8E":142,"8F":143,<br />
"90":144,"91":145,"92":146,"93":147,"94":148,"95":149,"96":150,"97":151,"98":152,"99":153,"9A":154,"9B":155,"9C":156,"9D":157,"9E":158,"9F":159,<br />
"A0":160,"A1":161,"A2":162,"A3":163,"A4":164,"A5":165,"A6":166,"A7":167,"A8":168,"A9":169,"AA":170,"AB":171,"AC":172,"AD":173,"AE":174,"AF":175,<br />
"B0":176,"B1":177,"B2":178,"B3":179,"B4":180,"B5":181,"B6":182,"B7":183,"B8":184,"B9":185,"BA":186,"BB":187,"BC":188,"BD":189,"BE":190,"BF":191,<br />
"C0":192,"C1":193,"C2":194,"C3":195,"C4":196,"C5":197,"C6":198,"C7":199,"C8":200,"C9":201,"CA":202,"CB":203,"CC":204,"CD":205,"CE":206,"CF":207,<br />
"D0":208,"D1":209,"D2":210,"D3":211,"D4":212,"D5":213,"D6":214,"D7":215,"D8":216,"D9":217,"DA":218,"DB":219,"DC":220,"DD":221,"DE":222,"DF":223,<br />
"E0":224,"E1":225,"E2":226,"E3":227,"E4":228,"E5":229,"E6":230,"E7":231,"E8":232,"E9":233,"EA":234,"EB":235,"EC":236,"ED":237,"EE":238,"EF":239,<br />
"F0":240,"F1":241,"F2":242,"F3":243,"F4":244,"F5":245,"F6":246,"F7":247,"F8":248,"F9":249,"FA":250,"FB":251,"FC":252,"FD":253,"FE":254,"FF":255<br />
};<br />
<br />
function decodeHex(str){<br />
str = str.toUpperCase().replace(new RegExp("s/[^0-9A-Z]//g"));<br />
var result = "";<br />
var nextchar = "";<br />
for (var i=0; i<str.length; i++){<br />
nextchar += str.charAt(i);<br />
if (nextchar.length == 2){<br />
result += ntos(hexv[nextchar]);<br />
nextchar = "";<br />
}<br />
}<br />
return result;<br />
<br />
}<br />
<br />
function RemoveFilter(strTemp) { <br />
//strTemp = strTemp.replace(/\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-/g,"/"); <br />
strTemp = strTemp.replace(/Z/g,"\%u"); <br />
return strTemp;<br />
} <br />
<br />
function addBlank(strTemp) { <br />
strTemp = strTemp.replace(/\%u/g," "); <br />
return strTemp;<br />
}<br />
<br />
function urlDecodeZian(str){<br />
var result = str;<br />
if(result != ""){<br />
result = RemoveFilter(result);<br />
result = urlDecode(result);<br />
result = addBlank(result);<br />
}<br />
return result;<br />
}<br />
<br />
function RemoveBad(strTemp) { <br />
//strTemp = strTemp.replace(/\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-/g,"/"); <br />
strTemp = strTemp.replace(/\<|\>|\"|\'|\%u|\;|\(|\)|\&|\+|\-/g,"Z"); <br />
return strTemp;<br />
} <br />
<br />
/*
*/<br />
function gup( name ){<br />
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");<br />
var regexS = "[\\?&]"+name+"=([^&#]*)";<br />
var regex = new RegExp( regexS );<br />
var results = regex.exec( window.location.href );<br />
if( results == null )<br />
return "";<br />
else<br />
return results[1];<br />
}<br />
function URLDecodeZian (encodedString) {<br />
var output = encodedString;<br />
var binVal, thisString;<br />
var myregexp = /(%[^%]{2})/;<br />
while ((match = myregexp.exec(output)) != null && match.length > 1 && match[1] != '') {<br />
binVal = parseInt(match[1].substr(1),16);<br />
thisString = String.fromCharCode(binVal);<br />
output = output.replace(match[1], thisString);<br />
}<br />
return output;<br />
}<br />
<br />
//window.location=URLDecode(gup('l'));