var uncolorLabels = function (formData, jqForm, options) {
	$("#button").attr("disabled", "disabled");
	$("#error-message").hide();
	$("label[for=id_first_name]").css('color', 'black');
	$("label[for=id_last_name]").css('color', 'black');
	$("label[for=id_co]").css('color', 'black');
	$("label[for=id_address]").css('color', 'black');
	$("label[for=id_zip]").css('color', 'black');
	$("label[for=id_city]").css('color', 'black');
}

var processResponse = function (data) {
	$("#button").removeAttr("disabled");
	if (data["success"]) {
		var form = $("#redirect-form");
		form.attr("action", data["redirect_to"]);
		$("#order-number").val(data["order_number"]);
		form.submit();
	} else {
		if (data["message"] != undefined) {
			$("#error-message").text(data["message"]).show();
		}
		var errors = data["errors"];
		if (errors["first_name"] != undefined) {
			$("label[for=id_first_name]").css('color', 'red');
		}
		if (errors["last_name"] != undefined) {
			$("label[for=id_last_name]").css('color', 'red');
		}
		if (errors["co"] != undefined) {
			$("label[for=id_co]").css('color', 'red');
		}
		if (errors["address"] != undefined) {
			$("label[for=id_address]").css('color', 'red');
		}
		if (errors["zip"] != undefined) {
			$("label[for=id_zip]").css('color', 'red');
		}
		if (errors["city"] != undefined) {
			$("label[for=id_city]").css('color', 'red');
		}
		if (errors["email"] != undefined) {
			$("label[for=id_email]").css('color', 'red');
		}
	}
}


var numberOfProductsForFreeShipping = 3;
var defaultShippingCost = 79;
var productsInfo = {
		1: 149,2: 149,3: 149,4: 49,6: 99,5: 149
};
var currentProductQuantities = {
		1: 0,2: 0,3: 0,4: 0,6: 0,5: 0
};
var numberOfProducts = 6;

function updateAllCosts() {
	var productsCost = 0;
	var shippingCost = 0;
	var totalCost = 0;
	var totalCount = 0;

	for (i in productsInfo) {
		productsCost += productsInfo[i] * currentProductQuantities[i];
		totalCount += currentProductQuantities[i]
	}
	if (productsCost && totalCount < numberOfProductsForFreeShipping) {
		shippingCost = defaultShippingCost;
	}
	
	var free = false;
	if (!shippingCost && productsCost) {
		shippingCost = "Gratis";
		free = true;
		totalCost = productsCost;
	} else {
		totalCost = productsCost + shippingCost;
	}
	$("#products-cost").text(productsCost.toString());
	if (free) {
		$("#shipping-cost").text(shippingCost.toString());
	} else {
		$("#shipping-cost").text(shippingCost.toString() + " kr");
	}
	$("#total-cost").text(totalCost.toString());
}

function onQuantityChange(product, selectElem) {
	selectElem = $(selectElem);
	currentProductQuantities[product] = parseInt(selectElem.val());
	updateAllCosts();
}

$(document).ready(function () {
	var options = {
			beforeSubmit: uncolorLabels,
			success: processResponse,
			url: '/shop/make-order-ajax/',
			type: 'post',
			dataType: 'json'
	};
	
	$('#order-form').ajaxForm(options);
	for (i = 0; i < numberOfProducts; i++) {
		var productID = parseInt($("#id_form-" + i.toString() + "-product").val());
		var selectElem = $("#id_form-" + i.toString() + "-quantity");
		var selectedNumber = parseInt(selectElem.val());
		currentProductQuantities[productID] = selectedNumber;
	}
	updateAllCosts();
});
