var PostNewItem   = new Object();
//=====================================================//
//** extending the master Util class
var Util = $.extend(Util, {

});

//=====================================================//
var Validate = $.extend(Validate, {

});

var Member = {
    setupRegisterForm: function(e) {
        var extraPar = {
            callback: function() {
                var msg = "<div class='sysMessage'>Thanks for registering.</div>";
                $('#registerForm').html(msg);
            }
        }

        var options = {
            success: function(json, statusText, jqFormObj) {
                Validate.validateFormData(json, statusText, jqFormObj, extraPar);
            },
            beforeSubmit: function() {},
            dataType: 'json'
        };
        $('#registerForm').ajaxForm(options);
    },

    loginForm: function(e) {
        e.preventDefault();
        var url = $(this).attr('href');
        Util.showProgressInd();
        var xButtons = {};

        xButtons['Login'] = function() {
            $('#loginForm').submit();
        };

        xButtons['Forgot Password'] = function() {
            Member.forgotPasswordForm();
        };

        xButtons['Cancel'] = function() {
            $(this).dialog('close').dialog('destroy');
        };

        $.get(url, function(data){
            Util.initDialog();
            $('#dialog').html(data);
            $('#dialog').dialog(
                $.extend(Util.dialogDefaults, {
                    title:"Login Form",
                    width: 400,
                    height: 230,
                    buttons: xButtons
                })
            );
        });
    },

    forgotPasswordForm: function() {
        var url = url = "/index.php?_room=member&_spAction=forgotPasswordForm&showHTML=0";
        Util.showProgressInd();
        var xButtons = {};

        xButtons['Submit'] = function() {
            $('#frmForgotPassword').submit();
        };

        xButtons['Cancel'] = function() {
            $(this).dialog('close').dialog('destroy');
        };

        $.get(url, function(data){
            Util.initDialog();
            $('#dialog').html(data);
            $('#dialog').dialog(
                $.extend(Util.dialogDefaults, {
                    title:"Password Retrival Form",
                    width: 400,
                    height: 230,
                    buttons: xButtons
                })
            );
        });
    }

}

var Content = {
    setupNewsletterForm: function(e) {
        var extraPar = {
            callback: function() {
                var msg = "<div class='sysMessage'>Thanks for signing up newsletter.</div>";
                $('#newsLetterForm').html(msg);
            }
        }

        var options = {
            success: function(json, statusText, jqFormObj) {
                Validate.validateFormData(json, statusText, jqFormObj, extraPar);
            },
            beforeSubmit: function() {},
            dataType: 'json'
        };
        $('#newsLetterForm').ajaxForm(options);
    },

    setupEnquiryForm: function(e) {
        var extraPar = {
            callback: function() {
                var msg = "<div class='sysMessage'>Thanks for your enquiry.</div>";
                $('#enquiryForm').html(msg);
            }
        }

        var options = {
            success: function(json, statusText, jqFormObj) {
                Validate.validateFormData(json, statusText, jqFormObj, extraPar);
            },
            beforeSubmit: function() {},
            dataType: 'json'
        };
        $('#enquiryForm').ajaxForm(options);
    }

}

var Cart = {
    add: function(id) {
        var qtyFldObj = $("input[name='qty_" + id + "']");
        var qty = qtyFldObj.val();

        if (!qty) {
            alert('Please enter the quantity!');
            qtyFldObj.select();
            return;
        }

        var params = { _room:'cart', _action:'add' ,
                        shopType: 'product', showHTML: 0 ,
                        cartItemID: id, qty:qty};

        var url = "/index.php?" + $.param(params);

        $.getJSON(url,
            function(json){
                var errorCount = json.errorCount;

                if(errorCount > 0){
                    alert(json.errorMsg);
                    qtyFldObj.select();
                    return;
                }
                $("#qtyFld_" + id).html(qty);
                $("#addBtn_" + id).html("Added");
            }
        );
    },
    remove: function(id) {
        
        var okToRemove = confirm('Are you sure to remove this item from cart?');
        if(!okToRemove)return;

        var rowObj = $("#cart_row_" + id);
        var params = { _room:'cart', _action:'remove' ,
                        shopType: 'product', showHTML: 0 ,
                        cart_id: id};

        var url = "/index.php?" + $.param(params);

        $.getJSON(url,
            function(json){
                var errorCount = json.errorCount;

                if(errorCount > 0){
                    alert(json.errorMsg);
                    return;
                }
                rowObj.remove();
                if(json.itemCount == 0){
                    window.location = "/cart/view-cart/";
                }
            }
        );
    },
    empty: function() {

        var okToRemove = confirm('Are you sure to remove all the items from cart?');
        if(!okToRemove)return;

        var params = { _room:'cart', _action:'empty' ,
                        shopType: 'product'};

        window.location = "/index.php?" + $.param(params);
    },
    update: function() {
        var options = {
                success: Cart.updateSuccess,
                beforeSubmit: function() {},
                dataType: 'json'
            };

        $('#viewCartForm').ajaxForm(options);
        $('#viewCartForm').submit();
    },
    updateSuccess: function(json){
        alert("Your cart is updated");
        window.location = "/cart/view-cart/";
    },
    duplicate: function(id) {

        var okToDuplicate = confirm('Are you sure to duplicate this order? This will replace all the items in your cart.');
        if(!okToDuplicate)return;

        var params = { _room:'cart', _action:'duplicate' ,
                        shopType: 'product', showHTML: 0,
                        order_id: id};
        var url = "/index.php?" + $.param(params);
        $.getJSON(url,
            function(json){
                var errorCount = json.errorCount;

                if(errorCount > 0){
                    alert(json.errorMsg);
                    return;
                }
                else {
                    window.location = "/cart/view-cart/";
                }
            }
        );
    }

}