/*global YAHOO,setTimeout,clearTimeout */
YAHOO.namespace("aos.search");

YAHOO.aos.search.Utils = function() {
};

YAHOO.aos.search.Utils.prototype = {

	updateSectionFilters: function(section) {
		var that = this, preloadTimer, handleSuccess, handleFailure, callback, preloadFunc;
		handleSuccess = function(obj) {
			var tempOl, ol, i, existingItems, newItems, Dom = YAHOO.util.Dom;
			clearTimeout(preloadTimer);
			if (obj.responseText !== undefined) {
				tempOl = document.createElement("ol");
				tempOl.innerHTML = obj.responseText;
				newItems = Dom.getChildren(tempOl);
				ol = Dom.get("AOS_sectionFilterDropDowns");
				existingItems = Dom.getChildren(ol);
				for (i = 2; i < existingItems.length; i=i+1) {
					ol.removeChild(existingItems[i]);
				}
				for (i = 0; i < newItems.length; i=i+1) {
					ol.appendChild(newItems[i]);
				}
				that.showFilterButtons();
			}
		};
		handleFailure = function(obj) {
		};
		callback = {
			success: handleSuccess,
			failure: handleFailure,
			timeout: 10000
		};
		preloadFunc = function() {
			that.showPreloader();
		};
		preloadTimer = setTimeout(preloadFunc, 1000);
		YAHOO.util.Connect.asyncRequest("GET", "/template/search/sectionFilters.jsp?s=" + section, callback);
	},
	showPreloader: function() {
		YAHOO.util.Dom.setStyle('AOS_FilterPreloadBox', "display", "block");
	},
	hidePreloader: function() {
		YAHOO.util.Dom.setStyle('AOS_FilterPreloadBox', "display", "none");
	},
	showFilterButtons: function() {
		var Dom = YAHOO.util.Dom, buttonDiv = Dom.get('AOS_FilterButtonContainer'),
			sectionSelect = Dom.get('AOS_sectionSelect'), areaSelect = Dom.get('AOS_select_c0');
		if (sectionSelect.value || areaSelect.value) {
			Dom.setStyle(buttonDiv, "display", "block");
		}
		this.hidePreloader();
	},
	updateInspirationSectionFilters: function(section) {
		var that = this, preloadTimer, handleSuccess, handleFailure, callback, preloadFunc;
		handleSuccess = function(obj) {
			clearTimeout(preloadTimer);
			if (obj.responseText !== undefined) {
				YAHOO.util.Dom.get('AOS_inspirationFilterContainer').innerHTML = obj.responseText;
				that.adjustInspirationSearchButton();
			}
		};
		handleFailure = function(obj) {
		};
		callback = {
			success: handleSuccess,
			failure: handleFailure,
			timeout: 10000
		};
		preloadFunc = function() {
			that.showInspirationPreloader();
			that.hideInspirationSearchButton();
			YAHOO.util.Dom.get('AOS_InspirationCategoryFilterContainer').innerHTML = "";
		};
		preloadTimer = setTimeout(preloadFunc, 1000);
		YAHOO.util.Connect.asyncRequest("GET", "/template/search/inspirationFilters.jsp?s=" + section, callback);
	},
	setInspirationSearchMode: function() {
		YAHOO.util.Cookie.set("inspirationSearchMode", "true");
		var Dom = YAHOO.util.Dom;
		Dom.addClass('AOS_SearchBox', 'AOS_BeInspired');
		Dom.setStyle('AOS_SearchInspireInfo', 'display', 'none');
		var textElement = Dom.get('AOS_SearchInput');
		textElement.disabled = true;
		Dom.setStyle('AOS_SearchSubmit', 'display', 'none');
		Dom.setStyle('AOS_SearchSubmitDisabled', 'display', 'block');
		Dom.setStyle('AOS_SearchInspireBox', 'display', 'block');
	},
	showInspirationSearchButton: function() {
		YAHOO.util.Dom.setStyle('AOS_InspireSearchButton', "display", "block");
	},
	hideInspirationSearchButton: function() {
		YAHOO.util.Dom.setStyle('AOS_InspireSearchButton', "display", "none");
	},
	adjustInspirationSearchButton: function() {
		var sectionSelect = YAHOO.util.Dom.get('AOS_InspirationSectionSelect');
		if (sectionSelect.value) {
			this.showInspirationSearchButton();
		} else {
			this.hideInspirationSearchButton();
		}
		this.hideInspirationPreloader();
	},
	showInspirationPreloader: function() {
		YAHOO.util.Dom.setStyle('AOS_InspirePreloader', "display", "block");
	},
	hideInspirationPreloader: function() {
		YAHOO.util.Dom.setStyle('AOS_InspirePreloader', "display", "none");
	},
	setTextSearchMode: function() {
		YAHOO.util.Cookie.remove("inspirationSearchMode");
		var Dom = YAHOO.util.Dom;
		Dom.removeClass('AOS_SearchBox', 'AOS_BeInspired');
		Dom.setStyle('AOS_SearchInspireInfo', 'display', 'block');
		var textElement = Dom.get('AOS_SearchInput');
		textElement.disabled = false;
		Dom.setStyle('AOS_SearchSubmit', 'display', 'block');
		Dom.setStyle('AOS_SearchSubmitDisabled', 'display', 'none');
		Dom.setStyle('AOS_SearchInspireBox', 'display', 'none');
	}
};

YAHOO.aos.search.utils = new YAHOO.aos.search.Utils();

