function urlDecode(str){str=str.replace(new RegExp("\\+","g")," ");return unescape(str);}function urlEncode(str){str=escape(str);str=str.replace(new RegExp("\\+","g"),"%2B");return str.replace(new RegExp("%20","g"),"+");}var END_OF_INPUT=-1;var base64Chars=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","+","/");var reverseBase64Chars=new Array();for(var i=0;i<base64Chars.length;i++){reverseBase64Chars[base64Chars[i]]=i;}var base64Str;var base64Count;function setBase64Str(str){base64Str=str;base64Count=0;}function readBase64(){if(!base64Str){return END_OF_INPUT;}if(base64Count>=base64Str.length){return END_OF_INPUT;}var c=base64Str.charCodeAt(base64Count)&255;base64Count++;return c;}function encodeBase64(str){setBase64Str(str);var result="";var inBuffer=new Array(3);var lineCount=0;var done=false;while(!done&&(inBuffer[0]=readBase64())!=END_OF_INPUT){inBuffer[1]=readBase64();inBuffer[2]=readBase64();result+=(base64Chars[inBuffer[0]>>2]);if(inBuffer[1]!=END_OF_INPUT){result+=(base64Chars[((inBuffer[0]<<4)&48)|(inBuffer[1]>>4)]);if(inBuffer[2]!=END_OF_INPUT){result+=(base64Chars[((inBuffer[1]<<2)&60)|(inBuffer[2]>>6)]);result+=(base64Chars[inBuffer[2]&63]);}else{result+=(base64Chars[((inBuffer[1]<<2)&60)]);result+=("=");done=true;}}else{result+=(base64Chars[((inBuffer[0]<<4)&48)]);result+=("=");result+=("=");done=true;}lineCount+=4;if(lineCount>=76){result+=("\n");lineCount=0;}}return result;}function readReverseBase64(){if(!base64Str){return END_OF_INPUT;}while(true){if(base64Count>=base64Str.length){return END_OF_INPUT;}var nextCharacter=base64Str.charAt(base64Count);base64Count++;if(reverseBase64Chars[nextCharacter]){return reverseBase64Chars[nextCharacter];}if(nextCharacter=="A"){return 0;}}return END_OF_INPUT;}function ntos(n){n=n.toString(16);if(n.length==1){n="0"+n;}n="%"+n;return unescape(n);}function decodeBase64(str){setBase64Str(str);var result="";var inBuffer=new Array(4);var done=false;while(!done&&(inBuffer[0]=readReverseBase64())!=END_OF_INPUT&&(inBuffer[1]=readReverseBase64())!=END_OF_INPUT){inBuffer[2]=readReverseBase64();inBuffer[3]=readReverseBase64();result+=ntos((((inBuffer[0]<<2)&255)|inBuffer[1]>>4));if(inBuffer[2]!=END_OF_INPUT){result+=ntos((((inBuffer[1]<<4)&255)|inBuffer[2]>>2));if(inBuffer[3]!=END_OF_INPUT){result+=ntos((((inBuffer[2]<<6)&255)|inBuffer[3]));}else{done=true;}}else{done=true;}}return result;}var digitArray=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");function toHex(n){var result="";var start=true;for(var i=32;i>0;){i-=4;var digit=(n>>i)&15;if(!start||digit!=0){start=false;result+=digitArray[digit];}}return(result==""?"0":result);}function pad(str,len,pad){var result=str;for(var i=str.length;i<len;i++){result=pad+result;}return result;}function encodeHex(str){var result="";for(var i=0;i<str.length;i++){result+=pad(toHex(str.charCodeAt(i)&255),2,"0");}return result;}var hexv={"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,"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,"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,"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,"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,"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,"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,"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,"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,"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,"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,"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,"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,"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,"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,"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};function decodeHex(str){str=str.toUpperCase().replace(new RegExp("s/[^0-9A-Z]//g"));var result="";var nextchar="";for(var i=0;i<str.length;i++){nextchar+=str.charAt(i);if(nextchar.length==2){result+=ntos(hexv[nextchar]);nextchar="";}}return result;}function addslashes(str){return str.replace("/([\"'])/g","\\$1").replace("/\0/g","\\0");}function base64_decode(data){var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var o1,o2,o3,h1,h2,h3,h4,bits,i=0,enc="";do{h1=b64.indexOf(data.charAt(i++));h2=b64.indexOf(data.charAt(i++));h3=b64.indexOf(data.charAt(i++));h4=b64.indexOf(data.charAt(i++));bits=h1<<18|h2<<12|h3<<6|h4;o1=bits>>16&255;o2=bits>>8&255;o3=bits&255;if(h3==64){enc+=String.fromCharCode(o1);}else{if(h4==64){enc+=String.fromCharCode(o1,o2);}else{enc+=String.fromCharCode(o1,o2,o3);}}}while(i<data.length);return enc;}function base64_encode(data){var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var o1,o2,o3,h1,h2,h3,h4,bits,i=0,enc="";do{o1=data.charCodeAt(i++);o2=data.charCodeAt(i++);o3=data.charCodeAt(i++);bits=o1<<16|o2<<8|o3;h1=bits>>18&63;h2=bits>>12&63;h3=bits>>6&63;h4=bits&63;enc+=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);}while(i<data.length);switch(data.length%3){case 1:enc=enc.slice(0,-2)+"==";break;case 2:enc=enc.slice(0,-1)+"=";break;}return enc;}function html_entity_decode(string){var ret,tarea=document.createElement("textarea");tarea.innerHTML=string;ret=tarea.value;return ret;}function htmlentities(s){var div=document.createElement("div");var text=document.createTextNode(s);div.appendChild(text);return div.innerHTML;}function nl2br(str,is_xhtml){var breakTag="";breakTag="<br />";if(typeof is_xhtml!="undefined"&&!is_xhtml){breakTag="<br>";}return(str+"").replace(/([^>]?)\n/g,"$1"+breakTag+"\n");}function strip_tags(str,allowed_tags){var key="",allowed=false;var matches=[];var allowed_array=[];var allowed_tag="";var i=0;var k="";var html="";var replacer=function(search,replace,str){return str.split(search).join(replace);};if(allowed_tags){allowed_array=allowed_tags.match(/([a-zA-Z]+)/gi);}str+="";matches=str.match(/(<\/?[\S][^>]*>)/gi);for(key in matches){if(isNaN(key)){continue;}html=matches[key].toString();allowed=false;for(k in allowed_array){allowed_tag=allowed_array[k];i=-1;if(i!=0){i=html.toLowerCase().indexOf("<"+allowed_tag+">");}if(i!=0){i=html.toLowerCase().indexOf("<"+allowed_tag+" ");}if(i!=0){i=html.toLowerCase().indexOf("</"+allowed_tag);}if(i==0){allowed=true;break;}}if(!allowed){str=replacer(html,"",str);}}return str;}function stripslashes(str){return str.replace("/\0/g","0").replace("/(.)/g","$1");}function strlen(string){var str=string+"";var i=0,chr="",lgth=0;var getWholeChar=function(str,i){var code=str.charCodeAt(i);var next="",prev="";if(55296<=code&&code<=56319){if(str.length<=(i+1)){throw"High surrogate without following low surrogate";}next=str.charCodeAt(i+1);if(56320>next||next>57343){throw"High surrogate without following low surrogate";}return str[i]+str[i+1];}else{if(56320<=code&&code<=57343){if(i===0){throw"Low surrogate without preceding high surrogate";}prev=str.charCodeAt(i-1);if(55296>prev||prev>56319){throw"Low surrogate without preceding high surrogate";}return false;}}return str[i];};for(i=0,lgth=0;i<str.length;i++){if((chr=getWholeChar(str,i))===false){continue;}lgth++;}return lgth;}function substr(f_string,f_start,f_length){f_string+="";if(f_start<0){f_start+=f_string.length;}if(f_length==undefined){f_length=f_string.length;}else{if(f_length<0){f_length+=f_string.length;}else{f_length+=f_start;}}if(f_length<f_start){f_length=f_start;}return f_string.substring(f_start,f_length);}function trim(str,charlist){var whitespace,l=0,i=0;str+="";if(!charlist){whitespace=" \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";}else{charlist+="";whitespace=charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g,"$1");}l=str.length;for(i=0;i<l;i++){if(whitespace.indexOf(str.charAt(i))===-1){str=str.substring(i);break;}}l=str.length;for(i=l-1;i>=0;i--){if(whitespace.indexOf(str.charAt(i))===-1){str=str.substring(0,i+1);break;}}return whitespace.indexOf(str.charAt(0))===-1?str:"";}function utf8_decode(str_data){var string="",i=0,c=c1=c2=0;while(i<str_data.length){c=str_data.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}else{if((c>191)&&(c<224)){c2=str_data.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}else{c2=str_data.charCodeAt(i+1);c3=str_data.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}}return string;}function utf8_encode(str_data){str_data=str_data.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<str_data.length;n++){var c=str_data.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;}function noChildOut(element,ev,nbChildren){var related=null;if(ev.toElement){related=ev.toElement;}else{if(ev.relatedTarget){related=ev.relatedTarget;}}for(i=0;i<=nbChildren;i++){if(element==related){return false;}else{if(related!=null){try{related=related.parentNode;}catch(ex){}}}}return true;}function noChildIn(element,ev,nbChildren){var related=null;if(ev.fromElement){related=ev.fromElement;}else{if(ev.relatedTarget){related=ev.relatedTarget;}}for(i=0;i<=nbChildren;i++){if(element==related){return false;}else{if(related!=null){try{related=related.parentNode;}catch(ex){}}}}return true;}var captchaEventObserver=function(element){for(var i=0;i<document.images.length;i++){if(document.images[i].id.substr(0,7)=="captcha"){document.images[i].src="/img/common/loadbar-high.gif";if(src===undefined){var src="/captcha?"+Math.floor(Math.random()*1001);}document.images[i].src=src;}}};var verticalAlign=function(element,threshold,resize){var element=$(element);try{var container=element.up();if(element&&container){var eheight=element.getHeight();var cheight=container.getHeight();if(cheight==0){cheight=String(container.getStyle("height"));cheight=cheight.substring(0,cheight.length-2);}var middleOffset=Math.ceil((cheight-eheight)/2);if(threshold){middleOffset=middleOffset-threshold;}if(middleOffset<0){middleOffset=0;}element.setStyle({top:middleOffset+"px",position:"relative"});if(resize){new Event.observe(window,"resize",function(){verticalAlign(element,threshold);});}}}catch(ex){}};Ajax.PassivePeriodicalUpdater=Class.create(Ajax.Base,{initialize:function($super,container,url,options){$super(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(response){if(response.responseText==this.lastText){if(this.options.decay){this.decay=this.decay*this.options.decay;}}else{if(this.options.decay){this.decay=1;}$(this.container).update(response.responseText);this.lastText=response.responseText;}this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency);},onTimerEvent:function(){this.updater=new Ajax.Request(this.url,this.options);}});
