Changed asp and dotnet examples to use css sprites instead of images. Changed dotnet...
[infodrom/rico3] / ricoClient / js / rico_min.js
1 Rico.applyShadow=function(b,a){if(typeof a=="undefined"){a=true
2 }if(a){Rico.addClass(b,"ricoShadow")
3 }return b
4 };
5 Rico._OpenPopupList=[];
6 Rico._RemoveOpenPopup=function(a){if(a.openIndex>=0&&a.openIndex<Rico._OpenPopupList.length){Rico._OpenPopupList.splice(a.openIndex,1)
7 }a.openIndex=-1
8 };
9 Rico._AddOpenPopup=function(a){a.openIndex=Rico._OpenPopupList.push(a)-1
10 };
11 Rico._checkEscKey=function(b){if(Rico.eventKey(b)!=27){return true
12 }while(Rico._OpenPopupList.length>0){var a=Rico._OpenPopupList.pop();
13 if(a&&a.visible()){a.openIndex=-1;
14 Rico.eventStop(b);
15 a.closeFunc();
16 return false
17 }}return true
18 };
19 Rico.eventBind(document,"keyup",Rico.eventHandle(Rico,"_checkEscKey"));
20 Rico.Popup=function(b,a){this.initialize(b,a)
21 };
22 Rico.Popup.prototype={initialize:function(b,a){this.options={hideOnClick:false,ignoreClicks:false,position:"absolute",shadow:true,zIndex:2,canDrag:false,dragElement:false,closeFunc:false};
23 this.openIndex=-1;
24 if(b){this.setDiv(b,a)
25 }},createContainer:function(a){this.setDiv(document.createElement("div"),a);
26 if(a&&a.parent){a.parent.appendChild(this.container)
27 }else{document.getElementsByTagName("body")[0].appendChild(this.container)
28 }},setDiv:function(c,b){Rico.extend(this.options,b||{});
29 this.container=Rico.$(c);
30 if(this.options.position=="auto"){this.position=Rico.getStyle(this.container,"position").toLowerCase()
31 }else{this.position=this.container.style.position=this.options.position
32 }if(this.position!="absolute"){this.content=this.container;
33 return
34 }if(this.options.zIndex>=0){this.container.style.zIndex=this.options.zIndex
35 }if(this.options.closeFunc){this.closeFunc=this.options.closeFunc
36 }else{var a=this;
37 this.closeFunc=function(){a.closePopup()
38 }
39 }this.container.style.top="0px";
40 this.container.style.left="0px";
41 this.container.style.display="none";
42 this.content=document.createElement("div");
43 while(this.container.firstChild){this.content.appendChild(this.container.firstChild)
44 }this.container.appendChild(this.content);
45 this.content.className="RicoPopupContent";
46 this.content.style.position="relative";
47 if(Rico.isIE&&Rico.ieVersion<7){this.ifr=document.createElement("iframe");
48 this.ifr.style.position="absolute";
49 this.ifr.style.top="0px";
50 this.ifr.style.left="0px";
51 this.ifr.style.width="2000px";
52 this.ifr.style.height="2000px";
53 this.ifr.style.zIndex=-1;
54 this.ifr.frameBorder=0;
55 this.ifr.src="javascript:false;";
56 this.content.appendChild(this.ifr)
57 }Rico.applyShadow(this.container,this.options.shadow);
58 if(this.options.hideOnClick){Rico.eventBind(document,"click",Rico.eventHandle(this,"_docClick"))
59 }this.dragEnabled=false;
60 this.mousedownHandler=Rico.eventHandle(this,"_startDrag");
61 this.dragHandler=Rico.eventHandle(this,"_drag");
62 this.dropHandler=Rico.eventHandle(this,"_endDrag");
63 if(this.options.canDrag){this.enableDragging()
64 }if(this.options.ignoreClicks||this.options.canDrag){this.ignoreClicks()
65 }},clearContent:function(){this.content.innerHTML=""
66 },setContent:function(a){this.content.innerHTML=a
67 },enableDragging:function(){if(!this.dragEnabled&&this.options.dragElement){Rico.eventBind(this.options.dragElement,"mousedown",this.mousedownHandler);
68 this.dragEnabled=true
69 }return this.dragEnabled
70 },disableDragging:function(){if(!this.dragEnabled){return
71 }Rico.eventUnbind(this.options.dragElement,"mousedown",this.mousedownHandler);
72 this.dragEnabled=false
73 },setZ:function(a){this.container.style.zIndex=a
74 },ignoreClicks:function(){Rico.eventBind(this.container,"click",Rico.eventHandle(this,"_ignoreClick"))
75 },_ignoreClick:function(a){if(a.stopPropagation){a.stopPropagation()
76 }else{a.cancelBubble=true
77 }return true
78 },_docClick:function(a){this.closeFunc();
79 return true
80 },move:function(b,a){if(typeof b=="number"){this.container.style.left=b+"px"
81 }if(typeof a=="number"){this.container.style.top=a+"px"
82 }},_startDrag:function(b){var a=Rico.eventElement(b);
83 this.container.style.cursor="move";
84 this.lastMouse=Rico.eventClient(b);
85 Rico.eventBind(document,"mousemove",this.dragHandler);
86 Rico.eventBind(document,"mouseup",this.dropHandler);
87 Rico.eventStop(b)
88 },_drag:function(d){var b=Rico.eventClient(d);
89 var c=parseInt(this.container.style.left,10)+b.x-this.lastMouse.x;
90 var a=parseInt(this.container.style.top,10)+b.y-this.lastMouse.y;
91 this.move(c,a);
92 this.lastMouse=b;
93 Rico.eventStop(d)
94 },_endDrag:function(){this.container.style.cursor="";
95 Rico.eventUnbind(document,"mousemove",this.dragHandler);
96 Rico.eventUnbind(document,"mouseup",this.dropHandler)
97 },openPopup:function(b,a){this.container.style.display=this.position=="absolute"?"block":Rico.isIE&&Rico.ieVersion<8?"inline":"inline-block";
98 if(typeof b=="number"){this.container.style.left=b+"px"
99 }if(typeof a=="number"){this.container.style.top=a+"px"
100 }if(this.container.id){Rico.log("openPopup "+this.container.id+" at "+b+","+a)
101 }Rico._AddOpenPopup(this)
102 },centerPopup:function(){this.openPopup();
103 var d=this.container.offsetWidth;
104 var c=this.container.offsetHeight;
105 var a=this.container.parentNode.offsetWidth;
106 var b=this.container.parentNode.offsetHeight;
107 this.move(parseInt(Math.max((a-d)/2,0),10),parseInt(Math.max((b-c)/2,0),10))
108 },visible:function(){return Rico.visible(this.container)
109 },closePopup:function(){Rico._RemoveOpenPopup(this);
110 if(!Rico.visible(this.container)){return
111 }if(this.container.id){Rico.log("closePopup "+this.container.id)
112 }if(this.dragEnabled){this._endDrag()
113 }this.container.style.display="none";
114 if(this.options.onClose){this.options.onClose()
115 }}};
116 Rico.closeButton=function(d){var b=document.createElement("a");
117 b.className="RicoCloseAnchor";
118 if(Rico.theme.closeAnchor){Rico.addClass(b,Rico.theme.closeAnchor)
119 }var c=b.appendChild(document.createElement("span"));
120 c.title=Rico.getPhraseById("close");
121 new Rico.HoverSet([b]);
122 Rico.addClass(c,Rico.theme.close||"rico-icon RicoClose");
123 Rico.eventBind(b,"click",d);
124 return b
125 };
126 Rico.floatButton=function(b,e,f){var c=document.createElement("a");
127 c.className="RicoButtonAnchor";
128 Rico.addClass(c,Rico.theme.buttonAnchor||"RicoButtonAnchorNative");
129 var d=c.appendChild(document.createElement("span"));
130 if(f){d.title=f
131 }d.className=Rico.theme[b.toLowerCase()]||"rico-icon Rico"+b;
132 Rico.eventBind(c,"click",e,false);
133 new Rico.HoverSet([c]);
134 return c
135 };
136 Rico.clearButton=function(b){var a=document.createElement("span");
137 a.title=Rico.getPhraseById("clear");
138 a.className="ricoClear";
139 Rico.addClass(a,Rico.theme.clear||"rico-icon ricoClearNative");
140 Rico.eventBind(a,"click",b);
141 return a
142 };
143 Rico.Window=function(c,a,b){this.initialize(c,a,b)
144 };
145 Rico.Window.prototype={initialize:function(c,a,b){a=a||{overflow:"auto"};
146 Rico.extend(this,new Rico.Popup());
147 this.titleDiv=document.createElement("div");
148 this.options.canDrag=true;
149 this.options.dragElement=this.titleDiv;
150 this.createContainer(a);
151 this.content.appendChild(this.titleDiv);
152 b=Rico.$(b);
153 this.contentDiv=b||document.createElement("div");
154 this.content.appendChild(this.contentDiv);
155 this.titleDiv.className="ricoTitle";
156 if(Rico.theme.dialogTitle){Rico.addClass(this.titleDiv,Rico.theme.dialogTitle)
157 }this.titleDiv.style.position="relative";
158 this.titleContent=document.createElement("span");
159 this.titleContent.className="ricoTitleSpan";
160 this.titleDiv.appendChild(this.titleContent);
161 this.titleDiv.appendChild(Rico.closeButton(Rico.eventHandle(this,"closeFunc")));
162 if(!c&&b){c=b.title;
163 b.title=""
164 }this.setTitle(c||"&nbsp;");
165 this.contentDiv.className="ricoContent";
166 if(Rico.theme.dialogContent){Rico.addClass(this.contentDiv,Rico.theme.dialogContent)
167 }this.contentDiv.style.position="relative";
168 if(a.height){this.contentDiv.style.height=a.height
169 }if(a.width){this.contentDiv.style.width=a.width
170 }if(a.overflow){this.contentDiv.style.overflow=a.overflow
171 }Rico.addClass(this.content,"ricoWindow");
172 if(Rico.theme.dialog){Rico.addClass(this.content,Rico.theme.dialog)
173 }if(Rico.isIE){this.titleDiv.style.zoom=1;
174 this.contentDiv.style.zoom=1
175 }this.content=this.contentDiv
176 },setTitle:function(a){this.titleContent.innerHTML=a
177 }};
178 Rico.Menu=function(a){this.initialize(a)
179 };
180 Rico.Menu.prototype={initialize:function(a){Rico.extend(this,new Rico.Popup());
181 Rico.extend(this.options,{width:"15em",arrowColor:"b",showDisabled:false,hideOnClick:true});
182 if(typeof a=="string"){this.options.width=a
183 }else{Rico.extend(this.options,a||{})
184 }this.hideFunc=null;
185 this.highlightElem=null
186 },createDiv:function(a){if(this.container){return
187 }var b=this;
188 var c={closeFunc:function(){b.cancelmenu()
189 }};
190 if(a){c.parent=a
191 }this.createContainer(c);
192 this.content.className=Rico.isWebKit?"ricoMenuSafari":"ricoMenu";
193 this.content.style.width=this.options.width;
194 this.direction=Rico.getStyle(this.container,"direction")||"ltr";
195 this.direction=this.direction.toLowerCase();
196 this.hidemenu();
197 this.itemCount=0
198 },showmenu:function(b,c){Rico.eventStop(b);
199 this.hideFunc=c;
200 if(this.content.childNodes.length==0){this.cancelmenu();
201 return false
202 }var a=Rico.eventClient(b);
203 this.openmenu(a.x,a.y,0,0)
204 },openmenu:function(g,f,j,e,a){var h=g+(a?0:Rico.docScrollLeft());
205 this.container.style.visibility="hidden";
206 this.container.style.display="block";
207 var i=this.container.offsetWidth;
208 var b=this.content.offsetWidth;
209 if(this.direction=="rtl"){if(h>i+j){h-=b+j
210 }}else{if(g+i>Rico.windowWidth()){h-=b+j-2
211 }}var d=Rico.docScrollTop();
212 var c=f+(a?0:d);
213 if(f+this.container.offsetHeight-d>Rico.windowHeight()){c=Math.max(c-this.content.offsetHeight+e,0)
214 }this.openPopup(h,c);
215 this.container.style.visibility="visible";
216 return false
217 },clearMenu:function(){this.clearContent();
218 this.defaultAction=null;
219 this.itemCount=0
220 },addMenuHeading:function(b){var a=document.createElement("div");
221 a.innerHTML=b;
222 a.className="ricoMenuHeading";
223 this.content.appendChild(a)
224 },addMenuBreak:function(){var a=document.createElement("div");
225 a.className="ricoMenuBreak";
226 this.content.appendChild(a)
227 },addSubMenuItem:function(b,e,g){var d=this.direction=="rtl"?"left":"right";
228 var c=this.addMenuItem(b,null,true,null,g);
229 c.className="ricoSubMenu";
230 var f=c.appendChild(document.createElement("div"));
231 f.className="rico-icon rico-"+d+"-"+this.options.arrowColor;
232 Rico.setStyle(f,{position:"absolute",top:"2px"});
233 f.style[d]="0px";
234 c.RicoSubmenu=e;
235 Rico.eventBind(c,"mouseover",Rico.eventHandle(this,"showSubMenu"));
236 Rico.eventBind(c,"mouseout",Rico.eventHandle(this,"subMenuOut"))
237 },showSubMenu:function(c){if(this.openSubMenu){this.hideSubMenu()
238 }var b=Rico.eventElement(c);
239 if(!b.RicoSubmenu){b=b.parentNode
240 }if(!b.RicoSubmenu){return
241 }this.openSubMenu=b.RicoSubmenu;
242 this.openMenuAnchor=b;
243 if(Rico.hasClass(b,"ricoSubMenu")){Rico.removeClass(b,"ricoSubMenu");
244 Rico.addClass(b,"ricoSubMenuOpen")
245 }b.RicoSubmenu.openmenu(parseInt(this.container.style.left)+b.offsetWidth,parseInt(this.container.style.top)+b.offsetTop,b.offsetWidth-2,b.offsetHeight+2,true)
246 },subMenuOut:function(d){if(!this.openSubMenu){return
247 }Rico.eventStop(d);
248 var c=Rico.eventElement(d);
249 var a=Rico.eventRelatedTarget(d)||d.toElement;
250 try{while(a!=null&&a!=this.openSubMenu.div){a=a.parentNode
251 }}catch(b){}if(a==this.openSubMenu.div){return
252 }this.hideSubMenu()
253 },hideSubMenu:function(){if(this.openMenuAnchor){Rico.removeClass(this.openMenuAnchor,"ricoSubMenuOpen");
254 Rico.addClass(this.openMenuAnchor,"ricoSubMenu");
255 this.openMenuAnchor=null
256 }if(this.openSubMenu){this.openSubMenu.hidemenu();
257 this.openSubMenu=null
258 }},addMenuItemId:function(c,b,a,e,d){if(arguments.length<3){a=true
259 }this.addMenuItem(Rico.getPhraseById(c),b,a,e,d)
260 },addMenuItem:function(b,e,d,g,f){if(arguments.length>=3&&!d&&!this.options.showDisabled){return null
261 }this.itemCount++;
262 var c=document.createElement(typeof e=="string"?"a":"div");
263 if(arguments.length<3||d){if(typeof e=="string"){c.href=e;
264 if(f){c.target=f
265 }}else{if(f=="event"){Rico.eventBind(c,"click",e)
266 }else{c.onclick=e
267 }}c.className="enabled";
268 if(this.defaultAction==null){this.defaultAction=e
269 }}else{c.disabled=true;
270 c.className="disabled"
271 }c.innerHTML=b;
272 if(typeof g=="string"){c.title=g
273 }c=this.content.appendChild(c);
274 Rico.eventBind(c,"mouseover",Rico.eventHandle(this,"mouseOver"));
275 Rico.eventBind(c,"mouseout",Rico.eventHandle(this,"mouseOut"));
276 return c
277 },mouseOver:function(b){if(this.highlightElem&&this.highlightElem.className=="enabled-hover"){this.highlightElem.className="enabled";
278 this.highlightElem=null
279 }var a=Rico.eventElement(b);
280 if(this.openMenuAnchor&&this.openMenuAnchor!=a){this.hideSubMenu()
281 }if(a.className=="enabled"){a.className="enabled-hover";
282 this.highlightElem=a
283 }},mouseOut:function(b){var a=Rico.eventElement(b);
284 if(a.className=="enabled-hover"){a.className="enabled"
285 }if(this.highlightElem==a){this.highlightElem=null
286 }},cancelmenu:function(){if(!this.visible()){return
287 }if(this.hideFunc){this.hideFunc()
288 }this.hideFunc=null;
289 this.hidemenu()
290 },hidemenu:function(){if(this.openSubMenu){this.openSubMenu.hidemenu()
291 }this.closePopup()
292 }};
293 Rico.SelectionSet=function(b,a){this.initialize(b,a)
294 };
295 Rico.SelectionSet.prototype={initialize:function(e,b){Rico.log("SelectionSet#initialize");
296 this.options=b||{};
297 if(typeof e=="string"){e=Rico.select(e)
298 }this.previouslySelected=[];
299 this.selectionSet=[];
300 this.selectedClassName=this.options.selectedClass||Rico.theme.selected||"selected";
301 this.selectNode=this.options.selectNode||function(f){return f
302 };
303 this.onSelect=this.options.onSelect;
304 this.onFirstSelect=this.options.onFirstSelect;
305 var a=this;
306 this.clickHandler=function(f){a.selectIndex(f)
307 };
308 this.selectedIndex=-1;
309 for(var c=0;
310 c<e.length;
311 c++){this.add(e[c])
312 }if(!this.options.noDefault){var d=this.options.cookieName?this.getCookie():0;
313 this.selectIndex(d||this.options.selectedIndex||0)
314 }},getCookie:function(){var b=Rico.getCookie(this.options.cookieName);
315 if(!b){return 0
316 }var a=parseInt(b);
317 return a<this.selectionSet.length?a:0
318 },reset:function(){this.previouslySelected=[];
319 this._notifySelected(this.selectedIndex)
320 },clearSelected:function(){if(this.selected){Rico.removeClass(this.selectNode(this.selected),this.selectedClassName)
321 }},getIndex:function(b){for(var a=0;
322 a<this.selectionSet.length;
323 a++){if(b==this.selectionSet[a]){return a
324 }}return -1
325 },select:function(b){if(this.selected==b){return
326 }var a=this.getIndex(b);
327 if(a>=0){this.selectIndex(a)
328 }},_notifySelected:function(a){if(a<0){return
329 }var b=this.selectionSet[a];
330 if(this.options.cookieName){Rico.setCookie(this.options.cookieName,a,this.options.cookieDays,this.options.cookiePath,this.options.cookieDomain)
331 }if(this.onFirstSelect&&!this.previouslySelected[a]){this.onFirstSelect(b,a);
332 this.previouslySelected[a]=true
333 }if(this.onSelect){try{this.onSelect(a)
334 }catch(c){}}},selectIndex:function(a){if(this.selectedIndex==a||a>=this.selectionSet.length){return
335 }this.clearSelected();
336 this._notifySelected(a);
337 this.selectedIndex=a;
338 this.selected=this.selectionSet[a].element;
339 Rico.addClass(this.selectNode(this.selected),this.selectedClassName)
340 },nextSelectIndex:function(){return(this.selectedIndex+1)%this.selectionSet.length
341 },nextSelectItem:function(){return this.selectionSet[this.nextSelectIndex()]
342 },selectNext:function(){this.selectIndex(this.nextSelectIndex())
343 },add:function(b){var a=this.selectionSet.length;
344 this.selectionSet[a]=new Rico._SelectionItem(b,a,this.clickHandler)
345 },remove:function(b){if(b==this.selected){this.clearSelected()
346 }var a=this.getIndex(b);
347 if(a<0){return
348 }this.selectionSet[a].remove();
349 this.selectionSet.splice(a,1)
350 },removeAll:function(){this.clearSelected();
351 while(this.selectionSet.length>0){this.selectionSet.pop().remove()
352 }}};
353 Rico._SelectionItem=function(b,a,c){this.add(b,a,c)
354 };
355 Rico._SelectionItem.prototype={add:function(b,a,c){this.element=b;
356 this.index=a;
357 this.callback=c;
358 this.handle=Rico.eventHandle(this,"click");
359 Rico.eventBind(b,"click",this.handle)
360 },click:function(a){this.callback(this.index)
361 },remove:function(){Rico.eventUnbind(this.element,"click",this.handle)
362 }};
363 Rico.HoverSet=function(b,a){this.initialize(b,a)
364 };
365 Rico.HoverSet.prototype={initialize:function(c,a){Rico.log("HoverSet#initialize");
366 a=a||{};
367 this.hoverClass=a.hoverClass||Rico.theme.hover||"hover";
368 this.hoverFunc=a.hoverNodes||function(d){return[d]
369 };
370 this.hoverSet=[];
371 if(!c){return
372 }for(var b=0;
373 b<c.length;
374 b++){this.add(c[b])
375 }},add:function(a){this.hoverSet.push(new Rico._HoverItem(a,this.hoverFunc,this.hoverClass))
376 },removeAll:function(){while(this.hoverSet.length>0){this.hoverSet.pop().remove()
377 }}};
378 Rico._HoverItem=function(b,a,c){this.add(b,a,c)
379 };
380 Rico._HoverItem.prototype={add:function(b,a,c){this.element=b;
381 this.selectFunc=a;
382 this.hoverClass=c;
383 this.movehandle=Rico.eventHandle(this,"move");
384 this.outhandle=Rico.eventHandle(this,"mouseout");
385 Rico.eventBind(b,"mousemove",this.movehandle);
386 Rico.eventBind(b,"mouseout",this.outhandle)
387 },move:function(c){var a=this.selectFunc(this.element);
388 for(var b=0;
389 b<a.length;
390 b++){Rico.addClass(a[b],this.hoverClass)
391 }},mouseout:function(c){var a=this.selectFunc(this.element);
392 for(var b=0;
393 b<a.length;
394 b++){Rico.removeClass(a[b],this.hoverClass)
395 }},remove:function(){Rico.eventUnbind(element,"mousemove",this.movehandle);
396 Rico.eventUnbind(element,"mouseout",this.outhandle)
397 }};
398 Rico.Effect={};
399 Rico.Effect.easeIn=function(a){return Math.sqrt(a)
400 };
401 Rico.Effect.easeOut=function(a){return a*a
402 };
403 Rico.ContentTransitionBase=function(){};
404 Rico.ContentTransitionBase.prototype={initBase:function(e,d,b){Rico.log("ContentTransitionBase#initBase");
405 if(typeof e=="string"){e=Rico.select(e)
406 }if(typeof d=="string"){d=Rico.select(d)
407 }this.options=b||{};
408 this.titles=e;
409 this.contents=d;
410 this.hoverSet=new Rico.HoverSet(e,b);
411 for(var c=0;
412 c<d.length;
413 c++){if(d[c]){Rico.hide(d[c])
414 }}var a=this;
415 this.selectionSet=new Rico.SelectionSet(e,Rico.extend(b,{onSelect:function(f){a._finishSelect(f)
416 }}))
417 },reset:function(){this.selectionSet.reset()
418 },select:function(a){this.selectionSet.selectIndex(a)
419 },_finishSelect:function(b){Rico.log("ContentTransitionBase#_finishSelect");
420 var a=this.contents[b];
421 if(!a){alert("Internal error: no panel @index="+b);
422 return
423 }if(this.selected==a){return
424 }if(this.transition){if(this.selected){this.transition(a)
425 }else{a.style.display="block"
426 }}else{if(this.selected){Rico.hide(this.selected)
427 }a.style.display="block"
428 }this.selected=a
429 },addBase:function(b,a){this.titles.push(b);
430 this.contents.push(a);
431 this.hoverSet.add(b);
432 this.selectionSet.add(b);
433 Rico.hide(a)
434 },removeBase:function(a){},removeAll:function(){this.hoverSet.removeAll();
435 this.selectionSet.removeAll()
436 }};
437 Rico.Accordion=function(b,a){this.initialize(b,a)
438 };
439 Rico.Accordion.prototype=Rico.extend(new Rico.ContentTransitionBase(),{initialize:function(g,e){g=Rico.$(g);
440 g.style.overflow="hidden";
441 g.className=e.accClass||Rico.theme.accordion||"Rico_accordion";
442 if(typeof e.panelWidth=="number"){e.panelWidth+="px"
443 }if(e.panelWidth){g.style.width=e.panelWidth
444 }var d=Rico.getDirectChildrenByTag(g,"div");
445 var c,j=[],h=[];
446 for(var f=0;
447 f<d.length;
448 f++){c=Rico.getDirectChildrenByTag(d[f],"div");
449 if(c.length>=2){c[0].className=e.titleClass||Rico.theme.accTitle||"Rico_accTitle";
450 c[1].className=e.contentClass||Rico.theme.accContent||"Rico_accContent";
451 j.push(c[0]);
452 h.push(c[1]);
453 var b=Rico.wrapChildren(c[0],"","","a");
454 b.href="javascript:void(0)"
455 }}Rico.log("creating Rico.Accordion for "+g.id+" with "+j.length+" panels");
456 this.initBase(j,h,e);
457 this.selected.style.height=this.options.panelHeight+"px";
458 this.totSteps=(typeof e.duration=="number"?e.duration:200)/25
459 },transition:function(b){if(!this.options.noAnimate){this.closing=this.selected;
460 this.opening=b;
461 this.curStep=0;
462 var a=this;
463 this.timer=setInterval(function(){a.step()
464 },25)
465 }else{b.style.height=this.options.panelHeight+"px";
466 if(this.selected){Rico.hide(this.selected)
467 }b.style.display="block"
468 }},step:function(){this.curStep++;
469 var a=Math.round(this.curStep/this.totSteps*this.options.panelHeight);
470 this.opening.style.height=a+"px";
471 this.closing.style.height=(this.options.panelHeight-a)+"px";
472 if(this.curStep==1){this.opening.style.paddingTop=this.opening.style.paddingBottom="0px";
473 this.opening.style.display="block"
474 }if(this.curStep==this.totSteps){clearInterval(this.timer);
475 this.opening.style.paddingTop=this.opening.style.paddingBottom="";
476 Rico.hide(this.closing)
477 }},setPanelHeight:function(a){this.options.panelHeight=a;
478 this.selected.style.height=this.options.panelHeight+"px"
479 }});
480 Rico.TabbedPanel=function(b,a){this.initialize(b,a)
481 };
482 Rico.TabbedPanel.prototype=Rico.extend(new Rico.ContentTransitionBase(),{initialize:function(d,k){d=Rico.$(d);
483 k=k||{};
484 if(typeof k.panelWidth=="number"){k.panelWidth+="px"
485 }if(typeof k.panelHeight=="number"){k.panelHeight+="px"
486 }d.className=k.tabClass||Rico.theme.tabPanel||"Rico_tabPanel";
487 if(k.panelWidth){d.style.width=k.panelWidth
488 }var g=[];
489 var j=d.childNodes;
490 for(var e=0;
491 e<j.length;
492 e++){if(j[e]&&j[e].tagName&&j[e].tagName.match(/^div|ul$/i)){g.push(j[e])
493 }}if(g.length<2){return
494 }var c=g[0].tagName.toLowerCase()=="ul"?"li":"div";
495 g[0].className=k.navContainerClass||Rico.theme.tabNavContainer||"Rico_tabNavContainer";
496 g[0].style.listStyle="none";
497 g[1].className=k.contentContainerClass||Rico.theme.tabContentContainer||"Rico_tabContentContainer";
498 var f=Rico.getDirectChildrenByTag(g[0],c);
499 var b=Rico.getDirectChildrenByTag(g[1],"div");
500 if(!k.corners){k.corners="top"
501 }for(var e=0;
502 e<f.length;
503 e++){f[e].className=k.titleClass||Rico.theme.tabTitle||"Rico_tabTitle";
504 var h=Rico.wrapChildren(f[e],"","","a");
505 h.href="javascript:void(0)";
506 b[e].className=k.contentClass||Rico.theme.tabContent||"Rico_tabContent";
507 if(k.panelHeight){b[e].style.overflow="auto"
508 }if(k.corners!="none"){if(k.panelHdrWidth){f[e].style.width=k.panelHdrWidth
509 }Rico.Corner.round(f[e],Rico.theme.tabCornerOptions||k)
510 }}k.selectedClass=Rico.theme.tabSelected||"selected";
511 this.initBase(f,b,k);
512 if(this.selected){this.transition(this.selected)
513 }},transition:function(a){Rico.log("TabbedPanel#transition "+typeof(a));
514 if(this.selected){Rico.hide(this.selected)
515 }Rico.show(a);
516 if(this.options.panelHeight){a.style.height=this.options.panelHeight
517 }}});
518 Rico.Corner={round:function(b,a){b=Rico.$(b);
519 this.options={corners:"all",bgColor:"fromParent",compact:false,nativeCorners:false};
520 Rico.extend(this.options,a||{});
521 if(typeof(Rico.getStyle(b,"border-radius"))=="string"){this._roundCornersStdCss(b)
522 }else{if(typeof(Rico.getStyle(b,"-webkit-border-radius"))=="string"){this._roundCornersWebKit(b)
523 }else{if(typeof(Rico.getStyle(b,"-moz-border-radius"))=="string"){this._roundCornersMoz(b)
524 }else{if(!this.options.nativeCorners){this._roundCornersImpl(b)
525 }}}}},_roundCornersStdCss:function(b){var a=this.options.compact?"4px":"8px";
526 if(this._hasString(this.options.corners,"all")){Rico.setStyle(b,{borderRadius:a})
527 }else{if(this._hasString(this.options.corners,"top","tl")){Rico.setStyle(b,{borderTopLeftRadius:a})
528 }if(this._hasString(this.options.corners,"top","tr")){Rico.setStyle(b,{borderTopRightRadius:a})
529 }if(this._hasString(this.options.corners,"bottom","bl")){Rico.setStyle(b,{borderBottomLeftRadius:a})
530 }if(this._hasString(this.options.corners,"bottom","br")){Rico.setStyle(b,{borderBottomRightRadius:a})
531 }}},_roundCornersWebKit:function(b){var a=this.options.compact?"4px":"8px";
532 if(this._hasString(this.options.corners,"all")){Rico.setStyle(b,{WebkitBorderRadius:a})
533 }else{if(this._hasString(this.options.corners,"top","tl")){Rico.setStyle(b,{WebkitBorderTopLeftRadius:a})
534 }if(this._hasString(this.options.corners,"top","tr")){Rico.setStyle(b,{WebkitBorderTopRightRadius:a})
535 }if(this._hasString(this.options.corners,"bottom","bl")){Rico.setStyle(b,{WebkitBorderBottomLeftRadius:a})
536 }if(this._hasString(this.options.corners,"bottom","br")){Rico.setStyle(b,{WebkitBorderBottomRightRadius:a})
537 }}},_roundCornersMoz:function(b){var a=this.options.compact?"4px":"8px";
538 if(this._hasString(this.options.corners,"all")){Rico.setStyle(b,{MozBorderRadius:a})
539 }else{if(this._hasString(this.options.corners,"top","tl")){Rico.setStyle(b,{MozBorderRadiusTopleft:a})
540 }if(this._hasString(this.options.corners,"top","tr")){Rico.setStyle(b,{MozBorderRadiusTopright:a})
541 }if(this._hasString(this.options.corners,"bottom","bl")){Rico.setStyle(b,{MozBorderRadiusBottomleft:a})
542 }if(this._hasString(this.options.corners,"bottom","br")){Rico.setStyle(b,{MozBorderRadiusBottomright:a})
543 }}},_roundCornersImpl:function(b){var a=this.options.bgColor=="fromParent"?this._background(b.parentNode):this.options.bgColor;
544 b.style.position="relative";
545 if(this._hasString(this.options.corners,"all","top","tl")){this._createCorner(b,"top","left",a)
546 }if(this._hasString(this.options.corners,"all","top","tr")){this._createCorner(b,"top","right",a)
547 }if(this._hasString(this.options.corners,"all","bottom","bl")){this._createCorner(b,"bottom","left",a)
548 }if(this._hasString(this.options.corners,"all","bottom","br")){this._createCorner(b,"bottom","right",a)
549 }},_createCorner:function(b,c,f,k){var n=document.createElement("div");
550 n.className="ricoCorner";
551 Rico.setStyle(n,{width:"6px",height:"5px"});
552 var o=Rico.getStyle(b,"border-"+c+"-style");
553 var a=o=="none"?k:Rico.getStyle(b,"border-"+c+"-color");
554 var j=o=="none"?"0px":"-1px";
555 n.style[c]=j;
556 n.style[f]=Rico.isIE&&Rico.ieVersion<7&&f=="right"&&o!="none"?"-2px":"-1px";
557 b.appendChild(n);
558 var h=[0,2,3,4,4];
559 if(c=="bottom"){h.reverse()
560 }var m=o=="none"?"0px none":"1px solid "+a;
561 var g=f=="left"?"Right":"Left";
562 for(var e=0;
563 e<h.length;
564 e++){var l=document.createElement("div");
565 Rico.setStyle(l,{backgroundColor:k,height:"1px"});
566 l.style["margin"+g]=h[e]+"px";
567 l.style["border"+g]=m;
568 n.appendChild(l)
569 }},_background:function(c){try{var a=Rico.getStyle(c,"backgroundColor");
570 if(a.match(/^(transparent|rgba\(0,\s*0,\s*0,\s*0\))$/i)&&c.parentNode){return this._background(c.parentNode)
571 }return a==null?"#ffffff":a
572 }catch(b){return"#ffffff"
573 }},_hasString:function(b){for(var a=1;
574 a<arguments.length;
575 a++){if(b.indexOf(arguments[a])>=0){return true
576 }}return false
577 }};
578 Rico.toColorPart=function(a){return Rico.zFill(a,2,16)
579 };
580 Rico.Color=function(c,b,a){this.initialize(c,b,a)
581 };
582 Rico.Color.prototype={initialize:function(c,b,a){this.rgb={r:c,g:b,b:a}
583 },setRed:function(a){this.rgb.r=a
584 },setGreen:function(a){this.rgb.g=a
585 },setBlue:function(a){this.rgb.b=a
586 },setHue:function(b){var a=this.asHSB();
587 a.h=b;
588 this.rgb=Rico.Color.HSBtoRGB(a.h,a.s,a.b)
589 },setSaturation:function(b){var a=this.asHSB();
590 a.s=b;
591 this.rgb=Rico.Color.HSBtoRGB(a.h,a.s,a.b)
592 },setBrightness:function(a){var c=this.asHSB();
593 c.b=a;
594 this.rgb=Rico.Color.HSBtoRGB(c.h,c.s,c.b)
595 },darken:function(b){var a=this.asHSB();
596 this.rgb=Rico.Color.HSBtoRGB(a.h,a.s,Math.max(a.b-b,0))
597 },brighten:function(b){var a=this.asHSB();
598 this.rgb=Rico.Color.HSBtoRGB(a.h,a.s,Math.min(a.b+b,1))
599 },blend:function(a){this.rgb.r=Math.floor((this.rgb.r+a.rgb.r)/2);
600 this.rgb.g=Math.floor((this.rgb.g+a.rgb.g)/2);
601 this.rgb.b=Math.floor((this.rgb.b+a.rgb.b)/2)
602 },isBright:function(){var a=this.asHSB();
603 return this.asHSB().b>0.5
604 },isDark:function(){return !this.isBright()
605 },asRGB:function(){return"rgb("+this.rgb.r+","+this.rgb.g+","+this.rgb.b+")"
606 },asHex:function(){return"#"+Rico.toColorPart(this.rgb.r)+Rico.toColorPart(this.rgb.g)+Rico.toColorPart(this.rgb.b)
607 },asHSB:function(){return Rico.Color.RGBtoHSB(this.rgb.r,this.rgb.g,this.rgb.b)
608 },toString:function(){return this.asHex()
609 }};
610 Rico.Color.createFromHex=function(d){if(d.length==4){var b=d;
611 d="#";
612 for(var c=1;
613 c<4;
614 c++){d+=(b.charAt(c)+b.charAt(c))
615 }}if(d.indexOf("#")==0){d=d.substring(1)
616 }if(!d.match(/^[0-9A-Fa-f]{6}$/)){return null
617 }var f=d.substring(0,2);
618 var e=d.substring(2,4);
619 var a=d.substring(4,6);
620 return new Rico.Color(parseInt(f,16),parseInt(e,16),parseInt(a,16))
621 };
622 Rico.Color.createColorFromBackground=function(d){if(!d.style){return new Rico.Color(255,255,255)
623 }var b=Rico.getStyle(d,"background-color");
624 if(b.match(/^(transparent|rgba\(0,\s*0,\s*0,\s*0\))$/i)&&d.parentNode){return Rico.Color.createColorFromBackground(d.parentNode)
625 }if(b==null){return new Rico.Color(255,255,255)
626 }if(b.indexOf("rgb(")==0){var a=b.substring(4,b.length-1);
627 var c=a.split(",");
628 return new Rico.Color(parseInt(c[0],10),parseInt(c[1],10),parseInt(c[2],10))
629 }else{if(b.indexOf("#")==0){return Rico.Color.createFromHex(b)
630 }else{return new Rico.Color(255,255,255)
631 }}};
632 Rico.Color.HSBtoRGB=function(i,e,k){var c=0;
633 var d=0;
634 var l=0;
635 if(e==0){c=parseInt(k*255+0.5,10);
636 d=c;
637 l=c
638 }else{var g=(i-Math.floor(i))*6;
639 var j=g-Math.floor(g);
640 var b=k*(1-e);
641 var a=k*(1-e*j);
642 var m=k*(1-(e*(1-j)));
643 switch(parseInt(g,10)){case 0:c=(k*255+0.5);
644 d=(m*255+0.5);
645 l=(b*255+0.5);
646 break;
647 case 1:c=(a*255+0.5);
648 d=(k*255+0.5);
649 l=(b*255+0.5);
650 break;
651 case 2:c=(b*255+0.5);
652 d=(k*255+0.5);
653 l=(m*255+0.5);
654 break;
655 case 3:c=(b*255+0.5);
656 d=(a*255+0.5);
657 l=(k*255+0.5);
658 break;
659 case 4:c=(m*255+0.5);
660 d=(b*255+0.5);
661 l=(k*255+0.5);
662 break;
663 case 5:c=(k*255+0.5);
664 d=(b*255+0.5);
665 l=(a*255+0.5);
666 break
667 }}return{r:parseInt(c,10),g:parseInt(d,10),b:parseInt(l,10)}
668 };
669 Rico.Color.RGBtoHSB=function(a,f,l){var h;
670 var e;
671 var k;
672 var m=(a>f)?a:f;
673 if(l>m){m=l
674 }var i=(a<f)?a:f;
675 if(l<i){i=l
676 }k=m/255;
677 if(m!=0){e=(m-i)/m
678 }else{e=0
679 }if(e==0){h=0
680 }else{var c=(m-a)/(m-i);
681 var j=(m-f)/(m-i);
682 var d=(m-l)/(m-i);
683 if(a==m){h=d-j
684 }else{if(f==m){h=2+c-d
685 }else{h=4+j-c
686 }}h=h/6;
687 if(h<0){h=h+1
688 }}return{h:h,s:e,b:k}
689 };
690 Rico.createXmlDocument=function(){if(document.implementation&&document.implementation.createDocument){var a=document.implementation.createDocument("","",null);
691 if(a.readyState==null){a.readyState=1;
692 a.addEventListener("load",function(){a.readyState=4;
693 if(typeof a.onreadystatechange=="function"){a.onreadystatechange()
694 }},false)
695 }return a
696 }if(window.ActiveXObject){return Rico.tryFunctions(function(){return new ActiveXObject("MSXML2.DomDocument")
697 },function(){return new ActiveXObject("Microsoft.DomDocument")
698 },function(){return new ActiveXObject("MSXML.DomDocument")
699 },function(){return new ActiveXObject("MSXML3.DomDocument")
700 })||false
701 }return null
702 };
703 Rico.CalendarControl=function(b,a){this.initialize(b,a)
704 };
705 Rico.CalendarControl.prototype={initialize:function(c,b){this.id=c;
706 var a=new Date();
707 Rico.extend(this,new Rico.Popup());
708 Rico.extend(this.options,{ignoreClicks:true,startAt:0,showWeekNumber:0,showToday:1,dateFmt:"ISO8601",minDate:new Date(a.getFullYear()-50,0,1),maxDate:new Date(a.getFullYear()+50,11,31)});
709 Rico.extend(this.options,b||{});
710 this.close=this.closePopup;
711 this.bPageLoaded=false;
712 this.img=[];
713 this.Holidays={};
714 this.weekString=Rico.getPhraseById("calWeekHdg");
715 this.re=/^\s*(\w+)(\W)(\w+)(\W)(\w+)/i;
716 this.setDateFmt(this.options.dateFmt)
717 },setDateFmt:function(a){this.dateFmt=(a=="rico")?Rico.dateFmt:a;
718 Rico.log(this.id+" date format set to "+this.dateFmt);
719 this.dateParts={};
720 if(this.re.exec(this.dateFmt)){this.dateParts[RegExp.$1]=0;
721 this.dateParts[RegExp.$3]=1;
722 this.dateParts[RegExp.$5]=2
723 }},addHoliday:function(f,a,g,e,c,b){this.Holidays[this.holidayKey(g,a-1,f)]={desc:e,txtColor:b,bgColor:c||"#DDF"}
724 },holidayKey:function(c,a,b){return"h"+Rico.zFill(c,4)+Rico.zFill(a,2)+Rico.zFill(b,2)
725 },atLoad:function(){Rico.log("Calendar#atLoad: "+this.id);
726 this.createContainer();
727 this.container.id=this.id;
728 Rico.addClass(this.container,Rico.theme.calendar||"ricoCalContainer");
729 this.maintab=document.createElement("table");
730 this.maintab.cellSpacing=2;
731 this.maintab.cellPadding=0;
732 this.maintab.border=0;
733 this.maintab.style.borderCollapse="separate";
734 this.maintab.className="ricoCalTab";
735 if(Rico.theme.calendarTable){Rico.addClass(this.maintab,Rico.theme.calendarTable)
736 }this.tbody=Rico.getTBody(this.maintab);
737 var b,n,m,k,h,l,p,o,q,f;
738 this.colStart=this.options.showWeekNumber?1:0;
739 for(k=0;
740 k<7;
741 k++){b=this.tbody.insertRow(-1);
742 b.className="row"+k;
743 for(n=0;
744 n<7+this.colStart;
745 n++){b.insertCell(-1)
746 }}b=this.tbody.rows[0];
747 b.className="ricoCalDayNames";
748 if(this.options.showWeekNumber){b.cells[0].innerHTML=this.weekString;
749 for(k=0;
750 k<7;
751 k++){this.tbody.rows[k].cells[0].className="ricoCalWeekNum"
752 }}this.styles=[];
753 for(k=0;
754 k<7;
755 k++){p=(k+this.options.startAt)%7;
756 b.cells[k+this.colStart].innerHTML=Rico.dayAbbr(p);
757 this.styles[k]="ricoCal"+p
758 }this.thead=this.maintab.createTHead();
759 b=this.thead.insertRow(-1);
760 n=b.appendChild(document.createElement("th"));
761 n.colSpan=7+this.colStart;
762 m=n.appendChild(document.createElement("div"));
763 m.className=Rico.theme.calendarHeading||"RicoCalHeading";
764 m.appendChild(this._createTitleSection("Month"));
765 m.appendChild(this._createTitleSection("Year"));
766 new Rico.HoverSet(m.getElementsByTagName("a"));
767 new Rico.HoverSet(this.tbody.getElementsByTagName("td"),{hoverNodes:function(a){return a.innerHTML.match(/^\d+$/)?[a]:[]
768 }});
769 m.appendChild(Rico.closeButton(Rico.eventHandle(this,"close")));
770 if(this.options.showToday){this.tfoot=this.maintab.createTFoot();
771 b=this.tfoot.insertRow(-1);
772 this.todayCell=b.insertCell(-1);
773 this.todayCell.colSpan=7+this.colStart;
774 if(Rico.theme.calendarFooter){Rico.addClass(this.todayCell,Rico.theme.calendarFooter)
775 }Rico.eventBind(this.todayCell,"click",Rico.eventHandle(this,"selectNow"),false)
776 }this.content.appendChild(this.maintab);
777 var g=Rico.isIE&&Rico.ieVersion<7;
778 var e={shadow:!g};
779 this.monthPopup=new Rico.Popup(document.createElement("div"),e);
780 this.monthPopup.closePopup();
781 f=document.createElement("table");
782 f.className="ricoCalMenu";
783 if(Rico.theme.calendarPopdown){Rico.addClass(f,Rico.theme.calendarPopdown)
784 }f.cellPadding=2;
785 f.cellSpacing=0;
786 f.border=0;
787 f.style.borderCollapse="separate";
788 f.style.margin="0px";
789 for(k=0;
790 k<4;
791 k++){b=f.insertRow(-1);
792 for(h=0;
793 h<3;
794 h++){n=b.insertCell(-1);
795 o=document.createElement("a");
796 o.innerHTML=Rico.monthAbbr(k*3+h);
797 o.name=k*3+h;
798 if(Rico.theme.calendarDay){Rico.addClass(o,Rico.theme.calendarDay)
799 }n.appendChild(o);
800 Rico.eventBind(o,"click",Rico.eventHandle(this,"selectMonth"),false)
801 }}new Rico.HoverSet(f.getElementsByTagName("a"));
802 this.monthPopup.content.appendChild(f);
803 this.content.appendChild(this.monthPopup.container);
804 this.yearPopup=new Rico.Popup(document.createElement("div"),e);
805 this.yearPopup.closePopup();
806 this.yearPopup.content.className="ricoCalYearPrompt";
807 if(Rico.theme.calendarPopdown){Rico.addClass(this.yearPopup.content,Rico.theme.calendarPopdown)
808 }var f=document.createElement("table");
809 f.cellPadding=2;
810 f.cellSpacing=0;
811 f.border=0;
812 f.style.borderCollapse="separate";
813 f.style.margin="0px";
814 b=f.insertRow(-1);
815 this.yearLabel=b.insertCell(-1);
816 this.yearLabel.colSpan=3;
817 b=f.insertRow(-1);
818 n=b.insertCell(-1);
819 this.yearInput=n.appendChild(document.createElement("input"));
820 this.yearInput.maxlength=4;
821 this.yearInput.size=4;
822 Rico.eventBind(this.yearInput,"keypress",Rico.eventHandle(this,"yearKey"),false);
823 n=b.insertCell(-1);
824 var o=Rico.floatButton("Checkmark",Rico.eventHandle(this,"processPopUpYear"));
825 Rico.setStyle(o.firstChild,{margin:"0px",padding:"0px",border:"none"});
826 n.appendChild(o);
827 n=b.insertCell(-1);
828 o=Rico.floatButton("Cancel",Rico.eventHandle(this,"popDownYear"));
829 Rico.setStyle(o.firstChild,{margin:"0px",padding:"0px",border:"none"});
830 n.appendChild(o);
831 this.yearPopup.content.appendChild(f);
832 this.content.appendChild(this.yearPopup.container);
833 o=this.content.getElementsByTagName("a");
834 for(k=0;
835 k<o.length;
836 k++){o[k].href="javascript:void(0)"
837 }Rico.eventBind(this.tbody,"click",Rico.eventHandle(this,"saveAndClose"));
838 this.close();
839 this.bPageLoaded=true
840 },_createTitleSection:function(d){var c=document.createElement("span");
841 c.className="RicoCal"+d+"Heading";
842 var b=c.appendChild(document.createElement("a"));
843 b.className="Rico_leftArrow";
844 if(Rico.theme.leftArrowAnchor){Rico.addClass(b,Rico.theme.leftArrowAnchor)
845 }b.appendChild(this.createNavArrow("dec"+d,"left"));
846 b=c.appendChild(document.createElement("a"));
847 b.style.display="inline";
848 Rico.eventBind(b,"click",Rico.eventHandle(this,"popUp"+d),false);
849 this["title"+d]=b;
850 b=c.appendChild(document.createElement("a"));
851 b.className="Rico_rightArrow";
852 if(Rico.theme.rightArrowAnchor){Rico.addClass(b,Rico.theme.rightArrowAnchor)
853 }b.appendChild(this.createNavArrow("inc"+d,"right"));
854 return c
855 },selectNow:function(){var a=new Date();
856 this.dateNow=a.getDate();
857 this.monthNow=a.getMonth();
858 this.yearNow=a.getFullYear();
859 this.monthSelected=this.monthNow;
860 this.yearSelected=this.yearNow;
861 this.constructCalendar()
862 },createNavArrow:function(a,c){var b=document.createElement("span");
863 b.className=Rico.theme[c+"Arrow"]||"rico-icon Rico_"+c+"Arrow";
864 Rico.eventBind(b,"click",Rico.eventHandle(this,a),false);
865 return b
866 },isValidMonth:function(a,b){if(a<this.options.minDate.getFullYear()){return false
867 }if(a==this.options.minDate.getFullYear()&&b<this.options.minDate.getMonth()){return false
868 }if(a>this.options.maxDate.getFullYear()){return false
869 }if(a==this.options.maxDate.getFullYear()&&b>this.options.maxDate.getMonth()){return false
870 }return true
871 },incMonth:function(){var b=this.monthSelected+1;
872 var a=this.yearSelected;
873 if(b>11){b=0;
874 a++
875 }if(!this.isValidMonth(a,b)){return
876 }this.monthSelected=b;
877 this.yearSelected=a;
878 this.constructCalendar()
879 },decMonth:function(){var b=this.monthSelected-1;
880 var a=this.yearSelected;
881 if(b<0){b=11;
882 a--
883 }if(!this.isValidMonth(a,b)){return
884 }this.monthSelected=b;
885 this.yearSelected=a;
886 this.constructCalendar()
887 },selectMonth:function(b){var a=Rico.eventElement(b);
888 this.monthSelected=parseInt(a.name,10);
889 this.constructCalendar();
890 Rico.eventStop(b)
891 },popUpMonth:function(a){if(this.monthPopup.visible()){this.popDownMonth();
892 return
893 }this.popDownYear();
894 this.monthPopup.openPopup(this.titleMonth.parentNode.offsetLeft,this.thead.offsetHeight+2);
895 Rico.eventStop(a);
896 return false
897 },popDownMonth:function(){this.monthPopup.closePopup()
898 },popDownYear:function(){this.yearPopup.closePopup();
899 this.yearInput.disabled=true
900 },popUpYear:function(a){if(this.yearPopup.visible()){this.popDownYear();
901 return
902 }this.popDownMonth();
903 this.yearPopup.openPopup(90,this.thead.offsetHeight+2);
904 this.yearLabel.innerHTML=Rico.getPhraseById("calYearRange",this.options.minDate.getFullYear(),this.options.maxDate.getFullYear());
905 this.yearInput.disabled=false;
906 this.yearInput.value="";
907 this.yearInput.focus();
908 Rico.eventStop(a);
909 return false
910 },yearKey:function(a){switch(Rico.eventKey(a)){case 27:this.popDownYear();
911 Rico.eventStop(a);
912 return false;
913 case 13:this.processPopUpYear();
914 Rico.eventStop(a);
915 return false
916 }return true
917 },processPopUpYear:function(){var a=this.yearInput.value;
918 a=parseInt(a,10);
919 if(isNaN(a)||a<this.options.minDate.getFullYear()||a>this.options.maxDate.getFullYear()){alert(Rico.getPhraseById("calInvalidYear"))
920 }else{this.yearSelected=a;
921 this.popDownYear();
922 this.constructCalendar()
923 }},incYear:function(){if(this.yearSelected>=this.options.maxDate.getFullYear()){return
924 }this.yearSelected++;
925 this.constructCalendar()
926 },decYear:function(){if(this.yearSelected<=this.options.minDate.getFullYear()){return
927 }this.yearSelected--;
928 this.constructCalendar()
929 },WeekNbr:function(h,f,j){var g=new Date(h,f,j);
930 var c=new Date(h,0,1);
931 var e=7+1-c.getDay();
932 if(e==8){e=1
933 }var b=((Date.UTC(h,g.getMonth(),g.getDate(),0,0,0)-Date.UTC(h,0,1,0,0,0))/1000/60/60/24)+1;
934 var d=Math.floor((b-e+7)/7);
935 if(d==0){h--;
936 var a=new Date(h,0,1);
937 var i=7+1-a.getDay();
938 d=(i==2||i==8)?53:52
939 }return d
940 },constructCalendar:function(){var l=[31,0,31,30,31,30,31,31,30,31,30,31];
941 var d=new Date(this.yearSelected,this.monthSelected,1);
942 var j,e,f,b;
943 if(typeof this.monthSelected!="number"||this.monthSelected>=12||this.monthSelected<0){alert("ERROR in calendar: monthSelected="+this.monthSelected);
944 return
945 }if(this.monthSelected==1){j=new Date(this.yearSelected,this.monthSelected+1,1);
946 j=new Date(j-(24*60*60*1000));
947 e=j.getDate()
948 }else{e=l[this.monthSelected]
949 }var n=d.getDay()-this.options.startAt;
950 if(n<0){n+=7
951 }this.popDownMonth();
952 this.popDownYear();
953 if(this.options.showWeekNumber){for(f=1;
954 f<7;
955 f++){this.tbody.rows[f].cells[0].innerHTML="&nbsp;"
956 }}for(f=0;
957 f<n;
958 f++){this.resetCell(this.tbody.rows[1].cells[f+this.colStart])
959 }for(var k=1,a=1;
960 k<=e;
961 k++,n++){b=n%7;
962 if(this.options.showWeekNumber&&b==0){this.tbody.rows[a].cells[0].innerHTML=this.WeekNbr(this.yearSelected,this.monthSelected,k)
963 }var m=this.tbody.rows[a].cells[b+this.colStart];
964 m.innerHTML=k;
965 m.className=this.styles[b];
966 if((k==this.dateNow)&&(this.monthSelected==this.monthNow)&&(this.yearSelected==this.yearNow)){Rico.addClass(m,Rico.theme.calendarToday||"ricoCalToday")
967 }if(Rico.theme.calendarDay){Rico.addClass(m,Rico.theme.calendarDay)
968 }if((k==this.odateSelected)&&(this.monthSelected==this.omonthSelected)&&(this.yearSelected==this.oyearSelected)){Rico.addClass(m,Rico.theme.calendarSelectedDay||"ricoSelectedDay")
969 }var g=this.Holidays[this.holidayKey(this.yearSelected,this.monthSelected,k)];
970 if(!g){g=this.Holidays[this.holidayKey(0,this.monthSelected,k)]
971 }m.style.color=g?g.txtColor:"";
972 m.style.backgroundColor=g?g.bgColor:"";
973 m.title=g?g.desc:"";
974 if(b==6){a++
975 }}while(n<42){b=n%7;
976 this.resetCell(this.tbody.rows[a].cells[b+this.colStart]);
977 n++;
978 if(b==6){a++
979 }}this.titleMonth.innerHTML=Rico.monthAbbr(this.monthSelected);
980 this.titleYear.innerHTML=this.yearSelected;
981 if(this.todayCell){this.todayCell.innerHTML=Rico.getPhraseById("calToday",this.dateNow,Rico.monthAbbr(this.monthNow),this.yearNow,this.monthNow+1)
982 }},resetCell:function(a){a.innerHTML="&nbsp;";
983 a.className="ricoCalEmpty";
984 a.style.color="";
985 a.style.backgroundColor="";
986 a.title=""
987 },saveAndClose:function(g){Rico.eventStop(g);
988 var f=Rico.eventElement(g);
989 var c=f.innerHTML.replace(/&nbsp;/g,"");
990 if(c==""||f.className=="ricoCalWeekNum"){return
991 }var b=parseInt(c,10);
992 if(isNaN(b)){return
993 }var h=new Date(this.yearSelected,this.monthSelected,b);
994 var a=Rico.formatDate(h,this.dateFmt=="ISO8601"?"yyyy-mm-dd":this.dateFmt);
995 if(this.returnValue){this.returnValue(a);
996 this.close()
997 }},open:function(b){if(!this.bPageLoaded){return
998 }var a=new Date();
999 this.dateNow=a.getDate();
1000 this.monthNow=a.getMonth();
1001 this.yearNow=a.getFullYear();
1002 this.oyearSelected=-1;
1003 if(typeof b=="object"){this.odateSelected=b.getDate();
1004 this.omonthSelected=b.getMonth();
1005 this.oyearSelected=b.getFullYear()
1006 }else{if(this.dateFmt=="ISO8601"){var c=Rico.setISO8601(b);
1007 if(c){this.odateSelected=c.getDate();
1008 this.omonthSelected=c.getMonth();
1009 this.oyearSelected=c.getFullYear()
1010 }}else{if(this.re.exec(b)){var f=[RegExp.$1,RegExp.$3,RegExp.$5];
1011 this.odateSelected=parseInt(f[this.dateParts.dd],10);
1012 this.omonthSelected=parseInt(f[this.dateParts.mm],10)-1;
1013 this.oyearSelected=parseInt(f[this.dateParts.yyyy],10);
1014 if(this.oyearSelected<100){this.oyearSelected+=this.yearNow-(this.yearNow%100);
1015 var e=this.options.maxDate.getFullYear();
1016 while(this.oyearSelected>e){this.oyearSelected-=100
1017 }}}else{if(b){alert("ERROR: invalid date passed to calendar ("+b+")")
1018 }}}}if(this.oyearSelected>0){this.dateSelected=this.odateSelected;
1019 this.monthSelected=this.omonthSelected;
1020 this.yearSelected=this.oyearSelected
1021 }else{this.dateSelected=this.dateNow;
1022 this.monthSelected=this.monthNow;
1023 this.yearSelected=this.yearNow
1024 }this.constructCalendar();
1025 this.openPopup()
1026 }};
1027 Rico.ColorPicker=function(b,a){this.initialize(b,a)
1028 };
1029 Rico.ColorPicker.prototype={initialize:function(h,c){this.id=h;
1030 this.currentValue="#FFFFFF";
1031 Rico.extend(this,new Rico.Popup());
1032 Rico.extend(this.options,{showColorCode:false,cellsPerRow:18,palette:[]});
1033 var f=["00","33","66","99","CC","FF"];
1034 for(var e=0;
1035 e<f.length;
1036 e++){for(var d=0;
1037 d<f.length;
1038 d++){for(var a=0;
1039 a<f.length;
1040 a++){this.options.palette.push(f[d]+f[e]+f[a])
1041 }}}Rico.extend(this.options,c||{})
1042 },atLoad:function(){this.createContainer();
1043 this.content.className="ricoColorPicker";
1044 var c=this.options.cellsPerRow;
1045 var d="<TABLE BORDER='1' CELLSPACING='1' CELLPADDING='0'>";
1046 for(var b=0;
1047 b<this.options.palette.length;
1048 b++){if((b%c)==0){d+="<TR>"
1049 }d+='<TD BGCOLOR="#'+this.options.palette[b]+'">&nbsp;</TD>';
1050 if(((b+1)>=this.options.palette.length)||(((b+1)%c)==0)){d+="</TR>"
1051 }}var a=Math.floor(c/2);
1052 if(this.options.showColorCode){d+="<TR><TD COLSPAN='"+a+"' ID='colorPickerSelectedColor'>&nbsp;</TD><TD COLSPAN='"+(c-a)+"' ALIGN='CENTER' ID='colorPickerSelectedColorValue'>#FFFFFF</TD></TR>"
1053 }else{d+="<TR><TD COLSPAN='"+c+"' ID='colorPickerSelectedColor'>&nbsp;</TD></TR>"
1054 }d+="</TABLE>";
1055 this.content.innerHTML=d;
1056 this.open=this.openPopup;
1057 this.close=this.closePopup;
1058 Rico.eventBind(this.container,"mouseover",Rico.eventHandle(this,"highlightColor"),false);
1059 Rico.eventBind(this.container,"click",Rico.eventHandle(this,"selectColor"),false);
1060 this.close()
1061 },selectColor:function(a){Rico.eventStop(a);
1062 if(this.returnValue){this.returnValue(this.currentValue)
1063 }this.close()
1064 },highlightColor:function(b){var a=Rico.eventElement(b);
1065 if(!a.tagName||a.tagName.toLowerCase()!="td"){return
1066 }var g=Rico.Color.createColorFromBackground(a).toString();
1067 this.currentValue=g;
1068 Rico.setStyle("colorPickerSelectedColor",{backgroundColor:g});
1069 var f=Rico.$("colorPickerSelectedColorValue");
1070 if(f){f.innerHTML=g
1071 }}};
1072 Rico.dndMgrList=[];
1073 Rico.registerDraggable=function(b,a){if(typeof a!="number"){a=0
1074 }if(typeof Rico.dndMgrList[a]!="object"){Rico.dndMgrList[a]=new Rico.dndMgr()
1075 }Rico.dndMgrList[a].registerDraggable(b)
1076 };
1077 Rico.registerDropZone=function(b,a){if(typeof a!="number"){a=0
1078 }if(typeof Rico.dndMgrList[a]!="object"){Rico.dndMgrList[a]=new Rico.dndMgr()
1079 }Rico.dndMgrList[a].registerDropZone(b)
1080 };
1081 Rico.dndMgr=function(){this.initialize()
1082 };
1083 Rico.dndMgr.prototype={initialize:function(){this.dropZones=[];
1084 this.draggables=[];
1085 this.currentDragObjects=[];
1086 this.dragElement=null;
1087 this.lastSelectedDraggable=null;
1088 this.currentDragObjectVisible=false;
1089 this.interestedInMotionEvents=false;
1090 this._mouseDown=Rico.eventHandle(this,"_mouseDownHandler");
1091 this._mouseMove=Rico.eventHandle(this,"_mouseMoveHandler");
1092 this._mouseUp=Rico.eventHandle(this,"_mouseUpHandler")
1093 },registerDropZone:function(a){this.dropZones[this.dropZones.length]=a
1094 },deregisterDropZone:function(a){var d=new Array();
1095 var b=0;
1096 for(var c=0;
1097 c<this.dropZones.length;
1098 c++){if(this.dropZones[c]!=a){d[b++]=this.dropZones[c]
1099 }}this.dropZones=d
1100 },clearDropZones:function(){this.dropZones=new Array()
1101 },registerDraggable:function(a){this.draggables[this.draggables.length]=a;
1102 var b=a.getMouseDownHTMLElement();
1103 if(b!=null){b.ricoDraggable=a;
1104 Rico.eventBind(b,"mousedown",Rico.eventHandle(this,"_attachEvents"));
1105 Rico.eventBind(b,"mousedown",this._mouseDown)
1106 }},clearSelection:function(){for(var a=0;
1107 a<this.currentDragObjects.length;
1108 a++){this.currentDragObjects[a].deselect()
1109 }this.currentDragObjects=new Array();
1110 this.lastSelectedDraggable=null
1111 },hasSelection:function(){return this.currentDragObjects.length>0
1112 },setStartDragFromElement:function(a,c){this.origPos=Rico.cumulativeOffset(c);
1113 var b=Rico.eventClient(a);
1114 this.startx=b.x-this.origPos.left;
1115 this.starty=b.y-this.origPos.top;
1116 this.interestedInMotionEvents=this.hasSelection();
1117 Rico.eventStop(a)
1118 },updateSelection:function(a,b){if(!b){this.clearSelection()
1119 }if(a.isSelected()){this.currentDragObjects=this.currentDragObjects.without(a);
1120 a.deselect();
1121 if(a==this.lastSelectedDraggable){this.lastSelectedDraggable=null
1122 }}else{a.select();
1123 if(a.isSelected()){this.currentDragObjects.push(a);
1124 this.lastSelectedDraggable=a
1125 }}},_mouseDownHandler:function(f){if(!Rico.eventLeftClick(f)){return
1126 }var d=Rico.eventElement(f);
1127 var a=d.ricoDraggable;
1128 var c=d;
1129 while(a==null&&c.parentNode){c=c.parentNode;
1130 a=c.ricoDraggable
1131 }if(a==null){return
1132 }this.updateSelection(a,f.ctrlKey);
1133 if(this.hasSelection()){for(var b=0;
1134 b<this.dropZones.length;
1135 b++){this.dropZones[b].clearPositionCache()
1136 }}this.setStartDragFromElement(f,a.getMouseDownHTMLElement())
1137 },_mouseMoveHandler:function(a){if(!this.interestedInMotionEvents){return
1138 }if(!this.hasSelection()){return
1139 }if(!this.currentDragObjectVisible){this._startDrag(a)
1140 }if(!this.activatedDropZones){this._activateRegisteredDropZones()
1141 }this._updateDraggableLocation(a);
1142 this._updateDropZonesHover(a);
1143 Rico.eventStop(a)
1144 },_makeDraggableObjectVisible:function(b){if(!this.hasSelection()){return
1145 }var a;
1146 if(this.currentDragObjects.length>1){a=this.currentDragObjects[0].getMultiObjectDragGUI(this.currentDragObjects)
1147 }else{a=this.currentDragObjects[0].getSingleObjectDragGUI()
1148 }this.dragElemPosition=Rico.getStyle(a,"position");
1149 if(this.dragElemPosition!="absolute"){a.style.position="absolute"
1150 }if(a.parentNode==null||a.parentNode.nodeType==11){document.body.appendChild(a)
1151 }this.dragElement=a;
1152 this._updateDraggableLocation(b);
1153 this.currentDragObjectVisible=true
1154 },_leftOffset:function(a){return a.offsetX?document.body.scrollLeft:0
1155 },_topOffset:function(a){return a.offsetY?document.body.scrollTop:0
1156 },_updateDraggableLocation:function(b){var a=this.dragElement.style;
1157 var c=Rico.eventClient(b);
1158 a.left=(c.x+this._leftOffset(b)-this.startx)+"px";
1159 a.top=(c.y+this._topOffset(b)-this.starty)+"px"
1160 },_updateDropZonesHover:function(b){var a,c=this.dropZones.length;
1161 for(a=0;
1162 a<c;
1163 a++){if(!this._mousePointInDropZone(b,this.dropZones[a])){this.dropZones[a].hideHover()
1164 }}for(a=0;
1165 a<c;
1166 a++){if(this._mousePointInDropZone(b,this.dropZones[a])){if(this.dropZones[a].canAccept(this.currentDragObjects)){this.dropZones[a].showHover()
1167 }}}},_startDrag:function(b){for(var a=0;
1168 a<this.currentDragObjects.length;
1169 a++){this.currentDragObjects[a].startDrag()
1170 }this._makeDraggableObjectVisible(b)
1171 },_mouseUpHandler:function(b){if(!this.hasSelection()){return
1172 }if(!Rico.eventLeftClick(b)){return
1173 }this.interestedInMotionEvents=false;
1174 if(this._placeDraggableInDropZone(b)){this._completeDropOperation(b)
1175 }else{if(this.dragElement!=null){Rico.eventStop(b);
1176 var a=this;
1177 Rico.animate(this.dragElement,{duration:300,onEnd:function(){a._doCancelDragProcessing()
1178 }},{left:this.origPos.left,top:this.origPos.top})
1179 }}Rico.eventUnbind(document.body,"mousemove",this._mouseMove);
1180 Rico.eventUnbind(document.body,"mouseup",this._mouseUp)
1181 },_retTrue:function(){return true
1182 },_completeDropOperation:function(a){if(this.dragElement!=this.currentDragObjects[0].getMouseDownHTMLElement()){if(this.dragElement.parentNode!=null){this.dragElement.parentNode.removeChild(this.dragElement)
1183 }}this._deactivateRegisteredDropZones();
1184 this._endDrag();
1185 this.clearSelection();
1186 this.dragElement=null;
1187 this.currentDragObjectVisible=false;
1188 Rico.eventStop(a)
1189 },_doCancelDragProcessing:function(){this._cancelDrag();
1190 if(this.dragElement==this.currentDragObjects[0].getMouseDownHTMLElement()){this.dragElement.style.position=this.dragElemPosition
1191 }else{if(this.dragElement&&this.dragElement.parentNode!=null){this.dragElement.parentNode.removeChild(this.dragElement)
1192 }}this._deactivateRegisteredDropZones();
1193 this.dragElement=null;
1194 this.currentDragObjectVisible=false
1195 },_placeDraggableInDropZone:function(c){var a=false;
1196 var d=this.dropZones.length;
1197 for(var b=0;
1198 b<d;
1199 b++){if(this._mousePointInDropZone(c,this.dropZones[b])){if(this.dropZones[b].canAccept(this.currentDragObjects)){this.dropZones[b].hideHover();
1200 this.dropZones[b].accept(this.currentDragObjects);
1201 a=true;
1202 break
1203 }}}return a
1204 },_cancelDrag:function(){for(var a=0;
1205 a<this.currentDragObjects.length;
1206 a++){this.currentDragObjects[a].cancelDrag()
1207 }},_endDrag:function(){for(var a=0;
1208 a<this.currentDragObjects.length;
1209 a++){this.currentDragObjects[a].endDrag()
1210 }},_mousePointInDropZone:function(b,c){var a=c.getAbsoluteRect();
1211 var d=Rico.eventClient(b);
1212 return d.x>a.left+this._leftOffset(b)&&d.x<a.right+this._leftOffset(b)&&d.y>a.top+this._topOffset(b)&&d.y<a.bottom+this._topOffset(b)
1213 },_activateRegisteredDropZones:function(){var c=this.dropZones.length;
1214 for(var a=0;
1215 a<c;
1216 a++){var b=this.dropZones[a];
1217 if(b.canAccept(this.currentDragObjects)){b.activate()
1218 }}this.activatedDropZones=true
1219 },_deactivateRegisteredDropZones:function(){var b=this.dropZones.length;
1220 for(var a=0;
1221 a<b;
1222 a++){this.dropZones[a].deactivate()
1223 }this.activatedDropZones=false
1224 },_attachEvents:function(){Rico.eventBind(document.body,"mousemove",this._mouseMove);
1225 Rico.eventBind(document.body,"mouseup",this._mouseUp)
1226 }};
1227 Rico.Draggable=function(a,b){this.initialize(a,b)
1228 };
1229 Rico.Draggable.prototype={initialize:function(a,b){this.type=a;
1230 this.htmlElement=Rico.$(b);
1231 this.selected=false
1232 },getMouseDownHTMLElement:function(){return this.htmlElement
1233 },select:function(){this._select()
1234 },_select:function(){this.selected=true;
1235 if(this.showingSelected){return
1236 }this.showingSelected=true;
1237 var b=this.getMouseDownHTMLElement();
1238 var a=Rico.Color.createColorFromBackground(b);
1239 a.isBright()?a.darken(0.033):a.brighten(0.033);
1240 this.saveBackground=Rico.getStyle(b,"backgroundColor","background-color");
1241 b.style.backgroundColor=a.asHex()
1242 },deselect:function(){this.selected=false;
1243 if(!this.showingSelected){return
1244 }var a=this.getMouseDownHTMLElement();
1245 a.style.backgroundColor=this.saveBackground;
1246 this.showingSelected=false
1247 },isSelected:function(){return this.selected
1248 },startDrag:function(){},cancelDrag:function(){},endDrag:function(){},getSingleObjectDragGUI:function(){return this.htmlElement
1249 },getMultiObjectDragGUI:function(a){return this.htmlElement
1250 },getDroppedGUI:function(){return this.htmlElement
1251 },toString:function(){return this.type+":"+this.htmlElement+":"
1252 }};
1253 Rico.LiveGridDraggable=function(b,a,c){this.initialize(b,a,c)
1254 };
1255 Rico.LiveGridDraggable.prototype=Rico.extend(new Rico.Draggable(),{initialize:function(b,a,c){this.type="RicoCell";
1256 this.htmlElement=b.cell(a,c);
1257 this.liveGrid=b;
1258 this.dragRow=a;
1259 this.dragCol=c
1260 },select:function(){if(this.dragRow>=this.liveGrid.buffer.totalRows){return
1261 }this.selected=true;
1262 this.showingSelected=true
1263 },deselect:function(){this.selected=false;
1264 this.showingSelected=false
1265 },getSingleObjectDragGUI:function(){var a=document.createElement("div");
1266 a.className="LiveGridDraggable";
1267 a.style.width=(this.htmlElement.offsetWidth-10)+"px";
1268 a.innerHTML=this.htmlElement.innerHTML;
1269 return a
1270 }});
1271 Rico.Dropzone=function(a){this.initialize(a)
1272 };
1273 Rico.Dropzone.prototype={initialize:function(a){this.htmlElement=Rico.$(a);
1274 this.absoluteRect=null
1275 },getHTMLElement:function(){return this.htmlElement
1276 },clearPositionCache:function(){this.absoluteRect=null
1277 },getAbsoluteRect:function(){if(this.absoluteRect==null){var a=this.getHTMLElement();
1278 var b=Rico.viewportOffset(a);
1279 this.absoluteRect={top:b.top,left:b.left,bottom:b.top+a.offsetHeight,right:b.left+a.offsetWidth}
1280 }return this.absoluteRect
1281 },activate:function(){var c=this.getHTMLElement();
1282 if(c==null||this.showingActive){return
1283 }this.showingActive=true;
1284 this.saveBackgroundColor=c.style.backgroundColor;
1285 var b="#ffea84";
1286 var a=Rico.Color.createColorFromBackground(c);
1287 if(a==null){c.style.backgroundColor=b
1288 }else{a.isBright()?a.darken(0.2):a.brighten(0.2);
1289 c.style.backgroundColor=a.asHex()
1290 }},deactivate:function(){var a=this.getHTMLElement();
1291 if(a==null||!this.showingActive){return
1292 }a.style.backgroundColor=this.saveBackgroundColor;
1293 this.showingActive=false;
1294 this.saveBackgroundColor=null
1295 },showHover:function(){var a=this.getHTMLElement();
1296 if(a==null||this.showingHover){return
1297 }this.saveBorderWidth=a.style.borderWidth;
1298 this.saveBorderStyle=a.style.borderStyle;
1299 this.saveBorderColor=a.style.borderColor;
1300 this.showingHover=true;
1301 a.style.borderWidth="1px";
1302 a.style.borderStyle="solid";
1303 a.style.borderColor="#ffff00"
1304 },hideHover:function(){var a=this.getHTMLElement();
1305 if(a==null||!this.showingHover){return
1306 }a.style.borderWidth=this.saveBorderWidth;
1307 a.style.borderStyle=this.saveBorderStyle;
1308 a.style.borderColor=this.saveBorderColor;
1309 this.showingHover=false
1310 },canAccept:function(a){return true
1311 },accept:function(b){var d=this.getHTMLElement();
1312 if(d==null){return
1313 }var e=b.length;
1314 for(var a=0;
1315 a<e;
1316 a++){var c=b[a].getDroppedGUI();
1317 if(Rico.getStyle(c,"position")=="absolute"){c.style.position="static";
1318 c.style.top="";
1319 c.style.top=""
1320 }d.appendChild(c)
1321 }}};
1322 Rico.KeywordSearch=function(b,a){this.initialize(b,a)
1323 };
1324 Rico.KeywordSearch.prototype={initialize:function(b,a){this.id=b;
1325 Rico.extend(this,new Rico.Window(Rico.getPhraseById("keywordTitle"),a));
1326 Rico.addClass(this.content,"ricoKeywordSearch");
1327 Rico.extend(this.options,{listLength:10,maxSuggest:20,width:"12em"})
1328 },atLoad:function(){this.searchField=Rico.createFormField(this.contentDiv,"input","text",this.id+"_search");
1329 this.searchField.style.display="block";
1330 this.searchField.style.width=this.options.width;
1331 Rico.eventBind(this.searchField,"keyup",Rico.eventHandle(this,"filterKeypress"),false);
1332 this.selectList=Rico.createFormField(this.contentDiv,"select",null,this.id+"_list");
1333 this.selectList.size=this.options.listLength;
1334 this.selectList.style.display="block";
1335 this.selectList.style.width=this.options.width;
1336 Rico.eventBind(this.selectList,"change",Rico.eventHandle(this,"listClick"),false);
1337 this.close=this.closePopup;
1338 this.close()
1339 },open:function(a,b){this.column=b;
1340 this.grid=this.column.liveGrid;
1341 this.searchField.value="";
1342 this.selectList.options.length=0;
1343 this.openPopup();
1344 this.searchField.focus();
1345 this.selectValuesRequest("")
1346 },selectValuesRequest:function(c){var d=this.column.index;
1347 var b={};
1348 Rico.extend(b,this.grid.buffer.ajaxOptions);
1349 b.parameters={id:this.grid.tableId,offset:"0",page_size:this.options.maxSuggest,edit:d};
1350 b.parameters[this.grid.actionId]="query";
1351 if(c!=""&&c!="*"){if(c.indexOf("*")==-1){c="*"+c+"*"
1352 }b.parameters["f[1][op]"]="LIKE";
1353 b.parameters["f[1][len]"]=1;
1354 b.parameters["f[1][0]"]=c
1355 }var a=this;
1356 b.onComplete=function(e){a.selectValuesUpdate(e)
1357 };
1358 new Rico.ajaxRequest(this.grid.buffer.dataSource,b)
1359 },selectValuesUpdate:function(b){var a=b.responseXML.getElementsByTagName("ajax-response");
1360 Rico.log("selectValuesUpdate: "+b.status);
1361 if(a==null||a.length!=1){return
1362 }a=a[0];
1363 var h=a.getElementsByTagName("error");
1364 if(h.length>0){var f=Rico.getContentAsString(h[0],this.grid.buffer.isEncoded);
1365 Rico.log("Data provider returned an error:\n"+f);
1366 alert(Rico.getPhraseById("requestError",f));
1367 return null
1368 }this.selectList.options.length=0;
1369 a=a.getElementsByTagName("response")[0];
1370 var g=a.getElementsByTagName("rows")[0];
1371 var j=this.grid.buffer.dom2jstable(g);
1372 Rico.log("selectValuesUpdate: id="+this.selectList.id+" rows="+j.length);
1373 for(var d=0;
1374 d<j.length;
1375 d++){if(j[d].length>0){var e=j[d][0];
1376 var c=(j[d].length>1)?j[d][1]:e;
1377 Rico.addSelectOption(this.selectList,e,c)
1378 }}},filterKeypress:function(c){var a=Rico.eventElement(c);
1379 if(typeof this.lastKeyFilter!="string"){this.lastKeyFilter=""
1380 }if(this.lastKeyFilter==a.value){return
1381 }var b=a.value;
1382 Rico.log("filterKeypress: "+this.index+" "+b);
1383 this.lastKeyFilter=b;
1384 this.selectValuesRequest(b)
1385 },listClick:function(c){var b=Rico.eventElement(c);
1386 if(b.tagName.toLowerCase()!="select"){return
1387 }if(this.returnValue){var a=b.options[b.selectedIndex];
1388 this.returnValue(a.value,a.innerHTML)
1389 }this.close()
1390 }};
1391 Rico.TreeControl=function(c,b,a){this.initialize(c,b,a)
1392 };
1393 Rico.TreeControl.prototype={initialize:function(c,b,a){Rico.extend(this,new Rico.Popup());
1394 Rico.extend(this.options,{ignoreClicks:true,nodeIdDisplay:"none",showCheckBox:false,showFolders:false,showPlusMinus:true,showLines:true,defaultAction:Rico.eventHandle(this,"nodeClick"),height:"300px",width:"300px",leafIcon:"rico-icon rico-doc"});
1395 Rico.extend(this.options,a||{});
1396 this.id=c;
1397 this.dataSource=b;
1398 this.close=this.closePopup;
1399 this.hoverSet=new Rico.HoverSet([])
1400 },atLoad:function(){this.treeDiv=document.createElement("div");
1401 this.treeDiv.id=this.id;
1402 this.treeDiv.className="ricoTree";
1403 if(Rico.theme.treeContent){Rico.addClass(this.treeDiv,Rico.theme.treeContent)
1404 }this.treeDiv.style.height=this.options.height;
1405 this.treeDiv.style.width=this.options.width;
1406 this.createContainer();
1407 this.content.className=Rico.theme.tree||"ricoTreeContainer";
1408 this.content.appendChild(this.treeDiv);
1409 if(this.options.showCheckBox){this.buttonDiv=document.createElement("div");
1410 this.buttonDiv.style.width=this.options.width;
1411 this.buttonDiv.className="ricoTreeButtons";
1412 if(Rico.getStyle(this.container,"position")=="absolute"){var a=document.createElement("span");
1413 a.innerHTML=RicoTranslate.getPhraseById("treeSave");
1414 Rico.setStyle(a,{"float":"left",cursor:"pointer"});
1415 this.buttonDiv.appendChild(a);
1416 Rico.eventBind(a,"click",Rico.eventHandle(this,"saveSelection"))
1417 }var a=document.createElement("span");
1418 a.innerHTML=RicoTranslate.getPhraseById("treeClear");
1419 Rico.setStyle(a,{"float":"right",cursor:"pointer"});
1420 this.buttonDiv.appendChild(a);
1421 this.content.appendChild(this.buttonDiv);
1422 Rico.eventBind(a,"click",Rico.eventHandle(this,"clrCheckBoxEvent"))
1423 }this.close()
1424 },setTreeDiv:function(a){this.treeDiv=Rico.$(a);
1425 this.openPopup=function(){}
1426 },open:function(){this.openPopup();
1427 if(this.treeDiv.childNodes.length==0&&this.dataSource){this.loadXMLDoc()
1428 }},loadXMLDoc:function(c){var b={id:this.id};
1429 if(c){b.Parent=c
1430 }Rico.log("Tree loadXMLDoc: "+this.id);
1431 var a=this;
1432 new Rico.ajaxRequest(this.dataSource,{parameters:b,method:"get",onComplete:function(d){a.processResponse(d)
1433 }})
1434 },domID:function(b,a){return"RicoTree_"+a+"_"+this.id+"_"+b
1435 },processResponse:function(d){var b=d.responseXML.getElementsByTagName("ajax-response");
1436 if(b==null||b.length!=1){return
1437 }var f=b[0].getElementsByTagName("rows")[0];
1438 var g=f.getElementsByTagName("tr");
1439 var k=[];
1440 for(var e=0;
1441 e<g.length;
1442 e++){var l=g[e].getElementsByTagName("td");
1443 if(l.length<5){continue
1444 }var h=[];
1445 h[5]=this.options.leafIcon;
1446 for(var c=0;
1447 c<l.length;
1448 c++){h[c]=Rico.getContentAsString(l[c],true)
1449 }h[3]=h[3].match(/^0|L$/i)?0:1;
1450 h[4]=parseInt(h[4]);
1451 k.push(h)
1452 }for(var e=0;
1453 e<k.length;
1454 e++){var a=(e<k.length-1)&&(k[e][0]==k[e+1][0]);
1455 this.addNode(k[e][0],k[e][1],k[e][2],k[e][3],k[e][4],k[e][5],!a)
1456 }},addNode:function(q,l,t,f,u,s,k){var h=Rico.$(this.domID(q,"Parent"));
1457 var v=Rico.$(this.domID(q,"Children"));
1458 var a=h?h.TreeLevel+1:0;
1459 var b=document.createElement("table");
1460 var m=document.createElement("div");
1461 m.id=this.domID(l,"Children");
1462 m.className="ricoTreeBranch";
1463 m.style.display=h?"none":"";
1464 b.border=0;
1465 b.cellSpacing=0;
1466 b.cellPadding=0;
1467 b.id=this.domID(l,"Parent");
1468 b.TreeLevel=a;
1469 b.TreeContainer=f;
1470 b.TreeFetchedChildren=this.dataSource?false:true;
1471 var d=b.insertRow(0);
1472 var g=[];
1473 for(var r=0;
1474 r<a-1;
1475 r++){g[r]=d.insertCell(-1)
1476 }if(a>1){var e=h.getElementsByTagName("td");
1477 for(var r=0;
1478 r<a-2;
1479 r++){g[r].innerHTML=e[r].innerHTML
1480 }var w=document.createElement("div");
1481 w.className="rico-icon rico-tree-"+(v.nextSibling&&this.options.showLines?"nodeline":"nodeblank");
1482 g[a-2].appendChild(w)
1483 }if(a>0){var c=k&&this.options.showLines?"last":"";
1484 var o=this.options.showLines?"node":"";
1485 if(this.options.showPlusMinus&&f){var w=document.createElement("div");
1486 w.name=l;
1487 w.style.cursor="pointer";
1488 Rico.eventBind(w,"click",Rico.eventHandle(this,"clickBranch"));
1489 w.className="rico-icon rico-tree-"+o+"p"+c;
1490 d.insertCell(-1).appendChild(w)
1491 }else{if(this.options.showLines){var w=document.createElement("div");
1492 w.className="rico-icon rico-tree-node"+c;
1493 d.insertCell(-1).appendChild(w)
1494 }}if(this.options.showFolders&&(f||(s&&s!="none"))){var w=document.createElement("div");
1495 if(!f){w.className=s
1496 }else{w.name=l;
1497 w.style.cursor="pointer";
1498 Rico.eventBind(w,"click",Rico.eventHandle(this,"clickBranch"));
1499 w.className="rico-icon rico-folderclosed"
1500 }d.insertCell(-1).appendChild(w)
1501 }}if(u&&this.options.showCheckBox){var n=document.createElement("input");
1502 n.type="checkbox";
1503 n.value=l;
1504 d.insertCell(-1).appendChild(n)
1505 }if(u&&!this.options.showCheckBox){var p=document.createElement("a");
1506 if(typeof u=="string"){p.href=u
1507 }else{p.href="javascript:void(0)";
1508 Rico.eventBind(p,"click",this.options.defaultAction)
1509 }this.hoverSet.add(p)
1510 }else{var p=document.createElement("p")
1511 }p.id=this.domID(l,"Desc");
1512 p.className="ricoTreeLevel"+a;
1513 switch(this.options.nodeIdDisplay){case"last":t+=" ("+l+")";
1514 break;
1515 case"first":t=l+" - "+t;
1516 break;
1517 case"tooltip":p.title=l;
1518 break
1519 }p.appendChild(document.createTextNode(t));
1520 d.insertCell(-1).appendChild(p);
1521 var j=v||this.treeDiv;
1522 j.appendChild(b);
1523 j.appendChild(m)
1524 },nodeClick:function(c){var b=Rico.eventElement(c);
1525 if(this.returnValue){var a=this.domID("","Desc");
1526 this.returnValue(b.id.substr(a.length),b.innerHTML)
1527 }this.close()
1528 },saveSelection:function(a){if(this.returnValue){this.returnValue(this.getCheckedItems())
1529 }this.close()
1530 },getCheckedItems:function(){var b=this.treeDiv.getElementsByTagName("input");
1531 var c=[];
1532 for(var a=0;
1533 a<b.length;
1534 a++){if(b[a].type=="checkbox"&&b[a].checked){c.push(b[a].value)
1535 }}return c
1536 },setCheckBoxes:function(c){var b=this.treeDiv.getElementsByTagName("input");
1537 for(var a=0;
1538 a<b.length;
1539 a++){if(b[a].type=="checkbox"){b[a].checked=c
1540 }}},clrCheckBoxEvent:function(a){Rico.eventStop(a);
1541 this.setCheckBoxes(false)
1542 },clickBranch:function(h){var g=Rico.eventElement(h);
1543 var f=Rico.getParentByTagName(g,"table");
1544 if(!f||!f.TreeContainer){return
1545 }var c=f.id.split("_");
1546 c[1]="Children";
1547 var b=Rico.$(c.join("_"));
1548 Rico.toggle(b);
1549 if(g.tagName=="DIV"){var d=Rico.visible(b);
1550 if(g.className.match(/node(p|m)(last)?$/)){g.className=g.className.replace(/nodep|nodem/,"node"+(d?"m":"p"))
1551 }else{if(g.className.match(/folder(open|closed)$/)){g.className=g.className.replace(/folder(open|closed)/,"folder"+(d?"open":"closed"))
1552 }else{if(g.className.match(/\b(m|p)$/)){g.className=g.className.replace(/(p|m)$/,d?"m":"p")
1553 }}}}if(!f.TreeFetchedChildren){f.TreeFetchedChildren=1;
1554 this.loadXMLDoc(g.name)
1555 }}};
1556 if(typeof Rico=="undefined"){throw ("GridCommon requires the Rico JavaScript framework")
1557 }Rico.GridCommon={baseInit:function(){this.options={saveColumnInfo:{width:true,filter:false,sort:false},cookiePrefix:"RicoGrid.",allowColResize:true,windowResize:true,click:null,dblclick:null,contextmenu:null,menuEvent:"dblclick",defaultWidth:-1,scrollBarWidth:19,minScrollWidth:100,frozenColumns:0,exportWindow:"height=400,width=500,scrollbars=1,menubar=1,resizable=1,location=0,toolbar=0,status=0",exportStyleList:["background-color","color","text-align","font-weight","font-size","font-family"],exportImgTags:false,exportFormFields:true,FilterLocation:null,FilterAllToken:"___ALL___",columnSpecs:[]};
1558 this.colWidths=[];
1559 this.hdrCells=[];
1560 this.headerColCnt=0;
1561 this.headerRowIdx=0;
1562 this.tabs=new Array(2);
1563 this.thead=new Array(2);
1564 this.tbody=new Array(2)
1565 },attachMenuEvents:function(){var a;
1566 if(!this.options.menuEvent||this.options.menuEvent=="none"){return
1567 }this.hideScroll=navigator.userAgent.match(/Macintosh\b.*\b(Firefox|Camino)\b/i)||(Rico.isOpera&&parseFloat(window.opera.version())<9.5);
1568 this.options[this.options.menuEvent]=Rico.eventHandle(this,"handleMenuClick");
1569 if(this.highlightDiv){switch(this.options.highlightElem){case"cursorRow":this.attachMenu(this.highlightDiv[0]);
1570 break;
1571 case"cursorCell":for(a=0;
1572 a<2;
1573 a++){this.attachMenu(this.highlightDiv[a])
1574 }break
1575 }}for(a=0;
1576 a<2;
1577 a++){this.attachMenu(this.tbody[a])
1578 }},attachMenu:function(a){if(this.options.click){Rico.eventBind(a,"click",this.options.click,false)
1579 }if(this.options.dblclick){if(Rico.isWebKit||Rico.isOpera){Rico.eventBind(a,"click",Rico.eventHandle(this,"handleDblClick"),false)
1580 }else{Rico.eventBind(a,"dblclick",this.options.dblclick,false)
1581 }}if(this.options.contextmenu){if(Rico.isOpera||Rico.isKonqueror){Rico.eventBind(a,"click",Rico.eventHandle(this,"handleContextMenu"),false)
1582 }else{Rico.eventBind(a,"contextmenu",this.options.contextmenu,false)
1583 }}},handleDblClick:function(b){var a=Rico.eventElement(b);
1584 if(this.dblClickElem==a){this.options.dblclick(b)
1585 }else{this.dblClickElem=a;
1586 this.safariTimer=Rico.runLater(300,this,"clearDblClick")
1587 }},clearDblClick:function(){this.dblClickElem=null
1588 },handleContextMenu:function(c){var a;
1589 if(typeof(c.which)=="number"){a=c.which
1590 }else{if(typeof(c.button)=="number"){a=c.button
1591 }else{return
1592 }}if(a==1&&c.ctrlKey){this.options.contextmenu(c)
1593 }},cancelMenu:function(){if(this.menu){this.menu.cancelmenu()
1594 }},getColumnInfo:function(f){Rico.log("getColumnInfo: len="+f.length);
1595 if(f.length==0){return 0
1596 }this.headerRowCnt=f.length;
1597 var d,h,e;
1598 for(d=0;
1599 d<this.headerRowCnt;
1600 d++){var b=f[d];
1601 var a=b.cells;
1602 if(d>=this.hdrCells.length){this.hdrCells[d]=[]
1603 }for(h=0;
1604 h<a.length;
1605 h++){var g={};
1606 g.cell=a[h];
1607 g.colSpan=a[h].colSpan||1;
1608 if(this.options.defaultWidth<0){g.initWidth=a[h].offsetWidth
1609 }this.hdrCells[d].push(g)
1610 }if(b.id.slice(-5)=="_main"){e=this.hdrCells[d].length;
1611 this.headerRowIdx=d
1612 }}if(!e){this.headerRowIdx=this.headerRowCnt-1;
1613 e=this.hdrCells[this.headerRowIdx].length
1614 }Rico.log("getColumnInfo: colcnt="+e);
1615 return e
1616 },addHeadingRow:function(g){var a=this.headerRowCnt++;
1617 this.hdrCells[a]=[];
1618 for(var e=0;
1619 e<2;
1620 e++){var k=this.thead[e].insertRow(-1);
1621 var f="ricoLG_hdg "+this.tableId+"_hdg"+a;
1622 if(g){f+=" "+g
1623 }k.className=f;
1624 var b=e==0?this.options.frozenColumns:this.headerColCnt-this.options.frozenColumns;
1625 for(var j=0;
1626 j<b;
1627 j++){var d=k.insertCell(-1);
1628 var i=Rico.wrapChildren(d,"ricoLG_col");
1629 Rico.wrapChildren(i,"ricoLG_cell");
1630 this.hdrCells[a].push({cell:d,colSpan:1})
1631 }}return a
1632 },createColumnArray:function(b){this.direction=Rico.getStyle(this.outerDiv,"direction").toLowerCase();
1633 this.align=this.direction=="rtl"?["right","left"]:["left","right"];
1634 Rico.log("createColumnArray: dir="+this.direction);
1635 this.columns=[];
1636 for(var e=0;
1637 e<this.headerColCnt;
1638 e++){Rico.log("createColumnArray: c="+e);
1639 var d=e<this.options.frozenColumns?0:1;
1640 var a=new Rico[b](this,e,this.hdrCells[this.headerRowIdx][e],d);
1641 this.columns.push(a);
1642 if(e>0){this.columns[e-1].next=a
1643 }}this.getCookie();
1644 Rico.runLater(100,this,"insertResizers")
1645 },insertResizers:function(){if(!this.options.allowColResize){return
1646 }for(var a=0;
1647 a<this.columns.length;
1648 a++){this.columns[a].insertResizer()
1649 }},createDivs:function(){Rico.log("createDivs start");
1650 this.outerDiv=this.createDiv("outer");
1651 if(Rico.theme.widget){Rico.addClass(this.outerDiv,Rico.theme.widget)
1652 }if(this.outerDiv.firstChild&&this.outerDiv.firstChild.tagName&&this.outerDiv.firstChild.tagName.toUpperCase()=="TABLE"){this.structTab=this.outerDiv.firstChild;
1653 this.structTabLeft=this.structTab.rows[0].cells[0];
1654 this.structTabUR=this.structTab.rows[0].cells[1];
1655 this.structTabLR=this.structTab.rows[1].cells[0]
1656 }else{this.structTab=document.createElement("table");
1657 this.structTab.border=0;
1658 this.structTab.cellPadding=0;
1659 this.structTab.cellSpacing=0;
1660 var b=this.structTab.insertRow(-1);
1661 b.vAlign="top";
1662 this.structTabLeft=b.insertCell(-1);
1663 this.structTabLeft.rowSpan=2;
1664 var d=this.structTab.insertRow(-1);
1665 d.vAlign="top";
1666 this.structTabUR=b.insertCell(-1);
1667 this.structTabLR=d.insertCell(-1);
1668 this.outerDiv.appendChild(this.structTab)
1669 }this.frozenTabs=this.createDiv("frozenTabs",this.structTabLeft);
1670 this.innerDiv=this.createDiv("inner",this.structTabUR);
1671 this.scrollDiv=this.createDiv("scroll",this.structTabLR);
1672 this.resizeDiv=this.createDiv("resize",this.outerDiv,true);
1673 this.messagePopup=new Rico.Popup();
1674 this.messagePopup.createContainer({hideOnEscape:false,hideOnClick:false,parent:this.outerDiv});
1675 this.messagePopup.content.className="ricoLG_messageDiv";
1676 if(Rico.theme.gridMessage){Rico.addClass(this.messagePopup.content,Rico.theme.gridMessage)
1677 }this.keywordPopup=new Rico.Window("",{zIndex:-1,parent:this.outerDiv});
1678 Rico.addClass(this.keywordPopup.container,"ricoLG_keywordDiv");
1679 var a=this.keywordPopup.contentDiv.appendChild(document.createElement("p"));
1680 a.innerHTML=Rico.getPhraseById("keywordPrompt");
1681 this.keywordBox=this.keywordPopup.contentDiv.appendChild(document.createElement("input"));
1682 this.keywordBox.size=20;
1683 Rico.eventBind(this.keywordBox,"keypress",Rico.eventHandle(this,"keywordKey"),false);
1684 this.keywordPopup.contentDiv.appendChild(Rico.floatButton("Checkmark",Rico.eventHandle(this,"processKeyword")));
1685 var c=this.keywordPopup.contentDiv.appendChild(document.createElement("p"));
1686 Rico.setStyle(c,{clear:"both"});
1687 Rico.log("createDivs end")
1688 },keywordKey:function(a){switch(Rico.eventKey(a)){case 27:this.closeKeyword();
1689 Rico.eventStop(a);
1690 return false;
1691 case 13:this.processKeyword();
1692 Rico.eventStop(a);
1693 return false
1694 }return true
1695 },openKeyword:function(a){this.keywordCol=a;
1696 this.keywordBox.value="";
1697 this.keywordPopup.setTitle(this.columns[a].displayName);
1698 this.keywordPopup.centerPopup();
1699 this.keywordBox.focus()
1700 },closeKeyword:function(){this.keywordPopup.closePopup();
1701 this.cancelMenu()
1702 },processKeyword:function(){var a=this.keywordBox.value;
1703 this.closeKeyword();
1704 this.columns[this.keywordCol].setFilterKW(a)
1705 },createDiv:function(c,a,b){var e=this.tableId+"_"+c+"Div";
1706 var d=document.getElementById(e);
1707 if(!d){d=document.createElement("div");
1708 d.id=e;
1709 if(a){a.appendChild(d)
1710 }}d.className="ricoLG_"+c+"Div";
1711 if(b){Rico.hide(d)
1712 }return d
1713 },baseSizeDivs:function(){this.setOtherHdrCellWidths();
1714 if(this.options.frozenColumns){Rico.show(this.tabs[0]);
1715 Rico.show(this.frozenTabs);
1716 this.hdrHt=Math.max(Rico.nan2zero(this.thead[0].offsetHeight),this.thead[1].offsetHeight);
1717 this.dataHt=Math.max(Rico.nan2zero(this.tbody[0].offsetHeight),this.tbody[1].offsetHeight);
1718 this.frzWi=this.borderWidth(this.tabs[0])
1719 }else{Rico.hide(this.tabs[0]);
1720 Rico.hide(this.frozenTabs);
1721 this.frzWi=0;
1722 this.hdrHt=this.thead[1].offsetHeight;
1723 this.dataHt=this.tbody[1].offsetHeight
1724 }var d,b;
1725 var c=this.borderWidth(this.columns[0].dataCell);
1726 Rico.log("baseSizeDivs "+this.tableId+": hdrHt="+this.hdrHt+" dataHt="+this.dataHt);
1727 Rico.log(this.tableId+" frzWi="+this.frzWi+" borderWi="+c);
1728 for(b=0;
1729 b<this.options.frozenColumns;
1730 b++){if(this.columns[b].visible){this.frzWi+=parseInt(this.columns[b].colWidth,10)+c
1731 }}this.scrTabWi=this.borderWidth(this.tabs[1]);
1732 this.scrTabWi0=this.scrTabWi;
1733 Rico.log("scrTabWi: "+this.scrTabWi);
1734 for(b=this.options.frozenColumns;
1735 b<this.columns.length;
1736 b++){if(this.columns[b].visible){this.scrTabWi+=parseInt(this.columns[b].colWidth,10)+c
1737 }}this.scrWi=this.scrTabWi+this.options.scrollBarWidth;
1738 if(this.sizeTo=="parent"){if(Rico.isIE){Rico.hide(this.outerDiv)
1739 }d=this.outerDiv.parentNode.offsetWidth;
1740 if(Rico.isIE){Rico.show(this.outerDiv)
1741 }}else{d=Rico.windowWidth()-this.options.scrollBarWidth-8
1742 }if(this.outerDiv.parentNode.clientWidth>0){d=Math.min(this.outerDiv.parentNode.clientWidth,d)
1743 }var a=this.frzWi+this.scrWi-d;
1744 Rico.log("baseSizeDivs "+this.tableId+": scrWi="+this.scrWi+" wiLimit="+d+" overage="+a+" clientWidth="+this.outerDiv.parentNode.clientWidth);
1745 if(a>0&&this.options.frozenColumns<this.columns.length){this.scrWi=Math.max(this.scrWi-a,this.options.minScrollWidth)
1746 }this.scrollDiv.style.width=this.scrWi+"px";
1747 this.frozenTabs.style.width=this.frzWi+"px";
1748 this.outerDiv.style.width=(this.frzWi+this.scrWi)+"px"
1749 },borderWidth:function(c){var a=Rico.nan2zero(Rico.getStyle(c,"borderLeftWidth"));
1750 var b=Rico.nan2zero(Rico.getStyle(c,"borderRightWidth"));
1751 Rico.log((c.id||c.tagName)+" borderWidth: L="+a+", R="+b);
1752 return a+b
1753 },setOtherHdrCellWidths:function(){var k,g,f,a,l,b,m,d,e,h;
1754 for(a=0;
1755 a<this.hdrCells.length;
1756 a++){if(a==this.headerRowIdx){continue
1757 }Rico.log("setOtherHdrCellWidths: r="+a);
1758 k=g=0;
1759 while(g<this.headerColCnt&&k<this.hdrCells[a].length){b=this.hdrCells[a][k];
1760 m=b.cell;
1761 d=e=b.colSpan;
1762 for(l=f=0;
1763 f<d;
1764 f++,g++){if(this.columns[g].hdrCell.style.display=="none"){e--
1765 }else{if(this.columns[g].hdrColDiv.style.display!="none"){l+=parseInt(this.columns[g].colWidth,10)
1766 }}}if(!b.hdrColDiv||!b.hdrCellDiv){h=m.getElementsByTagName("div");
1767 b.hdrColDiv=(h.length<1)?Rico.wrapChildren(m,"ricoLG_col"):h[0];
1768 b.hdrCellDiv=(h.length<2)?Rico.wrapChildren(b.hdrColDiv,"ricoLG_cell"):h[1]
1769 }if(e==0){m.style.display="none"
1770 }else{if(l==0){b.hdrColDiv.style.display="none";
1771 m.colSpan=e
1772 }else{m.style.display="";
1773 b.hdrColDiv.style.display="";
1774 m.colSpan=e;
1775 b.hdrColDiv.style.width=l+"px"
1776 }}k++
1777 }}},initFilterImage:function(a){this.filterAnchor=document.getElementById(this.tableId+"_filterLink");
1778 if(!this.filterAnchor){return
1779 }this.filterRows=Rico.select("tr."+this.tableId+"_hdg"+a);
1780 if(this.filterRows.length!=2){return
1781 }for(var c=0,d=[];
1782 c<2;
1783 c++){d[c]=Rico.select(".ricoLG_cell",this.filterRows[c])
1784 }this.filterElements=d[0].concat(d[1]);
1785 this.saveHeight=this.filterElements[0].offsetHeight;
1786 var e=Rico.getStyle(this.filterElements[0],"paddingTop");
1787 var b=Rico.getStyle(this.filterElements[0],"paddingBottom");
1788 if(e){this.saveHeight-=parseInt(e,10)
1789 }if(b){this.saveHeight-=parseInt(b,10)
1790 }this.rowNum=a;
1791 this.setFilterImage(false)
1792 },toggleFilterRow:function(){if(Rico.visible(this.filterRows[0])){this.slideFilterUp()
1793 }else{this.slideFilterDown()
1794 }},setFilterImage:function(b){var a=Rico.getPhraseById((b?"show":"hide")+"FilterRow");
1795 this.filterAnchor.innerHTML='<img src="'+Rico.imgDir+"tableFilter"+(b?"Expand":"Collapse")+'.gif" alt="'+a+'" border="0">'
1796 },cell:function(a,b){return(0<=b&&b<this.columns.length&&a>=0)?this.columns[b].cell(a):null
1797 },availHt:function(){var a=Rico.cumulativeOffset(this.outerDiv);
1798 return Rico.windowHeight()-a.top-2*this.options.scrollBarWidth-15
1799 },setHorizontalScroll:function(){var a=(-this.scrollDiv.scrollLeft)+"px";
1800 this.hdrTabs[1].style.marginLeft=a
1801 },pluginScroll:function(){if(this.scrollPluggedIn){return
1802 }Rico.eventBind(this.scrollDiv,"scroll",this.scrollEventFunc,false);
1803 this.scrollPluggedIn=true
1804 },unplugScroll:function(){Rico.eventUnbind(this.scrollDiv,"scroll",this.scrollEventFunc,false);
1805 this.scrollPluggedIn=false
1806 },hideMsg:function(){this.messagePopup.closePopup()
1807 },showMsg:function(a){this.messagePopup.setContent(a);
1808 this.messagePopup.centerPopup();
1809 Rico.log("showMsg: "+a)
1810 },listInvisible:function(b){var c=[];
1811 for(var a=0;
1812 a<this.columns.length;
1813 a++){if(!this.columns[a].visible){c.push(b?this.columns[a][b]:this.columns[a])
1814 }}return c
1815 },firstVisible:function(){for(var a=0;
1816 a<this.columns.length;
1817 a++){if(this.columns[a].visible){return a
1818 }}return -1
1819 },showAll:function(){var b=this.listInvisible();
1820 for(var a=0;
1821 a<b.length;
1822 a++){b[a].showColumn()
1823 }},chooseColumns:function(){this.menu.cancelmenu();
1824 var a,f,b,e,d,c;
1825 if(!this.columnChooser){Rico.log("creating columnChooser");
1826 f=Rico.getStyle(this.outerDiv.offsetParent,"zIndex");
1827 if(typeof f!="number"){f=0
1828 }this.columnChooser=new Rico.Window(Rico.getPhraseById("gridChooseCols"),{zIndex:f+2,parent:this.outerDiv});
1829 Rico.addClass(this.columnChooser.container,"ricoLG_chooserDiv");
1830 c=this.columnChooser.contentDiv;
1831 for(a=0;
1832 a<this.columns.length;
1833 a++){b=this.columns[a];
1834 e=c.appendChild(document.createElement("div"));
1835 b.ChooserBox=Rico.createFormField(e,"input","checkbox");
1836 d=e.appendChild(document.createElement("span"));
1837 d.innerHTML=b.displayName;
1838 Rico.eventBind(b.ChooserBox,"click",Rico.eventHandle(b,"chooseColumn"),false)
1839 }}Rico.log("opening columnChooser");
1840 this.columnChooser.openPopup(1,this.hdrHt);
1841 for(a=0;
1842 a<this.columns.length;
1843 a++){this.columns[a].ChooserBox.checked=this.columns[a].visible;
1844 this.columns[a].ChooserBox.disabled=!this.columns[a].canHideShow()
1845 }},blankRow:function(a){for(var b=0;
1846 b<this.columns.length;
1847 b++){this.columns[b].clearCell(a)
1848 }},getExportStyles:function(a){var e=this.options.exportStyleList;
1849 var b=Rico.getStyle(a,"backgroundImage");
1850 if(!b||b=="none"){return e
1851 }for(var d=[],c=0;
1852 c<e.length;
1853 c++){if(e[c]!="background-color"&&e[c]!="color"){d.push(e[c])
1854 }}return d
1855 },exportStart:function(){var a,h,f,d,b,e,k,l;
1856 var g=this.getExportStyles(this.thead[0]);
1857 this.exportRows=[];
1858 this.exportText="<html><head></head><body><table border='1' cellspacing='0'>";
1859 for(h=0;
1860 h<this.columns.length;
1861 h++){if(this.columns[h].visible){this.exportText+="<col width='"+parseInt(this.columns[h].colWidth,10)+"'>"
1862 }}this.exportText+="<thead style='display: table-header-group;'>";
1863 if(this.exportHeader){this.exportText+=this.exportHeader
1864 }for(a=0;
1865 a<this.hdrCells.length;
1866 a++){if(this.hdrCells[a].length==0||!Rico.visible(this.hdrCells[a][0].cell.parentNode)){continue
1867 }this.exportText+="<tr>";
1868 for(h=0,f=0;
1869 h<this.hdrCells[a].length;
1870 h++){b=this.hdrCells[a][h];
1871 e=b.colSpan;
1872 for(d=0;
1873 d<b.colSpan;
1874 d++,f++){if(!this.columns[f].visible){e--
1875 }}if(e>0){k=Rico.select(".ricoLG_cell",b.cell);
1876 l=k&&k.length>0?k[0]:b.cell;
1877 this.exportText+="<td style='"+this.exportStyle(l,g)+"'";
1878 if(b.colSpan>1){this.exportText+=" colspan='"+e+"'"
1879 }this.exportText+=">"+Rico.getInnerText(l,!this.options.exportImgTags,!this.options.exportFormFields,"NoExport")+"</td>"
1880 }}this.exportText+="</tr>"
1881 }this.exportText+="</thead><tbody>"
1882 },exportFinish:function(){if(this.hideMsg){this.hideMsg()
1883 }window.status=Rico.getPhraseById("exportComplete");
1884 if(this.exportRows.length>0){this.exportText+="<tr>"+this.exportRows.join("</tr><tr>")+"</tr>"
1885 }if(this.exportFooter){this.exportText+=this.exportFooter
1886 }this.exportText+="</tbody></table></body></html>";
1887 if(this.cancelMenu){this.cancelMenu()
1888 }var a=window.open("","_blank",this.options.exportWindow);
1889 if(a==null){alert(Rico.getPhraseById("disableBlocker"))
1890 }else{a.document.open();
1891 a.document.write(this.exportText);
1892 a.document.close()
1893 }this.exportText=undefined;
1894 this.exportRows=undefined
1895 },exportStyle:function(d,g){for(var b=0,c="";
1896 b<g.length;
1897 b++){try{var a=Rico.getStyle(d,g[b]);
1898 if(a){c+=g[b]+":"+a+";"
1899 }}catch(f){}}return c
1900 },getCookie:function(){var k=Rico.getCookie(this.options.cookiePrefix+this.tableId);
1901 if(!k){return
1902 }var f=k.split(",");
1903 for(var g=0;
1904 g<f.length;
1905 g++){var a=f[g].split(":");
1906 if(a.length!=2){continue
1907 }var h=parseInt(a[0].slice(1),10);
1908 if(h<0||h>=this.columns.length){continue
1909 }var e=this.columns[h];
1910 switch(a[0].charAt(0)){case"w":e.setColWidth(a[1]);
1911 e.customWidth=true;
1912 break;
1913 case"h":if(a[1].toLowerCase()=="true"){e.hideshow(true,true)
1914 }else{e.hideshow(false,true)
1915 }break;
1916 case"s":if(!this.options.saveColumnInfo.sort||!e.sortable){break
1917 }e.setSorted(a[1]);
1918 break;
1919 case"f":if(!this.options.saveColumnInfo.filter||!e.filterable){break
1920 }var d=a[1].split("~");
1921 e.filterOp=d.shift();
1922 e.filterValues=[];
1923 e.filterType=Rico.ColumnConst.USERFILTER;
1924 for(var b=0;
1925 b<d.length;
1926 b++){e.filterValues.push(unescape(d[b]))
1927 }break
1928 }}},setCookie:function(){var d=[];
1929 for(var e=0;
1930 e<this.columns.length;
1931 e++){var c=this.columns[e];
1932 if(this.options.saveColumnInfo.width){if(c.customWidth){d.push("w"+e+":"+c.colWidth)
1933 }if(c.customVisible){d.push("h"+e+":"+c.visible)
1934 }}if(this.options.saveColumnInfo.sort){if(c.currentSort!=Rico.ColumnConst.UNSORTED){d.push("s"+e+":"+c.currentSort)
1935 }}if(this.options.saveColumnInfo.filter&&c.filterType==Rico.ColumnConst.USERFILTER){var b=[c.filterOp];
1936 for(var a=0;
1937 a<c.filterValues.length;
1938 a++){b.push(escape(c.filterValues[a]))
1939 }d.push("f"+e+":"+b.join("~"))
1940 }}Rico.setCookie(this.options.cookiePrefix+this.tableId,d.join(","),this.options.cookieDays,this.options.cookiePath,this.options.cookieDomain)
1941 }};
1942 Rico.ColumnConst={UNFILTERED:0,SYSTEMFILTER:1,USERFILTER:2,UNSORTED:0,SORT_ASC:"ASC",SORT_DESC:"DESC",MINWIDTH:10,DOLLAR:{type:"number",prefix:"$",decPlaces:2,ClassName:"alignright"},EURO:{type:"number",prefix:"&euro;",decPlaces:2,ClassName:"alignright"},PERCENT:{type:"number",suffix:"%",decPlaces:2,multiplier:100,ClassName:"alignright"},QTY:{type:"number",decPlaces:0,ClassName:"alignright"},DEFAULT:{type:"showTags"}};
1943 Rico.TableColumnBase=function(){};
1944 Rico.TableColumnBase.prototype={baseInit:function(h,g,e,d){Rico.log("TableColumnBase.init index="+g+" tabIdx="+d);
1945 this.liveGrid=h;
1946 this.index=g;
1947 this.hideWidth=Rico.isKonqueror||Rico.isWebKit||h.headerRowCnt>1?5:2;
1948 this.options=h.options;
1949 this.tabIdx=d;
1950 this.hdrCell=e.cell;
1951 this.body=document.getElementsByTagName("body")[0];
1952 this.displayName=this.getDisplayName(this.hdrCell);
1953 var c=this.hdrCell.getElementsByTagName("div");
1954 this.hdrColDiv=(c.length<1)?Rico.wrapChildren(this.hdrCell,"ricoLG_col"):c[0];
1955 this.hdrCellDiv=(c.length<2)?Rico.wrapChildren(this.hdrColDiv,"ricoLG_cell"):c[1];
1956 var f=d==0?g:g-h.options.frozenColumns;
1957 this.dataCell=h.tbody[d].rows[0].cells[f];
1958 c=this.dataCell.getElementsByTagName("div");
1959 this.dataColDiv=(c.length<1)?Rico.wrapChildren(this.dataCell,"ricoLG_col"):c[0];
1960 this.mouseDownHandler=Rico.eventHandle(this,"handleMouseDown");
1961 this.mouseMoveHandler=Rico.eventHandle(this,"handleMouseMove");
1962 this.mouseUpHandler=Rico.eventHandle(this,"handleMouseUp");
1963 this.mouseOutHandler=Rico.eventHandle(this,"handleMouseOut");
1964 this.fieldName="col"+this.index;
1965 var b=h.options.columnSpecs[g];
1966 this.format=Rico.extend({},Rico.ColumnConst.DEFAULT);
1967 switch(typeof b){case"object":if(typeof b.format=="string"){Rico.extend(this.format,Rico.ColumnConst[b.format.toUpperCase()])
1968 }Rico.extend(this.format,b);
1969 break;
1970 case"string":if(b.slice(0,4)=="spec"){b=b.slice(4).toUpperCase()
1971 }if(typeof Rico.ColumnConst[b]=="object"){Rico.extend(this.format,Rico.ColumnConst[b])
1972 }break
1973 }Rico.addClass(this.dataColDiv,this.colClassName());
1974 this.visible=true;
1975 if(typeof this.format.visible=="boolean"){this.visible=this.format.visible
1976 }Rico.log("TableColumn.init index="+g+" fieldName="+this.fieldName);
1977 this.sortable=typeof this.format.canSort=="boolean"?this.format.canSort:h.options.canSortDefault;
1978 this.currentSort=Rico.ColumnConst.UNSORTED;
1979 this.filterable=typeof this.format.canFilter=="boolean"?this.format.canFilter:h.options.canFilterDefault;
1980 this.filterType=Rico.ColumnConst.UNFILTERED;
1981 this.hideable=typeof this.format.canHide=="boolean"?this.format.canHide:h.options.canHideDefault;
1982 var a;
1983 switch(typeof this.format.width){case"number":a=this.format.width;
1984 break;
1985 case"string":a=parseInt(this.format.width,10);
1986 break;
1987 default:a=e.initWidth;
1988 break
1989 }a=(typeof(a)=="number")?Math.max(a,Rico.ColumnConst.MINWIDTH):h.options.defaultWidth;
1990 this.setColWidth(a);
1991 if(!this.visible){this.setDisplay("none")
1992 }},colClassName:function(){return this.format.ClassName?this.format.ClassName:this.liveGrid.tableId+"_col"+this.index
1993 },insertResizer:function(){if(this.format.noResize){return
1994 }var a=document.createElement("div");
1995 a.className="ricoLG_Resize";
1996 a.style[this.liveGrid.align[1]]="0px";
1997 this.hdrCellDiv.appendChild(a);
1998 Rico.eventBind(a,"mousedown",this.mouseDownHandler,false)
1999 },getDisplayName:function(a){var b=a.getElementsByTagName("A");
2000 if(b.length>0){return b[0].innerHTML
2001 }else{return Rico.stripTags(a.innerHTML)
2002 }},_clear:function(a){a.innerHTML="&nbsp;"
2003 },clearCell:function(d){var c=this.cell(d);
2004 this._clear(c,d);
2005 if(!this.liveGrid.buffer){return
2006 }var b=this.liveGrid.buffer.options.acceptAttr;
2007 for(var a=0;
2008 a<b.length;
2009 a++){switch(b[a]){case"style":c.style.cssText="";
2010 break;
2011 case"class":c.className="";
2012 break;
2013 default:c["_"+b[a]]="";
2014 break
2015 }}},dataTable:function(){return this.liveGrid.tabs[this.tabIdx]
2016 },numRows:function(){return this.dataColDiv.childNodes.length
2017 },clearColumn:function(){var b=this.numRows();
2018 for(var a=0;
2019 a<b;
2020 a++){this.clearCell(a)
2021 }},cell:function(a){return this.dataColDiv.childNodes[a]
2022 },getFormattedValue:function(c,a,d,b){return Rico.getInnerText(this.cell(c),a,d,b)
2023 },setColWidth:function(a){if(typeof a=="number"){a=parseInt(a,10);
2024 if(a<Rico.ColumnConst.MINWIDTH){return
2025 }a=a+"px"
2026 }Rico.log("setColWidth "+this.index+": "+a);
2027 this.colWidth=a;
2028 this.hdrColDiv.style.width=a;
2029 this.dataColDiv.style.width=a
2030 },pluginMouseEvents:function(){if(this.mousePluggedIn==true){return
2031 }Rico.eventBind(this.body,"mousemove",this.mouseMoveHandler,false);
2032 Rico.eventBind(this.body,"mouseup",this.mouseUpHandler,false);
2033 Rico.eventBind(this.body,"mouseout",this.mouseOutHandler,false);
2034 this.mousePluggedIn=true
2035 },unplugMouseEvents:function(){Rico.eventUnbind(this.body,"mousemove",this.mouseMoveHandler,false);
2036 Rico.eventUnbind(this.body,"mouseup",this.mouseUpHandler,false);
2037 Rico.eventUnbind(this.body,"mouseout",this.mouseOutHandler,false);
2038 this.mousePluggedIn=false
2039 },handleMouseDown:function(b){this.resizeStart=Rico.eventClient(b).x;
2040 this.origWidth=parseInt(this.colWidth,10);
2041 var a=Rico.positionedOffset(this.hdrCell);
2042 if(this.liveGrid.direction=="rtl"){this.edge=a.left+this.liveGrid.options.scrollBarWidth;
2043 switch(this.tabIdx){case 0:this.edge+=this.liveGrid.innerDiv.offsetWidth;
2044 break;
2045 case 1:this.edge-=this.liveGrid.scrollDiv.scrollLeft;
2046 break
2047 }}else{this.edge=a.left+this.hdrCell.offsetWidth;
2048 if(this.tabIdx>0){this.edge+=Rico.nan2zero(this.liveGrid.tabs[0].offsetWidth)
2049 }}this.liveGrid.resizeDiv.style.left=this.edge+"px";
2050 this.liveGrid.resizeDiv.style.display="";
2051 this.liveGrid.outerDiv.style.cursor="e-resize";
2052 this.tmpHighlight=this.liveGrid.highlightEnabled;
2053 this.liveGrid.highlightEnabled=false;
2054 this.pluginMouseEvents();
2055 Rico.eventStop(b)
2056 },handleMouseMove:function(b){var c=Rico.eventClient(b).x-this.resizeStart;
2057 var a=(this.liveGrid.direction=="rtl")?this.origWidth-c:this.origWidth+c;
2058 if(a<Rico.ColumnConst.MINWIDTH){return
2059 }this.liveGrid.resizeDiv.style.left=(this.edge+c)+"px";
2060 this.colWidth=a;
2061 Rico.eventStop(b)
2062 },handleMouseUp:function(a){this.unplugMouseEvents();
2063 Rico.log("handleMouseUp "+this.liveGrid.tableId);
2064 this.liveGrid.outerDiv.style.cursor="";
2065 this.liveGrid.resizeDiv.style.display="none";
2066 this.setColWidth(this.colWidth);
2067 this.customWidth=true;
2068 this.liveGrid.setCookie();
2069 this.liveGrid.highlightEnabled=this.tmpHighlight;
2070 this.liveGrid.sizeDivs();
2071 Rico.eventStop(a)
2072 },handleMouseOut:function(b){var a=Rico.eventRelatedTarget(b)||b.toElement;
2073 while(a!=null&&a.nodeName.toLowerCase()!="body"){a=a.parentNode
2074 }if(a!=null&&a.nodeName.toLowerCase()=="body"){return true
2075 }this.handleMouseUp(b);
2076 return true
2077 },setDisplay:function(a){this.hdrCell.style.display=a;
2078 this.hdrColDiv.style.display=a;
2079 this.dataCell.style.display=a;
2080 this.dataColDiv.style.display=a
2081 },hideshow:function(b,a){this.setDisplay(b?"":"none");
2082 this.liveGrid.cancelMenu();
2083 this.visible=b;
2084 this.customVisible=true;
2085 if(a){return
2086 }this.liveGrid.setCookie();
2087 this.liveGrid.sizeDivs()
2088 },hideColumn:function(){Rico.log("hideColumn "+this.liveGrid.tableId);
2089 this.hideshow(false,false)
2090 },showColumn:function(){Rico.log("showColumn "+this.liveGrid.tableId);
2091 this.hideshow(true,false)
2092 },chooseColumn:function(b){var a=Rico.eventElement(b);
2093 this.hideshow(a.checked,false)
2094 },setImage:function(){if(this.currentSort==Rico.ColumnConst.SORT_ASC){this.imgSort.style.display="inline-block";
2095 this.imgSort.className=Rico.theme.sortAsc||"rico-icon ricoLG_sortAsc"
2096 }else{if(this.currentSort==Rico.ColumnConst.SORT_DESC){this.imgSort.style.display="inline-block";
2097 this.imgSort.className=Rico.theme.sortDesc||"rico-icon ricoLG_sortDesc"
2098 }else{this.imgSort.style.display="none"
2099 }}if(this.filterType==Rico.ColumnConst.USERFILTER){this.imgFilter.style.display="inline-block";
2100 this.imgFilter.title=this.getFilterText()
2101 }else{this.imgFilter.style.display="none"
2102 }},canHideShow:function(){return this.hideable
2103 }};
2104 if(typeof Rico=="undefined"){throw ("SimpleGrid requires the Rico JavaScript framework")
2105 }Rico.SimpleGrid=function(b,a){this.initialize(b,a)
2106 };
2107 Rico.SimpleGrid.prototype={initialize:function(b,a){Rico.extend(this,Rico.GridCommon);
2108 this.baseInit();
2109 Rico.setDebugArea(b+"_debugmsgs");
2110 Rico.extend(this.options,a||{});
2111 this.tableId=b;
2112 Rico.log("SimpleGrid initialize start: "+b);
2113 this.createDivs();
2114 this.hdrTabs=new Array(2);
2115 this.simpleGridInit();
2116 Rico.log("SimpleGrid initialize end: "+b)
2117 },simpleGridInit:function(){var a;
2118 for(a=0;
2119 a<2;
2120 a++){Rico.log("simpleGridInit "+a);
2121 this.tabs[a]=document.getElementById(this.tableId+"_tab"+a);
2122 if(!this.tabs[a]){return
2123 }this.hdrTabs[a]=document.getElementById(this.tableId+"_tab"+a+"h");
2124 if(!this.hdrTabs[a]){return
2125 }this.thead[a]=this.hdrTabs[a];
2126 this.tbody[a]=this.tabs[a];
2127 this.headerColCnt=this.getColumnInfo(this.hdrTabs[a].rows);
2128 if(a==0){this.options.frozenColumns=this.headerColCnt
2129 }if(Rico.theme.gridheader){Rico.addClass(this.thead[a],Rico.theme.gridheader)
2130 }if(Rico.theme.gridcontent){Rico.addClass(this.tbody[a],Rico.theme.gridcontent)
2131 }}if(this.headerColCnt==0){alert('ERROR: no columns found in "'+this.tableId+'"');
2132 return
2133 }this.createColumnArray("SimpleGridColumn");
2134 this.pageSize=this.columns[0].dataColDiv.childNodes.length;
2135 this.sizeDivs();
2136 if(typeof(this.options.FilterLocation)=="number"){this.createFilters(this.options.FilterLocation)
2137 }this.attachMenuEvents();
2138 this.scrollEventFunc=Rico.eventHandle(this,"handleScroll");
2139 this.pluginScroll();
2140 if(this.options.windowResize){Rico.eventBind(window,"resize",Rico.eventHandle(this,"sizeDivs"),false)
2141 }},filterId:function(a){return"RicoFilter_"+this.tableId+"_"+a
2142 },createFilters:function(a){if(a<0){a=this.addHeadingRow();
2143 this.sizeDivs()
2144 }for(var g=0;
2145 g<this.headerColCnt;
2146 g++){var d=this.columns[g];
2147 var e=d.format;
2148 if(typeof e.filterUI!="string"){continue
2149 }var k=this.hdrCells[a][g].cell;
2150 var j,b=this.filterId(g);
2151 var h=k.getElementsByTagName("div");
2152 switch(e.filterUI.charAt(0)){case"t":j=Rico.createFormField(h[1],"input","text",b,b);
2153 var m=e.filterUI.match(/\d+/);
2154 j.maxLength=e.Length||50;
2155 j.size=m?parseInt(m,10):10;
2156 Rico.eventBind(j,"keyup",Rico.eventHandle(d,"filterKeypress"),false);
2157 break;
2158 case"s":j=Rico.createFormField(h[1],"select",null,b);
2159 Rico.addSelectOption(j,this.options.FilterAllToken,Rico.getPhraseById("filterAll"));
2160 this.getFilterValues(d);
2161 var l=Rico.keys(d.filterHash);
2162 l.sort();
2163 for(var f=0;
2164 f<l.length;
2165 f++){Rico.addSelectOption(j,l[f],l[f]||Rico.getPhraseById("filterBlank"))
2166 }Rico.eventBind(j,"change",Rico.eventHandle(d,"filterChange"),false);
2167 break
2168 }}this.initFilterImage(a)
2169 },getFilterValues:function(b){var e={};
2170 var f=b.numRows();
2171 for(var c=0;
2172 c<f;
2173 c++){var a=Rico.getInnerText(b.cell(c));
2174 var d=e[a];
2175 if(d){d.push(c)
2176 }else{e[a]=[c]
2177 }}b.filterHash=e
2178 },applyFilters:function(){var b=[];
2179 for(var f=0;
2180 f<this.columns.length;
2181 f++){if(this.columns[f].filterRows){b.push(this.columns[f].filterRows)
2182 }}if(b.length==0){this.showAllRows();
2183 return
2184 }for(var d=0;
2185 d<this.pageSize;
2186 d++){var e=true;
2187 for(var a=0;
2188 a<b.length;
2189 a++){if(b[a].indexOf(d)==-1){e=false;
2190 break
2191 }}if(e){this.showRow(d)
2192 }else{this.hideRow(d)
2193 }}this.sizeDivs()
2194 },handleScroll:function(b){var a=(-this.scrollDiv.scrollTop)+"px";
2195 this.tabs[0].style.marginTop=a;
2196 this.setHorizontalScroll()
2197 },registerScrollMenu:function(a){if(!this.menu){this.menu=a
2198 }a.grid=this;
2199 a.showmenu=a.showSimpleMenu;
2200 a.showSubMenu=a.showSimpleSubMenu;
2201 a.createDiv(this.outerDiv)
2202 },handleMenuClick:function(a){if(!this.menu){return
2203 }this.cancelMenu();
2204 this.menuCell=Rico.getParentByTagName(Rico.eventElement(a),"div");
2205 this.highlightEnabled=false;
2206 if(this.hideScroll){this.scrollDiv.style.overflow="hidden"
2207 }if(this.menu.buildGridMenu){this.menu.buildGridMenu(this.menuCell)
2208 }this.menu.showmenu(a,this.closeMenu.bind(this))
2209 },closeMenu:function(){if(this.hideScroll){this.scrollDiv.style.overflow=""
2210 }this.highlightEnabled=true
2211 },sizeDivs:function(){if(this.outerDiv.offsetParent.style.display=="none"){return
2212 }this.baseSizeDivs();
2213 var c=Math.max(this.options.maxHt||this.availHt(),50);
2214 var b=Math.min(this.hdrHt+this.dataHt,c);
2215 Rico.log("sizeDivs "+this.tableId+": hdrHt="+this.hdrHt+" dataHt="+this.dataHt);
2216 this.dataHt=b-this.hdrHt;
2217 if(this.scrWi>0){this.dataHt+=this.options.scrollBarWidth
2218 }this.scrollDiv.style.height=this.dataHt+"px";
2219 this.frozenTabs.style.height=this.scrollDiv.clientHeight+"px";
2220 var a=2;
2221 this.innerDiv.style.width=(this.scrWi-this.options.scrollBarWidth+a)+"px";
2222 b+=a;
2223 this.resizeDiv.style.height=b+"px";
2224 this.handleScroll()
2225 },printVisible:function(a){this.showMsg(Rico.getPhraseById("exportInProgress"));
2226 Rico.runLater(10,this,"_printVisible",a)
2227 },_printVisible:function(a){this.exportStart();
2228 var g=this.getExportStyles(this.tbody[0]);
2229 for(var f=0;
2230 f<this.pageSize;
2231 f++){if(this.columns[0].cell(f).style.display=="none"){continue
2232 }var e="";
2233 for(var h=0;
2234 h<this.columns.length;
2235 h++){var d=this.columns[h];
2236 if(d.visible){var b=d.getFormattedValue(f,!this.options.exportImgTags,!this.options.exportFormFields,"NoExport");
2237 if(d.format.exportPrefix){b=d.format.exportPrefix+b
2238 }if(b==""){b="&nbsp;"
2239 }e+="<td style='"+this.exportStyle(d.cell(f),g)+"'>"+b+"</td>"
2240 }}this.exportRows.push(e)
2241 }this.exportFinish(a)
2242 },hideRow:function(a){if(this.columns[0].cell(a).style.display=="none"){return
2243 }for(var b=0;
2244 b<this.columns.length;
2245 b++){this.columns[b].cell(a).style.display="none"
2246 }},showRow:function(a){if(this.columns[0].cell(a).style.display==""){return
2247 }for(var b=0;
2248 b<this.columns.length;
2249 b++){this.columns[b].cell(a).style.display=""
2250 }},searchRows:function(h,e,c){if(!e){return
2251 }var f=new RegExp(e);
2252 var d=this.columns[h].numRows();
2253 for(var g=0;
2254 g<d;
2255 g++){var b=this.cell(g,h).innerHTML;
2256 var a=(b.match(f)!=null);
2257 if(a!=c){this.hideRow(g)
2258 }}this.sizeDivs();
2259 this.handleScroll()
2260 },showAllRows:function(){for(var a=0;
2261 a<this.pageSize;
2262 a++){this.showRow(a)
2263 }this.sizeDivs()
2264 },openPopup:function(d,e){while(d&&!Rico.hasClass(d,"ricoLG_cell")){d=d.parentNode
2265 }if(!d){return false
2266 }var f=Rico.getParentByTagName(d,"td");
2267 var c=Math.floor(f.offsetLeft-this.scrollDiv.scrollLeft+f.offsetWidth/2);
2268 if(this.direction=="rtl"){if(c>this.width){c-=this.width
2269 }}else{if(c+this.width+this.options.margin>this.scrollDiv.clientWidth){c-=this.width
2270 }}e.divPopup.style.visibility="hidden";
2271 e.divPopup.style.display="block";
2272 var b=e.divPopup.offsetHeight;
2273 var a=Math.floor(d.offsetTop-this.scrollDiv.scrollTop+d.offsetHeight/2);
2274 if(a+b+e.options.margin>this.scrollDiv.clientHeight){a=Math.max(a-b,0)
2275 }e.openPopup(this.frzWi+c,this.hdrHt+a);
2276 e.divPopup.style.visibility="visible";
2277 return d
2278 }};
2279 if(Rico.Menu){Rico.extend(Rico.Menu.prototype,{showSimpleMenu:function(b,c){Rico.eventStop(b);
2280 this.hideFunc=c;
2281 if(this.div.childNodes.length==0){this.cancelmenu();
2282 return false
2283 }var a=Rico.eventElement(b);
2284 this.grid.openPopup(a,this);
2285 return a
2286 },showSimpleSubMenu:function(b,c){if(this.openSubMenu){this.hideSubMenu()
2287 }this.openSubMenu=c;
2288 this.openMenuAnchor=b;
2289 if(b.className=="ricoSubMenu"){b.className="ricoSubMenuOpen"
2290 }var e=parseInt(this.div.style.top,10);
2291 var d=parseInt(this.div.style.left,10);
2292 c.openPopup(d+b.offsetWidth,e+b.offsetTop);
2293 c.div.style.visibility="visible"
2294 }})
2295 }Rico.SimpleGridColumn=function(a,d,c,b){this.initialize(a,d,c,b)
2296 };
2297 Rico.SimpleGridColumn.prototype={initialize:function(a,d,c,b){Rico.extend(this,new Rico.TableColumnBase());
2298 this.baseInit(a,d,c,b)
2299 },setUnfiltered:function(){this.filterRows=null
2300 },filterChange:function(a){var b=Rico.eventElement(a);
2301 if(b.value==this.liveGrid.options.FilterAllToken){this.setUnfiltered()
2302 }else{this.filterRows=this.filterHash[b.value]
2303 }this.liveGrid.applyFilters()
2304 },filterKeypress:function(f){var a=Rico.eventElement(f);
2305 if(typeof this.lastKeyFilter!="string"){this.lastKeyFilter=""
2306 }if(this.lastKeyFilter==a.value){return
2307 }var b=a.value;
2308 Rico.log("filterKeypress: "+this.index+" "+b);
2309 this.lastKeyFilter=b;
2310 if(b){b=b.replace("\\","\\\\");
2311 b=b.replace("(","\\(").replace(")","\\)");
2312 b=b.replace(".","\\.");
2313 if(this.format.filterUI.indexOf("^")>0){b="^"+b
2314 }var d=new RegExp(b,"i");
2315 this.filterRows=[];
2316 var h=this.numRows();
2317 for(var c=0;
2318 c<h;
2319 c++){var g=Rico.getInnerText(this.cell(c));
2320 if(g.match(d)){this.filterRows.push(c)
2321 }}}else{this.setUnfiltered()
2322 }this.liveGrid.applyFilters()
2323 }};
2324 if(typeof Rico=="undefined"){throw ("LiveGrid requires the Rico JavaScript framework")
2325 }if(!Rico.Buffer){Rico.Buffer={}
2326 }Rico.Buffer.Base=function(b,a){this.initialize(b,a)
2327 };
2328 Rico.Buffer.Base.prototype={initialize:function(b,a){this.clear();
2329 this.updateInProgress=false;
2330 this.lastOffset=0;
2331 this.rcvdRowCount=false;
2332 this.foundRowCount=false;
2333 this.totalRows=0;
2334 this.rowcntContent="";
2335 this.rcvdOffset=-1;
2336 this.options={fixedHdrRows:0,canFilter:true,isEncoded:true,acceptAttr:[]};
2337 Rico.extend(this.options,a||{});
2338 if(b){this.loadRowsFromTable(b,this.options.fixedHdrRows)
2339 }else{this.clear()
2340 }},registerGrid:function(a){this.liveGrid=a
2341 },setTotalRows:function(a){if(typeof(a)!="number"){a=this.size
2342 }if(this.totalRows==a){return
2343 }this.totalRows=a;
2344 if(!this.liveGrid){return
2345 }Rico.log("setTotalRows, newTotalRows="+a);
2346 switch(this.liveGrid.sizeTo){case"data":this.liveGrid.resizeWindow();
2347 break;
2348 case"datamax":this.liveGrid.setPageSize(a);
2349 break;
2350 default:this.liveGrid.updateHeightDiv();
2351 break
2352 }},loadRowsFromTable:function(h,g){var e=new Array();
2353 var a=h.getElementsByTagName("tr");
2354 for(var d=g||0;
2355 d<a.length;
2356 d++){var f=new Array();
2357 var c=a[d].getElementsByTagName("td");
2358 for(var b=0;
2359 b<c.length;
2360 b++){f[b]=c[b].innerHTML
2361 }e.push(f)
2362 }this.loadRows(e)
2363 },loadRowsFromArray:function(b){for(var c=0;
2364 c<b.length;
2365 c++){for(var a=0;
2366 a<b[c].length;
2367 a++){b[c][a]=b[c][a].toString()
2368 }}this.loadRows(b)
2369 },loadRows:function(a){this.baseRows=a;
2370 this.startPos=0;
2371 this.size=this.baseRows.length
2372 },dom2jstable:function(f){Rico.log("dom2jstable: encoded="+this.options.isEncoded);
2373 var e=new Array();
2374 var a=f.getElementsByTagName("tr");
2375 for(var d=0;
2376 d<a.length;
2377 d++){var g=new Array();
2378 var c=a[d].getElementsByTagName("td");
2379 for(var b=0;
2380 b<c.length;
2381 b++){g[b]=Rico.getContentAsString(c[b],this.options.isEncoded)
2382 }e.push(g)
2383 }return e
2384 },dom2jstableAttr:function(e,b){var h=this.options.acceptAttr;
2385 Rico.log("dom2jstableAttr start, # attr="+h.length);
2386 var f=new Array();
2387 var g=e.getElementsByTagName("tr");
2388 for(var d=b||0;
2389 d<g.length;
2390 d++){var m=new Array();
2391 var l=g[d].getElementsByTagName("td");
2392 for(var c=0;
2393 c<l.length;
2394 c++){m[c]={};
2395 for(var a=0;
2396 a<h.length;
2397 a++){m[c]["_"+h[a]]=l[c].getAttribute(h[a])
2398 }if(Rico.isIE){m[c]._class=l[c].getAttribute("className")
2399 }}f.push(m)
2400 }Rico.log("dom2jstableAttr end");
2401 return f
2402 },_blankRow:function(){var a=[];
2403 for(var b=0;
2404 b<this.liveGrid.columns.length;
2405 b++){a[b]=""
2406 }return a
2407 },deleteRows:function(b,a){this.baseRows.splice(b,typeof(a)=="number"?a:1);
2408 this.liveGrid.isPartialBlank=true;
2409 this.size=this.baseRows.length
2410 },insertRow:function(a){var b=this._blankRow();
2411 this.baseRows.splice(a,0,b);
2412 this.size=this.baseRows.length;
2413 this.liveGrid.isPartialBlank=true;
2414 if(this.startPos<0){this.startPos=0
2415 }return b
2416 },appendRows:function(b){var c=[];
2417 for(var a=0;
2418 a<b;
2419 a++){var d=this._blankRow();
2420 this.baseRows.push(d);
2421 c.push(d)
2422 }this.size=this.baseRows.length;
2423 this.liveGrid.isPartialBlank=true;
2424 if(this.startPos<0){this.startPos=0
2425 }return c
2426 },sortFunc:function(b){var a=this;
2427 switch(b){case"number":return function(d,c){return a._sortNumeric(d,c)
2428 };
2429 case"control":return function(d,c){return a._sortControl(d,c)
2430 };
2431 default:return function(d,c){return a._sortAlpha(d,c)
2432 }
2433 }},sortBuffer:function(b){if(!this.baseRows){this.delayedSortCol=b;
2434 return
2435 }this.liveGrid.showMsg(Rico.getPhraseById("sorting"));
2436 this.sortColumn=b;
2437 var a=this.liveGrid.columns[b];
2438 this.getValFunc=a._sortfunc;
2439 this.baseRows.sort(this.sortFunc(a.format.type));
2440 if(a.getSortDirection()=="DESC"){this.baseRows.reverse()
2441 }},_sortAlpha:function(d,c){var e=this.sortColumn<d.length?Rico.getInnerText(d[this.sortColumn]):"";
2442 var f=this.sortColumn<c.length?Rico.getInnerText(c[this.sortColumn]):"";
2443 if(e==f){return 0
2444 }if(e<f){return -1
2445 }return 1
2446 },_sortNumeric:function(d,c){var e=this.sortColumn<d.length?this.nan2zero(Rico.getInnerText(d[this.sortColumn])):0;
2447 var f=this.sortColumn<c.length?this.nan2zero(Rico.getInnerText(c[this.sortColumn])):0;
2448 return e-f
2449 },nan2zero:function(a){if(typeof(a)=="string"){a=parseFloat(a)
2450 }return isNaN(a)||typeof(a)=="undefined"?0:a
2451 },_sortControl:function(d,c){var e=this.sortColumn<d.length?Rico.getInnerText(d[this.sortColumn]):"";
2452 var f=this.sortColumn<c.length?Rico.getInnerText(c[this.sortColumn]):"";
2453 if(this.getValFunc){e=this.getValFunc(e);
2454 f=this.getValFunc(f)
2455 }if(e==f){return 0
2456 }if(e<f){return -1
2457 }return 1
2458 },clear:function(){this.baseRows=[];
2459 this.rows=[];
2460 this.startPos=-1;
2461 this.size=0;
2462 this.windowPos=0
2463 },isInRange:function(a){var b=Math.min(this.totalRows,a+this.liveGrid.pageSize);
2464 return(a>=this.startPos)&&(b<=this.endPos())
2465 },endPos:function(){return this.startPos+this.rows.length
2466 },fetch:function(a){Rico.log("fetch "+this.liveGrid.tableId+": offset="+a);
2467 this.applyFilters();
2468 this.setTotalRows();
2469 this.rcvdRowCount=true;
2470 this.foundRowCount=true;
2471 if(a<0){a=0
2472 }this.liveGrid.refreshContents(a);
2473 return
2474 },visibleRows:function(){return this.rows.slice(this.windowStart,this.windowEnd)
2475 },setWindow:function(b,a){this.windowStart=b-this.startPos;
2476 Rico.log("setWindow "+this.liveGrid.tableId+": "+b+", "+a+", newstart="+this.windowStart);
2477 this.windowEnd=Math.min(a,this.size);
2478 this.windowPos=b
2479 },isVisible:function(a){return a<this.rows.length&&a>=this.windowStart&&a<this.windowEnd
2480 },bufferRow:function(a){return this.windowStart+a
2481 },getWindowCell:function(c,b){var a=this.bufferRow(c);
2482 return this.isVisible(a)&&b<this.rows[a].length?this.rows[a][b]:null
2483 },getWindowAttr:function(c,b){var a=this.bufferRow(c);
2484 return this.attr&&this.isVisible(a)&&b<this.attr[a].length?this.attr[a][b]:null
2485 },getWindowValue:function(b,a){return this.getWindowCell(b,a)
2486 },setWindowValue:function(d,b,c){var a=this.bufferRow(d);
2487 if(a>=this.windowEnd){return false
2488 }return this.setValue(a,b,c)
2489 },getCell:function(b,a){return b<this.size?this.rows[b][a]:null
2490 },getValue:function(b,a){return this.getCell(b,a)
2491 },setValue:function(d,b,c,a){if(d>=this.size){return false
2492 }if(!this.rows[d][b]){this.rows[d][b]={}
2493 }this.rows[d][b]=c;
2494 if(typeof a=="string"){this.rows[d][b]._style=a
2495 }this.rows[d][b].modified=true;
2496 return true
2497 },getRows:function(f,d){var e=f-this.startPos;
2498 var a=Math.min(e+d,this.size);
2499 var c=new Array();
2500 for(var b=e;
2501 b<a;
2502 b++){c.push(this.rows[b])
2503 }return c
2504 },applyFilters:function(){var g=[],k=[];
2505 var a,h,d,e,f,b;
2506 var j=this.liveGrid.columns;
2507 for(d=0,b=0;
2508 d<j.length;
2509 d++){h=j[d];
2510 if(h.filterType==Rico.ColumnConst.UNFILTERED){continue
2511 }b++;
2512 if(h.filterOp=="LIKE"){k[d]=new RegExp(h.filterValues[0],"i")
2513 }}Rico.log("applyFilters: # of filters="+b);
2514 if(b==0){this.rows=this.baseRows
2515 }else{for(a=0;
2516 a<this.baseRows.length;
2517 a++){f=true;
2518 for(d=0;
2519 d<j.length&&f;
2520 d++){h=j[d];
2521 if(h.filterType==Rico.ColumnConst.UNFILTERED){continue
2522 }switch(h.filterOp){case"LIKE":f=k[d].test(this.baseRows[a][d]);
2523 break;
2524 case"EQ":f=this.baseRows[a][d]==h.filterValues[0];
2525 break;
2526 case"NE":for(e=0;
2527 e<h.filterValues.length&&f;
2528 e++){f=this.baseRows[a][d]!=h.filterValues[e]
2529 }break;
2530 case"LE":if(h.format.type=="number"){f=this.nan2zero(this.baseRows[a][d])<=this.nan2zero(h.filterValues[0])
2531 }else{f=this.baseRows[a][d]<=h.filterValues[0]
2532 }break;
2533 case"GE":if(h.format.type=="number"){f=this.nan2zero(this.baseRows[a][d])>=this.nan2zero(h.filterValues[0])
2534 }else{f=this.baseRows[a][d]>=h.filterValues[0]
2535 }break;
2536 case"NULL":f=this.baseRows[a][d]=="";
2537 break;
2538 case"NOTNULL":f=this.baseRows[a][d]!="";
2539 break
2540 }}if(f){g.push(this.baseRows[a])
2541 }}this.rows=g
2542 }this.rowcntContent=this.size=this.rows.length
2543 },printAll:function(a){this.liveGrid.showMsg(Rico.getPhraseById("exportInProgress"));
2544 Rico.runLater(10,this,"_printAll",a)
2545 },_printAll:function(a){this.liveGrid.exportStart();
2546 this.exportBuffer(this.getRows(0,this.totalRows));
2547 this.liveGrid.exportFinish(a)
2548 },printVisible:function(a){this.liveGrid.showMsg(Rico.getPhraseById("exportInProgress"));
2549 Rico.runLater(10,this,"_printVisible",a)
2550 },_printVisible:function(a){this.liveGrid.exportStart();
2551 this.exportBuffer(this.visibleRows());
2552 this.liveGrid.exportFinish(a)
2553 },exportBuffer:function(l,f){var a,g,k,b,j;
2554 Rico.log("exportBuffer: "+l.length+" rows");
2555 var e=this.liveGrid.getExportStyles(this.liveGrid.tbody[0]);
2556 var i=[];
2557 var d=f||0;
2558 var h=this.liveGrid.columns;
2559 for(g=0;
2560 g<h.length;
2561 g++){if(h[g].visible){i[g]=this.liveGrid.exportStyle(h[g].cell(0),e)
2562 }}for(a=0;
2563 a<l.length;
2564 a++){j="";
2565 for(g=0;
2566 g<h.length;
2567 g++){if(!h[g].visible){continue
2568 }b=h[g];
2569 b.expStyle=i[g];
2570 k=b._export(l[a][g],l[a]);
2571 if(k==""){k="&nbsp;"
2572 }j+="<td style='"+b.expStyle+"'>"+k+"</td>"
2573 }this.liveGrid.exportRows.push(j);
2574 d++;
2575 if(d%10==0){window.status=Rico.getPhraseById("exportStatus",d)
2576 }}}};
2577 Rico.LiveGrid=function(c,a,b){this.initialize(c,a,b)
2578 };
2579 Rico.LiveGrid.prototype={initialize:function(e,b,d){Rico.extend(this,Rico.GridCommon);
2580 Rico.extend(this,Rico.LiveGridMethods);
2581 this.baseInit();
2582 this.tableId=e;
2583 this.buffer=b;
2584 this.actionId="_action_"+e;
2585 Rico.setDebugArea(e+"_debugmsgs");
2586 Rico.extend(this.options,{visibleRows:-3,frozenColumns:0,offset:0,prefetchBuffer:true,minPageRows:2,maxPageRows:50,canSortDefault:true,canFilterDefault:b.options.canFilter,canHideDefault:true,highlightElem:"none",highlightSection:3,highlightMethod:"class",highlightClass:Rico.theme.gridHighlightClass||"ricoLG_selection",maxPrint:5000,headingSort:"link",hdrIconsFirst:true});
2587 var c=this;
2588 this.options.sortHandler=function(){c.sortHandler()
2589 };
2590 this.options.filterHandler=function(){c.filterHandler()
2591 };
2592 this.options.onRefreshComplete=function(f,g){c.bookmarkHandler(f,g)
2593 };
2594 this.options.rowOverHandler=Rico.eventHandle(this,"rowMouseOver");
2595 this.options.mouseDownHandler=Rico.eventHandle(this,"selectMouseDown");
2596 this.options.mouseOverHandler=Rico.eventHandle(this,"selectMouseOver");
2597 this.options.mouseUpHandler=Rico.eventHandle(this,"selectMouseUp");
2598 Rico.extend(this.options,d||{});
2599 switch(typeof this.options.visibleRows){case"string":this.sizeTo=this.options.visibleRows;
2600 switch(this.options.visibleRows){case"data":this.options.visibleRows=-2;
2601 break;
2602 case"body":this.options.visibleRows=-3;
2603 break;
2604 case"parent":this.options.visibleRows=-4;
2605 break;
2606 case"datamax":this.options.visibleRows=-5;
2607 break;
2608 default:this.options.visibleRows=-1;
2609 break
2610 }break;
2611 case"number":switch(this.options.visibleRows){case -1:this.sizeTo="window";
2612 break;
2613 case -2:this.sizeTo="data";
2614 break;
2615 case -3:this.sizeTo="body";
2616 break;
2617 case -4:this.sizeTo="parent";
2618 break;
2619 case -5:this.sizeTo="datamax";
2620 break;
2621 default:this.sizeTo="fixed";
2622 break
2623 }break;
2624 default:this.sizeTo="body";
2625 this.options.visibleRows=-3;
2626 break
2627 }this.highlightEnabled=this.options.highlightSection>0;
2628 this.pageSize=0;
2629 this.createTables();
2630 if(this.headerColCnt==0){alert('ERROR: no columns found in "'+this.tableId+'"');
2631 return
2632 }this.createColumnArray("LiveGridColumn");
2633 if(this.options.headingSort=="hover"){this.createHoverSet()
2634 }this.bookmark=document.getElementById(this.tableId+"_bookmark");
2635 this.sizeDivs();
2636 var a=this.buffer.options.canFilter?this.options.FilterLocation:false;
2637 if(typeof(a)=="number"&&a<0){a=this.addHeadingRow("ricoLG_FilterRow")
2638 }this.createDataCells(this.options.visibleRows);
2639 if(this.pageSize==0){return
2640 }this.buffer.registerGrid(this);
2641 if(this.buffer.setBufferSize){this.buffer.setBufferSize(this.pageSize)
2642 }this.scrollTimeout=null;
2643 this.lastScrollPos=0;
2644 this.attachMenuEvents();
2645 this.setSortUI(this.options.sortCol,this.options.sortDir);
2646 this.setImages();
2647 if(this.listInvisible().length==this.columns.length){this.columns[0].showColumn()
2648 }this.sizeDivs();
2649 this.scrollDiv.style.display="";
2650 if(this.buffer.totalRows>0){this.updateHeightDiv()
2651 }if(this.options.prefetchBuffer){if(this.bookmark){this.bookmark.innerHTML=Rico.getPhraseById("bookmarkLoading")
2652 }if(this.options.canFilterDefault&&this.options.getQueryParms){this.checkForFilterParms()
2653 }this.scrollToRow(this.options.offset);
2654 this.buffer.fetch(this.options.offset)
2655 }if(typeof(a)=="number"){this.createFilters(a)
2656 }this.scrollEventFunc=Rico.eventHandle(this,"handleScroll");
2657 this.wheelEventFunc=Rico.eventHandle(this,"handleWheel");
2658 this.wheelEvent=(Rico.isIE||Rico.isOpera||Rico.isWebKit)?"mousewheel":"DOMMouseScroll";
2659 if(this.options.offset&&this.options.offset<this.buffer.totalRows){Rico.runLater(50,this,"scrollToRow",this.options.offset)
2660 }this.pluginScroll();
2661 this.setHorizontalScroll();
2662 Rico.log("setHorizontalScroll done");
2663 if(this.options.windowResize){Rico.runLater(100,this,"pluginWindowResize")
2664 }Rico.log("initialize complete for "+this.tableId)
2665 }};
2666 Rico.LiveGridMethods={createHoverSet:function(){var a=[];
2667 for(var b=0;
2668 b<this.headerColCnt;
2669 b++){if(this.columns[b].sortable){a.push(this.columns[b].hdrCellDiv)
2670 }}this.hoverSet=new Rico.HoverSet(a)
2671 },checkForFilterParms:function(){var b=window.location.search;
2672 if(b.charAt(0)=="?"){b=b.substring(1)
2673 }var c=b.split("&");
2674 for(var a=0;
2675 a<c.length;
2676 a++){if(c[a].match(/^f\[\d+\]/)){this.buffer.options.requestParameters.push(c[a])
2677 }}},drillDown:function(g,f,h){var b=Rico.eventElement(g||window.event);
2678 b=Rico.getParentByTagName(b,"div","ricoLG_cell");
2679 if(!b){return -1
2680 }var a=this.winCellIndex(b);
2681 if(a.row>=this.buffer.totalRows){return -1
2682 }this.unhighlight();
2683 this.menuIdx=a;
2684 this.highlight(a);
2685 var c=this.buffer.getWindowCell(a.row,f);
2686 for(var d=3;
2687 d<arguments.length;
2688 d++){arguments[d].setDetailFilter(h,c)
2689 }return a.row
2690 },setDetailFilter:function(a,d){var b=this.columns[a];
2691 b.format.ColData=d;
2692 b.setSystemFilter("EQ",d)
2693 },createTables:function(){var f,g,b;
2694 var e=document.getElementById(this.tableId)||document.getElementById(this.tableId+"_outerDiv");
2695 if(!e){return false
2696 }if(e.tagName.toLowerCase()=="table"){var a=e.getElementsByTagName("thead");
2697 if(a.length==1){Rico.log("createTables: using thead section, id="+this.tableId);
2698 if(this.options.PanelNamesOnTabHdr&&this.options.panels){var d=a[0].insertRow(0);
2699 this.insertPanelNames(d,0,this.options.frozenColumns,"ricoFrozen");
2700 this.insertPanelNames(d,this.options.frozenColumns,this.options.columnSpecs.length)
2701 }g=a[0].rows
2702 }else{Rico.log("createTables: using tbody section, id="+this.tableId);
2703 g=new Array(e.rows[0])
2704 }f=e
2705 }else{if(this.options.columnSpecs.length>0){if(!e.id.match(/_outerDiv$/)){f=e
2706 }Rico.log("createTables: inserting at "+e.tagName+", id="+this.tableId)
2707 }else{alert("ERROR!\n\nUnable to initialize '"+this.tableId+"'\n\nLiveGrid terminated");
2708 return false
2709 }}this.createDivs();
2710 this.scrollContainer=this.createDiv("scrollContainer",this.structTabLR);
2711 this.scrollContainer.appendChild(this.scrollDiv);
2712 this.scrollTab=this.createDiv("scrollTab",this.scrollContainer);
2713 this.shadowDiv=this.createDiv("shadow",this.scrollDiv);
2714 this.shadowDiv.style.direction="ltr";
2715 this.scrollDiv.style.display="none";
2716 this.scrollDiv.scrollTop=0;
2717 if(this.options.highlightMethod!="class"){this.highlightDiv=[];
2718 switch(this.options.highlightElem){case"menuRow":case"cursorRow":this.highlightDiv[0]=this.createDiv("highlight",this.outerDiv);
2719 this.highlightDiv[0].style.display="none";
2720 break;
2721 case"menuCell":case"cursorCell":for(b=0;
2722 b<2;
2723 b++){this.highlightDiv[b]=this.createDiv("highlight",b==0?this.frozenTabs:this.scrollTab);
2724 this.highlightDiv[b].style.display="none";
2725 this.highlightDiv[b].id+=b
2726 }break;
2727 case"selection":var h=this.options.highlightSection==1?this.frozenTabs:this.scrollTab;
2728 for(b=0;
2729 b<4;
2730 b++){this.highlightDiv[b]=this.createDiv("highlight",h);
2731 this.highlightDiv[b].style.display="none";
2732 this.highlightDiv[b].style.overflow="hidden";
2733 this.highlightDiv[b].id+=b;
2734 this.highlightDiv[b].style[b%2==0?"height":"width"]="0px"
2735 }break
2736 }}for(b=0;
2737 b<3;
2738 b++){this.tabs[b]=document.createElement("table");
2739 this.tabs[b].className="ricoLG_table";
2740 this.tabs[b].border=0;
2741 this.tabs[b].cellPadding=0;
2742 this.tabs[b].cellSpacing=0;
2743 this.tabs[b].id=this.tableId+"_tab"+b
2744 }for(b=0;
2745 b<2;
2746 b++){this.thead[b]=this.tabs[b].createTHead();
2747 Rico.addClass(this.tabs[b],"ricoLG_top");
2748 if(Rico.theme.gridheader){Rico.addClass(this.thead[b],Rico.theme.gridheader)
2749 }}for(b=0;
2750 b<2;
2751 b++){this.tbody[b]=Rico.getTBody(this.tabs[b==0?0:2]);
2752 this.tbody[b].className="ricoLG_bottom";
2753 if(Rico.theme.gridcontent){Rico.addClass(this.tbody[b],Rico.theme.gridcontent)
2754 }this.tbody[b].insertRow(-1)
2755 }this.frozenTabs.appendChild(this.tabs[0]);
2756 this.innerDiv.appendChild(this.tabs[1]);
2757 this.scrollTab.appendChild(this.tabs[2]);
2758 if(f){f.parentNode.insertBefore(this.outerDiv,f)
2759 }if(g){this.headerColCnt=this.getColumnInfo(g);
2760 this.loadHdrSrc(g)
2761 }else{this.createHdr(0,0,this.options.frozenColumns);
2762 this.createHdr(1,this.options.frozenColumns,this.options.columnSpecs.length);
2763 if(this.options.PanelNamesOnTabHdr&&this.options.panels){this.insertPanelNames(this.thead[0].insertRow(0),0,this.options.frozenColumns);
2764 this.insertPanelNames(this.thead[1].insertRow(0),this.options.frozenColumns,this.options.columnSpecs.length)
2765 }for(b=0;
2766 b<2;
2767 b++){this.headerColCnt=this.getColumnInfo(this.thead[b].rows)
2768 }}for(var j=0;
2769 j<this.headerColCnt;
2770 j++){this.tbody[j<this.options.frozenColumns?0:1].rows[0].insertCell(-1)
2771 }if(f){e.parentNode.removeChild(e)
2772 }Rico.log("createTables end");
2773 return true
2774 },createDataCells:function(d){if(d<0){for(var a=0;
2775 a<this.options.minPageRows;
2776 a++){this.appendBlankRow()
2777 }this.sizeDivs();
2778 this.autoAppendRows(this.remainingHt())
2779 }else{for(var c=0;
2780 c<d;
2781 c++){this.appendBlankRow()
2782 }}var b=this.options.highlightSection;
2783 if(b&1){this.attachHighlightEvents(this.tbody[0])
2784 }if(b&2){this.attachHighlightEvents(this.tbody[1])
2785 }},filterId:function(a){return"RicoFilter_"+this.tableId+"_"+a
2786 },createFilters:function(b){for(var h=0;
2787 h<this.headerColCnt;
2788 h++){var e=this.columns[h];
2789 var f=e.format;
2790 if(typeof f.filterUI!="string"){continue
2791 }var l=this.hdrCells[b][h].cell;
2792 var j,d=this.filterId(h);
2793 var i=l.getElementsByTagName("div");
2794 var g=Rico.getStyle(this.cell(0,h),"textAlign");
2795 i[1].style.textAlign=g;
2796 switch(f.filterUI.charAt(0)){case"t":j=Rico.createFormField(i[1],"input","text",d,d);
2797 var n=f.filterUI.match(/\d+/);
2798 j.maxLength=f.Length||50;
2799 j.size=n?parseInt(n,10):10;
2800 i[1].appendChild(Rico.clearButton(Rico.eventHandle(e,"filterClear")));
2801 if(e.filterType==Rico.ColumnConst.USERFILTER&&e.filterOp=="LIKE"){var k=e.filterValues[0];
2802 if(k.charAt(0)=="*"){k=k.substr(1)
2803 }if(k.slice(-1)=="*"){k=k.slice(0,-1)
2804 }j.value=k;
2805 e.lastKeyFilter=k
2806 }Rico.eventBind(j,"keyup",Rico.eventHandle(e,"filterKeypress"),false);
2807 e.filterField=j;
2808 break;
2809 case"m":case"s":j=Rico.createFormField(i[1],"select",null,d);
2810 Rico.addSelectOption(j,this.options.FilterAllToken,Rico.getPhraseById("filterAll"));
2811 e.filterField=j;
2812 var m={};
2813 Rico.extend(m,this.buffer.ajaxOptions);
2814 var a=typeof(f.filterCol)=="number"?f.filterCol:h;
2815 m.parameters={id:this.tableId,distinct:a};
2816 m.parameters[this.actionId]="query";
2817 m.onComplete=this.filterValuesUpdateFunc(h);
2818 new Rico.ajaxRequest(this.buffer.dataSource,m);
2819 break;
2820 case"c":if(typeof e._createFilters=="function"){e._createFilters(i[1],d)
2821 }break
2822 }}this.initFilterImage(b)
2823 },filterValuesUpdateFunc:function(b){var a=this;
2824 return function(c){a.filterValuesUpdate(b,c)
2825 }
2826 },filterValuesUpdate:function(a,g){var f=g.responseXML.getElementsByTagName("ajax-response");
2827 Rico.log("filterValuesUpdate: "+g.status);
2828 if(f==null||f.length!=1){return false
2829 }f=f[0];
2830 var n=f.getElementsByTagName("error");
2831 if(n.length>0){Rico.log("Data provider returned an error:\n"+Rico.getContentAsString(n[0],this.buffer.isEncoded));
2832 alert(Rico.getPhraseById("requestError",Rico.getContentAsString(n[0],this.buffer.isEncoded)));
2833 return false
2834 }f=f.getElementsByTagName("response")[0];
2835 var l=f.getElementsByTagName("rows")[0];
2836 var d=this.columns[parseInt(a,10)];
2837 var r=this.buffer.dom2jstable(l);
2838 var m,b,q;
2839 if(d.filterType==Rico.ColumnConst.USERFILTER&&d.filterOp=="EQ"){q=d.filterValues[0]
2840 }Rico.log("filterValuesUpdate: col="+a+" rows="+r.length);
2841 switch(d.format.filterUI.charAt(0)){case"m":d.mFilter=document.body.appendChild(document.createElement("div"));
2842 d.mFilter.className="ricoLG_mFilter";
2843 Rico.hide(d.mFilter);
2844 var e=d.mFilter.appendChild(document.createElement("div"));
2845 e.className="ricoLG_mFilter_content";
2846 var o=d.mFilter.appendChild(document.createElement("div"));
2847 o.className="ricoLG_mFilter_button";
2848 d.mFilterButton=o.appendChild(document.createElement("button"));
2849 d.mFilterButton.innerHTML=Rico.getPhraseById("ok");
2850 var j=Rico.isWebKit?"mousedown":"click";
2851 Rico.eventBind(d.filterField,j,Rico.eventHandle(d,"mFilterSelectClick"));
2852 Rico.eventBind(d.mFilterButton,"click",Rico.eventHandle(d,"mFilterFinish"));
2853 tab=e.appendChild(document.createElement("table"));
2854 tab.border=0;
2855 tab.cellPadding=2;
2856 tab.cellSpacing=0;
2857 var p=this.filterId(a)+"_";
2858 this.createMFilterItem(tab,this.options.FilterAllToken,Rico.getPhraseById("filterAll"),p+"all",Rico.eventHandle(d,"mFilterAllClick"));
2859 var k=Rico.eventHandle(d,"mFilterOtherClick");
2860 for(var h=0;
2861 h<r.length;
2862 h++){if(r[h].length>0){m=r[h][0];
2863 this.createMFilterItem(tab,m,m||Rico.getPhraseById("filterBlank"),p+h,k)
2864 }}d.mFilterInputs=e.getElementsByTagName("input");
2865 d.mFilterLabels=e.getElementsByTagName("label");
2866 d.mFilterFocus=d.mFilterInputs.length?d.mFilterInputs[0]:d.mFilterButton;
2867 break;
2868 case"s":for(var h=0;
2869 h<r.length;
2870 h++){if(r[h].length>0){m=r[h][0];
2871 b=Rico.addSelectOption(d.filterField,m,m||Rico.getPhraseById("filterBlank"));
2872 if(d.filterType==Rico.ColumnConst.USERFILTER&&m==q){b.selected=true
2873 }}}Rico.eventBind(d.filterField,"change",Rico.eventHandle(d,"filterChange"));
2874 break
2875 }return true
2876 },createMFilterItem:function(j,b,i,a,e){var f=j.insertRow(-1);
2877 f.vAlign="top";
2878 if(f.rowIndex%2==1){f.className="ricoLG_mFilter_oddrow"
2879 }var d=f.insertCell(-1);
2880 var c=f.insertCell(-1);
2881 var h=Rico.createFormField(d,"input","checkbox",a);
2882 h.value=b;
2883 h.checked=true;
2884 var g=c.appendChild(document.createElement("label"));
2885 g.htmlFor=a;
2886 g.innerHTML=i;
2887 Rico.eventBind(h,"click",e)
2888 },unplugHighlightEvents:function(){var a=this.options.highlightSection;
2889 if(a&1){this.detachHighlightEvents(this.tbody[0])
2890 }if(a&2){this.detachHighlightEvents(this.tbody[1])
2891 }},insertPanelNames:function(a,b,d,f){Rico.log("insertPanelNames: start="+b+" limit="+d);
2892 a.className="ricoLG_hdg";
2893 var i=-1,j,e=null,g=0;
2894 for(var h=b;
2895 h<d;
2896 h++){if(i==this.options.columnSpecs[h].panelIdx){j++
2897 }else{if(e){e.colSpan=j
2898 }e=a.insertCell(-1);
2899 if(f){e.className=f
2900 }j=1;
2901 i=this.options.columnSpecs[h].panelIdx;
2902 e.innerHTML=this.options.panels[i]
2903 }}if(e){e.colSpan=j
2904 }},createHdr:function(d,g,b){Rico.log("createHdr: i="+d+" start="+g+" limit="+b);
2905 var a=this.thead[d].insertRow(-1);
2906 a.id=this.tableId+"_tab"+d+"h_main";
2907 a.className="ricoLG_hdg";
2908 for(var f=g;
2909 f<b;
2910 f++){var e=a.insertCell(-1);
2911 e.innerHTML=this.options.columnSpecs[f].Hdg
2912 }},loadHdrSrc:function(g){var b,d,j,e,f,a;
2913 Rico.log("loadHdrSrc start");
2914 for(b=0;
2915 b<2;
2916 b++){for(e=0;
2917 e<g.length;
2918 e++){f=this.thead[b].insertRow(-1);
2919 f.className="ricoLG_hdg "+this.tableId+"_hdg"+e
2920 }}if(g.length==1){a=g[0].cells;
2921 for(j=0;
2922 a.length>0;
2923 j++){this.thead[j<this.options.frozenColumns?0:1].rows[0].appendChild(a[0])
2924 }}else{for(e=0;
2925 e<g.length;
2926 e++){a=g[e].cells;
2927 for(j=0,d=0;
2928 a.length>0;
2929 j++){if(a[0].className=="ricoFrozen"){if(e==this.headerRowIdx){this.options.frozenColumns=j+1
2930 }}else{d=1
2931 }this.thead[d].rows[e].appendChild(a[0])
2932 }}}Rico.log("loadHdrSrc end")
2933 },sizeDivs:function(){Rico.log("sizeDivs: "+this.tableId);
2934 this.unhighlight();
2935 this.baseSizeDivs();
2936 var d=this.firstVisible();
2937 if(this.pageSize==0||d<0){return
2938 }var c=this.columns[d].dataColDiv.offsetHeight;
2939 this.rowHeight=Math.round(c/this.pageSize);
2940 var b=this.dataHt;
2941 if(this.scrTabWi0==this.scrTabWi){this.innerDiv.style.height=(this.hdrHt+1)+"px";
2942 this.scrollDiv.style.overflowX="hidden"
2943 }else{this.scrollDiv.style.overflowX="scroll";
2944 b+=this.options.scrollBarWidth
2945 }this.scrollDiv.style.height=b+"px";
2946 this.innerDiv.style.width=(this.scrWi)+"px";
2947 this.scrollTab.style.width=(this.scrWi-this.options.scrollBarWidth)+"px";
2948 this.resizeDiv.style.height=(this.hdrHt+this.dataHt+1)+"px";
2949 Rico.log("sizeDivs scrHt="+b+" innerHt="+this.innerDiv.style.height+" rowHt="+this.rowHeight+" pageSize="+this.pageSize);
2950 var a=(this.scrWi-this.scrTabWi<this.options.scrollBarWidth)?2:0;
2951 this.shadowDiv.style.width=(this.scrTabWi+a)+"px";
2952 this.outerDiv.style.height=(this.hdrHt+b)+"px";
2953 this.setHorizontalScroll()
2954 },setHorizontalScroll:function(){var a=(-this.scrollDiv.scrollLeft)+"px";
2955 this.tabs[1].style.marginLeft=a;
2956 this.tabs[2].style.marginLeft=a
2957 },remainingHt:function(){var f;
2958 var g=Rico.windowHeight();
2959 var e=Rico.isIE?15:10;
2960 if(!Rico.isIE&&window.frameElement&&window.frameElement.scrolling=="yes"&&this.sizeTo!="parent"){e+=this.options.scrollBarWidth
2961 }switch(this.sizeTo){case"window":var d=Rico.cumulativeOffset(this.outerDiv).top;
2962 f=Math.max(this.tabs[0].offsetHeight,this.tabs[1].offsetHeight);
2963 Rico.log("remainingHt, winHt="+g+" tabHt="+f+" gridY="+d);
2964 return g-d-f-this.options.scrollBarWidth-e;
2965 case"parent":var h=this.offsetFromParent(this.outerDiv);
2966 f=Math.max(this.tabs[0].offsetHeight,this.tabs[1].offsetHeight);
2967 if(Rico.isIE){Rico.hide(this.outerDiv)
2968 }var b=this.outerDiv.parentNode.offsetHeight;
2969 if(Rico.isIE){Rico.show(this.outerDiv)
2970 }Rico.log("remainingHt, parentHt="+b+" gridY="+h+" winHt="+g+" tabHt="+f);
2971 return b-f-h-this.options.scrollBarWidth;
2972 case"data":case"body":var a=Rico.isIE?document.body.scrollHeight:document.body.offsetHeight;
2973 var c=g-a-e;
2974 if(!Rico.isWebKit){c-=this.options.scrollBarWidth
2975 }Rico.log("remainingHt, winHt="+g+" pageHt="+a+" remHt="+c);
2976 return c;
2977 default:f=Math.max(this.tabs[0].offsetHeight,this.tabs[1].offsetHeight);
2978 Rico.log("remainingHt, winHt="+g+" tabHt="+f);
2979 if(this.sizeTo.slice(-1)=="%"){g*=parseFloat(this.sizeTo)/100
2980 }else{if(this.sizeTo.slice(-2)=="px"){g=parseInt(this.sizeTo,10)
2981 }}return g-f-this.options.scrollBarWidth-e
2982 }},offsetFromParent:function(b){var a=0;
2983 var c=b.parentNode;
2984 do{a+=b.offsetTop||0;
2985 b=b.offsetParent;
2986 if(!b||b==null){break
2987 }var d=Rico.getStyle(b,"position");
2988 if(b.tagName=="BODY"||b.tagName=="HTML"||d=="absolute"){return a-c.offsetTop
2989 }}while(b!=c);
2990 return a
2991 },adjustPageSize:function(){var a=this.remainingHt();
2992 Rico.log("adjustPageSize remHt="+a+" lastRow="+this.lastRowPos);
2993 if(a>this.rowHeight){this.autoAppendRows(a)
2994 }else{if(a<0||this.sizeTo=="data"){this.autoRemoveRows(-a)
2995 }}},setPageSize:function(b){b=Math.min(b,this.options.maxPageRows);
2996 b=Math.max(b,this.options.minPageRows);
2997 this.sizeTo="fixed";
2998 var a=this.pageSize;
2999 while(this.pageSize>b){this.removeRow()
3000 }while(this.pageSize<b){this.appendBlankRow()
3001 }this.finishResize(a)
3002 },pluginWindowResize:function(){Rico.log("pluginWindowResize");
3003 this.resizeWindowHandler=Rico.eventHandle(this,"resizeWindow");
3004 Rico.eventBind(window,"resize",this.resizeWindowHandler,false)
3005 },unplugWindowResize:function(){if(!this.resizeWindowHandler){return
3006 }Rico.eventUnbind(window,"resize",this.resizeWindowHandler,false);
3007 this.resizeWindowHandler=null
3008 },resizeWindow:function(){Rico.log("resizeWindow "+this.tableId+" lastRow="+this.lastRowPos);
3009 if(this.resizeState=="finish"){Rico.log("resizeWindow postponed");
3010 this.resizeState="resize";
3011 return
3012 }if(!this.sizeTo||this.sizeTo=="fixed"){this.sizeDivs();
3013 return
3014 }if(this.sizeTo=="parent"&&Rico.getStyle(this.outerDiv.parentNode,"display")=="none"){return
3015 }var a=this.pageSize;
3016 this.adjustPageSize();
3017 this.finishResize(a)
3018 },finishResize:function(b){if(this.pageSize>b&&this.buffer.totalRows>0){this.isPartialBlank=true;
3019 var a=this.adjustRow(this.lastRowPos);
3020 this.buffer.fetch(a)
3021 }else{if(this.pageSize<b){if(this.options.onRefreshComplete){this.options.onRefreshComplete(this.contentStartPos,this.contentStartPos+this.pageSize-1)
3022 }}}this.resizeState="finish";
3023 Rico.runLater(20,this,"finishResize2");
3024 Rico.log("Resize "+this.tableId+" complete. old size="+b+" new size="+this.pageSize)
3025 },finishResize2:function(){this.sizeDivs();
3026 this.updateHeightDiv();
3027 if(this.resizeState=="resize"){this.resizeWindow()
3028 }else{this.resizeState=""
3029 }},topOfLastPage:function(){return Math.max(this.buffer.totalRows-this.pageSize,0)
3030 },updateHeightDiv:function(){var b=this.topOfLastPage();
3031 var a=b?this.scrollDiv.clientHeight+Math.floor(this.rowHeight*(b+0.4)):1;
3032 Rico.log("updateHeightDiv, ht="+a+" scrollDiv.clientHeight="+this.scrollDiv.clientHeight+" rowsNotDisplayed="+b);
3033 this.shadowDiv.style.height=a+"px"
3034 },autoRemoveRows:function(a){if(!this.rowHeight){return
3035 }var c=Math.ceil(a/this.rowHeight);
3036 if(this.sizeTo=="data"){c=Math.max(c,this.pageSize-this.buffer.totalRows)
3037 }Rico.log("autoRemoveRows overage="+a+" removeCnt="+c);
3038 for(var b=0;
3039 b<c;
3040 b++){this.removeRow()
3041 }},removeRow:function(){if(this.pageSize<=this.options.minPageRows){return
3042 }this.pageSize--;
3043 for(var b=0;
3044 b<this.headerColCnt;
3045 b++){var a=this.columns[b].cell(this.pageSize);
3046 this.columns[b].dataColDiv.removeChild(a)
3047 }},autoAppendRows:function(a){if(!this.rowHeight){return
3048 }var c=Math.floor(a/this.rowHeight);
3049 Rico.log("autoAppendRows overage="+a+" cnt="+c+" rowHt="+this.rowHeight);
3050 for(var b=0;
3051 b<c;
3052 b++){if(this.sizeTo=="data"&&this.pageSize>=this.buffer.totalRows){break
3053 }this.appendBlankRow()
3054 }},appendBlankRow:function(){if(this.pageSize>=this.options.maxPageRows){return
3055 }Rico.log("appendBlankRow #"+this.pageSize);
3056 var a=this.defaultRowClass(this.pageSize);
3057 for(var d=0;
3058 d<this.headerColCnt;
3059 d++){var b=document.createElement("div");
3060 b.className="ricoLG_cell "+a;
3061 b.id=this.tableId+"_"+this.pageSize+"_"+d;
3062 this.columns[d].dataColDiv.appendChild(b);
3063 if(this.columns[d].format.canDrag&&Rico.registerDraggable){Rico.registerDraggable(new Rico.LiveGridDraggable(this,this.pageSize,d),this.options.dndMgrIdx)
3064 }b.innerHTML="&nbsp;";
3065 if(this.columns[d]._create){this.columns[d]._create(b,this.pageSize)
3066 }}this.pageSize++
3067 },defaultRowClass:function(b){var a;
3068 if(b%2==0){a="ricoLG_evenRow"
3069 }else{a="ricoLG_oddRow"
3070 }return a
3071 },handleMenuClick:function(f){if(!this.menu){return
3072 }this.cancelMenu();
3073 this.unhighlight();
3074 var b;
3075 var a=Rico.eventElement(f);
3076 if(a.className=="ricoLG_highlightDiv"){b=this.highlightIdx
3077 }else{a=Rico.getParentByTagName(a,"div","ricoLG_cell");
3078 if(!a){return
3079 }b=this.winCellIndex(a);
3080 if((this.options.highlightSection&(b.tabIdx+1))==0){return
3081 }}this.highlight(b);
3082 this.highlightEnabled=false;
3083 if(this.hideScroll){this.scrollDiv.style.overflow="hidden"
3084 }this.menuIdx=b;
3085 if(!this.menu.div){this.menu.createDiv()
3086 }this.menu.liveGrid=this;
3087 if(this.menu.buildGridMenu){var d=this.menu.buildGridMenu(b.row,b.column,b.tabIdx);
3088 if(!d){return
3089 }}if(this.options.highlightElem=="selection"&&!this.isSelected(b.cell)){this.selectCell(b.cell)
3090 }var c=this;
3091 this.menu.showmenu(f,function(){c.closeMenu()
3092 })
3093 },closeMenu:function(){if(!this.menuIdx){return
3094 }if(this.hideScroll){this.scrollDiv.style.overflow=""
3095 }this.highlightEnabled=true;
3096 this.menuIdx=null
3097 },winCellIndex:function(b){var d=b.id.lastIndexOf("_",b.id.length);
3098 var a=b.id.lastIndexOf("_",d-1)+1;
3099 var f=parseInt(b.id.substr(d+1));
3100 var e=parseInt(b.id.substr(a,d));
3101 return{row:e,column:f,tabIdx:this.columns[f].tabIdx,cell:b}
3102 },datasetIndex:function(b){var a=this.winCellIndex(b);
3103 a.row+=this.buffer.windowPos;
3104 a.onBlankRow=(a.row>=this.buffer.endPos());
3105 return a
3106 },attachHighlightEvents:function(a){switch(this.options.highlightElem){case"selection":Rico.eventBind(a,"mousedown",this.options.mouseDownHandler,false);
3107 a.ondrag=function(){return false
3108 };
3109 a.onselectstart=function(){return false
3110 };
3111 break;
3112 case"cursorRow":case"cursorCell":Rico.eventBind(a,"mouseover",this.options.rowOverHandler,false);
3113 break
3114 }},detachHighlightEvents:function(a){switch(this.options.highlightElem){case"selection":Rico.eventUnbind(a,"mousedown",this.options.mouseDownHandler,false);
3115 a.ondrag=null;
3116 a.onselectstart=null;
3117 break;
3118 case"cursorRow":case"cursorCell":Rico.eventUnbind(a,"mouseover",this.options.rowOverHandler,false);
3119 break
3120 }},getVisibleSelection:function(){var d=[];
3121 if(this.SelectIdxStart&&this.SelectIdxEnd){var b=Math.max(Math.min(this.SelectIdxEnd.row,this.SelectIdxStart.row)-this.buffer.startPos,this.buffer.windowStart);
3122 var a=Math.min(Math.max(this.SelectIdxEnd.row,this.SelectIdxStart.row)-this.buffer.startPos,this.buffer.windowEnd-1);
3123 var g=Math.min(this.SelectIdxEnd.column,this.SelectIdxStart.column);
3124 var f=Math.max(this.SelectIdxEnd.column,this.SelectIdxStart.column);
3125 for(var h=b;
3126 h<=a;
3127 h++){for(var j=g;
3128 j<=f;
3129 j++){d.push({row:h-this.buffer.windowStart,column:j})
3130 }}}if(this.SelectCtrl){for(var e=0;
3131 e<this.SelectCtrl.length;
3132 e++){if(this.SelectCtrl[e].row>=this.buffer.windowStart&&this.SelectCtrl[e].row<this.buffer.windowEnd){d.push({row:this.SelectCtrl[e].row-this.buffer.windowStart,column:this.SelectCtrl[e].column})
3133 }}}return d
3134 },updateSelectOutline:function(){if(!this.SelectIdxStart||!this.SelectIdxEnd){return
3135 }var d=Math.max(Math.min(this.SelectIdxEnd.row,this.SelectIdxStart.row),this.buffer.windowStart);
3136 var c=Math.min(Math.max(this.SelectIdxEnd.row,this.SelectIdxStart.row),this.buffer.windowEnd-1);
3137 if(d>c){this.HideSelection();
3138 return
3139 }var g=Math.min(this.SelectIdxEnd.column,this.SelectIdxStart.column);
3140 var e=Math.max(this.SelectIdxEnd.column,this.SelectIdxStart.column);
3141 var h=this.columns[g].cell(d-this.buffer.windowStart).offsetTop;
3142 var j=this.columns[g].cell(c-this.buffer.windowStart);
3143 var b=j.offsetTop+j.offsetHeight;
3144 var l=this.columns[g].dataCell.offsetLeft;
3145 var k=this.columns[e].dataCell.offsetLeft;
3146 var a=k+this.columns[e].dataCell.offsetWidth;
3147 this.highlightDiv[0].style.top=this.highlightDiv[3].style.top=this.highlightDiv[1].style.top=(this.hdrHt+h-1)+"px";
3148 this.highlightDiv[2].style.top=(this.hdrHt+b-1)+"px";
3149 this.highlightDiv[3].style.left=(l-2)+"px";
3150 this.highlightDiv[0].style.left=this.highlightDiv[2].style.left=(l-1)+"px";
3151 this.highlightDiv[1].style.left=(a-1)+"px";
3152 this.highlightDiv[0].style.width=this.highlightDiv[2].style.width=(a-l-1)+"px";
3153 this.highlightDiv[1].style.height=this.highlightDiv[3].style.height=(b-h)+"px";
3154 for(var f=0;
3155 f<4;
3156 f++){this.highlightDiv[f].style.display=""
3157 }},HideSelection:function(){var b;
3158 if(this.options.highlightMethod!="class"){for(b=0;
3159 b<this.highlightDiv.length;
3160 b++){this.highlightDiv[b].style.display="none"
3161 }}if(this.options.highlightMethod!="outline"){var a=this.getVisibleSelection();
3162 Rico.log("HideSelection "+a.length);
3163 for(b=0;
3164 b<a.length;
3165 b++){this.unhighlightCell(this.columns[a[b].column].cell(a[b].row))
3166 }}},ShowSelection:function(){if(this.options.highlightMethod!="class"){this.updateSelectOutline()
3167 }if(this.options.highlightMethod!="outline"){var a=this.getVisibleSelection();
3168 for(var b=0;
3169 b<a.length;
3170 b++){this.highlightCell(this.columns[a[b].column].cell(a[b].row))
3171 }}},ClearSelection:function(){Rico.log("ClearSelection");
3172 this.HideSelection();
3173 this.SelectIdxStart=null;
3174 this.SelectIdxEnd=null;
3175 this.SelectCtrl=[]
3176 },selectCell:function(a){this.ClearSelection();
3177 this.SelectIdxStart=this.SelectIdxEnd=this.datasetIndex(a);
3178 this.ShowSelection()
3179 },AdjustSelection:function(a){var b=this.datasetIndex(a);
3180 if(this.SelectIdxStart.tabIdx!=b.tabIdx){return
3181 }this.HideSelection();
3182 this.SelectIdxEnd=b;
3183 this.ShowSelection()
3184 },RefreshSelection:function(){var a=this.getVisibleSelection();
3185 for(var b=0;
3186 b<a.length;
3187 b++){this.columns[a[b].column].displayValue(a[b].row)
3188 }},FillSelection:function(b,f){if(this.SelectIdxStart&&this.SelectIdxEnd){var e=Math.min(this.SelectIdxEnd.row,this.SelectIdxStart.row);
3189 var d=Math.max(this.SelectIdxEnd.row,this.SelectIdxStart.row);
3190 var j=Math.min(this.SelectIdxEnd.column,this.SelectIdxStart.column);
3191 var g=Math.max(this.SelectIdxEnd.column,this.SelectIdxStart.column);
3192 for(var a=e;
3193 a<=d;
3194 a++){for(var k=j;
3195 k<=g;
3196 k++){this.buffer.setValue(a,k,b,f)
3197 }}}if(this.SelectCtrl){for(var h=0;
3198 h<this.SelectCtrl.length;
3199 h++){this.buffer.setValue(this.SelectCtrl[h].row,this.SelectCtrl[h].column,b,f)
3200 }}this.RefreshSelection()
3201 },selectMouseDown:function(d){if(this.highlightEnabled==false){return true
3202 }this.cancelMenu();
3203 var a=Rico.eventElement(d);
3204 if(!Rico.eventLeftClick(d)){return true
3205 }a=Rico.getParentByTagName(a,"div","ricoLG_cell");
3206 if(!a){return true
3207 }Rico.eventStop(d);
3208 var c=this.datasetIndex(a);
3209 if(c.onBlankRow){return true
3210 }Rico.log("selectMouseDown @"+c.row+","+c.column);
3211 if(d.ctrlKey){if(!this.SelectIdxStart||this.options.highlightMethod!="class"){return true
3212 }if(!this.isSelected(a)){this.highlightCell(a);
3213 this.SelectCtrl.push(this.datasetIndex(a))
3214 }else{for(var b=0;
3215 b<this.SelectCtrl.length;
3216 b++){if(this.SelectCtrl[b].row==c.row&&this.SelectCtrl[b].column==c.column){this.unhighlightCell(a);
3217 this.SelectCtrl.splice(b,1);
3218 break
3219 }}}}else{if(d.shiftKey){if(!this.SelectIdxStart){return true
3220 }this.AdjustSelection(a)
3221 }else{this.selectCell(a);
3222 this.pluginSelect()
3223 }}return false
3224 },pluginSelect:function(){if(this.selectPluggedIn){return
3225 }var a=this.tbody[this.SelectIdxStart.tabIdx];
3226 Rico.eventBind(a,"mouseover",this.options.mouseOverHandler,false);
3227 Rico.eventBind(this.outerDiv,"mouseup",this.options.mouseUpHandler,false);
3228 this.selectPluggedIn=true
3229 },unplugSelect:function(){if(!this.selectPluggedIn){return
3230 }var a=this.tbody[this.SelectIdxStart.tabIdx];
3231 Rico.eventUnbind(a,"mouseover",this.options.mouseOverHandler,false);
3232 Rico.eventUnbind(this.outerDiv,"mouseup",this.options.mouseUpHandler,false);
3233 this.selectPluggedIn=false
3234 },selectMouseUp:function(b){this.unplugSelect();
3235 var a=Rico.eventElement(b);
3236 a=Rico.getParentByTagName(a,"div","ricoLG_cell");
3237 if(!a){return
3238 }if(this.SelectIdxStart&&this.SelectIdxEnd){this.AdjustSelection(a)
3239 }else{this.ClearSelection()
3240 }},selectMouseOver:function(b){var a=Rico.eventElement(b);
3241 a=Rico.getParentByTagName(a,"div","ricoLG_cell");
3242 if(!a){return
3243 }this.AdjustSelection(a);
3244 Rico.eventStop(b)
3245 },isSelected:function(a){if(this.options.highlightMethod!="outline"){return Rico.hasClass(a,this.options.highlightClass)
3246 }if(!this.SelectIdxStart||!this.SelectIdxEnd){return false
3247 }var c=Math.max(Math.min(this.SelectIdxEnd.row,this.SelectIdxStart.row),this.buffer.windowStart);
3248 var b=Math.min(Math.max(this.SelectIdxEnd.row,this.SelectIdxStart.row),this.buffer.windowEnd-1);
3249 if(c>b){return false
3250 }var e=Math.min(this.SelectIdxEnd.column,this.SelectIdxStart.column);
3251 var d=Math.max(this.SelectIdxEnd.column,this.SelectIdxStart.column);
3252 var f=this.datasetIndex(a);
3253 return(c<=f.row&&f.row<=b&&e<=f.column&&f.column<=d)
3254 },highlightCell:function(a){Rico.addClass(a,this.options.highlightClass)
3255 },unhighlightCell:function(a){if(a==null){return
3256 }Rico.removeClass(a,this.options.highlightClass)
3257 },selectRow:function(a){for(var b=0;
3258 b<this.columns.length;
3259 b++){this.highlightCell(this.columns[b].cell(a))
3260 }},unselectRow:function(a){for(var b=0;
3261 b<this.columns.length;
3262 b++){this.unhighlightCell(this.columns[b].cell(a))
3263 }},rowMouseOver:function(c){if(!this.highlightEnabled){return
3264 }var a=Rico.eventElement(c);
3265 a=Rico.getParentByTagName(a,"div","ricoLG_cell");
3266 if(!a){return
3267 }var b=this.winCellIndex(a);
3268 if((this.options.highlightSection&(b.tabIdx+1))==0){return
3269 }this.highlight(b)
3270 },highlight:function(a){if(this.options.highlightMethod!="outline"){this.cursorSetClass(a)
3271 }if(this.options.highlightMethod!="class"){this.cursorOutline(a)
3272 }this.highlightIdx=a
3273 },cursorSetClass:function(e){switch(this.options.highlightElem){case"menuCell":case"cursorCell":if(this.highlightIdx){this.unhighlightCell(this.highlightIdx.cell)
3274 }this.highlightCell(e.cell);
3275 break;
3276 case"menuRow":case"cursorRow":if(this.highlightIdx){this.unselectRow(this.highlightIdx.row)
3277 }var b=this.options.highlightSection&1;
3278 var a=this.options.highlightSection&2;
3279 var f=b?0:this.options.frozenColumns;
3280 var d=a?this.columns.length:this.options.frozenColumns;
3281 for(var g=f;
3282 g<d;
3283 g++){this.highlightCell(this.columns[g].cell(e.row))
3284 }break;
3285 default:return
3286 }},cursorOutline:function(c){var d;
3287 switch(this.options.highlightElem){case"menuCell":case"cursorCell":d=this.highlightDiv[c.tabIdx];
3288 d.style.left=(this.columns[c.column].dataCell.offsetLeft-1)+"px";
3289 d.style.width=this.columns[c.column].colWidth;
3290 this.highlightDiv[1-c.tabIdx].style.display="none";
3291 break;
3292 case"menuRow":case"cursorRow":d=this.highlightDiv[0];
3293 var b=this.options.highlightSection&1;
3294 var a=this.options.highlightSection&2;
3295 d.style.left=b?"0px":this.frozenTabs.style.width;
3296 d.style.width=((b?this.frozenTabs.offsetWidth:0)+(a?this.innerDiv.offsetWidth:0)-4)+"px";
3297 break;
3298 default:return
3299 }d.style.top=(this.hdrHt+c.row*this.rowHeight-1)+"px";
3300 d.style.height=(this.rowHeight-1)+"px";
3301 d.style.display=""
3302 },unhighlight:function(){switch(this.options.highlightElem){case"menuCell":case"cursorCell":if(this.highlightIdx){this.unhighlightCell(this.highlightIdx.cell)
3303 }if(!this.highlightDiv){return
3304 }for(var a=0;
3305 a<2;
3306 a++){this.highlightDiv[a].style.display="none"
3307 }break;
3308 case"menuRow":case"cursorRow":if(this.highlightIdx){this.unselectRow(this.highlightIdx.row)
3309 }if(this.highlightDiv){this.highlightDiv[0].style.display="none"
3310 }break
3311 }},resetContents:function(){Rico.log("resetContents");
3312 this.ClearSelection();
3313 this.buffer.clear();
3314 this.clearRows();
3315 this.clearBookmark()
3316 },setImages:function(){for(var a=0;
3317 a<this.columns.length;
3318 a++){this.columns[a].setImage()
3319 }},findSortedColumn:function(){for(var a=0;
3320 a<this.columns.length;
3321 a++){if(this.columns[a].isSorted()){return a
3322 }}return -1
3323 },findColumnName:function(a){for(var b=0;
3324 b<this.columns.length;
3325 b++){if(this.columns[b].fieldName==a){return b
3326 }}return -1
3327 },findColumnsBySpec:function(b,c){var a=[];
3328 for(var d=0;
3329 d<this.options.columnSpecs.length;
3330 d++){if(this.options.columnSpecs[d][b]==c){a.push(d)
3331 }}return a
3332 },setSortUI:function(b,c){Rico.log("setSortUI: "+b+" "+c);
3333 var a=this.findSortedColumn();
3334 if(a>=0){c=this.columns[a].getSortDirection()
3335 }else{if(typeof c!="string"){c=Rico.ColumnConst.SORT_ASC
3336 }else{c=c.toUpperCase();
3337 if(c!=Rico.ColumnConst.SORT_DESC){c=Rico.ColumnConst.SORT_ASC
3338 }}switch(typeof b){case"string":a=this.findColumnName(b);
3339 break;
3340 case"number":a=b;
3341 break
3342 }}if(typeof(a)!="number"||a<0){return
3343 }this.clearSort();
3344 this.columns[a].setSorted(c);
3345 this.buffer.sortBuffer(a)
3346 },clearSort:function(){for(var a=0;
3347 a<this.columns.length;
3348 a++){this.columns[a].setUnsorted()
3349 }},clearFilters:function(){for(var a=0;
3350 a<this.columns.length;
3351 a++){this.columns[a].setUnfiltered(true)
3352 }if(this.options.filterHandler){this.options.filterHandler()
3353 }},filterCount:function(){for(var a=0,b=0;
3354 a<this.columns.length;
3355 a++){if(this.columns[a].isFiltered()){b++
3356 }}return b
3357 },sortHandler:function(){this.cancelMenu();
3358 this.ClearSelection();
3359 this.setImages();
3360 var a=this.findSortedColumn();
3361 if(a<0){return
3362 }Rico.log("sortHandler: sorting column "+a);
3363 this.buffer.sortBuffer(a);
3364 this.clearRows();
3365 this.scrollDiv.scrollTop=0;
3366 this.buffer.fetch(0)
3367 },filterHandler:function(){Rico.log("filterHandler");
3368 this.cancelMenu();
3369 if(this.buffer.processingRequest){this.queueFilter=true;
3370 return
3371 }this.unplugScroll();
3372 this.ClearSelection();
3373 this.setImages();
3374 this.clearBookmark();
3375 this.clearRows();
3376 this.buffer.fetch(-1);
3377 Rico.runLater(10,this,"pluginScroll")
3378 },clearBookmark:function(){if(this.bookmark){this.bookmark.innerHTML="&nbsp;"
3379 }},bookmarkHandler:function(a,d){var b;
3380 if(isNaN(a)||!this.bookmark){return
3381 }var c=this.buffer.totalRows;
3382 if(c<d){d=c
3383 }if(c<=0){b=Rico.getPhraseById("bookmarkNoMatch")
3384 }else{if(d<0){b=Rico.getPhraseById("bookmarkNoRec")
3385 }else{if(this.buffer.foundRowCount){b=Rico.getPhraseById("bookmarkExact",a,d,c)
3386 }else{b=Rico.getPhraseById("bookmarkAbout",a,d,c)
3387 }}}this.bookmark.innerHTML=b
3388 },clearRows:function(){if(this.isBlank==true){return
3389 }for(var a=0;
3390 a<this.columns.length;
3391 a++){this.columns[a].clearColumn()
3392 }this.isBlank=true
3393 },refreshContents:function(j){Rico.log("refreshContents1 "+this.tableId+": startPos="+j+" lastRow="+this.lastRowPos+" PartBlank="+this.isPartialBlank+" pageSize="+this.pageSize);
3394 this.hideMsg();
3395 this.cancelMenu();
3396 this.unhighlight();
3397 if(this.queueFilter){Rico.log("refreshContents: cancelling refresh because filter has changed");
3398 this.queueFilter=false;
3399 this.filterHandler();
3400 return
3401 }this.highlightEnabled=this.options.highlightSection!="none";
3402 var h=this.buffer.startPos>j;
3403 var d=h?this.buffer.startPos:j;
3404 this.contentStartPos=d+1;
3405 var b=Math.min(this.buffer.startPos+this.buffer.size,j+this.pageSize);
3406 this.buffer.setWindow(d,b);
3407 Rico.log("refreshContents2 "+this.tableId+": cStartPos="+d+" cEndPos="+b+" vPrecedesBuf="+h+" b.startPos="+this.buffer.startPos);
3408 if(j==this.lastRowPos&&!this.isPartialBlank&&!this.isBlank){return
3409 }this.isBlank=false;
3410 var m=this.options.onRefreshComplete;
3411 if((j+this.pageSize<this.buffer.startPos)||(this.buffer.startPos+this.buffer.size<j)||(this.buffer.size==0)){this.clearRows();
3412 if(m){m(this.contentStartPos,b)
3413 }return
3414 }Rico.log("refreshContents: contentStartPos="+d+" contentEndPos="+b+" viewPrecedesBuffer="+h);
3415 var n=b-d;
3416 var f=this.pageSize-n;
3417 var k=h?0:n;
3418 var e=h?f:0;
3419 for(var a=0;
3420 a<n;
3421 a++){for(var l=0;
3422 l<this.columns.length;
3423 l++){this.columns[l].displayValue(a+e)
3424 }}for(var g=0;
3425 g<f;
3426 g++){this.blankRow(g+k)
3427 }if(this.options.highlightElem=="selection"){this.ShowSelection()
3428 }this.isPartialBlank=f>0;
3429 this.lastRowPos=j;
3430 Rico.log("refreshContents complete, startPos="+j);
3431 if(m){m(this.contentStartPos,b)
3432 }},scrollToRow:function(a){var b=this.rowToPixel(a);
3433 Rico.log("scrollToRow, rowOffset="+a+" pixel="+b);
3434 this.scrollDiv.scrollTop=b;
3435 if(this.options.onscroll){this.options.onscroll(this,a)
3436 }},scrollUp:function(){this.moveRelative(-1)
3437 },scrollDown:function(){this.moveRelative(1)
3438 },pageUp:function(){this.moveRelative(-this.pageSize)
3439 },pageDown:function(){this.moveRelative(this.pageSize)
3440 },adjustRow:function(a){var b=this.topOfLastPage();
3441 if(b==0||!a){return 0
3442 }return Math.min(b,a)
3443 },rowToPixel:function(a){return this.adjustRow(a)*this.rowHeight
3444 },pixeltorow:function(c){var b=this.topOfLastPage();
3445 if(b==0){return 0
3446 }var a=parseInt(c/this.rowHeight,10);
3447 return Math.min(b,a)
3448 },moveRelative:function(b){var a=Math.max(this.scrollDiv.scrollTop+b*this.rowHeight,0);
3449 a=Math.min(a,this.scrollDiv.scrollHeight);
3450 this.scrollDiv.scrollTop=a
3451 },pluginScroll:function(){if(this.scrollPluggedIn){return
3452 }Rico.log("pluginScroll: wheelEvent="+this.wheelEvent);
3453 Rico.eventBind(this.scrollDiv,"scroll",this.scrollEventFunc,false);
3454 for(var a=0;
3455 a<2;
3456 a++){Rico.eventBind(this.tabs[a],this.wheelEvent,this.wheelEventFunc,false)
3457 }this.scrollPluggedIn=true
3458 },unplugScroll:function(){if(!this.scrollPluggedIn){return
3459 }Rico.log("unplugScroll");
3460 Rico.eventUnbind(this.scrollDiv,"scroll",this.scrollEventFunc,false);
3461 for(var a=0;
3462 a<2;
3463 a++){Rico.eventUnbind(this.tabs[a],this.wheelEvent,this.wheelEventFunc,false)
3464 }this.scrollPluggedIn=false
3465 },handleWheel:function(a){var b=0;
3466 if(a.wheelDelta){if(Rico.isOpera){b=a.wheelDelta/120
3467 }else{if(Rico.isWebKit){b=-a.wheelDelta/12
3468 }else{b=-a.wheelDelta/120
3469 }}}else{if(a.detail){b=a.detail/3
3470 }}if(b){this.moveRelative(b)
3471 }Rico.eventStop(a);
3472 return false
3473 },handleScroll:function(g){if(this.scrollTimeout){clearTimeout(this.scrollTimeout)
3474 }this.setHorizontalScroll();
3475 var a=this.scrollDiv.scrollTop;
3476 var b=this.lastScrollPos-a;
3477 if(b==0){return
3478 }var d=this.pixeltorow(a);
3479 if(d==this.lastRowPos&&!this.isPartialBlank&&!this.isBlank){return
3480 }var f=new Date();
3481 Rico.log("handleScroll, newrow="+d+" scrtop="+a);
3482 if(this.options.highlightElem=="selection"){this.HideSelection()
3483 }this.buffer.fetch(d);
3484 if(this.options.onscroll){this.options.onscroll(this,d)
3485 }this.scrollTimeout=Rico.runLater(1200,this,"scrollIdle");
3486 this.lastScrollPos=this.scrollDiv.scrollTop;
3487 var c=new Date()
3488 },scrollIdle:function(){if(this.options.onscrollidle){this.options.onscrollidle()
3489 }}};
3490 Rico.LiveGridColumn=function(a,d,c,b){this.initialize(a,d,c,b)
3491 };
3492 Rico.LiveGridColumn.prototype={initialize:function(liveGrid,colIdx,hdrInfo,tabIdx){Rico.extend(this,new Rico.TableColumnBase());
3493 this.baseInit(liveGrid,colIdx,hdrInfo,tabIdx);
3494 this.buffer=liveGrid.buffer;
3495 if(typeof(this.format.type)!="string"||this.format.EntryType=="tinyMCE"){this.format.type="raw"
3496 }if(typeof this.isNullable!="boolean"){this.isNullable=/number|date/.test(this.format.type)
3497 }this.isText=/raw|text|showTags/.test(this.format.type);
3498 Rico.log(" sortable="+this.sortable+" filterable="+this.filterable+" hideable="+this.hideable+" isNullable="+this.isNullable+" isText="+this.isText);
3499 this.fixHeaders(this.liveGrid.tableId,this.options.hdrIconsFirst);
3500 if(this["format_"+this.format.type]){this._format=this["format_"+this.format.type]
3501 }if(this.format.control){if(typeof this.format.control=="string"){this.format.control=eval(this.format.control)
3502 }for(var property in this.format.control){if(property.charAt(0)=="_"){Rico.log("Copying control property "+property+" to "+this);
3503 this[property]=this.format.control[property]
3504 }}}},sortAsc:function(){this.setColumnSort(Rico.ColumnConst.SORT_ASC)
3505 },sortDesc:function(){this.setColumnSort(Rico.ColumnConst.SORT_DESC)
3506 },setColumnSort:function(a){this.liveGrid.clearSort();
3507 this.setSorted(a);
3508 if(this.liveGrid.options.saveColumnInfo.sort){this.liveGrid.setCookie()
3509 }if(this.options.sortHandler){this.options.sortHandler()
3510 }},isSortable:function(){return this.sortable
3511 },isSorted:function(){return this.currentSort!=Rico.ColumnConst.UNSORTED
3512 },getSortDirection:function(){return this.currentSort
3513 },toggleSort:function(){if(this.buffer&&this.buffer.totalRows==0){return
3514 }if(this.currentSort==Rico.ColumnConst.SORT_ASC){this.sortDesc()
3515 }else{this.sortAsc()
3516 }},setUnsorted:function(){this.setSorted(Rico.ColumnConst.UNSORTED)
3517 },setSorted:function(a){this.currentSort=a
3518 },canFilter:function(){return this.filterable
3519 },getFilterText:function(){var c=[];
3520 for(var b=0;
3521 b<this.filterValues.length;
3522 b++){var a=this.filterValues[b];
3523 c.push(a==""?Rico.getPhraseById("filterBlank"):a)
3524 }switch(this.filterOp){case"EQ":return"= "+c.join(", ");
3525 case"NE":return Rico.getPhraseById("filterNot",c.join(", "));
3526 case"LE":return"<= "+c[0];
3527 case"GE":return">= "+c[0];
3528 case"LIKE":return Rico.getPhraseById("filterLike",c[0]);
3529 case"NULL":return Rico.getPhraseById("filterEmpty");
3530 case"NOTNULL":return Rico.getPhraseById("filterNotEmpty")
3531 }return"?"
3532 },getFilterQueryParm:function(){if(this.filterType==Rico.ColumnConst.UNFILTERED){return""
3533 }var a="&f["+this.index+"][op]="+this.filterOp;
3534 a+="&f["+this.index+"][len]="+this.filterValues.length;
3535 for(var b=0;
3536 b<this.filterValues.length;
3537 b++){a+="&f["+this.index+"]["+b+"]="+escape(this.filterValues[b])
3538 }return a
3539 },setUnfiltered:function(a){this.filterType=Rico.ColumnConst.UNFILTERED;
3540 if(this.liveGrid.options.saveColumnInfo.filter){this.liveGrid.setCookie()
3541 }if(this.removeFilterFunc){this.removeFilterFunc()
3542 }if(this.options.filterHandler&&!a){this.options.filterHandler()
3543 }},setFilterEQ:function(){this.setUserFilter("EQ")
3544 },setFilterNE:function(){this.setUserFilter("NE")
3545 },addFilterNE:function(){this.filterValues.push(this.userFilter);
3546 if(this.liveGrid.options.saveColumnInfo.filter){this.liveGrid.setCookie()
3547 }if(this.options.filterHandler){this.options.filterHandler()
3548 }},setFilterGE:function(){this.setUserFilter("GE")
3549 },setFilterLE:function(){this.setUserFilter("LE")
3550 },setFilterKW:function(a){if(a!=""&&a!=null){this.setFilter("LIKE",a,Rico.ColumnConst.USERFILTER)
3551 }else{this.setUnfiltered(false)
3552 }},setUserFilter:function(a){this.setFilter(a,this.userFilter,Rico.ColumnConst.USERFILTER)
3553 },setSystemFilter:function(a,b){this.setFilter(a,b,Rico.ColumnConst.SYSTEMFILTER)
3554 },setFilter:function(a,c,b,d){this.filterValues=typeof(c)=="object"?c:[c];
3555 this.filterType=b;
3556 this.filterOp=a;
3557 if(b==Rico.ColumnConst.USERFILTER&&this.liveGrid.options.saveColumnInfo.filter){this.liveGrid.setCookie()
3558 }this.removeFilterFunc=d;
3559 if(this.options.filterHandler){this.options.filterHandler()
3560 }},isFiltered:function(){return this.filterType==Rico.ColumnConst.USERFILTER
3561 },filterChange:function(a){var b=Rico.eventElement(a);
3562 if(b.value==this.liveGrid.options.FilterAllToken){this.setUnfiltered()
3563 }else{this.setFilter("EQ",b.value,Rico.ColumnConst.USERFILTER,function(){b.selectedIndex=0
3564 })
3565 }},filterClear:function(a){this.filterField.value="";
3566 this.setUnfiltered()
3567 },filterKeypress:function(c){var a=Rico.eventElement(c);
3568 if(typeof this.lastKeyFilter!="string"){this.lastKeyFilter=""
3569 }if(this.lastKeyFilter==a.value){return
3570 }var b=a.value;
3571 Rico.log("filterKeypress: "+this.index+" "+b);
3572 this.lastKeyFilter=b;
3573 if(b==""||b=="*"){this.setUnfiltered()
3574 }else{this.setFilter("LIKE",b,Rico.ColumnConst.USERFILTER,function(){a.value=""
3575 })
3576 }},mFilterSelectClick:function(a){Rico.eventStop(a);
3577 if(this.mFilter.style.display!="none"){this.mFilterFinish(a);
3578 if(Rico.isIE&&Rico.ieVersion<=6){this.filterField.focus()
3579 }else{this.filterField.blur()
3580 }}else{var b=Rico.cumulativeOffset(this.filterField);
3581 this.mFilter.style.top=(b.top+this.filterField.offsetHeight)+"px";
3582 this.mFilter.style.left=b.left+"px";
3583 this.mFilter.style.width=Math.min(this.filterField.offsetWidth,parseInt(this.colWidth,10))+"px";
3584 Rico.show(this.mFilter);
3585 this.mFilterFocus.focus()
3586 }},mFilterFinish:function(g){if(!this.mFilterChange){Rico.hide(this.mFilter);
3587 return
3588 }if(this.mFilterInputs[0].checked){this.mFilterReset();
3589 Rico.hide(this.mFilter);
3590 this.setUnfiltered();
3591 return
3592 }var c=[];
3593 var a=[];
3594 for(var d=1;
3595 d<this.mFilterInputs.length;
3596 d++){if(this.mFilterInputs[d].checked){c.push(this.mFilterInputs[d].value);
3597 a.push(this.mFilterLabels[d].innerHTML)
3598 }}if(c.length>0){var f=a.join(", ");
3599 this.filterField.options[0].text=f;
3600 this.filterField.title=f;
3601 Rico.hide(this.mFilter);
3602 this.mFilterChange=false;
3603 var b=this;
3604 this.setFilter("EQ",c,Rico.ColumnConst.USERFILTER,function(){b.mFilterReset()
3605 })
3606 }else{alert("Please select at least one value")
3607 }},mFilterReset:function(){var a=this.mFilterLabels[0].innerHTML;
3608 this.filterField.options[0].text=a;
3609 this.filterField.title=a
3610 },mFilterAllClick:function(c){var a=this.mFilterInputs[0].checked;
3611 for(var b=1;
3612 b<this.mFilterInputs.length;
3613 b++){this.mFilterInputs[b].checked=a
3614 }this.mFilterChange=true
3615 },mFilterOtherClick:function(a){this.mFilterInputs[0].checked=false;
3616 this.mFilterChange=true
3617 },format_text:function(a){if(typeof a!="string"){return"&nbsp;"
3618 }else{return Rico.stripTags(a)
3619 }},format_showTags:function(a){if(typeof a!="string"){return"&nbsp;"
3620 }else{return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")
3621 }},format_number:function(a){if(typeof a=="undefined"||a==""||a==null){return"&nbsp;"
3622 }else{return Rico.formatNumber(a,this.format)
3623 }},format_datetime:function(a){if(typeof a=="undefined"||a==""||a==null){return"&nbsp;"
3624 }else{var b=Rico.setISO8601(a);
3625 if(!b){return a
3626 }return(this.format.prefix||"")+Rico.formatDate(b,this.format.dateFmt||"translateDateTime")+(this.format.suffix||"")
3627 }},format_UTCasLocalTime:function(a){if(typeof a=="undefined"||a==""||a==null){return"&nbsp;"
3628 }else{var c=new Date();
3629 var b=Rico.setISO8601(a,-c.getTimezoneOffset());
3630 if(!b){return a
3631 }return(this.format.prefix||"")+Rico.formatDate(b,this.format.dateFmt||"translateDateTime")+(this.format.suffix||"")
3632 }},format_date:function(a){if(typeof a=="undefined"||a==null||a==""){return"&nbsp;"
3633 }else{var b=Rico.setISO8601(a);
3634 if(!b){return a
3635 }return(this.format.prefix||"")+Rico.formatDate(b,this.format.dateFmt||"translateDate")+(this.format.suffix||"")
3636 }},fixHeaders:function(d,e){if(this.sortable){var c=Rico.eventHandle(this,"toggleSort");
3637 switch(this.options.headingSort){case"link":var b=Rico.wrapChildren(this.hdrCellDiv,"ricoSort",undefined,"a");
3638 b.href="javascript:void(0)";
3639 Rico.eventBind(b,"click",c);
3640 break;
3641 case"hover":Rico.eventBind(this.hdrCellDiv,"click",c);
3642 break
3643 }}this.imgFilter=document.createElement("span");
3644 this.imgFilter.style.display="none";
3645 this.imgFilter.className="rico-icon ricoLG_filterCol";
3646 this.imgSort=document.createElement("span");
3647 this.imgSort.style.display="none";
3648 this.imgSort.style.verticalAlign="top";
3649 if(e){this.hdrCellDiv.insertBefore(this.imgSort,this.hdrCellDiv.firstChild);
3650 this.hdrCellDiv.insertBefore(this.imgFilter,this.hdrCellDiv.firstChild)
3651 }else{this.hdrCellDiv.appendChild(this.imgFilter);
3652 this.hdrCellDiv.appendChild(this.imgSort)
3653 }if(!this.format.filterUI){Rico.eventBind(this.imgFilter,"click",Rico.eventHandle(this,"filterClick"),false)
3654 }},filterClick:function(a){if(this.filterType==Rico.ColumnConst.USERFILTER&&this.filterOp=="LIKE"){this.liveGrid.openKeyword(this.index)
3655 }},getValue:function(a){return this.buffer.getWindowCell(a,this.index)
3656 },getBufferAttr:function(a){return this.buffer.getWindowAttr(a,this.index)
3657 },setValue:function(b,a){this.buffer.setWindowValue(b,this.index,a)
3658 },_format:function(a){return a
3659 },_display:function(a,b){b.innerHTML=this._format(a)
3660 },_export:function(a){return this._format(a)
3661 },exportBuffer:function(a){return this._export(this.buffer.getValue(a,this.index))
3662 },displayValue:function(f){var a=this.getValue(f);
3663 if(a==null){this.clearCell(f);
3664 return
3665 }var e=this.cell(f);
3666 this._display(a,e,f);
3667 var d=this.buffer.options.acceptAttr;
3668 if(d.length==0){return
3669 }var c=this.getBufferAttr(f);
3670 if(c==null){return
3671 }for(var b=0;
3672 b<d.length;
3673 b++){c=c["_"+d[b]]||"";
3674 switch(d[b]){case"style":e.style.cssText=c;
3675 break;
3676 case"class":e.className=c;
3677 break;
3678 default:e["_"+d[b]]=c;
3679 break
3680 }}}};
3681 Rico.TableColumn={};
3682 Rico.TableColumn.checkboxKey=function(a){this.initialize(a)
3683 };
3684 Rico.TableColumn.checkboxKey.prototype={initialize:function(a){this._checkboxes=[];
3685 this._spans=[];
3686 this._KeyHash={};
3687 this._showKey=a
3688 },_create:function(a,b){this._checkboxes[b]=Rico.createFormField(a,"input","checkbox",this.liveGrid.tableId+"_chkbox_"+this.index+"_"+b);
3689 this._spans[b]=Rico.createFormField(a,"span",null,this.liveGrid.tableId+"_desc_"+this.index+"_"+b);
3690 this._clear(a,b);
3691 Rico.eventBind(this._checkboxes[b],"click",Rico.eventHandle(this,"_onclick"))
3692 },_onclick:function(c){var b=Event.element(c);
3693 var d=parseInt(b.id.substr((b.id.lastIndexOf("_",b.id.length)+1)));
3694 var a=this.getValue(d);
3695 if(b.checked){this._addChecked(a)
3696 }else{this._remChecked(a)
3697 }},_clear:function(b,c){var a=this._checkboxes[c];
3698 a.checked=false;
3699 a.style.display="none";
3700 this._spans[c].innerHTML=""
3701 },_display:function(a,c,d){var b=this._checkboxes[d];
3702 b.style.display="";
3703 b.checked=this._KeyHash[a];
3704 if(this._showKey){this._spans[d].innerHTML=a
3705 }},_SelectedKeys:function(){return Rico.keys(this._KeyHash)
3706 },_addChecked:function(a){this._KeyHash[a]=1
3707 },_remChecked:function(a){delete this._KeyHash[a]
3708 }};
3709 Rico.TableColumn.checkbox=function(b,c,a,d){this.initialize(b,c,a,d)
3710 };
3711 Rico.TableColumn.checkbox.prototype={initialize:function(b,c,a,d){this._checkedValue=b;
3712 this._uncheckedValue=c;
3713 this._defaultValue=a||false;
3714 this._readOnly=d||false;
3715 this._checkboxes=[]
3716 },_create:function(a,b){this._checkboxes[b]=Rico.createFormField(a,"input","checkbox",this.liveGrid.tableId+"_chkbox_"+this.index+"_"+b);
3717 this._clear(a,b);
3718 if(this._readOnly){this._checkboxes[b].disabled=true
3719 }else{Rico.eventBind(this._checkboxes[b],"click",Rico.eventHandle(this,"_onclick"))
3720 }},_onclick:function(c){var a=Event.element(c);
3721 var d=parseInt(a.id.substr((a.id.lastIndexOf("_",a.id.length)+1)));
3722 var b=a.checked?this._checkedValue:this._uncheckedValue;
3723 this.setValue(d,b)
3724 },_clear:function(b,c){var a=this._checkboxes[c];
3725 a.checked=this._defaultValue;
3726 a.style.display="none"
3727 },_display:function(a,c,d){var b=this._checkboxes[d];
3728 b.style.display="";
3729 b.checked=(a==this._checkedValue)
3730 }};
3731 Rico.TableColumn.textbox=function(c,b,a){this.initialize(c,b,a)
3732 };
3733 Rico.TableColumn.textbox.prototype={initialize:function(c,b,a){this._boxSize=c;
3734 this._boxMaxLen=b;
3735 this._readOnly=a||false;
3736 this._textboxes=[]
3737 },_create:function(b,c){var a=Rico.createFormField(b,"input","text",this.liveGrid.tableId+"_txtbox_"+this.index+"_"+c);
3738 a.size=this._boxSize;
3739 a.maxLength=this._boxMaxLen;
3740 this._textboxes[c]=a;
3741 this._clear(b,c);
3742 if(this._readOnly){a.disabled=true
3743 }else{Rico.eventBind(a,"change",Rico.eventHandle(this,"_onchange"))
3744 }},_onchange:function(b){var a=Event.element(b);
3745 var c=parseInt(a.id.substr((a.id.lastIndexOf("_",a.id.length)+1)));
3746 this.setValue(c,a.value)
3747 },_clear:function(b,c){var a=this._textboxes[c];
3748 a.value="";
3749 a.style.display="none"
3750 },_display:function(a,c,d){var b=this._textboxes[d];
3751 b.style.display="";
3752 b.value=a
3753 }};
3754 Rico.TableColumn.HighlightCell=function(a,c,e,b,d){this.initialize(a,c,e,b,d)
3755 };
3756 Rico.TableColumn.HighlightCell.prototype={initialize:function(a,c,e,b,d){this._chkcol=a;
3757 this._chkval=c;
3758 this._chkop=d;
3759 this._highlightColor=e;
3760 this._highlightBackground=b
3761 },_clear:function(a,b){a.style.color="";
3762 a.style.backgroundColor="";
3763 a.innerHTML="&nbsp;"
3764 },_display:function(b,d,e){var a=this.liveGrid.buffer.getWindowValue(e,this._chkcol);
3765 var c;
3766 switch(this._chkop){case"!=":c=(a!=this._chkval);
3767 break;
3768 case">":c=(a>this._chkval);
3769 break;
3770 case"<":c=(a<this._chkval);
3771 break;
3772 case">=":c=(a>=this._chkval);
3773 break;
3774 case"<=":c=(a<=this._chkval);
3775 break;
3776 case"abs>":c=(Math.abs(a)>this._chkval);
3777 break;
3778 case"abs<":c=(Math.abs(a)<this._chkval);
3779 break;
3780 case"abs>=":c=(Math.abs(a)>=this._chkval);
3781 break;
3782 case"abs<=":c=(Math.abs(a)<=this._chkval);
3783 break;
3784 default:c=(a==this._chkval);
3785 break
3786 }d.style.color=c?this._highlightColor:"";
3787 d.style.backgroundColor=c?this._highlightBackground:"";
3788 d.innerHTML=this._format(b)
3789 }};
3790 Rico.TableColumn.bgColor=function(){};
3791 Rico.TableColumn.bgColor.prototype={_clear:function(a,b){a.style.backgroundColor=""
3792 },_display:function(a,b,c){b.style.backgroundColor=a
3793 }};
3794 Rico.TableColumn.link=function(a,c,b){this.initialize(a,c,b)
3795 };
3796 Rico.TableColumn.link.prototype={initialize:function(a,c,b){this._href=a;
3797 this._target=c;
3798 this._linktext=b;
3799 this._anchors=[]
3800 },_create:function(a,b){this._anchors[b]=Rico.createFormField(a,"a",null,this.liveGrid.tableId+"_a_"+this.index+"_"+b);
3801 if(this._target){this._anchors[b].target=this._target
3802 }this._clear(a,b)
3803 },_clear:function(a,b){this._anchors[b].href="";
3804 this._anchors[b].innerHTML=""
3805 },_display:function(b,d,f){var c=this.liveGrid.buffer;
3806 var a=this._href=="self"?b:this._href.replace(/\{\d+\}/g,function(g){var h=parseInt(g.substr(1),10);
3807 return encodeURIComponent(c.getWindowValue(f,h))
3808 });
3809 var e=this._linktext||b;
3810 if(a&&e){this._anchors[f].href=a;
3811 this._anchors[f].innerHTML=e
3812 }else{this._clear(d,f)
3813 }}};
3814 Rico.TableColumn.image=function(a,b){this.initialize(a,b)
3815 };
3816 Rico.TableColumn.image.prototype={initialize:function(a,b){this._img=[];
3817 this._prefix=a||"";
3818 this._suffix=b||""
3819 },_create:function(a,b){this._img[b]=Rico.createFormField(a,"img",null,this.liveGrid.tableId+"_img_"+this.index+"_"+b);
3820 this._clear(a,b)
3821 },_clear:function(b,c){var a=this._img[c];
3822 a.style.display="none";
3823 a.src=""
3824 },_display:function(b,c,d){var a=this._img[d];
3825 this._img[d].src=this._prefix+b+this._suffix;
3826 a.style.display=""
3827 }};
3828 Rico.TableColumn.lookup=function(c,a,b){this.initialize(c,a,b)
3829 };
3830 Rico.TableColumn.lookup.prototype={initialize:function(d,a,c){this._map=d;
3831 this._defaultCode=a||"";
3832 this._defaultDesc=c||"&nbsp;";
3833 var b=this;
3834 this._sortfunc=function(e){return b._sortvalue(e)
3835 };
3836 this._codes=[];
3837 this._descriptions=[]
3838 },_create:function(a,b){this._descriptions[b]=Rico.createFormField(a,"span",null,this.liveGrid.tableId+"_desc_"+this.index+"_"+b);
3839 this._codes[b]=Rico.createFormField(a,"input","hidden",this.liveGrid.tableId+"_code_"+this.index+"_"+b);
3840 this._clear(a,b)
3841 },_clear:function(a,b){this._codes[b].value=this._defaultCode;
3842 this._descriptions[b].innerHTML=this._defaultDesc
3843 },_sortvalue:function(a){return this._getdesc(a).replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&nbsp;/g," ")
3844 },_getdesc:function(a){var b=this._map[a];
3845 return(typeof b=="string")?b:this._defaultDesc
3846 },_export:function(a){return this._getdesc(a)
3847 },_display:function(a,b,c){this._codes[c].value=a;
3848 this._descriptions[c].innerHTML=this._getdesc(a)
3849 }};
3850 Rico.TableColumn.MultiLine=function(){};
3851 Rico.TableColumn.MultiLine.prototype={_display:function(a,c,d){var b=document.createElement("div");
3852 b.innerHTML=this._format(a);
3853 b.style.height="100%";
3854 if(c.firstChild){c.replaceChild(b,c.firstChild)
3855 }else{c.appendChild(b)
3856 }}};
3857 if(typeof Rico=="undefined"){throw ("GridMenu requires the Rico JavaScript framework")
3858 }Rico.GridMenu=function(a){this.initialize(a)
3859 };
3860 Rico.GridMenu.prototype={initialize:function(a){this.options={width:"18em",dataMenuHandler:null};
3861 Rico.extend(this.options,a||{});
3862 Rico.extend(this,new Rico.Menu(this.options));
3863 this.sortmenu=new Rico.Menu({width:"15em"});
3864 this.filtermenu=new Rico.Menu({width:"22em"});
3865 this.exportmenu=new Rico.Menu({width:"24em"});
3866 this.hideshowmenu=new Rico.Menu({width:"22em"});
3867 this.createDiv();
3868 this.sortmenu.createDiv();
3869 this.filtermenu.createDiv();
3870 this.exportmenu.createDiv();
3871 this.hideshowmenu.createDiv()
3872 },buildGridMenu:function(a,i){this.clearMenu();
3873 var o=this.liveGrid;
3874 var f=o.buffer;
3875 var m=f.totalRows;
3876 var n=o.options.maxPrint;
3877 var b=(a>=m);
3878 var d=o.columns[i];
3879 if(this.options.dataMenuHandler){var l=this.options.dataMenuHandler(o,a,i,b);
3880 if(!l){return(this.itemCount>0)
3881 }}if(d.sortable&&m>0){this.sortmenu.clearMenu();
3882 this.addSubMenuItem(Rico.getPhraseById("gridmenuSortBy",d.displayName),this.sortmenu,false);
3883 this.sortmenu.addMenuItemId("gridmenuSortAsc",function(){d.sortAsc()
3884 },true);
3885 this.sortmenu.addMenuItemId("gridmenuSortDesc",function(){d.sortDesc()
3886 },true)
3887 }this.filtermenu.clearMenu();
3888 if(d.canFilter()&&!d.format.filterUI&&(!b||d.filterType==Rico.ColumnConst.USERFILTER)){this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",d.displayName),this.filtermenu,false);
3889 d.userFilter=d.getValue(a);
3890 if(d.filterType==Rico.ColumnConst.USERFILTER){this.filtermenu.addMenuItemId("gridmenuRemoveFilter",function(){d.setUnfiltered(false)
3891 },true);
3892 if(d.filterOp=="LIKE"){this.filtermenu.addMenuItemId("gridmenuChgKeyword",function(){o.openKeyword(i)
3893 },true)
3894 }if(d.filterOp=="NE"&&!b){this.filtermenu.addMenuItemId("gridmenuExcludeAlso",function(){d.addFilterNE()
3895 },true)
3896 }}else{if(!b){this.filtermenu.addMenuItemId("gridmenuInclude",function(){d.setFilterEQ()
3897 },true);
3898 this.filtermenu.addMenuItemId("gridmenuGreaterThan",function(){d.setFilterGE()
3899 },d.userFilter!="");
3900 this.filtermenu.addMenuItemId("gridmenuLessThan",function(){d.setFilterLE()
3901 },d.userFilter!="");
3902 if(d.isText){this.filtermenu.addMenuItemId("gridmenuContains",function(){o.openKeyword(i)
3903 },true)
3904 }this.filtermenu.addMenuItemId("gridmenuExclude",function(){d.setFilterNE()
3905 },true)
3906 }}if(o.filterCount()>0){this.filtermenu.addMenuItemId("gridmenuRefresh",function(){o.filterHandler()
3907 },true);
3908 this.filtermenu.addMenuItemId("gridmenuRemoveAll",function(){o.clearFilters()
3909 },true)
3910 }}else{if(o.filterCount()>0){this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",d.displayName),this.filtermenu,false);
3911 this.filtermenu.addMenuItemId("gridmenuRemoveAll",function(){o.clearFilters()
3912 },true)
3913 }}this.exportmenu.clearMenu();
3914 if(f.printVisibleSQL&&typeof(f.dataSource)=="string"){this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
3915 this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisibleSQL("html")
3916 });
3917 this.exportmenu.addMenuItemId("gridmenuExportAll2Web",function(){f.printAllSQL("html")
3918 },f.totalRows<=n);
3919 this.exportmenu.addMenuBreak();
3920 this.exportmenu.addMenuItemId("gridmenuExportVis2SS",function(){f.printVisibleSQL("xl")
3921 });
3922 this.exportmenu.addMenuItemId("gridmenuExportAll2SS",function(){f.printAllSQL("xl")
3923 },f.totalRows<=n)
3924 }else{if(n>0&&m>0){this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
3925 this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisible("plain")
3926 });
3927 this.exportmenu.addMenuItemId("gridmenuExportAll2Web",function(){f.printAll("plain")
3928 },f.totalRows<=n);
3929 if(Rico.isIE){this.exportmenu.addMenuBreak();
3930 this.exportmenu.addMenuItemId("gridmenuExportVis2SS",function(){f.printVisible("owc")
3931 });
3932 this.exportmenu.addMenuItemId("gridmenuExportAll2SS",function(){f.printAll("owc")
3933 },f.totalRows<=n)
3934 }}}var k=o.listInvisible();
3935 for(var e=0,j=0;
3936 j<k.length;
3937 j++){if(k[j].canHideShow()){e++
3938 }}if(e>0||d.canHideShow()){this.hideshowmenu.clearMenu();
3939 this.addSubMenuItem(Rico.getPhraseById("gridmenuHideShow"),this.hideshowmenu,false);
3940 this.hideshowmenu.addMenuItemId("gridmenuChooseCols",function(){o.chooseColumns()
3941 },true,false);
3942 var h=o.columns.length-k.length;
3943 var g=(h>1&&d.visible&&d.canHideShow());
3944 this.hideshowmenu.addMenuItem(Rico.getPhraseById("gridmenuHide",d.displayName),function(){d.hideColumn()
3945 },g);
3946 if(k.length>1){this.hideshowmenu.addMenuItemId("gridmenuShowAll",function(){o.showAll()
3947 })
3948 }}return true
3949 }};
3950 if(typeof Rico=="undefined"){throw ("LiveGridAjax requires the Rico JavaScript framework")
3951 }if(!Rico.Buffer){Rico.Buffer={}
3952 }Rico.Buffer.AjaxXML=function(c,b,a){this.initialize(c,b,a)
3953 };
3954 Rico.Buffer.AjaxXML.prototype={initialize:function(c,b,a){Rico.extend(this,new Rico.Buffer.Base());
3955 Rico.extend(this,Rico.Buffer.AjaxXMLMethods);
3956 this.dataSource=c;
3957 this.options.bufferTimeout=20000;
3958 this.options.requestParameters=[];
3959 this.options.waitMsg=Rico.getPhraseById("waitForData");
3960 this.options.canFilter=true;
3961 this.options.fmt="xml";
3962 Rico.extend(this.options,b||{});
3963 this.ajaxOptions={parameters:null,method:"get"};
3964 Rico.extend(this.ajaxOptions,a||{});
3965 this.requestCount=0;
3966 this.processingRequest=false;
3967 this.pendingRequest=-2;
3968 this.fetchData=true;
3969 this.sortParm={}
3970 }};
3971 Rico.Buffer.AjaxXMLMethods={fetch:function(b){if(this.fetchData){this.foundRowCount=true;
3972 this.fetchData=false;
3973 this.processingRequest=true;
3974 this.liveGrid.showMsg(this.options.waitMsg);
3975 this.timeoutHandler=Rico.runLater(this.options.bufferTimeout,this,"handleTimedOut");
3976 this.ajaxOptions.parameters=this.formQueryHashXML(0,-1);
3977 Rico.log("sending request");
3978 var a=this;
3979 if(typeof this.dataSource=="string"){this.ajaxOptions.onComplete=function(c){a.ajaxUpdate(b,c)
3980 };
3981 new Rico.ajaxRequest(this.dataSource,this.ajaxOptions)
3982 }else{this.ajaxOptions.onComplete=function(d,f,c,e){a.jsUpdate(b,d,f,c,e)
3983 };
3984 this.dataSource(this.ajaxOptions)
3985 }}else{if(b<0){this.applyFilters();
3986 this.setTotalRows(this.size);
3987 b=0
3988 }this.liveGrid.refreshContents(b)
3989 }},handleTimedOut:function(){Rico.log("Request Timed Out");
3990 this.liveGrid.showMsg(Rico.getPhraseById("requestTimedOut"))
3991 },formQueryHashXML:function(e,c){var d={id:this.liveGrid.tableId,page_size:(typeof c=="number")?c:this.totalRows,offset:e.toString()};
3992 if(!this.foundRowCount){d.get_total="true"
3993 }if(this.options.requestParameters){for(var f=0;
3994 f<this.options.requestParameters.length;
3995 f++){var g=this.options.requestParameters[f];
3996 if(g.name!=undefined&&g.value!=undefined){d[g.name]=g.value
3997 }else{var b=g.indexOf("=");
3998 var h=g.substring(0,b);
3999 var a=g.substring(b+1);
4000 d[h]=a
4001 }}}return d
4002 },clearTimer:function(){if(typeof this.timeoutHandler!="number"){return
4003 }window.clearTimeout(this.timeoutHandler);
4004 delete this.timeoutHandler
4005 },jsUpdate:function(a,c,f,b,d){this.clearTimer();
4006 this.processingRequest=false;
4007 Rico.log("jsUpdate: "+arguments.length);
4008 if(d){Rico.log("jsUpdate: received error="+d);
4009 this.liveGrid.showMsg(Rico.getPhraseById("requestError",d));
4010 return
4011 }this.rcvdRows=c.length;
4012 if(typeof b=="number"){this.rowcntContent=b.toString();
4013 this.rcvdRowCount=true;
4014 this.foundRowCount=true;
4015 Rico.log("jsUpdate: found RowCount="+this.rowcntContent)
4016 }this.updateBuffer(a,c,f);
4017 if(this.options.onAjaxUpdate){this.options.onAjaxUpdate()
4018 }this.updateGrid(a);
4019 if(this.options.TimeOut&&this.timerMsg){this.restartSessionTimer()
4020 }if(this.pendingRequest>=-1){var e=this.pendingRequest;
4021 Rico.log("jsUpdate: found pending request for offset="+e);
4022 this.pendingRequest=-2;
4023 this.fetch(e)
4024 }},ajaxUpdate:function(a,c){this.clearTimer();
4025 this.processingRequest=false;
4026 if(c.status!=200){Rico.log("ajaxUpdate: received http error="+c.status);
4027 this.liveGrid.showMsg(Rico.getPhraseById("httpError",c.status));
4028 return
4029 }this._responseHandler=this["processResponse"+this.options.fmt.toUpperCase()];
4030 if(!this._responseHandler(a,c)){return
4031 }if(this.options.onAjaxUpdate){this.options.onAjaxUpdate()
4032 }this.updateGrid(a);
4033 if(this.options.TimeOut&&this.timerMsg){this.restartSessionTimer()
4034 }if(this.pendingRequest>=-1){var b=this.pendingRequest;
4035 Rico.log("ajaxUpdate: found pending request for offset="+b);
4036 this.pendingRequest=-2;
4037 this.fetch(b)
4038 }},processResponseXML:function(k,f){var o=f.responseXML;
4039 if(f.responseText.substring(0,4)=="<!--"){var m=f.responseText.indexOf("-->");
4040 if(m==-1){this.liveGrid.showMsg("Web server error - client side debugging may be enabled");
4041 return false
4042 }o=Rico.createXmlDocument();
4043 o.loadXML(f.responseText.substring(m+3))
4044 }if(!o){alert("Data provider returned an invalid XML response");
4045 Rico.log("Data provider returned an invalid XML response");
4046 return false
4047 }var e=o.getElementsByTagName("ajax-response");
4048 if(e==null||e.length!=1){return false
4049 }this.rcvdRows=0;
4050 this.rcvdRowCount=false;
4051 var c=e[0];
4052 var a=c.getElementsByTagName("debug");
4053 for(var g=0;
4054 g<a.length;
4055 g++){Rico.log("ajaxUpdate: debug msg "+g+": "+Rico.getContentAsString(a[g],this.options.isEncoded))
4056 }var l=c.getElementsByTagName("error");
4057 if(l.length>0){var d=Rico.getContentAsString(l[0],this.options.isEncoded);
4058 alert("Data provider returned an error:\n"+d);
4059 Rico.log("Data provider returned an error:\n"+d);
4060 return false
4061 }var j=c.getElementsByTagName("rows")[0];
4062 if(!j){Rico.log("ajaxUpdate: invalid response");
4063 this.liveGrid.showMsg(Rico.getPhraseById("invalidResponse"));
4064 return false
4065 }var n=c.getElementsByTagName("rowcount");
4066 if(n&&n.length==1){this.rowcntContent=Rico.getContentAsString(n[0],this.options.isEncoded);
4067 this.rcvdRowCount=true;
4068 this.foundRowCount=true;
4069 Rico.log("ajaxUpdate: found RowCount="+this.rowcntContent)
4070 }this.updateUI=j.getAttribute("update_ui")=="true";
4071 this.rcvdOffset=j.getAttribute("offset");
4072 Rico.log("ajaxUpdate: rcvdOffset="+this.rcvdOffset);
4073 var h=this.dom2jstable(j);
4074 var b=(this.options.acceptAttr.length>0)?this.dom2jstableAttr(j):false;
4075 this.rcvdRows=h.length;
4076 this.updateBuffer(k,h,b);
4077 return true
4078 },processResponseJSON:function(a,d){var c=Rico.getJSON(d);
4079 if(!c||c==null){alert("Data provider returned an invalid JSON response");
4080 Rico.log("Data provider returned an invalid JSON response");
4081 return false
4082 }if(c.debug){for(var b=0;
4083 b<c.debug.length;
4084 b++){Rico.writeDebugMsg("debug msg "+b+": "+c.debug[b])
4085 }}if(c.error){alert("Data provider returned an error:\n"+c.error);
4086 Rico.writeDebugMsg("Data provider returned an error:\n"+c.error);
4087 return false
4088 }if(c.rowcount){this.rowcntContent=c.rowcount;
4089 this.rcvdRowCount=true;
4090 this.foundRowCount=true;
4091 Rico.writeDebugMsg("loadRows, found RowCount="+c.rowcount)
4092 }this.rcvdRows=c.rows.length;
4093 this.updateBuffer(a,c.rows);
4094 return true
4095 },updateBuffer:function(c,a,b){this.baseRows=a;
4096 this.attr=b;
4097 Rico.log("updateBuffer: # of rows="+this.rcvdRows);
4098 this.rcvdRowCount=true;
4099 this.rowcntContent=this.rcvdRows;
4100 if(typeof this.delayedSortCol=="number"){this.sortBuffer(this.delayedSortCol)
4101 }this.applyFilters();
4102 this.startPos=0
4103 },updateGrid:function(f){Rico.log("updateGrid, size="+this.size+" rcv cnt type="+typeof(this.rowcntContent));
4104 var e;
4105 if(this.rcvdRowCount==true){Rico.log("found row cnt: "+this.rowcntContent);
4106 var d=parseInt(this.rowcntContent,10);
4107 var b=this.totalRows;
4108 if(!isNaN(d)&&d!=b){this.setTotalRows(d);
4109 e=Math.min(this.liveGrid.topOfLastPage(),f);
4110 Rico.log("updateGrid: new rowcnt="+d+" newpos="+e);
4111 if(b==0&&this.liveGrid.sizeTo=="data"){Rico.runLater(100,this.liveGrid,"adjustPageSize")
4112 }this.liveGrid.scrollToRow(e);
4113 if(this.isInRange(e)){this.liveGrid.refreshContents(e)
4114 }else{this.fetch(e)
4115 }return
4116 }}else{var a=f+this.rcvdRows;
4117 if(a>this.totalRows){var c=a;
4118 Rico.log("extending totrows to "+c);
4119 this.setTotalRows(c)
4120 }}e=this.liveGrid.pixeltorow(this.liveGrid.scrollDiv.scrollTop);
4121 Rico.log("updateGrid: newpos="+e);
4122 this.liveGrid.refreshContents(e)
4123 }};
4124 Rico.Buffer.AjaxSQL=function(c,b,a){this.initialize(c,b,a)
4125 };
4126 Rico.Buffer.AjaxSQL.prototype={initialize:function(c,b,a){Rico.extend(this,new Rico.Buffer.AjaxXML());
4127 Rico.extend(this,Rico.Buffer.AjaxSQLMethods);
4128 this.dataSource=c;
4129 this.options.canFilter=true;
4130 this.options.largeBufferSize=7;
4131 this.options.nearLimitFactor=1;
4132 Rico.extend(this.options,b||{});
4133 Rico.extend(this.ajaxOptions,a||{})
4134 }};
4135 Rico.Buffer.AjaxSQLMethods={registerGrid:function(a){this.liveGrid=a;
4136 this.sessionExpired=false;
4137 this.timerMsg=document.getElementById(a.tableId+"_timer");
4138 if(this.options.TimeOut&&this.timerMsg){if(!this.timerMsg.title){this.timerMsg.title=Rico.getPhraseById("sessionExpireMinutes")
4139 }this.restartSessionTimer()
4140 }},setBufferSize:function(a){this.maxFetchSize=Math.max(50,parseInt(this.options.largeBufferSize*a,10));
4141 this.nearLimit=parseInt(this.options.nearLimitFactor*a,10);
4142 this.maxBufferSize=this.maxFetchSize*3
4143 },restartSessionTimer:function(){if(this.sessionExpired==true){return
4144 }this.sessionEndTime=(new Date()).getTime()+this.options.TimeOut*60000;
4145 if(this.sessionTimer){clearTimeout(this.sessionTimer)
4146 }this.updateSessionTimer()
4147 },updateSessionTimer:function(){var b=(new Date()).getTime();
4148 if(b>this.sessionEndTime){this.displaySessionTimer(Rico.getPhraseById("sessionExpired"));
4149 this.timerMsg.style.backgroundColor="red";
4150 this.sessionExpired=true
4151 }else{var a=Math.ceil((this.sessionEndTime-b)/60000);
4152 this.displaySessionTimer(a);
4153 this.sessionTimer=Rico.runLater(10000,this,"updateSessionTimer")
4154 }},displaySessionTimer:function(a){this.timerMsg.innerHTML="&nbsp;"+a+"&nbsp;"
4155 },refresh:function(b){var a=this.liveGrid.lastRowPos;
4156 this.clear();
4157 if(b){this.setTotalRows(0);
4158 this.foundRowCount=false
4159 }this.liveGrid.clearBookmark();
4160 this.liveGrid.clearRows();
4161 this.fetch(a)
4162 },fetch:function(e){Rico.log("AjaxSQL fetch: offset="+e+", lastOffset="+this.lastOffset);
4163 if(this.processingRequest){Rico.log("AjaxSQL fetch: queue request");
4164 this.pendingRequest=e;
4165 return
4166 }if(e<0){this.clear();
4167 this.setTotalRows(0);
4168 this.foundRowCount=false;
4169 e=0
4170 }var d=this.lastOffset;
4171 this.lastOffset=e;
4172 if(this.isInRange(e)){Rico.log("AjaxSQL fetch: in buffer");
4173 this.liveGrid.refreshContents(e);
4174 if(e>d){if(e+this.liveGrid.pageSize<this.endPos()-this.nearLimit){return
4175 }if(this.endPos()==this.totalRows&&this.foundRowCount){return
4176 }}else{if(e<d){if(e>this.startPos+this.nearLimit){return
4177 }if(this.startPos==0){return
4178 }}else{return
4179 }}}if(e>=this.totalRows&&this.foundRowCount){return
4180 }this.processingRequest=true;
4181 Rico.log("AjaxSQL fetch: processing offset="+e);
4182 var c=this.getFetchOffset(e);
4183 var a=this.getFetchSize(c);
4184 var f=false;
4185 this.liveGrid.showMsg(this.options.waitMsg);
4186 this.timeoutHandler=Rico.runLater(this.options.bufferTimeout,this,"handleTimedOut");
4187 this.ajaxOptions.parameters=this.formQueryHashSQL(c,a,this.options.fmt);
4188 this.requestCount++;
4189 Rico.log("sending req #"+this.requestCount);
4190 var b=this;
4191 if(typeof this.dataSource=="string"){this.ajaxOptions.onComplete=function(g){b.ajaxUpdate(c,g)
4192 };
4193 new Rico.ajaxRequest(this.dataSource,this.ajaxOptions)
4194 }else{this.ajaxOptions.onComplete=function(h,j,g,i){b.jsUpdate(c,h,j,g,i)
4195 };
4196 this.dataSource(this.ajaxOptions)
4197 }},formQueryHashSQL:function(g,h,d){var k=this.formQueryHashXML(g,h);
4198 k[this.liveGrid.actionId]="query";
4199 if(d){k._fmt=d
4200 }Rico.extend(k,this.sortParm);
4201 for(var b=0;
4202 b<this.liveGrid.columns.length;
4203 b++){var j=this.liveGrid.columns[b];
4204 if(j.filterType==Rico.ColumnConst.UNFILTERED){continue
4205 }var a=typeof(j.format.filterCol)=="number"?j.format.filterCol:j.index;
4206 k["f["+a+"][op]"]=j.filterOp;
4207 k["f["+a+"][len]"]=j.filterValues.length;
4208 for(var e=0;
4209 e<j.filterValues.length;
4210 e++){var f=j.filterValues[e];
4211 if(j.filterOp=="LIKE"&&f.indexOf("*")==-1){f="*"+f+"*"
4212 }k["f["+a+"]["+e+"]"]=f
4213 }}return k
4214 },getFetchSize:function(a){var b=0;
4215 if(a>=this.startPos){var c=this.maxFetchSize+a;
4216 b=c-a;
4217 if(a==0&&b<this.maxFetchSize){b=this.maxFetchSize
4218 }Rico.log("getFetchSize/append, adjustedSize="+b+" adjustedOffset="+a+" endFetchOffset="+c)
4219 }else{b=Math.min(this.startPos-a,this.maxFetchSize)
4220 }return b
4221 },getFetchOffset:function(b){var a=b;
4222 if(b>this.startPos){a=Math.max(b,this.endPos())
4223 }else{if(b+this.maxFetchSize>=this.startPos){a=Math.max(this.startPos-this.maxFetchSize,0)
4224 }}return a
4225 },updateBuffer:function(d,a,b){Rico.log("updateBuffer: start="+d+", # of rows="+this.rcvdRows);
4226 if(this.rows.length==0){this.rows=a;
4227 this.attr=b;
4228 this.startPos=d
4229 }else{if(d>this.startPos){if(this.startPos+this.rows.length<d){this.rows=a;
4230 this.attr=b;
4231 this.startPos=d
4232 }else{this.rows=this.rows.concat(a.slice(0,a.length));
4233 if(this.attr){this.attr=this.attr.concat(b.slice(0,b.length))
4234 }if(this.rows.length>this.maxBufferSize){var c=this.rows.length;
4235 this.rows=this.rows.slice(this.rows.length-this.maxBufferSize,this.rows.length);
4236 if(this.attr){this.attr=this.attr.slice(this.attr.length-this.maxBufferSize,this.attr.length)
4237 }this.startPos=this.startPos+(c-this.rows.length)
4238 }}}else{if(d+a.length<this.startPos){this.rows=a
4239 }else{this.rows=a.slice(0,this.startPos).concat(this.rows);
4240 if(this.maxBufferSize&&this.rows.length>this.maxBufferSize){this.rows=this.rows.slice(0,this.maxBufferSize)
4241 }}this.startPos=d
4242 }}this.size=this.rows.length
4243 },sortBuffer:function(b){this.sortParm={};
4244 var a=this.liveGrid.columns[b];
4245 if(this.options.sortParmFmt){this.sortParm.sort_col=a[this.options.sortParmFmt];
4246 this.sortParm.sort_dir=a.getSortDirection()
4247 }else{this.sortParm["s"+b]=a.getSortDirection()
4248 }this.clear()
4249 },printAllSQL:function(a){var c=this.formQueryHashSQL(0,this.liveGrid.options.maxPrint,a);
4250 c.hidden=this.liveGrid.listInvisible("index").join(",");
4251 var b=this.dataSource+"?"+Rico.toQueryString(c);
4252 window.open(b,"",this.liveGrid.options.exportWindow)
4253 },printVisibleSQL:function(a){var c=this.formQueryHashSQL(this.liveGrid.contentStartPos-1,this.liveGrid.pageSize,a);
4254 c.hidden=this.liveGrid.listInvisible("index").join(",");
4255 var b=this.dataSource+"?"+Rico.toQueryString(c);
4256 window.open(b,"",this.liveGrid.options.exportWindow)
4257 },_printAll:function(a){this.liveGrid.exportStart();
4258 this.ajaxOptions.parameters=this.formQueryHashSQL(0,this.liveGrid.options.maxPrint);
4259 var b=this;
4260 this.ajaxOptions.onComplete=function(){b._jsExport(a)
4261 };
4262 this.dataSource(this.ajaxOptions)
4263 },_jsExport:function(a,c,e,b,d){Rico.log("_jsExport: "+arguments.length);
4264 if(d){Rico.log("_jsExport: received error="+d);
4265 this.liveGrid.showMsg(Rico.getPhraseById("requestError",d));
4266 return
4267 }this.exportBuffer(c,0);
4268 this.liveGrid.exportFinish(a)
4269 }};
4270 if(typeof Rico=="undefined"){throw ("LiveGridForms requires the Rico JavaScript framework")
4271 }Rico.TableEdit=function(a){this.initialize(a)
4272 };
4273 Rico.TableEdit.prototype={initialize:function(b){Rico.log("Rico.TableEdit initialize: "+b.tableId);
4274 this.grid=b;
4275 this.options={maxDisplayLen:20,panelHeight:200,panelWidth:500,compact:false,RecordName:Rico.getPhraseById("record"),updateURL:window.location.href,showSaveMsg:"errors"};
4276 Rico.extend(this.options,b.options);
4277 var a=this;
4278 this.hasWF2=(document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("WebForms","2.0"));
4279 this.menu=b.menu;
4280 this.menu.options.dataMenuHandler=function(d,f,g,e){return a.editMenu(d,f,g,e)
4281 };
4282 this.menu.ignoreClicks();
4283 this.editText=Rico.getPhraseById("editRecord",this.options.RecordName);
4284 this.cloneText=Rico.getPhraseById("cloneRecord",this.options.RecordName);
4285 this.delText=Rico.getPhraseById("deleteRecord",this.options.RecordName);
4286 this.addText=Rico.getPhraseById("addRecord",this.options.RecordName);
4287 this.buttonHover=new Rico.HoverSet();
4288 this.dateRegExp=/^\s*(\w+)(\W)(\w+)(\W)(\w+)/i;
4289 Rico.EditControls.atLoad();
4290 this.createKeyArray();
4291 this.createEditDiv();
4292 this.saveMsg=Rico.$(b.tableId+"_savemsg");
4293 Rico.eventBind(document,"click",Rico.eventHandle(this,"clearSaveMsg"));
4294 this.extraMenuItems=[];
4295 this.responseHandler=function(){a.processResponse()
4296 };
4297 Rico.log("Rico.TableEdit.initialize complete, hasWF2="+this.hasWF2)
4298 },createKeyArray:function(){this.keys=[];
4299 for(var a=0;
4300 a<this.grid.columns.length;
4301 a++){if(this.grid.columns[a].format&&this.grid.columns[a].format.isKey){this.keys.push({colidx:a})
4302 }}},createEditDiv:function(){this.requestCount=1;
4303 this.formPopup=this.createWindow();
4304 Rico.addClass(this.formPopup.content,"ricoLG_editDiv");
4305 if(this.options.canEdit||this.options.canAdd){this.startForm();
4306 this.createForm(this.form)
4307 }else{var a=this.createButton(Rico.getPhraseById("close"));
4308 Rico.eventBind(a,"click",Rico.eventHandle(this,"cancelEdit"),false);
4309 this.createForm(this.formPopup.contentDiv)
4310 }this.editDivCreated=true;
4311 this.responseDialog=this.grid.createDiv("editResponse",document.body);
4312 this.responseDialog.style.display="none";
4313 var b=document.createElement("button");
4314 b.appendChild(document.createTextNode("OK"));
4315 Rico.eventBind(b,"click",Rico.eventHandle(this,"ackResponse"));
4316 this.responseDialog.appendChild(b);
4317 this.responseDiv=this.grid.createDiv("editResponseText",this.responseDialog);
4318 if(this.panelGroup){Rico.log("createEditDiv complete, requestCount="+this.requestCount);
4319 Rico.runLater(50,this,"initPanelGroup")
4320 }},createWindow:function(){var a=this;
4321 return new Rico.Window("",{closeFunc:function(){a.makeFormInvisible()
4322 },overflow:this.options.panels?"hidden":"auto"})
4323 },initPanelGroup:function(){this.requestCount--;
4324 Rico.log("initPanelGroup: "+this.requestCount);
4325 if(this.requestCount>0){return
4326 }var a=parseInt(this.options.panelWidth,10);
4327 if(this.form){if(Rico.isWebKit){this.formPopup.container.style.display="block"
4328 }this.options.bgColor=Rico.Color.createColorFromBackground(this.form).toString()
4329 }this.formPopup.container.style.display="none";
4330 this.formPanels=new Rico.TabbedPanel(this.panelGroup,this.options)
4331 },notEmpty:function(a){return typeof(a)!="undefined"
4332 },startForm:function(){this.form=document.createElement("form");
4333 this.form.onsubmit=function(){return false
4334 };
4335 this.form.autocomplete="off";
4336 this.formPopup.contentDiv.appendChild(this.form);
4337 var e=document.createElement("div");
4338 e.className="ButtonBar";
4339 var d=e.appendChild(this.createButton(Rico.getPhraseById("saveRecord",this.options.RecordName)));
4340 Rico.eventBind(d,"click",Rico.eventHandle(this,"TESubmit"),false);
4341 d=e.appendChild(this.createButton(Rico.getPhraseById("cancel")));
4342 Rico.eventBind(d,"click",Rico.eventHandle(this,"cancelEdit"),false);
4343 this.form.appendChild(e);
4344 this.hiddenFields=document.createElement("div");
4345 this.hiddenFields.style.display="none";
4346 this.action=this.appendHiddenField(this.grid.actionId,"");
4347 var c,a;
4348 for(c=0;
4349 c<this.grid.columns.length;
4350 c++){a=this.grid.columns[c].format;
4351 if(a&&a.FormView&&a.FormView=="hidden"){this.appendHiddenField(a.FieldName,a.ColData)
4352 }}for(var b=0;
4353 b<this.keys.length;
4354 b++){this.keys[b].keyField=this.appendHiddenField("_k"+this.keys[b].colidx,"")
4355 }this.form.appendChild(this.hiddenFields)
4356 },createButton:function(b){var a=document.createElement("a");
4357 a.href="javascript:void(0)";
4358 a.innerHTML=b;
4359 a.className="RicoButton";
4360 if(Rico.theme.button){Rico.addClass(a,Rico.theme.button)
4361 }this.buttonHover.add(a);
4362 return a
4363 },createPanel:function(c){var e=false;
4364 for(var b=0;
4365 b<this.grid.columns.length;
4366 b++){var a=this.grid.columns[b].format;
4367 if(!a){continue
4368 }if(!a.EntryType){continue
4369 }if(a.EntryType=="H"){continue
4370 }if(a.FormView&&a.FormView=="hidden"){continue
4371 }var d=a.panelIdx||0;
4372 if(d==c){e=true;
4373 break
4374 }}if(!e){return null
4375 }this.panelHdr[c]=document.createElement("li");
4376 this.panelHdr[c].innerHTML=this.options.panels[c];
4377 this.panelHdrs.appendChild(this.panelHdr[c]);
4378 this.panelContent[c]=document.createElement("div");
4379 this.panelContents.appendChild(this.panelContent[c]);
4380 this.panelActualIdx[c]=this.panelCnt++;
4381 return this.createFormTable(this.panelContent[c],"tabContent")
4382 },createForm:function(e){var c,f,a,d,b=[];
4383 this.panelCnt=0;
4384 this.panelHdr=[];
4385 this.panelContent=[];
4386 if(this.options.panels){this.panelGroup=document.createElement("div");
4387 this.panelGroup.className="tabPanelGroup";
4388 this.panelHdrs=document.createElement("ul");
4389 this.panelGroup.appendChild(this.panelHdrs);
4390 this.panelContents=document.createElement("div");
4391 this.panelContents.className="tabContentContainer";
4392 this.panelGroup.appendChild(this.panelContents);
4393 this.panelActualIdx=[];
4394 e.appendChild(this.panelGroup);
4395 if(this.grid.direction=="rtl"){for(c=this.options.panels.length-1;
4396 c>=0;
4397 c--){b[c]=this.createPanel(c)
4398 }}else{for(c=0;
4399 c<this.options.panels.length;
4400 c++){b[c]=this.createPanel(c)
4401 }}e.appendChild(this.panelGroup)
4402 }else{f=document.createElement("div");
4403 f.className="noTabContent";
4404 b[0]=this.createFormTable(f);
4405 e.appendChild(f)
4406 }for(c=0;
4407 c<this.grid.columns.length;
4408 c++){a=this.grid.columns[c].format;
4409 if(!a){continue
4410 }d=a.panelIdx||0;
4411 if(b[d]){this.appendFormField(this.grid.columns[c],b[d])
4412 }if(typeof a.pattern=="string"){switch(a.pattern){case"email":a.regexp=/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$/;
4413 break;
4414 case"float-unsigned":a.regexp=/^\d+(\.\d+)?$/;
4415 break;
4416 case"float-signed":a.regexp=/^[-+]?\d+(\.\d+)?$/;
4417 break;
4418 case"int-unsigned":a.regexp=/^\d+$/;
4419 break;
4420 case"int-signed":a.regexp=/^[-+]?\d+$/;
4421 break;
4422 default:a.regexp=new RegExp(a.pattern);
4423 break
4424 }}}},createFormTable:function(b){var a=document.createElement("table");
4425 a.border=0;
4426 b.appendChild(a);
4427 return a
4428 },appendHiddenField:function(a,b){var c=Rico.createFormField(this.hiddenFields,"input","hidden",a,a);
4429 c.value=b;
4430 return c
4431 },appendFormField:function(c,i){var b=c.format;
4432 if(!b.EntryType){return
4433 }if(b.EntryType=="H"){return
4434 }if(b.FormView){return
4435 }Rico.log("appendFormField: "+c.displayName+" - "+b.EntryType);
4436 var j=b.noFormBreak&&i.rows.length>0?i.rows[i.rows.length-1]:i.insertRow(-1);
4437 var h=j.insertCell(-1);
4438 c.formLabel=h;
4439 if(h.noWrap){h.noWrap=true
4440 }var f=j.insertCell(-1);
4441 if(f.noWrap){f.noWrap=true
4442 }h.id="lbl_"+b.FieldName;
4443 var e,a=b.FieldName;
4444 switch(b.EntryType){case"TA":case"tinyMCE":e=Rico.createFormField(f,"textarea",null,a);
4445 e.cols=b.TxtAreaCols;
4446 e.rows=b.TxtAreaRows;
4447 e.innerHTML=b.ColData;
4448 h.style.verticalAlign="top";
4449 break;
4450 case"R":case"RL":e=Rico.createFormField(f,"div",null,a);
4451 if(b.DescriptionField){e.RicoUpdate=b.DescriptionField
4452 }if(b.MultiSelect){Rico.addClass(e,"MultiSelect")
4453 }if(b.isNullable&&!b.MultiSelect){this.addSelectNone(e)
4454 }this.selectValuesRequest(e,c);
4455 break;
4456 case"N":e=Rico.createFormField(f,"select",null,a);
4457 if(b.isNullable){this.addSelectNone(e)
4458 }Rico.eventBind(e,"change",Rico.eventHandle(this,"checkSelectNew"));
4459 this.selectValuesRequest(e,c);
4460 e=document.createElement("span");
4461 e.className="ricoEditLabel";
4462 e.id="labelnew__"+b.FieldName;
4463 e.innerHTML="&nbsp;&nbsp;&nbsp;"+Rico.getPhraseById("formNewValue").replace(" ","&nbsp;");
4464 f.appendChild(e);
4465 a="textnew__"+b.FieldName;
4466 e=Rico.createFormField(f,"input","text",a,a);
4467 break;
4468 case"S":case"SL":if(b.ReadOnly){e=Rico.createFormField(f,"input","text",a,a);
4469 this.initField(e,b)
4470 }else{e=Rico.createFormField(f,"select",null,a);
4471 if(b.MultiSelect){e.multiple=true
4472 }if(b.SelectRows){e.size=parseInt(b.SelectRows,10)
4473 }if(b.isNullable&&!b.MultiSelect){this.addSelectNone(e)
4474 }if(b.DescriptionField){e.RicoUpdate=b.DescriptionField;
4475 Rico.eventBind(e,"change",Rico.eventHandle(this,"selectClick"),false)
4476 }this.selectValuesRequest(e,c)
4477 }break;
4478 case"D":if(!b.isNullable){b.required=true
4479 }if(!b.dateFmt){b.dateFmt=Rico.dateFmt
4480 }if(!b.Help){b.Help=b.dateFmt
4481 }if(typeof b.min=="string"){b.min=Rico.setISO8601(b.min)||new Date(b.min)
4482 }if(typeof b.max=="string"){b.max=Rico.setISO8601(b.max)||new Date(b.max)
4483 }if(this.hasWF2){e=Rico.createFormField(f,"input","date",a,a);
4484 e.required=b.required;
4485 if(b.min){e.min=Rico.toISO8601String(b.min,3)
4486 }if(b.max){e.max=Rico.toISO8601String(b.max,3)
4487 }e.required=b.required;
4488 b.SelectCtl=null
4489 }else{e=Rico.createFormField(f,"input","text",a,a)
4490 }this.initField(e,b);
4491 break;
4492 case"I":if(!b.isNullable){b.required=true
4493 }if(!b.pattern){b.pattern="int-signed"
4494 }if(this.hasWF2){e=Rico.createFormField(f,"input","number",a,a);
4495 e.required=b.required;
4496 e.min=b.min;
4497 e.max=b.max;
4498 e.step=1
4499 }else{e=Rico.createFormField(f,"input","text",a,a)
4500 }if(typeof b.min=="string"){b.min=parseInt(b.min,10)
4501 }if(typeof b.max=="string"){b.max=parseInt(b.max,10)
4502 }this.initField(e,b);
4503 break;
4504 case"F":if(!b.isNullable){b.required=true
4505 }if(!b.pattern){b.pattern="float-signed"
4506 }e=Rico.createFormField(f,"input","text",a,a);
4507 this.initField(e,b);
4508 if(typeof b.min=="string"){b.min=parseFloat(b.min)
4509 }if(typeof b.max=="string"){b.max=parseFloat(b.max)
4510 }break;
4511 default:e=Rico.createFormField(f,"input","text",a,a);
4512 if(!b.isNullable&&b.EntryType!="T"){b.required=true
4513 }this.initField(e,b);
4514 break
4515 }if(e&&b.SelectCtl){Rico.EditControls.applyTo(c,e)
4516 }var g="";
4517 h.className="ricoEditLabel";
4518 if(b.Help){h.title=b.Help;
4519 g="&nbsp;<span class='rico-icon rico-info'></span>"
4520 }var d=b.EntryType.length>1&&b.EntryType.charAt(1)=="L"?c.next.displayName:c.displayName;
4521 h.innerHTML=d+g
4522 },addSelectNone:function(a){this.addSelectOption(a,this.options.TableSelectNone,Rico.getPhraseById("selectNone"))
4523 },initField:function(b,a){if(a.Length){b.maxLength=a.Length;
4524 b.size=Math.min(a.Length,this.options.maxDisplayLen)
4525 }b.value=a.ColData
4526 },selectClick:function(c){var b=Rico.eventElement(c);
4527 if(b.readOnly){Rico.eventStop(c);
4528 return false
4529 }if(b.RicoUpdate){var a=b.options[b.selectedIndex];
4530 Rico.$(b.RicoUpdate).value=a.innerHTML
4531 }},radioClick:function(c){var b=Rico.eventElement(c);
4532 if(b.readOnly){Rico.eventStop(c);
4533 return false
4534 }var a=Rico.getParentByTagName(b,"div");
4535 if(a.RicoUpdate){Rico.$(a.RicoUpdate).value=b.nextSibling.innerHTML
4536 }},checkSelectNew:function(a){this.updateSelectNew(Rico.eventElement(a))
4537 },updateSelectNew:function(b){var a=(b.value==this.options.TableSelectNew)?"":"hidden";
4538 Rico.$("labelnew__"+b.id).style.visibility=a;
4539 Rico.$("textnew__"+b.id).style.visibility=a
4540 },selectValuesRequest:function(g,f){var a=f.format;
4541 if(a.SelectValues){var b=a.SelectValues.split(",");
4542 for(var e=0;
4543 e<b.length;
4544 e++){this.addSelectOption(g,b[e],b[e],e)
4545 }}else{this.requestCount++;
4546 var d={},c=this;
4547 Rico.extend(d,this.grid.buffer.ajaxOptions);
4548 d.parameters={id:this.grid.tableId,offset:"0",page_size:"-1",edit:f.index};
4549 d.parameters[this.grid.actionId]="query";
4550 d.onComplete=function(h){c.selectValuesUpdate(g,h)
4551 };
4552 new Rico.ajaxRequest(this.grid.buffer.dataSource,d);
4553 Rico.log("selectValuesRequest: "+a.FieldName)
4554 }},selectValuesUpdate:function(a,c){var b=c.responseXML.getElementsByTagName("ajax-response");
4555 Rico.log("selectValuesUpdate: "+c.status);
4556 if(b==null||b.length!=1){return
4557 }b=b[0];
4558 var j=b.getElementsByTagName("error");
4559 if(j.length>0){var g=Rico.getContentAsString(j[0],this.grid.buffer.isEncoded);
4560 Rico.log("Data provider returned an error:\n"+g);
4561 alert(Rico.getPhraseById("requestError",g));
4562 return
4563 }b=b.getElementsByTagName("response")[0];
4564 var h=b.getElementsByTagName("rows")[0];
4565 var k=this.grid.buffer.dom2jstable(h);
4566 Rico.log("selectValuesUpdate: id="+a.id+" rows="+k.length);
4567 for(var e=0;
4568 e<k.length;
4569 e++){if(k[e].length>0){var f=k[e][0];
4570 var d=(k[e].length>1)?k[e][1]:f;
4571 this.addSelectOption(a,f,d,e)
4572 }}if(Rico.$("textnew__"+a.id)){this.addSelectOption(a,this.options.TableSelectNew,Rico.getPhraseById("selectNewVal"))
4573 }if(this.panelGroup){Rico.runLater(50,this,"initPanelGroup")
4574 }},addSelectOption:function(c,e,f,a){switch(c.tagName.toLowerCase()){case"div":var b=Rico.createFormField(c,"input",Rico.hasClass(c,"MultiSelect")?"checkbox":"radio",c.id+"_"+a,c.id);
4575 b.value=e;
4576 var d=document.createElement("label");
4577 d.innerHTML=f;
4578 d.htmlFor=b.id;
4579 c.appendChild(d);
4580 Rico.eventBind(b,"click",Rico.eventHandle(this,"radioClick"),false);
4581 break;
4582 case"select":Rico.addSelectOption(c,e,f);
4583 break
4584 }},clearSaveMsg:function(){if(this.saveMsg){this.saveMsg.innerHTML=""
4585 }},addMenuItem:function(c,b,a){this.extraMenuItems.push({menuText:c,menuAction:b,enabled:a})
4586 },editMenu:function(d,h,j,e){this.clearSaveMsg();
4587 if(this.grid.buffer.sessionExpired==true||this.grid.buffer.startPos<0){return false
4588 }this.rowIdx=h;
4589 var g=Rico.$("pageTitle");
4590 var f=g?g.innerHTML:document.title;
4591 this.menu.addMenuHeading(f);
4592 var a=this;
4593 if(e==false){for(var b=0;
4594 b<this.extraMenuItems.length;
4595 b++){this.menu.addMenuItem(this.extraMenuItems[b].menuText,this.extraMenuItems[b].menuAction,this.extraMenuItems[b].enabled)
4596 }this.menu.addMenuItem(this.editText,function(){a.editRecord()
4597 },this.canEdit(h));
4598 this.menu.addMenuItem(this.delText,function(){a.deleteRecord()
4599 },this.canDelete(h));
4600 if(this.options.canClone){this.menu.addMenuItem(this.cloneText,function(){a.cloneRecord()
4601 },this.canAdd(h)&&this.canEdit(h))
4602 }}this.menu.addMenuItem(this.addText,function(){a.addRecord()
4603 },this.canAdd(h));
4604 return true
4605 },canAdd:function(a){return(typeof this.options.canAdd=="function")?this.options.canAdd(a):this.options.canAdd
4606 },canEdit:function(a){return(typeof this.options.canEdit=="function")?this.options.canEdit(a):this.options.canEdit
4607 },canDelete:function(a){return(typeof this.options.canDelete=="function")?this.options.canDelete(a):this.options.canDelete
4608 },cancelEdit:function(a){Rico.eventStop(a);
4609 this.makeFormInvisible();
4610 this.grid.highlightEnabled=true;
4611 this.menu.cancelmenu();
4612 return false
4613 },setField:function(g,m){var p=this.grid.columns[g].format;
4614 var k=Rico.$(p.FieldName);
4615 var n,j,f,c,b,h;
4616 if(!k){return
4617 }Rico.log("setField: "+p.FieldName+"="+m);
4618 switch(k.tagName.toUpperCase()){case"DIV":c=k.getElementsByTagName("INPUT");
4619 f={};
4620 if(p.MultiSelect&&m){n=m.split(",");
4621 for(var j=0;
4622 j<n.length;
4623 j++){f[n[j]]=1
4624 }}else{f[m]=1
4625 }for(j=0;
4626 j<c.length;
4627 j++){c[j].checked=f[c[j].value]==1
4628 }break;
4629 case"INPUT":if(p.EntryType=="D"&&m!=p.ColData){n=m.split(/\s|T/);
4630 m=n[0];
4631 if(this.isTextInput(k)){var l=Rico.setISO8601(m);
4632 if(l){m=Rico.formatDate(l,p.dateFmt)
4633 }}}k.value=m;
4634 break;
4635 case"SELECT":b=k.options;
4636 f={};
4637 if(p.MultiSelect&&m){n=m.split(",");
4638 for(var j=0;
4639 j<n.length;
4640 j++){f[n[j]]=1
4641 }for(j=0;
4642 j<b.length;
4643 j++){b[j].selected=f[b[j].value]==1
4644 }}else{for(j=0;
4645 j<b.length;
4646 j++){if(b[j].value==m){k.selectedIndex=j;
4647 break
4648 }}}if(p.EntryType=="N"){h=Rico.$("textnew__"+k.id);
4649 if(!h){alert('Warning: unable to find id "textnew__'+k.id+'"')
4650 }h.value=m;
4651 if(k.selectedIndex!=j){k.selectedIndex=b.length-1
4652 }this.updateSelectNew(k)
4653 }return;
4654 case"TEXTAREA":k.value=m;
4655 if(p.EntryType=="tinyMCE"&&typeof(tinyMCE)!="undefined"&&this.initialized){if(tinyMCE.updateContent){tinyMCE.updateContent(k.id)
4656 }else{tinyMCE.execInstanceCommand(k.id,"mceSetContent",false,m)
4657 }}return
4658 }},setReadOnly:function(h){for(var g,f=0;
4659 f<this.grid.columns.length;
4660 f++){var b=this.grid.columns[f].format;
4661 if(!b){continue
4662 }var k=Rico.$(b.FieldName);
4663 if(!k){continue
4664 }switch(h){case"ins":g=!b.Writeable||b.ReadOnly||b.UpdateOnly;
4665 break;
4666 case"upd":g=!b.Writeable||b.ReadOnly||b.InsertOnly;
4667 break;
4668 default:g=false;
4669 break
4670 }switch(k.tagName.toUpperCase()){case"DIV":var c=k.getElementsByTagName("INPUT");
4671 for(var d=0;
4672 d<c.length;
4673 d++){c[d].disabled=g
4674 }break;
4675 case"SELECT":if(b.EntryType=="N"){var a=Rico.$("textnew__"+k.id);
4676 a.disabled=g
4677 }k.disabled=g;
4678 break;
4679 case"TEXTAREA":case"INPUT":k.disabled=g;
4680 if(b.selectIcon){b.selectIcon.style.display=g?"none":""
4681 }break
4682 }}},hideResponse:function(a){this.responseDiv.innerHTML=a;
4683 this.responseDialog.style.display="none"
4684 },showResponse:function(){var a=Rico.cumulativeOffset(this.grid.outerDiv);
4685 a.top+=Rico.docScrollTop();
4686 this.responseDialog.style.top=a.top+"px";
4687 this.responseDialog.style.left=a.left+"px";
4688 this.responseDialog.style.display=""
4689 },processResponse:function(g){var d,f=true;
4690 Rico.log("Processing response from form submittal");
4691 this.responseDiv.innerHTML=g.responseText;
4692 var e=Rico.select(".ricoFormResponse",this.responseDiv);
4693 if(e){var c=Rico.trim(e[0].className).split(/\s+/)[1];
4694 d=Rico.getPhraseById(c,this.options.RecordName)
4695 }else{var b=this.responseDiv.childNodes;
4696 for(var a=b.length-1;
4697 a>=0;
4698 a--){if(b[a].nodeType==1&&b[a].nodeName!="P"&&b[a].nodeName!="DIV"&&b[a].nodeName!="BR"){this.responseDiv.removeChild(b[a])
4699 }}d=Rico.stripTags(this.responseDiv.innerHTML);
4700 f=(d.toLowerCase().indexOf("error")==-1)
4701 }if(f&&this.options.showSaveMsg!="full"){this.hideResponse("");
4702 this.grid.resetContents();
4703 this.grid.buffer.foundRowCount=false;
4704 this.grid.buffer.fetch(this.grid.lastRowPos||0);
4705 if(this.saveMsg){this.saveMsg.innerHTML="&nbsp;"+d+"&nbsp;"
4706 }}this.processCallback(this.options.onSubmitResponse);
4707 Rico.log("Processing response completed")
4708 },processCallback:function(callback){switch(typeof callback){case"string":return eval(callback);
4709 case"function":return callback()
4710 }},ackResponse:function(a){this.hideResponse("");
4711 this.grid.highlightEnabled=true
4712 },cloneRecord:function(){this.formPopup.setTitle(this.cloneText);
4713 this.displayEditForm("ins")
4714 },editRecord:function(){this.formPopup.setTitle(this.editText);
4715 this.displayEditForm("upd")
4716 },displayEditForm:function(e){this.grid.highlightEnabled=false;
4717 this.menu.cancelmenu();
4718 this.hideResponse(Rico.getPhraseById("saving"));
4719 this.grid.outerDiv.style.cursor="auto";
4720 this.action.value=e;
4721 for(var d=0;
4722 d<this.grid.columns.length;
4723 d++){var f=this.grid.columns[d];
4724 if(f.format){var b=f.getValue(this.rowIdx);
4725 this.setField(d,b);
4726 if(f.format.selectDesc){if(f.format.EntryType.length>1&&f.format.EntryType.charAt(1)=="L"){b=this.grid.columns[d+1].getValue(this.rowIdx)
4727 }b=f._format(b);
4728 if(b===""){b="&nbsp;"
4729 }f.format.selectDesc.innerHTML=b
4730 }if(f.format.SelectCtl){Rico.EditControls.displayClrImg(f,!f.format.InsertOnly)
4731 }}}this.setReadOnly(e);
4732 for(var a=0;
4733 a<this.keys.length;
4734 a++){this.keys[a].keyField.value=this.grid.buffer.getWindowValue(this.rowIdx,this.keys[a].colidx)
4735 }this.makeFormVisible(this.rowIdx)
4736 },addPrepare:function(){this.hideResponse(Rico.getPhraseById("saving"));
4737 this.form.reset();
4738 this.setReadOnly("ins");
4739 this.action.value="ins";
4740 for(var a=0;
4741 a<this.grid.columns.length;
4742 a++){var b=this.grid.columns[a];
4743 if(b.format){this.setField(a,b.format.ColData);
4744 if(b.format.SelectCtl){Rico.EditControls.resetValue(b);
4745 Rico.EditControls.displayClrImg(b,!b.format.UpdateOnly)
4746 }}}},addRecord:function(){this.menu.cancelmenu();
4747 this.formPopup.setTitle(this.addText);
4748 this.addPrepare();
4749 this.makeFormVisible(-1);
4750 if(this.formPanels){this.formPanels.select(0)
4751 }},drillDown:function(b,a,c){return this.grid.drillDown.apply(this.grid,arguments)
4752 },setDetailFilter:function(a,b){this.grid.setDetailFilter(a,b)
4753 },makeFormVisible:function(k){this.formPopup.container.style.display="block";
4754 var c=this.formPopup.container.offsetWidth;
4755 var h=Rico.cumulativeOffset(this.grid.outerDiv);
4756 var d=Rico.windowWidth();
4757 this.formPopup.container.style.left=c+h.left>d?(d-c)+"px":(h.left+1)+"px";
4758 var g=Rico.docScrollTop();
4759 var a=this.formPopup.container.offsetHeight;
4760 var f=h.top+this.grid.hdrHt+g;
4761 var b=Rico.windowHeight()+g;
4762 if(k>=0){f+=(k+1)*this.grid.rowHeight;
4763 if(f+a>b){f-=(a+this.grid.rowHeight)
4764 }}else{if(f+a>b){f=b-a-2
4765 }}if(this.processCallback(this.options.formOpen)===false){return
4766 }this.formPopup.openPopup(null,Math.max(f,g));
4767 this.formPopup.container.style.visibility="visible";
4768 Rico.EditControls.setZ(Rico.getStyle(this.formPopup.container,"zIndex"));
4769 if(this.initialized){return
4770 }var e,j;
4771 for(e=0;
4772 e<this.grid.columns.length;
4773 e++){j=this.grid.columns[e].format;
4774 if(!j||!j.EntryType||!j.FieldName){continue
4775 }switch(j.EntryType){case"tinyMCE":if(typeof tinyMCE!="undefined"){tinyMCE.execCommand("mceAddControl",true,j.FieldName)
4776 }break
4777 }}this.initialized=true
4778 },makeFormInvisible:function(){for(var a=0;
4779 a<this.grid.columns.length;
4780 a++){if(this.grid.columns[a].format&&this.grid.columns[a].format.SelectCtl){Rico.EditControls.close(this.grid.columns[a].format.SelectCtl)
4781 }}this.formPopup.container.style.visibility="hidden";
4782 this.formPopup.closePopup();
4783 this.processCallback(this.options.formClose)
4784 },getConfirmDesc:function(a){return Rico.stripTags(this.grid.cell(a,this.options.ConfirmDeleteCol).innerHTML).replace("&nbsp;"," ")
4785 },deleteRecord:function(){this.menu.cancelmenu();
4786 var f;
4787 switch(this.options.ConfirmDeleteCol){case -1:f=Rico.getPhraseById("thisRecord",this.options.RecordName);
4788 break;
4789 case -2:for(var b=0;
4790 b<this.keys.length;
4791 b++){var c=this.keys[b].colidx;
4792 var a=this.grid.columns[c].format;
4793 if(a.EntryType.length>1&&a.EntryType.charAt(1)=="L"){c++
4794 }var e=Rico.stripTags(this.grid.cell(rowIdx,c).innerHTML).replace(/&nbsp;/g," ");
4795 if(f){f+=", "
4796 }f+=this.grid.columns[c].displayName+" "+e
4797 }break;
4798 default:f='"'+Rico.truncate(this.getConfirmDesc(this.rowIdx),50)+'"';
4799 break
4800 }if(!this.options.ConfirmDelete.valueOf||confirm(Rico.getPhraseById("confirmDelete",f))){this.hideResponse(Rico.getPhraseById("deleting"));
4801 this.showResponse();
4802 var d={};
4803 d[this.grid.actionId]="del";
4804 for(var b=0;
4805 b<this.keys.length;
4806 b++){var c=this.keys[b].colidx;
4807 var e=this.grid.columns[c].getValue(this.rowIdx);
4808 d["_k"+c]=e
4809 }new Rico.ajaxRequest(this.options.updateURL,{parameters:d,method:"post",onComplete:this.responseHandler})
4810 }this.menu.cancelmenu()
4811 },validationMsg:function(d,c,e){var b=this.grid.columns[c];
4812 if(this.formPanels){this.formPanels.select(this.panelActualIdx[b.format.panelIdx])
4813 }var a=Rico.stripTags(b.formLabel.innerHTML).replace(/&nbsp;/g," ");
4814 var f=Rico.getPhraseById(e,' "'+a+'"');
4815 Rico.log(" Validation error: "+f);
4816 if(b.format.Help){f+="\n\n"+b.format.Help
4817 }alert(f);
4818 setTimeout(function(){try{d.focus();
4819 d.select()
4820 }catch(g){}},10);
4821 return false
4822 },isTextInput:function(a){if(!a){return false
4823 }if(a.tagName.toLowerCase()!="input"){return false
4824 }if(a.type.toLowerCase()!="text"){return false
4825 }if(a.readOnly){return false
4826 }if(!Rico.visible(a)){return false
4827 }return true
4828 },parseDate:function(c,e){dateParts={};
4829 if(!this.dateRegExp.exec(e)){return NaN
4830 }dateParts[RegExp.$1]=0;
4831 dateParts[RegExp.$3]=1;
4832 dateParts[RegExp.$5]=2;
4833 var i=c.split(/\D/);
4834 var g=new Date();
4835 var b=g.getFullYear();
4836 if(i.length==2&&dateParts.yyyy==2){i.push(b)
4837 }if(i.length!=3){return NaN
4838 }var a=parseInt(i[dateParts.dd],10);
4839 if(a==0||a>31){return NaN
4840 }var f=parseInt(i[dateParts.mm],10)-1;
4841 if(f>11){return NaN
4842 }var h=parseInt(i[dateParts.yyyy],10);
4843 if(h<100){h+=b-(b%100)
4844 }g.setFullYear(h,f,a);
4845 return g
4846 },TESubmit:function(j){var g,h,k,l,f,d,c=[];
4847 Rico.eventStop(j);
4848 Rico.log("Event: TESubmit called to validate input");
4849 for(g=0;
4850 g<this.grid.columns.length;
4851 g++){l=this.grid.columns[g].format;
4852 if(!l||!l.EntryType||!l.FieldName){continue
4853 }f=Rico.$(l.FieldName);
4854 if(!this.isTextInput(f)){continue
4855 }switch(this.action.value){case"ins":h=!l.Writeable||l.ReadOnly||l.UpdateOnly;
4856 break;
4857 case"upd":h=!l.Writeable||l.ReadOnly||l.InsertOnly;
4858 break;
4859 default:h=false;
4860 break
4861 }if(h){continue
4862 }Rico.log(" Validating field #"+g+" EntryType="+l.EntryType+" ("+l.FieldName+")");
4863 if(f.value.length==0){if(l.required){return this.validationMsg(f,g,"formPleaseEnter")
4864 }else{continue
4865 }}if(f.value.length>0&&l.regexp&&!l.regexp.test(f.value)){return this.validationMsg(f,g,"formInvalidFmt")
4866 }switch(l.EntryType.charAt(0)){case"I":d=parseInt(f.value,10);
4867 break;
4868 case"F":d=parseFloat(f.value);
4869 break;
4870 case"D":d=this.parseDate(f.value,l.dateFmt);
4871 if(isNaN(d)){return this.validationMsg(f,g,"formInvalidFmt")
4872 }c.push({e:f,v:d});
4873 break;
4874 default:d=NaN;
4875 break
4876 }if(typeof l.min!="undefined"&&!isNaN(d)&&d<l.min){return this.validationMsg(f,g,"formOutOfRange")
4877 }if(typeof l.max!="undefined"&&!isNaN(d)&&d>l.max){return this.validationMsg(f,g,"formOutOfRange")
4878 }}if(this.processCallback(this.options.formSubmit)===false){return false
4879 }for(g=0;
4880 g<this.grid.columns.length;
4881 g++){l=this.grid.columns[g].format;
4882 if(!l||!l.EntryType||!l.FieldName){continue
4883 }if(l.EntryType.charAt(0)!="N"){continue
4884 }var a=Rico.$(l.FieldName);
4885 if(!a||a.value!=this.options.TableSelectNew){continue
4886 }var b=Rico.$("textnew__"+a.id).value;
4887 this.addSelectOption(a,b,b)
4888 }for(g=0;
4889 g<c.length;
4890 g++){c[g].e.value=Rico.formatDate(c[g].v,"yyyy-mm-dd")
4891 }if(typeof tinyMCE!="undefined"){tinyMCE.triggerSave()
4892 }this.makeFormInvisible();
4893 this.sendForm();
4894 this.menu.cancelmenu();
4895 return false
4896 },sendForm:function(){this.setReadOnly("reset");
4897 this.showResponse();
4898 Rico.log("sendForm: "+this.grid.tableId);
4899 Rico.ajaxSubmit(this.form,this.options.updateURL,{method:"post",onComplete:this.responseHandler})
4900 }};
4901 Rico.EditControls={widgetList:{},elemList:{},zIndex:0,register:function(b,c){this.widgetList[b.id]={imgsrc:c,widget:b,currentEl:""};
4902 var a=this;
4903 b.returnValue=function(d,e){a.setValue(b,d,e)
4904 };
4905 Rico.log("Rico.EditControls.register:"+b.id)
4906 },setZ:function(a){this.zIndex=Math.max(this.zIndex,a+10)
4907 },atLoad:function(){for(var b in this.widgetList){var a=this.widgetList[b].widget;
4908 if(a.atLoad&&!a.atLoadComplete){Rico.log("Rico.EditControls.atLoad: "+b);
4909 a.atLoad();
4910 a.atLoadComplete=true
4911 }}},applyTo:function(e,f){var c=this.widgetList[e.format.SelectCtl];
4912 if(!c){return
4913 }Rico.log("Rico.EditControls.applyTo: "+e.displayName+" : "+e.format.SelectCtl);
4914 var a,d=document.createElement("span");
4915 if(c.imgsrc.indexOf(".")==-1&&c.imgsrc.indexOf("/")==-1){a=document.createElement("span");
4916 a.className=c.imgsrc
4917 }else{a=document.createElement("img");
4918 a.src=c.imgsrc
4919 }a.style.verticalAlign="top";
4920 a.style.marginLeft="4px";
4921 a.style.cursor="pointer";
4922 a.id=this.imgId(e.format.FieldName);
4923 Rico.eventBind(a,"click",Rico.eventHandle(this,"processClick"));
4924 f.parentNode.appendChild(d);
4925 f.parentNode.appendChild(a);
4926 f.style.display="none";
4927 var b;
4928 if(e.format.isNullable){b=Rico.clearButton(Rico.eventHandle(this,"processClear"));
4929 b.id=a.id+"_clear";
4930 f.parentNode.appendChild(b)
4931 }this.elemList[a.id]={descSpan:d,inputCtl:f,widget:c.widget,listObj:c,column:e,clrimg:b};
4932 e.format.selectIcon=a;
4933 e.format.selectDesc=d
4934 },displayClrImg:function(c,a){var b=this.elemList[this.imgId(c.format.FieldName)];
4935 if(b&&b.clrimg){b.clrimg.style.display=a?"inline-block":"none"
4936 }},processClear:function(c){var b=Rico.eventElement(c);
4937 var a=this.elemList[b.id.slice(0,-6)];
4938 if(!a){return
4939 }a.inputCtl.value="";
4940 a.descSpan.innerHTML=a.column._format("")
4941 },processClick:function(c){var b=Rico.eventElement(c);
4942 var a=this.elemList[b.id];
4943 if(!a){return
4944 }if(a.listObj.currentEl==b.id&&a.widget.container.style.display!="none"){a.widget.close();
4945 a.listObj.currentEl=""
4946 }else{a.listObj.currentEl=b.id;
4947 Rico.log("Rico.EditControls.processClick: "+a.widget.id+" : "+a.inputCtl.value);
4948 a.widget.container.style.zIndex=this.zIndex;
4949 a.widget.open(a.inputCtl.value,a.column);
4950 Rico.positionCtlOverIcon(a.widget.container,b)
4951 }},imgId:function(a){return"icon_"+a
4952 },resetValue:function(c){var b=this.elemList[this.imgId(c.format.FieldName)];
4953 if(!b){return
4954 }b.inputCtl.value=c.format.ColData;
4955 var a=c._format(c.format.ColData);
4956 if(a===""){a="&nbsp;"
4957 }b.descSpan.innerHTML=a
4958 },setValue:function(e,a,d){var b=this.widgetList[e.id];
4959 if(!b){return null
4960 }var f=b.currentEl;
4961 if(!f){return null
4962 }var c=this.elemList[f];
4963 if(!c){return null
4964 }c.inputCtl.value=a;
4965 if(!d){d=c.column._format(a)
4966 }c.descSpan.innerHTML=d;
4967 if(c.column.format.DescriptionField){Rico.$(c.column.format.DescriptionField).value=d
4968 }},close:function(b){var a=this.widgetList[b];
4969 if(!a){return
4970 }if(a.widget.container.style.display!="none"){a.widget.close()
4971 }}};
4972 Rico.langCode="en";
4973 Rico.addPhraseId("bookmarkExact","Listing records $1 - $2 of $3");
4974 Rico.addPhraseId("bookmarkAbout","Listing records $1 - $2 of more than $3");
4975 Rico.addPhraseId("bookmarkNoRec","No records");
4976 Rico.addPhraseId("bookmarkNoMatch","No matching records");
4977 Rico.addPhraseId("bookmarkLoading","Loading...");
4978 Rico.addPhraseId("sorting","Sorting...");
4979 Rico.addPhraseId("exportStatus","Exporting row $1");
4980 Rico.addPhraseId("filterAll","(all)");
4981 Rico.addPhraseId("filterBlank","(blank)");
4982 Rico.addPhraseId("filterEmpty","(empty)");
4983 Rico.addPhraseId("filterNotEmpty","(not empty)");
4984 Rico.addPhraseId("filterLike","contains: $1");
4985 Rico.addPhraseId("filterNot","not: $1");
4986 Rico.addPhraseId("requestError","The request for data returned an error:\n$1");
4987 Rico.addPhraseId("keywordPrompt","Enter keyword to search for (use * as a wildcard):");
4988 Rico.addPhraseId("keywordTitle","Keyword Search");
4989 Rico.addPhraseId("ok","OK");
4990 Rico.addPhraseId("gridmenuSortBy","Sort by: $1");
4991 Rico.addPhraseId("gridmenuSortAsc","Ascending");
4992 Rico.addPhraseId("gridmenuSortDesc","Descending");
4993 Rico.addPhraseId("gridmenuFilterBy","Filter by: $1");
4994 Rico.addPhraseId("gridmenuRefresh","Refresh");
4995 Rico.addPhraseId("gridmenuChgKeyword","Change keyword...");
4996 Rico.addPhraseId("gridmenuExcludeAlso","Exclude this value also");
4997 Rico.addPhraseId("gridmenuInclude","Include only this value");
4998 Rico.addPhraseId("gridmenuGreaterThan","Greater than or equal to this value");
4999 Rico.addPhraseId("gridmenuLessThan","Less than or equal to this value");
5000 Rico.addPhraseId("gridmenuContains","Contains keyword...");
5001 Rico.addPhraseId("gridmenuExclude","Exclude this value");
5002 Rico.addPhraseId("gridmenuRemoveFilter","Remove filter");
5003 Rico.addPhraseId("gridmenuRemoveAll","Remove all filters");
5004 Rico.addPhraseId("gridmenuExport","Print/Export");
5005 Rico.addPhraseId("gridmenuExportVis2Web","Visible rows to web page");
5006 Rico.addPhraseId("gridmenuExportAll2Web","All rows to web page");
5007 Rico.addPhraseId("gridmenuExportVis2SS","Visible rows to spreadsheet");
5008 Rico.addPhraseId("gridmenuExportAll2SS","All rows to spreadsheet");
5009 Rico.addPhraseId("gridmenuHideShow","Hide/Show");
5010 Rico.addPhraseId("gridmenuChooseCols","Choose columns...");
5011 Rico.addPhraseId("gridmenuHide","Hide: $1");
5012 Rico.addPhraseId("gridmenuShow","Show: $1");
5013 Rico.addPhraseId("gridmenuShowAll","Show All");
5014 Rico.addPhraseId("sessionExpireMinutes","minutes before your session expires");
5015 Rico.addPhraseId("sessionExpired","EXPIRED");
5016 Rico.addPhraseId("requestTimedOut","Request for data timed out!");
5017 Rico.addPhraseId("waitForData","Waiting for data...");
5018 Rico.addPhraseId("httpError","Received HTTP error: $1");
5019 Rico.addPhraseId("invalidResponse","Server returned an invalid response");
5020 Rico.addPhraseId("gridChooseCols","Choose columns");
5021 Rico.addPhraseId("exportComplete","Exporting complete");
5022 Rico.addPhraseId("exportInProgress","Export in progress...");
5023 Rico.addPhraseId("disableBlocker","You need to disable your browser's pop-up blocker before exporting.");
5024 Rico.addPhraseId("showFilterRow","Show filter row");
5025 Rico.addPhraseId("hideFilterRow","Hide filter row");
5026 Rico.addPhraseId("selectNone","(none)");
5027 Rico.addPhraseId("selectNewVal","(new value)");
5028 Rico.addPhraseId("record","record");
5029 Rico.addPhraseId("thisRecord","this $1");
5030 Rico.addPhraseId("confirmDelete","Are you sure you want to delete $1?");
5031 Rico.addPhraseId("deleting","Deleting...");
5032 Rico.addPhraseId("formPleaseEnter","Please enter a value for $1");
5033 Rico.addPhraseId("formInvalidFmt","Invalid format for $1");
5034 Rico.addPhraseId("formOutOfRange","Value is out of range for $1");
5035 Rico.addPhraseId("formNewValue","new value:");
5036 Rico.addPhraseId("saving","Saving...");
5037 Rico.addPhraseId("clear","clear");
5038 Rico.addPhraseId("close","Close");
5039 Rico.addPhraseId("saveRecord","Save $1");
5040 Rico.addPhraseId("cancel","Cancel");
5041 Rico.addPhraseId("editRecord","Edit $1");
5042 Rico.addPhraseId("deleteRecord","Delete this $1");
5043 Rico.addPhraseId("cloneRecord","Clone $1");
5044 Rico.addPhraseId("addRecord","Add new $1");
5045 Rico.addPhraseId("addedSuccessfully","$1 added successfully");
5046 Rico.addPhraseId("deletedSuccessfully","$1 deleted successfully");
5047 Rico.addPhraseId("updatedSuccessfully","$1 updated successfully");
5048 Rico.addPhraseId("treeSave","Save Selection");
5049 Rico.addPhraseId("treeClear","Clear All");
5050 Rico.addPhraseId("calToday","Today is $1 $2 $3");
5051 Rico.addPhraseId("calWeekHdg","Wk");
5052 Rico.addPhraseId("calYearRange","Year ($1-$2)");
5053 Rico.addPhraseId("calInvalidYear","Invalid year");
5054 Rico.thouSep=",";
5055 Rico.decPoint=".";
5056 Rico.dateFmt="mm/dd/yyyy";
5057 Rico.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];
5058 Rico.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];