
function XSSiteration(eID,url){function createRequestObject(){if(url.indexOf("ajaxMode")==-1){if(url.indexOf('?')>0){url=url+"&ajaxMode=On";}
else{url=url+"?ajaxMode=On";}}
this.script=document.createElement('script');this.script.setAttribute('type','text/javascript');this.script.setAttribute('src',url);this.script.setAttribute('id','crossSiteLoader_'+eID);this.eID=eID;this.scriptID='crossSiteLoader_'+eID;this.scriptURL=url;return this;}
function handleResponse(){if(xss.script.readyState=='loaded'){xss.pageData=pageData;pageData=null;if(xss.pageData==null){x=xss.scriptURL.indexOf("&retryEvent=");if(x>1){r=xss.scriptURL.substr((x+12),1);if(r>=5)return false;else{xss.scriptURL=xss.scriptURL.substr(0,(xss.scriptURL.length-1));r++;xss.scriptURL=xss.scriptURL+r;}}
else{xss.scriptURL=xss.scriptURL+'&retryEvent=1';}
document.getElementsByTagName('head')[0].removeChild(document.getElementById(xss.scriptID));}
else{myDiv=document.getElementById(xss.eID);newDiv=document.createElement('div');newDiv.setAttribute('id',eID);newDiv.innerHTML=decodeURIComponent(xss.pageData);x=myDiv.parentNode;x.replaceChild(newDiv,myDiv);document.getElementsByTagName('head')[0].removeChild(document.getElementById(xss.scriptID));}}}
var xss=new createRequestObject();xss.script.onreadystatechange=handleResponse;this.doRequest=function(){document.getElementsByTagName('head')[0].appendChild(xss.script);}
xss.script.onload=function(){if(typeof(pageData)=='undefined'){pageData=null;}
xss.pageData=pageData;pageData=null;if(xss.pageData==null){x=xss.scriptURL.indexOf("&retryEvent=");if(x>1){r=xss.scriptURL.substr((x+12),1);if(r>=5)return false;else{xss.scriptURL=xss.scriptURL.substr(0,(xss.scriptURL.length-1));r++;xss.scriptURL=xss.scriptURL+r;}}
else{xss.scriptURL=xss.scriptURL+'&retryEvent=1';}
document.getElementsByTagName('head')[0].removeChild(document.getElementById(xss.scriptID));}
else{myDiv=document.getElementById(xss.eID);newDiv=document.createElement('div');newDiv.setAttribute('id',eID);newDiv.innerHTML=decodeURIComponent(xss.pageData);x=myDiv.parentNode;x.replaceChild(newDiv,myDiv);document.getElementsByTagName('head')[0].removeChild(document.getElementById(xss.scriptID));}}}
var browser=navigator.appName;var xssIterationArray=new Array();function xssLoader(eID,url){if(browser=="Microsoft Internet Explorer"){var xi_index=xssIterationArray.length+1;timeOut=250;setTimeout(function(){var xi=new XSSiteration(eID,url);xi.doRequest();},(timeOut*xi_index));}
else{var xi=new XSSiteration(eID,url);xi.doRequest();}}
function ajaxPost(formID,url,eId){obj=document.getElementById(formID);if(url.indexOf('?')>0){getstr="&sourceCharset="+encodeURIComponent("UTF-8")+"&";}
else{getstr="?sourceCharset="+encodeURIComponent("UTF-8")+"&";}
for(i=0;i<obj.length;i++){if(obj.elements[i].tagName=="INPUT"&&obj.elements[i].value!=""){if(obj.elements[i].type=="text"||obj.elements[i].type=="hidden"){getstr+=obj.elements[i].name+"="+encodeURIComponent(obj.elements[i].value)+"&";}
else if(obj.elements[i].type=="checkbox"){if(obj.elements[i].checked){getstr+=obj.elements[i].name+"="+encodeURIComponent(obj.elements[i].value)+"&";}
else{getstr+=obj.elements[i].name+"=&";}}
else if(obj.elements[i].type=="radio"){if(obj.elements[i].checked){getstr+=obj.elements[i].name+"="+encodeURIComponent(obj.elements[i].value)+"&";}}}
else if(obj.elements[i].tagName=="SELECT"){var sel=obj.elements[i];if(sel.multiple){for(var x=0;x<sel.options.length;x++){if(sel.options[x].selected){getstr+=sel.name+"="+sel.options[x].value+"&";}}}
else{getstr+=sel.name+"="+sel.options[sel.selectedIndex].value+"&";}}
else if(obj.elements[i].tagName=="TEXTAREA"){getstr+=obj.elements[i].name+"="+encodeURIComponent(obj.elements[i].value)+"&";}}
xssLoader(eId,url+getstr);}
function AJAXInteraction(eId,url,params){var http=createRequestObject();if(eId!==false){http.onreadystatechange=handleResponse;}
function createRequestObject(){var ro;if(browser=="Microsoft Internet Explorer"){ro=new ActiveXObject("Microsoft.XMLHTTP");}
else{ro=new XMLHttpRequest();}
return ro;}
function handleResponse(){if(http.readyState==4){var response=http.responseText;targetElement=document.getElementById(eId);targetElement.innerHTML=response;var allNewScripts=targetElement.getElementsByTagName('script');c=allNewScripts.length;if(c>0){for(x=0;x<c;x++){eval(allNewScripts[x].innerHTML);}}
showElement(eId,params);}}
this.doPost=function(){http.open('post',url,true);http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");http.setRequestHeader("charset","utf-8")
http.send(params.data);}
this.doGet=function(){http.open('get',url);http.send(null);}}
function sndReq(eId,url,paramStr){if(typeof(paramStr)=="object"){var params=paramStr;}
else if(isset('paramStr')==false){var params=new paramsToObject("id:eId");}
else{var params=new paramsToObject(paramStr);}
var defaults=new Object;defaults.method='get';defaults.data='';defaults.updateTarget=true;params=setDefaults(params,defaults);params.data+="fromAjax=true";var ai=new AJAXInteraction(eId,url,params);if(params.method=='post'){ai.doPost();}
else{ai.doGet();}}
function paramsToObject(paramStr){if(typeof(paramStr)!='string')return;p=paramStr.split(";");for(var x=0;x<p.length;x++){t=p[x].split(":");if(t.length==2){this[t[0].replace(" ","")]=t[1].replace(" ","");}}}
function changeAction(form,action){document.getElementById(form+'_default').value=action;}
function showElement(element,params){if(typeof(element)!="object"){element=document.getElementById(element);}
element.style.display='block';resizeElementWidth(element.id,params.width);callerElement=document.getElementById(params.callerID);element.style.visibility='visible';}
function hideElement(element,params){if(typeof(element)!="object"){element=document.getElementById(element);}
element.style.display='none';element.style.visibility='hidden';}
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(input){var output="";var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;input=Base64._utf8_encode(input);while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);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;}
output=output+
this._keyStr.charAt(enc1)+this._keyStr.charAt(enc2)+
this._keyStr.charAt(enc3)+this._keyStr.charAt(enc4);}
return output;},decode:function(input){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=this._keyStr.indexOf(input.charAt(i++));enc2=this._keyStr.indexOf(input.charAt(i++));enc3=this._keyStr.indexOf(input.charAt(i++));enc4=this._keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2);}
if(enc4!=64){output=output+String.fromCharCode(chr3);}}
output=Base64._utf8_decode(output);return output;},_utf8_encode:function(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;},_utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}
else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}
else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}
return string;}}
function isset(varname){if(typeof(window[varname])!='undefined');}
function setDefaults(obj,defaults){for(var x in defaults){if(!obj[x]){obj[x]=defaults[x];}}
return obj;}
function resizeElementWidth(elementId,width){if(typeof(width)=='undefined'||typeof(width)=='null'){return;}
element=document.getElementById(elementId);if(isNaN(width)==true){try{width=document.getElementById(width).offsetWidth;width+=20;}
catch(err){width=null;}}
if(parseInt(width)>0){element.style.width=width;}}
