﻿function editCustomerCatalogMatrix(CustomerID, CatalogID) {

    dojo.attr("bodyPane", "docType", "CatalogsSetup");

    var action = "/CatalogsSetup/EditCatalogMatrix";
    dojo.attr("bodyPane", "action", action);

    dojo.style(dojo.byId("filtersPane"), "display", "none");
    dijit.byId("bodyPane").set("href", action + "?customerID=" + CustomerID + "&catalogID=" + CatalogID);
}

function addCustomerCatalogMatrix(CustomerID) {

    dojo.attr("bodyPane", "docType", "CatalogsSetup");

    var action = "/CatalogsSetup/AddCatalogMatrix";
    dojo.attr("bodyPane", "action", action);

    dojo.style(dojo.byId("filtersPane"), "display", "none");
    dijit.byId("bodyPane").set("href", action + "?customerID=" + CustomerID);
}

function deleteEditCustomerCatalogMatrix() {

    var form = dojo.byId("EditCatalogMatrix");
    var xhrArgs = {
        form: dojo.byId("EditCatalogMatrix"),
        url: "/CatalogsSetup/DeleteCatalogMatrix",
        handleAs: "text",
        load: function (data) {
            //dojo.byId("response").innerHTML = "Form posted.";
        },
        error: function (error) {        
            alert(error);
        }
    }
    //Call the asynchronous xhrPost
    dojo.byId("response").innerHTML = "Form being sent..."
    var deferred = dojo.xhrPost(xhrArgs);
    var companyId = dojo.attr("bodyPane", "companyId");
    var action = "/CatalogsSetup/OpenEditor";
    dojo.attr("bodyPane", "action", action);
    dijit.byId("bodyPane").set("href", action + "?companyID=" + companyId);
}

function backToCatalogSetupEditor() {

    var companyId = dojo.attr("bodyPane", "companyId");
    var action = "/CatalogsSetup/OpenEditor";
    dojo.attr("bodyPane", "action", action);
    dijit.byId("bodyPane").set("href", action + "?companyID=" + companyId);

}

function clearCatalogSetupEditorCompany() {

    dojo.attr("bodyPane", "companyId", "");

    var action = "/CatalogsSetup/OpenCatalogsSetup";
    dojo.attr("bodyPane", "action", action);
    dijit.byId("bodyPane").set("href", action);

}

function saveEditCustomerCatalogMatrix() {

    var form = dojo.byId("EditCatalogMatrix");
    var xhrArgs = {
        form: dojo.byId("EditCatalogMatrix"),
        url: "/CatalogsSetup/EditCatalogMatrix",
        handleAs: "text",
        load: function (data) {
            //dojo.byId("response").innerHTML = "Customer catalog matrix saved.";
        },
        error: function (error) {
            alert(error);
        }
    }
    //Call the asynchronous xhrPost
    dojo.byId("response").innerHTML = "Customer catalog matrix saving...";
    var deferred = dojo.xhrPost(xhrArgs);


    var companyId = dojo.attr("bodyPane", "companyId");
    
    var action = "/CatalogsSetup/OpenEditor";
    dojo.attr("bodyPane", "action", action);
    dijit.byId("bodyPane").set("href", action + "?companyID=" + companyId);

}

function saveAddCustomerCatalogMatrix() {

    var form = dojo.byId("AddCatalogMatrix");
    var xhrArgs = {
        form: dojo.byId("AddCatalogMatrix"),
        url: "/CatalogsSetup/AddCatalogMatrix",
        handleAs: "text",
        load: function (data) {
            //dojo.byId("response").innerHTML = "Customer catalog matrix saved.";
        },
        error: function (error) {
            //We'll 404 in the demo, but that's okay.  We don't have a 'postIt' service on the
            //docs server.
            alert(error);            
        }
    }
    //Call the asynchronous xhrPost
    dojo.byId("response").innerHTML = "Customer catalog matrix saving...";
    var deferred = dojo.xhrPost(xhrArgs);
    var companyId = dojo.attr("bodyPane", "companyId");
    var action = "/CatalogsSetup/OpenEditor";
    dojo.attr("bodyPane", "action", action);
    dijit.byId("bodyPane").set("href", action + "?companyID=" + companyId);

}

function refereshBasketButton(itemCount) {

    dojo.byId("lblItemCount").innerText = itemCount;
    if (dojo.number.parse(itemCount) > 0)
        dojo.attr("basketImg", "src", basketImage_Full.src)
    else
        dojo.attr("basketImg", "src", basketImage_Empty.src);
}

function addAdHocItemToBasket() {

    dojo.xhrPost({
        // The URL of the request
        url: "/Basket/AddAdHocItemToBasket",
        // Form to send
        form: dojo.byId("AdHocItemDetails"),
        // The success callback with result from server
        load: function (basketItemCount) {
            refereshBasketButton(basketItemCount);
            alert("Your Ah Hoc item has been added to your basket");
        },
        // The error handler
        error: function (msg) {
            alert(msg);
        }
    });
}

function addItemToBasket() {

    var form = dojo.byId("CatalogItemDetails");
    var qty = dojo.byId("Quantity").value;
    var poa = dojo.byId("poa");
    if (poa != null) {
        dojo.byId("CatalogItemPriceID").value = dojo.number.parse(dojo.attr(poa, "priceID"));
    }
    else {
        var priceBreaks = dojo.query("#priceBreak");
        for (var i = priceBreaks.length - 1; i >= 0; i--) {
            var level = dojo.number.parse(dojo.attr(priceBreaks[i], "priceBreak"));
            if (level <= dojo.number.parse(qty)) {
                dojo.byId("CatalogItemPriceID").value = dojo.number.parse(dojo.attr(priceBreaks[i], "priceID"));
                break;
            }
        }
    }
    var xhrArgs = {
        form: dojo.byId("CatalogItemDetails"),
        url: "/Basket/AddItemToBasket",
        handleAs: "text",
        load: function (basketItemCount) {
            refereshBasketButton(basketItemCount);
            openDocumentList();
        },
        error: function (error) {
            alert(error);
        }
    }
    var deferred = dojo.xhrPost(xhrArgs);
    
}

function processBasketItems() {

    var form = dojo.byId("OrderBasketItems");
    var xhrArgs = {
        form: dojo.byId("OrderBasketItems"),
        url: "/Basket/OrderBasketItems",
        handleAs: "json",
        load: function (result) {
            refereshBasketButton(result.basketItemCount);
            var conDia = dijit.byId("orderConfirmation")
            dojo.byId( "orderConfirmationMessage" ).innerText = result.message;
            conDia.show();
            openBasketView();
        },
        error: function (error) {
            alert(error)
        }
    }
    var deferred = dojo.xhrPost(xhrArgs);
}

function openCatalogs() {
    var node = dojo.byId("catalogsNode");
    openCatalogsView(node);
}

function updateBasketItems() {

    var form = dojo.byId("OrderBasketItems");
    var xhrArgs = {
        form: dojo.byId("OrderBasketItems"),
        url: "/Basket/UpdateBasketItems",
        handleAs: "text",
        load: function (basketItemCount) {
            refereshBasketButton(basketItemCount);
        },
        error: function (error) {
            alert(error);
        }
    }
    var deferred = dojo.xhrPost(xhrArgs);

    var action = "/Basket/List";
    dojo.attr("bodyPane", "action", action);
    dijit.byId("bodyPane").set("href", action);

}

function openCatalogsView(node) {
    
    dojo.attr("bodyPane", "companyId", "");
    selectNavLink(node);
    dojo.byId("filCap").innerText = dojo.attr(node, "filCap"); ;

    var action = "/Catalogs/ListFilters";
    //dojo.attr("bodyPane", "action", action);

    dojo.attr("bodyPane", "categoryID", "");
    dijit.byId("filsel").set("href", action);

    //showSearchBar( "Catalogs" );
    hideListOptions();
}

function openBasketView() {

    var action = "/Basket/List";
    dojo.attr("bodyPane", "action", action);
    dijit.byId("bodyPane").set("href", action);
    dojo.attr("bodyPane", "companyId", "");        
}

function openCatalogItemDetails( catalogItemID ) {

    var companyId = dojo.attr("bodyPane", "companyId");
    action = "/Catalogs/OpenCatalogItem";
    dojo.attr("bodyPane", "action", action);
    dijit.byId("bodyPane").set("href", action + "?catalogItemID=" + catalogItemID + "&companyID=" + companyId);
    
}

function openCatalogsSetup(node) {
    dojo.attr("bodyPane", "docType", "CatalogsSetup");

    var action = "/CatalogsSetup/OpenCatalogsSetup";
    dojo.attr("bodyPane", "action", action);

    dojo.style(dojo.byId("filtersPane"), "display", "none");

    selectNavNode(node);
    dojo.addClass(node, "n2filops");
    dijit.byId("bodyPane").set("href", action + "?view=" + dojo.attr(node, "viewName"));
}

function openCatalog(node) {
    dojo.attr("bodyPane", "docType", "Catalogs");

    var action = "/Catalogs/OpenCatalog";
    dojo.attr("bodyPane", "action", action);

    dojo.style(dojo.byId("filtersPane"), "display", "none");

    selectNavNode(node);
    dojo.addClass(node, "n2filops");
    dijit.byId("bodyPane").set("href", action + "?view=" + dojo.attr(node, "viewName"));
}


function initializeCatalogsList() {

    dojo.query("repsel")
    .connect("onclick", function (evt) {
        openCatalog(this);
    })
    .connect("onmouseover", function (evt) {
        if (!dojo.hasClass(this, "n2navops"))
            dojo.addClass(this, "n2navoph");
    })
    .connect("onmouseout", function (evt) {
        if (!dojo.hasClass(this, "n2navops"))
            dojo.removeClass(this, "n2navoph");
    });
    dojo.query("#repsel > .n2navop")
    .connect("onclick", function (evt) {
        openCatalog(this);
        initializeEditor();
    })
    .connect("onmouseover", function (evt) {
        if (!dojo.hasClass(this, "n2navops"))
            dojo.addClass(this, "n2navoph");
    })
    .connect("onmouseout", function (evt) {
        if (!dojo.hasClass(this, "n2navops"))
            dojo.removeClass(this, "n2navoph");
    });

}

