﻿
__trGroup('CMS View');Ext.namespace('NPSL','NPSL.Cms','NPSL.Cms.Form');(function(){Ext.override(Ext.form.TriggerField,{fixWidth:function(){if(this.wrap&&this.el&&this.trigger){this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());}
var y;if(Ext.isIE&&!this.hideTrigger&&this.el&&this.trigger&&this.el.getY()!=(y=this.trigger.getY())){this.el.position();this.el.setY(y);}}});var Cms=NPSL.Cms,Form=Cms.Form,ColType=Cms.ColType;var g_opStore=new Ext.data.SimpleStore({autoLoad:true,id:1,data:[[__tr('is'),'='],[__tr('is not'),'!='],[__tr('less than'),'<'],[__tr('less than or equal to'),'<='],[__tr('greater than'),'>'],[__tr('greater than or equal to'),'>='],[__tr('between'),'between']],fields:['name','op']});var g_enumOpStore=new Ext.data.SimpleStore({autoLoad:true,id:1,data:[[__tr('is'),'='],[__tr('is not'),'!=']],fields:['name','op']});var g_regionOpStore=new Ext.data.SimpleStore({autoLoad:true,id:1,data:[[__tr('is'),'='],[__tr('is or child of'),'region-children']],fields:['name','op']});var g_indOpStore=new Ext.data.SimpleStore({autoLoad:true,id:1,data:[[__tr('is'),'='],[__tr('is or child of'),'ind-children']],fields:['name','op']});var g_userOpStore=new Ext.data.SimpleStore({autoLoad:true,id:1,data:[[__tr('is'),'='],[__tr('is you'),'current-user']],fields:['name','op']});var g_dateOpStore=new Ext.data.SimpleStore({autoLoad:true,id:1,data:[[__tr('on'),'='],[__tr('on or before'),'<='],[__tr('on or after'),'>='],[__tr('between'),'between']],fields:['name','op']});function showHighForStore(store){return store===g_dateOpStore||store===g_opStore;}
function opStoreFromType(colType,type){if(colType==ColType.Boolean){return g_enumOpStore;}
if(colType==ColType.Enumerated){return g_enumOpStore;}
if(colType==ColType.Region){return g_regionOpStore;}
if(colType==ColType.Indicator){return g_indOpStore;}
if(colType==ColType.User){return g_userOpStore;}
if(type=="DATE"){return g_dateOpStore;}
return g_opStore;}
function unwrap(f){function doUnwrap(f){var el=f.wrap||f.el;var tag=el.dom.nodeName.toLowerCase();if(tag==="div"){el.setStyle("display","inline-block");}}
if(f.rendered){doUnwrap(f);}else{f.onRender=f.onRender.createSequence(function(ct,pos){doUnwrap(this);},f);}
return f;};Form.ColumnFilter=function(config){Form.ColumnFilter.superclass.constructor.call(this,config);Ext.apply(this,config);this.addEvents("change");this.ui.filter=this;this.hidden=this.ui.hidden;this.triggerFields=[];var col=this.column;this.op=unwrap(new Ext.form.ComboBox({value:'=',lazyRender:false,store:opStoreFromType(col.colType,col.type),mode:"local",editable:false,triggerAction:'all',forceSelection:true,listClass:'x-combo-list',displayField:"name",valueField:"op",width:160,listWidth:160}));this.triggerFields.push(this.op);this.op.on("select",function(el,rec){this.opChanged(rec.get("op"));},this);this.relayEvents(this.op,["change"]);if(col.colType==ColType.Enumerated){this.lo=unwrap(new Form.CmsComboBox({col:col,blankAtTop:true}));this.triggerFields.push(this.lo);}else if(col.type=="DATE"){this.lo=unwrap(new Ext.form.DateField({width:150}));this.triggerFields.push(this.lo);}else if(col.colType==ColType.Boolean){this.lo=unwrap(new Ext.form.ComboBox({mode:"local",editable:false,triggerAction:"all",forceSelection:true,listClass:"x-combo-list",displayField:"description",valueField:"value",width:50,listWidth:50,store:new Ext.data.SimpleStore({data:[["","\u00A0"],[1,"Yes"],[0,"No"]],fields:["value","description"],id:0})}));this.triggerFields.push(this.lo);}else if(col.colType==ColType.Region||col.colType==ColType.Indicator){if(!g_csr){throw"global csr configuration is not available";}
if(col.colType==ColType.Region&&false){var store=new Ext.data.JayrockStore({rpc:GridHandler.getRegionOwnerList,fields:['sid','description']});store.load();this.lo=unwrap(new Ext.ux.ComboBox({store:store,lazyRender:true,loadingText:__tr('Loading...'),mode:"local",editable:false,triggerAction:'all',forceSelection:true,listClass:'x-combo-list',displayField:"description",valueField:"sid",width:300,listWidth:300}));this.triggerFields.push(this.lo);}else{this.lo=unwrap(new Ext.ux.TreeViewPicker({treeViewRootSid:col.colType==ColType.Region?g_csr.regionRootSid:g_csr.indRootSid,treeViewHandler:col.colType==ColType.Region?TreeViewRegionHandler:TreeViewIndicatorHandler}));this.triggerFields.push(this.lo);}}else if(col.colType==ColType.User){if(!g_csr){throw"global csr configuration is not available";}
this.lo=unwrap(new Ext.ux.ComboBox({loadingText:__tr('Loading...'),mode:"remote",typeAhead:true,forceSelection:true,displayField:"fullName",triggerAction:"all",valueField:"sid",width:200,listWidth:200,queryDelay:10,minChars:1,store:new Ext.data.JayrockStore({prepareRpcParams:function(params){return[params.query];},rpc:GridHandler.getUserList,fields:['sid','fullName','email']})}));this.triggerFields.push(this.lo);}else{this.lo=new Ext.form.TextField({width:150});}
this.relayEvents(this.lo,["change"]);if(showHighForStore(this.op.store)){if(col.type=="DATE"){this.hi=unwrap(new Ext.form.DateField({width:150}));this.triggerFields.push(this.hi);}else{this.hi=new Ext.form.TextField({width:50});}
this.relayEvents(this.hi,["change"]);}}
Ext.extend(Form.ColumnFilter,Ext.util.Observable,{opChanged:function(op){if(this.column.colType==ColType.User){var lastVisible=this.lo.isVisible();if(op=="current-user"){this.lo.hide();}else{this.lo.show();}
if(this.lo.isVisible()!=lastVisible){this.parent.syncSize();}}
if(!this.hiWrap){return;}
var lastVisible=this.hiWrap.isVisible();if(op==="between"){this.hiWrap.show();if(this.hi.fixWidth){this.hi.fixWidth();}}else{this.hiWrap.hide();}
if(this.hiWrap.isVisible()!=lastVisible){this.parent.syncSize();}},setValue:function(op,lo,hi){this.op.setValue(op);this.lo.setValue(lo);if(this.hi){this.hi.setValue(hi);}
this.opChanged(op);},clear:function(){var op=this.op.store.getAt(0).get("op");this.op.setValue(op);if(this.column.colType==ColType.Region||this.column.colType==ColType.Indicator||this.column.colType==ColType.User){this.lo.setValues(null,null);}else{this.lo.setValue(null);if(this.hi){this.hi.setValue(null);}}
this.opChanged(op);},render:function(el){this.ui.render(el);},show:function(){this.ui.show();this.hidden=false;},hide:function(){this.ui.hide();this.hidden=true;},expand:function(){this.ui.expand();},fixWidth:function(){this.ui.fixWidth();this.parent.syncSize();},computeWidth:function(){return this.ui.computeWidth();}});Form.ColumnFilterDiv=function(config){Form.ColumnFilterDiv.superclass.constructor.call(this,config);}
Ext.extend(Form.ColumnFilterDiv,Ext.BoxComponent,{onRender:function(ct,position){var f=this.filter;var el=this.el=ct.createChild({style:"padding: 2px 0px 0px 20px; white-space:nowrap"});f.op.render(el);el.createChild({tag:"span",html:"&nbsp;"});f.lo.render(el);if(f.hi){f.hiWrap=el.createChild({tag:"span",html:"&nbsp;"+__tr('and')+"&nbsp;"});f.hi.render(f.hiWrap);f.hiWrap.setVisibilityMode(Ext.Element.DISPLAY);if(f.op.getValue()!=="between"){f.hiWrap.hide();}}
var clear=el.createChild({tag:"img",cls:"cms-filter-clear",src:"/fp/shared/images/clear.gif",alt:__tr('Clear')});clear.on("click",this.filter.clear,this.filter);},show:function(){Form.ColumnFilterDiv.superclass.show.call(this);this.fixWidth();},fixWidth:function(){var f=this.filter;for(var i=0;i<f.triggerFields.length;++i){f.triggerFields[i].fixWidth();}},computeWidth:function(){var w=22;for(var child=this.el.dom.firstChild;child;child=child.nextSibling){w+=Ext.get(child).getWidth();}
return w;},expand:function(){if(this.line){this.line.expand();}}});Form.ColumnFilterRow=function(config){if(config){Ext.apply(this,config);}}
Form.ColumnFilterRow.prototype={render:function(tr){var f=this.filter;var td=tr.insertCell(-1);td.style.whiteSpace="nowrap";td.appendChild(document.createTextNode(f.column.description));td=tr.insertCell(-1);td.style.whiteSpace="nowrap";f.op.render(td);td=tr.insertCell(-1);td.style.whiteSpace="nowrap";f.lo.render(td);if(f.hi){f.hiWrap=document.createElement("span");td.appendChild(f.hiWrap);f.hiWrap.appendChild(document.createTextNode("\u00A0"+__tr('and')+"\u00A0"));f.hi.render(f.hiWrap);f.hiWrap=Ext.get(f.hiWrap);f.hiWrap.setVisibilityMode(Ext.Element.DISPLAY);if(f.op.getValue()!=="between"){f.hiWrap.hide();}}
var clear=Ext.get(td).createChild({tag:"img",cls:"cms-filter-clear",src:"/fp/shared/images/clear.gif",alt:__tr('Clear')});clear.on("click",this.filter.clear,this.filter);this.row=tr;},show:Ext.emptyFn,hide:Ext.emptyFn,expand:Ext.emptyFn,fixWidth:function(){var f=this.filter;for(var i=0;i<f.triggerFields.length;++i){f.triggerFields[i].fixWidth();}},computeWidth:function(){var w=0;for(var td=this.row.firstChild;td!=null;td=td.nextSibling){w+=Ext.get(td).getWidth();}
return w;}};var SaveBox=function(config){SaveBox.superclass.constructor.call(this,config);}
Ext.extend(SaveBox,Ext.BoxComponent,{onRender:function(ct,position){this.el=ct.createChild({style:"padding: 2px 0px 0px 20px"});var saveName=new Ext.form.TextField({renderTo:this.el,allowBlank:false});var shareFilter=new Ext.form.Checkbox({renderTo:this.el,boxLabel:__tr('Share this filter with everyone')});new Ext.Button({style:"padding: 2px 0px 0px 0px",text:__tr('Save'),renderTo:this.el,handler:function(){if(!saveName.validate()){Credit360.Page.showMessage(__tr('Please fix the errors on the form'));return;}
this.fireEvent("filtersave",saveName.getValue(),shareFilter.getValue());},scope:this});}});var LoadBox=function(config){LoadBox.superclass.constructor.call(this,config);}
Ext.extend(LoadBox,Ext.BoxComponent,{onRender:function(ct,position){this.el=ct.createChild({style:"padding: 2px 0px 0px 20px"});var filterList=new Ext.form.ComboBox({store:new Ext.data.JayrockStore({prepareRpcParams:function(params){return[this.table.sid];},rpc:GridHandler.getTableFilters,fields:["sid","name"],table:this.table,autoLoad:true}),loadingText:__tr('Loading...'),mode:"local",forceSelection:true,displayField:"name",valueField:"sid",width:200,listWidth:200,queryDelay:10,minChars:1,renderTo:this.el,allowBlank:false,triggerAction:"all",editable:true,typeAhead:true});new Ext.Button({style:"padding: 2px 0px 0px 0px",text:__tr('Load'),renderTo:this.el,handler:function(){if(!filterList.validate()){Credit360.Page.showMessage(__tr('Please fix the errors on the form'));return;}
this.fireEvent("filterload",filterList.getValue(),filterList.lastSelectionText);},scope:this});}});var ExpandBox=function(config){ExpandBox.superclass.constructor.call(this,config);}
Ext.extend(ExpandBox,Ext.BoxComponent,{onRender:function(ct,position){this.el=ct.createChild();this.plusLine=this.el.createChild({cls:"cms-filter-expander-line"});this.plus=this.plusLine.createChild({tag:"img",cls:"cms-filter-item",src:"/fp/shared/images/ic_small_plus.gif"});this.plusLine.createChild({tag:"span",html:Ext.util.Format.htmlEncode(this.description)});this.plusLine.on("mouseover",function(){this.plusLine.addClass("cms-filter-over");},this);this.el.on("mouseout",function(){this.plusLine.removeClass("cms-filter-over");},this);this.child.render(this.el);this.plusLine.on("click",function(){if(this.child.hidden){this.expand();}else{this.collapse();}},this);},expand:function(){this.child.show();this.plus.dom.src="/fp/shared/images/ic_small_minus.gif";this.syncSize();},collapse:function(){this.child.hide();this.plus.dom.src="/fp/shared/images/ic_small_plus.gif";this.syncSize();},syncSize:function(){this.win.syncSize();}});Form.SearchFilterWindow=function(config){Form.SearchFilterWindow.superclass.constructor.call(this,config);}
Ext.extend(Form.SearchFilterWindow,Ext.Window,{hide:function(){this.mask.un("mousedown",this.hide,this);Form.SearchFilterWindow.superclass.hide.call(this);},show:function(){Form.SearchFilterWindow.superclass.show.call(this);this.mask.on("mousedown",this.hide,this);},onRender:function(ct,pos){Form.SearchFilterWindow.superclass.onRender.call(this,ct,pos);this.mask.replaceClass("ext-el-mask","cms-transparent-mask");},setFilter:function(filter){this.add(filter);filter.on("resize",function(component,adjWidth,adjHeight,rawWidth,rawHeight){this.setSize(adjWidth,adjHeight);},this);}});Form.SearchFilter=function(config){config=config||{};config.shadow=true;Form.SearchFilter.superclass.constructor.call(this,config);this.addEvents("filterchange","filterload","filtersave");}
Ext.extend(Form.SearchFilter,Ext.Panel,{border:false,cls:"cms-filter",syncSize:function(){var h=this.filterEl.getHeight();var w=0;for(var i=0;i<this.columnFilters.length;++i){var cw=this.columnFilters[i].computeWidth();if(cw>w){w=cw;}}
w+=24;h+=20;this.setSize(w<400?400:w,h);},createLine:function(el,description,child){return new ExpandBox({win:this,renderTo:el,description:description,child:child});},onRender:function(ct,pos){Form.SearchFilter.superclass.onRender.call(this,ct,pos);var el=this.filterEl=Ext.get(document.createElement("div"));el.addClass("x-unselectable");var tbody;if(this.showInline){var tab=el.createChild({tag:"table"});tbody=document.createElement("tbody");tab.appendChild(tbody);}
this.columnFilters=[];this.store.fields.each(function(fld){var c=fld.column;if(!c){return true;}
if(this.fields&&this.fields.indexOf(c.name)==-1){return true;}
if(c.colType==ColType.FileData){return true;}
if(c.colType==ColType.Html||c.colType==ColType.Image||c.colType==ColType.SearchEnum){return true;}
var ui;if(this.showInline){ui=new Form.ColumnFilterRow();}else{ui=new Form.ColumnFilterDiv({hidden:true});};var filter=new Form.ColumnFilter({column:c,ui:ui,parent:this});var filter;if(this.showInline){var tr=tbody.insertRow(-1);filter.render(tr);}else{ui.line=this.createLine(el,c.description,filter);}
this.columnFilters.push(filter);this.relayEvents(filter,["change"]);},this);var filterNode=this.view.viewXml.selectSingleNode("/select/filter");if(filterNode){this.parseChildren(filterNode);}
if(this.showSaveLoad){var loadBox=new LoadBox({hidden:true,table:this.table});this.relayEvents(loadBox,["filterload"]);this.createLine(el,__tr('Load'),loadBox);var saveBox=new SaveBox({hidden:true});this.relayEvents(saveBox,["filtersave"]);this.createLine(el,__tr('Save'),saveBox);}
var tpl=new Ext.XTemplate('<table><tr><td></td><td>&#160;'+__tr('or')+'&#160;<a href="javascript://">'+__tr('Clear')+'</a></td></tr></table>');var actions=tpl.append(el,{},true);new Ext.Button({style:"padding: 2px 0px 1px 0px",text:__tr('Apply filter'),renderTo:actions.child("td"),handler:function(){this.fireEvent("filterchange");},scope:this});actions.child("a").on("click",function(){var cf=this.columnFilters;for(var i=0;i<cf.length;++i){cf[i].clear();}
this.fireEvent("filterchange");},this);this.body.appendChild(this.filterEl);for(var i=0;i<this.columnFilters.length;++i){this.columnFilters[i].fixWidth();}
this.syncSize();},formatISO:function(x){function p(n){return n<10?'0'+n:n;}
var tz=x.getTimezoneOffset();if(tz!=0){var tzh=Math.floor(Math.abs(tz)/60);var tzm=Math.abs(tz)%60;tz=(tz<0?'+':'-')+p(tzh)+':'+p(tzm);}else{tz='Z';}
return x.getFullYear()+'-'+
p(x.getMonth()+1)+'-'+
p(x.getDate())+'T'+
p(x.getHours())+':'+
p(x.getMinutes())+':'+
p(x.getSeconds())+tz;},makeConstantNode:function(cf,v,desc){switch(cf.column.type){case"DATE":return{tag:"date",attributes:{"value":this.formatISO(v)}};case"NUMBER":{var r={tag:"number",attributes:{"value":v}};if(desc){r.attributes["description"]=desc;}
return r;}
default:return{tag:"string",attributes:{"value":v}};}},getFilterXml:function(filterNode){var doc=filterNode.getOwnerDocument();var test=null;for(var i=0;this.columnFilters&&i<this.columnFilters.length;++i){var cf=this.columnFilters[i];var op=cf.op.getValue();var n;if(cf.column.colType==ColType.User&&op=="current-user"){n=doc.createElement({tag:"current-user",children:[{tag:"expr",children:[{tag:"column",attributes:{"name":cf.column.qname()}}]}]});}else{var lo=cf.lo.getValue(),loDesc=null;if(cf.column.colType==ColType.Region||cf.column.colType==ColType.Indicator){loDesc=cf.lo.getDescription();}else if(cf.column.colType==ColType.User){loDesc=cf.lo.getRawValue();}
if(typeof(lo)==="string"){lo=lo.trim();if(lo.length==0){continue;}}else if(lo===null){continue;}
if(op==="between"){var hi=cf.hi.getValue();if(typeof(hi)==="string"){hi=hi.trim();if(hi.length==0){continue;}}else if(hi===null){continue;}
n=doc.createElement({tag:"between",children:[{tag:"expr",children:[{tag:"column",attributes:{"name":cf.column.qname()}}]},{tag:"low",children:[this.makeConstantNode(cf,lo,loDesc)]},{tag:"high",children:[this.makeConstantNode(cf,hi)]}]});}else{n=doc.createElement({tag:"test",attributes:{"op":op},children:[{tag:"left",children:[{tag:"column",attributes:{"name":cf.column.qname()}}]},{tag:"right",children:[this.makeConstantNode(cf,lo,loDesc)]}]});}}
if(test){test=doc.createElement({tag:"and",children:[{tag:"left",children:[test]},{tag:"right",children:[n]}]});}else{test=n;}}
if(test){filterNode.appendChild(test);}},parseChildren:function(p){for(var n=p.getFirstChild();n;n=n.getNextSibling()){this.parseFilterNode(n);}},parseSimpleValue:function(val){switch(val.getName())
{case"number":case"string":return[val.getAttribute("value"),val.getAttribute("description")];case"date":return[Date.parseISO(val.getAttribute("value"))];default:throw"Can't parse filter xml: RHS of test missing simple value (has "+val.getName()+")";}},setColumnFilter:function(col,op,lo,hi){var i=0;for(;i<this.columnFilters.length;++i){var cf=this.columnFilters[i];if(cf.column.name===col){if(cf.column.colType==ColType.Indicator||cf.column.colType==ColType.Region||cf.column.colType==ColType.User){cf.lo.setValues(lo[0],lo[1]);}else{cf.lo.setValue(lo[0]);if(typeof(hi)!=="undefined"){cf.hi.setValue(hi[0]);}}
cf.op.setValue(op);cf.opChanged(op);cf.expand();break;}}
if(i==this.columnFilters.length){throw"unknown column: "+col;}},parseFilterNode:function(n){var tag=n.getName();switch(tag){case"and":this.parseChildren(n.selectSingleNode("left"));this.parseChildren(n.selectSingleNode("right"));break;case"test":{var op=n.getAttribute("op");if(!op){throw"Can't parse filter xml: op attribute missing from test node";}
var col=n.selectSingleNode("left/column/@name");if(!col){throw"Can't parse filter xml: LHS of test missing column";}
var tc=Cms.parseDotted(col.getValue());col=tc[tc.length-1];var val=n.selectSingleNode("right/*");this.setColumnFilter(col,op,this.parseSimpleValue(val));break;}
case"current-user":{var col=n.selectSingleNode("expr/column/@name");if(!col){throw"Can't parse filter xml: expr of between missing column";}
var tc=Cms.parseDotted(col.getValue());col=tc[tc.length-1];var lo=n.selectSingleNode("low/*");var hi=n.selectSingleNode("high/*");this.setColumnFilter(col,"current-user",[null,null]);break;}
case"between":{var col=n.selectSingleNode("expr/column/@name");if(!col){throw"Can't parse filter xml: expr of between missing column";}
var tc=Cms.parseDotted(col.getValue());col=tc[tc.length-1];var lo=n.selectSingleNode("low/*");var hi=n.selectSingleNode("high/*");this.setColumnFilter(col,"between",this.parseSimpleValue(lo),this.parseSimpleValue(hi));break;}}}});var SplitDragZone=function(sortTable,hd){this.sortTable=sortTable;this.marker=this.sortTable.resizeMarker;this.proxy=this.sortTable.resizeProxy;SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.sortTable.getEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.sortTable.splitHandleWidth||5;};Ext.extend(SplitDragZone,Ext.dd.DDProxy,{b4StartDrag:function(x,y){this.sortTable.headersDisabled=true;var h=this.sortTable.tab.getHeight();this.marker.setHeight(h);this.marker.show();this.marker.alignTo(this.sortTable.getHeaderCell(this.cellIndex),'tl-tl',[-2,0]);this.proxy.setHeight(h);var w=this.sortTable.getColumnWidth(this.cellIndex);var minw=Math.max(w-20,0);this.resetConstraints();this.setXConstraint(minw,1000);this.setYConstraint(0,0);this.minX=x-minw;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){var t=this.sortTable.findHeaderCell(e.getTarget());if(!t)
return;var xy=Ext.fly(t).getXY(),x=xy[0],y=xy[1];var exy=e.getXY(),ex=exy[0],ey=exy[1];var w=t.offsetWidth,adjust=false;if((ex-x)<=this.hw){adjust=-1;}else if((x+w)-ex<=this.hw){adjust=0;}
if(adjust!==false){var ci=this.sortTable.getCellIndex(t);if(adjust==-1){if(ci+adjust<0){return;}}
this.cellIndex=ci+adjust;this.split=t.dom;if(true){SplitDragZone.superclass.handleMouseDown.apply(this,arguments);}}else if(this.sortTable.columnDrag){this.sortTable.columnDrag.callHandleMouseDown(e);}},endDrag:function(e){this.marker.hide();var v=this.sortTable;var endX=Math.max(this.minX,e.getPageX());var diff=endX-this.startPos;v.onColumnSplitterMoved(this.cellIndex,this.sortTable.getColumnWidth(this.cellIndex)+diff);setTimeout(function(){v.headersDisabled=false;},50);},autoOffset:function(){this.setDelta(0,0);}});var HeaderDragZone=function(sortTable,hd,hd2){this.sortTable=sortTable;this.ddGroup="cms-grid-header-"+this.sortTable.getEl().id;HeaderDragZone.superclass.constructor.call(this,hd);if(hd2){this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(hd2));}
this.scroll=false;};Ext.extend(HeaderDragZone,Ext.dd.DragZone,{maxDragWidth:120,getDragData:function(e){var t=Ext.lib.Event.getTarget(e);var h=this.sortTable.findHeaderCell(t);if(h){return{ddel:h.firstChild,header:h};}
return false;},onInitDrag:function(e){this.sortTable.headersDisabled=true;var clone=this.dragData.ddel.cloneNode(true);clone.id=Ext.id();clone.style.width=Math.min(this.dragData.header.offsetWidth,this.maxDragWidth)+"px";this.proxy.update(clone);return true;},afterValidDrop:function(){var v=this.sortTable;setTimeout(function(){v.headersDisabled=false;},50);},afterInvalidDrop:function(){var v=this.sortTable;setTimeout(function(){v.headersDisabled=false;},50);}});var HeaderDropZone=function(sortTable,hd,hd2){this.sortTable=sortTable;this.proxyTop=Ext.DomHelper.append(document.body,{cls:"col-move-top",html:"&#160;"},true);this.proxyBottom=Ext.DomHelper.append(document.body,{cls:"col-move-bottom",html:"&#160;"},true);this.proxyTop.hide=this.proxyBottom.hide=function(){this.setLeftTop(-100,-100);this.setStyle("visibility","hidden");};this.ddGroup="cms-grid-header-"+this.sortTable.getEl().id;HeaderDropZone.superclass.constructor.call(this,sortTable.getEl().dom);};Ext.extend(HeaderDropZone,Ext.dd.DropZone,{proxyOffsets:[-4,-9],fly:Ext.Element.fly,getTargetFromEvent:function(e){var t=Ext.lib.Event.getTarget(e);var cindex=this.sortTable.findCellIndex(t);if(cindex!==false){return this.sortTable.getHeaderCell(cindex);}},nextVisible:function(h){var v=this.sortTable,cm=this.grid.colModel;h=h.nextSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}
h=h.nextSibling;}
return null;},prevVisible:function(h){var v=this.sortTable,cm=this.grid.colModel;h=h.prevSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}
h=h.prevSibling;}
return null;},positionIndicator:function(h,n,e){var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n);var px,pt,py=r.top+this.proxyOffsets[1];if((r.right-x)<=(r.right-r.left)/2){px=r.right+this.sortTable.borderWidth;pt="after";}else{px=r.left;pt="before";}
var oldIndex=this.sortTable.getCellIndex(h);var newIndex=this.sortTable.getCellIndex(n);if(pt=="after"){newIndex++;}
if(oldIndex<newIndex){newIndex--;}
if(oldIndex==newIndex){return false;}
px+=this.proxyOffsets[0];this.proxyTop.setLeftTop(px,py);this.proxyTop.show();if(!this.bottomOffset){this.bottomOffset=this.sortTable.thead.getHeight();}
this.proxyBottom.setLeftTop(px,py+this.proxyTop.dom.offsetHeight+this.bottomOffset);this.proxyBottom.show();return pt;},onNodeEnter:function(n,dd,e,data){if(data.header!=n){this.positionIndicator(data.header,n,e);}},onNodeOver:function(n,dd,e,data){var result=false;if(data.header!=n){result=this.positionIndicator(data.header,n,e);}
if(!result){this.proxyTop.hide();this.proxyBottom.hide();}
return result?this.dropAllowed:this.dropNotAllowed;},onNodeOut:function(n,dd,e,data){this.proxyTop.hide();this.proxyBottom.hide();},onNodeDrop:function(n,dd,e,data){var h=data.header;if(h!=n){var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n);var pt=(r.right-x)<=((r.right-r.left)/2)?"after":"before";var oldIndex=this.sortTable.getCellIndex(h);var newIndex=this.sortTable.getCellIndex(n);if(pt=="after"){newIndex++;}
if(oldIndex<newIndex){newIndex--;}
if(oldIndex==newIndex){return false;}
this.sortTable.moveColumn(oldIndex,newIndex);return true;}
return false;}});var ColumnDragZone=function(grid,hd){ColumnDragZone.superclass.constructor.call(this,grid,hd,null);this.proxy.el.addClass('x-grid3-col-dd');};Ext.extend(ColumnDragZone,HeaderDragZone,{handleMouseDown:function(e){},callHandleMouseDown:function(e){ColumnDragZone.superclass.handleMouseDown.call(this,e);}});Form.CmsView=function(config){var baseConfig={};if(baseConfig){Ext.apply(baseConfig,config);}
Ext.applyIf(baseConfig,{cls:'layout-item'});this.useTableData=config.useTableData;baseConfig.border=typeof(baseConfig.border)==="undefined"?false:baseConfig.border;this.tables=[];this.viewXmlSpecified=typeof(config.viewXml)!=="undefined"&&config.viewXml!=null;if(config.viewXml){this.viewXml=new XML.Document();this.viewXml.setDefaultNS("http://www.credit360.com/XMLSchemas/cms");var root=XML.Node.get(config.viewXml);if(root.getNodeType()==XML.DOCUMENT_NODE){root=root.getFirstChild();}
this.viewXml.appendChild(root.cloneNode(true));this.tables=[];var tableNodes=this.viewXml.selectNodes("select/tables/table");for(var i=0;i<tableNodes.length;++i){var tableName=tableNodes[i].getAttribute("name");if(!tableName){throw"A select/tables/table node is missing a name attribute";}
tableName=tableName.replace(/^(("([^"]*)")|([^"]*))$/,"$3$4");var table=g_schema.findTable(tableName);if(!table){throw"The table "+tableName+" is missing from the schema";}
this.tables.push(table);}}else{this.tables=[config.table];this.buildTableViewXml(config.fields);}
delete baseConfig.viewXml;baseConfig.tbar=baseConfig.tbar||[];this.editors=[];if(config.editors){for(var i=0;i<config.editors.length;++i){var ed=config.editors[i];if(ed.newRecord){var pkey=[];var pkcols=g_schema.findTable(ed.table).pk.columns;for(var colIdx=0;colIdx<pkcols.length;colIdx++){if(pkcols[colIdx]&&pkcols[colIdx].name&&pkcols[colIdx].name.length>0){pkey.push(ed.table+"."+pkcols[colIdx].name);}}
baseConfig.tbar.push({text:ed.newRecord.description||__tr('Add'),iconCls:'new-icon',handler:function(){var href="/fp/cms/form.acds?";if(this.formId){href+="_FORM_ID="+encodeURIComponent(this.formId);}else{href+="_FORM_PATH="+encodeURIComponent(this.formPath);}
for(var keyIdx=0;keyIdx<this.key.length;keyIdx++){href+="&"+encodeURIComponent(this.key[keyIdx])+"=null";}
href+="&_BACK="+encodeURIComponent(xsrf_de(self.location));xsrf_nav(href);},scope:{formId:ed.formId,formPath:ed.formPath,key:pkey}});}
if(ed.deleteRecord){baseConfig.tbar.push({text:ed.deleteRecord.description||__tr('Delete'),iconCls:'delete-icon',handler:function(){var pkc=this.table.pk.columns;var items=[];this.parent.selected.each(function(r){var item=[];for(var i=0;i<pkc.length;++i){var flds=this.parent.store.fields;var j=0;for(;j<flds.getCount();++j){var fld=flds.itemAt(j);if(fld.column&&fld.column.sid==pkc[i].sid){break;}}
if(j==flds.getCount()){throw"The primary key column "+pkc[i].qname()+" is not in the returned data -- please check the view xml";}
item.push(r.get(pkc[i].name));}
items.push(item);},this);if(items.length==0){Ext.Msg.show({title:__tr('Delete records'),buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:__tr('You must select some items to delete.')});return;}
var msg=r.length>1?__tr('Are you sure you wish to delete these items?'):__tr('Are you sure you wish to delete this item?');Ext.Msg.show({title:__tr('Delete records'),buttons:Ext.Msg.YESNO,icon:Ext.MessageBox.QUESTION,msg:msg,fn:function(doDelete){if(doDelete!=='yes')
return;GridHandler.deleteTableData({tab:this.table.sid,items:items},function(){this.waitingForLoad=true;this.parent.store.reload();},this);},scope:this});},scope:{parent:this,table:g_schema.findTable(ed.table)}});baseConfig.multiSelect=true;}
if(ed.cloneRecord){baseConfig.tbar.push({text:ed.cloneRecord.description||__tr('Copy'),iconCls:'copy-icon',handler:function(){var pkc=this.table.pk.columns;var items=[];this.parent.selected.each(function(r){var item=[];for(var i=0;i<pkc.length;++i){var flds=this.parent.store.fields;var j=0;for(;j<flds.getCount();++j){var fld=flds.itemAt(j);if(fld.column&&fld.column.sid==pkc[i].sid){break;}}
if(j==flds.getCount()){throw"The primary key column "+pkc[i].qname()+" is not in the returned data -- please check the view xml";}
item.push(r.get(pkc[i].name));}
items.push(item);},this);if(items.length==0){Ext.Msg.show({title:__tr('Copy records'),buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR,msg:__tr('You must select some items to copy.')});return;}
GridHandler.cloneTableData(this.table.sid,items,function(){this.waitingForLoad=true;this.parent.store.reload();},this);},scope:{parent:this,table:g_schema.findTable(ed.table)}});baseConfig.multiSelect=true;}
if(ed.editRecord){for(var j=0;j<this.tables.length;++j){var edTable=g_schema.findTable(ed.table);if(edTable===this.tables[i]){var r={table:edTable,formId:ed.formId,formPath:ed.formPath,description:ed.editRecord.description,linkOverride:ed.editRecord.linkOverride};if(ed.editRecord.keys){r.keys=new Cms.Keys();for(var j=0;j<ed.editRecord.keys.length;++j){var edKey=ed.editRecord.keys[j];r.keys.set(this.table.name,edKey.name,edKey.value);}}
this.editors.push(r);}}}}
delete baseConfig.editors;}
if(config.showExport!==false){baseConfig.tbar.push({text:__tr('Export'),iconCls:'excel-icon',handler:this.excelExport,scope:this});}
if(baseConfig.tbar.length==0){delete baseConfig.tbar;}
this.store=new Cms.DataStore({storeId:baseConfig.storeId,rpc:(this.useTableData?GridHandler.getTableDataFilteredByView:GridHandler.getViewData),totalProperty:"total",root:"data",remoteSort:true,prepareRpcParams:function(params){var si=this.parent.store.getSortState();var orderBy=[];if(si){orderBy.push({name:si.field,direction:si.direction==="ASC"?"Asc":"Desc"});}
var firstRow=null,numRows=null;if(typeof(params.start)!="undefined"&&typeof(params.limit)!="undefined"){firstRow=params.start+1;numRows=params.limit;}
if(this.parent.useTableData){var fetchKeys=[];if(this.parent.keys){fetchKeys=this.parent.keys.makeTableKeys(this.parent.table.name);}
return[this.parent.viewXml.getXML(),this.tables[0].sid,fetchKeys,firstRow,numRows,orderBy];}
return[this.parent.viewXml.getXML(),firstRow,numRows,orderBy];},table:config.table,parent:this});var storeParams={};if(config.pageSize){baseConfig.bbar=new Ext.PagingToolbar({pageSize:config.pageSize,store:this.store,displayInfo:true,emptyMsg:__tr('No records to display')});storeParams.start=0;storeParams.limit=config.pageSize;}
if(baseConfig.itemTemplate){this.itemTemplate=new Ext.ux.DomTemplate({tpl:baseConfig.itemTemplate,wrapperName:"item-template"});delete baseConfig.itemTemplate;}
Form.CmsView.superclass.constructor.call(this,baseConfig);this.addEvents("selectionchange");this.store.on("add",this.onAdd,this);this.store.on("clear",this.onClear,this);this.store.on("load",this.onLoad,this);this.store.on("remove",this.onRemove,this);this.store.on("update",this.onUpdate,this);this.store.on("datachanged",this.onDataChanged,this);this.colRe=new RegExp("cms-view-td-([^\\s]+)","");this.rowRe=new RegExp("cms-view-tr-([^\\s]+)","");this.filterName=__tr('Show');this.filterDirty=false;this.selected=new Ext.util.MixedCollection();this.waitingForLoad=true;this.loaded=false;this.store.load({params:storeParams});}
Form.CmsView.fromXML=function(n,ownerForm,ownerRecord){if(ownerRecord){throw"cms-view / cms-record nodes cannot be nested";}
var useTableData=XML.getAttribute(n.dom||n,"use-table-data");if(useTableData&&typeof(useTableData=="string")){useTableData=useTableData.toLowerCase();}
var config={ownerForm:ownerForm,itemTemplate:XML.getChild(n.dom||n,"item-template"),pageSize:XML.getIntAttribute(n.dom||n,"page-size"),useTableData:(useTableData&&useTableData=="yes")};Form.copyBoolAttribute(config,n,"show-filter","showFilter");Form.copyBoolAttribute(config,n,"show-filter-inline","showFilterInline");Form.copyBoolAttribute(config,n,"show-filter-save-load","showFilterSaveLoad");var tableName=n.getAttribute("table");if(tableName){if(!(config.table=g_schema.findTable(tableName))){throw"The table "+tableName+" is missing from the schema";}}else{config.showFilterSaveLoad=false;}
n=XML.Node.get(n);config.editors=[];var editors=n.selectNodes("editors/editor");for(var i=0;i<editors.length;++i){var en=editors[i];var ed={};ed.table=en.getAttribute("table");if(!ed.table){throw"The editor node is missing a table attribute";}
ed.formPath=en.getAttribute("form-path");ed.formId=en.getIntAttribute("form-id");if(!ed.formId&&!ed.formPath){throw"The editor node is missing a form-id or form-path attribute";}
var new_=en.selectSingleNode("new");if(new_){ed.newRecord={description:new_.getAttribute("description")};}
var del=en.selectSingleNode("delete");if(del){ed.deleteRecord={description:del.getAttribute("description")};}
var clone=en.selectSingleNode("clone");if(clone){ed.cloneRecord={description:clone.getAttribute("description")};}
var edit=en.selectSingleNode("edit");if(edit){ed.editRecord={description:edit.getAttribute("description"),linkOverride:edit.getAttribute("link-override")};var keys=edit.selectNodes("keys/key");if(keys.length>0){ed.editRecord.keys=[];for(var j=0;j<keys.length;++j){var key=keys[j];var edKey={name:key.getAttribute("name"),value:key.getAttribute("value")};if(!edKey.name){throw"An editor/edit/keys/key node is missing a name attribute";}
if(edKey.value===null){throw"An editor/edit/keys/key node is missing a value attribute";}
ed.editRecord.keys.push(edKey);}}}
config.editors.push(ed);}
config.viewXml=n.selectSingleNode("filter/select");var cmsView=new Form.CmsView(config);if(config.table){ownerForm.records[cmsView.id]=cmsView;}
return cmsView;};Ext.extend(Form.CmsView,Ext.Panel,{setKeys:function(keys){this.keys=new Cms.Keys(keys);if(!this.waitingForLoad){this.waitingForLoad=true;this.store.reload();}},excelExport:function(){var si=this.store.getSortState();var orderBy=[];if(si){orderBy.push({name:si.field,direction:si.direction==="ASC"?"Asc":"Desc"});}
var exportColumns=this.viewXml.selectNodes("select/export-columns/column");if(exportColumns!=null&&exportColumns.length>0){var columns=this.viewXml.selectSingleNode("select/columns");while(columns.dom.childNodes.length>=1){columns.removeChild(columns.dom.firstChild);}
for(var i=0;i<exportColumns.length;i++){columns.appendChild(exportColumns[i]);}
exportColumns=this.viewXml.selectNodes("select/export-columns/calc-column");if(exportColumns!=null&&exportColumns.length>0){for(var i=0;i<exportColumns.length;i++){columns.appendChild(exportColumns[i]);}}}
GridHandler.exportViewData(this.viewXml.getXML(),orderBy,function(cacheKey){xsrf_nav("/fp/shared/extux/upload/file/download.aspx?cacheKey="+encodeURIComponent(cacheKey));});},makeFilterLine:function(){return Ext.util.Format.htmlEncode(String.format("{0}{1}: {2}",this.filterName,(this.showFilterSaveLoad!==false&&this.filterDirty)?"*":"",this.describeFilter()));},setFilterLine:function(){this.filterWord.dom.innerHTML=this.makeFilterLine();},onFilterChange:function(){if(this.filterWindow){this.filterWindow.hide();}
this.setFilterXml();this.waitingForLoad=true;this.store.reload();this.filterDirty=true;this.setFilterLine();},onFilterSave:function(name,pub){this.setFilterXml();GridHandler.saveTableFilter(this.table.sid,name,pub,this.viewXml.getXML(),function(){if(this.filterWindow){this.filterWindow.hide();}
this.waitingForLoad=true;this.store.reload();this.filterName=name;this.filterDirty=false;this.setFilterLine();Credit360.Page.showMessage(__tr('The filter {0} was saved successfully',name));},this);},onFilterLoad:function(sid,name){GridHandler.loadTableFilter(sid,function(xml){this.filterName=name;this.filterDirty=false;if(this.viewXml){this.viewXml.destroy();}
this.viewXml=new XML.Document(xml);this.viewXml.setDefaultNS("http://www.credit360.com/XMLSchemas/cms");var cf=this.filter.columnFilters;for(var i=0;i<cf.length;++i){cf[i].clear();}
var fnode=this.viewXml.selectSingleNode("/select/filter/*");if(fnode){var filter=this.flattenFilter(this.parseFilter(fnode));var children=null;if(filter.tag==="test"||filter.tag==="between"){children=[filter];}else if(filter.tag==="and"){children=filter.children;}
if(children){for(var i=0;i<children.length;++i){var f=children[i];if(f.left.tag!=="column")
continue;for(var j=0;j<cf.length;++j){if(cf[j].column.name==f.left.column.name){switch(f.tag){case"test":if(f.right.tag==="date"||f.right.tag==="number"||f.right.tag=="string"){cf[j].setValue(f.op,f.right.value,"");}
break;case"between":if(f.low.tag==="date"||f.low.tag==="number"||f.low.tag=="string"){cf[j].setValue(f.op,f.low.value,f.high.value);}}
continue;}}}}}
this.waitingForLoad=true;this.store.reload();if(this.filterWindow){this.filterWindow.hide();}
Credit360.Page.showMessage(__tr('The filter {0} was loaded successfully',name));this.setFilterLine();},this);},setViewXml:function(viewXml){if(this.viewXml&&this.viewXml!=viewXml){this.viewXml.destroy();}
this.viewXml=viewXml;this.viewXml.setDefaultNS("http://www.credit360.com/XMLSchemas/cms");this.store.reload();},buildBasicViewXml:function(){if(this.viewXml){this.viewXml.destroy();}
this.viewXml=new XML.Document();this.viewXml.setDefaultNS("http://www.credit360.com/XMLSchemas/cms");var sel=this.viewXml.createChild({tag:"select",children:[{tag:"tables",children:[{tag:"table",attributes:{"name":this.tables[0].qname()}}]}]});return sel;},buildTableViewXml:function(fields){var sel=this.buildBasicViewXml();var cols=sel.createChild({tag:"columns"});if(fields){for(var i=0;i<fields.length;++i){var col=this.tables[0].columnsByName[fields[i]];if(!col){throw"The column named "+fields[i]+" could not be found in the table "+this.tables[0].qname();}
cols.createChild({tag:"column",attributes:{"name":col.qname()}});}}else{for(var i=0;i<this.tables[0].columns.length;++i){cols.createChild({tag:"column",attributes:{"name":this.tables[0].columns[i].qname()}});}}},setFilterXml:function(){var selectNode=this.viewXml.selectSingleNode("select");var filterNode=selectNode.selectSingleNode("filter");if(filterNode!=null){selectNode.removeChild(filterNode);}
filterNode=selectNode.createChild({tag:"filter"});this.getFilterXml(filterNode);},parseFilter:function(n,parent){var tag=n.getName();switch(tag){case"and":case"or":return{tag:tag,left:this.parseFilter(n.selectSingleNode("left").getFirstChild()),right:this.parseFilter(n.selectSingleNode("right").getFirstChild())};break;case"test":return{tag:tag,op:n.getAttribute("op"),left:this.parseFilter(n.selectSingleNode("left").getFirstChild()),right:this.parseFilter(n.selectSingleNode("right").getFirstChild())};case"column":{var tn=Cms.parseDotted(n.getAttribute("name"));var column=null;for(var i=0;i<this.columnInfo.length;++i){var ci=this.columnInfo[i];if(ci.column&&ci.column.name===tn[tn.length-1]){column=ci.column;break;}}
return{tag:tag,column:column};}
case"number":case"string":return{tag:tag,value:n.getAttribute("value"),description:n.getAttribute("description")};case"date":return{tag:tag,value:Date.parseISO(n.getAttribute("value"))};case"between":{return{tag:tag,expr:this.parseFilter(n.selectSingleNode("expr").getFirstChild()),low:this.parseFilter(n.selectSingleNode("low").getFirstChild()),high:this.parseFilter(n.selectSingleNode("high").getFirstChild())};}
case"current-user":{return{tag:tag,expr:this.parseFilter(n.selectSingleNode("expr").getFirstChild())};}
default:throw"unknown node "+tag+" in filter xml";}},flattenFilter_:function(node,parent){if(node.left.tag===parent.tag){this.flattenFilter_(node.left,parent);}else{this.flattenFilter(node.left);parent.children.push(node.left);}
if(node.right.tag===parent.tag){this.flattenFilter_(node.right,parent);}else{this.flattenFilter(node.right);parent.children.push(node.right);}},flattenFilter:function(node){if(node.tag!=="and"&&node.tag!=="or")
return node;node.children=[];this.flattenFilter_(node,node);delete node.left;delete node.right;return node;},describe_:function(node,parentPrec,type){switch(node.tag){case"and":{if(node.children){var s="";for(var i=0;i<node.children.length;++i){if(i!=0){if(i==node.children.length-1){s+=__tr(' and ');}else{s+=", ";}}
s+=this.describe_(node.children[i]);}
return s;}
var s=this.describe_(node.left,64)+__tr(' and ')+this.describe_(node.right,64);if(parentPrec>=64)
return s;return"("+s+")";}
case"or":{var s=this.describe_(node.left,128)+__tr(' or ')+this.describe_(node.right,128);if(parentPrec>=128)
return s;return"("+s+")";}
case"between":{var exprType={},loType={},hiType={};return this.describe_(node.expr,parentPrec,exprType)+" "+__tr('between')+" "+
this.describe_(node.low,parentPrec,loType)+" "+__tr('and')+" "+
this.describe_(node.high,parentPrec,hiType);}
case"current-user":{var exprType={};return this.describe_(node.expr,parentPrec,exprType)+" "+__tr('is you');}
case"test":{var leftType={};var result=this.describe_(node.left,parentPrec,leftType)+" ";var opStore;if(leftType.type==="column"){opStore=opStoreFromType(leftType.column.colType,leftType.column.type);}else if(leftType.type==="date"){opStore=g_dateOpStore;}else{opStore=g_opStore;}
var opRec=opStore.getById(node.op);if(opRec!=null){result+=opRec.get("name");}else{result+=__tr('unknown');}
var rightType={};var rhs=this.describe_(node.right,parentPrec,rightType);if(leftType.type==="column"&&leftType.column.colType==ColType.Enumerated){var desc="";if(rightType.type==="number"){desc=leftType.column.enumeratedById[parseInt(rhs,10)];}else if(rightType.type=="string"){desc=leftType.column.enumeratedById[rhs];}
rhs=desc||rhs;}
result+=" "+rhs;return result;}
case"number":type.type="number";return node.description||node.value;case"string":type.type="string";return node.value;case"date":type.type="date";return NPSL.Locale.formatLongDate(node.value);case"column":type.type="column";type.column=node.column;return node.column.description;default:throw"unknown tag: "+node.tag;}},describeFilter:function(){var filterNode=this.viewXml.selectSingleNode("/select/filter/*");if(!filterNode){return"everything";}
var filter=this.parseFilter(filterNode);this.flattenFilter(filter);return this.describe_(filter,256,{});},borderWidth:2,showFilter:true,enableColumnResize:true,enableColumnMove:true,columnInfo:null,getFilterXml:function(filterNode){if(this.filter){this.filter.getFilterXml(filterNode);}},onAdd:function(store,records,idx){this.showData();},onClear:function(store){this.showData();},onLoad:function(store,records,options){this.waitingForLoad=false;this.onDataChanged(store);},onRemove:function(store,record,index){this.showData();},onUpdate:function(store,record,operation){this.showData();},onRender:function(ct,pos){Form.CmsView.superclass.onRender.call(this,ct,pos);this.body.addClass("cms-view");if(this.loaded){this.onDataChanged(this.store);}},afterRender:function(){Form.CmsView.superclass.afterRender.call(this);this.itemSelector=".cms-view-row";this.overClass="cms-view-row-over";this.selectedClass="cms-view-row-selected";this.el.on({"click":this.onClick,"mouseover":this.onMouseOver,"mouseout":this.onMouseOut,scope:this});if(!Form.LayoutMode)
return;Form.initDragZone(this.el,this);},onMouseOver:function(e){var item=e.getTarget(this.itemSelector,this.el);if(item&&item!==this.lastItem){this.lastItem=item;Ext.fly(item).addClass(this.overClass);}},onMouseOut:function(e){if(this.lastItem){if(!e.within(this.lastItem,true,true)){Ext.fly(this.lastItem).removeClass(this.overClass);delete this.lastItem;}}},onClick:function(e){var item=e.getTarget(this.itemSelector,this.el);if(item){var index=this.getRowIndex(item);if(this.onItemClick(item,index,e)!==false){this.fireEvent("click",this,index,item,e);}}else{if(this.fireEvent("containerclick",this,e)!==false){this.clearSelections();}}},onItemClick:function(item,index,e){if(this.fireEvent("beforeclick",this,index,item,e)===false){return false;}
if(this.multiSelect){this.doMultiSelection(index,e);}else if(this.singleSelect){this.doSingleSelection(index,e);}
return true;},doSingleSelection:function(index,e){if(e.ctrlKey&&this.isSelected(index)){this.deselect(index);}else{this.select(index,false);}},doMultiSelection:function(index,e){if(e.shiftKey&&this.last!==false){var last=this.last;this.selectRange(last,index,e.ctrlKey);this.last=last;}else{if((e.ctrlKey||this.simpleSelect)&&this.isSelected(index)){this.deselect(index);}else{this.select(index,e.ctrlKey||e.shiftKey||this.simpleSelect);}}},selectRange:function(start,end,keepExisting){if(!keepExisting){this.clearSelections(true);}
if(start>end){var t=start;start=end;end=t;}
var indexes=new Array(end-start+1);for(var i=start;i<=end;++i){indexes[i-start]=i;}
this.select(indexes,true);},select:function(indexes,keepExisting,suppressEvent){if(Ext.isArray(indexes)){if(!keepExisting){this.clearSelections(true);}
for(var i=0,len=indexes.length;i<len;i++){this.select(indexes[i],true,true);}
if(!suppressEvent){this.fireEvent("selectionchange",this,this.selected);}}else{var record=this.getRecord(indexes);if(!keepExisting){this.clearSelections(true);}
if(record&&!this.isSelected(indexes)){if(this.fireEvent("beforeselect",this,record,this.selected)!==false){Ext.fly(this.getRow(indexes)).addClass(this.selectedClass);this.selected.add(record);this.last=indexes;if(!suppressEvent){this.fireEvent("selectionchange",this,this.selected);}}}}},deselect:function(index){if(this.isSelected(index)){var record=this.getRecord(index);this.selected.remove(record);if(this.last==index){this.last=false;}
Ext.fly(this.getRow(index)).removeClass(this.selectedClass);this.fireEvent("selectionchange",this,this);}},clearSelections:function(suppressEvent,skipUpdate){if((this.multiSelect||this.singleSelect)&&this.selected.getCount()>0){if(!skipUpdate){this.selected.each(function(item){Ext.fly(this.getRow(this.store.indexOf(item))).removeClass(this.selectedClass);},this);}
this.selected.clear();this.last=false;if(!suppressEvent){this.fireEvent("selectionchange",this,this.selected);}}},isSelected:function(index){return this.selected.contains(this.getRecord(index));},getRow:function(index){return this.tbody.dom.rows[index];},getRecord:function(index){return this.store.getAt(index);},onDataChanged:function(store){if(this.waitingForLoad)
return;this.loaded=true;if(!this.rendered){return;}
this.columnInfo=[];this.store.fields.each(function(fld){this.columnInfo.push({name:fld.name,description:fld.description||fld.name,column:fld.column});},this);if(this.tab){this.tab.remove();delete this.tab;}
if(this.showFilter){var showFilter=this.showFilterInitially!==false;if(this.filterWrap){this.filterWrap.remove();delete this.filterWrap;showFilter=this.hideFilterOnSearch!==true;}
this.filterWrap=this.body.createChild({cls:"cms-filter-description x-unselectable"});this.filterWord=this.filterWrap.createChild({tag:"a",cls:"cms-filter-line",html:this.makeFilterLine()});this.filter=new Form.SearchFilter({store:this.store,table:this.tables[0],width:400,frame:false,view:this,bodyBorder:false,fields:this.fields,showSaveLoad:this.showFilterSaveLoad!==false,showInline:this.showFilterInline!==false,hidden:this.showFilterInline!==false&&!showFilter});this.filter.on("filterchange",this.onFilterChange,this);this.filter.on("filterload",this.onFilterLoad,this);this.filter.on("filtersave",this.onFilterSave,this);if(this.showFilterInline===true){this.filter.render(this.filterWrap);this.filterWord.on("click",function(){if(this.filter.hidden){this.filter.show();}else{this.filter.hide();}},this);}else{var dialogNode=Ext.get(document.body).createChild();this.filterWindow=new Form.SearchFilterWindow({width:400,height:400,el:dialogNode,modal:true,header:false,resizable:false,frame:false,closable:false,shadow:false});this.filterWindow.setFilter(this.filter);this.filterWord.on("click",function(){this.filterWindow.show();this.filterWindow.alignTo(this.filterWord);},this);}}
this.tab=this.body.createChild({tag:"table",cellSpacing:0,cellPadding:0,width:"100%",border:0});var thead=this.thead=Ext.get(document.createElement("thead"));thead.addClass("cms-view-head");this.tab.appendChild(thead);this.resizeMarker=this.body.createChild({html:"&nbsp;",cls:"x-grid3-resize-marker"});this.resizeProxy=this.body.createChild({html:"&nbsp;",cls:"x-grid3-resize-proxy"});this.thead.on("mouseover",this.handleHdOver,this);this.thead.on("mouseout",this.handleHdOut,this);this.thead.on("mousemove",this.handleHdMove,this);if(this.enableColumnResize!==false){this.splitZone=new SplitDragZone(this,thead.dom);}
if(this.enableColumnMove){this.columnDrag=new ColumnDragZone(this,thead);this.columnDrop=new HeaderDropZone(this,thead.dom);}
var tr=thead.dom.insertRow(-1);tr.valign="top";var si=this.store.getSortState();for(var i=0;i<this.columnInfo.length;++i){var ci=this.columnInfo[i];if(this.useTableData&&(ci.column.colType==ColType.FileMime||ci.column.colType==ColType.FileName)){continue;}
var th=document.createElement("th");th.className="x-unselectable cms-view-cell cms-view-th cms-view-td-"+i;th.style.borderRight="1px solid #808759";if(ci.width){th.style.width=ci.width+"px";}
tr.appendChild(th);th.nowrap="nowrap";var lnk=Ext.get(th).createChild({tag:"a",cls:"subTableHeaderLink",style:"cursor: pointer",html:ci.description});var hide=!(si&&si.field==ci.name);lnk.createChild({tag:"img",height:10,width:18,border:"0",alt:si&&si.direction=="ASC"?__tr('Sort ascending'):__tr('Sort descending'),src:"/fp/shared/images/sort"+(si&&si.direction=="ASC"?"Asc":"Desc")+".gif",cls:"cms-sort-dirn"+(hide?" x-hide-visibility":"")});lnk.on("click",function(){var si=this.sortTable.store.getSortState();var dirn="ASC";if(si&&si.field===this.ci.name){dirn=si.direction==="ASC"?"DESC":"ASC";}
var sort=lnk.down(".cms-sort-dirn");if(sort){var d=Ext.getDom(sort);d.alt=dirn=="ASC"?__tr('Sort ascending'):__tr('Sort descending');d.src="/fp/shared/images/sort"+(dirn=="ASC"?"Asc":"Desc")+".gif";sort.removeClass("x-hide-visibility");}
this.sortTable.waitingForLoad=true;this.sortTable.store.sort(this.ci.name,dirn);},{sortTable:this,ci:ci});}
var th=document.createElement("th");th.className="x-unselectable";tr.appendChild(th);th.nowrap="nowrap";this.tbody=this.tab.createChild({tag:"tbody",cls:"cms-view-body"});this.showData();},showData:function(){var values=[];var tb=this.tbody.dom;while(tb.firstChild){tb.removeChild(tb.firstChild);}
var rowIndex=0;this.store.each(function(r){var tr=tb.insertRow(-1);tr.className="cms-view-row cms-view-tr-"+(rowIndex++);var values={};for(var i=0;i<this.columnInfo.length;++i){var ci=this.columnInfo[i];values[ci.name]=r.get(ci.name);}
for(var i=0;i<this.columnInfo.length;++i){var ci=this.columnInfo[i];if(this.useTableData&&(ci.column.colType==ColType.FileMime||ci.column.colType==ColType.FileName)){continue;}
var value;if(!ci.column){value=values[ci.name];if(value instanceof Date){value=NPSL.Locale.formatLongDate(value);}else if(typeof(value)==='object'){value=String(value);}}else{value=Form.renderItem(ci.column,values);}
var frag=document.createDocumentFragment();if(value!==null){if(typeof(value)==="object"){frag.appendChild(value);}else if(typeof(value)!=="undefined"){frag.appendChild(document.createTextNode(value));}}
var edCol=null;for(var j=0;j<this.tables.length;++j){var table=this.tables[j];if(ci.column&&ci.column.colType!=ColType.AppSid){for(var colIdx=0;colIdx<table.pk.columns.length;colIdx++){if(ci.column===table.pk.columns[colIdx]){edCol=ci.column;break;}}}}
if(edCol){for(var j=0;j<this.editors.length;++j){var ed=this.editors[j];if(ed.table.name!==edCol.table.name)
continue;var ok;if(ed.keys){ok=false;ed.keys.each(function(keys,keyTab,keyCol,keyVal){var rowVal=values[keyCol];if(String(rowVal)===String(keyVal)){ok=true;return false;}});}else{ok=true;}
if(ok){var sep="&";var a=document.createElement("a");if(ed.linkOverride){sep="?";a.href=ed.linkOverride;}else{a.href="/fp/cms/form.acds?";if(ed.formId){a.href+="_FORM_ID="+encodeURIComponent(ed.formId);}else{a.href+="_FORM_PATH="+encodeURIComponent(ed.formPath);}}
for(var colIdx=0;colIdx<edCol.table.pk.columns.length;colIdx++){var pkcol=edCol.table.pk.columns[colIdx];a.href+=sep+
encodeURIComponent(edCol.table.name+"."+pkcol.name)+"="+
encodeURIComponent(values[pkcol.name]);sep="&";}
a.href+="&_BACK="+encodeURIComponent(xsrf_de(self.location));a.title=ed.description||__tr('Edit this record');var t;while(t=frag.firstChild){frag.removeChild(t);a.appendChild(t);}
frag.appendChild(a);break;}}}
var td=tr.insertCell(-1);td.className="x-unselectable";td.appendChild(frag);}},this);},onDestroy:function(){Ext.destroy(this.resizeMarker,this.resizeProxy,this.splitZone,this.columnDrag,this.columnDrop);delete this.tbody;delete this.thead;delete this.tab;if(this.store){this.store.un("add",this.onAdd,this);this.store.un("clear",this.onClear,this);this.store.un("load",this.onLoad,this);this.store.un("remove",this.onRemove,this);this.store.un("update",this.onUpdate,this);this.store.un("datachanged",this.onDataChanged,this);}
delete this.store;Form.CmsView.superclass.onDestroy.call(this);},findCell:function(el){if(!el){return false;}
el=Ext.fly(el);return Ext.getDom(el.hasClass('cms-view-cell')?el:el.findParent('cms-view-cell',4));},findHeaderCell:function(el){var cell=this.findCell(el);return cell&&Ext.fly(cell).hasClass('cms-view-th')?cell:null;},findCellIndex:function(el,requiredCls){var cell=this.findCell(el);if(cell&&(!requiredCls||Ext.fly(cell).hasClass(requiredCls))){return this.getCellIndex(cell);}
return false;},getRowIndex:function(el){if(el){var m=el.className.match(this.rowRe);if(m&&m[1]){return parseInt(m[1],10);}}
return false;},getCellIndex:function(el){if(el){var m=el.className.match(this.colRe);if(m&&m[1]){return parseInt(m[1],10);}}
return false;},getHeaderCell:function(index){return Ext.getDom(this.thead).getElementsByTagName('th')[index];},getColumnWidth:function(col){return Ext.fly(this.getHeaderCell(col)).getWidth();},handleHdOver:function(e,t){var hd=this.findHeaderCell(t);if(hd&&!this.headersDisabled){this.activeHd=hd;this.activeHdIndex=this.getCellIndex(hd);var fly=Ext.fly(hd);this.activeHdRegion=fly.getRegion();}},handleHdMove:function(e,t){if(this.activeHd&&!this.headersDisabled){var hw=this.splitHandleWidth||5;var r=this.activeHdRegion;var x=e.getPageX();var ss=this.activeHd.style;if(x-r.left<=hw&&true){ss.cursor=Ext.isAir?'move':Ext.isSafari?'e-resize':'col-resize';}else if(r.right-x<=(!this.activeHdBtn?hw:2)&&true){ss.cursor=Ext.isAir?'move':Ext.isSafari?'w-resize':'col-resize';}else{ss.cursor='';}}},handleHdOut:function(e,t){var hd=this.findHeaderCell(t);if(hd&&(!Ext.isIE||!e.within(hd,true))){this.activeHd=null;Ext.fly(hd).removeClass("x-grid3-hd-over");hd.style.cursor='';}},onColumnSplitterMoved:function(i,w){var h=Ext.fly(this.getHeaderCell(i));h.setWidth(w);this.columnInfo[i].width=w;},moveColumn:function(oldIndex,newIndex){if(oldIndex==newIndex)
return;var t=this.columnInfo.splice(oldIndex,1);this.columnInfo.splice(newIndex,0,t[0]);var adjust=oldIndex>newIndex?0:1;var tab=this.tab.dom;for(var i=0;i<tab.rows.length;++i){var row=tab.rows[i];var c1=row.cells[oldIndex];var c2=newIndex+adjust>=row.cells.length?null:row.cells[newIndex+adjust];row.insertBefore(c1,c2);}
var row=tab.rows[0];for(var i=0;i<row.cells.length;++i){var c=row.cells[i];c.className=c.className.replace(this.colRe,("cms-view-td-"+i));}
var columns=this.viewXml.selectNodes("/select/columns/*");var oldC=columns[oldIndex];var newC=newIndex+adjust>=columns.length?null:columns[newIndex+adjust];var parent=oldC.getParent();parent.removeChild(oldC);parent.insertBefore(oldC,newC);},saveXml:function(p){var n=p.createChild({tag:"cms-view"});if(this.pageSize){n.setAttribute("page-size",this.pageSize);}
var viewXml=this.viewXml.cloneNode(true);if(viewXml.getNodeType()===XML.DOCUMENT_NODE){viewXml=viewXml.getFirstChild();}
n.createChild({tag:"filter",children:[viewXml]});}});Form.reg(Form.CmsView,'cms-view');}());