dojo.require("esri.map");
dojo.require("dojo.parser"); 
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.dijit");
dojo.require("dijit.form.CheckBox");
dojo.require("dijit.form.FilteringSelect");
dojo.addOnLoad(init);

// Error handling
window.onerror = errorHandler;
var error_invalid_arguments = 1;
var error_empty_result      = 2;

function errorHandler(msg,source,code) {
	alert(msg+" "+source+" "+code);
}

function init() {
	// splash screen to avoid ugly loading in IE
	setTimeout(function hideLoader(){
		var loader = dojo.byId('loader'); 
		dojo.fadeOut({ node: loader, duration:500,
			onEnd: function(){ 
				loader.style.display = "none"; 
			}
		}).play();
	}, 250);
	
	fylkeComboBox.store   = fylkeStore;
	kommuneComboBox.store = kommuneStore;
	
	sessvars.hovedkategori = null;
	sessvars.underkategori = null;
	sessvars.vernetype     = null;
	sessvars.datering      = null;
	sessvars.tilrettelagt  = null;
	sessvars.gnr           = null;
	sessvars.bnr           = null;
	sessvars.extent_xmin   = null;
	sessvars.extent_ymin   = null;
	sessvars.extent_xmax   = null;
	sessvars.extent_ymax   = null;
	
	var sessValue = sessvars.fylke;
	if (sessValue && sessValue != null) {
		fylkeComboBox.setValue(sessValue);
		fylkeCheckBox.setValue(true);
		fylkeCheckBox.setDisabled(false);
		kommuneComboBox.query = {fylke:sessValue};
		kommuneComboBox.setDisabled(false);
	}
	sessValue = sessvars.kommune;
	if (sessValue && sessValue != null) {
		kommuneComboBox.setValue(sessValue);
		kommuneCheckBox.setValue(true);
		kommuneCheckBox.setDisabled(false);
	}
	sessValue = sessvars.fritekst;
	if (sessValue && sessValue != null) {
		fritekstInput.setValue(sessValue);
	}

	dojo.connect(fylkeComboBox, "onMouseDown", function(value) {
		fylkeComboBox.setDisplayedValue("");
	}); 
	dojo.connect(kommuneComboBox, "onMouseDown", function(value) {
		kommuneComboBox.setDisplayedValue("");
	});  
	dojo.connect(fylkeComboBox, "onChange", function(value) {
		if (value.length == 0) {
			fylkeComboBox.domNode.style.fontStyle = "italic";
			fylkeCheckBox.setValue(false);
			fylkeCheckBox.setDisabled(true);
			sessvars.fylke = null;
		} else {
			fylkeComboBox.domNode.style.fontStyle = "normal";
			fylkeCheckBox.setValue(true);
			fylkeCheckBox.setDisabled(false);
			sessvars.fylke = value;
		}
		kommuneComboBox.query = {fylke:value};
		kommuneComboBox.setDisplayedValue("Kommune");
		kommuneComboBox.setDisabled(false);
	}); 
	dojo.connect(fylkeCheckBox, "onChange", function(newValue) {
		if (!newValue) fylkeComboBox.setDisplayedValue("Fylke:");
	}); 
	dojo.connect(kommuneComboBox, "onChange", function(value) {
		if (value.length == 0) {
			kommuneComboBox.domNode.style.fontStyle = "italic";
			kommuneCheckBox.setValue(false);
			kommuneCheckBox.setDisabled(true);
			sessvars.kommune = null;
		} else {
			kommuneComboBox.domNode.style.fontStyle = "normal";
			kommuneCheckBox.setValue(true);
			kommuneCheckBox.setDisabled(false);
			sessvars.kommune = value;
		}
	});
	dojo.connect(kommuneCheckBox, "onChange", function(newValue) {
		if (!newValue) kommuneComboBox.setDisplayedValue("Kommune");
	});
	dojo.connect(fritekstInput, "onChange", function(value) {
		if (value == null || value.length == 0) {
			sessvars.fritekst = null;
		} else {
			sessvars.fritekst = value;
		}
	});
	dojo.connect(searchButton, "onClick", function(evt) {
		sessvars.hasQuery = true;
		window.location.href = searchPage;
	}); 

}
