<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -5,7 +5,7 @@ src/cookie.js
 src/json.js
 src/base.js
 src/fx.js
-src/uri.js
+src/url.js
 src/event.js
 src/dom.js
 src/string.js</diff>
      <filename>NOTICE</filename>
    </modified>
    <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.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=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</diff>
      <filename>fleegix.js</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>fleegix.js.gz</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Matthew Eernisse (mde@fleegix.org)
+ * Copyright 2009 Matthew Eernisse (mde@fleegix.org)
  *
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
  * you may not use this file except in compliance with the License.
@@ -1765,6 +1765,20 @@ fleegix.string = new function () {
     var pat = chr ? new RegExp('^' + chr + '+|' + chr + '+$', 'g') : tr;
     return str.replace(pat, '');
   };
+  this.lpad = function (str, chr, width) {
+    var s = str;
+    while (s.length &lt; width) {
+      s = chr + s;
+    }
+    return s;
+  };
+  this.rpad = function (str, chr, width) {
+    var s = str;
+    while (s.length &lt; width) {
+      s = s + chr;
+    }
+    return s;
+  };
   // Converts someVariableName to some_variable_name
   this.toLowerCaseWithUnderscores = function (s) {
     return s.replace(/([A-Z]+)/g, '_$1').toLowerCase().</diff>
      <filename>fleegix.js.uncompressed.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>7a68cb02210907f74b3bec55f273dcdee753f366</id>
    </parent>
  </parents>
  <author>
    <name>mde</name>
    <email>mde@fleegix.org</email>
  </author>
  <url>http://github.com/mde/fleegix-js-javascript-toolkit/commit/92b31a0ea7c9237d14d68e293597f6675f7c46b8</url>
  <id>92b31a0ea7c9237d14d68e293597f6675f7c46b8</id>
  <committed-date>2009-01-04T18:29:16-08:00</committed-date>
  <authored-date>2009-01-04T18:29:16-08:00</authored-date>
  <message>Updated built fleegix.js.* files with new copyright date.</message>
  <tree>6d5c36ffa3cb99e66aea1b4187b516d0da3e1c1e</tree>
  <committer>
    <name>mde</name>
    <email>mde@fleegix.org</email>
  </committer>
</commit>
