/*
 * Ext.nd - Ext for Notes / Domino Beta 2
 * Copyright(c) 2006, Ext.nd LLC.
 * 
 * http://www.extjs.com/license
 */


Ext.namespace("Ext.nd","Ext.nd.form","Ext.nd.data","Ext.nd.util");Ext.nd.getBlankImageUrl=function(){return this.extndUrl+"resources/images/s.gif";};Ext.nd.init=function(config){Ext.apply(this,config);Ext.BLANK_IMAGE_URL=this.getBlankImageUrl();};Ext.nd.util.addIFrame=function(config){var targetPanel=false;var panel=false;var targetIFrame=document.body;var iframe=null;if(config.target.getItem){targetPanel=config.target;panel=targetPanel.getItem(config.id);}else{targetIFrame=Ext.get(config.target);}
var ifId='if-'+config.id;if(!panel){iframe=Ext.get(ifId);if(iframe){iframe.src=config.url;}else{iframe=Ext.DomHelper.append(targetIFrame,{tag:'iframe',id:ifId,frameBorder:0,src:config.url,style:{width:'100%',height:'100%'}});}
if(targetPanel){panel=targetPanel.add(Ext.apply({contentEl:ifId,title:Ext.util.Format.ellipsis(config.title,16),layout:'fit',id:config.id,closable:true},config.targetDefaults));panel.show();panel.on('render',function(){panel.doLayout();},this);if(config.useIFrameTitle){var dom=Ext.get(iframe).dom;var event=Ext.isIE?'onreadystatechange':'onload';dom[event]=(function(){var cd=this.contentWindow||window.frames[this.name];var title=cd.document.title;if(title!=""){panel.setTitle(Ext.util.Format.ellipsis(title,16));}else{panel.setTitle("Untitled");}
panel.doLayout();}).createDelegate(dom);}}}else{if(panel.show){panel.show();}}}
Ext.nd.util.doLayoutAndShow=function(panel){if(panel.ownerCt&&panel.ownerCt.doLayout){panel.ownerCt.doLayout();}
if(panel.show){panel.show();}}

Ext.nd.Document=function(config){var sForm='Ext.nd.Document.json';Ext.apply(this,config);var sHREF,locNSF,urlStart;sHREF=location.href;locNSF=sHREF.toLowerCase().indexOf('.nsf/');urlStart=sHREF.substring(0,locNSF+5);this.url=urlStart+'($Ext.nd.SwitchForm)/'+this.unid+'?OpenDocument&form='+sForm;Ext.Ajax.request({method:'GET',disableCaching:true,success:this.assignValue,failure:this.processException,scope:this,url:this.url});};Ext.nd.Document.prototype={onComplete:function(){},assignValue:function(req){var sTmp,oTmp;sTmp=req.responseText;oTmp=eval('('+sTmp+')');Ext.apply(this,oTmp);this.onComplete();},processException:function(req){Ext.MessageBox.alert("Error","There was an error in the instantiation of the Document class");}};

Ext.nd.DominoPagingToolbar=function(config){Ext.nd.DominoPagingToolbar.superclass.constructor.call(this,config);this.previousCursor=1;this.previousStart=[];this.previousStartMC=new Ext.util.MixedCollection();};Ext.extend(Ext.nd.DominoPagingToolbar,Ext.PagingToolbar,{beforePageText:"Showing entries ",afterPageText:" - {0}",readPage:function(d){var pageNum=this.field.dom.value;if(!pageNum){this.field.dom.value=d.activePage;return false;}
return pageNum;},onPagingKeydown:function(e){var k=e.getKey(),d=this.getPageData(),pageNum;if(k==e.RETURN){e.stopEvent();pageNum=this.readPage(d);this.doLoad(pageNum);}else if(k==e.HOME||k==e.END){e.stopEvent();pageNum=k==e.HOME?1:d.pages;this.field.dom.value=pageNum;}else if(k==e.UP||k==e.PAGEUP||k==e.DOWN||k==e.PAGEDOWN){e.stopEvent();if(pageNum=this.readPage(d)){var increment=e.shiftKey?10:1;if(k==e.DOWN||k==e.PAGEDOWN){increment*=-1;}
pageNum+=increment;if(pageNum>=1&pageNum<=d.pages){this.field.dom.value=pageNum;}}}},onClick:function(which){var store=this.store;var d=this.getPageData();var start;this.which=which;switch(which){case'first':store.load({params:Ext.apply(store.lastOptions.params,{start:1,count:this.pageSize})});break;case'prev':var first=store.data.first();var firstPosition=first.node.attributes.getNamedItem('position').value;var indexFirst=this.previousStartMC.indexOfKey(firstPosition)
if(indexFirst!=-1){if(indexFirst==0){start=1;}else{start=this.previousStartMC.get(indexFirst-1);}}else{if(this.prevWhich=='last'){start=this.previousStartMC.last();}else{start=1;this.previousStartMC.clear();}}
store.load({params:Ext.apply(store.lastOptions.params,{start:start,count:this.pageSize})});break;case'next':var last=store.data.last();var lastIndex=store.data.indexOf(last);if(store.data.length>0){if(last.isCategoryTotal){var previous=store.getAt(lastIndex-1);start=previous.node.attributes.getNamedItem('position').value;}else{start=last.node.attributes.getNamedItem('position').value;}
this.previousStartMC.add(start,start);}else{start=1;}
store.load({params:Ext.apply(store.lastOptions.params,{start:start,count:this.pageSize})});break;case'last':var total=store.getTotalCount();var extra=total%this.pageSize;var lastStart=this.isCategorized?total:extra?(total-extra):total-this.pageSize;store.load({params:Ext.apply(store.lastOptions.params,{start:lastStart,count:this.pageSize})});break;case'refresh':store.load({params:Ext.apply(store.lastOptions.params,{start:this.cursor,count:this.pageSize})});break;}
this.prevWhich=which;},onLoad:function(store,r,o){this.cursor=o.params?(o.params.start?o.params.start:1):1;var d=this.getPageData(),ap=d.activePage,ps=d.pages;if(!o.params.start){d.activePage=1;ap=1;}
var tm=Ext.util.TextMetrics.createInstance(this.field.dom,100);this.field.applyStyles({'width':Math.max(tm.getWidth(ap)+10,20),'textAlign':'right'});this.afterTextEl.el.innerHTML=String.format(this.afterPageText,d.pages);this.field.dom.value=ap;this.first.setDisabled(store.baseParams.start==1);this.prev.setDisabled(store.baseParams.start==1);this.next.setDisabled(store.data.length<store.baseParams.count);this.last.setDisabled(store.data.length<store.baseParams.count);this.loading.enable();},getPageData:function(){var total=this.store.getTotalCount();var activePage,first,firstText,last,lastText;this.which="";if(this.store.data.length>0){first=this.store.data.first();firstText=first.node.attributes.getNamedItem('position').value;last=this.store.data.last();if(last.isCategoryTotal){var lastIndex=this.store.data.indexOf(last);var previous=this.store.getAt(lastIndex-1);lastText=previous.node.attributes.getNamedItem('position').value;}else{lastText=last.node.attributes.getNamedItem('position').value;}}else{firstText="1";lastText="1";}
return{total:total,activePage:firstText,pages:lastText+" of "+total};}});

Ext.nd.DominoUI=function(config){Ext.apply(this,config);this.init();this.loadLink();};Ext.nd.DominoUI.prototype={uiView:{viewName:'',viewUrl:''},uiOutline:{outlineName:'',outlineUrl:''},viewOpeningTitle:'Opening...',init:function(){this.createDominoUI();},createDominoUI:function(){this.viewport=new Ext.Viewport({layout:'border',id:'extnd-viewport',items:[Ext.apply({region:'west',id:'xnd-outline-panel',xtype:'xnd-uioutline',target:'xnd-center-panel',collapsible:true,title:Ext.nd.Session.currentDatabase.title,split:true,width:200},this.uiOutline),{region:'center',id:'xnd-center-panel',xtype:'tabpanel',target:'xnd-center-panel',enableTabScroll:true,activeTab:0,items:[Ext.apply({id:'xnd-grid-panel',layout:'fit',xtype:'xnd-uiview'},this.uiView)]}]});this.outlinePanel=Ext.getCmp('xnd-outline-panel');this.view=Ext.getCmp('xnd-grid-panel');this.tabPanel=Ext.getCmp('xnd-center-panel');this.tabPanel.on('beforeremove',this.fixIFrame,this);},loadLink:function(){var href=window.location.href;if(href.indexOf('?')>0||href.indexOf('!')>0){var qs=(href.indexOf('?')>0)?href.split('?')[1]:href.split('!')[1];var ps=Ext.urlDecode(qs);var link=ps['link'];var title=link;if(link){var unid=(link.indexOf('?')>0)?href.split('?')[0]:link;var panelId='pnl-'+unid;var entry=this.tabPanel.getItem(panelId);if(!entry){var iframe=Ext.DomHelper.append(document.body,{tag:'iframe',frameBorder:0,src:link,id:unid,style:{width:'100%',height:'100%'}});this.tabPanel.add({id:panelId,contentEl:iframe.id,title:Ext.util.Format.ellipsis(title,16),layout:'fit',closable:true}).show();var panel=Ext.getCmp(panelId);var dom=Ext.get(unid).dom;var event=Ext.isIE?'onreadystatechange':'onload';dom[event]=(function(){var cd=this.contentWindow||window.frames[this.name];var title;try{title=cd.document.title;if(title!=""){panel.setTitle(Ext.util.Format.ellipsis(title,16));}else{panel.setTitle("Untitled");}}catch(ignore){}}).createDelegate(dom);}else{entry.show();}}}},fixIFrame:function(container,panel){var iFrame=panel.getEl().dom;if(iFrame.src){iFrame.src="javascript:false";}
Ext.removeNode(iFrame);},showError:function(){alert("An error has occured");}};

Ext.nd.data.DominoViewStore=function(config){Ext.nd.data.DominoViewStore.superclass.constructor.call(this,config);};Ext.extend(Ext.nd.data.DominoViewStore,Ext.data.Store,{load:function(options){options=options||{};if(this.fireEvent("beforeload",this,options)!==false){this.storeOptions(options);if(options.params.expand||options.params.expandView){if(this.baseParams.collapse){delete this.baseParams.collapse;}
if(this.baseParams.collapseView){delete this.baseParams.collapseView;}}
if(options.params.collapse||options.params.collapseView){if(this.baseParams.expand){delete this.baseParams.expand;}
if(this.baseParams.expandView){delete this.baseParams.expandView;}}
var p=Ext.apply(this.baseParams,options.params||{});if(this.sortInfo&&this.remoteSort){var pn=this.paramNames;var sortColumn=this.sortInfo.mapping;var colConfig=this.reader.meta.columnConfig[sortColumn];if(colConfig.resortviewunid!=""){return;}
var sortDir=this.sortInfo.direction;if(sortDir=="ASC"){if(p.resortascending){if(p.resortascending!=sortColumn){p.resortascending=sortColumn;if(p.start){delete p.start;delete p.startkey;}
if(p.resortdescending){delete p.resortdescending;}}else{if(p.start){delete p.startkey;}}}else{p.resortascending=sortColumn;delete p.start;delete p.startkey;delete p.resortdescending;}}else{if(p.resortdescending){if(p.resortdescending!=sortColumn){p.resortdescending=sortColumn;if(p.start){delete p.start;delete p.startkey;}
if(p.resortascending){delete p.resortdescending;}}else{if(p.start){delete p.startkey;}}}else{p.resortdescending=sortColumn;delete p.start;delete p.startkey;delete p.resortascending;}}}
this.proxy.load(p,this.reader,this.loadRecords,this,options);}},sort:function(fieldName,dir){var f=this.fields.get(fieldName);if(!dir){if(this.sortInfo&&this.sortInfo.field==f.name){dir=(this.sortToggle[f.name]||"ASC").toggle("ASC","DESC");}else{dir=f.sortDir;}}
this.sortToggle[f.name]=dir;this.sortInfo={field:f.name,direction:dir,mapping:f.mapping};if(!this.remoteSort){this.applySort();this.fireEvent("datachanged",this);}else{this.load(this.lastOptions);}}});

Ext.nd.data.DominoViewXmlReader=function(meta,recordType){Ext.nd.data.DominoViewXmlReader.superclass.constructor.call(this,meta,recordType);};Ext.extend(Ext.nd.data.DominoViewXmlReader,Ext.data.XmlReader,{readRecords:function(doc){this.xmlData=doc;var root=doc.documentElement||doc;var q=Ext.DomQuery;var recordType=this.recordType,fields=recordType.prototype.fields;var sid=this.meta.id;var totalRecords=0;if(this.meta.totalRecords){totalRecords=q.selectNumber(this.meta.totalRecords,root,0);}
var records=[];var ns=q.select(this.meta.record,root);for(var i=0,len=ns.length;i<len;i++){var n=ns[i];var values={};var id=sid?q.selectValue(sid,n):undefined;for(var j=0,jlen=fields.length;j<jlen;j++){var f=fields.items[j];var v=this.getViewColumnValue(n,f.mapping,f.defaultValue);v=f.convert(v);values[f.name]=v;}
var record=new recordType(values,id);record.node=n;records[records.length]=record;record.hasChildren=n.attributes.getNamedItem('children');record.isResponse=n.attributes.getNamedItem('response');record.position=n.attributes.getNamedItem('position').value;record.depth=record.position.split('.').length;record.noteid=n.attributes.getNamedItem('noteid').value;record.unid=(n.attributes.getNamedItem('unid'))?n.attributes.getNamedItem('unid').value:null;record.isCategory=(record.hasChildren&&!n.attributes.getNamedItem('unid'))?true:false;record.isCategoryTotal=n.attributes.getNamedItem('categorytotal');}
return{records:records,totalRecords:totalRecords||records.length};},getViewColumnValue:function(node,colNbr,defaultValue){var q=Ext.DomQuery;var type;var data;var oValue={type:'text',data:[]};var entryDataNodes=q.select('entrydata',node);for(var i=0;i<entryDataNodes.length;i++){var cn=q.selectNumber('@columnnumber',entryDataNodes[i]);if(cn==colNbr){var lc=entryDataNodes[i].lastChild;oValue=this.getValue(lc,lc.nodeName);oValue.category=(q.selectValue('@category',entryDataNodes[i])=='true')?true:false;oValue.indent=(q.select('@indent',entryDataNodes[i]))?q.selectNumber('@indent',entryDataNodes[i]):0;}}
return oValue;},getValue:function(node,type){var oValue={type:type,data:[]};if(!node){oValue.data.push('');}else if(node.childNodes&&node.childNodes.length>0&&node.childNodes[0].hasChildNodes()){for(var i=0;i<node.childNodes.length;i++){if(node.childNodes[i].firstChild.nodeName!='#text'){oValue.type=node.childNodes[i].firstChild.nodeName;}else{oValue.type=type;}
oValue.data.push(node.childNodes[i].firstChild.nodeValue);}}else{oValue.type=type;if(node.childNodes&&node.childNodes.length>0){oValue.data.push(node.childNodes[0].nodeValue);}else{oValue.data.push('');}}
return oValue;}});

Ext.nd.Formula=function(sFormula,config){var sForm='Ext.nd.FormulaEval';this.ExecuteInDocumentContext=false;if(sFormula){this.text=sFormula;}else{this.text=null;}
Ext.apply(this,config);var sHREF=location.href;var locNSF=sHREF.toLowerCase().indexOf('.nsf/');var urlStart=sHREF.substring(0,locNSF+5);if(this.unid=='undefined'){var arTmp=sHREF.substring(locNSF+5,sHREF.length).split('/');var arDoc=arTmp[1].split('?');this.unid=arDoc[0];}
if(this.ExecuteInDocumentContext){this.url=urlStart+'($Ext.nd.SwitchForm)/'+this.unid+'?SaveDocument&form='+sForm;}else{this.url=urlStart+sForm+'?CreateDocument';}
this.value=new Array();};Ext.nd.Formula.prototype={eval:function(){var body='formula='+encodeURIComponent(this.text);var ajaxOpts={method:'GET',disableCache:true,success:this.assignValue.createDelegate(this),failure:this.processException,scope:this,url:this.url};Ext.Ajax.request(ajaxOpts);if(this.target!=null){var el=Ext.get(target);var mgr=el.getUpdateManager();mgr.update(this.url,body,this.assignValue.createDelegate(this));}else{Ext.Ajax.request(ajaxOpts);}},onComplete:function(){},assignValue:function(req){var response=req.responseText;var iBodyStartTagBegin=response.indexOf("<body");var sBody=response.substring(iBodyStartTagBegin);var iBodyStartTagEnd=sBody.indexOf(">");var iBodyEndTag=sBody.indexOf("</body>");var result=sBody.substring(iBodyStartTagEnd+1,iBodyEndTag);this.value=result.split('~~');this.onComplete();}};

Ext.nd.UIOutline=function(config){var sess=Ext.nd.Session;var db=sess.currentDatabase;this.dbPath=db.webFilePath;this.filePath=db.filePath;this.outlineName='';this.showIcons=true;this.useOutlineIcons=false;this.target=null;Ext.apply(this,config);this.outlineUrl=(this.outlineUrl)?this.outlineUrl:this.dbPath
+this.outlineName;Ext.nd.UIOutline.superclass.constructor.call(this);};Ext.extend(Ext.nd.UIOutline,Ext.tree.TreePanel,{rootVisible:false,initComponent:function(){Ext.applyIf(this,{id:'xnd-outline-'+Ext.id(),animate:true,enableDD:true,ddGroup:'TreeDD',autoScroll:true,containerScroll:true,loader:new Ext.nd.UIOutline.Loader({url:this.outlineUrl+'?ReadEntries'}),dropConfig:{appendOnly:true,notifyDrop:this.addToFolder.createDelegate(this),onNodeOver:this.addToFolderCheck.createDelegate(this)},root:new Ext.nd.TreeNode({text:'outline root',expanded:true,draggable:false,id:'xnd-outline-root'+Ext.id()})});Ext.nd.UIOutline.superclass.initComponent.call(this);this.addEvents('readentries','beforeopenentry','openentry','beforeaddfolder','addfoldersuccess','addfolderfailure');this.on('click',this.openEntry,this);},afterRender:function(){Ext.nd.UIOutline.superclass.afterRender.call(this);this.getLoader().load(this.getRootNode());},addToFolderCheck:function(n,dd,e,data){var node=n.node;var type=node.attributes.extndType;var unid=node.attributes.extndUNID;if(node.expand){node.expand();}
if(type=="20"){this.isFolder=true;this.folderUNID=unid;return dd.dropAllowed;}else{this.isFolder=false;this.folderUNID='';return dd.dropNotAllowed;}},addToFolder:function(source,e,data){var unids="";if(this.isFolder){if(this.fireEvent('beforeaddfolder',this,source,e,data)!==false){var target=e.target;var fromFolder='';if(data.selections){var select=data.selections;fromFolder=source.grid.viewName;for(var i=0;i<select.length;i++){var d=select[i];unids+="unid="+d.unid+"&";}
Ext.Ajax.request({method:'POST',disableCaching:true,success:this.addToFolderSuccess,failure:this.addToFolderFailure,scope:this,params:unids,url:Ext.nd.extndUrl
+'FolderOperations?OpenAgent&db='
+this.filePath
+'&operation=putinfolder'+'&folder='
+this.folderUNID+'&fromfolder='
+fromFolder});return true;}}
if(data.node){return true;}}},addToFolderSuccess:function(response,request){this.fireEvent('addfoldersuccess',this,response,request);},addToFolderFailure:function(response,request){this.fireEvent('addfolderfailure',this,response,request);},openEntry:function(node,e){if(this.fireEvent('beforeopenentry',this,node)!==false){var panel,attributes,extndType,extndHref,extndPosition,panelId,title,entry,xtype;attributes=node.attributes;extndHref=attributes.extndHref;extndType=attributes.extndType;extndPosition=attributes.extndPosition;panelId='xnd-pnl-'+extndPosition;title=node.text;var target=(this.target.getXType)?this.target:Ext.getCmp(this.target);target=(target&&target.getXType)?target:Ext.get(target);if(target.getItem){panel=target.getItem(panelId);}
if(!panel){if(extndType=="2"||extndType=="20"){var viewUrl=(extndHref.indexOf('?')>0)?extndHref.split('?')[0]:extndHref.split('!')[0];if(!this.target){window.open(viewUrl+'?OpenView')}else{this.targetDefaults=this.targetDefaults||{};if(target.getXType&&target.add){xtype=target.getXType();switch(xtype){case'grid':case'xnd-uiview':alert('need code to replace this uiview');break;default:var entry=target.add(Ext.apply({id:panelId,layout:'fit',xtype:'xnd-uiview',viewUrl:viewUrl},this.targetDefaults));Ext.nd.util.doLayoutAndShow(entry);break;}}else{var entry=new Ext.nd.UIView(Ext.apply({id:panelId,layout:'fit',viewUrl:viewUrl,renderTo:target},this.targetDefaults));Ext.nd.util.doLayoutAndShow(entry);}}}
else if(extndHref!=""){if(!this.target){window.open(extndHref);}else{var target=(this.target.getXType)?this.target:Ext.getCmp(this.target);target=(target&&target.getXType)?target:Ext.get(target);this.targetDefaults=this.targetDefaults||{};if(target.getXType&&target.add){Ext.nd.util.addIFrame({target:target,url:extndHref,id:panelId,title:title,targetDefaults:this.targetDefaults});}}}}
else{if(panel.show){panel.show();}}
this.fireEvent('openentry',this,node);}}});Ext.reg('xnd-uioutline',Ext.nd.UIOutline);Ext.nd.UIOutline.Loader=function(config){Ext.nd.UIOutline.Loader.superclass.constructor.call(this);this.requestMethod='GET';Ext.apply(this,config);};Ext.extend(Ext.nd.UIOutline.Loader,Ext.tree.TreeLoader,{createNode:function(attr,tree){var a=attr.attributes,cls,nodeAttr;var type=a.getNamedItem('type').value;var unid=a.getNamedItem('unid')?a.getNamedItem('unid').value:null;var title=a.getNamedItem('title').value;var href=a.getNamedItem('url')?a.getNamedItem('url').value:'';var expandable=a.getNamedItem('expandable')?true:false;var icon=a.getNamedItem('icon')?a.getNamedItem('icon').value:'';var position=a.getNamedItem('position').value;switch(type){case"0":cls=(expandable)?"folder":"file";break;case"2":cls="file";break;case"20":cls="folder";break;default:cls="file";}
nodeAttr={text:title,cls:(tree.showIcons)?cls:null,iconCls:(tree.showIcons)?((tree.useOutlineIcons)?'xnd-icon':null):'xnd-no-icon',allowDrag:(type=="20")?true:false,allowDrop:(type=="20")?true:false,isTarget:true,leaf:false,extndHref:href,extndType:type,extndUNID:unid,extndExpandable:expandable,extndPosition:position,icon:(tree.showIcons&&tree.useOutlineIcons)?icon:null};return new Ext.nd.TreeNode(nodeAttr);},processResponse:function(response,node,callback){var o=response.responseXML;var entries=o.getElementsByTagName('outlineentry');try{node.beginUpdate();var nodes=[];for(var i=0;i<entries.length;i++){var entry=entries.item(i);var n=this.createNode(entry,node.getOwnerTree());if(n){var curPosition=entry.attributes.getNamedItem('position').value;nodes[curPosition]=n;if(curPosition.indexOf('.')>0){var parentPosition=curPosition.substring(0,curPosition.lastIndexOf('.'));nodes[parentPosition].appendChild(n);}else{node.appendChild(n);}}}
node.endUpdate();if(typeof callback=="function"){callback(this,node);}}catch(e){this.handleFailure(response);}}});Ext.nd.TreeNode=Ext.extend(Ext.tree.TreeNode,{hasChildNodes:function(){var attr=this.attributes;if(attr.extndType=="20"||((attr.extndType=="0"||attr.extndType=="2")&&(this.attributes.extndExpandable))){return true;}else{return false;}}});

Ext.nd.UIView=function(config){if(config.gridConfig){Ext.applyIf(config,config.gridConfig);delete config.gridConfig;}
if(config.viewName){if(config.dbPath){config.viewUrl=config.dbPath+config.viewName;}else if(Ext.nd.Session){config.dbPath=Ext.nd.Session.currentDatabase.webFilePath
config.viewUrl=config.dbPath+config.viewName;}else{Ext.Msg.alert('Error','UIView must have access to Ext.nd.Session or a dbPath must be defined if viewName is defined')}}else if(config.viewUrl){var vni=config.viewUrl.lastIndexOf('/')+1;config.dbPath=config.viewUrl.substring(0,vni);config.viewName=config.viewUrl.substring(vni);}else{Ext.Msg.alert('Error','UIView must have viewUrl or access to Ext.nd.Session and viewName defined');}
config.columns=[{dataIndex:'dummy',header:''}];this.dmyId='xnd-dummy-store-'+Ext.id();config.store=new Ext.data.Store({id:this.dmyId});Ext.nd.UIView.superclass.constructor.call(this,config);}
Ext.extend(Ext.nd.UIView,Ext.grid.GridPanel,{showActionbar:true,showPagingToolbar:true,useCheckboxSm:false,buildActionBarFromDXL:true,editMode:true,categorized:false,count:40,initComponent:function(){this.on('render',this.getViewDesign,this);this.cols=[];this.recordConfig=[];this.baseParams={}
this.renderers=[];var dmyId='dmy-btn-'+Ext.id();var sm;if(this.categorized){sm=new Ext.nd.CategorizedRowSelectionModel();}else if(this.useCheckboxSm){sm=new Ext.grid.CheckboxSelectionModel();this.cols.push(sm);}else{sm=new Ext.grid.RowSelectionModel({singleSelect:this.singleSelect});}
sm.on('rowselect',function(){this.documents=this.getDocuments();},this);sm.on('rowdeselect',function(){this.documents=this.getDocuments();},this);if(!this.toolbar&&(this.showActionbar||(this.category&&this.showCategoryComboBox))){var plugins=[];plugins.push(new Ext.nd.Actionbar({noteType:'view',dbPath:this.dbPath,noteName:this.viewName,uiView:this,useDxl:this.buildActionBarFromDXL,useViewTitleFromDxl:this.useViewTitleFromDxl,target:this.target||null,dmyId:dmyId}));if(this.category&&this.showCategoryComboBox){plugins.push(new Ext.nd.SingleCategoryCombo({viewUrl:this.viewUrl,value:this.category,count:this.categoryComboBoxCount||-1,listeners:{categorychange:this.handleCategoryChange,scope:this}}));}
this.toolbar=new Ext.Toolbar({id:'xnd-view-toolbar-'+Ext.id(),items:[{text:'',id:dmyId}],plugins:plugins})}
Ext.applyIf(this,{sm:sm,enableDragDrop:true,ddGroup:'TreeDD',loadMask:true,title:this.viewName,collapseIcon:Ext.nd.extndUrl
+"resources/images/minus.gif",expandIcon:Ext.nd.extndUrl+"resources/images/plus.gif",dateTimeFormats:Ext.nd.dateTimeFormats,tbar:this.toolbar||null,bbar:(this.showPagingToolbar&&!this.categorized)?new Ext.nd.DominoPagingToolbar({store:this.store,pageSize:this.count,paramNames:{start:'start',limit:'count'}}):null});if(this.categorized){this.view=new Ext.nd.CategorizedView({});this.enableColumnMove=false;}
this.addEvents('beforeaddtofolder','beforeclose','beforeopendocument','beforeopen','getdesignfailure','getdesignsuccess','open');this.on('rowdblclick',this.gridHandleRowDblClick,this);this.on('cellclick',this.gridHandleCellClick,this,true);this.on('headerclick',this.gridHandleHeaderClick,this,true);Ext.nd.UIView.superclass.initComponent.call(this);this.fireEvent('open',this);},gridHandleRowDblClick:function(grid,rowIndex,e,bEditMode){var row=grid.getSelectionModel().getSelected();if(row.unid){if(this.fireEvent("beforependocument",grid)!==false){this.openDocument(grid,rowIndex,e,bEditMode);}}},gridHandleCellClick:function(grid,rowIndex,colIndex,e){var ecImg=Ext.get(e.getTarget());var cellCat,cellResponse;var cell=false;var options={};var record=grid.getStore().getAt(rowIndex);if(ecImg.dom.tagName=='IMG'){cellCat=ecImg.findParent('td.xnd-view-category');cell=cellCat;if(!cellCat){cellResponse=ecImg.findParent('td.xnd-view-response');cell=cellResponse;}
if(cell){var cellEl=Ext.get(cell);var isExpand=cellEl.hasClass('xnd-view-expand');if(isExpand){options.params=Ext.apply({count:rowIndex+this.count},{expand:record.position});this.getStore().load(options);}else{var isCollapse=cellEl.hasClass('xnd-view-collapse');if(isCollapse){options.params=Ext.apply({count:this.getStore().lastOptions.params.count},{collapse:record.position});this.getStore().load(options);}}}}else{return;}},gridContextMenuOpenDocument:function(action,e){var grid=action.parentMenu.grid;var rowIndex=action.parentMenu.rowIndex;var bEditMode=action.editMode;this.openDocument(grid,rowIndex,e,bEditMode);},gridHandleHeaderClick:function(grid,colIndex,e){if(!grid.region){var colConfig=this.colModel.config[colIndex];if(colConfig.resortviewunid!=""){e.stopPropagation();var dbUrl=this.viewUrl;dbUrl=dbUrl.substring(0,dbUrl.lastIndexOf('/')+1);delete this.viewName;delete grid.viewName;delete this.initialConfig.viewName;delete grid.initialConfig.viewName;if(grid.ownerCt&&grid.ownerCt.remove){var config={viewUrl:dbUrl+colConfig.resortviewunid};var o=grid.ownerCt;o.remove(grid);var newView=o.add(new Ext.nd.UIView(config));if(newView.show){newView.show();}
o.doLayout();}else{var renderTo=grid.container;var config=Ext.applyIf({viewUrl:dbUrl+colConfig.resortviewunid,renderTo:renderTo},grid.initialConfig);grid.destroy();var newView=new Ext.nd.UIView(config);newView.on('render',function(){newView.doLayout();},this);}
return false;}else{return true;}}else{return true;}},openDocument:function(grid,rowIndex,e,bEditMode){var mode=(bEditMode)?'?EditDocument':'?OpenDocument';var title="Opening...";var ds=grid.getStore();var row=grid.getSelectionModel().getSelected();if(row==undefined){return;}
if(!row.unid){return;}
var panelId='pnl-'+row.unid;var link=this.viewUrl+'/'+row.unid+mode;if(!this.target){window.open(link);}else{var target=(this.target.getXType)?this.target:Ext.getCmp(this.target);target=(target&&target.getXType)?target:Ext.get(target);this.targetDefaults=this.targetDefaults||{};Ext.nd.util.addIFrame({target:target,url:link,id:row.unid,title:title,targetDefaults:this.targetDefaults,useIFrameTitle:true});}},getViewDesign:function(){Ext.Ajax.request({method:'GET',disableCaching:true,success:this.getViewDesignCB,failure:this.getViewDesignFailure,scope:this,url:this.viewUrl+'?ReadDesign'});},getViewDesignCB:function(o){this.processDesignXml(o.responseXML);if(this.showSingleCategory){this.category=this.showSingleCategory;delete this.showsSingleCategory;}
if(this.category){this.baseParams.RestrictToCategory=this.category;}
var viewEntry=Ext.data.Record.create(this.dominoView.recordConfig);var viewEntryReader=new Ext.nd.data.DominoViewXmlReader(this.dominoView.meta,viewEntry);this.colModel=new Ext.grid.ColumnModel(this.dominoView.meta.columnConfig);this.store=new Ext.nd.data[(this.categorized)?'CategorizedStore':'DominoViewStore']({proxy:new Ext.data.HttpProxy({url:this.viewUrl+'?ReadViewEntries',method:"GET"}),baseParams:this.baseParams,reader:viewEntryReader,remoteSort:true});if(!this.view){this.view=this.getView();}
this.reconfigure(this.store,this.colModel);this.store.load({params:{count:this.count,start:1}});var pg=this.getBottomToolbar();if(pg){pg.unbind(this.dmyId);pg.bind(this.store);}
this.fireEvent('getdesignsuccess',this,this.store,this.colModel);},processDesignXml:function(dxml){var q=Ext.DomQuery;var arColumns=q.select('column',dxml);var isCategorized=q.selectNumber('viewdesign/@categories',dxml,0);isCategorized=(isCategorized>0)?true:false;var arColumnConfig=[];var arRecordConfig=[];for(var i=0;i<arColumns.length;i++){if(i==0&&this.category){continue;}
var col=arColumns[i];var columnnumber=q.selectNumber('@columnnumber',col);columnnumber=(this.category)?columnnumber-1:columnnumber;var name=q.selectValue('@name',col,'columnnumber_'
+columnnumber);var title=q.selectValue('@title',col,"&nbsp;");var width=Math.max(q.selectNumber('@width',col)*1.41,22);var response=q.selectValue('@response',col,false);var responseValue=(response)?true:false;var twistie=q.selectValue('@twistie',col,false);var twistieValue=(twistie)?true:false;var listseparatorValue=q.selectValue('@listseparator',col,'none');var resize=q.selectValue('@resize',col,false);var resizeValue=(resize)?true:false;var sortcategorize=q.selectValue('@sortcategorize',col,false);var sortcategorizeValue=(sortcategorize)?true:false;var resortascending=q.selectValue('@resortascending',col,false);var resortascendingValue=(resortascending)?true:false;var resortdescending=q.selectValue('@resortdescending',col,false);var resortdescendingValue=(resortdescending)?true:false;var resorttoview=q.selectValue('@resorttoview',col,false);var resorttoviewValue=(resorttoview)?true:false;var resortviewunidValue=(resorttoview)?q.selectValue('@resortviewunid',col,""):"";var isSortable=(resortascendingValue||resortdescendingValue)?true:false;var icon=q.selectValue('@icon',col,false);var iconValue=(icon)?true:false;var align=q.selectValue('@align',col,false);var alignValue=(align)?((align=="2")?'center':'right'):'left';var headerAlign=q.selectValue('@headeralign',col,false);var headerAlignValue=(headerAlign)?((headerAlign=="2")?'center':'right'):'left';var tmpDateTimeFormat=q.select('datetimeformat',col)[0];var datetimeformat={};datetimeformat.show=q.selectValue('@show',tmpDateTimeFormat);datetimeformat.date=q.selectValue('@date',tmpDateTimeFormat);datetimeformat.time=q.selectValue('@time',tmpDateTimeFormat);datetimeformat.zone=q.selectValue('@zone',tmpDateTimeFormat);var rendr=(this.renderers[columnnumber])?this.renderers[columnnumber]:this.dominoRenderer.createDelegate(this);var columnConfig={header:(resorttoviewValue)?title
+"<img src='/icons/viewsort.gif' />":title,align:alignValue,dataIndex:name,width:width,renderer:rendr,sortable:isSortable,resortascending:resortascendingValue,resortdescending:resortdescendingValue,resortviewunid:resortviewunidValue,sortcategorize:sortcategorizeValue,resize:resizeValue,listseparator:listseparatorValue,response:responseValue,twistie:twistieValue,icon:iconValue,datetimeformat:datetimeformat};var recordConfig={name:name,mapping:columnnumber};arRecordConfig.push(recordConfig);this.cols.push(columnConfig);arColumnConfig.push(columnConfig);}
this.dominoView={meta:{root:'viewentries',record:'viewentry',totalRecords:'@toplevelentries',id:'@position',columnConfig:arColumnConfig,isCategorized:isCategorized},recordConfig:arRecordConfig};},getViewDesignFailure:function(res,req){this.fireEvent('getdesignfailure',this,res,req);},dominoRenderer:function(value,cell,row,rowIndex,colIndex,dataStore){var colConfig=this.colModel.config[colIndex];if(value&&value.data.length==0&&!colConfig.response){return"";}
var args=arguments;var colConfig=this.colModel.config[colIndex];var prevColConfig=(colIndex>0)?this.colModel.config[colIndex-1]:null;var viewentry=row.node;var dsItem=dataStore.data.items[rowIndex+1];var nextViewentry=(dsItem)?dsItem.node:null;var viewentryPosition=viewentry.attributes.getNamedItem('position').value;var viewentryLevel=viewentryPosition.split('.').length;var sCollapseImage='<img src="'+this.collapseIcon
+'" style="vertical-align:bottom; padding-right:4px;"/>';var sExpandImage='<img src="'+this.expandIcon
+'" style="vertical-align:bottom; padding-right:4px;"/>';var indentPadding=(20*viewentryLevel)+"px";var indentPaddingNoIcon=(20+(20*viewentryLevel))+"px";if(row.hasChildren&&colConfig.sortcategorize){var extraIndent=(value.indent)?((value.indent>0)?"padding-left:"+value.indent*20+"px;":""):"";cell.attr="style='position: absolute; width: auto; white-space: nowrap; "
+extraIndent+"'";if(nextViewentry){var nextViewentryPosition=nextViewentry.attributes.getNamedItem('position').value;var nextViewentryLevel=nextViewentryPosition.split('.').length;if(nextViewentryLevel>viewentryLevel){cell.css=" xnd-view-collapse xnd-view-category";value=sCollapseImage+this.getValue(value,colConfig);}else{cell.css=" xnd-view-expand xnd-view-category";value=sExpandImage+this.getValue(value,colConfig);}}else{cell.css=" xnd-view-expand xnd-view-category";value=sExpandImage+this.getValue(value,colConfig);}}else if(!row.isCategory&&row.hasChildren&&!row.isResponse&&colConfig.response){if(nextViewentry){var nextViewentryPosition=nextViewentry.attributes.getNamedItem('position').value;var nextViewentryLevel=nextViewentryPosition.split('.').length;if(nextViewentryLevel>viewentryLevel){cell.css="xnd-view-collapse xnd-view-response";value=sCollapseImage;}else{cell.css="xnd-view-expand xnd-view-response";value=sExpandImage;}}else{cell.css="xnd-view-expand xnd-view-response";value=sExpandImage;}}else if(row.hasChildren&&row.isResponse&&colConfig.response){var extraIndent=(value.indent)?((value.indent>0)?"padding-left:"+(20+(value.indent*20))+"px;":""):"";cell.attr="style='position: absolute; width: auto; white-space: nowrap; "
+extraIndent+"'";if(nextViewentry){var nextViewentryPosition=nextViewentry.attributes.getNamedItem('position').value;var nextViewentryLevel=nextViewentryPosition.split('.').length;if(nextViewentryLevel>viewentryLevel){cell.css="xnd-view-collapse xnd-view-response";value=sCollapseImage+this.getValue(value,colConfig);}else{cell.css="xnd-view-expand xnd-view-response";value=sExpandImage+this.getValue(value,colConfig);}}else{cell.css="xnd-view-expand xnd-view-response";value=sExpandImage+this.getValue(value,colConfig);}}else if(!row.hasChildren&&row.isResponse&&colConfig.response){cell.css="xnd-view-response";var extraIndent=(value.indent)?((value.indent>0)?"padding-left:"+(20+(value.indent*20))+"px;":""):"";cell.attr="style='position: absolute; width: auto; white-space: nowrap; "
+extraIndent+"'";value=this.getValue(value,colConfig);}else{value=this.getValue(value,colConfig);}
return value;},getValue:function(value,colConfig){var dataType,newValue,tmpDate,tmpDateFmt,separator;switch(colConfig.listseparator){case"none":separator='';break;case"space":separator=' ';break;case"comma":separator=',';break;case"newline":separator='<br/>';break;case"semicolon":separator=';';break;default:separator='';}
newValue='';for(var i=0,len=value.data.length;i<len;i++){var sep=(i+1<len)?separator:'';dataType=value.type;var tmpValue=value.data[i];if(colConfig.sortcategorize&&(tmpValue==null||tmpValue=="")){tmpValue=this.notCategorizedText;}
if(colConfig.icon){if(isNaN(parseInt(tmpValue,10))||tmpValue==0){return"";}else{newValue=(tmpValue<10)?"00"+tmpValue:(tmpValue<100)?"0"+tmpValue:(tmpValue>186)?"186":tmpValue;return'<img src="/icons/vwicn'+newValue+'.gif"/>';}}else{switch(dataType){case'datetime':var dtf=colConfig.datetimeformat;if(tmpValue.indexOf('T')>0){tmpDate=tmpValue.split(',')[0].replace('T','.');tmpDateFmt="Ymd.His";}else{tmpDate=tmpValue;tmpDateFmt="Ymd";dtf.show='date';}
var d=new Date(Date.parseDate(tmpDate,tmpDateFmt));switch(dtf.show){case'date':tmpValue=d?d.dateFormat(this.dateTimeFormats.dateFormat):'';break;case'datetime':tmpValue=d?d.dateFormat(this.dateTimeFormats.dateTimeFormat):'';break;}
break;case'text':tmpValue=tmpValue;break;case'number':tmpValue=tmpValue;break;default:tmpValue=tmpValue;}
newValue=newValue+tmpValue+sep;}}
return newValue;},removeFromContainer:function(){if(this.ownerCt&&this.ownerCt.remove){this.ownerCt.remove(this.id);}else{this.destroy();}},handleCategoryChange:function(combo,record,index){var category=record.data.text;this.getStore().baseParams.RestrictToCategory=category;this.getStore().load({params:{start:1}});},getDocuments:function(){return this.getSelectionModel().getSelections();}});Ext.reg('xnd-uiview',Ext.nd.UIView);

Ext.nd.UIWorkspace=function(config){Ext.apply(this,config);};Ext.nd.UIWorkspace.prototype={PickList:function(config){var dialog,cb;this.sess=Ext.nd.Session;this.db=this.sess.currentDatabase;this.server="";this.dbPath=this.db.webFilePath;this.viewName="";this.width=500;this.height=400;this.shadow=true;this.minWidth=500;this.minHeight=400;this.type="custom";this.multipleSelection=false;this.showActionbar=false;this.showSearch=true;this.viewOptions="";this.title="PickList";this.prompt="Please make your selection(s) and click <OK>.";this.column=0;this.category=null;this.emptyText='Select a category...';this.showCategoryComboBox=false;this.categoryComboBoxCount=-1;Ext.apply(this,config);switch(this.type){case"custom":this.viewUrl=(this.viewUrl)?this.viewUrl:this.dbPath+this.viewName;break;case"names":this.viewUrl=this.sess.addressBooks[0].webFilePath+'($PeopleGroupsFlat)';this.title="Select Name";this.column=1;break;default:this.viewUrl=(this.viewUrl)?this.viewUrl:this.dbPath+this.viewName;}
if(this.callback){cb=this.callback;this.callback=false;}
var pl=Ext.get('xnd-picklist');if(pl){pl.remove();}
if(this.uiView){this.uiView.destroy();}
var east={};var center={};if(this.multipleSelection){east={region:'east',layout:'fit',split:true,width:(this.width/2-40),xtype:'xnd-uiview',header:false,viewUrl:this.viewUrl,category:this.category,showCategoryComboBox:false,categoryComboBoxCount:false,showActionbar:false,showSearch:false}
center={region:'center',layout:'fit',width:80,minSize:80,maxSize:80,items:[{xtype:'panel',bodyStyle:{align:'center'},items:[{xtype:'button',text:'Add'}]}]}}
if(!dialog){dialog=new Ext.Window({id:'xnd-picklist',layout:'border',modal:true,width:this.width,height:this.height,shadow:this.shadow,minWidth:this.minWidth,minHeight:this.minHeight,title:this.title,items:[{region:'north',height:27,xtype:'panel',title:this.prompt,id:'xnd-picklist-prompt'},{region:(this.multipleSelection)?'west':'center',split:true,id:'xnd-picklist-view',layout:'fit',width:(this.width/2-40),xtype:'xnd-uiview',header:false,viewUrl:this.viewUrl,category:this.category,useCheckboxSm:this.useCheckboxSm,showCategoryComboBox:this.showCategoryComboBox,categoryComboBoxCount:this.categoryComboBoxCount,showActionbar:this.showActionbar,showSearch:this.showSearch},center,east]});dialog.addButton('OK',handleOK,this);dialog.addButton('Cancel',handleCancel,this);}
dialog.show();function handleOK(){var arSelections=this.uiView.grid.getSelections();var arReturn=new Array();dialog.hide();for(var i=0;i<arSelections.length;i++){var map=arSelections[i].fields.keys[this.column];var data=arSelections[i].data[map].data;for(var d=0;d<data.length;d++){arReturn.push(data[d]);}}
if(cb){cb(arReturn);}else{return arReturn;}}
function handleCancel(){dialog.hide();if(cb){cb(null);}else{return null;}}},Prompt:function(){var cb;this.type="ok";if(arguments.length>0){if(typeof arguments[0]=="object"){Ext.apply(this,arguments[0]);}else if(arguments.length>=3){this.type=arguments[0];this.title=arguments[1];this.prompt=arguments[2];}}
if(this.callback){cb=this.callback;this.callback=false;}
this.type=this.type.toLowerCase();switch(this.type){case"ok":Ext.MessageBox.alert(this.title,this.prompt,cb);break;default:Ext.MessageBox.alert("type '"+this.type+"', not yet supported");}},currentDocument:function(){return Ext.nd.UIDocument;}};Ext.nd.UIWorkspace.PickListStrings=Ext.nd.UIWorkspace.PickList

Ext.nd.Actionbar=function(config){this.sess=Ext.nd.Session;this.db=this.sess.currentDatabase;this.dbPath=this.db.webFilePath;this.noteType='';this.noteName='';this.useDxl=true;this.useViewTitleFromDxl=false;this.convertFormulas=true;Ext.apply(this,config);Ext.nd.Actionbar.superclass.constructor.call(this);this.noteUrl=(this.noteUrl)?this.noteUrl:this.dbPath+this.noteName;if(this.noteName==''){var vni=this.noteUrl.lastIndexOf('/')+1;this.dbPath=this.noteUrl.substring(0,vni);this.noteName=this.noteUrl.substring(vni);}};Ext.extend(Ext.nd.Actionbar,Ext.util.Observable,{init:function(toolbar){this.toolbar=toolbar;this.createToolbar();},createToolbar:function(){if(!this.useDxl){this.toolbar.on('render',this.createToolbarFromDocument,this);return;}else{this.toolbar.on('render',this.createToolbarFromDxl,this);}},createToolbarFromDxl:function(){Ext.Ajax.request({method:'GET',disableCaching:true,success:this.createToolbarFromDxlSuccess,failure:this.createToolbarFromDxlFailure,scope:this,url:Ext.nd.extndUrl+'DXLExporter?OpenAgent&db='+this.dbPath+'&type='+this.noteType+'&name='+this.noteName});},createToolbarFromDxlFailure:function(res){},createToolbarFromDocument:function(o){var actionbar,arActions;var q=Ext.DomQuery;actionbar=this.getDominoActionbar();if(!actionbar){this.toolbar.add({text:'&nbsp;'});return;}
arActions=q.select('a',actionbar);var hasActionbar=(arActions.length>0)?true:false;var arJSONActions=[];var curLevelTitle='';var isFirst=false;for(var i=0;i<arActions.length;i++){var action=arActions[i];var title=action.lastChild.nodeValue;var slashLoc=(title)?title.indexOf('\\'):-1;var imageRef=q.selectValue('img/@src',action,null);imageRef=(imageRef==null)?null:(imageRef&&imageRef.indexOf('/')==0)?imageRef:this.dbPath+imageRef;var cls=(title==null)?'x-btn-icon':(imageRef)?'x-btn-text-icon':null;if(slashLoc>0){isSubAction=true;var arLevels=title.split('\\');var iLevels=arLevels.length;var tmpCurLevelTitle=title.substring(0,slashLoc);title=title.substring(slashLoc+1);if(tmpCurLevelTitle!=curLevelTitle){curLevelTitle=tmpCurLevelTitle
isFirst=true;}else{isFirst=false;}}else{isSubAction=false;curLevelTitle='';}
var sHref,sOnclick,oOnclick,arOnclick;sHref=action.getAttribute('href',2);if(sHref!=''){sOnclick="location.href = '"+sHref+"';";}else{oOnclick=action.attributes['onclick'];if(oOnclick){sOnclick=oOnclick.nodeValue;}else{sOnclick=''}
if(sOnclick.indexOf('return _doClick')==0){sOnclick=sOnclick.substring(7);}
arOnclick=sOnclick.split('\r');var len=arOnclick.length;if(arOnclick[len-1]=='return false;'){arOnclick.splice(arOnclick.length-1,1);}
sOnclick=arOnclick.join('\r');}
var handler=function(bleh){eval(bleh);}.createCallback(sOnclick);if(isSubAction){if(isFirst){if(i>0){arJSONActions.push('-');}
arJSONActions.push({text:curLevelTitle,menu:{items:[{text:title,cls:cls,icon:imageRef,handler:handler}]}});}else{arJSONActions[arJSONActions.length-1].menu.items.push({text:title,cls:cls,icon:imageRef,handler:handler});}}else{if(i>0){arJSONActions.push('-');}
arJSONActions.push({text:title,cls:cls,icon:imageRef,handler:handler});}}
for(var i=0;i<arJSONActions.length;i++){this.toolbar.add(arJSONActions[i]);}
if(hasActionbar){this.removeDominoActionbar(actionbar);}},removeDominoActionbar:function(actionbar){if(actionbar){Ext.get(actionbar).remove();Ext.get(Ext.query('hr')[0]).remove();}},getDominoActionbar:function(){var frm=document.forms[0];var isFirstTable=false;var q=Ext.DomQuery;var cn=frm.childNodes;var actionbar;var bTest1=false;var bTest2=false;var bTest3=false;var bTest4=false;for(var i=0;i<cn.length;i++){var c=cn[i];if(c.nodeType==1){if(!bTest1){if(c.tagName=='TABLE'){actionbar=c;var arRows=q.select('tr',actionbar);if(arRows.length!=1){break;}else{bTest1=true;bTest2=true;continue;}}else if(c.tagName=='INPUT'&&q.selectValue('@type',c,'')=='hidden'){continue;}else{break;}}else{if(c.tagName=='HR'){bTest3=true;}
break;}}
if(bTest1&&bTest2&&bTest3){break;}}
if(bTest1&&bTest2&&bTest3){var arTDs=q.select('td',actionbar);var arActions=q.select('a',actionbar);if(arTDs.length==arActions.length){bTest4=true;return actionbar;}else{return false;}}else{return false;}},setViewName:function(response){var q=Ext.DomQuery;var vwName=q.selectValue('view/@name',response);if(typeof vwName=='undefined'){vwName=q.selectValue('folder/@name',response);}
if(!this.uiView.showFullCascadeName){var bsLoc=vwName.lastIndexOf('\\');if(bsLoc!=-1){vwName=vwName.substring(bsLoc+1);}}
if(this.tabPanel){this.tabPanel.activeTab.setTitle(vwName)}},createToolbarFromDxlSuccess:function(o){var actionbar,arActions;var q=Ext.DomQuery;response=o.responseXML;arActions=q.select('action',response);if(this.noteType=='view'&&this.tabPanel&&this.useViewTitleFromDxl){this.setViewName(response);}
var arJSONActions=[];var curLevelTitle='';var isFirst=false;for(var i=0;i<arActions.length;i++){var show=true;var action=arActions[i];var title=q.selectValue('@title',action,"");var hidewhen=q.selectValue('@hide',action,null);var showinbar=q.selectValue('@showinbar',action,null);var iconOnly=q.select('@onlyiconinbar',action);var icon=q.selectNumber('@icon',action,null);var imageRef=q.selectValue('imageref/@name',action,null);var syscmd=q.selectValue('@systemcommand',action,null);if(hidewhen){var arHide=hidewhen.split(' ');for(var h=0;h<arHide.length;h++){if(arHide[h]=='web'||(arHide[h]=='edit'&&Ext.nd.UIDocument.editMode)||(arHide[h]=='read'&&!Ext.nd.UIDocument.editMode)){show=false;}}}
if(showinbar=='false'){show=false;}
var lotusscript=Ext.DomQuery.selectValue('lotusscript',action,null);if(lotusscript){show=false;}
if(icon){if(icon<10){imageRef="00"+icon;}else if(icon<100){imageRef="0"+icon;}else{imageRef=""+icon;}
imageRef="/icons/actn"+imageRef+".gif";}else{if(imageRef){imageRef=(imageRef.indexOf('/')==0)?imageRef:this.dbPath+imageRef;}}
if(show&&syscmd==null){var slashLoc=title.indexOf('\\');if(slashLoc>0){isSubAction=true;var arLevels=title.split('\\');var iLevels=arLevels.length;var tmpCurLevelTitle=title.substring(0,slashLoc);title=title.substring(slashLoc+1);if(tmpCurLevelTitle!=curLevelTitle){curLevelTitle=tmpCurLevelTitle
isFirst=true;}else{isFirst=false;}}else{isSubAction=false;curLevelTitle='';}
var tmpOnClick=Ext.DomQuery.selectValue('javascript',action,null);var handler;if(tmpOnClick){handler=function(bleh){eval(bleh)}.createDelegate(this,[tmpOnClick]);}else if(this.convertFormulas){var formula=Ext.DomQuery.selectValue('formula',action,null);if(formula){var cmdFrm=formula.match(/\@Command\(\[(\w+)\](?:;"")*(?:;"(.+?)")*\)/);if(cmdFrm&&cmdFrm.length){switch(cmdFrm[1]){case'Compose':handler=this.openForm.createDelegate(this,[cmdFrm[2]]);break;case'EditDocument':handler=this.openDocument.createDelegate(this,[cmdFrm[2]?((cmdFrm[2]=="1")?true:false):true]);break;case'FileCloseWindow':handler=this.closeDocument.createDelegate(this);break;case'FileSave':handler=this.saveDocument.createDelegate(this);break;case'FilePrint':case'FilePrintSetup':handler=this.print.createDelegate(this);break;case'OpenView':case'RunAgent':default:show=false;}}}}
if(isSubAction){if(isFirst){if(i>0){arJSONActions.push('-');}
arJSONActions.push({text:curLevelTitle,menu:{items:[{text:title,cls:(icon||imageRef)?'x-btn-text-icon':null,icon:imageRef,handler:handler}]}});}else{arJSONActions[arJSONActions.length-1].menu.items.push({text:title,cls:(icon||imageRef)?'x-btn-text-icon':null,icon:imageRef,handler:handler});}}else{if(i>0){arJSONActions.push('-');}
arJSONActions.push({text:title,cls:(icon||imageRef)?'x-btn-text-icon':null,icon:imageRef,handler:handler});}}}
for(var i=0;i<arJSONActions.length;i++){this.toolbar.add(arJSONActions[i]);}
if(this.dmyId){var dmyBtn=Ext.getCmp(this.dmyId);if(dmyBtn&&dmyBtn.destroy){dmyBtn.destroy();}}
if(this.noteType=='form'){this.removeDominoActionbar(this.getDominoActionbar());this.toolbar.ownerCt.ownerCt.doLayout();}},openForm:function(form){var src=this.dbPath+form+'?OpenForm';if(this.tabPanel){var iframe=Ext.DomHelper.append(document.body,{tag:'iframe',frameBorder:0,src:src,id:'xnd-open-form-'+Ext.id(),style:{width:'100%',height:'100%'}});this.tabPanel.add({id:'xnd-form-pnl-'+Ext.id(),contentEl:iframe.id,title:'New '+form,layout:'fit',closable:true}).show();}else{window.open(src);}},openDocument:function(editMode){if(this.noteType=='view'){this.openDocumentFromView(editMode);return;}
var mode=(editMode)?'?EditDocument':'?OpenDocument';var unid=Ext.nd.UIDocument.document.universalID;var pnlId='pnl-'+unid;var src=this.dbPath+'0/'+unid+mode;if(this.tabPanel){var pnl=this.tabPanel.getItem(pnlId);if(pnl){var iframe=window.parent.Ext.get(unid);if(iframe){iframe.dom.src=src;}
pnl.show();}else{var iframe=Ext.DomHelper.append(document.body,{tag:'iframe',frameBorder:0,src:src,id:unid,style:{width:'100%',height:'100%'}});this.tabPanel.add({id:pnlId,contentEl:iframe.id,title:'FixMe',layout:'fit',closable:true}).show();}}else{location.href=src;}},openDocumentFromView:function(editMode){var grid=this.uiView;var row=grid.getSelectionModel().getSelected();var rowIndex=grid.getStore().indexOf(row);var e=null;this.uiView.openDocument(grid,rowIndex,e,editMode);},closeDocument:function(){if(this.tabPanel){this.tabPanel.remove(this.tabPanel.getActiveTab());}else{try{window.back();}catch(e){window.close();}}},saveDocument:function(){document.forms[0].submit();},print:function(){window.print();},unsupportedAtCommand:function(formula){Ext.Msg.alert('Error','Sorry, the @command "'+formula+'" is not currently supported by Ext.nd');}});

Ext.nd.Form=function(config){var sess=Ext.nd.Session;var db=sess.currentDatabase;this.uidoc=Ext.nd.UIDocument;this.dbPath=db.webFilePath;this.showActionbar=true;this.convertFields=true;this.applyDominoKeywordRefresh=true;this.toolbar=false;this.toolbarContainer;this.headerContainer;this.form=this.uidoc.form;this.formName=this.uidoc.formName||document.forms[0].name.substring(1)
this.dateTimeFormats=Ext.nd.dateTimeFormats;if(typeof this.uidoc.formName=='undefined'){if(document.forms.length==0||document.forms[0].name.substring(1)==''||document.forms[0].name.substring(1)=='DominoForm'){var href=location.href.toLowerCase();var search=location.search.toLowerCase();var start=href.indexOf(this.dbPath.toLowerCase())
+this.dbPath.length;var end=(search!="")?href.indexOf(search):href.length;this.formName=href.substring(start,end);}else{this.formName=document.forms[0].name.substring(1);}}else{this.formName=this.uidoc.formName}
Ext.apply(this,config);this.formUrl=(this.formUrl)?this.formUrl:this.dbPath+this.formName;Ext.nd.Form.superclass.constructor.call(this);};Ext.extend(Ext.nd.Form,Ext.form.FormPanel,{initComponent:function(){alert('initComponent')},onRender:function(){alert('onRender')},render:function(){if(document&&document.body){document.body.style.visibility="hidden";}
var msg=Ext.MessageBox.wait("Loading document...");this.buildLayout();if(this.convertFields){this.doConvertFields();}
msg.hide();if(document&&document.body){document.body.style.visibility="";}},buildLayout:function(){var dh=Ext.DomHelper;var dmyId='dmy-btn-'+Ext.id();var ui=dh.append(document.body,{tag:'div',id:'xnd-form-ui'});Ext.get(ui).dom.appendChild(this.form);this.layout=new Ext.Viewport(Ext.apply({layout:'border',items:[{region:'center',id:'xnd-form-pnl',contentEl:ui.id,tbar:(this.showActionbar||this.toolbar)?new Ext.Toolbar({id:'xnd-form-toolbar',items:[{text:'',id:dmyId}],plugins:new Ext.nd.Actionbar({noteType:'form',noteName:this.formName,uiDocument:this,useDxl:true,dmyId:dmyId,target:(this.target)?this.target:null})}):null,autoScroll:true}]}),this.vpConfig);},doConvertFields:function(){var dh=Ext.DomHelper;var el,arClasses,cls;var q=Ext.DomQuery;var converted;var allElements=this.form.elements;for(var i=0;i<allElements.length;i++){el=allElements[i];switch(el.tagName){case'SELECT':if(!this.convertFromClassName(el,false)){this.convertSelectToComboBox(el,true);}
break;case'TEXTAREA':if(!this.convertFromClassName(el,false)){var ta=new Ext.form.TextArea({resizable:true});ta.applyToMarkup(el);}
break;case'INPUT':if(!this.convertFromClassName(el,false)){var type=el.getAttribute('type');switch(type){case'hidden':break;case'checkbox':break;default:var f=new Ext.form.Field();f.applyToMarkup(el);break;}}
break;default:if(!this.convertFromClassName(el,false)){var f=new Ext.form.Field();f.applyToMarkup(el);}
break;}}
var xndElements=q.select('*[class*=xnd-]');for(var i=0;i<xndElements.length;i++){el=xndElements[i];this.convertFromClassName(el,true);}},convertFromClassName:function(el,doConvert){var arClasses=el.className.split(' ');var converted=false;for(var c=0;c<arClasses.length;c++){cls=arClasses[c];switch(cls){case'xnd-combobox':if(doConvert){this.convertSelectToComboBox(el,true);}
converted=true;break;case'xnd-combobox-appendable':if(doConvert){this.convertSelectToComboBox(el,false);}
converted=true;break;case'xnd-date':if(doConvert){var dt=new Ext.form.DateField({selectOnFocus:true,format:this.dateTimeFormats.dateFormat});dt.applyToMarkup(el);}
converted=true;break;case'xnd-number':if(doConvert){var nbr=new Ext.form.NumberField({selectOnFocus:true});nbr.applyToMarkup(el);}
converted=true;break;case'xnd-time':if(doConvert){var tm=new Ext.form.TimeField({increment:60,selectOnFocus:true});tm.applyToMarkup(el);}
converted=true;break;case'xnd-htmleditor':if(doConvert){this.convertToHtmlEditor(el);}
converted=true;break;case'xnd-names':if(doConvert){var nm=new Ext.form.TriggerField();nm.onTriggerClick=this.createNamePicker.createDelegate(this,[nm]);nm.applyToMarkup(el);}
converted=true;break;case'xnd-ignore':converted=true;break;default:break;}}
return converted;},convertToHtmlEditor:function(el){Ext.QuickTips.init();var tag=el.tagName.toLowerCase();var ed;if(tag=='div'){ed=new Ext.form.HtmlEditor({renderTo:el});}else{var dh=Ext.DomHelper;var heContainer=dh.insertBefore(el,{tag:'div',style:{width:500}},true);heContainer.dom.appendChild(el);Ext.get(el).setStyle({width:510});ed=new Ext.form.HtmlEditor();ed.applyToMarkup(el);ed.on('beforepush',function(editor,html){var htmlBefore="[<div class='xnd-htmleditor-read'>";var htmlAfter="</div>]";var start=htmlBefore.length;var end=html.length-htmlAfter.length;if(html.indexOf(htmlBefore)==0){html=html.substring(start,end)}
editor.getEditorBody().innerHTML=html;return false;});ed.on('beforesync',function(editor,html){editor.el.dom.value="[<div class='xnd-htmleditor-read'>"
+html+"</div>]";return false;});}},createNamePicker:function(el){var ws=new Ext.nd.UIWorkspace();ws.PickList({type:'names',callback:this.handlePickList.createDelegate(el)})},handlePickList:function(arStrings,field){var tmp="";var sep=","
if(arStrings!=null){for(var i=0;i<arStrings.length;i++){tmp+=sep+arStrings[i];}}
this.setValue(tmp.substring(sep.length))},convertSelectToComboBox:function(el,forceSelection){var cb=new Ext.form.ComboBox({typeAhead:true,triggerAction:'all',transform:el,forceSelection:forceSelection,resizable:true});var extcallback=null;if(this.applyDominoKeywordRefresh){var attr=el.attributes;if(attr){var onChange=attr['onchange'];if(onChange&&onChange.nodeValue!=null){var sOnChange=onChange.nodeValue;extcallback=function(bleh){eval(bleh);}.createCallback(sOnChange);}}}
var value=(cb.getValue())?cb.getValue():cb.getRawValue();if(cb.hiddenName){var field=Ext.get(cb.hiddenName);field.dom.value=value;}
cb.on('select',function(){var value=(this.getValue())?this.getValue():this.getRawValue();if(cb.hiddenName){var field=Ext.get(this.hiddenName);field.dom.value=value;}
if(typeof extcallback=='function'){Ext.MessageBox.wait("Refreshing document...");extcallback();}});}});Ext.reg('xnd-form',Ext.nd.Form);

Ext.namespace("Ext.nd.form");Ext.nd.form.ViewSuggest=function(el,config){this.el=el;this.agentUrl="Suggest?OpenAgent";this.unique=true;Ext.apply(this,config);this.init();};Ext.nd.form.ViewSuggest.prototype={init:function(){if(!this.url){var sess=Ext.nd.Session;var db=sess.currentDatabase;this.url=Ext.nd.extndUrl+this.agentUrl;this.db=db.filePath;}
if(!this.view||!this.field){Ext.Msg.alert("ViewSuggest Error","Required parameter (view or fieldname) was omitted from Ext.nd.form.ViewSuggest");return;}
if(this.extraFields){if(this.unique){Ext.Msg.alert("ViewSuggest Error","You cannot use extra fields when unique is set!");return;}
this.flds=[this.field].push(this.extraFields);}else{this.flds=[this.field];}
this.unique=this.unique?1:0;this.baseParams={view:this.view,fields:this.flds,unique:this.unique};if(this.db){this.baseParams.db=this.db;}
this.store=new Ext.data.Store(Ext.apply({proxy:new Ext.data.HttpProxy({url:this.url}),reader:new Ext.data.JsonReader({root:'root'},this.flds),baseParams:Ext.apply(this.baseParams,this.extraParams),remoteSort:false},this.storeConfig));this.combo=new Ext.form.ComboBox(Ext.apply({store:this.store,displayField:this.field,loadingText:"Loading...",forceSelection:true,mode:'remote',minChars:3,hideTrigger:true,listWidth:200,width:200,applyTo:this.el},this.comboConfig));}};

Ext.nd.data.CategorizedStore=function(config){Ext.nd.data.CategorizedStore.superclass.constructor.call(this,config);this.addEvents('categoryload');};Ext.extend(Ext.nd.data.CategorizedStore,Ext.nd.data.DominoViewStore,{loadCategory:function(position,options){var rec=this.findRecordByPosition(position);if(!rec.isCategory||rec.childrenRendered){return;}
this.proxy.load({expand:position},this.reader,this.loadCategoryRecords,this,Ext.apply({rec:rec},options));},loadCategoryRecords:function(o,options,success){if(!o||success===false||!options){if(success!==false){this.fireEvent("categoryload",this,[],options);}
if(options.callback){options.callback.call(options.scope||this,[],options,false);}
return;}
var r=o.records;var recs=[];if(options.rec){for(var i=0,len=r.length;i<len;i++){var childMatch=options.rec.position+'.';if(r[i].position.match(childMatch)){recs.push(r[i]);}}
options.rec.children=recs;options.rec.childrenRendered=true;this.fireEvent("datachanged",this);}
this.fireEvent("categoryload",this,r,options);if(options.callback){options.callback.call(options.scope||this,r,options,true);}},findRecordByPosition:function(position){var pos=position.split('.');var rec=this.getAt(pos[0]-1);pos.shift();if(pos.length>0){for(var i=0;i<pos.length;i++){pos[i]--;}
var bleh='rec.children['+pos.join('].children[')+']';rec=eval(bleh);}
return rec;},findRecordByIndex:function(index){var records=this.flatRecords();return records[index];},flatRecords:function(){var recs=[];for(var i=0;i<this.data.length;i++){recs=recs.concat(this.findChildren(this.data.items[i]));}
return recs;},findChildren:function(rec){var buf=[rec];if(rec&&rec.children){for(var i=0;i<rec.children.length;i++){buf=buf.concat(this.findChildren(rec.children[i]));}}
return buf;},getCount:function(){var ttl=0;for(var i=0;i<this.data.length;i++){ttl+=this.countChildRecords(this.data.items[i]);}
return ttl;},countChildRecords:function(rec){if(rec&&rec.children){var ttl=1;for(var i=0;i<rec.children.length;i++){ttl+=this.countChildRecords(rec.children[i]);}
return ttl;}else{return 1;}}});

Ext.nd.CategorizedView=Ext.extend(Ext.grid.GridView,{initTemplates:function(){Ext.nd.CategorizedView.superclass.initTemplates.call(this);this.state={};if(!this.startGroup){this.startGroup=new Ext.XTemplate('<div id="{position}" class="xnd-category {cls}">','<div id="{position}-hd" class="xnd-category-hd" style="{cstyle}"><div>{row}</div></div>','<div id="{position}-bd" class="xnd-category-body" style="{style}">');}
this.startGroup.compile();this.endGroup='</div></div>';},renderUI:function(){Ext.nd.CategorizedView.superclass.renderUI.call(this);this.mainBody.on('mousedown',this.interceptMouse,this);},toggleCategory:function(group,expanded){group=Ext.getDom(group);var gel=Ext.fly(group);expanded=expanded!==undefined?expanded:gel.hasClass('xnd-category-collapsed');this.state[gel.dom.id]=expanded;if(expanded){this.grid.getStore().loadCategory(gel.dom.id);gel.removeClass('xnd-category-collapsed');}else{gel.addClass('xnd-category-collapsed');}},interceptMouse:function(e){var hd=e.getTarget('.xnd-category-hd',this.mainBody);if(hd){e.stopEvent();this.toggleCategory(hd.parentNode);}},doRender:function(cs,rs,ds,startRow,colCount,stripe){if(rs.length<1){return'';}
var cstyle='width:'+this.getTotalWidth()+';';var buf=[];for(var i=0,len=rs.length;i<len;i++){var rowIndex=startRow+i;var r=rs[i];if(r.isCategory){var isCollapsed=typeof this.state[r.position]!=='undefined'?!this.state[r.position]:true;var gcls=isCollapsed?'xnd-category-collapsed':'';var row=this.oldRender(cs,[r],ds,rowIndex,colCount,stripe);buf.push(this.startGroup.apply({position:r.position,row:row,cls:gcls,cstyle:cstyle}));if(r.children){buf.push(this.doRender(cs,r.children,ds,rowIndex,colCount,stripe));}
buf.push(this.endGroup);}else{buf.push(this.oldRender(cs,[r],ds,startRow,colCount,stripe));}}
return buf.join('');},oldRender:function(cs,rs,ds,startRow,colCount,stripe){var ts=this.templates,ct=ts.cell,rt=ts.row,last=colCount-1;var tstyle='width:'+this.getTotalWidth()+';';var buf=[],cb,c,p={},rp={tstyle:tstyle},r;for(var j=0,len=rs.length;j<len;j++){r=rs[j];cb=[];var rowIndex=(j+startRow);for(var i=0;i<colCount;i++){c=cs[i];p.id=c.id;p.css=i==0?'x-grid3-cell-first ':(i==last?'x-grid3-cell-last ':'');if(r.isCategory&&(r.depth-1)==i){p.css+='xnd-category-cell';}
p.attr=p.cellAttr="";p.value=c.renderer(r.data[c.name],p,r,rowIndex,i,ds);p.style=c.style;if(p.value==undefined||p.value==="")p.value="&#160;";if(r.dirty&&typeof r.modified[c.name]!=='undefined'){p.css+=' x-grid3-dirty-cell';}
cb[cb.length]=ct.apply(p);}
var alt=[];if(stripe&&((rowIndex+1)%2==0)){alt[0]="x-grid3-row-alt";}
if(r.dirty){alt[1]=" x-grid3-dirty-row";}
rp.cols=colCount;if(this.getRowClass){alt[2]=this.getRowClass(r,rowIndex,rp,ds);}
rp.alt=alt.join(" ");rp.cells=cb.join("");buf[buf.length]=rt.apply(rp);}
return buf.join("");},focusRow:function(){},getRows:function(){if(this.hasRows()){var rows=Ext.query('div.x-grid3-row',this.mainBody.dom);return rows||[];}},onRowSelect:function(row){this.addRowClass(row,"x-grid3-row-selected");}});

Ext.nd.CategorizedRowSelectionModel=Ext.extend(Ext.grid.RowSelectionModel,{selectRow:function(index,keepExisting,preventViewNotify){if(this.locked||(index<0||index>=this.grid.store.getCount()))return;var r=this.grid.store.findRecordByIndex(index);if(r&&this.fireEvent("beforerowselect",this,index,keepExisting,r)!==false){if(!keepExisting||this.singleSelect){this.clearSelections();}
this.selections.add(r);this.last=this.lastActive=index;if(!preventViewNotify){this.grid.getView().onRowSelect(index);}
this.fireEvent("rowselect",this,index,r);this.fireEvent("selectionchange",this);}}});

Ext.nd.SearchPlugin=Ext.extend(Ext.util.Observable,{position:'bottom',iconCls:'icon-magnifier',dateFormat:undefined,searchText:'Search',blankText:'Search view...',searchTipText:'Type a text to search and press Enter',minCharsTipText:'Type at least {0} characters',width:100,shortcutKey:'r',shortcutModifier:'alt',init:function(grid){this.grid=grid;grid.onRender=grid.onRender.createSequence(this.onRender,this);},onRender:function(){var panel=this.toolbarContainer||this.grid;var tb='bottom'===this.position?panel.bottomToolbar:panel.topToolbar;if('right'===this.align){tb.addFill();}
else{if(0<tb.items.getCount()){tb.addSeparator();}}
this.field=new Ext.form.TwinTriggerField({width:this.width,hideTrigger1:true,selectOnFocus:undefined===this.selectOnFocus?true:this.selectOnFocus,trigger1Class:'x-form-clear-trigger',trigger2Class:this.minChars?'x-hidden':'x-form-search-trigger',onTrigger1Click:this.minChars?Ext.emptyFn:this.onTriggerClear.createDelegate(this),onTrigger2Click:this.onTriggerSearch.createDelegate(this),minLength:this.minLength});this.field.on('render',function(){this.field.el.dom.qtip=this.minChars?String.format(this.minCharsTipText,this.minChars):this.searchTipText;if(this.minChars){this.field.el.on({scope:this,buffer:300,keyup:this.onKeyUp});}
var map=new Ext.KeyMap(this.field.el,[{key:Ext.EventObject.ENTER,scope:this,fn:this.onTriggerSearch},{key:Ext.EventObject.ESC,scope:this,fn:this.onTriggerClear}]);map.stopEvent=true;},this,{single:true});tb.add(this.searchText);tb.add(this.field);if(this.shortcutKey&&this.shortcutModifier){var shortcutEl=this.grid.getEl();var shortcutCfg=[{key:this.shortcutKey,scope:this,stopEvent:true,fn:function(){this.field.focus();}}];shortcutCfg[0][this.shortcutModifier]=true;this.keymap=new Ext.KeyMap(shortcutEl,shortcutCfg);}
if(true===this.autoFocus){this.grid.store.on({scope:this,load:function(){this.field.focus();}});}},onKeyUp:function(){var length=this.field.getValue().toString().length;if(0===length||this.minChars<=length){this.onTriggerSearch();}},onTriggerClear:function(){if(this.isSearching){var paging=this.grid.getBottomToolbar();if(paging){paging.unbind(this.grid.getStore());paging.bind(this.oldDataSource);}
this.grid.reconfigure(this.oldDataSource,this.grid.getColumnModel());this.grid.getStore().load({params:{start:1}});this.isSearching=false;}
if(this.field.getValue()){this.field.setValue('');this.field.focus();}
this.field.triggers[0].hide();},onTriggerSearch:function(){if(!this.field.isValid()){return;}
var val=this.field.getValue();var store=this.grid.store;var vni=this.grid.viewUrl.lastIndexOf('/')+1;var dbPath=this.grid.viewUrl.substring(0,vni);var viewName=this.grid.viewUrl.substring(vni);var baseParams={db:dbPath.substring(0,dbPath.length-1),vw:viewName};if(!this.isSearching){this.oldDataSource=this.grid.getStore();if(this.oldDataSource.baseParams.RestrictToCategory){baseParams=Ext.apply(baseParams,{RestrictToCategory:this.oldDataSource.baseParams.RestrictToCategory});}
var viewEntry=Ext.data.Record.create(this.grid.recordConfig);var viewEntryReader=new Ext.nd.data.DominoViewXmlReader({root:'viewentries',record:'viewentry',totalRecords:'@toplevelentries',id:'@position'},viewEntry);var ds=new Ext.nd.data.DominoViewStore({proxy:new Ext.data.HttpProxy({url:Ext.nd.extndUrl+'SearchView?OpenAgent',method:"GET"}),baseParams:baseParams,reader:viewEntryReader,remoteSort:false});this.grid.reconfigure(ds,this.grid.colModel);var paging=this.grid.getBottomToolbar();if(paging){paging.unbind(this.oldDataSource);paging.bind(ds);}
this.isSearching=true;}
this.grid.getStore().load({params:{query:val,count:this.grid.searchCount,start:1}});this.field.triggers[0].show();},setDisabled:function(){this.field.setDisabled.apply(this.field,arguments);},enable:function(){this.setDisabled(false);},disable:function(){this.setDisabled(true);}});

Ext.nd.SingleCategoryCombo=Ext.extend(Ext.util.Observable,{count:-1,categoryComboBoxEmptyText:'Select a category...',value:'',viewUrl:'',init:function(toolbar){this.toolbar=toolbar;this.addEvents('categorychange');var store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({method:'GET',url:this.viewUrl+'?ReadViewEntries&CollapseView&count='+this.count}),reader:new Ext.data.XmlReader({record:'viewentry',totalRecords:'@toplevelentries',id:'@position'},[{name:'text'}])});store.load();var cmbId='xnd-search-combo-'+Ext.id();this.combo=toolbar.add({xtype:'combo',id:cmbId,store:store,displayField:'text',typeAhead:true,mode:'local',triggerAction:'all',emptyText:this.categoryComboBoxEmptyText,value:this.value,selectOnFocus:true,grow:true,resizable:true,listeners:{select:this.onComboSelect,scope:this}},'-');},onComboSelect:function(combo,record,index){this.fireEvent('categorychange',this,combo,record,index);}});
