var fbValue = '';
var pValue = '';

var dojo_cbFBSelect, dijit_cbFBSelect, dojo_cbPSelect, dijit_cbPSelect, dijitSearchDistance;

var defaultFB = 'Produkt, Firma, Branche';
var defaultP = 'Ort, Landkreis, Bezirk';

if (typeof searchFB == "undefined") searchFB = defaultFB;
if (typeof searchP == "undefined") searchP = defaultP;

dojo.addOnLoad(function() {
	dojo.require("dijit.form.ComboBox");
	dojo.require("dojo.data.ItemFileReadStore");
	dojo.require("dijit.form.Button");
	
	if (typeof searchDistance != "undefined") {
		for (i = 0; i < dojo.byId('search_distance').length; i++) {
			if (dojo.byId('search_distance').options[i].value == searchDistance) {
				dojo.byId('search_distance').selectedIndex = i;
			}
		}
	}
	
    var cbFbSelect = new dijit.form.ComboBox({id: "fbSelect", name: "fbSelect", autoComplete: false, queryExpr: "*${0}*", value: searchFB, searchAttr: "name", labelAttr: "label", labelType: "html"}, "fbSelect");
	dojo.connect(cbFbSelect, 'onKeyUp', 'reload_fbSelect');
	dojo.connect(cbFbSelect, 'onChange', 'select_fbSelect');
	
	dojo_cbFBSelect = dojo.byId('fbSelect');
	dijit_cbFBSelect = dijit.byId('fbSelect');
	
	var cbPSelect = new dijit.form.ComboBox({id: "pSelect", name: "pSelect", autoComplete: false, queryExpr: "*${0}*", value: searchP, searchAttr: "name", labelAttr: "label", labelType: "html"}, "pSelect");
	dojo.connect(cbPSelect, 'onKeyUp', 'reload_pSelect');
	dojo.connect(cbPSelect, 'onChange', 'submit_search');
		
	dojo_cbPSelect = dojo.byId('pSelect');
	dijit_cbPSelect = dijit.byId('pSelect');
	
	dojo.connect(cbFbSelect, 'onBlur', function(e) {
		if (dojo_cbFBSelect.value.length == 0) {
			dojo_cbFBSelect.value = defaultFB;
		}
	});
	
	dojo.connect(cbFbSelect, 'onFocus', function(e) {
		if (dojo_cbFBSelect.value == defaultFB) {
			dojo_cbFBSelect.value = '';
		}
	});
	
	dojo.connect(cbPSelect, 'onBlur', function(e) {
		if (dojo_cbPSelect.value.length == 0) {
			dojo_cbPSelect.value = defaultP;
		}
	});
	
	dojo.connect(cbPSelect, 'onFocus', function(e) {
		if (dojo_cbPSelect.value == defaultP) {
			dojo_cbPSelect.value = '';
		}
	});
	
	dojo.connect(dojo.byId('searchbutton'), 'onclick', function(e) {
		submit_search();
	});
});

function select_fbSelect(e) {
		dijit_cbFBSelect.store.fetch({query: {name: dojo_cbFBSelect.value}, onItem: checkIfFirm});
}
function select_pSelect(e) {
	dijit_cbPSelect.store.fetch({query: {name: dojo_cbPSelect.value}, onItem: checkIfFirm});
}

function checkIfFirm(e) {
	if (e['f_id'] != -1) {
		window.location.href = config.baseurl + 'firms/list/id/' + e['f_id'];
	}
}

function reload_fbSelect(e) {
	if (e.keyCode == dojo.keys.ENTER) {
		submit_search();
	}

	if (fbValue.length > 0 && dojo_cbFBSelect.value.substring(0, fbValue.length) == fbValue) {
		//do nothing
		fbValue = dojo_cbFBSelect.value;
		var fetch_url = config.baseurl + "content/ajaxcall/type/search/fb/" + dojo_cbFBSelect.value;
		dijit_cbFBSelect.store = new dojo.data.ItemFileReadStore({url: fetch_url});
	} else if (dojo_cbFBSelect.value.length <= 2) {
		dijit_cbFBSelect.store = new dojo.data.ItemFileReadStore({url: config.baseurl + "files/content/empty.js"});
		fbValue = '';
	} else {
		fbValue = dojo_cbFBSelect.value;
		var fetch_url = config.baseurl + "content/ajaxcall/type/search/fb/" + dojo_cbFBSelect.value;
		dijit_cbFBSelect.store = new dojo.data.ItemFileReadStore({url: fetch_url});
	}
}

function reload_pSelect(e) {
	if (e.keyCode == dojo.keys.ENTER) {
		submit_search();
	}
	
	if (pValue.length > 0 && dojo_cbPSelect.value.substring(0, pValue.length) == pValue) {
		//do nothing
	} else if (dojo_cbPSelect.value.length < 2) {
		dijit_cbPSelect.store = new dojo.data.ItemFileReadStore({url: config.baseurl + "files/content/empty.js"});
		pValue = '';
	} else {
		pValue = dojo_cbPSelect.value;
		var fetch_url = config.baseurl + "content/ajaxcall/type/search/p/" + dojo_cbPSelect.value;
		dijit_cbPSelect.store = new dojo.data.ItemFileReadStore({url: fetch_url});
	}
}

function submit_search() {
	dojo.byId("searchForm").submit();
}