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")}Rico.ArrayExtensions=new Array();if(Object.prototype.extend){Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Object.prototype.extend}else{Object.prototype.extend=function(a){return Object.extend.apply(this,[this,a])};Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Object.prototype.extend}if(Array.prototype.push){Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.push}if(!Array.prototype.remove){Array.prototype.remove=function(a){if(isNaN(a)||a>this.length){return false}for(var b=0,c=0;b<this.length;b++){if(b!=a){this[c++]=this[b]}}this.length-=1};Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.remove}if(!Array.prototype.removeItem){Array.prototype.removeItem=function(b){for(var a=0;a<this.length;a++){if(this[a]==b){this.remove(a);break}}};Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.removeItem}if(!Array.prototype.indices){Array.prototype.indices=function(){var a=new Array();for(index in this){var c=false;for(var b=0;b<Rico.ArrayExtensions.length;b++){if(this[index]==Rico.ArrayExtensions[b]){c=true;break}}if(!c){a[a.length]=index}}return a};Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.indices}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,b){if(d==null){d="*"}var f=document.getElementsByTagName(d)||document.all;var a=new Array();if(b==null){return f}for(var e=0;e<f.length;e++){var h=f[e];var g=h.className.split(" ");for(var c=0;c<g.length;c++){if(g[c]==b){a.push(h);break}}}return a};Rico.Accordion=Class.create();Rico.Accordion.prototype={initialize:function(f,e){this.container=$(f);this.lastExpandedTab=null;this.accordionTabs=new Array();this.setOptions(e);this._attachBehaviors();if(!f){return}this.container.style.borderBottom="1px solid "+this.options.borderColor;if(this.options.onLoadShowTab>=this.accordionTabs.length){this.options.onLoadShowTab=0}for(var d=0;d<this.accordionTabs.length;d++){if(d!=this.options.onLoadShowTab){this.accordionTabs[d].collapse();this.accordionTabs[d].content.style.display="none"}}this.lastExpandedTab=this.accordionTabs[this.options.onLoadShowTab];if(this.options.panelHeight=="auto"){var a=(this.options.onloadShowTab===0)?1:0;var b=parseInt(RicoUtil.getElementsComputedStyle(this.accordionTabs[a].titleBar,"height"));if(isNaN(b)){b=this.accordionTabs[a].titleBar.offsetHeight}var g=this.accordionTabs.length*b;var c=parseInt(RicoUtil.getElementsComputedStyle(this.container.parentNode,"height"));if(isNaN(c)){c=this.container.parentNode.offsetHeight}this.options.panelHeight=c-g-2}this.lastExpandedTab.content.style.height=this.options.panelHeight+"px";this.lastExpandedTab.showExpanded();this.lastExpandedTab.titleBar.style.fontWeight=this.options.expandedFontWeight},setOptions:function(a){this.options={expandedBg:"#63699c",hoverBg:"#63699c",collapsedBg:"#6b79a5",expandedTextColor:"#ffffff",expandedFontWeight:"bold",hoverTextColor:"#ffffff",collapsedTextColor:"#ced7ef",collapsedFontWeight:"normal",hoverTextColor:"#ffffff",borderColor:"#1f669b",panelHeight:200,onHideTab:null,onShowTab:null,onLoadShowTab:0};Object.extend(this.options,a||{})},showTabByIndex:function(c,b){var a=arguments.length==1?true:b;this.showTab(this.accordionTabs[c],a)},showTab:function(e,c){if(this.lastExpandedTab==e){return}var b=arguments.length==1?true:c;if(this.options.onHideTab){this.options.onHideTab(this.lastExpandedTab)}this.lastExpandedTab.showCollapsed();var d=this;var a=this.lastExpandedTab;this.lastExpandedTab.content.style.height=(this.options.panelHeight-1)+"px";e.content.style.display="";e.titleBar.style.fontWeight=this.options.expandedFontWeight;if(b){new Rico.Effect.AccordionSize(this.lastExpandedTab.content,e.content,1,this.options.panelHeight,100,10,{complete:function(){d.showTabDone(a)}});this.lastExpandedTab=e}else{this.lastExpandedTab.content.style.height="1px";e.content.style.height=this.options.panelHeight+"px";this.lastExpandedTab=e;this.showTabDone(a)}},showTabDone:function(a){a.content.style.display="none";this.lastExpandedTab.showExpanded();if(this.options.onShowTab){this.options.onShowTab(this.lastExpandedTab)}},_attachBehaviors:function(){var c=this._getDirectChildrenByTag(this.container,"DIV");for(var b=0;b<c.length;b++){var e=this._getDirectChildrenByTag(c[b],"DIV");if(e.length!=2){continue}var d=e[0];var a=e[1];this.accordionTabs.push(new Rico.Accordion.Tab(this,d,a))}},_getDirectChildrenByTag:function(f,b){var a=new Array();var d=f.childNodes;for(var c=0;c<d.length;c++){if(d[c]&&d[c].tagName&&d[c].tagName==b){a.push(d[c])}}return a}};Rico.Accordion.Tab=Class.create();Rico.Accordion.Tab.prototype={initialize:function(c,a,b){this.accordion=c;this.titleBar=a;this.content=b;this._attachBehaviors()},collapse:function(){this.showCollapsed();this.content.style.height="1px"},showCollapsed:function(){this.expanded=false;this.titleBar.style.backgroundColor=this.accordion.options.collapsedBg;this.titleBar.style.color=this.accordion.options.collapsedTextColor;this.titleBar.style.fontWeight=this.accordion.options.collapsedFontWeight;this.content.style.overflow="hidden"},showExpanded:function(){this.expanded=true;this.titleBar.style.backgroundColor=this.accordion.options.expandedBg;this.titleBar.style.color=this.accordion.options.expandedTextColor;this.content.style.overflow="auto"},titleBarClicked:function(a){if(this.accordion.lastExpandedTab==this){return}this.accordion.showTab(this)},hover:function(a){this.titleBar.style.backgroundColor=this.accordion.options.hoverBg;this.titleBar.style.color=this.accordion.options.hoverTextColor},unhover:function(a){if(this.expanded){this.titleBar.style.backgroundColor=this.accordion.options.expandedBg;this.titleBar.style.color=this.accordion.options.expandedTextColor}else{this.titleBar.style.backgroundColor=this.accordion.options.collapsedBg;this.titleBar.style.color=this.accordion.options.collapsedTextColor}},_attachBehaviors:function(){this.content.style.border="1px solid "+this.accordion.options.borderColor;this.content.style.borderTopWidth="0px";this.content.style.borderBottomWidth="0px";this.content.style.margin="0px";this.titleBar.onclick=this.titleBarClicked.bindAsEventListener(this);this.titleBar.onmouseover=this.hover.bindAsEventListener(this);this.titleBar.onmouseout=this.unhover.bindAsEventListener(this)}};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,b,a){if(arguments.length>=3){if(typeof arguments[2]=="string"){a.parameters=this._createQueryString(arguments,2)}}this.sendRequestWithDataAndUpdate(c,null,b,a)},sendRequestWithDataAndUpdate:function(f,e,c,a){var b=this.requestURLS[f];if(b==null){return}if(arguments.length>=4){if(typeof arguments[3]=="string"){a.parameters=this._createQueryString(arguments,3)}}var d=this._requestOptions(a,e);new Ajax.Updater(c,b,d)},_requestOptions:function(d,b){var c=["X-Rico-Version",Rico.Version];var a="post";if(b==null){if(Rico.prototypeVersion<1.4){c.push("Content-type","text/xml")}else{a="get"}}(!d)?d={}:"";if(!d._RicoOptionsProcessed){if(d.onComplete){d.onRicoComplete=d.onComplete}if(d.overrideOnComplete){d.onComplete=d.overrideOnComplete}else{d.onComplete=this._onRequestComplete.bind(this)}d._RicoOptionsProcessed=true}this.options={requestHeaders:c,parameters:d.parameters,postBody:b,method:a,onComplete:d.onComplete};Object.extend(this.options,d);return this.options},_createQueryString:function(b,h){var g="";for(var c=h;c<b.length;c++){if(c!=h){g+="&"}var d=b[c];if(d.name!=undefined&&d.value!=undefined){g+=d.name+"="+escape(d.value)}else{var a=d.indexOf("=");var f=d.substring(0,a);var e=d.substring(a+1);g+=f+"="+escape(e)}}return g},_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(c){for(var b=0;b<c.length;b++){var e=c[b];if(e.nodeType!=1){continue}var a=e.getAttribute("type");var d=e.getAttribute("id");if(a=="object"){this._processAjaxObjectUpdate(this.ajaxObjects[d],e)}else{if(a=="element"){this._processAjaxElementUpdate(this.ajaxElements[d],e)}else{alert("unrecognized AjaxResponse type : "+a)}}}},_processAjaxObjectUpdate:function(a,b){a.ajaxUpdate(b)},_processAjaxElementUpdate:function(a,b){a.innerHTML=RicoUtil.getContentAsString(b)}};var ajaxEngine=new Rico.AjaxEngine();Rico.Color=Class.create();Rico.Color.prototype={initialize:function(c,b,a){this.rgb={r:c,g:b,b:a}},setRed:function(a){this.rgb.r=a},setGreen:function(a){this.rgb.g=a},setBlue:function(a){this.rgb.b=a},setHue:function(b){var a=this.asHSB();a.h=b;this.rgb=Rico.Color.HSBtoRGB(a.h,a.s,a.b)},setSaturation:function(b){var a=this.asHSB();a.s=b;this.rgb=Rico.Color.HSBtoRGB(a.h,a.s,a.b)},setBrightness:function(a){var c=this.asHSB();c.b=a;this.rgb=Rico.Color.HSBtoRGB(c.h,c.s,c.b)},darken:function(b){var a=this.asHSB();this.rgb=Rico.Color.HSBtoRGB(a.h,a.s,Math.max(a.b-b,0))},brighten:function(b){var a=this.asHSB();this.rgb=Rico.Color.HSBtoRGB(a.h,a.s,Math.min(a.b+b,1))},blend:function(a){this.rgb.r=Math.floor((this.rgb.r+a.rgb.r)/2);this.rgb.g=Math.floor((this.rgb.g+a.rgb.g)/2);this.rgb.b=Math.floor((this.rgb.b+a.rgb.b)/2)},isBright:function(){var a=this.asHSB();return this.asHSB().b>0.5},isDark:function(){return !this.isBright()},asRGB:function(){return"rgb("+this.rgb.r+","+this.rgb.g+","+this.rgb.b+")"},asHex:function(){return"#"+this.rgb.r.toColorPart()+this.rgb.g.toColorPart()+this.rgb.b.toColorPart()},asHSB:function(){return Rico.Color.RGBtoHSB(this.rgb.r,this.rgb.g,this.rgb.b)},toString:function(){return this.asHex()}};Rico.Color.createFromHex=function(c){if(c.length==4){var e=c;var c="#";for(var b=1;b<4;b++){c+=(e.charAt(b)+e.charAt(b))}}if(c.indexOf("#")==0){c=c.substring(1)}var f=c.substring(0,2);var d=c.substring(2,4);var a=c.substring(4,6);return new Rico.Color(parseInt(f,16),parseInt(d,16),parseInt(a,16))};Rico.Color.createColorFromBackground=function(d){var a=RicoUtil.getElementsComputedStyle($(d),"backgroundColor","background-color");if(a=="transparent"&&d.parentNode){return Rico.Color.createColorFromBackground(d.parentNode)}if(a==null){return new Rico.Color(255,255,255)}if(a.indexOf("rgb(")==0){var c=a.substring(4,a.length-1);var b=c.split(",");return new Rico.Color(parseInt(b[0]),parseInt(b[1]),parseInt(b[2]))}else{if(a.indexOf("#")==0){return Rico.Color.createFromHex(a)}else{return new Rico.Color(255,255,255)}}};Rico.Color.HSBtoRGB=function(i,c,k){var d=0;var e=0;var l=0;if(c==0){d=parseInt(k*255+0.5);e=d;l=d}else{var g=(i-Math.floor(i))*6;var j=g-Math.floor(g);var b=k*(1-c);var a=k*(1-c*j);var m=k*(1-(c*(1-j)));switch(parseInt(g)){case 0:d=(k*255+0.5);e=(m*255+0.5);l=(b*255+0.5);break;case 1:d=(a*255+0.5);e=(k*255+0.5);l=(b*255+0.5);break;case 2:d=(b*255+0.5);e=(k*255+0.5);l=(m*255+0.5);break;case 3:d=(b*255+0.5);e=(a*255+0.5);l=(k*255+0.5);break;case 4:d=(m*255+0.5);e=(b*255+0.5);l=(k*255+0.5);break;case 5:d=(k*255+0.5);e=(b*255+0.5);l=(a*255+0.5);break}}return{r:parseInt(d),g:parseInt(e),b:parseInt(l)}};Rico.Color.RGBtoHSB=function(a,h,j){var f;var d;var k;var l=(a>h)?a:h;if(j>l){l=j}var i=(a<h)?a:h;if(j<i){i=j}k=l/255;if(l!=0){d=(l-i)/l}else{d=0}if(d==0){f=0}else{var c=(l-a)/(l-i);var m=(l-h)/(l-i);var e=(l-j)/(l-i);if(a==l){f=e-m}else{if(h==l){f=2+c-e}else{f=4+m-c}}f=f/6;if(f<0){f=f+1}}return{h:f,s:d,b:k}};Rico.Corner={round:function(d,c){var d=$(d);this._setOptions(c);var b=this.options.color;if(this.options.color=="fromElement"){b=this._background(d)}var a=this.options.bgColor;if(this.options.bgColor=="fromParent"){a=this._background(d.offsetParent)}this._roundCornersImpl(d,b,a)},_roundCornersImpl:function(c,b,a){if(this.options.border){this._renderBorder(c,a)}if(this._isTopRounded()){this._roundTopCorners(c,b,a)}if(this._isBottomRounded()){this._roundBottomCorners(c,b,a)}},_renderBorder:function(e,a){var c="1px solid "+this._borderColor(a);var b="border-left: "+c;var f="border-right: "+c;var d="style='"+b+";"+f+"'";e.innerHTML="<div "+d+">"+e.innerHTML+"</div>"},_roundTopCorners:function(e,c,a){var b=this._createCorner(a);for(var d=0;d<this.options.numSlices;d++){b.appendChild(this._createCornerSlice(c,a,d,"top"))}e.style.paddingTop=0;e.insertBefore(b,e.firstChild)},_roundBottomCorners:function(e,c,a){var b=this._createCorner(a);for(var d=(this.options.numSlices-1);d>=0;d--){b.appendChild(this._createCornerSlice(c,a,d,"bottom"))}e.style.paddingBottom=0;e.appendChild(b)},_createCorner:function(a){var b=document.createElement("div");b.style.backgroundColor=(this._isTransparent()?"transparent":a);return b},_createCornerSlice:function(d,b,g,a){var e=document.createElement("span");var c=e.style;c.backgroundColor=d;c.display="block";c.height="1px";c.overflow="hidden";c.fontSize="1px";var f=this._borderColor(d,b);if(this.options.border&&g==0){c.borderTopStyle="solid";c.borderTopWidth="1px";c.borderLeftWidth="0px";c.borderRightWidth="0px";c.borderBottomWidth="0px";c.height="0px";c.borderColor=f}else{if(f){c.borderColor=f;c.borderStyle="solid";c.borderWidth="0px 1px"}}if(!this.options.compact&&(g==(this.options.numSlices-1))){c.height="2px"}this._setMargin(e,g,a);this._setBorder(e,g,a);return e},_setOptions:function(a){this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false};Object.extend(this.options,a||{});this.options.numSlices=this.options.compact?2:4;if(this._isTransparent()){this.options.blend=false}},_whichSideTop:function(){if(this._hasString(this.options.corners,"all","top")){return""}if(this.options.corners.indexOf("tl")>=0&&this.options.corners.indexOf("tr")>=0){return""}if(this.options.corners.indexOf("tl")>=0){return"left"}else{if(this.options.corners.indexOf("tr")>=0){return"right"}}return""},_whichSideBottom:function(){if(this._hasString(this.options.corners,"all","bottom")){return""}if(this.options.corners.indexOf("bl")>=0&&this.options.corners.indexOf("br")>=0){return""}if(this.options.corners.indexOf("bl")>=0){return"left"}else{if(this.options.corners.indexOf("br")>=0){return"right"}}return""},_borderColor:function(b,a){if(b=="transparent"){return a}else{if(this.options.border){return this.options.border}else{if(this.options.blend){return this._blend(a,b)}else{return""}}}},_setMargin:function(c,e,a){var b=this._marginSize(e);var d=a=="top"?this._whichSideTop():this._whichSideBottom();if(d=="left"){c.style.marginLeft=b+"px";c.style.marginRight="0px"}else{if(d=="right"){c.style.marginRight=b+"px";c.style.marginLeft="0px"}else{c.style.marginLeft=b+"px";c.style.marginRight=b+"px"}}},_setBorder:function(c,e,a){var b=this._borderSize(e);var d=a=="top"?this._whichSideTop():this._whichSideBottom();if(d=="left"){c.style.borderLeftWidth=b+"px";c.style.borderRightWidth="0px"}else{if(d=="right"){c.style.borderRightWidth=b+"px";c.style.borderLeftWidth="0px"}else{c.style.borderLeftWidth=b+"px";c.style.borderRightWidth=b+"px"}}if(this.options.border!=false){c.style.borderLeftWidth=b+"px"}c.style.borderRightWidth=b+"px"},_marginSize:function(e){if(this._isTransparent()){return 0}var d=[5,3,2,1];var b=[3,2,1,0];var c=[2,1];var a=[1,0];if(this.options.compact&&this.options.blend){return a[e]}else{if(this.options.compact){return c[e]}else{if(this.options.blend){return b[e]}else{return d[e]}}}},_borderSize:function(e){var d=[5,3,2,1];var a=[2,1,1,1];var b=[1,0];var c=[0,2,0,0];if(this.options.compact&&(this.options.blend||this._isTransparent())){return 1}else{if(this.options.compact){return b[e]}else{if(this.options.blend){return a[e]}else{if(this.options.border){return c[e]}else{if(this._isTransparent()){return d[e]}}}}}return 0},_hasString:function(b){for(var a=1;a<arguments.length;a++){if(b.indexOf(arguments[a])>=0){return true}}return false},_blend:function(c,a){var b=Rico.Color.createFromHex(c);b.blend(Rico.Color.createFromHex(a));return b},_background:function(a){try{return Rico.Color.createColorFromBackground(a).asHex()}catch(b){return"#ffffff"}},_isTransparent:function(){return this.options.color=="transparent"},_isTopRounded:function(){return this._hasString(this.options.corners,"all","top","tl","tr")},_isBottomRounded:function(){return this._hasString(this.options.corners,"all","bottom","bl","br")},_hasSingleTextChild:function(a){return a.childNodes.length==1&&a.childNodes[0].nodeType==3}};Rico.DragAndDrop=Class.create();Rico.DragAndDrop.prototype={initialize:function(){this.dropZones=new Array();this.draggables=new Array();this.currentDragObjects=new Array();this.dragElement=null;this.lastSelectedDraggable=null;this.currentDragObjectVisible=false;this.interestedInMotionEvents=false;this._mouseDown=this._mouseDownHandler.bindAsEventListener(this);this._mouseMove=this._mouseMoveHandler.bindAsEventListener(this);this._mouseUp=this._mouseUpHandler.bindAsEventListener(this)},registerDropZone:function(a){this.dropZones[this.dropZones.length]=a},deregisterDropZone:function(a){var b=new Array();var c=0;for(var d=0;d<this.dropZones.length;d++){if(this.dropZones[d]!=a){b[c++]=this.dropZones[d]}}this.dropZones=b},clearDropZones:function(){this.dropZones=new Array()},registerDraggable:function(a){this.draggables[this.draggables.length]=a;this._addMouseDownHandler(a)},clearSelection:function(){for(var a=0;a<this.currentDragObjects.length;a++){this.currentDragObjects[a].deselect()}this.currentDragObjects=new Array();this.lastSelectedDraggable=null},hasSelection:function(){return this.currentDragObjects.length>0},setStartDragFromElement:function(a,b){this.origPos=RicoUtil.toDocumentPosition(b);this.startx=a.screenX-this.origPos.x;this.starty=a.screenY-this.origPos.y;this.interestedInMotionEvents=this.hasSelection();this._terminateEvent(a)},updateSelection:function(b,a){if(!a){this.clearSelection()}if(b.isSelected()){this.currentDragObjects.removeItem(b);b.deselect();if(b==this.lastSelectedDraggable){this.lastSelectedDraggable=null}}else{this.currentDragObjects[this.currentDragObjects.length]=b;b.select();this.lastSelectedDraggable=b}},_mouseDownHandler:function(g){if(arguments.length==0){g=event}var c=g.which!=undefined;if((c&&g.which!=1)||(!c&&g.button!=1)){return}var f=g.target?g.target:g.srcElement;var d=f.draggable;var b=f;while(d==null&&b.parentNode){b=b.parentNode;d=b.draggable}if(d==null){return}this.updateSelection(d,g.ctrlKey);if(this.hasSelection()){for(var a=0;a<this.dropZones.length;a++){this.dropZones[a].clearPositionCache()}}this.setStartDragFromElement(g,d.getMouseDownHTMLElement())},_mouseMoveHandler:function(b){var a=b.which!=undefined;if(!this.interestedInMotionEvents){return}if(!this.hasSelection()){return}if(!this.currentDragObjectVisible){this._startDrag(b)}if(!this.activatedDropZones){this._activateRegisteredDropZones()}this._updateDraggableLocation(b);this._updateDropZonesHover(b);this._terminateEvent(b)},_makeDraggableObjectVisible:function(b){if(!this.hasSelection()){return}var a;if(this.currentDragObjects.length>1){a=this.currentDragObjects[0].getMultiObjectDragGUI(this.currentDragObjects)}else{a=this.currentDragObjects[0].getSingleObjectDragGUI()}if(RicoUtil.getElementsComputedStyle(a,"position")!="absolute"){a.style.position="absolute"}if(a.parentNode==null||a.parentNode.nodeType==11){document.body.appendChild(a)}this.dragElement=a;this._updateDraggableLocation(b);this.currentDragObjectVisible=true},_leftOffset:function(a){return a.offsetX?document.body.scrollLeft:0},_topOffset:function(a){return a.offsetY?document.body.scrollTop:0},_updateDraggableLocation:function(b){var a=this.dragElement.style;a.left=(b.screenX+this._leftOffset(b)-this.startx)+"px";a.top=(b.screenY+this._topOffset(b)-this.starty)+"px"},_updateDropZonesHover:function(b){var c=this.dropZones.length;for(var a=0;a<c;a++){if(!this._mousePointInDropZone(b,this.dropZones[a])){this.dropZones[a].hideHover()}}for(var a=0;a<c;a++){if(this._mousePointInDropZone(b,this.dropZones[a])){if(this.dropZones[a].canAccept(this.currentDragObjects)){this.dropZones[a].showHover()}}}},_startDrag:function(b){for(var a=0;a<this.currentDragObjects.length;a++){this.currentDragObjects[a].startDrag()}this._makeDraggableObjectVisible(b)},_mouseUpHandler:function(b){if(!this.hasSelection()){return}var a=b.which!=undefined;if((a&&b.which!=1)||(!a&&b.button!=1)){return}this.interestedInMotionEvents=false;if(this.dragElement==null){this._terminateEvent(b);return}if(this._placeDraggableInDropZone(b)){this._completeDropOperation(b)}else{this._terminateEvent(b);new Rico.Effect.Position(this.dragElement,this.origPos.x,this.origPos.y,200,20,{complete:this._doCancelDragProcessing.bind(this)})}Event.stopObserving(document.body,"mousemove",this._mouseMove);Event.stopObserving(document.body,"mouseup",this._mouseUp)},_retTrue:function(){return true},_completeDropOperation:function(a){if(this.dragElement!=this.currentDragObjects[0].getMouseDownHTMLElement()){if(this.dragElement.parentNode!=null){this.dragElement.parentNode.removeChild(this.dragElement)}}this._deactivateRegisteredDropZones();this._endDrag();this.clearSelection();this.dragElement=null;this.currentDragObjectVisible=false;this._terminateEvent(a)},_doCancelDragProcessing:function(){this._cancelDrag();if(this.dragElement!=this.currentDragObjects[0].getMouseDownHTMLElement()&&this.dragElement){if(this.dragElement.parentNode!=null){this.dragElement.parentNode.removeChild(this.dragElement)}}this._deactivateRegisteredDropZones();this.dragElement=null;this.currentDragObjectVisible=false},_placeDraggableInDropZone:function(c){var a=false;var d=this.dropZones.length;for(var b=0;b<d;b++){if(this._mousePointInDropZone(c,this.dropZones[b])){if(this.dropZones[b].canAccept(this.currentDragObjects)){this.dropZones[b].hideHover();this.dropZones[b].accept(this.currentDragObjects);a=true;break}}}return a},_cancelDrag:function(){for(var a=0;a<this.currentDragObjects.length;a++){this.currentDragObjects[a].cancelDrag()}},_endDrag:function(){for(var a=0;a<this.currentDragObjects.length;a++){this.currentDragObjects[a].endDrag()}},_mousePointInDropZone:function(b,c){var a=c.getAbsoluteRect();return b.clientX>a.left+this._leftOffset(b)&&b.clientX<a.right+this._leftOffset(b)&&b.clientY>a.top+this._topOffset(b)&&b.clientY<a.bottom+this._topOffset(b)},_addMouseDownHandler:function(a){htmlElement=a.getMouseDownHTMLElement();if(htmlElement!=null){htmlElement.draggable=a;Event.observe(htmlElement,"mousedown",this._onmousedown.bindAsEventListener(this));Event.observe(htmlElement,"mousedown",this._mouseDown)}},_activateRegisteredDropZones:function(){var c=this.dropZones.length;for(var a=0;a<c;a++){var b=this.dropZones[a];if(b.canAccept(this.currentDragObjects)){b.activate()}}this.activatedDropZones=true},_deactivateRegisteredDropZones:function(){var b=this.dropZones.length;for(var a=0;a<b;a++){this.dropZones[a].deactivate()}this.activatedDropZones=false},_onmousedown:function(){Event.observe(document.body,"mousemove",this._mouseMove);Event.observe(document.body,"mouseup",this._mouseUp)},_terminateEvent:function(a){if(a.stopPropagation!=undefined){a.stopPropagation()}else{if(a.cancelBubble!=undefined){a.cancelBubble=true}}if(a.preventDefault!=undefined){a.preventDefault()}else{a.returnValue=false}},initializeEventHandlers:function(){if(typeof document.implementation!="undefined"&&document.implementation.hasFeature("HTML","1.0")&&document.implementation.hasFeature("Events","2.0")&&document.implementation.hasFeature("CSS","2.0")){document.addEventListener("mouseup",this._mouseUpHandler.bindAsEventListener(this),false);document.addEventListener("mousemove",this._mouseMoveHandler.bindAsEventListener(this),false)}else{document.attachEvent("onmouseup",this._mouseUpHandler.bindAsEventListener(this));document.attachEvent("onmousemove",this._mouseMoveHandler.bindAsEventListener(this))}}};var dndMgr=new Rico.DragAndDrop();dndMgr.initializeEventHandlers();Rico.Draggable=Class.create();Rico.Draggable.prototype={initialize:function(a,b){this.type=a;this.htmlElement=$(b);this.selected=false},getMouseDownHTMLElement:function(){return this.htmlElement},select:function(){this.selected=true;if(this.showingSelected){return}var b=this.getMouseDownHTMLElement();var a=Rico.Color.createColorFromBackground(b);a.isBright()?a.darken(0.033):a.brighten(0.033);this.saveBackground=RicoUtil.getElementsComputedStyle(b,"backgroundColor","background-color");b.style.backgroundColor=a.asHex();this.showingSelected=true},deselect:function(){this.selected=false;if(!this.showingSelected){return}var a=this.getMouseDownHTMLElement();a.style.backgroundColor=this.saveBackground;this.showingSelected=false},isSelected:function(){return this.selected},startDrag:function(){},cancelDrag:function(){},endDrag:function(){},getSingleObjectDragGUI:function(){return this.htmlElement},getMultiObjectDragGUI:function(a){return this.htmlElement},getDroppedGUI:function(){return this.htmlElement},toString:function(){return this.type+":"+this.htmlElement+":"}};Rico.Dropzone=Class.create();Rico.Dropzone.prototype={initialize:function(a){this.htmlElement=$(a);this.absoluteRect=null},getHTMLElement:function(){return this.htmlElement},clearPositionCache:function(){this.absoluteRect=null},getAbsoluteRect:function(){if(this.absoluteRect==null){var a=this.getHTMLElement();var b=RicoUtil.toViewportPosition(a);this.absoluteRect={top:b.y,left:b.x,bottom:b.y+a.offsetHeight,right:b.x+a.offsetWidth}}return this.absoluteRect},activate:function(){var c=this.getHTMLElement();if(c==null||this.showingActive){return}this.showingActive=true;this.saveBackgroundColor=c.style.backgroundColor;var b="#ffea84";var a=Rico.Color.createColorFromBackground(c);if(a==null){c.style.backgroundColor=b}else{a.isBright()?a.darken(0.2):a.brighten(0.2);c.style.backgroundColor=a.asHex()}},deactivate:function(){var a=this.getHTMLElement();if(a==null||!this.showingActive){return}a.style.backgroundColor=this.saveBackgroundColor;this.showingActive=false;this.saveBackgroundColor=null},showHover:function(){var a=this.getHTMLElement();if(a==null||this.showingHover){return}this.saveBorderWidth=a.style.borderWidth;this.saveBorderStyle=a.style.borderStyle;this.saveBorderColor=a.style.borderColor;this.showingHover=true;a.style.borderWidth="1px";a.style.borderStyle="solid";a.style.borderColor="#ffff00"},hideHover:function(){var a=this.getHTMLElement();if(a==null||!this.showingHover){return}a.style.borderWidth=this.saveBorderWidth;a.style.borderStyle=this.saveBorderStyle;a.style.borderColor=this.saveBorderColor;this.showingHover=false},canAccept:function(a){return true},accept:function(b){var c=this.getHTMLElement();if(c==null){return}n=b.length;for(var a=0;a<n;a++){var d=b[a].getDroppedGUI();if(RicoUtil.getElementsComputedStyle(d,"position")=="absolute"){d.style.position="static";d.style.top="";d.style.top=""}c.appendChild(d)}}};Rico.Effect={};Rico.Effect.SizeAndPosition=Class.create();Rico.Effect.SizeAndPosition.prototype={initialize:function(d,a,i,b,f,g,c,e){this.element=$(d);this.x=a;this.y=i;this.w=b;this.h=f;this.duration=g;this.steps=c;this.options=arguments[7]||{};this.sizeAndPosition()},sizeAndPosition:function(){if(this.isFinished()){if(this.options.complete){this.options.complete(this)}return}if(this.timer){clearTimeout(this.timer)}var e=Math.round(this.duration/this.steps);var c=this.element.offsetLeft;var b=this.element.offsetTop;var d=this.element.offsetWidth;var i=this.element.offsetHeight;this.x=(this.x)?this.x:c;this.y=(this.y)?this.y:b;this.w=(this.w)?this.w:d;this.h=(this.h)?this.h:i;var g=this.steps>0?(this.x-c)/this.steps:0;var f=this.steps>0?(this.y-b)/this.steps:0;var h=this.steps>0?(this.w-d)/this.steps:0;var a=this.steps>0?(this.h-i)/this.steps:0;this.moveBy(g,f);this.resizeBy(h,a);this.duration-=e;this.steps--;this.timer=setTimeout(this.sizeAndPosition.bind(this),e)},isFinished:function(){return this.steps<=0},moveBy:function(b,g){var f=this.element.offsetLeft;var e=this.element.offsetTop;var c=parseInt(b);var a=parseInt(g);var d=this.element.style;if(c!=0){d.left=(f+c)+"px"}if(a!=0){d.top=(e+a)+"px"}},resizeBy:function(a,e){var c=this.element.offsetWidth;var g=this.element.offsetHeight;var b=parseInt(a);var f=parseInt(e);var d=this.element.style;if(b!=0){d.width=(c+b)+"px"}if(f!=0){d.height=(g+f)+"px"}}};Rico.Effect.Size=Class.create();Rico.Effect.Size.prototype={initialize:function(c,a,e,f,b,d){new Rico.Effect.SizeAndPosition(c,null,null,a,e,f,b,d)}};Rico.Effect.Position=Class.create();Rico.Effect.Position.prototype={initialize:function(c,a,f,e,b,d){new Rico.Effect.SizeAndPosition(c,a,f,null,null,e,b,d)}};Rico.Effect.Round=Class.create();Rico.Effect.Round.prototype={initialize:function(c,b,e){var a=document.getElementsByTagAndClassName(c,b);for(var d=0;d<a.length;d++){Rico.Corner.round(a[d],e)}}};Rico.Effect.FadeTo=Class.create();Rico.Effect.FadeTo.prototype={initialize:function(b,d,e,a,c){this.element=$(b);this.opacity=d;this.duration=e;this.steps=a;this.options=arguments[4]||{};this.fadeTo()},fadeTo:function(){if(this.isFinished()){if(this.options.complete){this.options.complete(this)}return}if(this.timer){clearTimeout(this.timer)}var b=Math.round(this.duration/this.steps);var a=this.getElementOpacity();var c=this.steps>0?(this.opacity-a)/this.steps:0;this.changeOpacityBy(c);this.duration-=b;this.steps--;this.timer=setTimeout(this.fadeTo.bind(this),b)},changeOpacityBy:function(b){var a=this.getElementOpacity();var c=Math.max(0,Math.min(a+b,1));this.element.ricoOpacity=c;this.element.style.filter="alpha(opacity:"+Math.round(c*100)+")";this.element.style.opacity=c},isFinished:function(){return this.steps<=0},getElementOpacity:function(){if(this.element.ricoOpacity==undefined){var a=RicoUtil.getElementsComputedStyle(this.element,"opacity");this.element.ricoOpacity=a!=undefined?a:1}return parseFloat(this.element.ricoOpacity)}};Rico.Effect.AccordionSize=Class.create();Rico.Effect.AccordionSize.prototype={initialize:function(e,d,g,a,f,b,c){this.e1=$(e);this.e2=$(d);this.start=g;this.end=a;this.duration=f;this.steps=b;this.options=arguments[6]||{};this.accordionSize()},accordionSize:function(){if(this.isFinished()){this.e1.style.height=this.start+"px";this.e2.style.height=this.end+"px";if(this.options.complete){this.options.complete(this)}return}if(this.timer){clearTimeout(this.timer)}var a=Math.round(this.duration/this.steps);var b=this.steps>0?(parseInt(this.e1.offsetHeight)-this.start)/this.steps:0;this.resizeBy(b);this.duration-=a;this.steps--;this.timer=setTimeout(this.accordionSize.bind(this),a)},isFinished:function(){return this.steps<=0},resizeBy:function(b){var d=this.e1.offsetHeight;var a=this.e2.offsetHeight;var c=parseInt(b);if(b!=0){this.e1.style.height=(d-c)+"px";this.e2.style.height=(a+c)+"px"}}};Rico.LiveGridMetaData=Class.create();Rico.LiveGridMetaData.prototype={initialize:function(a,b,d,c){this.pageSize=a;this.totalRows=b;this.setOptions(c);this.ArrowHeight=16;this.columnCount=d},setOptions:function(a){this.options={largeBufferSize:7,nearLimitFactor:0.2};Object.extend(this.options,a||{})},getPageSize:function(){return this.pageSize},getTotalRows:function(){return this.totalRows},setTotalRows:function(a){this.totalRows=a},getLargeBufferSize:function(){return parseInt(this.options.largeBufferSize*this.pageSize)},getLimitTolerance:function(){return parseInt(this.getLargeBufferSize()*this.options.nearLimitFactor)}};Rico.LiveGridScroller=Class.create();Rico.LiveGridScroller.prototype={initialize:function(b,a){this.isIE=navigator.userAgent.toLowerCase().indexOf("msie")>=0;this.liveGrid=b;this.metaData=b.metaData;this.createScrollBar();this.scrollTimeout=null;this.lastScrollPos=0;this.viewPort=a;this.rows=new Array()},isUnPlugged:function(){return this.scrollerDiv.onscroll==null},plugin:function(){this.scrollerDiv.onscroll=this.handleScroll.bindAsEventListener(this)},unplug:function(){this.scrollerDiv.onscroll=null},sizeIEHeaderHack:function(){if(!this.isIE){return}var a=$(this.liveGrid.tableId+"_header");if(a){a.rows[0].cells[0].style.width=(a.rows[0].cells[0].offsetWidth+1)+"px"}},createScrollBar:function(){var a=this.liveGrid.viewPort.visibleHeight();this.scrollerDiv=document.createElement("div");var c=this.scrollerDiv.style;c.borderRight=this.liveGrid.options.scrollerBorderRight;c.position="relative";c.left=this.isIE?"-6px":"-3px";c.width="19px";c.height=a+"px";c.overflow="auto";this.heightDiv=document.createElement("div");this.heightDiv.style.width="1px";this.heightDiv.style.height=parseInt(a*this.metaData.getTotalRows()/this.metaData.getPageSize())+"px";this.scrollerDiv.appendChild(this.heightDiv);this.scrollerDiv.onscroll=this.handleScroll.bindAsEventListener(this);var d=this.liveGrid.table;d.parentNode.parentNode.insertBefore(this.scrollerDiv,d.parentNode.nextSibling);var b=this.isIE?"mousewheel":"DOMMouseScroll";Event.observe(d,b,function(e){if(e.wheelDelta>=0||e.detail<0){this.scrollerDiv.scrollTop-=(2*this.viewPort.rowHeight)}else{this.scrollerDiv.scrollTop+=(2*this.viewPort.rowHeight)}this.handleScroll(false)}.bindAsEventListener(this),false)},updateSize:function(){var b=this.liveGrid.table;var a=this.viewPort.visibleHeight();this.heightDiv.style.height=parseInt(a*this.metaData.getTotalRows()/this.metaData.getPageSize())+"px"},rowToPixel:function(a){return(a/this.metaData.getTotalRows())*this.heightDiv.offsetHeight},moveScroll:function(a){this.scrollerDiv.scrollTop=this.rowToPixel(a);if(this.metaData.options.onscroll){this.metaData.options.onscroll(this.liveGrid,a)}},handleScroll:function(){if(this.scrollTimeout){clearTimeout(this.scrollTimeout)}var c=this.lastScrollPos-this.scrollerDiv.scrollTop;if(c!=0){var b=this.scrollerDiv.scrollTop%this.viewPort.rowHeight;if(b!=0){this.unplug();if(c<0){this.scrollerDiv.scrollTop+=(this.viewPort.rowHeight-b)}else{this.scrollerDiv.scrollTop-=b}this.plugin()}}var a=parseInt(this.scrollerDiv.scrollTop/this.viewPort.rowHeight);this.liveGrid.requestContentRefresh(a);this.viewPort.scrollTo(this.scrollerDiv.scrollTop);if(this.metaData.options.onscroll){this.metaData.options.onscroll(this.liveGrid,a)}this.scrollTimeout=setTimeout(this.scrollIdle.bind(this),1200);this.lastScrollPos=this.scrollerDiv.scrollTop},scrollIdle:function(){if(this.metaData.options.onscrollidle){this.metaData.options.onscrollidle()}}};Rico.LiveGridBuffer=Class.create();Rico.LiveGridBuffer.prototype={initialize:function(a,b){this.startPos=0;this.size=0;this.metaData=a;this.rows=new Array();this.updateInProgress=false;this.viewPort=b;this.maxBufferSize=a.getLargeBufferSize()*2;this.maxFetchSize=a.getLargeBufferSize();this.lastOffset=0},getBlankRow:function(){if(!this.blankRow){this.blankRow=new Array();for(var a=0;a<this.metaData.columnCount;a++){this.blankRow[a]="&nbsp;"}}return this.blankRow},loadRows:function(e){var a=e.getElementsByTagName("rows")[0];this.updateUI=a.getAttribute("update_ui")=="true";var f=new Array();var d=a.getElementsByTagName("tr");for(var c=0;c<d.length;c++){var m=f[c]=new Array();var l=d[c].getElementsByTagName("td");for(var b=0;b<l.length;b++){var k=l[b];var g=k.getAttribute("convert_spaces")=="true";var h=RicoUtil.getContentAsString(k);m[b]=g?this.convertSpaces(h):h;if(!m[b]){m[b]="&nbsp;"}}}return f},update:function(a,d){var b=this.loadRows(a);if(this.rows.length==0){this.rows=b;this.size=this.rows.length;this.startPos=d;return}if(d>this.startPos){if(this.startPos+this.rows.length<d){this.rows=b;this.startPos=d}else{this.rows=this.rows.concat(b.slice(0,b.length));if(this.rows.length>this.maxBufferSize){var c=this.rows.length;this.rows=this.rows.slice(this.rows.length-this.maxBufferSize,this.rows.length);this.startPos=this.startPos+(c-this.rows.length)}}}else{if(d+b.length<this.startPos){this.rows=b}else{this.rows=b.slice(0,this.startPos).concat(this.rows);if(this.rows.length>this.maxBufferSize){this.rows=this.rows.slice(0,this.maxBufferSize)}}this.startPos=d}this.size=this.rows.length},clear:function(){this.rows=new Array();this.startPos=0;this.size=0},isOverlapping:function(b,a){return((b<this.endPos())&&(this.startPos<b+a))||(this.endPos()==0)},isInRange:function(a){return(a>=this.startPos)&&(a+this.metaData.getPageSize()<=this.endPos())},isNearingTopLimit:function(a){return a-this.startPos<this.metaData.getLimitTolerance()},endPos:function(){return this.startPos+this.rows.length},isNearingBottomLimit:function(a){return this.endPos()-(a+this.metaData.getPageSize())<this.metaData.getLimitTolerance()},isAtTop:function(){return this.startPos==0},isAtBottom:function(){return this.endPos()==this.metaData.getTotalRows()},isNearingLimit:function(a){return(!this.isAtTop()&&this.isNearingTopLimit(a))||(!this.isAtBottom()&&this.isNearingBottomLimit(a))},getFetchSize:function(c){var a=this.getFetchOffset(c);var b=0;if(a>=this.startPos){var d=this.maxFetchSize+a;if(d>this.metaData.totalRows){d=this.metaData.totalRows}b=d-a;if(a==0&&b<this.maxFetchSize){b=this.maxFetchSize}}else{var b=this.startPos-a;if(b>this.maxFetchSize){b=this.maxFetchSize}}return b},getFetchOffset:function(b){var a=b;if(b>this.startPos){a=(b>this.endPos())?b:this.endPos()}else{if(b+this.maxFetchSize>=this.startPos){var a=this.startPos-this.maxFetchSize;if(a<0){a=0}}}this.lastOffset=a;return a},getRows:function(g,e){var f=g-this.startPos;var d=f+e;if(d>this.size){d=this.size}var c=new Array();var a=0;for(var b=f;b<d;b++){c[a++]=this.rows[b]}return c},convertSpaces:function(a){return a.split(" ").join("&nbsp;")}};Rico.GridViewPort=Class.create();Rico.GridViewPort.prototype={initialize:function(c,b,d,a,e){this.lastDisplayedStartPos=0;this.div=c.parentNode;this.table=c;this.rowHeight=b;this.div.style.height=(this.rowHeight*d)+"px";this.div.style.overflow="hidden";this.buffer=a;this.liveGrid=e;this.visibleRows=d+1;this.lastPixelOffset=0;this.startPos=0},populateRow:function(c,b){for(var a=0;a<b.length;a++){c.cells[a].innerHTML=b[a]}},bufferChanged:function(){this.refreshContents(parseInt(this.lastPixelOffset/this.rowHeight))},clearRows:function(){if(!this.isBlank){this.liveGrid.table.className=this.liveGrid.options.loadingClass;for(var a=0;a<this.visibleRows;a++){this.populateRow(this.table.rows[a],this.buffer.getBlankRow())}this.isBlank=true}},clearContents:function(){this.clearRows();this.scrollTo(0);this.startPos=0;this.lastStartPos=-1},refreshContents:function(f){if(f==this.lastRowPos&&!this.isPartialBlank&&!this.isBlank){return}if((f+this.visibleRows<this.buffer.startPos)||(this.buffer.startPos+this.buffer.size<f)||(this.buffer.size==0)){this.clearRows();return}this.isBlank=false;var e=this.buffer.startPos>f;var g=e?this.buffer.startPos:f;var h=(this.buffer.startPos+this.buffer.size<f+this.visibleRows)?this.buffer.startPos+this.buffer.size:f+this.visibleRows;var j=h-g;var l=this.buffer.getRows(g,j);var b=this.visibleRows-j;var a=e?0:j;var d=e?b:0;for(var c=0;c<l.length;c++){this.populateRow(this.table.rows[c+d],l[c])}for(var c=0;c<b;c++){this.populateRow(this.table.rows[c+a],this.buffer.getBlankRow())}this.isPartialBlank=b>0;this.lastRowPos=f;this.liveGrid.table.className=this.liveGrid.options.tableClass;var k=this.liveGrid.options.onRefreshComplete;if(k!=null){k()}},scrollTo:function(a){if(this.lastPixelOffset==a){return}this.refreshContents(parseInt(a/this.rowHeight));this.div.scrollTop=a%this.rowHeight;this.lastPixelOffset=a},visibleHeight:function(){return parseInt(RicoUtil.getElementsComputedStyle(this.div,"height"))}};Rico.LiveGridRequest=Class.create();Rico.LiveGridRequest.prototype={initialize:function(b,a){this.requestOffset=b}};Rico.LiveGrid=Class.create();Rico.LiveGrid.prototype={initialize:function(f,b,i,a,h,e){this.options={tableClass:$(f).className,loadingClass:$(f).className,scrollerBorderRight:"1px solid #ababab",bufferTimeout:20000,sortAscendImg:"images/sort_asc.gif",sortDescendImg:"images/sort_desc.gif",sortImageWidth:9,sortImageHeight:5,ajaxSortURLParms:[],onRefreshComplete:null,requestParameters:null,inlineStyles:true};Object.extend(this.options,h||{});this.ajaxOptions={parameters:null};Object.extend(this.ajaxOptions,e||{});this.tableId=f;this.table=$(f);this.addLiveGridHtml();var c=this.table.rows[0].cells.length;this.metaData=new Rico.LiveGridMetaData(b,i,c,h);this.buffer=new Rico.LiveGridBuffer(this.metaData);var g=this.table.rows.length;this.viewPort=new Rico.GridViewPort(this.table,this.table.offsetHeight/g,b,this.buffer,this);this.scroller=new Rico.LiveGridScroller(this,this.viewPort);this.options.sortHandler=this.sortHandler.bind(this);if($(f+"_header")){this.sort=new Rico.LiveGridSort(f+"_header",this.options)}this.processingRequest=null;this.unprocessedRequest=null;this.initAjax(a);if(this.options.prefetchBuffer||this.options.prefetchOffset>0){var d=0;if(this.options.offset){d=this.options.offset;this.scroller.moveScroll(d);this.viewPort.scrollTo(this.scroller.rowToPixel(d))}if(this.options.sortCol){this.sortCol=h.sortCol;this.sortDir=h.sortDir}this.requestContentRefresh(d)}},addLiveGridHtml:function(){if(this.table.getElementsByTagName("thead").length>0){var b=this.table.cloneNode(true);b.setAttribute("id",this.tableId+"_header");b.setAttribute("class",this.table.className+"_header");for(var a=0;a<b.tBodies.length;a++){b.removeChild(b.tBodies[a])}this.table.deleteTHead();this.table.parentNode.insertBefore(b,this.table)}new Insertion.Before(this.table,"<div id='"+this.tableId+"_container'></div>");this.table.previousSibling.appendChild(this.table);new Insertion.Before(this.table,"<div id='"+this.tableId+"_viewport' style='float:left;'></div>");this.table.previousSibling.appendChild(this.table)},resetContents:function(){this.scroller.moveScroll(0);this.buffer.clear();this.viewPort.clearContents()},sortHandler:function(a){if(!a){return}this.sortCol=a.name;this.sortDir=a.currentSort;this.resetContents();this.requestContentRefresh(0)},adjustRowSize:function(){},setTotalRows:function(a){this.resetContents();this.metaData.setTotalRows(a);this.scroller.updateSize()},initAjax:function(a){ajaxEngine.registerRequest(this.tableId+"_request",a);ajaxEngine.registerAjaxObject(this.tableId+"_updater",this)},invokeAjax:function(){},handleTimedOut:function(){this.processingRequest=null;this.processQueuedRequest()},fetchBuffer:function(d){if(this.buffer.isInRange(d)&&!this.buffer.isNearingLimit(d)){return}if(this.processingRequest){this.unprocessedRequest=new Rico.LiveGridRequest(d);return}var a=this.buffer.getFetchOffset(d);this.processingRequest=new Rico.LiveGridRequest(d);this.processingRequest.bufferOffset=a;var b=this.buffer.getFetchSize(d);var e=false;var c;if(this.options.requestParameters){c=this._createQueryString(this.options.requestParameters,0)}c=(c==null)?"":c+"&";c=c+"id="+this.tableId+"&page_size="+b+"&offset="+a;if(this.sortCol){c=c+"&sort_col="+escape(this.sortCol)+"&sort_dir="+this.sortDir}this.ajaxOptions.parameters=c;ajaxEngine.sendRequest(this.tableId+"_request",this.ajaxOptions);this.timeoutHandler=setTimeout(this.handleTimedOut.bind(this),this.options.bufferTimeout)},setRequestParams:function(){this.options.requestParameters=[];for(var a=0;a<arguments.length;a++){this.options.requestParameters[a]=arguments[a]}},requestContentRefresh:function(a){this.fetchBuffer(a)},ajaxUpdate:function(a){try{clearTimeout(this.timeoutHandler);this.buffer.update(a,this.processingRequest.bufferOffset);this.viewPort.bufferChanged()}catch(b){}finally{this.processingRequest=null}this.processQueuedRequest()},_createQueryString:function(b,h){var g="";if(!b){return g}for(var c=h;c<b.length;c++){if(c!=h){g+="&"}var d=b[c];if(d.name!=undefined&&d.value!=undefined){g+=d.name+"="+escape(d.value)}else{var a=d.indexOf("=");var f=d.substring(0,a);var e=d.substring(a+1);g+=f+"="+escape(e)}}return g},processQueuedRequest:function(){if(this.unprocessedRequest!=null){this.requestContentRefresh(this.unprocessedRequest.requestOffset);this.unprocessedRequest=null}}};Rico.LiveGridSort=Class.create();Rico.LiveGridSort.prototype={initialize:function(a,b){this.headerTableId=a;this.headerTable=$(a);this.options=b;this.setOptions();this.applySortBehavior();if(this.options.sortCol){this.setSortUI(this.options.sortCol,this.options.sortDir)}},setSortUI:function(b,d){var c=this.options.columns;for(var a=0;a<c.length;a++){if(c[a].name==b){this.setColumnSort(a,d);break}}},setOptions:function(){new Image().src=this.options.sortAscendImg;new Image().src=this.options.sortDescendImg;this.sort=this.options.sortHandler;if(!this.options.columns){this.options.columns=this.introspectForColumnInfo()}else{this.options.columns=this.convertToTableColumns(this.options.columns)}},applySortBehavior:function(){var b=this.headerTable.rows[0];var a=b.cells;for(var c=0;c<a.length;c++){this.addSortBehaviorToColumn(c,a[c])}},addSortBehaviorToColumn:function(b,a){if(this.options.columns[b].isSortable()){a.id=this.headerTableId+"_"+b;a.style.cursor="pointer";a.onclick=this.headerCellClicked.bindAsEventListener(this);a.innerHTML=a.innerHTML+'<span id="'+this.headerTableId+"_img_"+b+'">&nbsp;&nbsp;&nbsp;</span>'}},headerCellClicked:function(b){var d=b.target?b.target:b.srcElement;var a=d.id;var c=parseInt(a.substring(a.lastIndexOf("_")+1));var e=this.getSortedColumnIndex();if(e!=-1){if(e!=c){this.removeColumnSort(e);this.setColumnSort(c,Rico.TableColumn.SORT_ASC)}else{this.toggleColumnSort(e)}}else{this.setColumnSort(c,Rico.TableColumn.SORT_ASC)}if(this.options.sortHandler){this.options.sortHandler(this.options.columns[c])}},removeColumnSort:function(a){this.options.columns[a].setUnsorted();this.setSortImage(a)},setColumnSort:function(b,a){if(isNaN(b)){return}this.options.columns[b].setSorted(a);this.setSortImage(b)},toggleColumnSort:function(a){this.options.columns[a].toggleSort();this.setSortImage(a)},setSortImage:function(c){var b=this.options.columns[c].getSortDirection();var a=$(this.headerTableId+"_img_"+c);if(b==Rico.TableColumn.UNSORTED){a.innerHTML="&nbsp;&nbsp;"}else{if(b==Rico.TableColumn.SORT_ASC){a.innerHTML='&nbsp;&nbsp;<img width="'+this.options.sortImageWidth+'" height="'+this.options.sortImageHeight+'" src="'+this.options.sortAscendImg+'"/>'}else{if(b==Rico.TableColumn.SORT_DESC){a.innerHTML='&nbsp;&nbsp;<img width="'+this.options.sortImageWidth+'" height="'+this.options.sortImageHeight+'" src="'+this.options.sortDescendImg+'"/>'}}}},getSortedColumnIndex:function(){var b=this.options.columns;for(var a=0;a<b.length;a++){if(b[a].isSorted()){return a}}return -1},introspectForColumnInfo:function(){var d=new Array();var b=this.headerTable.rows[0];var a=b.cells;for(var c=0;c<a.length;c++){d.push(new Rico.TableColumn(this.deriveColumnNameFromCell(a[c],c),true))}return d},convertToTableColumns:function(c){var b=new Array();for(var a=0;a<c.length;a++){b.push(new Rico.TableColumn(c[a][0],c[a][1]))}return b},deriveColumnNameFromCell:function(a,c){var b=a.innerText!=undefined?a.innerText:a.textContent;return b?b.toLowerCase().split(" ").join("_"):"col_"+c}};Rico.TableColumn=Class.create();Rico.TableColumn.UNSORTED=0;Rico.TableColumn.SORT_ASC="ASC";Rico.TableColumn.SORT_DESC="DESC";Rico.TableColumn.prototype={initialize:function(a,b){this.name=a;this.sortable=b;this.currentSort=Rico.TableColumn.UNSORTED},isSortable:function(){return this.sortable},isSorted:function(){return this.currentSort!=Rico.TableColumn.UNSORTED},getSortDirection:function(){return this.currentSort},toggleSort:function(){if(this.currentSort==Rico.TableColumn.UNSORTED||this.currentSort==Rico.TableColumn.SORT_DESC){this.currentSort=Rico.TableColumn.SORT_ASC}else{if(this.currentSort==Rico.TableColumn.SORT_ASC){this.currentSort=Rico.TableColumn.SORT_DESC}}},setUnsorted:function(a){this.setSorted(Rico.TableColumn.UNSORTED)},setSorted:function(a){this.currentSort=a}};var RicoUtil={getElementsComputedStyle:function(d,c,a){if(arguments.length==2){a=c}var b=$(d);if(b.currentStyle){return b.currentStyle[c]}else{return document.defaultView.getComputedStyle(b,null).getPropertyValue(a)}},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(c){var b="";for(var a=0;a<c.childNodes.length;a++){var d=c.childNodes[a];if(d.nodeType==4){b+=d.nodeValue}else{b+=d.xml}}return b},_getContentAsStringMozilla:function(d){var a=new XMLSerializer();var c="";for(var b=0;b<d.childNodes.length;b++){var e=d.childNodes[b];if(e.nodeType==4){c+=e.nodeValue}else{c+=a.serializeToString(e)}}return c},toViewportPosition:function(a){return this._toAbsolute(a,true)},toDocumentPosition:function(a){return this._toAbsolute(a,false)},_toAbsolute:function(d,e){if(navigator.userAgent.toLowerCase().indexOf("msie")==-1){return this._toAbsoluteMozilla(d,e)}var a=0;var g=0;var c=d;while(c){var b=0;var f=0;if(c!=d){var b=parseInt(this.getElementsComputedStyle(c,"borderLeftWidth"));var f=parseInt(this.getElementsComputedStyle(c,"borderTopWidth"));b=isNaN(b)?0:b;f=isNaN(f)?0:f}a+=c.offsetLeft-c.scrollLeft+b;g+=c.offsetTop-c.scrollTop+f;c=c.offsetParent}if(e){a-=this.docScrollLeft();g-=this.docScrollTop()}return{x:a,y:g}},_toAbsoluteMozilla:function(c,d){var a=0;var e=0;var b=c;while(b){a+=b.offsetLeft;e+=b.offsetTop;b=b.offsetParent}b=c;while(b&&b!=document.body&&b!=document.documentElement){if(b.scrollLeft){a-=b.scrollLeft}if(b.scrollTop){e-=b.scrollTop}b=b.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}}}}};