ug.FilterField=function(A){ug.FilterField.superclass.constructor.call(this,A);
this.addEvents("change","action")
};
Ext.extend(ug.FilterField,Ext.BoxComponent,{xhidden:false,value:"",onRender:function(B,A){if(!this.el){this.el=document.createElement("div");
this.el.id=this.getId();
this.el.className="filterField"
}ug.FilterField.superclass.onRender.call(this,B,A);
this.inner=this.el.insertHtml("beforeEnd","<div><input type='text' autocomplete='off'/></div>",true);
this.input=Ext.get(this.inner.dom.firstChild);
this.input.dom.setAttribute("tabIndex",1);
this.setHidden(this.xhidden);
if(this.value){this.setValue(this.value)
}else{this.applyInitialText()
}},setHidden:function(A){this.xhidden=A;
if(this.el){this.el.setStyle("visibility",A?"hidden":"visible")
}},setValue:function(A){this.value=A;
if(this.input){this.input.dom.value=A
}},getValue:function(){return !this.input.hasClass("initialText")?this.input.dom.value:null
},afterRender:function(){ug.FilterField.superclass.afterRender.apply(this,arguments);
this.initEvents()
},reset:function(B,A){this.setHidden(B);
this.setDisabled(A);
if(this.input&&this.initialText){this.setValue(this.initialText);
this.input.addClass("initialText")
}},applyInitialText:function(){if(this.initialText){this.setValue(this.initialText);
this.input.addClass("initialText")
}},onDisable:function(){ug.FilterField.superclass.onDisable.apply(this,arguments);
if(this.input){this.input.dom.disabled=true
}},onEnable:function(){ug.FilterField.superclass.onEnable.apply(this,arguments);
if(this.input){this.input.dom.disabled=false
}},initEvents:function(){this.input.on({keydown:this.onKey,keyup:this.onKey,keypress:this.onKey,focus:this.onFocus,blur:this.onBlur,scope:this})
},onKey:function(C){var B=(C.getKey()==C.ENTER)&&(C.type=="keypress");
if(B){C.stopEvent()
}var A=this.value;
this.value=this.input.getValue();
if(this.value!=A){this.fireEvent("change",this.value,A)
}if(B){this.fireEvent("action",this.value)
}},onFocus:function(A){if(this.input.hasClass("initialText")){this.setValue("");
this.input.removeClass("initialText")
}},onBlur:function(A){if(this.getValue()==""){this.applyInitialText()
}}});
ug.MillerColumn=function(A){ug.MillerColumn.superclass.constructor.call(this,Ext.apply({},A,{layout:"border",border:false}));
this.addEvents("next","previous","select","action");
if(this.filtered){this.addEvents("beforefilterchange","filterchange")
}};
Ext.extend(ug.MillerColumn,Ext.Panel,{initComponent:function(){ug.MillerColumn.superclass.initComponent.apply(this,arguments);
if(this.filtered){this.filterField=new ug.FilterField({region:"north",initialText:this.initialFilterText||"Search within column..."});
this.add(this.filterField);
this.resetFilter({hidden:this.filterHidden,disabled:this.filterDisabled})
}var A=this.panelClass||ug.VirtualPanel;
this.virtualPanel=new A({storage:this.storage,sm:this.sm,renderer:this.renderer,loadOnRender:this.loadOnRender,region:"center"});
this.add(this.virtualPanel)
},initEvents:function(){ug.MillerColumn.superclass.initEvents.apply(this,arguments);
if(this.filtered){this.filterField.on({change:{fn:this.onFilterChange,buffer:500,scope:this},action:this.onFilterChange,scope:this})
}this.relayEvents(this.virtualPanel,["next","previous","select","action"])
},resetFilter:function(A){this.filterHidden=A.hidden;
this.filterDisabled=A.disabled;
if(this.filterField){this.filterValue="";
this.filterField.reset(A.hidden,A.disabled)
}},onDisable:function(){this.virtualPanel.disable();
if(this.filterField){this.filterField.disable()
}},onEnable:function(){this.virtualPanel.enable();
if(this.filterField&&!this.filterDisabled){this.filterField.enable()
}},onFilterChange:function(A){if(A!=this.filterValue){this.filterValue=A;
this.fireEvent("beforefilterchange",A);
this.storage.filterData(A);
this.virtualPanel.preload();
this.fireEvent("filterchange",A)
}},focus:function(){this.virtualPanel.focus()
},reset:function(A){this.setDisabled(A.disabled);
this.resetFilter({hidden:A.filterHidden,disabled:A.filterDisabled});
this.sm.singleSelect=A.singleSelect;
this.storage.reset();
if(A.source){this.storage.source.init(A.source)
}this.storage.emptyText=A.emptyText;
this.virtualPanel.preload();
this.leaf=A.leaf
}});

