/**
 * @author phillipa
 */

declarePackage("picknpay");
declarePackage("picknpay.modlets");
picknpay.modlets.StoreLocator = function() {
	var self;	
	
	function constructorFn(){
		self = this;
	}	
	
	constructorFn.prototype.displayProvince = function(province, show) {
		if (show) {
			$(province).style.display = "block";
		} else {
			$(province).style.display = "none";
		}			
	}
	
	constructorFn.prototype.afterOpen = function() {		
		$('initial_display_layer').style.display = "none";
		$('functional_layer').style.display = "block";
	}
	
	constructorFn.prototype.beforeClose = function() {		
		$('initial_display_layer').style.display = "block";
		$('functional_layer').style.display = "none";
	}
	
	constructorFn.prototype.selectProvince = function(province) {
		if ($("select_store_region_" + province).selected) {
			// deselect province
			$("selected_province").src = $('transparent_gif').src;
			$("select_store_region_" + province).selected = false;
		} else {
			// select province
			$("selected_province").src = $(province).src.replace(".gif", "_selected.gif");
			$("select_store_region_" + province).selected = true;
		}
	}
	
	constructorFn.prototype.selectItem = function(categoryId) {		
		var selected = $("select_" + categoryId).selected;
		
		if (selected) {
			$("select_" + categoryId).selected = false;
			$(categoryId).src = $(categoryId).src.replace("_active", "_inactive");						
			
		} else {
			$("select_" + categoryId).selected = true;
			$(categoryId).src = $(categoryId).src.replace("_inactive", "_active");						
		}
		
	}
	
	constructorFn.prototype.submitConcertinaSearch = function(theForm) {		
		if ((theForm.cat_ids.selectedIndex > 0) || 
			(theForm.store_keyword.value != null && theForm.store_keyword.value.length > 0)) {
			theForm.submit();
		} else {
			alert("Please ensure you've either selected a region on the map or entered a keyword");
			return;
		}		
	}
	
	constructorFn.prototype.submitMainSearch = function(theForm) {		
		if ((theForm.cat_ids[0].selectedIndex > 0) || 
			(theForm.store_keyword.value != null && theForm.store_keyword.value.length > 0) || 
			(theForm.cat_ids[1].selectedIndex > -1)) {
			theForm.submit();
		} else {
			alert("Please ensure you've either selected a region on the map, entered a keyword or choosen a category");
			return;
		}		
	}
	
	constructorFn.prototype.init = function(selectedCategories) {
		// TODO
		if (selectedCategories.length > 0) {
			for (var i=0; i< selectedCategories.length; i++) {
				if ($(selectedCategories[i])) {
					// store_region selected
					self.selectProvince(selectedCategories[i]);
				} else if ($("store_option_" + selectedCategories[i])) {
					// store option selected
					self.selectItem("store_option_" + selectedCategories[i]);
				}
			}
		}
	}
	
	return new constructorFn();	
}

picknpay.modlets.storeLocator = new picknpay.modlets.StoreLocator();