var cp = 1; // current page
var op = null; // old page

$(function() {
	$(".multipage").hide();
	$(".multipage").filter(":first").show();
	$(".item").hide();
	$(".item").filter(":first").show();

	disable('page_prev');
    disable('page_pipe', false);
	if ($(".multipage").length < 2){
		disable('page_pipe');
		disable('page_next');
	}
	else
		enable('page_next');

	if ($(".item").length < 2){
		disable('item_pipe');
		disable('item_next');
	}
	else
		enable('item_next');

	function redrawItem() {
		if ($("#current_page").length) $("#current_page")[0].innerHTML = cp;
		if (cp == 1)
			disable('item_prev');
		else
			enable('item_prev');
		if (cp == $(".item").length)
			disable('item_next');
		else
			enable('item_next');
		$(".item").each(function(i) {
			if ((i+1) == op)
				$(this).fadeOut("fast", function() {
					$(".item").each(function(i) {
						if ((i+1) == cp)
							$(this).fadeIn("fast");
					});
				});
		});
	}

	$("#page_prev").click( function() {
		if (!$(this).attr("disabled")) {
			if (cp > 1) {
				op = cp;
				cp--;
			}
			redraw();
		}
	});

	$("#page_next").click( function() {
		if (!$(this).attr("disabled")) {
			if (cp < $(".multipage").length) {
				op = cp;
				cp++;
			}
			redraw();
		}
	});
});

function redraw() {
    if ($("#current_page").length) $("#current_page")[0].innerHTML = cp;
    if (cp == 1)
        disable('page_prev');
    else
        enable('page_prev');
    if (cp == $(".multipage").length)
        disable('page_next');
    else
        enable('page_next');
    $(".multipage").each(function(i) {
        if ((i+1) == op)
            $(this).fadeOut("fast", function() {
                $(".multipage").each(function(i) {
                    if ((i+1) == cp)
                        $(this).fadeIn("fast");
                });
            });
    });
}

function disable(p, doFade) {
    doFade = (typeof(doFade) != "undefined") ? doFade : true;
    if (doFade) {
        $("#"+p).fadeTo(0, .5);
        $("#"+p+" img").fadeTo(0, .5);
    }
    $("#"+p).removeClass("nav");
    $("#"+p).addClass("disabled_nav");
    $("#"+p).hover(function() {}, function() {});
}

function enable(p, doFade) {
    doFade = (typeof(doFade) != "undefined") ? doFade : true;
    if (doFade) {
        $("#"+p).fadeTo(0, 1);
        $("#"+p+" img").fadeTo(0, 1);
    }
    $("#"+p).addClass("nav");
    $("#"+p).removeClass("disabled_nav");
    $("#"+p).hover(function() {
                $(this).addClass("nav_hover");
            }, function() {
                $(this).removeClass("nav_hover");
            });
}

var announcement_updater = {
	current_index: 0,
	fade_speed: "fast",
	swap_interval: 6000,
	pool: [],
	update: function(index){
		var self = this;
		$('p#intro').fadeOut(self.fade_speed, function(){
			$('p#intro').html(self.pool[index]["header"].toUpperCase()+" "+self.pool[index]["message"]);
			$('p#intro').css("background-image", "url('"+self.pool[index]["url"]+"')").fadeIn(self.fade_speed);
		});
	},
	start: function(){
		var self = this;
		self.update(self.current_index++);
        if (self.pool.length > 1) {
		    window.setInterval(function(){
			    var index = self.current_index % self.pool.length;
			    self.update(index);
			    self.current_index++;
		    }, self.swap_interval);
        }
	}
};

var newImageCount = -1;
var newImages = new Array();
function newImage(arg) {
	if (document.images) {
		newImageCount++;
		newImages[newImageCount] = new Image();
		newImages[newImageCount].src = arg;
		return newImages[newImageCount];
	}
}

function renderProductNav(prevID, nextID, cat) {
    disable("cat_item_pipe", false);
    if (prevID != -1) {
        $("#cat_item_prev").attr("href", "product.php?productid="+prevID+"&cat="+cat);
    } else {
        disable("cat_item_prev");
    }
    if (nextID != -1) {
        $("#cat_item_next").attr("href", "product.php?productid="+nextID+"&cat="+cat);
    } else {
        disable("cat_item_next");
    }
}

function renderProductPreviews() {
    disable("preview_link_"+(cp-1));
    $("#previews ul li a").each(function(i) {
        $(this).click(function() {
            if (cp != (i+1)) {
                op = cp;
                cp = (i+1);
                enable("preview_link_"+(op-1));
                disable("preview_link_"+(cp-1));
                redraw();
            }
        })
    });
}

function validatePO() {
	var invalidOption = validateInput();
	if (!invalidOption) invalidOption = validateSelect();
	return !invalidOption;
}

function validateInput() {
	var invalidOption = false;
	$('input').filter(function() {
		return (this.id && (this.id.substr(0, 2) == "po"));
	}).each(function() {
		if (this.value == '') {
			alert('Please specify product option text');
			this.focus();
			invalidOption = true;
			return false;
		}
		return true;
	});
	return invalidOption;
}

function validateSelect() {
	var invalidOption = false;
	$('select').filter(function() {
		return (this.id && (this.id.substr(0, 2) == "po"));
	}).each(function() {
		if (this.selectedIndex == 0) {
			var alertSuffix = "product option";
			// assumes first entry is "Select Foo"
			if (this.options[0].text.substr(0, 7) == "Select ") alertSuffix = this.options[0].text.substr(7);
			alert('Please specify '+alertSuffix);
			this.focus();
			invalidOption = true;
			return false;
		}
		return true;
	});
	return invalidOption;
}
