var uncolorLabels = function (formData, jqForm, options) {
//	$("#button").attr("disabled", "disabled");
//    $("#button").css('display','inline');

	$("#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');
}

/*	    $("#button").css('display','none');
	    $("#button").after('<img class="spinner" src="static/img/spinner.gif">');
*/

var flagSpinner=false;


var processResponse = function (data) {
    tmpdata=data;
	//$("#button").removeAttr("disabled");

	$("#success_message").remove();
	if (data["success"]) {
		var form = $("#redirect-form");
      	        var is_sub_scr = document.getElementById("id_subscription_interval");
		form.attr("action", data["redirect_to"]);

		$("#order-number").val(data["order_number"]);
		form.submit();
	} else {
	        $(".spinner").remove();
	        $("#button").css('display','inline');
                flagSpinner=!flagSpinner;
		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');
		}
		if (errors["next"] != undefined) {
			$("label[for=id_date]").css('color', 'red');
			$("label[for=id_next]").css('color', 'red');
		}
	}
}


var numberOfProductsForFreeShipping = 4;
var defaultShippingCost = 99;
var productsInfo = {
		1: 199,2: 229,3: 249,7: 219,8: 249,9: 269,10: 149,11: 149,12: 149,13: 149,14: 149,15: 149,16: 49,18: 99,17: 149,19: 99,20: 149
};
var currentProductQuantities = {
		1: 0,2: 0,3: 0,7: 0,8: 0,9: 0,10: 0,11: 0,12: 0,13: 0,14: 0,15: 0,16: 0,18: 0,17: 0,19: 0,20: 0
};
var numberOfProducts = 17;

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;
	}
	$("#products-cost").text(productsCost.toString());

    var productsDiscountCost;

    if ($("#products-discount-cost").length > 0) {
        productsDiscountCost = Math.round((productsCost- productsCost*0.1));
        $("#products-discount-cost").text(productsDiscountCost.toString());
    } else {
        productsDiscountCost = productsCost;
    }

	var free = false;
	if (!shippingCost && productsCost) {
		shippingCost = "Gratis";
		free = true;
		totalCost = productsDiscountCost;
	} else {
		totalCost = productsDiscountCost + shippingCost;
	}

	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();
}

function addDateParam(obj) {
    var d = new Date();
    if (typeof obj == 'string') {
        obj += obj.search("\\?") === -1 ? '?_=' + d.getTime() : '&_=' + d.getTime();
    } else {
        obj['_'] = d.getTime();
    }
    return obj;
}

$(document).ready(function () {
	var options = {
			beforeSubmit: uncolorLabels,
			success: processResponse,
			url: addDateParam('/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;
	}

    $('#cancel_subscription').click(function() {
        var answer = confirm("Vill du avsluta din prenumeration?");
        if (answer) {
            $.getJSON('/shop/cancel_subscription/?hash=', function(data) {
                if (data.success) {
                    alert('Prenumerationen är nu avslutad.');
                    window.location = data.redirect_to

                }
            });
        }
    });
	updateAllCosts();

    $('#button').click(function (){
	if(flagSpinner){
	    $(".spinner").remove();
	    $(this).css('display','inline');
	}
	else{
	    $(this).css('display','none');
            $(this).parent().after('<img class="spinner" src="/static/img/spinner.gif">');}
	flagSpinner=!flagSpinner;
    });

});
