﻿/// <reference path="Common.js" />
var logic;

$(document).ready(function() {
    Init();
});

function Init() {
    logic = new PageLogic();
    logic.appRoot = pageLogic.appRoot;
    logic.buildId = pageLogic.buildId;
    logic.styleCode = pageLogic.styleCode;
    logic.imagePath = "/DBImages/";
    logic.prefix = "#ctl00_pageContentRegion_";  //"#masterPage_pageContentRegion_";
    
    var frameSizesItem = logic.CreateItem("GetFrameSizes", "", "frameSize");
    var frameColorsItem = logic.CreateItem("GetFrameColors", "AddFrameToBuild", "frameColor");
    var frameRearShocksItem = logic.CreateItem("GetFrameRearShocks", "AddFrameRearShockToBuild", "frameRearShock");
    var groupKitsItem = logic.CreateItem("GetGroupKits", "", "groupKit");

    frameSizesItem.imageName = "";
    frameSizesItem.containerName = "frameSizeContainer";
    frameSizesItem.getParameters = { frameId: pageLogic.frameId };
    frameSizesItem.dependentItems = { frameColors: frameColorsItem };

    frameColorsItem.imageName = "frameImage";
    frameColorsItem.containerName = "frameColorContainer";
    frameColorsItem.units = "lbs";
    frameColorsItem.getParameters = { frameSizeId: frameSizesItem.SelectedValue };
    frameColorsItem.updateParameters = { frameId: pageLogic.frameId, frameSizeId: frameSizesItem.SelectedValue, frameColorId: frameColorsItem.SelectedValue };
    frameColorsItem.dependentItems = { frameRearShocks: frameRearShocksItem, groupKits: groupKitsItem };

    frameRearShocksItem.imageName = "";
    frameRearShocksItem.containerName = "frameRearShockContainer";
    frameRearShocksItem.getParameters = { travel: 0 };
    frameRearShocksItem.updateParameters = { frameRearShockId: frameRearShocksItem.SelectedValue };
    frameRearShocksItem.dependentItems = { groupKits: groupKitsItem };

    groupKitsItem.imageName = "";
    groupKitsItem.containerName = "groupKitContainer";
    groupKitsItem.units = "lbs";
    groupKitsItem.showAddSub = false;
    
    logic.Init();
    InitButtons();
    InitPriceAndWeight();

    frameSizesItem.Load();
}

function InitButtons() {
    $(prefix + "buyFrame").bind("click", function(event) {
        BuyFrame();
        return false;
    });

    $(prefix + "buildBike").bind("click", function(event) {
        BuildBike();
        return false;
    });
}

function InitPriceAndWeight() {
    $("select").bind("UpdateComplete", function(event) {
        GetFramePriceAndWeight();
        GetCompleteBikePriceAndWeight();
    });
}

function GetFramePriceAndWeight() {
    framePriceAndWeight = $(prefix + "framePriceAndWeight");
    frameColor = logic.items.frameColor.selectedItem;
    frameRearShock = logic.items.frameRearShock.selectedItem;

    if (frameColor) {
        salePrice = frameColor.SalePrice;
        price = frameColor.Price;
        weight = frameColor.Weight;

        if (frameRearShock) {
            salePrice += frameRearShock.SalePrice;
            price += frameRearShock.Price;
            weight += frameRearShock.Weight;
        }
        
        var frameSalePrice = "";
        var frameFreeShipping = "";
        var linethrough = "";

        if (frameColor.OnSale)
        {
            frameSalePrice = "<span class='smallred'>Sale Price: " + FormatCurrency(salePrice) + "</span><br />";
            linethrough = " style='text-decoration: line-through;'";
        }
        
        if (frameColor.FreeShipping)
        {
            frameFreeShipping = "<span class='smallred'>Free Shipping</span><br />";
        }
        
        var framePrice = "<span class='smallblack'" + linethrough + ">MSRP: " + FormatCurrency(price) + "</span><br />";
        var frameWeight = "<span class='smallblack'>WEIGHT: " + weight + "lbs</span>";
        
        framePriceAndWeight.html(framePrice + frameSalePrice + frameFreeShipping + frameWeight);
    }
    else {
        framePriceAndWeight.html("");
    }
}

function GetCompleteBikePriceAndWeight() {
    groupKit = logic.items.groupKit.selectedItem;
    completeBikePriceAndWeight = $(prefix + "completeBikePriceAndWeight");
    
    if (groupKit && groupKit.Id != "0") {
        var bikeSalePrice = "";
        var bikeFreeShipping = "";
        var linethrough = "";

//        if (groupKit.OnSale)
//        {
//            bikeSalePrice = "<span class='smallred'>Sale Price: " + FormatCurrency(groupKit.SalePrice) + "</span><br />";
//            linethrough = " style='text-decoration: line-through;'";
//        }
        
        if (groupKit.FreeShipping)
        {
            bikeFreeShipping = "<span class='smallred'>Free Shipping</span><br />";
        }

        var bikePrice = "<span class='smallblack'" + linethrough + ">MSRP: " + FormatCurrency(groupKit.SalePrice) + "</span><br />";
        var bikeWeight = "<span class='smallblack'>WEIGHT: " + groupKit.Weight + "lbs</span>";
        
        completeBikePriceAndWeight.html(bikePrice + bikeSalePrice + bikeFreeShipping + bikeWeight);
    }
    else {
        completeBikePriceAndWeight.html("");
    }
}

function BuyFrame() {
    logic.ExecuteCall("FrameOnlyBuild", { buildId: logic.buildId }, { success: function() {
            logic.LoadUrl("/WSLogic/Summary.aspx");
    }});
}

function BuildBike() {
    groupKitId = logic.items.groupKit.SelectedValue();

    if (groupKitId != "0" && groupKitId != "-1") {
        logic.ExecuteCall("AddGroupKitToBuild", { groupKitId: groupKitId }, { success: function() {
            logic.LoadUrl("/WSLogic/" + logic.store + "/Group.aspx");
        }});
    }
    else {
        alert("You must choose a group to start customizing your bike");
    }
}
