var WishList = {
    addToWishList: function(e) {
        e.preventDefault();        
        var product_id   = this.id;
        Util.showProgressInd();
    
        var url= '/index.php?_room=shopping&_spAction=addToWishList&showHTML=0&product_id=' + product_id;
        $.getJSON(url, function(json) {
            if (json.status == 'error') {
                Util.hideProgressInd();
                Util.alert(json.errorMsg);
                return;
            } else {
                Util.hideProgressInd();
                Util.alert(json.html);
                return;
            }
        });
    },
    
    removeWishList: function(e) {
        e.preventDefault();        
        var wish_list_id = this.id;
        Util.showProgressInd();

        var url= '/index.php?_room=member&_spAction=removeWishList&showHTML=0&wish_list_id=' + wish_list_id;
        $.get(url, function(data) {
            Util.hideProgressInd();
            document.location = document.location;
        });
    }
}

//=====================================================//
//** extending the master Util class
var Util = $.extend(Util, {
    setUpForm: function(formName){
        $(function() {
            var extraPar = {
                callback: function(json) {
                    if (json.returnText != ''){
                        $('#dialog').dialog('close');
                        $('#dialog').dialog('destroy');
                        Util.showSimpleMessageInDialog(json.returnText);
                    }
                }
            }

            var options = {
                success: function(json, statusText, jqFormObj) {
                    Validate.validateFormData(json, statusText, jqFormObj, extraPar);
                    Util.hideProgressInd();
                },
                beforeSubmit: function(frmData) {
                    Util.showProgressInd();
                },
                dataType: 'json'

            };
            $('#' + formName).ajaxForm(options);
        });
    }
});

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

});

var Common = {
    openFooterLinksDialog: function(w, h) {
        var url = $(this).attr('href');

        xButtons ={};

        if (!w){
           w = 600;
        }
        
        if (!h){
           h = 500;
        }
        
        $.get(url, function(data){
            Util.initDialog();
            $('#dialog').html(data);
            var x_dialog = $('#dialog').dialog(
                $.extend(Util.dialogDefaults, {
                    width: w,
                    height: h,
                    buttons: xButtons,
                    title: ''
                })
            );
        });
    }
}
//------------------------------------------------//
var Dialog = {

    setUpForm: function(formName) {
        $('#' + formName).livequery(function() {

            /****************************************************/
            var extraPar = {
                callback: function(json) {
                    if (json.returnText != ''){
                        $('#dialog').dialog('close');
                        $('#dialog').dialog('destroy');
                        Util.showSimpleMessageInDialog(json.returnText);
                    }
                }
            }

            var options = {
                success: function(json, statusText, jqFormObj) {
                    Validate.validateFormData(json, statusText, jqFormObj, extraPar);
                    Util.hideProgressInd();
                },
                beforeSubmit: function(frmData) {
                    Util.showProgressInd();
                },
                dataType: 'json'
            };

            $('#' + formName).ajaxForm(options);

        });
    },

    openDialog: function(formName, dialogTitle, w, h) {
        if (!w){
           w = 485;
        }
        
        if (!h){
           h = 410;
        }

        url = $(this).attr('href');

        Util.showProgressInd();

        $.get(url, function(data){
            Util.initDialog();
            $('#dialog').html(data);

            var xButtons = {};

            xButtons[Lang.data.submit] = function() {
                $('#' + formName).submit();
            };

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

            var x_dialog = $('#dialog').dialog(
                $.extend(Util.dialogDefaults, {
                    width: w,
                    height: h,
                    title: dialogTitle,
                    buttons: xButtons
                })
            );
            Util.hideProgressInd();
        });
    }
}

var EmailFriend = {
    emailToFriendForm: function(e) {
        var extraPar = {
            callback: function() {
                var msg = "<div class='sysMessage'>Your message has been sent successfully.</div>";
                $('#emailToFriendForm').html(msg);
            }
        }

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

var Enquiry = {
    enquiryForm: function(e) {
        var extraPar = {
            callback: function() {
                var msg = "<div class='sysMessage'>Thanks for contacting us. We will respond to your enquiry as soon as possible.</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 Signup = {
    signupForm: function(e) {
        var extraPar = {
            callback: function() {
                var msg = "<div class='sysMessage'>Thanks for signing up.</div>";
                $('#signupForm').html(msg);
            }
        }

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

}


//=====================================================//
var Shopping = {
    submitEnquiry: function(e) {
        e.preventDefault();
        var url = $(this).attr('href');
        if (url == '' || url == 'javascript:void(0)'){
            url = $(this).attr('link');
        }

        Util.showProgressInd();

        var xButtons = {};

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

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

        $.get(url, function(data){
            Util.initDialog();
            $('#dialog').dialog(
                $.extend(Util.dialogDefaults, {
                    width: 485,
                    height: 530,
                    title: Lang.data.enquiryForm,
                    buttons: xButtons
                })
            );
            $('#dialog').html(data);
            Util.hideProgressInd();
        });
    }
}

