Ext.ns("org.piercecountywa.salaryclassification.view");
Ext.Ajax.timeout = 60000;
org.piercecountywa.salaryclassification.view.Viewport = Ext.extend(Ext.Viewport, {	
	layout:'border',
	initComponent:function(){
		Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
		this.salarySearchModel = new org.piercecountywa.salaryclassification.model.SalarySearchModel();
		this.salarySearchModel.getStore().on('load',this.handleStoreLoad,this);
		var config = {
			model:this.salarySearchModel,
			externalUser:this.initialConfig.externalUser,
			stateFull: true
	};
	this.form = new org.piercecountywa.salaryclassification.view.SalarySearchForm(config);
	this.grid = new org.piercecountywa.salaryclassification.view.SalarySearchGrid(config);
	this.form.on('reset',function(){
		this.grid.clearGrid();
	},this);
	this.form.on('search',this.formSearch,this);
	this.form.on('print',function(formValues){
		if (!this.printwin) {
			this.printwin = new org.piercecountywa.salaryclassification.view.PrintSelectWindow({
				formValues: formValues
			})
		};	
		this.printwin.show();
	},this);
	this.items = [
					{
						region:'north',
						height:152,
						items:[
							this.form
						]
					},
					{
						region:'center',
						layout:'fit',
						items:[
							this.grid
						]							
					}
	]
	org.piercecountywa.salaryclassification.view.Viewport.superclass.initComponent.call(this);
    },
    formSearch:function(formValues){ 	
		//set the value to the store
		this.salarySearchModel.setJobTitle(formValues.job_title_search);
		this.salarySearchModel.setJobClass(formValues.job_class_search);
		this.salarySearchModel.setBargUnit(formValues.barg_unit_search);
		this.salarySearchModel.setAnywhereTitle(formValues.full_title_search);
  	    this.salarySearchModel.setExternalUser(formValues.external_user);      
        if(this.printwin){
			this.printwin.setFormValues(formValues);
		}
		this.salarySearchModel.setAnywhereTitle(formValues.full_title_search);
		this.salarySearchModel.clear();
		this.salarySearchModel.load();
		window.status = 'No records have been returned';
    },
	handleStoreLoad:function(thisStore,records,options){
		window.status = 'Total records returned is ' + thisStore.totalLength;		
	}
});
