Ext.ux.LocationCombo=Ext.extend(Ext.form.ComboBox,{tpl:new Ext.XTemplate('<tpl for="."><div class="search-item">',"<span>{displayTerm}</span>","</div></tpl>"),store:new Ext.data.Store({proxy:new Ext.data.JsonRpcProxy(IcmRpcClient().locationLookup.checkLocation),reader:new Ext.data.JsonReader({},[{name:"displayTerm"},{name:"valueTerm"}])}),typeAhead:false,forceSelection:false,hideTrigger:true,cls:"location-combo",triggerClass:"location-trigger",loadingText:"Searching...",itemSelector:"div.search-item",displayField:"displayTerm",valueField:"valueTerm",minChars:3,queryDelay:100,enableKeyEvents:true,listeners:{blur:function(){if(this.getRawValue()==null||this.getRawValue()==""){this.setValue("")
}else{if(this.getRawValue().toUpperCase().search(/^[A-PR-UWYZ](([0-9][A-HJKS-UW0-9]?)|([A-HK-Y][0-9][ABEHMNPRVWXY0-9]?))$/)>-1){this.setValue(this.getRawValue())
}else{if(this.getRawValue().length>0){this.setValue(this.getRawValue())
}}}},keypress:function(){this.setValue(this.getRawValue())
}}});
Ext.ux.PostcodeCombo=Ext.extend(Ext.form.ComboBox,{tpl:new Ext.XTemplate('<tpl for="."><div class="search-item">',"<span>{unit}</span>","</div></tpl>"),store:new Ext.data.Store({proxy:new Ext.data.JsonRpcProxy(IcmRpcClient().locationLookup.checkPostCode),reader:new Ext.data.JsonReader({},[{name:"unit"}])}),typeAhead:true,forceSelection:true,hideTrigger:true,loadingText:"Searching...",itemSelector:"div.search-item",displayField:"unit",valueField:"unit",minChars:3,queryDelay:100,listeners:{blur:function(){if(this.getRawValue()==null||this.getRawValue()==""){this.setValue("")
}}}});
Ext.form.TriggerField.override({afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);
var a;
if(Ext.isIE&&!this.hideTrigger&&this.el.getY()!=(a=this.trigger.getY())){this.el.position();
this.el.setY(a)
}}});
Ext.reg("locationcombo",Ext.ux.LocationCombo);
Ext.reg("postcodecombo",Ext.ux.PostcodeCombo);