﻿/// <reference path="jquery-1.3.2-vsdoc.js" />

///http://jqueryui.com/demos/tabs/#option-ajaxOptions

$(document).ready(function() {

    ajaxifyForm("editUserAccountForm"); //jquery.wipcore.js
    ajaxifyForm("addToSingleCartForm");
    ajaxifyForm("orderHistoryForm");


    $(".jChangeOrderTemplateButton").click(function() {
        //Display the change order tab class .tabs-5 and the container
        $("#tabs-5").removeClass("displayNone");
        $("#jChangeOrderTemplateTab").removeClass("displayNone");

        //Make it selected
        $('#tabs').tabs('select', 4);
    });

});

    function editSingleCart(url) {
        //Remove the class that hides the tab
        $("#tabs-5").removeClass("displayNone");
        
        //Remove the class that hides the container
        $("#jChangeOrderTemplateTab").removeClass("displayNone");
            
        //Make it selected
        $('#tabs').tabs('select', 4);
        
        //Get the content of the cart to edit
        $.post(
            url,
            function(data) {
                //Returned data goes into tab-5
                $("#tabs-5").html(data);
                ajaxifyForm("addToSingleCartForm");
                ajaxifyForm("editSingleCartForm"); 
            }
        );
        return false;
    }

    function addCartToCart(obj) {
        var linktag = $(obj);
        
        $.post(linktag.attr("href"), 
        {},
        function(data) {
            addToCartResult(data);
        }, "html");
        
        return false;
    }

    function addCartToCart(obj, actionUrl) {
        var linktag = $(obj);

        $.post(actionUrl,
        {},
        function(data) {
            addToCartResult(data);
        }, "html");

        return false;
    }
    
    function myPageUpdate(obj, updateDiv) {
        var linktag = $(obj);

        $.post(linktag.attr("href"),
        {},
        function(data) {
        $(updateDiv).html(data);
        }, "html");

        return false;
    }

    function EditUserAccountForm() {
        var form = $("#editUserAccountForm");
        $.post(
            form.attr("action"),
            form.serialize(),
            function(data) {
                $("#jaccountHandling").html(data);
                ajaxifyForm("editUserAccountForm");
            }
        );
    }

    function UpdateOrderHistory() {
        DisplayOrderLoader();
        var form = $("#orderHistoryForm");
        $.post(
            form.attr("action"),
            form.serialize(),
            function(data) {
                $("#tabs-4").html(data);
                ajaxifyForm("orderHistoryForm");
                $("#orderhistory_wrapper").show("fast", null);
                StyleOrderList();
            }
        );
            
        }

        function StyleOrderList() {

            $('#orderhistory').dataTable({
                "bJQueryUI": true,
                "bPaginate": false,
                "sPaginationType": "full_numbers",
                "bLengthChange": false,
                "bFilter": true,
                "bSort": false,
                "bInfo": true,
                "bAutoWidth": false,
                "oLanguage": {
                    "sProcessing": "Laddar...",
                    "sLengthMenu": "Visa _MENU_ rader",
                    "sZeroRecords": "",
                    "sInfo": "Visar _START_ till _END_ av totalt _TOTAL_ rader",
                    "sInfoEmpty": "Visar 0 till 0 av totalt 0 rader",
                    "sInfoFiltered": "(filtrerade från totalt _MAX_ rader)",
                    "sInfoPostFix": "",
                    "sSearch": "Sök:",
                    "sUrl": "",
                    "oPaginate": {
                        "sFirst": "Första",
                        "sPrevious": "<b>Föregående</b>",
                        "sNext": "<b>Visa nästa 10 st</b>",
                        "sLast": "Sista"
                    }
                }
            });

            $(".datepicker").datepicker({ dateFormat: 'yy-mm-dd', duration: 'fast', firstDay: 1, monthNames: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'], dayNamesMin: ['Sö', 'Må', 'Ti', 'On', 'To', 'Fr', 'Lö'], beforeShowDay: $.datepicker.noWeekends });
        }

        function DisplayOrderLoader() {
            $("#orderhistory").html('<br><img src=/images/loader-big.gif />');
            $("#orderhistory_wrapper").html('<br><img src=/images/loader-big.gif />');
        }

    function ShowOrderDetails(orderNr) {  
        var form = $("#orderHistoryForm");
        $.post(
            "/MyPage/ShowOrderDetails",
            { orderNr: orderNr },
            function(data) {
            $("#jorderDetails").html(data);
            });
            $("#orderhistory").hide("slow", null);
            $("#orderhistory_wrapper").hide("fast", null);
            $("#jorderHistory").hide("fast", null);
            $("#jorderDetails").show("slow", null);
    }

    function HideOrderDetails() {
        $("#jorderDetails").hide("slow", null);
        $("#orderhistory_wrapper").show("fast", null);
        $("#jorderHistory").show("fast", null);
        $("#orderhistory").show("fast", null);
    }
    
    function addToCartResult(data) {
        $("#jMyPageAjaxResult").html(data);
        updateMiniCartQuantityFromServer();

    }

    function addProductToSavedCart() {
        
        $.post(linktag.attr("href"),
        {},
        function(data) {
            addToCartResult(data);
        }, "html");
    }

    function updateEditSingleCartForm() {
        var cartId = $("#editSingleCartForm").find("#editSingleCartId").val();
        $.post(
            '/MyPage/SingleCart',
             { cartId: cartId },
            function(data) {
                $("#jEditCartContainer").html(data);
                //$('#detailsDiv').replaceWith(data);
            }
        );
    }

    function updateSavedCarts() {
        //Update the list of saved carts
        $.get("/MyPage/SavedCarts",
            function(data) {
                $("#tabs-1").html(data);
                ajaxifyForm("editSingleCartForm"); //Rebind submit event
            }
        )
    }

    function updateSingleCart() {
        var form = $("#editSingleCartForm");
        $.post(
            form.attr("action"),
            form.serialize(),
            function(data) {
                $("#jEditSingleCartResult").html(data);
                updateSavedCarts();
            }
        )
    }


    function addToSingleCart() {
        var form = $("#addToSingleCartForm");
        $.post(
            form.attr("action"),
            form.serialize(),
            function(data) {
                $("#jEditSingleCartResult").html(data);
                updateEditSingleCartForm();
            }
        )
    }
    
    function deleteRowInSingleCart(cartId, rowNumber) {
        var form = $("#addToSingleCartForm");
        $.post(
            "/MyPage/DeleteProduct",
            {
                rowNumber: rowNumber,
                cartId: cartId
             },
            function(data) {
                $("#jEditCartContainer").html(data);
            }
        )
    }

    function duplicateCart(cartId, newName) {
        $.post(
            "/MyPage/DuplicateCart",
            {
                cartId: cartId,
                cartName: newName
            },
            function(data) {
                $("#tabs-1").html(data);
            }
        )
    }
    
    function deleteCart(cartId, newName) {
        $.post(
            "/MyPage/DeleteCart",
            {
                cartId: cartId,
                cartName: newName
            },
            function(data) {
                $("#tabs-1").html(data);
            }
        )
    }
    
    function goToTab(tabNumber) { 
        
        //Tab-5 is only visible by cklick edit on tab-1 so hide it when any other tab is selected
        if (tabNumber != 5)
        {
            $("#tabs-5").addClass("displayNone");
            $("#jChangeOrderTemplateTab").addClass("displayNone");
        }
            
        //Make the new tab selected
        $('#tabs').tabs('select',tabNumber - 1);    
    }
