/**
 * @author Eli Sand
 * @copyright 2008 Eli Sand
 * @copyright 2008 Flewid Incorporated
 */

function closeButton(object, type) {
	var myindex = $(object).closest("#" + type + "Options").data("index");

	$(object).closest("#" + type + "Options").siblings("#" + type + "Options").each(function() {
		var i = $(this).data("index");

		if (i > myindex) {
			$(this).data("index", (i - 1));
			$(this).find("th").each(function() {
				var newhead = $(this).html().replace(/\#[0-9]+/, "#" + (i - 1));
				$(this).html(newhead);
			});
			$(this).find("*[name*='[" + i + "]']").each(function() {
				var newname = this.name.replace(/([a-z]+)\[[0-9]+\](.+)/, "$1[" + (i - 1) + "]$2");
				$(this).attr("name", newname);
			});
		}
	});

	if (type == "landing") {
		if ($(object).closest("#" + type + "Options").find("input[name='landing[" + myindex + "][rush]']").is(":checked")) {
			quantity.landing_rush--;
			$("#quantity_landing_rush").html(quantity.landing_rush.toString()).change();
		}

		$(object).closest("#" + type + "Options").find("select[name='landing[" + myindex + "][wordcount]']").each(function() {
			quantity["landing" + $(this).val()]--;
			$("#quantity_landing" + $(this).val()).html(quantity["landing" + $(this).val()].toString()).change()
		});
	}

	if (type == "banner") {
		if ($(object).closest("#" + type + "Options").find("input[name='banner[" + myindex + "][psd]']").is(":checked")) {
			quantity.banner_psd--;
			$("#quantity_banner_psd").html(quantity.banner_psd.toString()).change();
		}

		if ($(object).closest("#" + type + "Options").find("input[name='banner[" + myindex + "][text]']").val() != "") {
			quantity.banner_text--;
			$("#quantity_banner_text").html(quantity.banner_text.toString()).change();
		}
	}

	$(object).closest("#" + type + "Options").remove();
	quantity[type]--;

	$("#quantity_" + type).html(quantity[type].toString()).change();
};

function proWordCount() {
	var lookup = [23, 34, 45, 56, 67, 78, 89, 91];

	for (var i in lookup) {
		item = "landing" + lookup[i];

		quantity[item] = 0;
		$("#quantity_" + item).html(quantity[item].toString()).change();
	}

	$("#orderForm #landingOptions select[name$='[wordcount]']").each(function() {
		var item = "landing" + $(this).val();

		quantity[item]++;
		$("#quantity_" + item).html(quantity[item].toString()).change();
	});
}

jQuery(function($) {
	$("#orderOptions div[id^='quantity_']").change(function() {
		var regex = /^quantity_(.+)$/.exec($(this).attr("id"));
		var type = regex[1];
		$("#total_" + type).html("$" + (quantity[type] * price[type]).toFixed(2));

		var total = 0;
		for (var item in quantity) {
			total += quantity[item] * price[item];
		}
		$("#order_total").html("$" + total.toFixed(2));
	});

	$("#landingOptions input[name$='[rush]']").live("click", function() {
		if ($(this).is(":checked"))
			quantity.landing_rush++;
		else
			quantity.landing_rush--;

		$("#quantity_landing_rush").html(quantity.landing_rush.toString()).change();
	});

	$("#bannerOptions input[name$='[psd]']").live("click", function() {
		if ($(this).is(":checked"))
			quantity.banner_psd++;
		else
			quantity.banner_psd--;

		$("#quantity_banner_psd").html(quantity.banner_psd.toString()).change();
	});

	$("#bannerOptions input[name$='[text]']").live("click", function() {
		if ($(this).is(":checked"))
			quantity.banner_text++;
		else
			quantity.banner_text--;

		$("#quantity_banner_text").html(quantity.banner_text.toString()).change();
	});

	$("#addLanding").click(function() {
		$("#landingOptions").clone().insertBefore("#landingMarker").each(function() {
			$(this).data("index", ++quantity.landing);

			$(this).find("th").each(function() {
				var newhead = $(this).html().replace(/\#[0-9]+/, "#" + quantity.landing);
				$(this).html(newhead);
			});
			$(this).find("th").prepend('<button type="button" onclick="closeButton(this, \'landing\')">X</button>');
			$(this).find("*[name*='[0]']").each(function() {
				var newname = this.name.replace(/([a-z]+)\[0\](.+)/, "$1[" + quantity.landing + "]$2");
				$(this).attr("name", newname);
			});

			$(this).find("input[name$='[link][]']").change(landingLinkEvent = function() {
				if ($(this).val() != "") {
					$(this).parent().append('<input type="text" class="link" name="' + $(this).attr("name") + '" />');
					$(this).parent().find("input[name$='[link][]']").change(landingLinkEvent);
				}
				else {
					$(this).nextAll().each(function() {
						if ($(this).val() == "") {
							$(this).remove();
						}
					});
				}
			});

			$(this).find("input[name$='[image][]']").change(landingImageEvent = function() {
				if ($(this).val() != "") {
					$(this).parent().parent().append('<div class="inputfile"><input type="file" name="' + $(this).attr("name") + '" class="file" size="28" onchange="$(this).next().find(\'input\').val($(this).val())" /><div class="fakeinputfile"><input type="text" name="fakefile" onchange="$(this).parent().prev().val($(this).val()).change()" /></div></div>');
					$(this).parent().parent().find("input[name$='[image][]']").change(landingImageEvent);
				}
				else {
					$(this).parent().nextAll().find("input[name$='[image][]']").each(function() {
						if ($(this).val() == "") {
							$(this).parent().remove();
						}
					});
				}
			});

			$(this).show();

			$("#quantity_landing").html(quantity.landing.toString()).change();

			$(this).find("select[name$='[wordcount]']").length && proWordCount();
		});
	});

	$("#addBanner").click(function() {
		$("#bannerOptions").clone().insertBefore("#bannerMarker").each(function() {
			$(this).data("index", ++quantity.banner);

			$(this).find("th").each(function() {
				var newhead = $(this).html().replace(/\#[0-9]+/, "#" + quantity.banner);
				$(this).html(newhead);
			});
			$(this).find("th").prepend('<button type="button" onclick="closeButton(this, \'banner\')">X</button>');
			$(this).find("*[name*='[0]']").each(function() {
				var newname = $(this).attr("name").replace(/([a-z]+)\[0\](.+)/, "$1[" + quantity.banner + "]$2");
				$(this).attr("name", newname);
			});

			$(this).find("input[name$='[image][]']").change(bannerImageEvent = function() {
				if ($(this).val() != "") {
					$(this).parent().parent().append('<div class="inputfile"><input type="file" name="' + $(this).attr("name") + '" class="file" size="28" onchange="$(this).next().find(\'input\').val($(this).val())" /><div class="fakeinputfile"><input type="text" name="fakefile" onchange="$(this).parent().prev().val($(this).val()).change()" /></div></div>');
					$(this).parent().parent().find("input[name$='[image][]']").change(bannerImageEvent);
				}
				else {
					$(this).parent().nextAll().find("input[name$='[image][]']").each(function() {
						if ($(this).val() == "") {
							$(this).parent().remove();
						}
					});
				}
			});

			$(this).show();

			$("#quantity_banner").html(quantity.banner.toString()).change();
		});
	});
});