var slideshow_start = function() {};
var slideshow_stop = function() {};

var slider = {};
slider.last_id = 0;
slider.init = function() {};
slider.stop = function() {};
slider.move = function() {};

var pop_open = function() {return false}
var pop_close = function() {}
var expand = function() {}

$(function() {
	var $body = $("body").eq(0);
	(function slideshow() {
		var interval = 3000;
		var count;
		var current = 1;
		var timer;
		var ele;
		for (count = 0; document.getElementById("slideshow_" + (count + 1)); count++);
		var slideshow_next = function() {
			if (count == 0) {
				return false;
			}
			ele = document.getElementById("slideshow_" + current);
			ele.style.opacity = "0";
			ele.style.zIndex = "0";
			current++;
			if (current > count) {
				current = 1;
			}
			ele = document.getElementById("slideshow_" + current);
			ele.style.opacity = "1";
			ele.style.zIndex = "1";
		}
		slideshow_start = function() {
			if (count == 0) {
				return false;
			}
			timer = window.setInterval(slideshow_next, interval);
		}
		slideshow_stop = function() {
			if (count == 0) {
				return false;
			}
			window.clearInterval(timer);
		}
	})();

	slider.init = function(id, _visible, _itemwidth, is_autoslide) {
		if (typeof is_autoslide != "boolean") {
			is_autoslide = false;
		}
		slider[id] = {};
		slider[id].offset = 0;
		slider[id].current = 1;
		slider[id].repeat_delta = 0;
		slider[id].timer = null;
		slider[id].timeout1 = 300;
		slider[id].timeout2 = 125;
		slider[id].autoexec = "slider.move(" + id + ", 1); slider.stop(" + id + ")";
		slider[id].autotimer = null;
		slider[id].autotimeout = 3000;
		slider[id].visible = _visible;
		slider[id].itemwidth = _itemwidth;
		slider[id].count = $("#slider" + id + "_items > td.slider_item").length;
		if (slider[id].count <= slider[id].visible) {
			return false;
		}
		$("#slider" + id + "_items").append($("#slider" + id + "_items").html());
		$("#slider" + id).addClass("scrolling");
		if (is_autoslide) {
			slider[id].autotimer = window.setInterval(slider[id].autoexec, slider[id].autotimeout);
			$("#slider" + id).parent().mouseover(function() {
				window.clearInterval(slider[id].autotimer);
			}).mouseout(function() {
				slider[id].autotimer = window.setInterval(slider[id].autoexec, slider[id].autotimeout);
			});
		}
	}

	slider.stop = function(id) {
		if (typeof (slider[id]) == "undefined") {
			return false;
		}
		slider[id].repeat_delta = 0;
		window.clearTimeout(slider[id].timer);
		$("#slider" + id).removeClass("fast");
	}

	slider.move = function(id, delta) {
		if (typeof (id) == "undefined") {
			id = slider.last_id;
		}
		if (typeof (slider[id]) == "undefined" || slider[id].count <= slider[id].visible) {
			return false;
		}
		if (slider[id].repeat_delta != 0) {
			delta = slider[id].repeat_delta;
			$("#slider" + id).addClass("fast");
		}
		var flip = false;
		if (slider[id].offset + delta > slider[id].count) {
			flip = true;
			slider[id].offset -= slider[id].count;
		}
		if (slider[id].offset + delta < 0) {
			flip = true;
			slider[id].offset += slider[id].count;
		}
		if (flip) {
			$("#slider" + id).removeClass("scrolling");
			$("#slider" + id).css("left", -slider[id].itemwidth * slider[id].offset);
			slider[id].offset += delta;
			window.setTimeout(function() {
				$("#slider" + id).addClass("scrolling").css("left", -slider[id].itemwidth * slider[id].offset);
			}, 0);
		} else {
			slider[id].offset += delta;
			$("#slider" + id).css("left", -slider[id].itemwidth * slider[id].offset);
		}
		if (slider[id].repeat_delta == 0) {
			slider[id].repeat_delta = delta;
			slider.last_id = id;
			slider[id].timer = window.setTimeout("slider.move()", slider[id].timeout1);
		} else {
			slider[id].timer = window.setTimeout("slider.move()", slider[id].timeout2);
		}
	}

	pop_open = function(event, src) {
		if (event.ctrlKey || event.altKey || event.shiftKey) {
			return true;
		}
		$body.keydown(function(event) {
			if (event.keyCode == 27) {
				pop_close();
				return false;
			}
		});
		$("#pop_img").prop("src", src);
		$("#pop").show();
		return false;
	}

	pop_close = function() {
		$body.unbind("keydown");
		$("#pop").hide();
	}

	expand = function(id) {
		$("#collapsed" + id).hide();
		$("#expanded" + id).show();
		var $animated = $("#expanded_animated" + id);
		var height = $animated.height();
		$animated.css("height", 0);
		window.setTimeout(function() {
			$animated.css("height", height);
		}, 0);
	}

});

