// Sidebar Initialize

$(document).ready(function() {
	
	$("a#categorySwitch").click(function() {
		$("div#categoriesTab").show("slow");
		$("div#categoryList").show("slow");
		$("div#manufacturersTab").hide("slow");
		$("div#manufacturerList").hide("slow");
	});
	$("a#manufacturerSwitch").click(function() {
		$("div#categoriesTab").hide("slow");
		$("div#categoryList").hide("slow");
		$("div#manufacturersTab").show("slow");
		$("div#manufacturerList").show("slow");
	});
	
});

// Generic Functions

function showBlockElement(elementId) {
	$("#" + elementId).css("display", "block");
}

function hideElement(elementId) {
	$("#" + elementId).css("display", "none");
}

function toggleBlockElement(elementId) {
	$("#" + elementId).css("display", $("#" + elementId).css("display") == "block" ? "none" : "block")
}

function slideElement(elementId) {
	if ($("#" + elementId).css("display") == "none") {
		$("#" + elementId).slideDown();
	} else {
		$("#" + elementId).slideUp();
	}
}

function toggleClass(elementId, className) {
	
	var element = $("#" + elementId);
	
	if (element.hasClass(className)) {
		element.removeClass(className);
	} else {
		element.addClass(className);
	}
}

function setSelectedItem(selectedItemId, tabGroup) { 

	for (var i = 0; i < tabGroup.length; i++) {
		$("#" + tabGroup[i]).removeClass("selected");
	}
	
	$("#" + selectedItemId).addClass("selected");
	
}

function setContent(selectedContentId, contentGroup) {
	
	for (var i = 0; i < contentGroup.length; i++) {
		$("#" + contentGroup[i]).css("display", "none");
	}
	
	$("#" + selectedContentId).css("display", "block");
	
}

function fadeContent(parentContentContainerId, selectedContentId, contentGroup, fadeLength) {
	$("#" + parentContentContainerId).fadeOut(fadeLength, function() {
		setContent(selectedContentId, contentGroup);
	});
	$("#" + parentContentContainerId).fadeIn(fadeLength);
}

function submitForm(formId) {
	document.getElementById(formId).submit();
}

function submitFormBySelect(formId, selectId) {
	if (document.getElementById(selectId).selectedIndex != 0) {
		document.getElementById(formId).submit();
	}
}

function clearDefaultValue(inputId, defaultValue) {

	var input = $("#" + inputId);
	
	if (input.val() == defaultValue) {
		input.val("");
		input.css({ color: "#000" });
	}
	
}

function resetDefaultValue(inputId, defaultValue) {

	var input = $("#" + inputId);
	
	if (input.val() == "") {
		input.css({ color: "#999" });
		input.val(defaultValue);
	}
	
}

function changeBackgroundImage(elementId, imageUrl) {
	$("#" + elementId).css("backgroundImage", imageUrl);
}

function cycleImages(imageCollection, selectedImageIndex) {
	for (var i = 0; i < imageCollection.length; i++) {
		$("#" + imageCollection[i]).css("display", "none");
	}
	$("#" + imageCollection[selectedImageIndex]).css("display", "block");
}

function incrementImageIndex(currentValue, maxValue) {
	if (currentValue >= maxValue) {
		currentValue = 0;
	} else {
		currentValue++;
	}
	return currentValue;
}

function updateCharacterCount(textElementId, updateElementId, limit) {
	
	var textElement = $("#" + textElementId);
	var updateElement = $("#" + updateElementId);
	
	var textLength = textElement.val().length;
	
	if (textLength > limit) {
		updateElement.css("color", "#F00");
	} else {
		updateElement.css("color", "#000");
	}
	
	updateElement.text(textLength);
	
}

// Specific Functions

function toggleBrowseLevel2CategoryList(elementIdPrefix) {
	
	var listElement = $("#" + elementIdPrefix + "-Level2CategoryList");
	var linkElement = $("#" + elementIdPrefix + "-ToggleLink");
	
	if (listElement.css("display") == "none") {
		linkElement.addClass("open");
		listElement.slideDown("fast", function() {
			linkElement.addClass("open");
		});
	} else {
		linkElement.removeClass("open");
		listElement.slideUp("fast", function() {
			linkElement.removeClass("open");
		});
	}
	
}