﻿/// <reference path="~/Scripts/jquery-1.3.2-vsdoc.js"/>

$(function() { // onload...do
    $("a.fancyZoom").fancybox(
        {
            'centerOnScroll': false,
            'overlayOpacity': 0.75,
            'frameWidth': 400,
            'frameHeight': 220,
            'zoomSpeedIn': 750,
            'zoomSpeedOut': 400,
            'hideOnContentClick': false
        }
    );
    
    $('form select').bind("change", updateForm);
    $("#order_Count").bind("change", updateForm);
    $("#order_ShrinkWrap").bind("change", updateForm);
    updateForm();
}
);

function updateForm() {
    var count = $("#order_Count").val();
    var media = $("#order_Disk").val();
    if (count > 0 && media > 0) {
        enableSubmit(false);
        $.ajax(
            {
                type: "post",
                data: $("#order").serialize(), // assuming this == the form
                url: '/Duplication.mvc/Calculate',
                success: updateDisplay,
                dataType: "json"
            }
            );
    } else {
        enabled(false, "#order_Case");
        enabled(false, "#order_Insert");
        enabled(false, "#order_Traycard");
        enabled(false, "#order_Wraparound");
        enableSubmit(false);
        wrappable(false);
        $("#SubTotal").text("");
        $("#Tax").text("");
        $("#Total").text("");
    }
    return false;
}

function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + '$' + num + '.' + cents);
}

function updateDisplay(data, textStatus) {
    enabled(true, "#order_Case");
    enabled(data.Insert, "#order_Insert");
    enabled(data.Traycard, "#order_Traycard");
    enabled(data.Wraparound, "#order_Wraparound");
    wrappable(data.Shrinkwrap);
    $("#SubTotal").text(formatCurrency(data.Subtotal) + " (" + formatCurrency(data.SubtotalPerDisk) + "/disk)");
    $("#Tax").text(formatCurrency(data.Tax) + " (" + formatCurrency(data.TaxPerDisk) + "/disk)");
    $("#Total").text(formatCurrency(data.Total) + " (" + formatCurrency(data.TotalPerDisk) + "/disk)");
    enableSubmit(true);
}

function wrappable(status) {
    if (status)
        $("#order_ShrinkWrap").removeAttr("disabled");
    else
        $("#order_ShrinkWrap").removeAttr("checked").attr("disabled", "true");
}

function enabled(status, id) {
    if (!status) {
        $(id).val(0).attr("disabled", "true");
    }
    else
        $(id).removeAttr("disabled");
}

function enableSubmit(enabled) {
    if (!enabled) {
        $("#Submit").attr("disabled", "true");
    }
    else
        $("#Submit").removeAttr("disabled");
}