
var dimensions = new Array();

function Dimension(id, type, min, max)
{
	this.id = id;
	this.type = type;
	this.min = parseInt(min);
	this.max = parseInt(max);
}

function checkDimension(type, value)
{
	var error = "";
	var re = /\d+/;

	if (value == "") error += "Syötä " + type + ".\n\n";
	else if (!re.test(value)) error += "Virheellinen " + type + ".\n\n";

	return error;
}

function findDimension(type, value)
{
	var dim = null;
	$.each(dimensions, function() {
		if (this.type == type && this.min <= value && value <= this.max )
		{
			dim = this;
			return false; // exit each.
		}
	});
	return dim;
}


function checkOptions()
{
	var error = "";
	var out_of_bounds = false;

	$("#dimensions input").each(function() {
		var type = this.name;
		var value = this.value;

		var e = checkDimension(type,value);
		if (e.length)
		{
			error += e;
		}
		else if (!findDimension(type,value))
		{
			//e = "Dimension '" + type + "' arvo on mittaskaalan ulkopuolella.\n\n";
			//error += e;
			out_of_bounds = true;
		}
	});

	if (error.length)
	{
		alert(error);
		return false;
	}
	else if (out_of_bounds)
	{
		alert("Asettamasi mitat ovat mittaskaalan ulkopuolella.");
		return false;
	}

	if ($("input[name='v_koodi']").length)
	{
		if ($.trim($("input[name='v_koodi']").val()) == "")
		{
			alert("Syötä värin koodi.");
			return false;
		}
	}

	return true;
}

function laskeHinta()
{
	var params = {};
	params.product_id = $("input[name='product_id']").val();

	var index = 1;
	$("#dimensions input").each(function() { // Leveys tulee ensimmäisenä -> lähtöhinta.
		var type = this.name;
		var value = this.value;
		var dim = findDimension(type,value); // Oletetaan, että ok.
		var option_id = dim.id;
		eval("params.option_" + (index++) + " = option_id");
	});

	$("select.wm_option").each(function() {
		var option_id = $(this).val();
		eval("params.option_" + (index++) + " = option_id");
	});

	$("#kokonaishinta").load("calculate_price.php", params, function() {
		$("#kokonaishinta").removeClass("hintateksti").addClass("kokonaishinta")
			.animate({ backgroundColor: "#FFCC99" }, 150)
			.animate({ backgroundColor: "#F1F1F3" }, 150);
	});

	window.scroll(0,10000);
}


// This is done after page load.
$(document).ready(function() {

	$("a.popup").click(function() {
		var url = this.href;
 		window.open(url, "popup", "resizable,top=100,left=50,width=1500,height=600");
 		return false;
	});

	var p = $("input[name='product_id']").val();

	var leveys = 0; var syvyys = 0; var korkeus = 0;
	
	$.post("get_dimensions.php", { product_id: p }, function(data) {

		$("dim", data).each(function() {

			var id = $(this).attr("id");
			var type = $(this).attr("type");
			var min = $(this).attr("min");
			var max = $(this).attr("max");

			var dim = new Dimension(id,type,min,max);
			dimensions.push(dim);

			if (type == "leveys") leveys++;
			if (type == "syvyys") syvyys++;
			if (type == "korkeus") korkeus++;
		});

		$.each(["leveys","syvyys","korkeus"], function() {
			eval("var d = " + this + ";");
			if (d == 0) $("#tr_" + this).remove();
			else if (d == 1)
			{
				var value = $("dim[type='" + this + "']", data).attr("min");
				$("input[name='" + this + "']").attr("readonly","readonly").val(value);
				//.after("<input class='wm_option' type='hidden' name='" + this + "' value='" + value + "'>");
			}
		});
		$("#dimensions").show();

	});


	// Tikkurilan käsittely.
	var v_koodi_html = $("<TABLE style=\"padding-top:12px;\" class=\"wm_option\"><TR><TD><P class=\"wm_option\">Värin koodi</P></TD><TD><P class=\"wm_option\"><INPUT class=\"wm_option\" type=\"text\" name=\"v_koodi\" size=8 maxlength=10></P></TD><TD><P class=\"wm_option\"><A href=\"javascript:popup(\'varikartta.php\');\">Värien esikatselu &gt;&gt;</A></P></TD></TR></TABLE>");
	$("select:contains('Tikkurila')").change(function() {
		var v = $("option:selected", this).text();
		if (v.search("Tikkurila") == 0)
		{
			$(this).after(v_koodi_html);
		}
		else
		{
			v_koodi_html.remove();
		}

	});

	$("input").keypress(function(e) {
		if (e.keyCode == 13)
		{
			$("#calc_button").click();
			return false;
		}
	});

	$("#calc_button").click(function() {
		var ok = checkOptions();
		if (ok) laskeHinta();
		return ok;
	});

	$("#add_button").click(function() {
		var ok = checkOptions();

		if (ok)
		{
			$("#dimensions input").each(function(i) {
				var type = this.name;
				var value = this.value;
				var dim = findDimension(type,value);
				var option_id = dim.id;
				$("form").eq(0)
				//.prepend("<input type='hidden' name='option_id" + (i+1) + "' value='" + option_id + "'>")
				// Viedään dimensiot option_id1:n alla.
				.prepend("<input type='hidden' name='option_id1" + "' value='" + option_id + "'>")
				// Viedään dimensio-optioiden id:t shopping_cart.php:lle.
				.prepend("<input type='hidden' name='" + type + "_id' value='" + option_id + "'>")
				
			});
			// Now submit the form.
		}

		return ok;
	});

});

