<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1 +1 @@
-if(typeof fleegix==&quot;undefined&quot;){var fleegix={}}if(typeof $==&quot;undefined&quot;){var $=function(A){return document.getElementById(A)}}var $elem=function(A,E){var C=E||{};var B=document.createElement(A);for(var D in C){B[D]=C[D]}return B};var $text=function(A){return document.createTextNode(A)};fleegix.extend=function(A,B){return function(){A.apply(this,arguments);A.prototype.constructor.apply(this,arguments);B.apply(this,arguments);this.superClass=A;this.subClass=B}};fleegix.mixin=function(E,C){var B;if(typeof C==&quot;function&quot;){B=new C()}else{B=C}var A={};for(var D in B){if(typeof A[D]==&quot;undefined&quot;||baseObjj[D]!=B[D]){E[D]=B[D]}}return E};fleegix.clone=function(C){if(typeof C==&quot;object&quot;){var A;if(typeof C.constructor==&quot;function&quot;){A=new C.constructor()}else{A={}}for(var B in C){if(typeof C[B]==&quot;object&quot;&amp;&amp;C[B]!==null){A[B]=fleegix.clone(C[B])}else{A[B]=C[B]}}}else{A=C}return A};fleegix.ua=new function(){var C=navigator.userAgent;var A=function(F,G){var E=G.exec(F);if(E&amp;&amp;E.length&gt;1){E=E[1].substr(0,1);if(!isNaN(E)){return parseInt(E)}else{return null}}return null};this.isWebKit=C.indexOf(&quot;AppleWebKit&quot;)&gt;-1;this.isKHTML=C.indexOf(&quot;KHTML&quot;)&gt;-1;this.isGecko=C.indexOf(&quot;Gecko&quot;)&gt;-1&amp;&amp;!this.isWebKit&amp;&amp;!this.isKHTML;this.isOpera=C.indexOf(&quot;Opera&quot;)&gt;-1;this.isChrome=C.indexOf(&quot;Chrome&quot;)&gt;-1;this.isSafari=C.indexOf(&quot;Safari&quot;)&gt;-1&amp;&amp;!this.isChrome;this.isFF=C.indexOf(&quot;Firefox&quot;)&gt;-1||C.indexOf(&quot;Iceweasel&quot;)&gt;-1||C.indexOf(&quot;IceCat&quot;)&gt;-1;this.isFirefox=this.isFF;this.isIE=C.indexOf(&quot;MSIE &quot;)&gt;-1&amp;&amp;!this.isOpera;this.isIPhone=C.indexOf(&quot;iPhone&quot;)&gt;-1;this.isMobile=this.isIPhone||C.indexOf(&quot;Opera Mini&quot;)&gt;-1;this.isMac=C.indexOf(&quot;Mac&quot;)&gt;-1;this.isUnix=C.indexOf(&quot;Linux&quot;)&gt;-1||C.indexOf(&quot;BSD&quot;)&gt;-1||C.indexOf(&quot;SunOS&quot;)&gt;-1;this.isLinux=C.indexOf(&quot;Linux&quot;)&gt;-1;this.isWindows=C.indexOf(&quot;Windows&quot;)&gt;-1||C.indexOf(&quot;Win&quot;);this.majorVersion=null;var B={FF:/Firefox\/([0-9\.]*)/,Safari:/Version\/([0-9\.]*) /,IE:/MSIE ([0-9\.]*);/,Opera:/Opera\/([0-9\.]*) /,Chrome:/Chrome\/([0-9\.]*)/};for(var D in B){if(this[&quot;is&quot;+D]){this.majorVersion=A(C,B[D])}}for(var D in this){fleegix[D]=this[D]}};fleegix.fx=new function(){function B(G,D,H){var F={};var M=0;var I=0;if(D.blindType==&quot;clip&quot;){M=H==&quot;down&quot;?0:G.offsetHeight;I=H==&quot;down&quot;?G.offsetHeight:0;M=[0,G.offsetWidth,M,0];I=[0,G.offsetWidth,I,0];F.props={clip:[M,I]}}else{if(H==&quot;down&quot;){if(D.endHeight){I=D.endHeight}else{G.style.height=&quot;&quot;;var J=document.createElement(&quot;div&quot;);J.position=&quot;absolute&quot;;J.style.top=&quot;-9999999999px&quot;;J.style.left=&quot;-9999999999px&quot;;var K=G.parentNode;var C=K.removeChild(G);J.appendChild(C);document.body.appendChild(J);I=C.offsetHeight;G=J.removeChild(C);var L=document.body.removeChild(J);G.style.height=&quot;0px&quot;;K.appendChild(G)}M=0}else{M=G.offsetHeight;I=0}F.props={height:[M,I]}}for(var E in D){F[E]=D[E]}F.trans=&quot;lightEaseIn&quot;;return new fleegix.fx.Effecter(G,F)}function A(F,E,C){var D=C==&quot;in&quot;?0:100;var H=C==&quot;in&quot;?100:0;var I={props:{opacity:[D,H]},trans:&quot;lightEaseIn&quot;};for(var G in E){I[G]=E[G]}return new fleegix.fx.Effecter(F,I)}this.fadeOut=function(E,D){return A(E,D,&quot;out&quot;);E.style.visibility=&quot;hidden&quot;;var C=this.setCssProp(E,&quot;opacity&quot;,100)};this.fadeIn=function(E,D){var C=this.setCssProp(E,&quot;opacity&quot;,0);E.style.visibility=&quot;visible&quot;;return A(E,D,&quot;in&quot;)};this.blindUp=function(D,C){var E=C||{};E.blindType=E.blindType||&quot;height&quot;;return B(D,E,&quot;up&quot;)};this.blindDown=function(D,C){var E=C||{};E.blindType=E.blindType||&quot;height&quot;;return B(D,E,&quot;down&quot;)};this.setCSSProp=function(D,E,C){if(E==&quot;opacity&quot;){if(document.all){D.style.filter=&quot;alpha(opacity=&quot;+C+&quot;)&quot;}else{var F=C/100;D.style.opacity=F}}else{if(E==&quot;clip&quot;||E.toLowerCase().indexOf(&quot;color&quot;)&gt;-1){D.style[E]=C}else{D.style[E]=document.all?parseInt(C,10)+&quot;px&quot;:C+&quot;px&quot;}}return true};this.setCssProp=this.setCSSProp;this.hexPat=/^[#]{0,1}([\w]{1,2})([\w]{1,2})([\w]{1,2})$/;this.hex2rgb=function(G){var C=[];var F=G.match(this.hexPat);if(F){for(var D=1;D&lt;F.length;D++){var E=F[D];E=E.length==1?E+E:E;C.push(parseInt(E,16))}return C}else{throw (&quot;\&quot;&quot;+G+&quot;\&quot; not a valid hex value.&quot;)}}};fleegix.fx.Effecter=function(B,A){var C=this;this.props=A.props;this.trans=A.trans||&quot;lightEaseIn&quot;;this.duration=A.duration||500;this.fps=30;this.startTime=new Date().getTime();this.timeSpent=0;this.doBeforeStart=A.doBeforeStart||null;this.doAfterFinish=A.doAfterFinish||null;this.autoStart=A.autoStart===false?false:true;if(typeof this.transitions[this.trans]!=&quot;function&quot;){throw (&quot;\&quot;&quot;+this.trans+&quot;\&quot; is not a valid transition.&quot;)}this.start=function(){C.id=setInterval(function(){C.doStep.apply(C,[B])},Math.round(1000/C.fps));if(typeof A.doBeforeStart==&quot;function&quot;){C.doBeforeStart()}};if(this.autoStart){this.start()}return this};fleegix.fx.Effecter.prototype.doStep=function(C){var B=new Date().getTime();var D=this.props;if(B&lt;(this.startTime+this.duration)){this.timeSpent=B-this.startTime;for(var A in D){fleegix.fx.setCSSProp(C,A,this.calcCurrVal(A))}}else{for(var A in D){if(A==&quot;clip&quot;){fleegix.fx.setCSSProp(C,A,&quot;rect(&quot;+D[A][1].join(&quot;px,&quot;)+&quot;px)&quot;)}else{fleegix.fx.setCSSProp(C,A,D[A][1])}}clearInterval(this.id);if(typeof this.doAfterFinish==&quot;function&quot;){this.doAfterFinish()}}};fleegix.fx.Effecter.prototype.calcCurrVal=function(G){var A=this.props[G][0];var F=this.props[G][1];var I=this.transitions[this.trans];var B;var D;var J;var H;var E;if(G.toLowerCase().indexOf(&quot;color&quot;)&gt;-1){B=fleegix.fx.hex2rgb(A);D=fleegix.fx.hex2rgb(F);J=[];for(var C=0;C&lt;B.length;C++){H=B[C];E=D[C];J.push(parseInt(I(this.timeSpent,H,(E-H),this.duration),10))}return&quot;rgb(&quot;+J.join()+&quot;)&quot;}else{if(G==&quot;clip&quot;){B=A;D=F;J=[];for(var C=0;C&lt;B.length;C++){H=B[C];E=D[C];J.push(parseInt(I(this.timeSpent,H,(E-H),this.duration),10))}return&quot;rect(&quot;+J.join(&quot;px,&quot;)+&quot;px)&quot;}else{return I(this.timeSpent,A,(F-A),this.duration)}}};fleegix.fx.Effecter.prototype.transitions={linear:function(B,A,D,C){return D*(B/C)+A},lightEaseIn:function(B,A,D,C){return D*(B/=C)*B+A},lightEaseOut:function(B,A,D,C){return -D*(B/=C)*(B-2)+A},lightEaseInOut:function(B,A,D,C){if((B/=C/2)&lt;1){return D/2*B*B+A}return -D/2*((--B)*(B-2)-1)+A},heavyEaseIn:function(B,A,D,C){return D*(B/=C)*B*B+A},heavyEaseOut:function(B,A,D,C){return D*((B=B/C-1)*B*B+1)+A},heavyEaseInOut:function(B,A,D,C){if((B/=C/2)&lt;1){return D/2*B*B*B+A}return D/2*((B-=2)*B*B+2)+A}};fleegix.dom=new function(){var A=function(B){if(document.all){if(document.documentElement&amp;&amp;document.documentElement[&quot;client&quot;+B]){return document.documentElement[&quot;client&quot;+B]}else{return document.body[&quot;client&quot;+B]}}else{return window[&quot;inner&quot;+B]}};this.getViewportWidth=function(){return A(&quot;Width&quot;)};this.getViewportHeight=function(){return A(&quot;Height&quot;)};this.center=function(G){var B=G.offsetWidth;var E=G.offsetHeight;var F=fleegix.dom.getViewportWidth();var H=fleegix.dom.getViewportHeight();var D=parseInt((F/2)-(B/2),10);var C=parseInt((H/2)-(E/2),10);C+=document.documentElement.scrollTop;G.style.left=D+&quot;px&quot;;G.style.top=C+&quot;px&quot;;return true};this.getOffset=function(D){var C=function(F){var G=0;var E=0;if(F.offsetParent){do{G+=F.offsetLeft;E+=F.offsetTop}while(F=F.offsetParent)}return{left:G,top:E}};var B=null;if(fleegix.isIE||fleegix.isMoz){B=D.getBoundingClientRect()}else{B=C(D)}return B}};fleegix.url=new function(){var E=this;var D=&quot;\\?|;&quot;;var C=new RegExp(D);var B=new RegExp(&quot;(&quot;+D+&quot;)&quot;);var A=function(L,M,F,I){var K=B.exec(M);var H;var G;var N;var J;var O=&quot;&quot;;if(K&amp;&amp;K.length&gt;0){H=K[0]}if(H){G=E.getBase(M);N=E.getQS(M)}else{N=M}J=E.qsToObject(N,{arrayizeMulti:true});if(L==&quot;set&quot;){J[F]=I}else{delete J[F]}if(G){O=G+H}O+=E.objectToQS(J);return O};this.qsToObject=function(N,H){var F=H||{};var M={};var O=F.arrayizeMulti||false;if(N){var L=N.split(&quot;&amp;&quot;);for(var K=0;K&lt;L.length;K++){var J=L[K].split(&quot;=&quot;);var G=J[0];var I=J[1];if(typeof M[G]!=&quot;undefined&quot;&amp;&amp;O){if(typeof M[G]==&quot;string&quot;){M[G]=[M[G]]}M[G].push(I)}else{M[G]=I}}}return M};this.objectToQS=function(H){var J=&quot;&quot;;var I;for(var G in H){I=H[G];if(typeof I==&quot;string&quot;){J+=G+&quot;=&quot;+I+&quot;&amp;&quot;}else{if(I.length){for(var F=0;F&lt;I.length;F++){J+=G+&quot;=&quot;+I[F]+&quot;&amp;&quot;}}}}if(J){J=J.substr(0,J.length-1)}return J};this.objectToQs=this.objectToQS;this.getQSParam=function(L,F,K){var J=null;var I=C.test(L)?E.getQS(L):L;var H=K||{};if(I){var G=E.qsToObject(I,H);J=G[F]}return J};this.getQsParam=this.getQSParam;this.setQSParam=function(H,F,G){return A(&quot;set&quot;,H,F,G)};this.setQsParam=this.setQSParam;this.removeQSParam=function(G,F){return A(&quot;remove&quot;,G,F,null)};this.removeQsParam=this.removeQSParam;this.getQS=function(F){return F.split(C)[1]};this.getQs=this.getQS;this.getBase=function(F){return F.split(C)[0]}};fleegix.uri=new function(){this.getParamHash=fleegix.url.qsToObject;this.getParam=function(A,C){var B=C||fleegix.url.getQS(document.location.href);return fleegix.url.getQSParam(B,A)};this.setParam=function(A,D,C){var B=C||fleegix.url.getQS(document.location.href);return fleegix.url.setQSParam(B,A,D)};this.getQuery=fleegix.url.getQS;this.getBase=fleegix.url.getBase};fleegix.css=new function(){this.addClass=function(B,A){fleegix.css.removeClass(B,A);var C=B.className;C+=&quot; &quot;+A;C=fleegix.string.trim(C);B.className=C};this.removeClass=function(C,B){var D=C.className;var A=&quot;\\b&quot;+B+&quot;\\b&quot;;A=new RegExp(A,&quot;g&quot;);D=D.replace(A,&quot;&quot;);D=D.replace(&quot;  &quot;,&quot; &quot;);D=fleegix.string.trim(D);C.className=D};this.replaceClass=function(B,A,C){this.removeClass(B,A);this.addClass(B,C)}};fleegix.event=new function(){var B=[];var A={};this.compatibilityMode=false;this.listen=function(){var G=arguments[0];var D=arguments[1];var F=this.compatibilityMode;var E={};var H={};if(typeof arguments[2]==&quot;function&quot;){E.method=arguments[2];H=arguments[3]||{}}else{E.context=arguments[2];E.method=arguments[3];H=arguments[4]||{}}if(!G){throw new Error(&quot;fleegix.listen called on an object (&quot;+G+&quot;) that does not exist.&quot;)}if(D==&quot;onmousewheel&quot;){if(window.addEventListener&amp;&amp;typeof G.onmousewheel==&quot;undefined&quot;){G.onmousewheel=null}}var C;if(this.compatibilityMode){if(G[D]&amp;&amp;G._fleegixEventListenReg){C=G._fleegixEventListenReg[D]}else{C=null}}else{C=G[D]?G[D].listenReg:null}if(!C){C={};C.orig={};C.orig.obj=G;C.orig.methName=D;if(G[D]){C.orig.methCode=G[D]}C.after=[];G[D]=function(){var L=F?G._fleegixEventListenReg[D]:G[D].listenReg;if(!L){if(G[&quot;_&quot;+D+&quot;_suppressErrors&quot;]){return false}else{throw new Error(&quot;Cannot execute handlers for &quot;+G+&quot;  \&quot;&quot;+D+&quot;\&quot;. Something (likely another JavaScript library) has removed the fleegix.event.listen handler registry.&quot;)}}var I=[];for(var K=0;K&lt;arguments.length;K++){I.push(arguments[K])}if(L.orig.methCode){L.orig.methCode.apply(L.orig.obj,I)}var M=null;if(G.attachEvent||G.nodeType||G.addEventListener){if(!I.length){try{switch(true){case !!G.ownerDocument:M=G.ownerDocument.parentWindow.event;break;case !!G.documentElement:M=G.documentElement.ownerDocument.parentWindow.event;break;case !!G.event:M=G.event;break;default:M=window.event;break}}catch(O){M=window.event}}else{M=I[0]}if(M){if(typeof M.target==&quot;undefined&quot;){M.target=M.srcElement}if(typeof M.srcElement==&quot;undefined&quot;){M.srcElement=M.target}if(M.type==&quot;DOMMouseScroll&quot;||M.type==&quot;mousewheel&quot;){if(M.wheelDelta){M.delta=M.wheelDelta/120}else{if(M.detail){M.delta=-M.detail/3}}}I[0]=M}}for(var K=0;K&lt;L.after.length;K++){var J=L.after[K];var N=null;var P=null;if(!J.context){N=J.method;P=window}else{N=J.context[J.method];P=J.context}if(typeof N!=&quot;function&quot;){throw (N+&quot; is not an executable function.&quot;)}else{N.apply(P,I)}M=I[0];if(J.stopPropagation){this.stopPropagation(M)}if(J.preventDefault){this.preventDefault(M)}}};if(this.compatibilityMode){if(!G._fleegixEventListenReg){G._fleegixEventListenReg={}}G._fleegixEventListenReg[D]=C}else{G[D].listenReg=C}B.push(C);if(D==&quot;onmousewheel&quot;){if(window.addEventListener){G.addEventListener(&quot;DOMMouseScroll&quot;,G.onmousewheel,false)}}}C.after.push(E);if(this.compatibilityMode){if(!G._fleegixEventListenReg){G._fleegixEventListenReg={}}G._fleegixEventListenReg[D]=C}else{G[D].listenReg=C}};this.unlisten=function(){var H=arguments[0];var E=arguments[1];var D;if(this.compatibilityMode){if(H[E]&amp;&amp;H._fleegixEventListenReg){D=H._fleegixEventListenReg[E]}else{D=null}}else{D=H[E]?H[E].listenReg:null}var C=null;if(!D){return false}for(var F=0;F&lt;D.after.length;F++){var G=D.after[F];if(typeof arguments[2]==&quot;function&quot;){if(G.method==arguments[2]){D.after.splice(F,1);break}}else{if(G.context==arguments[2]&amp;&amp;G.method==arguments[3]){D.after.splice(F,1);break}}}if(this.compatibilityMode){H._fleegixEventListenReg[E]=D}else{H[E].listenReg=D}};this.flush=function(){for(var C=0;C&lt;B.length;C++){var D=B[C];removeObj=D.orig.obj;removeMethod=D.orig.methName;removeObj[removeMethod]=null}};this.subscribe=function(C,D,E){if(!D){return }if(!A[C]){A[C]={};A[C].audience=[]}else{this.unsubscribe(C,D)}A[C].audience.push([D,E])};this.unsubscribe=function(E,D){if(!D){A[E]=null}else{if(A[E]){var F=A[E].audience;for(var C=0;C&lt;F.length;C++){if(F[C][0]==D){F.splice(C,1)}}}}};this.publish=function(F,G){if(A[F]){var H=A[F].audience;for(var D=0;D&lt;H.length;D++){var C=H[D][0];var E=H[D][1];C[E](G)}}};this.getSrcElementByAttribute=function(D,E){var C;if(D.srcElement){C=D.srcElement}else{if(D.target){C=D.target}}if(!C||typeof C[E]==&quot;undefined&quot;){return null}else{while(!C[E]||C.nodeType==3){if(C.parentNode){C=C.parentNode}else{return null}}}return C};this.getSrcElementId=function(D){var C=this.getSrcElementByAttribute(D,&quot;id&quot;)||null;return C.id||null};this.annihilate=function(C){this.stopPropagation(C);this.preventDefault(C)};this.stopPropagation=function(C){if(C.stopPropagation){C.stopPropagation()}else{C.cancelBubble=true}return C};this.preventDefault=function(C){if(C.preventDefault){C.preventDefault()}else{C.returnValue=false}return C};this.suppressHandlerErrors=function(D,C){D[&quot;_&quot;+C+&quot;_suppressErrors&quot;]=true}};fleegix.xhr=new function(){this.maxXhrs=5;this.lastReqId=0;this.debug=false;this.defaultTimeoutSeconds=300;this.useDefaultErrHandlerForSync=true;this.responseFormats={TXT:&quot;text&quot;,XML:&quot;xml&quot;,OBJ:&quot;object&quot;};this.get=function(){var W={};var R=null;var T=Array.prototype.slice.apply(arguments);if(typeof T[0]==&quot;function&quot;){W.async=true;R=T.shift()}else{W.async=false}var S=T.shift();if(typeof T[0]==&quot;object&quot;){var U=T.shift();for(var V in U){W[V]=U[V]}}else{W.responseFormat=T.shift()||&quot;text&quot;}W.handleSuccess=R;W.url=S;return this.doReq(W)};this.doGet=function(){return this.get.apply(this,arguments)};this.post=function(){var X={};var R=null;var T=Array.prototype.slice.apply(arguments);if(typeof T[0]==&quot;function&quot;){X.async=true;R=T.shift()}else{X.async=false}var S=T.shift();var V=T.shift();if(typeof T[0]==&quot;object&quot;){var U=T.shift();for(var W in U){X[W]=U[W]}}else{X.responseFormat=T.shift()||&quot;text&quot;}X.handleSuccess=R;X.url=S;X.data=V;X.method=&quot;POST&quot;;return this.doReq(X)};this.doPost=function(){return this.post.apply(this,arguments)};this.doReq=function(R){return this.send(R)};this.send=function(V){var S=V||{};var R=new fleegix.xhr.Request();var U=null;for(var T in S){if(S.hasOwnProperty(T)){R[T]=S[T]}}R.method=R.method.toUpperCase();R.id=this.lastReqId;this.lastReqId++;if(R.async){if(Q.length){U=Q.shift()}else{if(F.length&lt;this.maxXhrs){U=B()}}if(U!==null){N(R,U)}else{if(R.uber){J.unshift(R)}else{J.push(R)}}return R.id}else{return N(R)}};this.abort=function(T){var S=P[T];var R=F[S.xhrId];if(R){R.onreadystatechange=function(){};R.abort();S.aborted=true;A(S);return true}else{return false}};this.isReqSuccessful=function(S){var R=S.status;if(!R){return false}if(document.all&amp;&amp;R==1223){R=204}if((R&gt;199&amp;&amp;R&lt;300)||R==304){return true}else{return false}};var H=this;var E=null;var O;var F=[];var J=[];var Q=[];var P={};var M=[];var C=null;var G=null;_processingWatcherId=null;var B=function(U){var T=0;var S=[&quot;Msxml2.XMLHTTP.6.0&quot;,&quot;MSXML2.XMLHTTP.3.0&quot;,&quot;Microsoft.XMLHTTP&quot;];var R=null;if(window.XMLHttpRequest){R=new XMLHttpRequest()}else{if(window.ActiveXObject){if(E){R=new ActiveXObject(E)}else{for(var T=0;T&lt;S.length;T++){try{R=new ActiveXObject(S[T]);E=S[T];break}catch(W){}}}}}if(R){if(U){return R}else{F.push(R);var V=F.length-1;return V}}else{throw new Error(&quot;Could not create XMLHttpRequest object.&quot;)}};var N=function(a,b){var X=null;var Y=null;var S=&quot;&quot;;var V=null;if(a.async){X=b;Y=F[X];P[a.id]=a;M.unshift(a);a.xhrId=X}else{if(!C){C=B(true)}Y=C;G=a}if(a.preventCache){var T=new Date().getTime();S=a.url.indexOf(&quot;?&quot;)&gt;-1?a.url+&quot;&amp;preventCache=&quot;+T:a.url+&quot;?preventCache=&quot;+T}else{S=a.url}if(document.all){Y.abort()}if(a.username&amp;&amp;a.password){Y.open(a.method,S,a.async,a.username,a.password)}else{Y.open(a.method,S,a.async)}if(a.mimeType&amp;&amp;navigator.userAgent.indexOf(&quot;MSIE&quot;)==-1){Y.overrideMimeType(a.mimeType)}var U=a.headers;for(var W in U){if(U.hasOwnProperty(W)){Y.setRequestHeader(W,U[W])}}if(a.method==&quot;POST&quot;||a.method==&quot;PUT&quot;){a.data=a.data||a.dataPayload;if(!a.data){a.data=&quot;&quot;}if(!fleegix.isSafari){var R=typeof a.data==&quot;string&quot;?a.data.length:0;Y.setRequestHeader(&quot;Content-Length&quot;,R)}if(typeof a.headers[&quot;Content-Type&quot;]==&quot;undefined&quot;){Y.setRequestHeader(&quot;Content-Type&quot;,&quot;application/x-www-form-urlencoded&quot;)}}Y.send(a.data);if(_processingWatcherId===null){_processingWatcherId=setTimeout(L,10)}if(!a.async){var Z=D(Y,a);G=null;if(M.length){_processingWatcherId=setTimeout(L,10)}else{_processingWatcherId=null}return Z}};var L=function(){var R=M;var W=new Date().getTime();if(G!==null){return }else{for(var T=0;T&lt;R.length;T++){var U=R[T];var S=F[U.xhrId];var V=((W-U.startTime)&gt;(U.timeoutSeconds*1000));switch(true){case (U.aborted||!S.readyState):M.splice(T,1);break;case V:M.splice(T,1);I(U);break;case (S.readyState==4):M.splice(T,1);D.call(H,S,U);break}}}clearTimeout(_processingWatcherId);if(M.length){_processingWatcherId=setTimeout(L,10)}else{_processingWatcherId=null}};var D=function(R,S){var U;switch(S.responseFormat){case&quot;xml&quot;:U=R.responseXML;break;case&quot;object&quot;:U=R;break;case&quot;text&quot;:default:U=R.responseText;break}if(S.handleAll){S.handleAll(U,S.id)}else{try{switch(true){case H.isReqSuccessful(R):if(S.async){if(!S.handleSuccess){throw new Error(&quot;No response handler defined for this request&quot;)}else{S.handleSuccess(U,S.id)}}else{return U}break;case (R.status==0):if(H.debug){throw new Error(&quot;XMLHttpRequest HTTP status is zero.&quot;)}break;case (R.status==O):if(H.debug){throw new Error(&quot;XMLHttpRequest HTTP status not set.&quot;)}break;default:if(!S.async&amp;&amp;!H.useDefaultErrHandlerForSync){return U}else{if(S.handleErr){S.handleErr(U,S.id)}else{K(R)}}break}}catch(T){throw T}}if(S.async){A(S)}return true};var I=function(R){if(H.abort.apply(H,[R.id])){if(typeof R.handleTimeout==&quot;function&quot;){R.handleTimeout()}else{alert(&quot;XMLHttpRequest to &quot;+R.url+&quot; timed out.&quot;)}}};var A=function(S){delete P[S.id];if(J.length){var R=J.shift();R.startTime=new Date().getTime();N(R,S.xhrId)}else{Q.push(S.xhrId)}};var K=function(S){var R;try{R=window.open(&quot;&quot;,&quot;errorWin&quot;);R.document.body.innerHTML=S.responseText}catch(T){alert(&quot;An error occurred, but the error message cannot be displayed because of your browser's pop-up blocker.\nPlease allow pop-ups from this Web site.&quot;)}}};fleegix.xhr.Request=function(){this.id=0;this.xhrId=null;this.url=null;this.status=null;this.statusText=&quot;&quot;;this.method=&quot;GET&quot;;this.async=true;this.data=null;this.readyState=null;this.responseText=null;this.responseXML=null;this.handleSuccess=null;this.handleErr=null;this.handleAll=null;this.handleTimeout=null;this.responseFormat=fleegix.xhr.responseFormats.TXT;this.mimeType=null;this.username=&quot;&quot;;this.password=&quot;&quot;;this.headers=[];this.preventCache=false;this.startTime=new Date().getTime();this.timeoutSeconds=fleegix.xhr.defaultTimeoutSeconds;this.uber=false;this.aborted=false};fleegix.xhr.Request.prototype.setRequestHeader=function(B,A){this.headers.push(B+&quot;: &quot;+A)};fleegix.json=new function(){var _cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;this.serialize=function(obj){var str=&quot;&quot;;switch(typeof obj){case&quot;object&quot;:switch(true){case obj===null:return&quot;null&quot;;break;case obj instanceof Array:for(var i=0;i&lt;obj.length;i++){if(str){str+=&quot;,&quot;}str+=fleegix.json.serialize(obj[i])}return&quot;[&quot;+str+&quot;]&quot;;break;case (fleegix.isFF&amp;&amp;obj instanceof DOMException):str+=&quot;\&quot;&quot;+obj.toString()+&quot;\&quot;&quot;;break;case typeof obj.toString!=&quot;undefined&quot;:for(var i in obj){if(str){str+=&quot;,&quot;}str+=&quot;\&quot;&quot;+i+&quot;\&quot;:&quot;;if(typeof obj[i]==&quot;undefined&quot;){str+=&quot;\&quot;undefined\&quot;&quot;}else{str+=fleegix.json.serialize(obj[i])}}return&quot;{&quot;+str+&quot;}&quot;;break}return str;case&quot;unknown&quot;:case&quot;undefined&quot;:case&quot;function&quot;:return&quot;\&quot;undefined\&quot;&quot;;case&quot;string&quot;:str+=&quot;\&quot;&quot;+obj.replace(/([&quot;\\])/g,&quot;\\$1&quot;).replace(/\r/g,&quot;&quot;).replace(/\n/g,&quot;\\n&quot;)+&quot;\&quot;&quot;;return str;default:return String(obj)}};this.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&amp;&amp;typeof value===&quot;object&quot;){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}_cx.lastIndex=0;if(_cx.test(text)){text=text.replace(_cx,function(a){return&quot;\\u&quot;+(&quot;0000&quot;+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:[&quot;\\\/bfnrt]|u[0-9a-fA-F]{4})/g,&quot;@&quot;).replace(/&quot;[^&quot;\\\n\r]*&quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,&quot;]&quot;).replace(/(?:^|:|,)(?:\s*\[)+/g,&quot;&quot;))){j=eval(&quot;(&quot;+text+&quot;)&quot;);return typeof reviver===&quot;function&quot;?walk({&quot;&quot;:j},&quot;&quot;):j}throw new SyntaxError(&quot;JSON not parseable.&quot;)}};fleegix.string=new function(){var B=/^\s+/;var A=/\s+$/;var D=/^\s+|\s+$/g;var C=new RegExp(&quot;(((https?):\\/\\/|www\\.)(?:([a-zA-Z\\d\\-_]+)@?([a-zA-Z\\d\\-_]+)\\:)?((?:(?:(?:(?:[a-zA-Z\\d](?:(?:[a-zA-Z\\d]|-)*[a-zA-Z\\d])?)\\.)*([a-zA-Z](?:(?:[a-zA-Z\\d]|-)*[a-zA-Z\\d])?))|(?:(?:\\d+)(?:\\.(?:\\d+)){3}))(?::(\\d+))?)(?:\\/((?:(?:(?:[a-zA-Z\\d$\\-_.+!*'(),~#]|(?:%[a-fA-F\\d]{2}))|[;:@&amp;=#])*)(?:\\/(?:(?:(?:[a-zA-Z\\d$\\-_.+!*'(),~#]|(?:%[a-fA-F\\d]{2}))|[;:@&amp;=#])*))*)(\\?(?:(?:(?:[a-zA-Z\\d$\\-_.+!*'(),~#]|(?:%[a-fA-F\\d]{2}))|[;:@&amp;=#])*))?)?)&quot;,&quot;g&quot;);this.toArray=function(G){var E=[];for(var F=0;F&lt;G.length;F++){E[F]=G.substr(F,1)}return E};this.reverse=function(E){return this.toArray(E).reverse().join(&quot;&quot;)};this.ltrim=function(G,F){var E=F?new RegExp(&quot;^&quot;+F+&quot;+&quot;):B;return G.replace(E,&quot;&quot;)};this.rtrim=function(G,F){var E=F?new RegExp(F+&quot;+$&quot;):A;return G.replace(E,&quot;&quot;)};this.trim=function(G,F){var E=F?new RegExp(&quot;^&quot;+F+&quot;+|&quot;+F+&quot;+$&quot;,&quot;g&quot;):D;return G.replace(E,&quot;&quot;)};this.lpad=function(H,G,F){var E=H;while(E.length&lt;F){E=G+E}return E};this.rpad=function(H,G,F){var E=H;while(E.length&lt;F){E=E+G}return E};this.toLowerCaseWithUnderscores=function(E){return E.replace(/([A-Z]+)/g,&quot;_$1&quot;).toLowerCase().replace(/^_/,&quot;&quot;)};this.deCamelize=function(E){return this.toLowerCaseWithUnderscores(E)};this.toCamelCase=function(E){return E.replace(/_[a-z]{1}/g,function(F){return F.replace(&quot;_&quot;,&quot;&quot;).toUpperCase()})};this.camelize=function(E){return this.toCamelCase(E)};this.capitalize=function(E){return E.substr(0,1).toUpperCase()+E.substr(1)};this.escapeXML=function(E){return E.replace(/&amp;/gm,&quot;&amp;amp;&quot;).replace(/&lt;/gm,&quot;&amp;lt;&quot;).replace(/&gt;/gm,&quot;&amp;gt;&quot;).replace(/&quot;/gm,&quot;&amp;quot;&quot;)};this.unescapeXML=function(E){return E.replace(/&amp;amp;/gm,&quot;&amp;&quot;).replace(/&amp;lt;/gm,&quot;&lt;&quot;).replace(/&amp;gt;/gm,&quot;&gt;&quot;).replace(/&amp;quot;/gm,&quot;\&quot;&quot;)};this.addHrefLinks=function(O,P){var Q=O||&quot;&quot;;var M=C;var F;var G;var I;var L;var K={};while(L=M.exec(Q)){F=L[0];F=F.replace(/[,)\.\?\!]+$/,&quot;&quot;);K[F]=true}var J;var E;var N=P?&quot; class=\&quot;&quot;+P+&quot;\&quot;&quot;:&quot;&quot;;for(var H in K){J=Q.split(H);E=H.indexOf(&quot;www&quot;)===0?&quot;http://&quot;+H:H;Q=J.join(&quot;&lt;a&quot;+N+&quot; href=\&quot;&quot;+E+&quot;\&quot;&gt;&quot;+H+&quot;&lt;/a&gt;&quot;)}return Q}};fleegix.cookie=new function(){this.set=function(B,H,E){var A=E||{};var K=&quot;/&quot;;var I=0;var G=0;var F=0;var D=&quot;&quot;;var J=0;if(typeof E==&quot;object&quot;){K=A.path||&quot;/&quot;;I=A.days||0;G=A.hours||0;F=A.minutes||0}else{K=E||&quot;/&quot;}J+=I?I*24*60*60*1000:0;J+=G?G*60*60*1000:0;J+=F?F*60*1000:0;if(J){var C=new Date();C.setTime(C.getTime()+J);D=&quot;; expires=&quot;+C.toGMTString()}else{D=&quot;&quot;}document.cookie=B+&quot;=&quot;+H+D+&quot;; path=&quot;+K};this.get=function(B){var D=B+&quot;=&quot;;var A=document.cookie.split(&quot;;&quot;);for(var C=0;C&lt;A.length;C++){var E=A[C];while(E.charAt(0)==&quot; &quot;){E=E.substring(1,E.length)}if(E.indexOf(D)===0){return E.substring(D.length,E.length)}}return null};this.create=this.set;this.destroy=function(A,C){var B={};B.minutes=-1;if(C){B.path=C}this.set(A,&quot;&quot;,B)}};fleegix.form={};fleegix.form.serialize=function(H,B){var G=fleegix.form.toObject(H,B);var A=B||{};var J=&quot;&quot;;var I=null;if(A.stripTags){I=/&lt;[^&gt;]*&gt;/g}for(var C in G){var N=&quot;&quot;;var L=G[C];if(L){if(typeof L==&quot;string&quot;){N=A.stripTags?L.replace(I,&quot;&quot;):L;J+=C+&quot;=&quot;+encodeURIComponent(N)}else{var M=&quot;&quot;;if(A.collapseMulti){M=&quot;,&quot;;J+=C+&quot;=&quot;}else{M=&quot;&amp;&quot;}for(var D=0;D&lt;L.length;D++){N=A.stripTags?L[D].replace(I,&quot;&quot;):L[D];N=(!A.collapseMulti)?C+&quot;=&quot;+encodeURIComponent(N):encodeURIComponent(N);J+=N+M}J=J.substr(0,J.length-1)}J+=&quot;&amp;&quot;}else{if(A.includeEmpty){J+=C+&quot;=&amp;&quot;}}}if(A.deCamelizeParams){if(!fleegix.string){throw new Error(&quot;deCamelize option depends on fleegix.string module.&quot;)}var F=J.split(&quot;&amp;&quot;);var K;J=&quot;&quot;;for(var E=0;E&lt;F.length;E++){K=F[E].split(&quot;=&quot;);if(K[0]){J+=fleegix.string.deCamelize(K[0])+&quot;=&quot;+K[1]+&quot;&amp;&quot;}}}J=J.substr(0,J.length-1);return J};fleegix.form.toObject=function(K,D){var A=D||{};var J={};function H(R,Q){if(R){var P=null;if(typeof R==&quot;string&quot;){P=[];P.push(R)}else{P=R}P.push(Q);return P}else{return Q}}for(var I=0;I&lt;K.elements.length;I++){var F=K.elements[I];if(F.name){var O=F.name.indexOf(&quot;[&quot;);var C=F.name.indexOf(&quot;]&quot;);var N=&quot;&quot;;var B=&quot;&quot;;var M;var E;if(A.hierarchical&amp;&amp;(O&gt;0)&amp;&amp;(C&gt;2)){N=F.name.substring(0,O);B=F.name.substring(O+1,C);if(typeof J[N]==&quot;undefined&quot;){J[N]={}}M=J[N];E=B}else{M=J;E=F.name}switch(F.type){case&quot;text&quot;:case&quot;hidden&quot;:case&quot;password&quot;:case&quot;textarea&quot;:case&quot;select-one&quot;:M[E]=F.value;break;case&quot;select-multiple&quot;:for(var G=0;G&lt;F.options.length;G++){var L=F.options[G];if(L.selected){M[E]=H(M[E],L.value)}}break;case&quot;radio&quot;:if(F.checked){M[E]=F.value}break;case&quot;checkbox&quot;:if(F.checked){M[E]=H(M[E],F.value)}break;case&quot;submit&quot;:case&quot;reset&quot;:case&quot;file&quot;:case&quot;image&quot;:case&quot;button&quot;:if(A.pedantic){M[E]=F.value}break}}}return J};fleegix.form.toHash=fleegix.form.toObject
\ No newline at end of file
+if(typeof fleegix==&quot;undefined&quot;){var fleegix={}}if(typeof $==&quot;undefined&quot;){var $=function(A){return document.getElementById(A)}}var $elem=function(A,E){var C=E||{};var B=document.createElement(A);for(var D in C){B[D]=C[D]}return B};var $text=function(A){return document.createTextNode(A)};fleegix.extend=function(A,B){return function(){A.apply(this,arguments);A.prototype.constructor.apply(this,arguments);B.apply(this,arguments);this.superClass=A;this.subClass=B}};fleegix.mixin=function(E,C){var B;if(typeof C==&quot;function&quot;){B=new C()}else{B=C}var A={};for(var D in B){if(typeof A[D]==&quot;undefined&quot;||baseObjj[D]!=B[D]){E[D]=B[D]}}return E};fleegix.clone=function(C){if(typeof C==&quot;object&quot;){var A;if(typeof C.constructor==&quot;function&quot;){A=new C.constructor()}else{A={}}for(var B in C){if(typeof C[B]==&quot;object&quot;&amp;&amp;C[B]!==null){A[B]=fleegix.clone(C[B])}else{A[B]=C[B]}}}else{A=C}return A};fleegix.ua=new function(){var C=navigator.userAgent;var A=function(F,G){var E=G.exec(F);if(E&amp;&amp;E.length&gt;1){E=E[1].substr(0,1);if(!isNaN(E)){return parseInt(E)}else{return null}}return null};this.isWebKit=C.indexOf(&quot;AppleWebKit&quot;)&gt;-1;this.isKHTML=C.indexOf(&quot;KHTML&quot;)&gt;-1;this.isGecko=C.indexOf(&quot;Gecko&quot;)&gt;-1&amp;&amp;!this.isWebKit&amp;&amp;!this.isKHTML;this.isOpera=C.indexOf(&quot;Opera&quot;)&gt;-1;this.isChrome=C.indexOf(&quot;Chrome&quot;)&gt;-1;this.isSafari=C.indexOf(&quot;Safari&quot;)&gt;-1&amp;&amp;!this.isChrome;this.isFF=C.indexOf(&quot;Firefox&quot;)&gt;-1||C.indexOf(&quot;Iceweasel&quot;)&gt;-1||C.indexOf(&quot;IceCat&quot;)&gt;-1;this.isFirefox=this.isFF;this.isIE=C.indexOf(&quot;MSIE &quot;)&gt;-1&amp;&amp;!this.isOpera;this.isIPhone=C.indexOf(&quot;iPhone&quot;)&gt;-1;this.isMobile=this.isIPhone||C.indexOf(&quot;Opera Mini&quot;)&gt;-1;this.isMac=C.indexOf(&quot;Mac&quot;)&gt;-1;this.isUnix=C.indexOf(&quot;Linux&quot;)&gt;-1||C.indexOf(&quot;BSD&quot;)&gt;-1||C.indexOf(&quot;SunOS&quot;)&gt;-1;this.isLinux=C.indexOf(&quot;Linux&quot;)&gt;-1;this.isWindows=C.indexOf(&quot;Windows&quot;)&gt;-1||C.indexOf(&quot;Win&quot;);this.majorVersion=null;var B={FF:/Firefox\/([0-9\.]*)/,Safari:/Version\/([0-9\.]*) /,IE:/MSIE ([0-9\.]*);/,Opera:/Opera\/([0-9\.]*) /,Chrome:/Chrome\/([0-9\.]*)/};for(var D in B){if(this[&quot;is&quot;+D]){this.majorVersion=A(C,B[D])}}for(var D in this){fleegix[D]=this[D]}};fleegix.fx=new function(){function B(G,D,H){var F={};var M=0;var I=0;if(D.blindType==&quot;clip&quot;){M=H==&quot;down&quot;?0:G.offsetHeight;I=H==&quot;down&quot;?G.offsetHeight:0;M=[0,G.offsetWidth,M,0];I=[0,G.offsetWidth,I,0];F.props={clip:[M,I]}}else{if(H==&quot;down&quot;){if(D.endHeight){I=D.endHeight}else{G.style.height=&quot;&quot;;var J=document.createElement(&quot;div&quot;);J.position=&quot;absolute&quot;;J.style.top=&quot;-9999999999px&quot;;J.style.left=&quot;-9999999999px&quot;;var K=G.parentNode;var C=K.removeChild(G);J.appendChild(C);document.body.appendChild(J);I=C.offsetHeight;G=J.removeChild(C);var L=document.body.removeChild(J);G.style.height=&quot;0px&quot;;K.appendChild(G)}M=0}else{M=G.offsetHeight;I=0}F.props={height:[M,I]}}for(var E in D){F[E]=D[E]}F.trans=&quot;lightEaseIn&quot;;return new fleegix.fx.Effecter(G,F)}function A(F,E,C){var D=C==&quot;in&quot;?0:100;var H=C==&quot;in&quot;?100:0;var I={props:{opacity:[D,H]},trans:&quot;lightEaseIn&quot;};for(var G in E){I[G]=E[G]}return new fleegix.fx.Effecter(F,I)}this.fadeOut=function(E,D){return A(E,D,&quot;out&quot;);E.style.visibility=&quot;hidden&quot;;var C=this.setCssProp(E,&quot;opacity&quot;,100)};this.fadeIn=function(E,D){var C=this.setCssProp(E,&quot;opacity&quot;,0);E.style.visibility=&quot;visible&quot;;return A(E,D,&quot;in&quot;)};this.blindUp=function(D,C){var E=C||{};E.blindType=E.blindType||&quot;height&quot;;return B(D,E,&quot;up&quot;)};this.blindDown=function(D,C){var E=C||{};E.blindType=E.blindType||&quot;height&quot;;return B(D,E,&quot;down&quot;)};this.setCSSProp=function(D,E,C){if(E==&quot;opacity&quot;){if(document.all){D.style.filter=&quot;alpha(opacity=&quot;+C+&quot;)&quot;}else{var F=C/100;D.style.opacity=F}}else{if(E==&quot;clip&quot;||E.toLowerCase().indexOf(&quot;color&quot;)&gt;-1){D.style[E]=C}else{D.style[E]=document.all?parseInt(C,10)+&quot;px&quot;:C+&quot;px&quot;}}return true};this.setCssProp=this.setCSSProp;this.hexPat=/^[#]{0,1}([\w]{1,2})([\w]{1,2})([\w]{1,2})$/;this.hex2rgb=function(G){var C=[];var F=G.match(this.hexPat);if(F){for(var D=1;D&lt;F.length;D++){var E=F[D];E=E.length==1?E+E:E;C.push(parseInt(E,16))}return C}else{throw (&quot;\&quot;&quot;+G+&quot;\&quot; not a valid hex value.&quot;)}}};fleegix.fx.Effecter=function(B,A){var C=this;this.props=A.props;this.trans=A.trans||&quot;lightEaseIn&quot;;this.duration=A.duration||500;this.fps=30;this.startTime=new Date().getTime();this.timeSpent=0;this.doBeforeStart=A.doBeforeStart||null;this.doAfterFinish=A.doAfterFinish||null;this.autoStart=A.autoStart===false?false:true;if(typeof this.transitions[this.trans]!=&quot;function&quot;){throw (&quot;\&quot;&quot;+this.trans+&quot;\&quot; is not a valid transition.&quot;)}this.start=function(){C.id=setInterval(function(){C.doStep.apply(C,[B])},Math.round(1000/C.fps));if(typeof A.doBeforeStart==&quot;function&quot;){C.doBeforeStart()}};if(this.autoStart){this.start()}return this};fleegix.fx.Effecter.prototype.doStep=function(C){var B=new Date().getTime();var D=this.props;if(B&lt;(this.startTime+this.duration)){this.timeSpent=B-this.startTime;for(var A in D){fleegix.fx.setCSSProp(C,A,this.calcCurrVal(A))}}else{for(var A in D){if(A==&quot;clip&quot;){fleegix.fx.setCSSProp(C,A,&quot;rect(&quot;+D[A][1].join(&quot;px,&quot;)+&quot;px)&quot;)}else{fleegix.fx.setCSSProp(C,A,D[A][1])}}clearInterval(this.id);if(typeof this.doAfterFinish==&quot;function&quot;){this.doAfterFinish()}}};fleegix.fx.Effecter.prototype.calcCurrVal=function(G){var A=this.props[G][0];var F=this.props[G][1];var I=this.transitions[this.trans];var B;var D;var J;var H;var E;if(G.toLowerCase().indexOf(&quot;color&quot;)&gt;-1){B=fleegix.fx.hex2rgb(A);D=fleegix.fx.hex2rgb(F);J=[];for(var C=0;C&lt;B.length;C++){H=B[C];E=D[C];J.push(parseInt(I(this.timeSpent,H,(E-H),this.duration),10))}return&quot;rgb(&quot;+J.join()+&quot;)&quot;}else{if(G==&quot;clip&quot;){B=A;D=F;J=[];for(var C=0;C&lt;B.length;C++){H=B[C];E=D[C];J.push(parseInt(I(this.timeSpent,H,(E-H),this.duration),10))}return&quot;rect(&quot;+J.join(&quot;px,&quot;)+&quot;px)&quot;}else{return I(this.timeSpent,A,(F-A),this.duration)}}};fleegix.fx.Effecter.prototype.transitions={linear:function(B,A,D,C){return D*(B/C)+A},lightEaseIn:function(B,A,D,C){return D*(B/=C)*B+A},lightEaseOut:function(B,A,D,C){return -D*(B/=C)*(B-2)+A},lightEaseInOut:function(B,A,D,C){if((B/=C/2)&lt;1){return D/2*B*B+A}return -D/2*((--B)*(B-2)-1)+A},heavyEaseIn:function(B,A,D,C){return D*(B/=C)*B*B+A},heavyEaseOut:function(B,A,D,C){return D*((B=B/C-1)*B*B+1)+A},heavyEaseInOut:function(B,A,D,C){if((B/=C/2)&lt;1){return D/2*B*B*B+A}return D/2*((B-=2)*B*B+2)+A}};fleegix.dom=new function(){var A=function(B){if(document.all){if(document.documentElement&amp;&amp;document.documentElement[&quot;client&quot;+B]){return document.documentElement[&quot;client&quot;+B]}else{return document.body[&quot;client&quot;+B]}}else{return window[&quot;inner&quot;+B]}};this.getViewportWidth=function(){return A(&quot;Width&quot;)};this.getViewportHeight=function(){return A(&quot;Height&quot;)};this.center=function(G){var B=G.offsetWidth;var E=G.offsetHeight;var F=fleegix.dom.getViewportWidth();var H=fleegix.dom.getViewportHeight();var D=parseInt((F/2)-(B/2),10);var C=parseInt((H/2)-(E/2),10);C+=document.documentElement.scrollTop;G.style.left=D+&quot;px&quot;;G.style.top=C+&quot;px&quot;;return true};this.getOffset=function(D){var C=function(F){var G=0;var E=0;if(F.offsetParent){do{G+=F.offsetLeft;E+=F.offsetTop}while(F=F.offsetParent)}return{left:G,top:E}};var B=null;if(fleegix.isIE||fleegix.isMoz){B=D.getBoundingClientRect()}else{B=C(D)}return B}};fleegix.url=new function(){var E=this;var D=&quot;\\?|;&quot;;var C=new RegExp(D);var B=new RegExp(&quot;(&quot;+D+&quot;)&quot;);var A=function(L,M,F,I){var K=B.exec(M);var H;var G;var N;var J;var O=&quot;&quot;;if(K&amp;&amp;K.length&gt;0){H=K[0]}if(H){G=E.getBase(M);N=E.getQS(M)}else{N=M}J=E.qsToObject(N,{arrayizeMulti:true});if(L==&quot;set&quot;){J[F]=I}else{delete J[F]}if(G){O=G+H}O+=E.objectToQS(J);return O};this.qsToObject=function(N,H){var F=H||{};var M={};var O=F.arrayizeMulti||false;if(N){var L=N.split(&quot;&amp;&quot;);for(var K=0;K&lt;L.length;K++){var J=L[K].split(&quot;=&quot;);var G=J[0];var I=decodeURIComponent(J[1]);if(typeof M[G]!=&quot;undefined&quot;&amp;&amp;O){if(typeof M[G]==&quot;string&quot;){M[G]=[M[G]]}M[G].push(I)}else{M[G]=I}}}return M};this.objectToQS=function(K,G){var F=G||{};var N=&quot;&quot;;var M=F.stripTags?/&lt;[^&gt;]*&gt;/g:null;for(var H in K){var R=&quot;&quot;;var P=K[H];if(P!=undefined){if(P.length&amp;&amp;typeof P!=&quot;string&quot;){var Q=&quot;&quot;;if(F.collapseMulti){Q=&quot;,&quot;;N+=H+&quot;=&quot;}else{Q=&quot;&amp;&quot;}for(var I=0;I&lt;P.length;I++){R=F.stripTags?P[I].replace(M,&quot;&quot;):P[I];R=(!F.collapseMulti)?H+&quot;=&quot;+encodeURIComponent(R):encodeURIComponent(R);N+=R+Q}N=N.substr(0,N.length-1)}else{R=F.stripTags?P.replace(M,&quot;&quot;):P;N+=H+&quot;=&quot;+encodeURIComponent(R)}N+=&quot;&amp;&quot;}else{if(F.includeEmpty){N+=H+&quot;=&amp;&quot;}}}if(F.deCamelizeParams){if(!fleegix.string){throw new Error(&quot;deCamelize option depends on fleegix.string module.&quot;)}var L=N.split(&quot;&amp;&quot;);var O;N=&quot;&quot;;for(var J=0;J&lt;L.length;J++){O=L[J].split(&quot;=&quot;);if(O[0]){N+=fleegix.string.deCamelize(O[0])+&quot;=&quot;+O[1]+&quot;&amp;&quot;}}}N=N.substr(0,N.length-1);return N};this.objectToQs=this.objectToQS;this.getQSParam=function(L,F,K){var J=null;var I=C.test(L)?E.getQS(L):L;var H=K||{};if(I){var G=E.qsToObject(I,H);J=G[F]}return J};this.getQsParam=this.getQSParam;this.setQSParam=function(H,F,G){return A(&quot;set&quot;,H,F,G)};this.setQsParam=this.setQSParam;this.removeQSParam=function(G,F){return A(&quot;remove&quot;,G,F,null)};this.removeQsParam=this.removeQSParam;this.getQS=function(F){return F.split(C)[1]};this.getQs=this.getQS;this.getBase=function(F){return F.split(C)[0]}};fleegix.uri=new function(){this.getParamHash=fleegix.url.qsToObject;this.getParam=function(A,C){var B=C||fleegix.url.getQS(document.location.href);return fleegix.url.getQSParam(B,A)};this.setParam=function(A,D,C){var B=C||fleegix.url.getQS(document.location.href);return fleegix.url.setQSParam(B,A,D)};this.getQuery=fleegix.url.getQS;this.getBase=fleegix.url.getBase};fleegix.css=new function(){this.addClass=function(B,A){fleegix.css.removeClass(B,A);var C=B.className;C+=&quot; &quot;+A;C=fleegix.string.trim(C);B.className=C};this.removeClass=function(C,B){var D=C.className;var A=&quot;\\b&quot;+B+&quot;\\b&quot;;A=new RegExp(A,&quot;g&quot;);D=D.replace(A,&quot;&quot;);D=D.replace(&quot;  &quot;,&quot; &quot;);D=fleegix.string.trim(D);C.className=D};this.replaceClass=function(B,A,C){this.removeClass(B,A);this.addClass(B,C)}};fleegix.event=new function(){var B=[];var A={};this.compatibilityMode=false;this.listen=function(){var G=arguments[0];var D=arguments[1];var F=this.compatibilityMode;var E={};var H={};if(typeof arguments[2]==&quot;function&quot;){E.method=arguments[2];H=arguments[3]||{}}else{E.context=arguments[2];E.method=arguments[3];H=arguments[4]||{}}if(!G){throw new Error(&quot;fleegix.listen called on an object (&quot;+G+&quot;) that does not exist.&quot;)}if(D==&quot;onmousewheel&quot;){if(window.addEventListener&amp;&amp;typeof G.onmousewheel==&quot;undefined&quot;){G.onmousewheel=null}}var C;if(this.compatibilityMode){if(G[D]&amp;&amp;G._fleegixEventListenReg){C=G._fleegixEventListenReg[D]}else{C=null}}else{C=G[D]?G[D].listenReg:null}if(!C){C={};C.orig={};C.orig.obj=G;C.orig.methName=D;if(G[D]){C.orig.methCode=G[D]}C.after=[];G[D]=function(){var L=F?G._fleegixEventListenReg[D]:G[D].listenReg;if(!L){if(G[&quot;_&quot;+D+&quot;_suppressErrors&quot;]){return false}else{throw new Error(&quot;Cannot execute handlers for &quot;+G+&quot;  \&quot;&quot;+D+&quot;\&quot;. Something (likely another JavaScript library) has removed the fleegix.event.listen handler registry.&quot;)}}var I=[];for(var K=0;K&lt;arguments.length;K++){I.push(arguments[K])}if(L.orig.methCode){L.orig.methCode.apply(L.orig.obj,I)}var M=null;if(G.attachEvent||G.nodeType||G.addEventListener){if(!I.length){try{switch(true){case !!G.ownerDocument:M=G.ownerDocument.parentWindow.event;break;case !!G.documentElement:M=G.documentElement.ownerDocument.parentWindow.event;break;case !!G.event:M=G.event;break;default:M=window.event;break}}catch(O){M=window.event}}else{M=I[0]}if(M){if(typeof M.target==&quot;undefined&quot;){M.target=M.srcElement}if(typeof M.srcElement==&quot;undefined&quot;){M.srcElement=M.target}if(M.type==&quot;DOMMouseScroll&quot;||M.type==&quot;mousewheel&quot;){if(M.wheelDelta){M.delta=M.wheelDelta/120}else{if(M.detail){M.delta=-M.detail/3}}}I[0]=M}}for(var K=0;K&lt;L.after.length;K++){var J=L.after[K];var N=null;var P=null;if(!J.context){N=J.method;P=window}else{N=J.context[J.method];P=J.context}if(typeof N!=&quot;function&quot;){throw (N+&quot; is not an executable function.&quot;)}else{N.apply(P,I)}M=I[0];if(J.stopPropagation){this.stopPropagation(M)}if(J.preventDefault){this.preventDefault(M)}}};if(this.compatibilityMode){if(!G._fleegixEventListenReg){G._fleegixEventListenReg={}}G._fleegixEventListenReg[D]=C}else{G[D].listenReg=C}B.push(C);if(D==&quot;onmousewheel&quot;){if(window.addEventListener){G.addEventListener(&quot;DOMMouseScroll&quot;,G.onmousewheel,false)}}}C.after.push(E);if(this.compatibilityMode){if(!G._fleegixEventListenReg){G._fleegixEventListenReg={}}G._fleegixEventListenReg[D]=C}else{G[D].listenReg=C}};this.unlisten=function(){var H=arguments[0];var E=arguments[1];var D;if(this.compatibilityMode){if(H[E]&amp;&amp;H._fleegixEventListenReg){D=H._fleegixEventListenReg[E]}else{D=null}}else{D=H[E]?H[E].listenReg:null}var C=null;if(!D){return false}for(var F=0;F&lt;D.after.length;F++){var G=D.after[F];if(typeof arguments[2]==&quot;function&quot;){if(G.method==arguments[2]){D.after.splice(F,1);break}}else{if(G.context==arguments[2]&amp;&amp;G.method==arguments[3]){D.after.splice(F,1);break}}}if(this.compatibilityMode){H._fleegixEventListenReg[E]=D}else{H[E].listenReg=D}};this.flush=function(){for(var C=0;C&lt;B.length;C++){var D=B[C];removeObj=D.orig.obj;removeMethod=D.orig.methName;removeObj[removeMethod]=null}};this.subscribe=function(C,D,E){if(!D){return }if(!A[C]){A[C]={};A[C].audience=[]}else{this.unsubscribe(C,D)}A[C].audience.push([D,E])};this.unsubscribe=function(E,D){if(!D){A[E]=null}else{if(A[E]){var F=A[E].audience;for(var C=0;C&lt;F.length;C++){if(F[C][0]==D){F.splice(C,1)}}}}};this.publish=function(F,G){if(A[F]){var H=A[F].audience;for(var D=0;D&lt;H.length;D++){var C=H[D][0];var E=H[D][1];C[E](G)}}};this.getSrcElementByAttribute=function(D,E){var C;if(D.srcElement){C=D.srcElement}else{if(D.target){C=D.target}}if(!C||typeof C[E]==&quot;undefined&quot;){return null}else{while(!C[E]||C.nodeType==3){if(C.parentNode){C=C.parentNode}else{return null}}}return C};this.getSrcElementId=function(D){var C=this.getSrcElementByAttribute(D,&quot;id&quot;)||null;return C.id||null};this.annihilate=function(C){this.stopPropagation(C);this.preventDefault(C)};this.stopPropagation=function(C){if(C.stopPropagation){C.stopPropagation()}else{C.cancelBubble=true}return C};this.preventDefault=function(C){if(C.preventDefault){C.preventDefault()}else{C.returnValue=false}return C};this.suppressHandlerErrors=function(D,C){D[&quot;_&quot;+C+&quot;_suppressErrors&quot;]=true}};fleegix.xhr=new function(){this.maxXhrs=5;this.lastReqId=0;this.debug=false;this.defaultTimeoutSeconds=300;this.useDefaultErrHandlerForSync=true;this.responseFormats={TXT:&quot;text&quot;,XML:&quot;xml&quot;,OBJ:&quot;object&quot;};this.get=function(){var X={};var S=null;var U=Array.prototype.slice.apply(arguments);if(typeof U[0]==&quot;function&quot;){X.async=true;S=U.shift()}else{X.async=false}var T=U.shift();if(typeof U[0]==&quot;object&quot;){var V=U.shift();for(var W in V){X[W]=V[W]}}else{X.responseFormat=U.shift()||&quot;text&quot;}X.handleSuccess=S;X.url=T;return this.doReq(X)};this.doGet=function(){return this.get.apply(this,arguments)};this.post=function(){var Y={};var S=null;var U=Array.prototype.slice.apply(arguments);if(typeof U[0]==&quot;function&quot;){Y.async=true;S=U.shift()}else{Y.async=false}var T=U.shift();var W=U.shift();if(typeof U[0]==&quot;object&quot;){var V=U.shift();for(var X in V){Y[X]=V[X]}}else{Y.responseFormat=U.shift()||&quot;text&quot;}Y.handleSuccess=S;Y.url=T;Y.data=W;Y.method=&quot;POST&quot;;return this.doReq(Y)};this.doPost=function(){return this.post.apply(this,arguments)};this.doReq=function(S){return this.send(S)};this.send=function(W){var T=W||{};var S=new fleegix.xhr.Request();var V=null;for(var U in T){if(T.hasOwnProperty(U)){S[U]=T[U]}}S.method=S.method.toUpperCase();S.id=this.lastReqId;this.lastReqId++;if(S.async){if(K.length){V=K.shift()}else{if(H.length&lt;this.maxXhrs){V=D()}}if(V!==null){G(S,V)}else{if(S.uber){J.unshift(S)}else{J.push(S)}}return S.id}else{return G(S)}};this.abort=function(U){var T=F[U];var S=H[T.xhrId];if(S){S.onreadystatechange=function(){};S.abort();T.aborted=true;O(T);return true}else{return false}};this.isReqSuccessful=function(T){var S=T.status;if(!S){return false}if(document.all&amp;&amp;S==1223){S=204}if((S&gt;199&amp;&amp;S&lt;300)||S==304){return true}else{return false}};var L=this;var Q=null;var M;var H=[];var J=[];var K=[];var F={};var N=[];var C=null;var I=null;var A=null;var D=function(V){var U=0;var T=[&quot;Msxml2.XMLHTTP.6.0&quot;,&quot;MSXML2.XMLHTTP.3.0&quot;,&quot;Microsoft.XMLHTTP&quot;];var S=null;if(window.XMLHttpRequest){S=new XMLHttpRequest()}else{if(window.ActiveXObject){if(Q){S=new ActiveXObject(Q)}else{for(var U=0;U&lt;T.length;U++){try{S=new ActiveXObject(T[U]);Q=T[U];break}catch(X){}}}}}if(S){if(V){return S}else{H.push(S);var W=H.length-1;return W}}else{throw new Error(&quot;Could not create XMLHttpRequest object.&quot;)}};var G=function(b,c){var Y=null;var Z=null;var T=&quot;&quot;;var W=null;if(b.async){Y=c;Z=H[Y];F[b.id]=b;N.unshift(b);b.xhrId=Y}else{if(!C){C=D(true)}Z=C;I=b}if(b.preventCache){var U=new Date().getTime();T=b.url.indexOf(&quot;?&quot;)&gt;-1?b.url+&quot;&amp;preventCache=&quot;+U:b.url+&quot;?preventCache=&quot;+U}else{T=b.url}if(document.all){Z.abort()}if(b.username&amp;&amp;b.password){Z.open(b.method,T,b.async,b.username,b.password)}else{Z.open(b.method,T,b.async)}if(b.mimeType&amp;&amp;navigator.userAgent.indexOf(&quot;MSIE&quot;)==-1){Z.overrideMimeType(b.mimeType)}var V=b.headers;for(var X in V){if(V.hasOwnProperty(X)){Z.setRequestHeader(X,V[X])}}if(b.method==&quot;POST&quot;||b.method==&quot;PUT&quot;){b.data=b.data||b.dataPayload;if(!b.data){b.data=&quot;&quot;}if(!fleegix.isSafari){var S=typeof b.data==&quot;string&quot;?b.data.length:0;Z.setRequestHeader(&quot;Content-Length&quot;,S)}if(typeof b.headers[&quot;Content-Type&quot;]==&quot;undefined&quot;){Z.setRequestHeader(&quot;Content-Type&quot;,&quot;application/x-www-form-urlencoded&quot;)}}Z.send(b.data);if(A===null){A=setTimeout(B,10)}if(!b.async){var a=R(Z,b);I=null;if(N.length){A=setTimeout(B,10)}else{A=null}return a}};var B=function(){var S=N;var X=new Date().getTime();if(I!==null){return }else{for(var U=0;U&lt;S.length;U++){var V=S[U];var T=H[V.xhrId];var W=((X-V.startTime)&gt;(V.timeoutSeconds*1000));switch(true){case (V.aborted||!T.readyState):N.splice(U,1);break;case W:N.splice(U,1);P(V);break;case (T.readyState==4):N.splice(U,1);R.call(L,T,V);break}}}clearTimeout(A);if(N.length){A=setTimeout(B,10)}else{A=null}};var R=function(S,T){var V;switch(T.responseFormat){case&quot;xml&quot;:if(T.xmlDocFromResponseText&amp;&amp;typeof fleegix.xml!=&quot;undefined&quot;){V=fleegix.xml.createDoc(S.responseText)}else{V=S.responseXML}break;case&quot;object&quot;:V=S;break;case&quot;text&quot;:default:V=S.responseText;break}if(T.handleAll){T.handleAll(V,T.id)}else{try{switch(true){case L.isReqSuccessful(S):if(T.async){if(!T.handleSuccess){throw new Error(&quot;No response handler defined for this request&quot;)}else{T.handleSuccess(V,T.id)}}else{return V}break;case (S.status==0):if(L.debug){throw new Error(&quot;XMLHttpRequest HTTP status is zero.&quot;)}break;case (S.status==M):if(L.debug){throw new Error(&quot;XMLHttpRequest HTTP status not set.&quot;)}break;default:if(!T.async&amp;&amp;!L.useDefaultErrHandlerForSync){return V}else{if(T.handleErr){T.handleErr(V,T.id)}else{E(S)}}break}}catch(U){throw U}}if(T.async){O(T)}return true};var P=function(S){if(L.abort.apply(L,[S.id])){if(typeof S.handleTimeout==&quot;function&quot;){S.handleTimeout()}else{alert(&quot;XMLHttpRequest to &quot;+S.url+&quot; timed out.&quot;)}}};var O=function(T){delete F[T.id];if(J.length){var S=J.shift();S.startTime=new Date().getTime();G(S,T.xhrId)}else{K.push(T.xhrId)}};var E=function(T){var S;try{S=window.open(&quot;&quot;,&quot;errorWin&quot;);S.document.body.innerHTML=T.responseText}catch(U){alert(&quot;An error occurred, but the error message cannot be displayed because of your browser's pop-up blocker.\nPlease allow pop-ups from this Web site.&quot;)}}};fleegix.xhr.Request=function(){this.id=0;this.xhrId=null;this.url=null;this.status=null;this.statusText=&quot;&quot;;this.method=&quot;GET&quot;;this.async=true;this.data=null;this.readyState=null;this.responseText=null;this.responseXML=null;this.handleSuccess=null;this.handleErr=null;this.handleAll=null;this.handleTimeout=null;this.responseFormat=fleegix.xhr.responseFormats.TXT;this.xmlDocFromResponseText=false;this.mimeType=null;this.username=&quot;&quot;;this.password=&quot;&quot;;this.headers=[];this.preventCache=false;this.startTime=new Date().getTime();this.timeoutSeconds=fleegix.xhr.defaultTimeoutSeconds;this.uber=false;this.aborted=false};fleegix.xhr.Request.prototype.setRequestHeader=function(B,A){this.headers.push(B+&quot;: &quot;+A)};fleegix.json=new function(){var _cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;this.serialize=function(obj){var str=&quot;&quot;;switch(typeof obj){case&quot;object&quot;:switch(true){case obj===null:return&quot;null&quot;;break;case obj instanceof Array:for(var i=0;i&lt;obj.length;i++){if(str){str+=&quot;,&quot;}str+=fleegix.json.serialize(obj[i])}return&quot;[&quot;+str+&quot;]&quot;;break;case (fleegix.isFF&amp;&amp;obj instanceof DOMException):str+=&quot;\&quot;&quot;+obj.toString()+&quot;\&quot;&quot;;break;case typeof obj.toString!=&quot;undefined&quot;:for(var i in obj){if(str){str+=&quot;,&quot;}str+=&quot;\&quot;&quot;+i+&quot;\&quot;:&quot;;if(typeof obj[i]==&quot;undefined&quot;){str+=&quot;\&quot;undefined\&quot;&quot;}else{str+=fleegix.json.serialize(obj[i])}}return&quot;{&quot;+str+&quot;}&quot;;break}return str;case&quot;unknown&quot;:case&quot;undefined&quot;:case&quot;function&quot;:return&quot;\&quot;undefined\&quot;&quot;;case&quot;string&quot;:str+=&quot;\&quot;&quot;+obj.replace(/([&quot;\\])/g,&quot;\\$1&quot;).replace(/\r/g,&quot;&quot;).replace(/\n/g,&quot;\\n&quot;)+&quot;\&quot;&quot;;return str;default:return String(obj)}};this.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&amp;&amp;typeof value===&quot;object&quot;){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}_cx.lastIndex=0;if(_cx.test(text)){text=text.replace(_cx,function(a){return&quot;\\u&quot;+(&quot;0000&quot;+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:[&quot;\\\/bfnrt]|u[0-9a-fA-F]{4})/g,&quot;@&quot;).replace(/&quot;[^&quot;\\\n\r]*&quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,&quot;]&quot;).replace(/(?:^|:|,)(?:\s*\[)+/g,&quot;&quot;))){j=eval(&quot;(&quot;+text+&quot;)&quot;);return typeof reviver===&quot;function&quot;?walk({&quot;&quot;:j},&quot;&quot;):j}throw new SyntaxError(&quot;JSON not parseable.&quot;)}};fleegix.string=new function(){var B=/^\s+/;var A=/\s+$/;var C=/^\s+|\s+$/g;this.toArray=function(F){var D=[];for(var E=0;E&lt;F.length;E++){D[E]=F.substr(E,1)}return D};this.reverse=function(D){return this.toArray(D).reverse().join(&quot;&quot;)};this.ltrim=function(F,E){var D=E?new RegExp(&quot;^&quot;+E+&quot;+&quot;):B;return F.replace(D,&quot;&quot;)};this.rtrim=function(F,E){var D=E?new RegExp(E+&quot;+$&quot;):A;return F.replace(D,&quot;&quot;)};this.trim=function(F,E){var D=E?new RegExp(&quot;^&quot;+E+&quot;+|&quot;+E+&quot;+$&quot;,&quot;g&quot;):C;return F.replace(D,&quot;&quot;)};this.lpad=function(G,F,E){var D=G;while(D.length&lt;E){D=F+D}return D};this.rpad=function(G,F,E){var D=G;while(D.length&lt;E){D=D+F}return D};this.toLowerCaseWithUnderscores=function(D){return D.replace(/([A-Z]+)/g,&quot;_$1&quot;).toLowerCase().replace(/^_/,&quot;&quot;)};this.deCamelize=function(D){return this.toLowerCaseWithUnderscores(D)};this.toCamelCase=function(D){return D.replace(/_[a-z]{1}/g,function(E){return E.replace(&quot;_&quot;,&quot;&quot;).toUpperCase()})};this.camelize=function(D){return this.toCamelCase(D)};this.capitalize=function(D){return D.substr(0,1).toUpperCase()+D.substr(1)};this.escapeXML=function(D){return D.replace(/&amp;/gm,&quot;&amp;amp;&quot;).replace(/&lt;/gm,&quot;&amp;lt;&quot;).replace(/&gt;/gm,&quot;&amp;gt;&quot;).replace(/&quot;/gm,&quot;&amp;quot;&quot;)};this.unescapeXML=function(D){return D.replace(/&amp;amp;/gm,&quot;&amp;&quot;).replace(/&amp;lt;/gm,&quot;&lt;&quot;).replace(/&amp;gt;/gm,&quot;&gt;&quot;).replace(/&amp;quot;/gm,&quot;\&quot;&quot;)}};fleegix.cookie=new function(){this.set=function(B,H,E){var A=E||{};var K=&quot;/&quot;;var I=0;var G=0;var F=0;var D=&quot;&quot;;var J=0;if(typeof E==&quot;object&quot;){K=A.path||&quot;/&quot;;I=A.days||0;G=A.hours||0;F=A.minutes||0}else{K=E||&quot;/&quot;}J+=I?I*24*60*60*1000:0;J+=G?G*60*60*1000:0;J+=F?F*60*1000:0;if(J){var C=new Date();C.setTime(C.getTime()+J);D=&quot;; expires=&quot;+C.toGMTString()}else{D=&quot;&quot;}document.cookie=B+&quot;=&quot;+H+D+&quot;; path=&quot;+K};this.get=function(B){var D=B+&quot;=&quot;;var A=document.cookie.split(&quot;;&quot;);for(var C=0;C&lt;A.length;C++){var E=A[C];while(E.charAt(0)==&quot; &quot;){E=E.substring(1,E.length)}if(E.indexOf(D)===0){return E.substring(D.length,E.length)}}return null};this.create=this.set;this.destroy=function(A,C){var B={};B.minutes=-1;if(C){B.path=C}this.set(A,&quot;&quot;,B)}};fleegix.form={};fleegix.form.serialize=function(C,B){var A=fleegix.form.toObject(C,B);if(typeof fleegix.url==&quot;undefined&quot;){throw new Error(&quot;fleegix.form.serialize depends on the fleegix.url module.&quot;)}var D=fleegix.url.objectToQS(A,B);return D};fleegix.form.toObject=function(K,D){var A=D||{};var J={};function H(R,Q){if(R){var P=null;if(typeof R==&quot;string&quot;){P=[];P.push(R)}else{P=R}P.push(Q);return P}else{return Q}}for(var I=0;I&lt;K.elements.length;I++){var F=K.elements[I];if(F.name){var O=F.name.indexOf(&quot;[&quot;);var C=F.name.indexOf(&quot;]&quot;);var N=&quot;&quot;;var B=&quot;&quot;;var M;var E;if(A.hierarchical&amp;&amp;(O&gt;0)&amp;&amp;(C&gt;2)){N=F.name.substring(0,O);B=F.name.substring(O+1,C);if(typeof J[N]==&quot;undefined&quot;){J[N]={}}M=J[N];E=B}else{M=J;E=F.name}switch(F.type){case&quot;text&quot;:case&quot;hidden&quot;:case&quot;password&quot;:case&quot;textarea&quot;:case&quot;select-one&quot;:M[E]=F.value;break;case&quot;select-multiple&quot;:for(var G=0;G&lt;F.options.length;G++){var L=F.options[G];if(L.selected){M[E]=H(M[E],L.value)}}break;case&quot;radio&quot;:if(F.checked){M[E]=F.value}break;case&quot;checkbox&quot;:if(F.checked){M[E]=H(M[E],F.value)}break;case&quot;submit&quot;:case&quot;reset&quot;:case&quot;file&quot;:case&quot;image&quot;:case&quot;button&quot;:if(A.pedantic){M[E]=F.value}break}}}return J};fleegix.form.toHash=fleegix.form.toObject
\ No newline at end of file</diff>
      <filename>fleegix.js</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>fleegix.js.gz</filename>
    </modified>
    <modified>
      <diff>@@ -539,7 +539,7 @@ fleegix.url = new function () {
       for (var i = 0; i &lt; arr.length; i++) {
         var pair = arr[i].split('=');
         var name = pair[0];
-        var val = pair[1];
+        var val = decodeURIComponent(pair[1]);
         // &quot;We've already got one!&quot; -- arrayize if the flag
         // is set
         if (typeof d[name] != 'undefined' &amp;&amp; arrayizeMulti) {
@@ -560,26 +560,80 @@ fleegix.url = new function () {
    * Convert a JS Object to querystring (key=val&amp;key=val).
    * Value in arrays will be added as multiple parameters
    * @param obj -- an Object containing only scalars and arrays
+   * @param o -- JS object of options for how to format
+   * the return string. Supported options:
+   *   collapseMulti: (Boolean) take values from elements that
+   *      can return multiple values (multi-select, checkbox groups)
+   *      and collapse into a single, comman-delimited value
+   *      (e.g., thisVar=asdf,qwer,zxcv)
+   *   stripTags: (Boolean) strip markup tags from any values
+   *   includeEmpty: (Boolean) include keys in the string for
+   *     all elements, even if they have no value set (e.g.,
+   *     even if elemB has no value: elemA=foo&amp;elemB=&amp;elemC=bar)
+   *   pedantic: (Boolean) include the values of elements like
+   *      button or image
+   *   deCamelizeParams: (Boolean) change param names from
+   *     camelCase to lowercase_with_underscores
    * @returns A querystring containing the values in the
    * Object
+   * NOTE: This is used by form.serialize
    */
-  this.objectToQS = function (obj) {
+  this.objectToQS = function (obj, o) {
+    var opts = o || {};
     var str = '';
-    var val;
-    for (var p in obj) {
-      val = obj[p];
-      if (typeof val == 'string') {
-        str += p + '=' + val + '&amp;';
-      }
-      else if (val.length) {
-        for (var i = 0; i &lt; val.length; i++) {
-          str += p + '=' + val[i] + '&amp;';
+    var pat = opts.stripTags ? /&lt;[^&gt;]*&gt;/g : null;
+    for (var n in obj) {
+      var s = '';
+      var v = obj[n];
+      if (v != undefined) {
+        // Multiple vals -- array
+        if (v.length &amp;&amp; typeof v != 'string') {
+          var sep = '';
+          if (opts.collapseMulti) {
+            sep = ',';
+            str += n + '=';
+          }
+          else {
+            sep = '&amp;';
+          }
+          for (var j = 0; j &lt; v.length; j++) {
+            s = opts.stripTags ? v[j].replace(pat, '') : v[j];
+            s = (!opts.collapseMulti) ? n + '=' + encodeURIComponent(s) :
+              encodeURIComponent(s);
+            str += s + sep;
+          }
+          str = str.substr(0, str.length - 1);
+        }
+        // Single val -- string
+        else {
+          s = opts.stripTags ? v.replace(pat, '') : v;
+          str += n + '=' + encodeURIComponent(s);
         }
+        str += '&amp;';
+      }
+      else {
+        if (opts.includeEmpty) { str += n + '=&amp;'; }
       }
     }
-    if (str) {
-      str = str.substr(0, str.length - 1);
+    // Convert all the camelCase param names to Ruby/Python style
+    // lowercase_with_underscores
+    if (opts.deCamelizeParams) {
+      if (!fleegix.string) {
+        throw new Error(
+          'deCamelize option depends on fleegix.string module.');
+      }
+      var arr = str.split('&amp;');
+      var arrItems;
+      str = '';
+      for (var i = 0; i &lt; arr.length; i++) {
+        arrItems = arr[i].split('=');
+        if (arrItems[0]) {
+          str += fleegix.string.deCamelize(arrItems[0]) +
+            '=' + arrItems[1] + '&amp;';
+        }
+      }
     }
+    str = str.substr(0, str.length - 1);
     return str;
   };
   this.objectToQs = this.objectToQS; // Case-insensitive alias
@@ -1286,7 +1340,7 @@ fleegix.xhr = new function () {
   var _syncRequest = null;
   // The id for the setTimeout used in the the
   // request timeout watcher
-  _processingWatcherId = null;
+  var _processingWatcherId = null;
 
   // Private methods
   // ================================
@@ -1483,7 +1537,12 @@ fleegix.xhr = new function () {
     switch(req.responseFormat) {
       // XML
       case 'xml':
-        resp = xhrObj.responseXML;
+        if (req.xmlDocFromResponseText &amp;&amp; typeof fleegix.xml != 'undefined') {
+          resp = fleegix.xml.createDoc(xhrObj.responseText);
+        }
+        else {
+          resp = xhrObj.responseXML;
+        }
         break;
       // The object itself
       case 'object':
@@ -1628,6 +1687,7 @@ fleegix.xhr.Request = function () {
   this.handleAll = null;
   this.handleTimeout = null;
   this.responseFormat = fleegix.xhr.responseFormats.TXT; // TXT, XML, OBJ
+  this.xmlDocFromResponseText = false;
   this.mimeType = null;
   this.username = '';
   this.password = '';
@@ -1736,13 +1796,6 @@ fleegix.json = new function() {
 
 fleegix.string = new function () {
   var ltr = /^\s+/; var rtr = /\s+$/; var tr = /^\s+|\s+$/g;
-  var _hrefPat = new RegExp(
-    &quot;(((https?):\\/\\/|www\\.)&quot; + // Protocol or just 'www'
-    &quot;(?:([a-zA-Z\\d\\-_]+)@?&quot; + // Username
-    &quot;([a-zA-Z\\d\\-_]+)\\:)?((?:(?:(?:(?:[a-zA-Z\\d](?:(?:[a-zA-Z\\d]|-)*[a-zA-Z\\d])?)\\.)*([a-zA-Z](?:(?:[a-zA-Z\\d]|-)*[a-zA-Z\\d])?))|(?:(?:\\\d+)(?:\\.(?:\\\d+)){3}))(?::(\\\d+))?)&quot; + // Hostname
-    &quot;(?:\\/((?:(?:(?:[a-zA-Z\\d$\\-_.+!*'(),~#]|(?:%[a-fA-F\\\d]{2}))|[;:@&amp;=#])*)(?:\\/(?:(?:(?:[a-zA-Z\\d$\\-_.+!*'(),~#]|(?:%[a-fA-F\\\d]{2}))|[;:@&amp;=#])*))*)(\\?(?:(?:(?:[a-zA-Z\\d$\\-_.+!*'(),~#]|(?:%[a-fA-F\\\d]{2}))|[;:@&amp;=#])*))?)?)&quot;, // Path
-    &quot;g&quot;); // Global regex
-
   this.toArray = function (str) {
     var arr = [];
     for (var i = 0; i &lt; str.length; i++) {
@@ -1808,35 +1861,6 @@ fleegix.string = new function () {
     return s.replace(/&amp;amp;/gm, '&amp;').replace(/&amp;lt;/gm, '&lt;').
       replace(/&amp;gt;/gm, '&gt;').replace(/&amp;quot;/gm, '&quot;');
   };
-  this.addHrefLinks = function (str, cls) {
-    var s = str || '';
-    var pat = _hrefPat;
-    var url;
-    var start;
-    var end;
-    var match;
-    var matches = {};
-    while (match = pat.exec(s)) {
-      url = match[0];
-      // Get rid of any punctuation on the end, even
-      // if they may be legal URL chars
-      url = url.replace(/[,)\.\?\!]+$/, '');
-      // Build a list of URLs to replace
-      matches[url] = true;
-    }
-    // Can't use a regex to do global replace here, hack
-    // it with split/join
-    var arr;
-    var href;
-    var className = cls ? ' class=&quot;' + cls + '&quot;' : '';
-    for (var m in matches) {
-      arr = s.split(m);
-      href = m.indexOf('www') === 0 ? 'http://' + m : m;
-      s = arr.join('&lt;a' + className +
-        ' href=&quot;' + href + '&quot;&gt;' + m + '&lt;/a&gt;');
-    }
-    return s;
-  };
 };
 
 
@@ -1901,82 +1925,17 @@ fleegix.form = {};
 /**
  * Serializes the data from all the inputs in a Web form
  * into a query-string style string.
- * @param docForm -- Reference to a DOM node of the form element
- * @param formatOpts -- JS object of options for how to format
- * the return string. Supported options:
- *   collapseMulti: (Boolean) take values from elements that
- *      can return multiple values (multi-select, checkbox groups)
- *      and collapse into a single, comman-delimited value
- *      (e.g., thisVar=asdf,qwer,zxcv)
- *   stripTags: (Boolean) strip markup tags from any values
- *   includeEmpty: (Boolean) include keys in the string for
- *     all elements, even if they have no value set (e.g.,
- *     even if elemB has no value: elemA=foo&amp;elemB=&amp;elemC=bar)
- *   pedantic: (Boolean) include the values of elements like
- *      button or image
- *   deCamelizeParams: (Boolean) change param names from
- *     camelCase to lowercase_with_underscores
+ * @param f -- Reference to a DOM node of the form element
+ * @param opts -- JS object of options for how to format
+ * the return string. See fleegix.url.objectToQS for usage.
  * @returns query-string style String of variable-value pairs
  */
-fleegix.form.serialize = function (f, o) {
-  var h = fleegix.form.toObject(f, o);
-  var opts = o || {};
-  var str = '';
-  var pat = null;
-
-  if (opts.stripTags) { pat = /&lt;[^&gt;]*&gt;/g; }
-  for (var n in h) {
-    var s = '';
-    var v = h[n];
-    if (v) {
-      // Single val -- string
-      if (typeof v == 'string') {
-        s = opts.stripTags ? v.replace(pat, '') : v;
-        str += n + '=' + encodeURIComponent(s);
-      }
-      // Multiple vals -- array
-      else {
-        var sep = '';
-        if (opts.collapseMulti) {
-          sep = ',';
-          str += n + '=';
-        }
-        else {
-          sep = '&amp;';
-        }
-        for (var j = 0; j &lt; v.length; j++) {
-          s = opts.stripTags ? v[j].replace(pat, '') : v[j];
-          s = (!opts.collapseMulti) ? n + '=' + encodeURIComponent(s) :
-            encodeURIComponent(s);
-          str += s + sep;
-        }
-        str = str.substr(0, str.length - 1);
-      }
-      str += '&amp;';
-    }
-    else {
-      if (opts.includeEmpty) { str += n + '=&amp;'; }
-    }
-  }
-  // Convert all the camelCase param names to Ruby/Python style
-  // lowercase_with_underscores
-  if (opts.deCamelizeParams) {
-    if (!fleegix.string) {
-      throw new Error(
-        'deCamelize option depends on fleegix.string module.');
-    }
-    var arr = str.split('&amp;');
-    var arrItems;
-    str = '';
-    for (var i = 0; i &lt; arr.length; i++) {
-      arrItems = arr[i].split('=');
-      if (arrItems[0]) {
-        str += fleegix.string.deCamelize(arrItems[0]) +
-          '=' + arrItems[1] + '&amp;';
-      }
-    }
+fleegix.form.serialize = function (f, opts) {
+  var h = fleegix.form.toObject(f, opts);
+  if (typeof fleegix.url == 'undefined') {
+    throw new Error('fleegix.form.serialize depends on the fleegix.url module.');
   }
-  str = str.substr(0, str.length - 1);
+  var str = fleegix.url.objectToQS(h, opts);
   return str;
 };
 </diff>
      <filename>fleegix.js.uncompressed.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>2bc8063c4f6e2feba47f8867787e4577b22ffc13</id>
    </parent>
  </parents>
  <author>
    <name>mde</name>
    <email>mde@fleegix.org</email>
  </author>
  <url>http://github.com/mde/fleegix-js-javascript-toolkit/commit/434e43ef92e95614cdf3cebd0d0ada9aecfd49e4</url>
  <id>434e43ef92e95614cdf3cebd0d0ada9aecfd49e4</id>
  <committed-date>2009-02-08T19:41:54-08:00</committed-date>
  <authored-date>2009-02-08T19:41:54-08:00</authored-date>
  <message>Updating built fleegix.js.* files.</message>
  <tree>8d0c26ed1bb905d857e0707c4111b50a3bef9a26</tree>
  <committer>
    <name>mde</name>
    <email>mde@fleegix.org</email>
  </committer>
</commit>
