var currentLink="";function showStatus(A){try{$("status").setStyle("visibility",!A?"visible":"hidden")}catch(B){}}var errorFadeTimeout1;var errorFadeTimeout2;var errorEffect;var errorCount=0;function errorMsg(A){var B=$("error");B.innerHTML+="<span id=line"+(++errorCount)+">"+A+"</span>";B.setStyle("visibility","visible");clearTimeout(errorFadeTimeout1);clearTimeout(errorFadeTimeout2);errorEffect.clearChain;errorEffect.clearTimer;errorEffect.stop;errorEffect.start({opacity:[B.getStyle("opacity"),1]});errorFadeTimeout1=setTimeout(function(){errorEffect.start({opacity:[B.getStyle("opacity"),0]});errorFadeTimeout2=setTimeout(function(){B.setStyle("visibility","hidden");B.innerHTML="";errorCount=0},2000)},2000)}var debuglevel=0;var debug=function(){};function activeWrapper(){var A=$("wrapper"+currentWrapper);if(!A){A=document.body}if(!A.scroller){A.scroller=new Fx.Scroll(A)}return A}var currentWrapper=1;function focusWrapper(B){if(currentWrapper==B){return }var A=$("wrapper2").getSize().size.x;var D=$("wrapper1").effects({duration:500,transition:Fx.Transitions.Quint.easeInOut});var C=$("wrapper2").effects({duration:500,transition:Fx.Transitions.Quint.easeInOut});if(currentWrapper<B){D.start({left:[0,-A]});C.start({left:[A,0]});$("wrapper1").setStyle("overflow","hidden");$("wrapper2").setStyle("overflow","")}else{D.start({left:[-A,0]});C.start({left:[0,A]});$("wrapper1").setStyle("overflow","hidden");$("wrapper2").setStyle("overflow","hidden");setTimeout(function(){$("wrapper1").setStyle("overflow","")},500)}currentWrapper=B}function activeMenu(A,C){if(!C){C="on"}var D=A.split(/,/ig);for(var B=0;B<D.length;B++){try{var F=D[B].split(":");$(F[0]).getElements(F[2]?F[2]:"a").each(function(G){if(typeof C=="function"){C.call(G,G.getProperty("id")==F[1])}else{G.removeClass(C);if(G.getProperty("id")==F[1]){G.addClass(C)}}})}catch(E){debug(0,D[B],"not exist")}}}function split1st(A,C){var B=A.indexOf(C);if(B<0){return[A,""]}return[A.substring(0,B),A.substring(B+1,A.length)]}var rootHrefs=split1st(unescape(location.href),"?");rootHrefs[0]+="?";var rootLinks=split1st(rootHrefs[1],"#");function subtractLink(A,C){var D=C.split("~");var B=A.split("~");while(D.length<B.length){D.push(":")}while(B.length<D.length){B.push(":")}for(var E=0;E<B.length&&E<D.length;E++){if((B[E]==D[E])&&(B[E])){B[E]=":"}}return B.join("~")}function mergeLink(A,C){var D=C.split("~");var B=A.split("~");while(D.length<B.length){D.push(":")}while(B.length<D.length){B.push(":")}for(var E=0;E<B.length&&E<D.length;E++){if((B[E]==":")&&(D[E])){B[E]=D[E]}}return B.join("~")}function handleAjaxLink(A,B){if(linksVisited[B]>0){A.addClass("linksVisited")}if(A.ajaxlink){return }A.href="javascript:;";A.ajaxlink=B;A.addEvent("click",function(){ajaxLoad(A.ajaxlink,A,A.getProperty("doafterupdate"),A.getProperty("dobeforeupdate"))})}function handleAjaxAnchor(A,B){if(linksVisited[B]>0){A.addClass("linksVisited")}if(A.ajaxanchor){return }A.href="javascript:;";A.ajaxanchor=B;A.addEvent("click",function(){try{var C=$(A.ajaxanchor);activeWrapper().scroller.toElement(C)}catch(D){errorMsg("Invalid anchor: "+A.ajaxanchor)}})}function scanLinks(A){A.getElements("a").each(function(C){if(!C.href){C.href='javascript:errorMsg("link is not yet implemented!");';C.addClass("underconstruct");return }var B=split1st(C.href,"?");if((B[1])&&(B[1].indexOf("~")==0)){D=split1st(B[1],"#");if(D[1].indexOf("~")==0){handleAjaxLink(C,D[1])}else{if(B[1].indexOf("#")<0){handleAjaxLink(C,D[0])}else{handleAjaxAnchor(C,D[1])}}}else{var D=split1st(C.href,"#");if(D[1]&&(D[1].indexOf("~")==0)){handleAjaxLink(C,D[1])}}})}function updateVisitedLinks(A){A.getElements("a").each(function(B){if(linksVisited[B.ajaxlink]>0){if(!B.hasClass("linksVisited")){B.addClass("linksVisited")}}})}function updateCurrentLink(A,B){A=mergeLink(A,rootLinks[0]);location.href=rootHrefs[0]+rootLinks[0]+"#"+A;if((window.ie)&&(B!="ajaxiframe")){$("ajaxiframe").src="iframe.html?"+A}currentLink=A}var allowAjaxCache=true;var chunks={};var linksVisited={};var isDynamicChunk=new RegExp("&[$@]$");var isStreamChunk=new RegExp("&[$]$");var endofchunk="\t==>\tEoF\t<==\t";var beginofchunk="\t==>\tBoF\t<==\t";var ajaxload=new XHR({method:"get",async:true,autoCancel:true,headers:{Connection:"Keep-Alive"}});var usehttpchunked=false;ajaxload.onStateChange=function(){debug(0,"readyState",this.transport.readyState+":"+this.chunked[0]+"-"+this.chunked[1]);if(this.canceling){return }switch(this.transport.readyState){case 1:break;case 3:if(usehttpchunked){debug(0,"********");var A=this.chunked[0];var B=this.transport.responseText.lastIndexOf(endofchunk);if(B>=A){this.chunked[0]=this.transport.responseText.lastIndexOf(beginofchunk,B);this.chunked[1]=B+endofchunk.length;if(this.onSuccessCalled){this.collectResponseText();this.updateBlocks(this.ll2)}else{this.onSuccess()}this.chunked[0]=this.chunked[1]}else{break}}break;case 4:this.chunked=[this.chunked[1],this.transport.responseText.length];if(!this.onSuccessCalled){this.onSuccess()}else{this.collectResponseText();this.updateBlocks(this.monitorpair)}if(this.monitor.length>0){cancelajaxload();ajaxload.onSuccessCalled=true;sendajaxload("",this.monitor.join("~"),usehttpchunked?"chunked":"monitor")}break}};function sendajaxload(B,A,F){ajaxload.chunked=[0,0];var D=[];for(var C=0;C<ajaxload.monitor.length;C++){if(chunks[ajaxload.monitor[C]]){D.push(chunks[ajaxload.monitor[C]].stat)}}var E="(&&&&)";ajaxload.send("ajaxload3.pl",B+E+A+E+F+E+D.join("~"))}function addRelatedNodeId(thisBody,aId){with(thisBody){var rn=getProperty("relatedNodes");setProperty("relatedNodes",(rn?rn+";":"")+aId)}}function clearRelatedNodes(D){var C=D.getProperty("relatedNodes");if(C){debug(0,"clearRelatedNodes",C);var B=C.split(";");for(var A=0;A<B.length;A++){if(C=$(B[A])){C.remove()}}}D.removeProperty("relatedNodes")}ajaxload.updateBlocks=function(G){this.ajaxevalerror=[];if(this.dobeforeupdate){if(typeof (this.dobeforeupdate)=="function"){this.dobeforeupdate()}else{this.ajaxeval(this.dobeforeupdate)}}for(var C=0;C<G.length;C++){var A=split1st(G[C],":");if(A[0].length>0){debug(0,A[0],A[1]);var H=$(A[0]);if(!chunks[A[1]]){debug(0,"warning","no data return: "+A[1])}else{if(!H){debug(0,"warning","incorrect block load: "+A[0])}else{var E=H.getProperty("dobeforeupdate");if(E){this.ajaxeval(E)}H.removeClass("ajaxloading");if(H.unloadBody){debug(0,"call","thisBody.unloadBody");H.unloadBody.call(this);H.unloadBody=null}clearRelatedNodes(H);H.setHTML(chunks[A[1]].data);H.getElements("script").each(function(J){var L=J.getProperty("src");var I=J.innerHTML;if(L){var K=new XHR({async:false,method:"post",autoCancel:true});K.send(L,null);if(K.transport.status==200){I=K.transport.responseText}}ajaxload.ajaxeval(I)});if(window.webkit){var F=1;function D(J,I){var K="fixwebkit_"+A[1].replace(/\W+/g,"_")+I+F++;if(!$(K)){J.injectTop(document.head).id=K}else{debug(0,"exist",K)}addRelatedNodeId(H,K)}H.getElements("style").each(function(I){D(I,"_style_")});F=1;H.getElements("link[rel=stylesheet]").each(function(I){D(I,"_csslink_")})}scanLinks(H);var B=H.getProperty("doafterupdate");if(B){this.ajaxeval(B)}}}}}if(this.doafterupdate){if(typeof (this.doafterupdate)=="function"){this.doafterupdate()}else{this.ajaxeval(this.doafterupdate)}}};ajaxload.ajaxeval=function(code){try{eval(code)}catch(_error){this.ajaxevalerror.push(_error);debug(0,"EVAL ERROR",_error.message+":"+_error.line)}};ajaxload.ajaxthrow=function(){for(var A=0;A<this.ajaxevalerror.length;A++){var B=ajaxload.ajaxevalerror[A].message;setTimeout('throw("'+B+'")',100)}this.ajaxevalerror=[]};var isASeperator=new RegExp("\t\\w+\t");ajaxload.collectResponseText=function(){var A=this.transport.responseText.substring(this.chunked[0],this.chunked[1]).split(/\t\=\=\>/ig);for(var C=1;C<A.length;C++){var B=A[C].split("<==\t");if((B[0]!="")&&(!isASeperator.test(B[0]))){var D=B[0].split("\t");chunks[D[0]]={stat:D[1],data:B[1]}}}};ajaxload.onFailure=function(){showStatus(1);ajaxload.loadlist=null;debug(0,"onFailure")};function cancelajaxload(){if(ajaxload.running){debug(0,"CANCEL","AJAX");ajaxload.canceling=true;ajaxload.cancel();ajaxload.loadlist=null;ajaxload.canceling=false}}function ajaxLoad(O,A,W,K){debug(0,"ajaxLoad",O);if(ajaxload.loadlist==O){return }ajaxload.loadlist=O;ajaxload.doafterupdate=W;ajaxload.dobeforeupdate=K;if(!allowAjaxCache){chunks={}}if(!linksVisited[O]){linksVisited[O]=0}linksVisited[O]++;updateVisitedLinks($("htmlbody"));try{$(A).addClass("ajaxloader")}catch(V){}var U=currentLink+"";var G=O.split(/\~/ig);var H=currentLink.split(/\~/ig);var J=[];var C="";var E=[];for(var R=window.ie&&!window.opera?0:1;R<Math.max(G.length,H.length);R++){if(H[R]&&((!G[R])||(G[R]==H[R])||(G[R]==":"))&&(!isDynamicChunk.test(H[R]))){if(!G[R]){var T=split1st(H[R],":")[0];C+="~"+T+":"+(T==""?"":"empty")}else{C+="~"+H[R]}}else{if(!G[R]){C+="~:"}else{C+="~"+G[R];var F=G[R].split(/\|/ig);for(var Q=0;Q<F.length;Q++){E[E.length]=F[Q];var L=split1st(F[Q],":");if(L[0].length>0){if((!chunks[L[1]])||(isDynamicChunk.test(L[1]))){J.push(L[1])}var P=$(L[0]);if(P){P.addClass("ajaxloading")}}}}}}C+=window.ie&&!window.opera?"~":"";C=C.replace(/~:$/ig,"~");ajaxload.ll2=E;debug(0,C);var I=mergeLink(C,rootHrefs[0]+rootLinks[0]);var D=I.split(/~/ig);ajaxload.monitor=[];ajaxload.monitorpair=[];for(var N=0;N<D.length;N++){var B=D[N].split(/\|/ig);var S=false;for(var M=0;M<B.length;M++){if(isStreamChunk.test(B[M])){ajaxload.monitor.push(split1st(B[M],":")[1]);S=true}}if(S){for(var M=0;M<B.length;M++){ajaxload.monitorpair.push(B[M])}}}debug(0,"monitorpair",ajaxload.monitorpair.join(" "));ajaxload.onSuccess=function(){debug(0,"onSuccess");if(U==currentLink){this.collectResponseText();debug(0,"updateBlocks",this.ll2.join("~"));this.updateBlocks(this.ll2);updateCurrentLink(C,A)}else{if(!ajaxload.onSuccessCalled){errorMsg("Network delay! Operation Abort!")}}this.onSuccessCalled=true;try{$(A).removeClass("ajaxloader")}catch(X){}showStatus(1);this.loadlist=null;this.ajaxthrow()};cancelajaxload();if((J==[])||(J.length==0)||(J.join("")=="")){ajaxload.updateBlocks(ajaxload.ll2);updateCurrentLink(C,A);try{$(A).removeClass("ajaxloader")}catch(V){}ajaxload.loadlist=null;if(ajaxload.monitor.length>0){sendajaxload("",ajaxload.monitor.join("~"),"monitor")}ajaxload.ajaxthrow()}else{showStatus(0);ajaxload.onSuccessCalled=false;sendajaxload(J.join("~"),ajaxload.monitor.join("~"),usehttpchunked?"chunked":"")}}window.addEvent("domready",function(){if(document.domain.indexOf("quang")>=0){try{$("debug").setStyle("display","block").setOpacity(0.9);$("debug").makeResizable();debug=function(E,C,D){var B=$("debug");if((E>=0)&&(B)){B.innerHTML="<span style='text-indent:"+(debuglevel*20)+"px'"+(++errorCount)+"><b>"+C+"</b> (<i>"+D+"</i>) </span>\t\n"+B.innerHTML}debuglevel+=E}}catch(A){}}window.onunload=function(B){Cookie.set("linksVisited",Json.toString(linksVisited))};try{linksVisited=Json.evaluate(Cookie.get("linksVisited"));if(!(typeof linksVisited=="object")||(linksVisited==null)){linksVisited={}}}catch(A){linksVisited={}}debug(0,Json.toString(linksVisited));errorEffect=$("error").effects({duration:2000,transition:Fx.Transitions.Sine.easeInOut});$("error").setStyle("opacity",0);scanLinks($("htmlbody"));debug(0,rootLinks[0],rootLinks[1]);ajaxLoad(subtractLink(rootLinks[1],rootLinks[0]));if(!window.ie){setInterval(function(){if(currentLink==""){return }var B=split1st(unescape(location.href),"#");if(B[1]!=currentLink){ajaxLoad(B[1])}},300)}});function dumpObject(C){var A=[];for(var B in C){try{A.push(B+":"+C[B])}catch(D){A.push(B+":"+D)}}return A.join("\n")};
