var Rico={Version:"1.1.2",prototypeVersion:parseFloat(Prototype.Version.split(".")[0]+"."+Prototype.Version.split(".")[1])};if((typeof Prototype=="undefined")||Rico.prototypeVersion<1.3){throw ("Rico requires the Prototype JavaScript framework >= 1.3")}if(window.DOMParser&&window.XMLSerializer&&window.Node&&Node.prototype&&Node.prototype.__defineGetter__){if(!Document.prototype.loadXML){Document.prototype.loadXML=function(B){var C=(new DOMParser()).parseFromString(B,"text/xml");while(this.hasChildNodes()){this.removeChild(this.lastChild)}for(var A=0;A<C.childNodes.length;A++){this.appendChild(this.importNode(C.childNodes[A],true))}}}Document.prototype.__defineGetter__("xml",function(){return(new XMLSerializer()).serializeToString(this)})}document.getElementsByTagAndClassName=function(D,E){if(D==null){D="*"}var C=document.getElementsByTagName(D)||document.all;var F=new Array();if(E==null){return C}for(var B=0;B<C.length;B++){var H=C[B];var G=H.className.split(" ");for(var A=0;A<G.length;A++){if(G[A]==E){F.push(H);break}}}return F};Rico.AjaxEngine=Class.create();Rico.AjaxEngine.prototype={initialize:function(){this.ajaxElements=new Array();this.ajaxObjects=new Array();this.requestURLS=new Array();this.options={}},registerAjaxElement:function(B,A){if(!A){A=$(B)}this.ajaxElements[B]=A},registerAjaxObject:function(B,A){this.ajaxObjects[B]=A},registerRequest:function(A,B){this.requestURLS[A]=B},sendRequest:function(B,A){if(arguments.length>=2){if(typeof arguments[1]=="string"){A={parameters:this._createQueryString(arguments,1)}}}this.sendRequestWithData(B,null,A)},sendRequestWithData:function(D,C,A){var B=this.requestURLS[D];if(B==null){return }if(arguments.length>=3){if(typeof arguments[2]=="string"){A.parameters=this._createQueryString(arguments,2)}}new Ajax.Request(B,this._requestOptions(A,C))},sendRequestAndUpdate:function(C,A,B){if(arguments.length>=3){if(typeof arguments[2]=="string"){B.parameters=this._createQueryString(arguments,2)}}this.sendRequestWithDataAndUpdate(C,null,A,B)},sendRequestWithDataAndUpdate:function(F,E,A,B){var C=this.requestURLS[F];if(C==null){return }if(arguments.length>=4){if(typeof arguments[3]=="string"){B.parameters=this._createQueryString(arguments,3)}}var D=this._requestOptions(B,E);new Ajax.Updater(A,C,D)},_requestOptions:function(B,D){var C=["X-Rico-Version",Rico.Version];var A="post";if(D==null){if(Rico.prototypeVersion<1.4){C.push("Content-type","text/xml")}else{A="get"}}(!B)?B={}:"";if(!B._RicoOptionsProcessed){if(B.onComplete){B.onRicoComplete=B.onComplete}if(B.overrideOnComplete){B.onComplete=B.overrideOnComplete}else{B.onComplete=this._onRequestComplete.bind(this)}B._RicoOptionsProcessed=true}if(!B.parameters){B.parameters={}}this.options={requestHeaders:C,parameters:B.parameters,postBody:D,method:A,onComplete:B.onComplete};Object.extend(this.options,B);return this.options},_createQueryString:function(E,F){var H="";for(var C=F;C<E.length;C++){if(C!=F){H+="&"}var D=E[C];if(D.name!=undefined&&D.value!=undefined){H+=D.name+"="+escape(D.value)}else{var B=D.indexOf("=");var G=D.substring(0,B);var A=D.substring(B+1);H+=G+"="+escape(A)}}return H},_onRequestComplete:function(B){if(!B){return }if(B.status!=200){return }var A=B.responseXML.getElementsByTagName("ajax-response");if(A==null||A.length!=1){return }this._processAjaxResponse(A[0].childNodes);var C=this.options.onRicoComplete;if(C!=null){C()}},_processAjaxResponse:function(D){for(var C=0;C<D.length;C++){var E=D[C];if(E.nodeType!=1){continue}var B=E.getAttribute("type");var A=E.getAttribute("id");if(B=="object"){this._processAjaxObjectUpdate(this.ajaxObjects[A],E)}else{if(B=="element"){this._processAjaxElementUpdate(this.ajaxElements[A],E)}else{alert("unrecognized AjaxResponse type : "+B)}}}},_processAjaxObjectUpdate:function(A,B){A.ajaxUpdate(B)},_processAjaxElementUpdate:function(A,B){A.innerHTML=RicoUtil.getContentAsString(B)}};var ajaxEngine=new Rico.AjaxEngine();var RicoUtil={getElementsComputedStyle:function(D,A,B){if(arguments.length==2){B=A}var C=$(D);if(C.currentStyle){return C.currentStyle[A]}else{return document.defaultView.getComputedStyle(C,null).getPropertyValue(B)}},createXmlDocument:function(){if(document.implementation&&document.implementation.createDocument){var A=document.implementation.createDocument("","",null);if(A.readyState==null){A.readyState=1;A.addEventListener("load",function(){A.readyState=4;if(typeof A.onreadystatechange=="function"){A.onreadystatechange()}},false)}return A}if(window.ActiveXObject){return Try.these(function(){return new ActiveXObject("MSXML2.DomDocument")},function(){return new ActiveXObject("Microsoft.DomDocument")},function(){return new ActiveXObject("MSXML.DomDocument")},function(){return new ActiveXObject("MSXML3.DomDocument")})||false}return null},getContentAsString:function(A){return A.xml!=undefined?this._getContentAsStringIE(A):this._getContentAsStringMozilla(A)},_getContentAsStringIE:function(A){var C="";for(var B=0;B<A.childNodes.length;B++){var D=A.childNodes[B];if(D.nodeType==4){C+=D.nodeValue}else{C+=D.xml}}return C},_getContentAsStringMozilla:function(B){var A=new XMLSerializer();var D="";for(var C=0;C<B.childNodes.length;C++){var E=B.childNodes[C];if(E.nodeType==4){D+=E.nodeValue}else{D+=A.serializeToString(E)}}return D},toViewportPosition:function(A){return this._toAbsolute(A,true)},toDocumentPosition:function(A){return this._toAbsolute(A,false)},_toAbsolute:function(B,E){if(navigator.userAgent.toLowerCase().indexOf("msie")==-1){return this._toAbsoluteMozilla(B,E)}var A=0;var G=0;var D=B;while(D){var C=0;var F=0;if(D!=B){var C=parseInt(this.getElementsComputedStyle(D,"borderLeftWidth"));var F=parseInt(this.getElementsComputedStyle(D,"borderTopWidth"));C=isNaN(C)?0:C;F=isNaN(F)?0:F}A+=D.offsetLeft-D.scrollLeft+C;G+=D.offsetTop-D.scrollTop+F;D=D.offsetParent}if(E){A-=this.docScrollLeft();G-=this.docScrollTop()}return{x:A,y:G}},_toAbsoluteMozilla:function(B,D){var A=0;var E=0;var C=B;while(C){A+=C.offsetLeft;E+=C.offsetTop;C=C.offsetParent}C=B;while(C&&C!=document.body&&C!=document.documentElement){if(C.scrollLeft){A-=C.scrollLeft}if(C.scrollTop){E-=C.scrollTop}C=C.parentNode}if(D){A-=this.docScrollLeft();E-=this.docScrollTop()}return{x:A,y:E}},docScrollLeft:function(){if(window.pageXOffset){return window.pageXOffset}else{if(document.documentElement&&document.documentElement.scrollLeft){return document.documentElement.scrollLeft}else{if(document.body){return document.body.scrollLeft}else{return 0}}}},docScrollTop:function(){if(window.pageYOffset){return window.pageYOffset}else{if(document.documentElement&&document.documentElement.scrollTop){return document.documentElement.scrollTop}else{if(document.body){return document.body.scrollTop}else{return 0}}}}};