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(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,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.Accordion=Class.create();Rico.Accordion.prototype={initialize:function(a,c){this.container=$(a);this.lastExpandedTab=null;this.accordionTabs=new Array();this.setOptions(c);this._attachBehaviors();if(!a){return}this.container.style.borderBottom="1px solid "+this.options.borderColor;if(this.options.onLoadShowTab>=this.accordionTabs.length){this.options.onLoadShowTab=0}for(var e=0;e<this.accordionTabs.length;e++){if(e!=this.options.onLoadShowTab){this.accordionTabs[e].collapse();this.accordionTabs[e].content.style.display="none"}}this.lastExpandedTab=this.accordionTabs[this.options.onLoadShowTab];if(this.options.panelHeight=="auto"){var f=(this.options.onloadShowTab===0)?1:0;var b=parseInt(RicoUtil.getElementsComputedStyle(this.accordionTabs[f].titleBar,"height"));if(isNaN(b)){b=this.accordionTabs[f].titleBar.offsetHeight}var g=this.accordionTabs.length*b;var d=parseInt(RicoUtil.getElementsComputedStyle(this.container.parentNode,"height"));if(isNaN(d)){d=this.container.parentNode.offsetHeight}this.options.panelHeight=d-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,d){if(this.lastExpandedTab==e){return}var c=arguments.length==1?true:d;if(this.options.onHideTab){this.options.onHideTab(this.lastExpandedTab)}this.lastExpandedTab.showCollapsed();var b=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(c){new Rico.Effect.AccordionSize(this.lastExpandedTab.content,e.content,1,this.options.panelHeight,100,10,{complete:function(){b.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 a=this._getDirectChildrenByTag(this.container,"DIV");for(var b=0;b<a.length;b++){var e=this._getDirectChildrenByTag(a[b],"DIV");if(e.length!=2){continue}var c=e[0];var d=e[1];this.accordionTabs.push(new Rico.Accordion.Tab(this,c,d))}},_getDirectChildrenByTag:function(f,d){var b=new Array();var a=f.childNodes;for(var c=0;c<a.length;c++){if(a[c]&&a[c].tagName&&a[c].tagName==d){b.push(a[c])}}return b}};Rico.Accordion.Tab=Class.create();Rico.Accordion.Tab.prototype={initialize:function(a,b,c){this.accordion=a;this.titleBar=b;this.content=c;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,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}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();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(d){if(d.length==4){var b=d;var d="#";for(var c=1;c<4;c++){d+=(b.charAt(c)+b.charAt(c))}}if(d.indexOf("#")==0){d=d.substring(1)}var f=d.substring(0,2);var e=d.substring(2,4);var a=d.substring(4,6);return new Rico.Color(parseInt(f,16),parseInt(e,16),parseInt(a,16))};Rico.Color.createColorFromBackground=function(d){var b=RicoUtil.getElementsComputedStyle($(d),"backgroundColor","background-color");if(b=="transparent"&&d.parentNode){return Rico.Color.createColorFromBackground(d.parentNode)}if(b==null){return new Rico.Color(255,255,255)}if(b.indexOf("rgb(")==0){var a=b.substring(4,b.length-1);var c=a.split(",");return new Rico.Color(parseInt(c[0]),parseInt(c[1]),parseInt(c[2]))}else{if(b.indexOf("#")==0){return Rico.Color.createFromHex(b)}else{return new Rico.Color(255,255,255)}}};Rico.Color.HSBtoRGB=function(i,e,k){var c=0;var d=0;var l=0;if(e==0){c=parseInt(k*255+0.5);d=c;l=c}else{var g=(i-Math.floor(i))*6;var j=g-Math.floor(g);var b=k*(1-e);var a=k*(1-e*j);var m=k*(1-(e*(1-j)));switch(parseInt(g)){case 0:c=(k*255+0.5);d=(m*255+0.5);l=(b*255+0.5);break;case 1:c=(a*255+0.5);d=(k*255+0.5);l=(b*255+0.5);break;case 2:c=(b*255+0.5);d=(k*255+0.5);l=(m*255+0.5);break;case 3:c=(b*255+0.5);d=(a*255+0.5);l=(k*255+0.5);break;case 4:c=(m*255+0.5);d=(b*255+0.5);l=(k*255+0.5);break;case 5:c=(k*255+0.5);d=(b*255+0.5);l=(a*255+0.5);break}}return{r:parseInt(c),g:parseInt(d),b:parseInt(l)}};Rico.Color.RGBtoHSB=function(a,f,l){var h;var e;var k;var m=(a>f)?a:f;if(l>m){m=l}var i=(a<f)?a:f;if(l<i){i=l}k=m/255;if(m!=0){e=(m-i)/m}else{e=0}if(e==0){h=0}else{var c=(m-a)/(m-i);var j=(m-f)/(m-i);var d=(m-l)/(m-i);if(a==m){h=d-j}else{if(f==m){h=2+c-d}else{h=4+j-c}}h=h/6;if(h<0){h=h+1}}return{h:h,s:e,b:k}};Rico.Corner={round:function(d,b){var d=$(d);this._setOptions(b);var a=this.options.color;if(this.options.color=="fromElement"){a=this._background(d)}var c=this.options.bgColor;if(this.options.bgColor=="fromParent"){c=this._background(d.offsetParent)}this._roundCornersImpl(d,a,c)},_roundCornersImpl:function(c,a,b){if(this.options.border){this._renderBorder(c,b)}if(this._isTopRounded()){this._roundTopCorners(c,a,b)}if(this._isBottomRounded()){this._roundBottomCorners(c,a,b)}},_renderBorder:function(d,e){var b="1px solid "+this._borderColor(e);var a="border-left: "+b;var f="border-right: "+b;var c="style='"+a+";"+f+"'";d.innerHTML="<div "+c+">"+d.innerHTML+"</div>"},_roundTopCorners:function(c,a,e){var d=this._createCorner(e);for(var b=0;b<this.options.numSlices;b++){d.appendChild(this._createCornerSlice(a,e,b,"top"))}c.style.paddingTop=0;c.insertBefore(d,c.firstChild)},_roundBottomCorners:function(c,a,e){var d=this._createCorner(e);for(var b=(this.options.numSlices-1);b>=0;b--){d.appendChild(this._createCornerSlice(a,e,b,"bottom"))}c.style.paddingBottom=0;c.appendChild(d)},_createCorner:function(b){var a=document.createElement("div");a.style.backgroundColor=(this._isTransparent()?"transparent":b);return a},_createCornerSlice:function(c,d,g,a){var e=document.createElement("span");var b=e.style;b.backgroundColor=c;b.display="block";b.height="1px";b.overflow="hidden";b.fontSize="1px";var f=this._borderColor(c,d);if(this.options.border&&g==0){b.borderTopStyle="solid";b.borderTopWidth="1px";b.borderLeftWidth="0px";b.borderRightWidth="0px";b.borderBottomWidth="0px";b.height="0px";b.borderColor=f}else{if(f){b.borderColor=f;b.borderStyle="solid";b.borderWidth="0px 1px"}}if(!this.options.compact&&(g==(this.options.numSlices-1))){b.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(a,b){if(a=="transparent"){return b}else{if(this.options.border){return this.options.border}else{if(this.options.blend){return this._blend(b,a)}else{return""}}}},_setMargin:function(d,e,b){var c=this._marginSize(e);var a=b=="top"?this._whichSideTop():this._whichSideBottom();if(a=="left"){d.style.marginLeft=c+"px";d.style.marginRight="0px"}else{if(a=="right"){d.style.marginRight=c+"px";d.style.marginLeft="0px"}else{d.style.marginLeft=c+"px";d.style.marginRight=c+"px"}}},_setBorder:function(d,e,b){var c=this._borderSize(e);var a=b=="top"?this._whichSideTop():this._whichSideBottom();if(a=="left"){d.style.borderLeftWidth=c+"px";d.style.borderRightWidth="0px"}else{if(a=="right"){d.style.borderRightWidth=c+"px";d.style.borderLeftWidth="0px"}else{d.style.borderLeftWidth=c+"px";d.style.borderRightWidth=c+"px"}}if(this.options.border!=false){d.style.borderLeftWidth=c+"px"}d.style.borderRightWidth=c+"px"},_marginSize:function(e){if(this._isTransparent()){return 0}var d=[5,3,2,1];var a=[3,2,1,0];var c=[2,1];var b=[1,0];if(this.options.compact&&this.options.blend){return b[e]}else{if(this.options.compact){return c[e]}else{if(this.options.blend){return a[e]}else{return d[e]}}}},_borderSize:function(e){var d=[5,3,2,1];var b=[2,1,1,1];var a=[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 a[e]}else{if(this.options.blend){return b[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 d=new Array();var b=0;for(var c=0;c<this.dropZones.length;c++){if(this.dropZones[c]!=a){d[b++]=this.dropZones[c]}}this.dropZones=d},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(a,b){if(!b){this.clearSelection()}if(a.isSelected()){this.currentDragObjects.removeItem(a);a.deselect();if(a==this.lastSelectedDraggable){this.lastSelectedDraggable=null}}else{this.currentDragObjects[this.currentDragObjects.length]=a;a.select();this.lastSelectedDraggable=a}},_mouseDownHandler:function(g){if(arguments.length==0){g=event}var b=g.which!=undefined;if((b&&g.which!=1)||(!b&&g.button!=1)){return}var f=g.target?g.target:g.srcElement;var a=f.draggable;var d=f;while(a==null&&d.parentNode){d=d.parentNode;a=d.draggable}if(a==null){return}this.updateSelection(a,g.ctrlKey);if(this.hasSelection()){for(var c=0;c<this.dropZones.length;c++){this.dropZones[c].clearPositionCache()}}this.setStartDragFromElement(g,a.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 d=this.getHTMLElement();if(d==null){return}n=b.length;for(var a=0;a<n;a++){var c=b[a].getDroppedGUI();if(RicoUtil.getElementsComputedStyle(c,"position")=="absolute"){c.style.position="static";c.style.top="";c.style.top=""}d.appendChild(c)}}};Rico.Effect={};Rico.Effect.SizeAndPosition=Class.create();Rico.Effect.SizeAndPosition.prototype={initialize:function(e,a,i,b,f,g,c,d){this.element=$(e);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 f=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 e=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,e);this.resizeBy(h,a);this.duration-=f;this.steps--;this.timer=setTimeout(this.sizeAndPosition.bind(this),f)},isFinished:function(){return this.steps<=0},moveBy:function(b,g){var f=this.element.offsetLeft;var d=this.element.offsetTop;var c=parseInt(b);var a=parseInt(g);var e=this.element.style;if(c!=0){e.left=(f+c)+"px"}if(a!=0){e.top=(d+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(d,a,e,f,b,c){new Rico.Effect.SizeAndPosition(d,null,null,a,e,f,b,c)}};Rico.Effect.Position=Class.create();Rico.Effect.Position.prototype={initialize:function(d,a,f,e,b,c){new Rico.Effect.SizeAndPosition(d,a,f,null,null,e,b,c)}};Rico.Effect.Round=Class.create();Rico.Effect.Round.prototype={initialize:function(c,d,a){var e=document.getElementsByTagAndClassName(c,d);for(var b=0;b<e.length;b++){Rico.Corner.round(e[b],a)}}};Rico.Effect.FadeTo=Class.create();Rico.Effect.FadeTo.prototype={initialize:function(d,c,e,a,b){this.element=$(d);this.opacity=c;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(f,e,g,a,d,b,c){this.e1=$(f);this.e2=$(e);this.start=g;this.end=a;this.duration=d;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,c,d,b){this.pageSize=a;this.totalRows=c;this.setOptions(b);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(b){var e=b.getElementsByTagName("rows")[0];this.updateUI=e.getAttribute("update_ui")=="true";var f=new Array();var g=e.getElementsByTagName("tr");for(var d=0;d<g.length;d++){var m=f[d]=new Array();var l=g[d].getElementsByTagName("td");for(var c=0;c<l.length;c++){var k=l[c];var h=k.getAttribute("convert_spaces")=="true";var a=RicoUtil.getContentAsString(k);m[c]=h?this.convertSpaces(a):a;if(!m[c]){m[c]="&nbsp;"}}}return f},update:function(b,d){var a=this.loadRows(b);if(this.rows.length==0){this.rows=a;this.size=this.rows.length;this.startPos=d;return}if(d>this.startPos){if(this.startPos+this.rows.length<d){this.rows=a;this.startPos=d}else{this.rows=this.rows.concat(a.slice(0,a.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+a.length<this.startPos){this.rows=a}else{this.rows=a.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 b=f+e;if(b>this.size){b=this.size}var d=new Array();var a=0;for(var c=f;c<b;c++){d[a++]=this.rows[c]}return d},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(g){if(g==this.lastRowPos&&!this.isPartialBlank&&!this.isBlank){return}if((g+this.visibleRows<this.buffer.startPos)||(this.buffer.startPos+this.buffer.size<g)||(this.buffer.size==0)){this.clearRows();return}this.isBlank=false;var f=this.buffer.startPos>g;var b=f?this.buffer.startPos:g;var a=(this.buffer.startPos+this.buffer.size<g+this.visibleRows)?this.buffer.startPos+this.buffer.size:g+this.visibleRows;var k=a-b;var l=this.buffer.getRows(b,k);var d=this.visibleRows-k;var h=f?0:k;var c=f?d:0;for(var e=0;e<l.length;e++){this.populateRow(this.table.rows[e+c],l[e])}for(var e=0;e<d;e++){this.populateRow(this.table.rows[e+h],this.buffer.getBlankRow())}this.isPartialBlank=d>0;this.lastRowPos=g;this.liveGrid.table.className=this.liveGrid.options.tableClass;var j=this.liveGrid.options.onRefreshComplete;if(j!=null){j()}},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(c,b,h,a,i,d){this.options={tableClass:$(c).className,loadingClass:$(c).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,i||{});this.ajaxOptions={parameters:null};Object.extend(this.ajaxOptions,d||{});this.tableId=c;this.table=$(c);this.addLiveGridHtml();var f=this.table.rows[0].cells.length;this.metaData=new Rico.LiveGridMetaData(b,h,f,i);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($(c+"_header")){this.sort=new Rico.LiveGridSort(c+"_header",this.options)}this.processingRequest=null;this.unprocessedRequest=null;this.initAjax(a);if(this.options.prefetchBuffer||this.options.prefetchOffset>0){var e=0;if(this.options.offset){e=this.options.offset;this.scroller.moveScroll(e);this.viewPort.scrollTo(this.scroller.rowToPixel(e))}if(this.options.sortCol){this.sortCol=i.sortCol;this.sortDir=i.sortDir}this.requestContentRefresh(e)}},addLiveGridHtml:function(){if(this.table.getElementsByTagName("thead").length>0){var a=this.table.cloneNode(true);a.setAttribute("id",this.tableId+"_header");a.setAttribute("class",this.table.className+"_header");for(var b=0;b<a.tBodies.length;b++){a.removeChild(a.tBodies[b])}this.table.deleteTHead();this.table.parentNode.insertBefore(a,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(c){if(this.buffer.isInRange(c)&&!this.buffer.isNearingLimit(c)){return}if(this.processingRequest){this.unprocessedRequest=new Rico.LiveGridRequest(c);return}var b=this.buffer.getFetchOffset(c);this.processingRequest=new Rico.LiveGridRequest(c);this.processingRequest.bufferOffset=b;var a=this.buffer.getFetchSize(c);var e=false;var d;if(this.options.requestParameters){d=this._createQueryString(this.options.requestParameters,0)}d=(d==null)?"":d+"&";d=d+"id="+this.tableId+"&page_size="+a+"&offset="+b;if(this.sortCol){d=d+"&sort_col="+escape(this.sortCol)+"&sort_dir="+this.sortDir}this.ajaxOptions.parameters=d;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(b){try{clearTimeout(this.timeoutHandler);this.buffer.update(b,this.processingRequest.bufferOffset);this.viewPort.bufferChanged()}catch(a){}finally{this.processingRequest=null}this.processQueuedRequest()},_createQueryString:function(e,f){var h="";if(!e){return 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},processQueuedRequest:function(){if(this.unprocessedRequest!=null){this.requestContentRefresh(this.unprocessedRequest.requestOffset);this.unprocessedRequest=null}}};Rico.LiveGridSort=Class.create();Rico.LiveGridSort.prototype={initialize:function(b,a){this.headerTableId=b;this.headerTable=$(b);this.options=a;this.setOptions();this.applySortBehavior();if(this.options.sortCol){this.setSortUI(this.options.sortCol,this.options.sortDir)}},setSortUI:function(a,d){var c=this.options.columns;for(var b=0;b<c.length;b++){if(c[b].name==a){this.setColumnSort(b,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 c=this.headerTable.rows[0];var a=c.cells;for(var b=0;b<a.length;b++){this.addSortBehaviorToColumn(b,a[b])}},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(a){var e=a.target?a.target:a.srcElement;var c=e.id;var b=parseInt(c.substring(c.lastIndexOf("_")+1));var d=this.getSortedColumnIndex();if(d!=-1){if(d!=b){this.removeColumnSort(d);this.setColumnSort(b,Rico.TableColumn.SORT_ASC)}else{this.toggleColumnSort(d)}}else{this.setColumnSort(b,Rico.TableColumn.SORT_ASC)}if(this.options.sortHandler){this.options.sortHandler(this.options.columns[b])}},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 c=new Array();var d=this.headerTable.rows[0];var a=d.cells;for(var b=0;b<a.length;b++){c.push(new Rico.TableColumn(this.deriveColumnNameFromCell(a[b],b),true))}return c},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,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}}}}};