var Rico={Version:"1.1rc1",prototypeVersion:parseFloat(Prototype.Version.split(".")[0]+"."+Prototype.Version.split(".")[1])};
Rico.ArrayExtensions=new Array();
if(Object.prototype.extend){
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Object.prototype.extend;
}else{
Object.prototype.extend=function(_1){
return Object.extend.apply(this,[this,_1]);
};
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(dx){
if(isNaN(dx)||dx>this.length){
return false;
}
for(var i=0,n=0;i<this.length;i++){
if(i!=dx){
this[n++]=this[i];
}
}
this.length-=1;
};
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.remove;
}
if(!Array.prototype.removeItem){
Array.prototype.removeItem=function(_4){
for(var i=0;i<this.length;i++){
if(this[i]==_4){
this.remove(i);
break;
}
}
};
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.removeItem;
}
if(!Array.prototype.indices){
Array.prototype.indices=function(){
var _5=new Array();
for(index in this){
var _6=false;
for(var i=0;i<Rico.ArrayExtensions.length;i++){
if(this[index]==Rico.ArrayExtensions[i]){
_6=true;
break;
}
}
if(!_6){
_5[_5.length]=index;
}
}
return _5;
};
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(s){
var _8=(new DOMParser()).parseFromString(s,"text/xml");
while(this.hasChildNodes()){
this.removeChild(this.lastChild);
}
for(var i=0;i<_8.childNodes.length;i++){
this.appendChild(this.importNode(_8.childNodes[i],true));
}
};
}
Document.prototype.__defineGetter__("xml",function(){
return (new XMLSerializer()).serializeToString(this);
});
}
document.getElementsByTagAndClassName=function(_9,_10){
if(_9==null){
_9="*";
}
var _11=document.getElementsByTagName(_9)||document.all;
var _12=new Array();
if(_10==null){
return _11;
}
for(var i=0;i<_11.length;i++){
var _13=_11[i];
var _14=_13.className.split(" ");
for(var j=0;j<_14.length;j++){
if(_14[j]==_10){
_12.push(_13);
break;
}
}
}
return _12;
};
Rico.Accordion=Class.create();
Rico.Accordion.prototype={initialize:function(_16,_17){
this.container=$(_16);
this.lastExpandedTab=null;
this.accordionTabs=new Array();
this.setOptions(_17);
this._attachBehaviors();
if(!_16){
return;
}
this.container.style.borderBottom="1px solid "+this.options.borderColor;
if(this.options.onLoadShowTab>=this.accordionTabs.length){
this.options.onLoadShowTab=0;
}
for(var i=0;i<this.accordionTabs.length;i++){
if(i!=this.options.onLoadShowTab){
this.accordionTabs[i].collapse();
this.accordionTabs[i].content.style.display="none";
}
}
this.lastExpandedTab=this.accordionTabs[this.options.onLoadShowTab];
if(this.options.panelHeight=="auto"){
var _18=(this.options.onloadShowTab===0)?1:0;
var _19=parseInt(RicoUtil.getElementsComputedStyle(this.accordionTabs[_18].titleBar,"height"));
if(isNaN(_19)){
_19=this.accordionTabs[_18].titleBar.offsetHeight;
}
var _20=this.accordionTabs.length*_19;
var _21=parseInt(RicoUtil.getElementsComputedStyle(this.container.parentNode,"height"));
if(isNaN(_21)){
_21=this.container.parentNode.offsetHeight;
}
this.options.panelHeight=_21-_20-2;
}
this.lastExpandedTab.content.style.height=this.options.panelHeight+"px";
this.lastExpandedTab.showExpanded();
this.lastExpandedTab.titleBar.style.fontWeight=this.options.expandedFontWeight;
},setOptions:function(_22){
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,_22||{});
},showTabByIndex:function(_23,_24){
var _25=arguments.length==1?true:_24;
this.showTab(this.accordionTabs[_23],_25);
},showTab:function(_26,_27){
var _28=arguments.length==1?true:_27;
if(this.options.onHideTab){
this.options.onHideTab(this.lastExpandedTab);
}
this.lastExpandedTab.showCollapsed();
var _29=this;
var _30=this.lastExpandedTab;
this.lastExpandedTab.content.style.height=(this.options.panelHeight-1)+"px";
_26.content.style.display="";
_26.titleBar.style.fontWeight=this.options.expandedFontWeight;
if(_28){
new Effect.AccordionSize(this.lastExpandedTab.content,_26.content,1,this.options.panelHeight,100,10,{complete:function(){
_29.showTabDone(_30);
}});
this.lastExpandedTab=_26;
}else{
this.lastExpandedTab.content.style.height="1px";
_26.content.style.height=this.options.panelHeight+"px";
this.lastExpandedTab=_26;
this.showTabDone(_30);
}
},showTabDone:function(_31){
_31.content.style.display="none";
this.lastExpandedTab.showExpanded();
if(this.options.onShowTab){
this.options.onShowTab(this.lastExpandedTab);
}
},_attachBehaviors:function(){
var _32=this._getDirectChildrenByTag(this.container,"DIV");
for(var i=0;i<_32.length;i++){
var _33=this._getDirectChildrenByTag(_32[i],"DIV");
if(_33.length!=2){
continue;
}
var _34=_33[0];
var _35=_33[1];
this.accordionTabs.push(new Rico.Accordion.Tab(this,_34,_35));
}
},_getDirectChildrenByTag:function(e,_37){
var _38=new Array();
var _39=e.childNodes;
for(var i=0;i<_39.length;i++){
if(_39[i]&&_39[i].tagName&&_39[i].tagName==_37){
_38.push(_39[i]);
}
}
return _38;
}};
Rico.Accordion.Tab=Class.create();
Rico.Accordion.Tab.prototype={initialize:function(_40,_41,_42){
this.accordion=_40;
this.titleBar=_41;
this.content=_42;
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="visible";
},titleBarClicked:function(e){
if(this.accordion.lastExpandedTab==this){
return;
}
this.accordion.showTab(this);
},hover:function(e){
this.titleBar.style.backgroundColor=this.accordion.options.hoverBg;
this.titleBar.style.color=this.accordion.options.hoverTextColor;
},unhover:function(e){
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.Color=Class.create();
Rico.Color.prototype={initialize:function(red,_44,_45){
this.rgb={r:red,g:_44,b:_45};
},setRed:function(r){
this.rgb.r=r;
},setGreen:function(g){
this.rgb.g=g;
},setBlue:function(b){
this.rgb.b=b;
},setHue:function(h){
var hsb=this.asHSB();
hsb.h=h;
this.rgb=Rico.Color.HSBtoRGB(hsb.h,hsb.s,hsb.b);
},setSaturation:function(s){
var hsb=this.asHSB();
hsb.s=s;
this.rgb=Rico.Color.HSBtoRGB(hsb.h,hsb.s,hsb.b);
},setBrightness:function(b){
var hsb=this.asHSB();
hsb.b=b;
this.rgb=Rico.Color.HSBtoRGB(hsb.h,hsb.s,hsb.b);
},darken:function(_51){
var hsb=this.asHSB();
this.rgb=Rico.Color.HSBtoRGB(hsb.h,hsb.s,Math.max(hsb.b-_51,0));
},brighten:function(_52){
var hsb=this.asHSB();
this.rgb=Rico.Color.HSBtoRGB(hsb.h,hsb.s,Math.min(hsb.b+_52,1));
},blend:function(_53){
this.rgb.r=Math.floor((this.rgb.r+_53.rgb.r)/2);
this.rgb.g=Math.floor((this.rgb.g+_53.rgb.g)/2);
this.rgb.b=Math.floor((this.rgb.b+_53.rgb.b)/2);
},isBright:function(){
var hsb=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(_54){
if(_54.indexOf("#")==0){
_54=_54.substring(1);
}
var red=_54.substring(0,2);
var _55=_54.substring(2,4);
var _56=_54.substring(4,6);
return new Rico.Color(parseInt(red,16),parseInt(_55,16),parseInt(_56,16));
};
Rico.Color.createColorFromBackground=function(_57){
var _58=RicoUtil.getElementsComputedStyle($(_57),"backgroundColor","background-color");
if(_58=="transparent"&&_57.parent){
return Rico.Color.createColorFromBackground(_57.parent);
}
if(_58==null){
return new Rico.Color(255,255,255);
}
if(_58.indexOf("rgb(")==0){
var _59=_58.substring(4,_58.length-1);
var _60=_59.split(",");
return new Rico.Color(parseInt(_60[0]),parseInt(_60[1]),parseInt(_60[2]));
}else{
if(_58.indexOf("#")==0){
var _61=parseInt(_58.substring(1,3),16);
var _62=parseInt(_58.substring(3,5),16);
var _63=parseInt(_58.substring(5),16);
return new Rico.Color(_61,_62,_63);
}else{
return new Rico.Color(255,255,255);
}
}
};
Rico.Color.HSBtoRGB=function(hue,_65,_66){
var red=0;
var _67=0;
var _68=0;
if(_65==0){
red=parseInt(_66*255+0.5);
_67=red;
_68=red;
}else{
var h=(hue-Math.floor(hue))*6;
var f=h-Math.floor(h);
var p=_66*(1-_65);
var q=_66*(1-_65*f);
var t=_66*(1-(_65*(1-f)));
switch(parseInt(h)){
case 0:
red=(_66*255+0.5);
_67=(t*255+0.5);
_68=(p*255+0.5);
break;
case 1:
red=(q*255+0.5);
_67=(_66*255+0.5);
_68=(p*255+0.5);
break;
case 2:
red=(p*255+0.5);
_67=(_66*255+0.5);
_68=(t*255+0.5);
break;
case 3:
red=(p*255+0.5);
_67=(q*255+0.5);
_68=(_66*255+0.5);
break;
case 4:
red=(t*255+0.5);
_67=(p*255+0.5);
_68=(_66*255+0.5);
break;
case 5:
red=(_66*255+0.5);
_67=(p*255+0.5);
_68=(q*255+0.5);
break;
}
}
return {r:parseInt(red),g:parseInt(_67),b:parseInt(_68)};
};
Rico.Color.RGBtoHSB=function(r,g,b){
var hue;
var _73;
var _74;
var _75=(r>g)?r:g;
if(b>_75){
_75=b;
}
var _76=(r<g)?r:g;
if(b<_76){
_76=b;
}
_74=_75/255;
if(_75!=0){
saturation=(_75-_76)/_75;
}else{
saturation=0;
}
if(saturation==0){
hue=0;
}else{
var _77=(_75-r)/(_75-_76);
var _78=(_75-g)/(_75-_76);
var _79=(_75-b)/(_75-_76);
if(r==_75){
hue=_79-_78;
}else{
if(g==_75){
hue=2+_77-_79;
}else{
hue=4+_78-_77;
}
}
hue=hue/6;
if(hue<0){
hue=hue+1;
}
}
return {h:hue,s:saturation,b:_74};
};
Rico.Corner={round:function(e,_80){
var e=$(e);
this._setOptions(_80);
var _81=this.options.color;
if(this.options.color=="fromElement"){
_81=this._background(e);
}
var _82=this.options.bgColor;
if(this.options.bgColor=="fromParent"){
_82=this._background(e.offsetParent);
}
this._roundCornersImpl(e,_81,_82);
},_roundCornersImpl:function(e,_83,_84){
if(this.options.border){
this._renderBorder(e,_84);
}
if(this._isTopRounded()){
this._roundTopCorners(e,_83,_84);
}
if(this._isBottomRounded()){
this._roundBottomCorners(e,_83,_84);
}
},_renderBorder:function(el,_86){
var _87="1px solid "+this._borderColor(_86);
var _88="border-left: "+_87;
var _89="border-right: "+_87;
var _90="style='"+_88+";"+_89+"'";
el.innerHTML="<div "+_90+">"+el.innerHTML+"</div>";
},_roundTopCorners:function(el,_91,_92){
var _93=this._createCorner(_92);
for(var i=0;i<this.options.numSlices;i++){
_93.appendChild(this._createCornerSlice(_91,_92,i,"top"));
}
el.style.paddingTop=0;
el.insertBefore(_93,el.firstChild);
},_roundBottomCorners:function(el,_94,_95){
var _96=this._createCorner(_95);
for(var i=(this.options.numSlices-1);i>=0;i--){
_96.appendChild(this._createCornerSlice(_94,_95,i,"bottom"));
}
el.style.paddingBottom=0;
el.appendChild(_96);
},_createCorner:function(_97){
var _98=document.createElement("div");
_98.style.backgroundColor=(this._isTransparent()?"transparent":_97);
return _98;
},_createCornerSlice:function(_99,_100,n,_102){
var _103=document.createElement("span");
var _104=_103.style;
_104.backgroundColor=_99;
_104.display="block";
_104.height="1px";
_104.overflow="hidden";
_104.fontSize="1px";
var _105=this._borderColor(_99,_100);
if(this.options.border&&n==0){
_104.borderTopStyle="solid";
_104.borderTopWidth="1px";
_104.borderLeftWidth="0px";
_104.borderRightWidth="0px";
_104.borderBottomWidth="0px";
_104.height="0px";
_104.borderColor=_105;
}else{
if(_105){
_104.borderColor=_105;
_104.borderStyle="solid";
_104.borderWidth="0px 1px";
}
}
if(!this.options.compact&&(n==(this.options.numSlices-1))){
_104.height="2px";
}
this._setMargin(_103,n,_102);
this._setBorder(_103,n,_102);
return _103;
},_setOptions:function(_106){
this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false};
Object.extend(this.options,_106||{});
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(_107,_108){
if(_107=="transparent"){
return _108;
}else{
if(this.options.border){
return this.options.border;
}else{
if(this.options.blend){
return this._blend(_108,_107);
}else{
return "";
}
}
}
},_setMargin:function(el,n,_109){
var _110=this._marginSize(n);
var _111=_109=="top"?this._whichSideTop():this._whichSideBottom();
if(_111=="left"){
el.style.marginLeft=_110+"px";
el.style.marginRight="0px";
}else{
if(_111=="right"){
el.style.marginRight=_110+"px";
el.style.marginLeft="0px";
}else{
el.style.marginLeft=_110+"px";
el.style.marginRight=_110+"px";
}
}
},_setBorder:function(el,n,_112){
var _113=this._borderSize(n);
var _114=_112=="top"?this._whichSideTop():this._whichSideBottom();
if(_114=="left"){
el.style.borderLeftWidth=_113+"px";
el.style.borderRightWidth="0px";
}else{
if(_114=="right"){
el.style.borderRightWidth=_113+"px";
el.style.borderLeftWidth="0px";
}else{
el.style.borderLeftWidth=_113+"px";
el.style.borderRightWidth=_113+"px";
}
}
if(this.options.border!=false){
el.style.borderLeftWidth=_113+"px";
}
el.style.borderRightWidth=_113+"px";
},_marginSize:function(n){
if(this._isTransparent()){
return 0;
}
var _115=[5,3,2,1];
var _116=[3,2,1,0];
var _117=[2,1];
var _118=[1,0];
if(this.options.compact&&this.options.blend){
return _118[n];
}else{
if(this.options.compact){
return _117[n];
}else{
if(this.options.blend){
return _116[n];
}else{
return _115[n];
}
}
}
},_borderSize:function(n){
var _119=[5,3,2,1];
var _120=[2,1,1,1];
var _121=[1,0];
var _122=[0,2,0,0];
if(this.options.compact&&(this.options.blend||this._isTransparent())){
return 1;
}else{
if(this.options.compact){
return _121[n];
}else{
if(this.options.blend){
return _120[n];
}else{
if(this.options.border){
return _122[n];
}else{
if(this._isTransparent()){
return _119[n];
}
}
}
}
}
return 0;
},_hasString:function(str){
for(var i=1;i<arguments.length;i++){
if(str.indexOf(arguments[i])>=0){
return true;
}
}
return false;
},_blend:function(c1,c2){
var cc1=Rico.Color.createFromHex(c1);
cc1.blend(Rico.Color.createFromHex(c2));
return cc1;
},_background:function(el){
try{
return Rico.Color.createColorFromBackground(el).asHex();
}
catch(err){
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(el){
return el.childNodes.length==1&&el.childNodes[0].nodeType==3;
}};
if(window.Effect==undefined){
Effect={};
}
Effect.SizeAndPosition=Class.create();
Effect.SizeAndPosition.prototype={initialize:function(_127,x,y,w,h,_131,_132,_133){
this.element=$(_127);
this.x=x;
this.y=y;
this.w=w;
this.h=h;
this.duration=_131;
this.steps=_132;
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 _134=Math.round(this.duration/this.steps);
var _135=this.element.offsetLeft;
var _136=this.element.offsetTop;
var _137=this.element.offsetWidth;
var _138=this.element.offsetHeight;
this.x=(this.x)?this.x:_135;
this.y=(this.y)?this.y:_136;
this.w=(this.w)?this.w:_137;
this.h=(this.h)?this.h:_138;
var difX=this.steps>0?(this.x-_135)/this.steps:0;
var difY=this.steps>0?(this.y-_136)/this.steps:0;
var difW=this.steps>0?(this.w-_137)/this.steps:0;
var difH=this.steps>0?(this.h-_138)/this.steps:0;
this.moveBy(difX,difY);
this.resizeBy(difW,difH);
this.duration-=_134;
this.steps--;
this.timer=setTimeout(this.sizeAndPosition.bind(this),_134);
},isFinished:function(){
return this.steps<=0;
},moveBy:function(difX,difY){
var _143=this.element.offsetLeft;
var _144=this.element.offsetTop;
var _145=parseInt(difX);
var _146=parseInt(difY);
var _147=this.element.style;
if(_145!=0){
_147.left=(_143+_145)+"px";
}
if(_146!=0){
_147.top=(_144+_146)+"px";
}
},resizeBy:function(difW,difH){
var _148=this.element.offsetWidth;
var _149=this.element.offsetHeight;
var _150=parseInt(difW);
var _151=parseInt(difH);
var _152=this.element.style;
if(_150!=0){
_152.width=(_148+_150)+"px";
}
if(_151!=0){
_152.height=(_149+_151)+"px";
}
}};
Effect.Size=Class.create();
Effect.Size.prototype={initialize:function(_153,w,h,_154,_155,_156){
new Effect.SizeAndPosition(_153,null,null,w,h,_154,_155,_156);
}};
Effect.Position=Class.create();
Effect.Position.prototype={initialize:function(_157,x,y,_158,_159,_160){
new Effect.SizeAndPosition(_157,x,y,null,null,_158,_159,_160);
}};
Effect.Round=Class.create();
Effect.Round.prototype={initialize:function(_161,_162,_163){
var _164=document.getElementsByTagAndClassName(_161,_162);
for(var i=0;i<_164.length;i++){
Rico.Corner.round(_164[i],_163);
}
}};
Effect.FadeTo=Class.create();
Effect.FadeTo.prototype={initialize:function(_165,_166,_167,_168,_169){
this.element=$(_165);
this.opacity=_166;
this.duration=_167;
this.steps=_168;
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 _170=Math.round(this.duration/this.steps);
var _171=this.getElementOpacity();
var _172=this.steps>0?(this.opacity-_171)/this.steps:0;
this.changeOpacityBy(_172);
this.duration-=_170;
this.steps--;
this.timer=setTimeout(this.fadeTo.bind(this),_170);
},changeOpacityBy:function(v){
var _174=this.getElementOpacity();
var _175=Math.max(0,Math.min(_174+v,1));
this.element.ricoOpacity=_175;
this.element.style.filter="alpha(opacity:"+Math.round(_175*100)+")";
this.element.style.opacity=_175;
},isFinished:function(){
return this.steps<=0;
},getElementOpacity:function(){
if(this.element.ricoOpacity==undefined){
var _176=RicoUtil.getElementsComputedStyle(this.element,"opacity");
this.element.ricoOpacity=_176!=undefined?_176:1;
}
return parseFloat(this.element.ricoOpacity);
}};
Effect.AccordionSize=Class.create();
Effect.AccordionSize.prototype={initialize:function(e1,e2,_179,end,_181,_182,_183){
this.e1=$(e1);
this.e2=$(e2);
this.start=_179;
this.end=end;
this.duration=_181;
this.steps=_182;
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 _184=Math.round(this.duration/this.steps);
var diff=this.steps>0?(parseInt(this.e1.offsetHeight)-this.start)/this.steps:0;
this.resizeBy(diff);
this.duration-=_184;
this.steps--;
this.timer=setTimeout(this.accordionSize.bind(this),_184);
},isFinished:function(){
return this.steps<=0;
},resizeBy:function(diff){
var _186=this.e1.offsetHeight;
var _187=this.e2.offsetHeight;
var _188=parseInt(diff);
if(diff!=0){
this.e1.style.height=(_186-_188)+"px";
this.e2.style.height=(_187+_188)+"px";
}
}};
if(window.Effect==undefined){
Effect={};
}
Effect.SizeAndPosition=Class.create();
Effect.SizeAndPosition.prototype={initialize:function(_189,x,y,w,h,_190,_191,_192){
this.element=$(_189);
this.x=x;
this.y=y;
this.w=w;
this.h=h;
this.duration=_190;
this.steps=_191;
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 _193=Math.round(this.duration/this.steps);
var _194=this.element.offsetLeft;
var _195=this.element.offsetTop;
var _196=this.element.offsetWidth;
var _197=this.element.offsetHeight;
this.x=(this.x)?this.x:_194;
this.y=(this.y)?this.y:_195;
this.w=(this.w)?this.w:_196;
this.h=(this.h)?this.h:_197;
var difX=this.steps>0?(this.x-_194)/this.steps:0;
var difY=this.steps>0?(this.y-_195)/this.steps:0;
var difW=this.steps>0?(this.w-_196)/this.steps:0;
var difH=this.steps>0?(this.h-_197)/this.steps:0;
this.moveBy(difX,difY);
this.resizeBy(difW,difH);
this.duration-=_193;
this.steps--;
this.timer=setTimeout(this.sizeAndPosition.bind(this),_193);
},isFinished:function(){
return this.steps<=0;
},moveBy:function(difX,difY){
var _198=this.element.offsetLeft;
var _199=this.element.offsetTop;
var _200=parseInt(difX);
var _201=parseInt(difY);
var _202=this.element.style;
if(_200!=0){
_202.left=(_198+_200)+"px";
}
if(_201!=0){
_202.top=(_199+_201)+"px";
}
},resizeBy:function(difW,difH){
var _203=this.element.offsetWidth;
var _204=this.element.offsetHeight;
var _205=parseInt(difW);
var _206=parseInt(difH);
var _207=this.element.style;
if(_205!=0){
_207.width=(_203+_205)+"px";
}
if(_206!=0){
_207.height=(_204+_206)+"px";
}
}};
Effect.Size=Class.create();
Effect.Size.prototype={initialize:function(_208,w,h,_209,_210,_211){
new Effect.SizeAndPosition(_208,null,null,w,h,_209,_210,_211);
}};
Effect.Position=Class.create();
Effect.Position.prototype={initialize:function(_212,x,y,_213,_214,_215){
new Effect.SizeAndPosition(_212,x,y,null,null,_213,_214,_215);
}};
Effect.Round=Class.create();
Effect.Round.prototype={initialize:function(_216,_217,_218){
var _219=document.getElementsByTagAndClassName(_216,_217);
for(var i=0;i<_219.length;i++){
Rico.Corner.round(_219[i],_218);
}
}};
Effect.FadeTo=Class.create();
Effect.FadeTo.prototype={initialize:function(_220,_221,_222,_223,_224){
this.element=$(_220);
this.opacity=_221;
this.duration=_222;
this.steps=_223;
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 _225=Math.round(this.duration/this.steps);
var _226=this.getElementOpacity();
var _227=this.steps>0?(this.opacity-_226)/this.steps:0;
this.changeOpacityBy(_227);
this.duration-=_225;
this.steps--;
this.timer=setTimeout(this.fadeTo.bind(this),_225);
},changeOpacityBy:function(v){
var _228=this.getElementOpacity();
var _229=Math.max(0,Math.min(_228+v,1));
this.element.ricoOpacity=_229;
this.element.style.filter="alpha(opacity:"+Math.round(_229*100)+")";
this.element.style.opacity=_229;
},isFinished:function(){
return this.steps<=0;
},getElementOpacity:function(){
if(this.element.ricoOpacity==undefined){
var _230=RicoUtil.getElementsComputedStyle(this.element,"opacity");
this.element.ricoOpacity=_230!=undefined?_230:1;
}
return parseFloat(this.element.ricoOpacity);
}};
Effect.AccordionSize=Class.create();
Effect.AccordionSize.prototype={initialize:function(e1,e2,_231,end,_232,_233,_234){
this.e1=$(e1);
this.e2=$(e2);
this.start=_231;
this.end=end;
this.duration=_232;
this.steps=_233;
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 _235=Math.round(this.duration/this.steps);
var diff=this.steps>0?(parseInt(this.e1.offsetHeight)-this.start)/this.steps:0;
this.resizeBy(diff);
this.duration-=_235;
this.steps--;
this.timer=setTimeout(this.accordionSize.bind(this),_235);
},isFinished:function(){
return this.steps<=0;
},resizeBy:function(diff){
var _236=this.e1.offsetHeight;
var _237=this.e2.offsetHeight;
var _238=parseInt(diff);
if(diff!=0){
this.e1.style.height=(_236-_238)+"px";
this.e2.style.height=(_237+_238)+"px";
}
}};
Rico.LiveGridMetaData=Class.create();
Rico.LiveGridMetaData.prototype={initialize:function(_239,_240,_241,_242){
this.pageSize=_239;
this.totalRows=_240;
this.setOptions(_242);
this.ArrowHeight=16;
this.columnCount=_241;
},setOptions:function(_243){
this.options={largeBufferSize:7,nearLimitFactor:0.2};
Object.extend(this.options,_243||{});
},getPageSize:function(){
return this.pageSize;
},getTotalRows:function(){
return this.totalRows;
},setTotalRows:function(n){
this.totalRows=n;
},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(_244,_245){
this.isIE=navigator.userAgent.toLowerCase().indexOf("msie")>=0;
this.liveGrid=_244;
this.metaData=_244.metaData;
this.createScrollBar();
this.scrollTimeout=null;
this.lastScrollPos=0;
this.viewPort=_245;
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 _246=$(this.liveGrid.tableId+"_header");
if(_246){
_246.rows[0].cells[0].style.width=(_246.rows[0].cells[0].offsetWidth+1)+"px";
}
},createScrollBar:function(){
var _247=this.liveGrid.viewPort.visibleHeight();
this.scrollerDiv=document.createElement("div");
var _248=this.scrollerDiv.style;
_248.borderRight=this.liveGrid.options.scrollerBorderRight;
_248.position="relative";
_248.left=this.isIE?"-6px":"-3px";
_248.width="19px";
_248.height=_247+"px";
_248.overflow="auto";
this.heightDiv=document.createElement("div");
this.heightDiv.style.width="1px";
this.heightDiv.style.height=parseInt(_247*this.metaData.getTotalRows()/this.metaData.getPageSize())+"px";
this.scrollerDiv.appendChild(this.heightDiv);
this.scrollerDiv.onscroll=this.handleScroll.bindAsEventListener(this);
var _249=this.liveGrid.table;
_249.parentNode.parentNode.insertBefore(this.scrollerDiv,_249.parentNode.nextSibling);
var _250=this.isIE?"mousewheel":"DOMMouseScroll";
Event.observe(_249,_250,function(evt){
if(evt.wheelDelta>=0||evt.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 _252=this.liveGrid.table;
var _253=this.viewPort.visibleHeight();
this.heightDiv.style.height=parseInt(_253*this.metaData.getTotalRows()/this.metaData.getPageSize())+"px";
},rowToPixel:function(_254){
return (_254/this.metaData.getTotalRows())*this.heightDiv.offsetHeight;
},moveScroll:function(_255){
this.scrollerDiv.scrollTop=this.rowToPixel(_255);
if(this.metaData.options.onscroll){
this.metaData.options.onscroll(this.liveGrid,_255);
}
},handleScroll:function(){
if(this.scrollTimeout){
clearTimeout(this.scrollTimeout);
}
var _256=this.lastScrollPos-this.scrollerDiv.scrollTop;
if(_256!=0){
var r=this.scrollerDiv.scrollTop%this.viewPort.rowHeight;
if(r!=0){
this.unplug();
if(_256<0){
this.scrollerDiv.scrollTop+=(this.viewPort.rowHeight-r);
}else{
this.scrollerDiv.scrollTop-=r;
}
this.plugin();
}
}
var _257=parseInt(this.scrollerDiv.scrollTop/this.viewPort.rowHeight);
this.liveGrid.requestContentRefresh(_257);
this.viewPort.scrollTo(this.scrollerDiv.scrollTop);
if(this.metaData.options.onscroll){
this.metaData.options.onscroll(this.liveGrid,_257);
}
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(_258,_259){
this.startPos=0;
this.size=0;
this.metaData=_258;
this.rows=new Array();
this.updateInProgress=false;
this.viewPort=_259;
this.maxBufferSize=_258.getLargeBufferSize()*2;
this.maxFetchSize=_258.getLargeBufferSize();
this.lastOffset=0;
},getBlankRow:function(){
if(!this.blankRow){
this.blankRow=new Array();
for(var i=0;i<this.metaData.columnCount;i++){
this.blankRow[i]="&nbsp;";
}
}
return this.blankRow;
},loadRows:function(_260){
var _261=_260.getElementsByTagName("rows")[0];
this.updateUI=_261.getAttribute("update_ui")=="true";
var _262=new Array();
var trs=_261.getElementsByTagName("tr");
for(var i=0;i<trs.length;i++){
var row=_262[i]=new Array();
var _265=trs[i].getElementsByTagName("td");
for(var j=0;j<_265.length;j++){
var cell=_265[j];
var _267=cell.getAttribute("convert_spaces")=="true";
var _268=RicoUtil.getContentAsString(cell);
row[j]=_267?this.convertSpaces(_268):_268;
if(!row[j]){
row[j]="&nbsp;";
}
}
}
return _262;
},update:function(_269,_270){
var _271=this.loadRows(_269);
if(this.rows.length==0){
this.rows=_271;
this.size=this.rows.length;
this.startPos=_270;
return;
}
if(_270>this.startPos){
if(this.startPos+this.rows.length<_270){
this.rows=_271;
this.startPos=_270;
}else{
this.rows=this.rows.concat(_271.slice(0,_271.length));
if(this.rows.length>this.maxBufferSize){
var _272=this.rows.length;
this.rows=this.rows.slice(this.rows.length-this.maxBufferSize,this.rows.length);
this.startPos=this.startPos+(_272-this.rows.length);
}
}
}else{
if(_270+_271.length<this.startPos){
this.rows=_271;
}else{
this.rows=_271.slice(0,this.startPos).concat(this.rows);
if(this.rows.length>this.maxBufferSize){
this.rows=this.rows.slice(0,this.maxBufferSize);
}
}
this.startPos=_270;
}
this.size=this.rows.length;
},clear:function(){
this.rows=new Array();
this.startPos=0;
this.size=0;
},isOverlapping:function(_273,size){
return ((_273<this.endPos())&&(this.startPos<_273+size))||(this.endPos()==0);
},isInRange:function(_275){
return (_275>=this.startPos)&&(_275+this.metaData.getPageSize()<=this.endPos());
},isNearingTopLimit:function(_276){
return _276-this.startPos<this.metaData.getLimitTolerance();
},endPos:function(){
return this.startPos+this.rows.length;
},isNearingBottomLimit:function(_277){
return this.endPos()-(_277+this.metaData.getPageSize())<this.metaData.getLimitTolerance();
},isAtTop:function(){
return this.startPos==0;
},isAtBottom:function(){
return this.endPos()==this.metaData.getTotalRows();
},isNearingLimit:function(_278){
return (!this.isAtTop()&&this.isNearingTopLimit(_278))||(!this.isAtBottom()&&this.isNearingBottomLimit(_278));
},getFetchSize:function(_279){
var _280=this.getFetchOffset(_279);
var _281=0;
if(_280>=this.startPos){
var _282=this.maxFetchSize+_280;
if(_282>this.metaData.totalRows){
_282=this.metaData.totalRows;
}
_281=_282-_280;
if(_280==0&&_281<this.maxFetchSize){
_281=this.maxFetchSize;
}
}else{
var _281=this.startPos-_280;
if(_281>this.maxFetchSize){
_281=this.maxFetchSize;
}
}
return _281;
},getFetchOffset:function(_283){
var _284=_283;
if(_283>this.startPos){
_284=(_283>this.endPos())?_283:this.endPos();
}else{
if(_283+this.maxFetchSize>=this.startPos){
var _284=this.startPos-this.maxFetchSize;
if(_284<0){
_284=0;
}
}
}
this.lastOffset=_284;
return _284;
},getRows:function(_285,_286){
var _287=_285-this.startPos;
var _288=_287+_286;
if(_288>this.size){
_288=this.size;
}
var _289=new Array();
var _290=0;
for(var i=_287;i<_288;i++){
_289[_290++]=this.rows[i];
}
return _289;
},convertSpaces:function(s){
return s.split(" ").join("&nbsp;");
}};
Rico.GridViewPort=Class.create();
Rico.GridViewPort.prototype={initialize:function(_291,_292,_293,_294,_295){
this.lastDisplayedStartPos=0;
this.div=_291.parentNode;
this.table=_291;
this.rowHeight=_292;
this.div.style.height=this.rowHeight*_293;
this.div.style.overflow="hidden";
this.buffer=_294;
this.liveGrid=_295;
this.visibleRows=_293+1;
this.lastPixelOffset=0;
this.startPos=0;
},populateRow:function(_296,row){
for(var j=0;j<row.length;j++){
_296.cells[j].innerHTML=row[j];
}
},bufferChanged:function(){
this.refreshContents(parseInt(this.lastPixelOffset/this.rowHeight));
},clearRows:function(){
if(!this.isBlank){
this.liveGrid.table.className=this.liveGrid.options.loadingClass;
for(var i=0;i<this.visibleRows;i++){
this.populateRow(this.table.rows[i],this.buffer.getBlankRow());
}
this.isBlank=true;
}
},clearContents:function(){
this.clearRows();
this.scrollTo(0);
this.startPos=0;
this.lastStartPos=-1;
},refreshContents:function(_297){
if(_297==this.lastRowPos&&!this.isPartialBlank&&!this.isBlank){
return;
}
if((_297+this.visibleRows<this.buffer.startPos)||(this.buffer.startPos+this.buffer.size<_297)||(this.buffer.size==0)){
this.clearRows();
return;
}
this.isBlank=false;
var _298=this.buffer.startPos>_297;
var _299=_298?this.buffer.startPos:_297;
var _300=(this.buffer.startPos+this.buffer.size<_297+this.visibleRows)?this.buffer.startPos+this.buffer.size:_297+this.visibleRows;
var _301=_300-_299;
var rows=this.buffer.getRows(_299,_301);
var _303=this.visibleRows-_301;
var _304=_298?0:_301;
var _305=_298?_303:0;
for(var i=0;i<rows.length;i++){
this.populateRow(this.table.rows[i+_305],rows[i]);
}
for(var i=0;i<_303;i++){
this.populateRow(this.table.rows[i+_304],this.buffer.getBlankRow());
}
this.isPartialBlank=_303>0;
this.lastRowPos=_297;
this.liveGrid.table.className=this.liveGrid.options.tableClass;
var _306=this.liveGrid.options.onRefreshComplete;
if(_306!=null){
_306();
}
},scrollTo:function(_307){
if(this.lastPixelOffset==_307){
return;
}
this.refreshContents(parseInt(_307/this.rowHeight));
this.div.scrollTop=_307%this.rowHeight;
this.lastPixelOffset=_307;
},visibleHeight:function(){
return parseInt(RicoUtil.getElementsComputedStyle(this.div,"height"));
}};
Rico.LiveGridRequest=Class.create();
Rico.LiveGridRequest.prototype={initialize:function(_308,_309){
this.requestOffset=_308;
}};
Rico.LiveGrid=Class.create();
Rico.LiveGrid.prototype={initialize:function(_310,_311,_312,url,_314,_315){
this.options={tableClass:$(_310).className,loadingClass:$(_310).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,_314||{});
this.ajaxOptions={parameters:null};
Object.extend(this.ajaxOptions,_315||{});
this.tableId=_310;
this.table=$(_310);
this.addLiveGridHtml();
var _316=this.table.rows[0].cells.length;
this.metaData=new Rico.LiveGridMetaData(_311,_312,_316,_314);
this.buffer=new Rico.LiveGridBuffer(this.metaData);
var _317=this.table.rows.length;
this.viewPort=new Rico.GridViewPort(this.table,this.table.offsetHeight/_317,_311,this.buffer,this);
this.scroller=new Rico.LiveGridScroller(this,this.viewPort);
this.options.sortHandler=this.sortHandler.bind(this);
if($(_310+"_header")){
this.sort=new Rico.LiveGridSort(_310+"_header",this.options);
}
this.processingRequest=null;
this.unprocessedRequest=null;
this.initAjax(url);
if(this.options.prefetchBuffer||this.options.prefetchOffset>0){
var _318=0;
if(this.options.offset){
_318=this.options.offset;
this.scroller.moveScroll(_318);
this.viewPort.scrollTo(this.scroller.rowToPixel(_318));
}
if(this.options.sortCol){
this.sortCol=_314.sortCol;
this.sortDir=_314.sortDir;
}
this.requestContentRefresh(_318);
}
},addLiveGridHtml:function(){
if(this.table.getElementsByTagName("thead").length>0){
var _319=this.table.cloneNode(true);
_319.setAttribute("id",this.tableId+"_header");
_319.setAttribute("class",this.table.className+"_header");
for(var i=0;i<_319.tBodies.length;i++){
_319.removeChild(_319.tBodies[i]);
}
this.table.deleteTHead();
this.table.parentNode.insertBefore(_319,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(_320){
this.sortCol=_320.name;
this.sortDir=_320.currentSort;
this.resetContents();
this.requestContentRefresh(0);
},setTotalRows:function(_321){
this.resetContents();
this.metaData.setTotalRows(_321);
this.scroller.updateSize();
},initAjax:function(url){
ajaxEngine.registerRequest(this.tableId+"_request",url);
ajaxEngine.registerAjaxObject(this.tableId+"_updater",this);
},invokeAjax:function(){
},handleTimedOut:function(){
this.processingRequest=null;
this.processQueuedRequest();
},fetchBuffer:function(_322){
if(this.buffer.isInRange(_322)&&!this.buffer.isNearingLimit(_322)){
return;
}
if(this.processingRequest){
this.unprocessedRequest=new Rico.LiveGridRequest(_322);
return;
}
var _323=this.buffer.getFetchOffset(_322);
this.processingRequest=new Rico.LiveGridRequest(_322);
this.processingRequest.bufferOffset=_323;
var _324=this.buffer.getFetchSize(_322);
var _325=false;
var _326;
if(this.options.requestParameters){
_326=this._createQueryString(this.options.requestParameters,0);
}
_326=(_326==null)?"":_326+"&";
_326=_326+"id="+this.tableId+"&page_size="+_324+"&offset="+_323;
if(this.sortCol){
_326=_326+"&sort_col="+escape(this.sortCol)+"&sort_dir="+this.sortDir;
}
this.ajaxOptions.parameters=_326;
ajaxEngine.sendRequest(this.tableId+"_request",this.ajaxOptions);
this.timeoutHandler=setTimeout(this.handleTimedOut.bind(this),this.options.bufferTimeout);
},setRequestParams:function(){
this.options.requestParameters=[];
for(var i=0;i<arguments.length;i++){
this.options.requestParameters[i]=arguments[i];
}
},requestContentRefresh:function(_327){
this.fetchBuffer(_327);
},ajaxUpdate:function(_328){
try{
clearTimeout(this.timeoutHandler);
this.buffer.update(_328,this.processingRequest.bufferOffset);
this.viewPort.bufferChanged();
}
catch(err){
}
finally{
this.processingRequest=null;
}
this.processQueuedRequest();
},_createQueryString:function(_329,_330){
var _331="";
if(!_329){
return _331;
}
for(var i=_330;i<_329.length;i++){
if(i!=_330){
_331+="&";
}
var _332=_329[i];
if(_332.name!=undefined&&_332.value!=undefined){
_331+=_332.name+"="+escape(_332.value);
}else{
var ePos=_332.indexOf("=");
var _334=_332.substring(0,ePos);
var _335=_332.substring(ePos+1);
_331+=_334+"="+escape(_335);
}
}
return _331;
},processQueuedRequest:function(){
if(this.unprocessedRequest!=null){
this.requestContentRefresh(this.unprocessedRequest.requestOffset);
this.unprocessedRequest=null;
}
}};
Rico.LiveGridSort=Class.create();
Rico.LiveGridSort.prototype={initialize:function(_336,_337){
this.headerTableId=_336;
this.headerTable=$(_336);
this.options=_337;
this.setOptions();
this.applySortBehavior();
if(this.options.sortCol){
this.setSortUI(this.options.sortCol,this.options.sortDir);
}
},setSortUI:function(_338,_339){
var cols=this.options.columns;
for(var i=0;i<cols.length;i++){
if(cols[i].name==_338){
this.setColumnSort(i,_339);
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 _341=this.headerTable.rows[0];
var _342=_341.cells;
for(var i=0;i<_342.length;i++){
this.addSortBehaviorToColumn(i,_342[i]);
}
},addSortBehaviorToColumn:function(n,cell){
if(this.options.columns[n].isSortable()){
cell.id=this.headerTableId+"_"+n;
cell.style.cursor="pointer";
cell.onclick=this.headerCellClicked.bindAsEventListener(this);
cell.innerHTML=cell.innerHTML+"<span id=\""+this.headerTableId+"_img_"+n+"\">"+"&nbsp;&nbsp;&nbsp;</span>";
}
},headerCellClicked:function(evt){
var _343=evt.target?evt.target:evt.srcElement;
var _344=_343.id;
var _345=parseInt(_344.substring(_344.lastIndexOf("_")+1));
var _346=this.getSortedColumnIndex();
if(_346!=-1){
if(_346!=_345){
this.removeColumnSort(_346);
this.setColumnSort(_345,Rico.TableColumn.SORT_ASC);
}else{
this.toggleColumnSort(_346);
}
}else{
this.setColumnSort(_345,Rico.TableColumn.SORT_ASC);
}
if(this.options.sortHandler){
this.options.sortHandler(this.options.columns[_345]);
}
},removeColumnSort:function(n){
this.options.columns[n].setUnsorted();
this.setSortImage(n);
},setColumnSort:function(n,_347){
this.options.columns[n].setSorted(_347);
this.setSortImage(n);
},toggleColumnSort:function(n){
this.options.columns[n].toggleSort();
this.setSortImage(n);
},setSortImage:function(n){
var _348=this.options.columns[n].getSortDirection();
var _349=$(this.headerTableId+"_img_"+n);
if(_348==Rico.TableColumn.UNSORTED){
_349.innerHTML="&nbsp;&nbsp;";
}else{
if(_348==Rico.TableColumn.SORT_ASC){
_349.innerHTML="&nbsp;&nbsp;<img width=\""+this.options.sortImageWidth+"\" "+"height=\""+this.options.sortImageHeight+"\" "+"src=\""+this.options.sortAscendImg+"\"/>";
}else{
if(_348==Rico.TableColumn.SORT_DESC){
_349.innerHTML="&nbsp;&nbsp;<img width=\""+this.options.sortImageWidth+"\" "+"height=\""+this.options.sortImageHeight+"\" "+"src=\""+this.options.sortDescendImg+"\"/>";
}
}
}
},getSortedColumnIndex:function(){
var cols=this.options.columns;
for(var i=0;i<cols.length;i++){
if(cols[i].isSorted()){
return i;
}
}
return -1;
},introspectForColumnInfo:function(){
var _350=new Array();
var _351=this.headerTable.rows[0];
var _352=_351.cells;
for(var i=0;i<_352.length;i++){
_350.push(new Rico.TableColumn(this.deriveColumnNameFromCell(_352[i],i),true));
}
return _350;
},convertToTableColumns:function(cols){
var _353=new Array();
for(var i=0;i<cols.length;i++){
_353.push(new Rico.TableColumn(cols[i][0],cols[i][1]));
}
return _353;
},deriveColumnNameFromCell:function(cell,_354){
var _355=cell.innerText!=undefined?cell.innerText:cell.textContent;
return _355?_355.toLowerCase().split(" ").join("_"):"col_"+_354;
}};
Rico.TableColumn=Class.create();
Rico.TableColumn.UNSORTED=0;
Rico.TableColumn.SORT_ASC="ASC";
Rico.TableColumn.SORT_DESC="DESC";
Rico.TableColumn.prototype={initialize:function(name,_357){
this.name=name;
this.sortable=_357;
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(_358){
this.setSorted(Rico.TableColumn.UNSORTED);
},setSorted:function(_359){
this.currentSort=_359;
}};
Rico.ArrayExtensions=new Array();
if(Object.prototype.extend){
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Object.prototype.extend;
}else{
Object.prototype.extend=function(_360){
return Object.extend.apply(this,[this,_360]);
};
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(dx){
if(isNaN(dx)||dx>this.length){
return false;
}
for(var i=0,n=0;i<this.length;i++){
if(i!=dx){
this[n++]=this[i];
}
}
this.length-=1;
};
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.remove;
}
if(!Array.prototype.removeItem){
Array.prototype.removeItem=function(item){
for(var i=0;i<this.length;i++){
if(this[i]==item){
this.remove(i);
break;
}
}
};
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.removeItem;
}
if(!Array.prototype.indices){
Array.prototype.indices=function(){
var _362=new Array();
for(index in this){
var _363=false;
for(var i=0;i<Rico.ArrayExtensions.length;i++){
if(this[index]==Rico.ArrayExtensions[i]){
_363=true;
break;
}
}
if(!_363){
_362[_362.length]=index;
}
}
return _362;
};
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.indices;
}
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.unique;
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.inArray;
if(window.DOMParser&&window.XMLSerializer&&window.Node&&Node.prototype&&Node.prototype.__defineGetter__){
if(!Document.prototype.loadXML){
Document.prototype.loadXML=function(s){
var doc2=(new DOMParser()).parseFromString(s,"text/xml");
while(this.hasChildNodes()){
this.removeChild(this.lastChild);
}
for(var i=0;i<doc2.childNodes.length;i++){
this.appendChild(this.importNode(doc2.childNodes[i],true));
}
};
}
Document.prototype.__defineGetter__("xml",function(){
return (new XMLSerializer()).serializeToString(this);
});
}
document.getElementsByTagAndClassName=function(_365,_366){
if(_365==null){
_365="*";
}
var _367=document.getElementsByTagName(_365)||document.all;
var _368=new Array();
if(_366==null){
return _367;
}
for(var i=0;i<_367.length;i++){
var _369=_367[i];
var _370=_369.className.split(" ");
for(var j=0;j<_370.length;j++){
if(_370[j]==_366){
_368.push(_369);
break;
}
}
}
return _368;
};
var RicoUtil={getElementsComputedStyle:function(_371,_372,_373){
if(arguments.length==2){
_373=_372;
}
var el=$(_371);
if(el.currentStyle){
return el.currentStyle[_372];
}else{
return document.defaultView.getComputedStyle(el,null).getPropertyValue(_373);
}
},createXmlDocument:function(){
if(document.implementation&&document.implementation.createDocument){
var doc=document.implementation.createDocument("","",null);
if(doc.readyState==null){
doc.readyState=1;
doc.addEventListener("load",function(){
doc.readyState=4;
if(typeof doc.onreadystatechange=="function"){
doc.onreadystatechange();
}
},false);
}
return doc;
}
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(_375){
return _375.xml!=undefined?this._getContentAsStringIE(_375):this._getContentAsStringMozilla(_375);
},_getContentAsStringIE:function(_376){
var _377="";
for(var i=0;i<_376.childNodes.length;i++){
var n=_376.childNodes[i];
if(n.nodeType==4){
_377+=n.nodeValue;
}else{
_377+=n.xml;
}
}
return _377;
},_getContentAsStringMozilla:function(_378){
var _379=new XMLSerializer();
var _380="";
for(var i=0;i<_378.childNodes.length;i++){
var n=_378.childNodes[i];
if(n.nodeType==4){
_380+=n.nodeValue;
}else{
_380+=_379.serializeToString(n);
}
}
return _380;
},toViewportPosition:function(_381){
return this._toAbsolute(_381,true);
},toDocumentPosition:function(_382){
return this._toAbsolute(_382,false);
},_toAbsolute:function(_383,_384){
if(navigator.userAgent.toLowerCase().indexOf("msie")==-1){
return this._toAbsoluteMozilla(_383,_384);
}
var x=0;
var y=0;
var _385=_383;
while(_385){
var _386=0;
var _387=0;
if(_385!=_383){
var _386=parseInt(this.getElementsComputedStyle(_385,"borderLeftWidth"));
var _387=parseInt(this.getElementsComputedStyle(_385,"borderTopWidth"));
_386=isNaN(_386)?0:_386;
_387=isNaN(_387)?0:_387;
}
x+=_385.offsetLeft-_385.scrollLeft+_386;
y+=_385.offsetTop-_385.scrollTop+_387;
_385=_385.offsetParent;
}
if(_384){
x-=this.docScrollLeft();
y-=this.docScrollTop();
}
return {x:x,y:y};
},_toAbsoluteMozilla:function(_388,_389){
var x=0;
var y=0;
var _390=_388;
while(_390){
x+=_390.offsetLeft;
y+=_390.offsetTop;
_390=_390.offsetParent;
}
_390=_388;
while(_390&&_390!=document.body&&_390!=document.documentElement){
if(_390.scrollLeft){
x-=_390.scrollLeft;
}
if(_390.scrollTop){
y-=_390.scrollTop;
}
_390=_390.parentNode;
}
if(_389){
x-=this.docScrollLeft();
y-=this.docScrollTop();
}
return {x:x,y:y};
},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;
}
}
}
}};

Prado.RicoLiveGrid=Class.create();
Prado.RicoLiveGrid.prototype=Object.extend(Rico.LiveGrid.prototype,{initialize:function(_1,_2){
this.options={tableClass:$(_1).className||"",loadingClass:$(_1).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,visibleRows:10,totalRows:0,initialOffset:0};
Object.extend(this.options,_2||{});
this.tableId=_1;
this.table=$(_1);
this.addLiveGridHtml();
var _3=this.table.rows[0].cells.length;
this.metaData=new Rico.LiveGridMetaData(this.options.visibleRows,this.options.totalRows,_3,_2);
this.buffer=new Rico.LiveGridBuffer(this.metaData);
var _4=this.table.rows.length;
this.viewPort=new Rico.GridViewPort(this.table,this.table.offsetHeight/_4,this.options.visibleRows,this.buffer,this);
this.scroller=new Rico.LiveGridScroller(this,this.viewPort);
this.options.sortHandler=this.sortHandler.bind(this);
if($(_1+"_header")){
this.sort=new Rico.LiveGridSort(_1+"_header",this.options);
}
this.processingRequest=null;
this.unprocessedRequest=null;
if(this.options.initialOffset>=0){
var _5=this.options.initialOffset;
this.scroller.moveScroll(_5);
this.viewPort.scrollTo(this.scroller.rowToPixel(_5));
if(this.options.sortCol){
this.sortCol=_2.sortCol;
this.sortDir=_2.sortDir;
}
var _6=this;
setTimeout(function(){
_6.requestContentRefresh(_5);
},100);
}
},fetchBuffer:function(_7){
if(this.buffer.isInRange(_7)&&!this.buffer.isNearingLimit(_7)){
return;
}
if(this.processingRequest){
this.unprocessedRequest=new Rico.LiveGridRequest(_7);
return;
}
var _8=this.buffer.getFetchOffset(_7);
this.processingRequest=new Rico.LiveGridRequest(_7);
this.processingRequest.bufferOffset=_8;
var _9=this.buffer.getFetchSize(_7);
var _10=false;
var _11={"page_size":_9,"offset":_8};
if(this.sortCol){
Object.extend(_11,{"sort_col":this.sortCol,"sort_dir":this.sortDir});
}
Prado.Callback(this.tableId,_11,this.ajaxUpdate.bind(this),this.options);
this.timeoutHandler=setTimeout(this.handleTimedOut.bind(this),this.options.bufferTimeout);
},ajaxUpdate:function(_12,_13){
try{
clearTimeout(this.timeoutHandler);
this.buffer.update(_12,this.processingRequest.bufferOffset);
this.viewPort.bufferChanged();
}
catch(err){
}
finally{
this.processingRequest=null;
}
this.processQueuedRequest();
}});
Object.extend(Rico.LiveGridBuffer.prototype,{update:function(_14,_15){
if(this.rows.length==0){
this.rows=_14;
this.size=this.rows.length;
this.startPos=_15;
return;
}
if(_15>this.startPos){
if(this.startPos+this.rows.length<_15){
this.rows=_14;
this.startPos=_15;
}else{
this.rows=this.rows.concat(_14.slice(0,_14.length));
if(this.rows.length>this.maxBufferSize){
var _16=this.rows.length;
this.rows=this.rows.slice(this.rows.length-this.maxBufferSize,this.rows.length);
this.startPos=this.startPos+(_16-this.rows.length);
}
}
}else{
if(_15+_14.length<this.startPos){
this.rows=_14;
}else{
this.rows=_14.slice(0,this.startPos).concat(this.rows);
if(this.rows.length>this.maxBufferSize){
this.rows=this.rows.slice(0,this.maxBufferSize);
}
}
this.startPos=_15;
}
this.size=this.rows.length;
}});
Object.extend(Rico.GridViewPort.prototype,{populateRow:function(_17,row){
if(isdef(_17)){
for(var j=0;j<row.length;j++){
_17.cells[j].innerHTML=row[j];
}
}
}});