WS.Slider = Class.create({
	setup: function(areaID) {
		var listElements = $(areaID).firstDescendant().firstDescendant().childElements();
		var displayedListElements = new Array();

		for (var counter = 0; counter < listElements.length; counter++) {
			if (listElements[counter].style.display == "none" ||
				listElements[counter].hasClassName("collapsing")) {
				continue;
			}

			displayedListElements.push(listElements[counter]);
		}

		if (displayedListElements.length < 4 && $(areaID).select("a.rotate_left").first() && $(areaID).select("a.rotate_right").first()) {
			$(areaID).select("a.rotate_left").first().style.display = "none";
			$(areaID).select("a.rotate_right").first().style.display = "block";
		}

		if (displayedListElements.first() == listElements.first() && $(areaID).select("a.rotate_right").first() && $(areaID).select("a.rotate_left").first()) {
			$(areaID).select("a.rotate_right").first().style.display = "none";
			$(areaID).select("a.rotate_left").first().style.display = "block";
		}
	},
	rotateRight: function(areaID) {
		var listElements = $(areaID).firstDescendant().firstDescendant().childElements();
		var listElementToTransform = null;

		if (listElements.length < 4) {
			return;
		}

		for (var counter = (listElements.length - 4); counter >= 0; counter--) {
			if ((listElements[counter].style.display == "none" || listElements[counter].hasClassName("collapsing")) && !listElements[counter].hasClassName("expanding")) {
				listElementToTransform = listElements[counter];
				listElementToTransform.addClassName("expanding");
				break;
			}
		}

		if (listElementToTransform != null) {
			new Effect.SlideRight(listElementToTransform, {
				duration: 1,
				scaleMode: {originalHeight: 100, originalWidth: 306},
				queue: {
					position: "end",
					scope: areaID
				},
				afterFinish: function(obj) {
					obj.element.removeClassName("expanding");
					new WS.Slider().setup(areaID);
				}
			});
		}
	},
	rotateLeft: function(areaID) {
		var listElements = $(areaID).firstDescendant().firstDescendant().childElements();
		var listElementToTransform = null;

		if (listElements.length < 4) {
			return;
		}

		for (var counter = 0; counter < (listElements.length - 3); counter++) {
			if (listElements[counter].style.display != "none" && !listElements[counter].hasClassName("collapsing")) {
				listElementToTransform = listElements[counter];
				listElementToTransform.addClassName("collapsing");
				break;
			}
		}

		if (listElementToTransform != null) {
			new Effect.SlideLeft(listElementToTransform, {
				duration: 1,
				scaleMode: {originalHeight: 100, originalWidth: 306},
				queue: {
					position: "end",
					scope: areaID
				},
				afterFinish: function(obj) {
					obj.element.removeClassName("collapsing");
					new WS.Slider().setup(areaID);
				}
			});
		}
	}
});