//Get current cookie for this user preference
function getUserPreference(itemName) {
	//Use uppercase for cookie names to avoid any problems with case
	var cookieName = itemName.toUpperCase();
	//Retrieve the current value of the user's cookie
	var currentBodyClass = getCookie(cookieName);
	
	//Get object
	var items = document.getElementsByName(itemName);
	
	//Set current selected item to the user's preference
	if (items) {
		var item = items[0];
		var typeName = (items.length) ? item.type : items.type;
		
		switch (typeName) {
			case 'select-one':
			case 'select-multiple':
				item.value = currentBodyClass;
				//If the value was not in the list then use the first item
				if (item.selectedIndex == -1) {
					item.selectedIndex = 0;
					currentBodyClass = item.value;
				}
				break;
			
			case 'textarea':
				item.value = currentBodyClass;
				break;

			case 'text':
				item.value = currentBodyClass;
				break;

			case 'checkbox':
			case 'radio':
				var found = false;
				if (items.length) {
					for (var i = 0; i < items.length; i++) {
						if (items[i].value == currentBodyClass) {
							items[i].checked = true;
						}
					}
				} 
				else {
					if (item.value == currentBodyClass) {
						item.checked = true;
					}
				}
				break;
		}
	}

	//Set body class, but don't save in a cookie
	changeBodyClass(currentBodyClass);
}

//Event handler for list
function onChangeClass(item) {
	if (item) {
		var cookieName = item.name.toUpperCase();
		var bodyClass = item.value;
		changeBodyClass(bodyClass, cookieName);
	}
}

//Change the class of the body tag
//Will also save to a cookie if a cookie name is supplied
//Assumes: body will only ever have one class name that can be overwritten
function changeBodyClass(bodyClass, cookieName) {
	if (cookieName) {
		setCookie(cookieName, bodyClass, 365);
	}
	document.body.className = bodyClass;
}
