//=====================================================//
var LoadReady = {

    register: function(exPar){
        $(function() {
            var options = {
                url: exPar['formAction'],
                success: Validate.validateFormData,
                beforeSubmit: function() {},
                dataType: 'json'

            };
            $('#registerForm').ajaxForm(options);
        });
    },

    login: function(exPar){
        $(function() {
            var options = {
                url: exPar['formAction'],
                success: Validate.validateFormData,
                returnType: 'xml',
                beforeSubmit: function() {},
                dataType: 'json'
            };
            $('#loginForm').ajaxForm(options);
        });
    },

    forgotPassword: function(exPar){
        $(function() {
            var options = {
                url: exPar['formAction'],
                success: Validate.validateFormData,
                returnType: 'xml',
                beforeSubmit: function() {},
                dataType: 'json'
            };
            $('#frmForgotPassword').ajaxForm(options);
        });
    },

    commentForm: function(){
        $('#addComment').click(function(e) {
            e.preventDefault();

            var options = {
                success: function(json, statusText, jqFormObj) {
                    extraPar= {callback: function(){
                        var returnText = json.returnText;
                        $("#commentsList").html(returnText);
                        $('#frmComment').resetForm();
                        $('#commentForm').show();
                        document.location = '#commentForm';
                    }}
                    Validate.validateFormData(json, statusText, jqFormObj, extraPar);
                    Util.hideProgressInd();
                },
                beforeSubmit: function() {
                    $('#commentForm').hide();
                    Util.showProgressInd();
                },
                dataType: 'json'
            };

            $('#frmComment').ajaxForm(options);
            $('#frmComment').submit();
        });
    },

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

    toggleSlideBox: function() {
        $(function() {
            $('.slideBox').hide();

            $('a.clickToSlide')
            .livequery('click', function(e) {
                e.preventDefault();
                var parent     = $(this).closest('.slideBoxParent');
                var slideBox = $('.slideBox', parent)
                $(slideBox).slideToggle('slow');
            });
        });
    },

    basket: function(){
        $(function() {
            Basket.setupShippingForm();
            $('#emptyBasket').click(function(e) {
                e.preventDefault();
                var emptyBasket = confirm('Are you sure to empty shopping bag');
                if (emptyBasket) {
                    document.location = $(this).attr('href');
                }
            });
            $('.basketQty').change(function(e) {
                var url = "/index.php?_room=basket&_spAction=updateBasket&room=&showHTML=0" ;
                var basket_id = $(this).attr('basket_id');
                var qty = $(this).val();
                var data = {'basket_id': basket_id, 'qty': qty}
                Util.showProgressInd('Updating...');
                $.post(url, data, function (json) {
                    Util.hideProgressInd();
                    if (json.status == 'success') {
                        alert(json.html);
                        document.location = json.basketUrl;
                    }
                }, 'json');

            });

            $('#fld_cust_address_country').change(function() {
                var country = $(this).val();
                if (Util.isCountryUS(country)) {
                    $('#fld_cust_address_state').parent('div').slideDown();
                } else {
                    $('#fld_cust_address_state').parent('div')
                    .slideUp(function() {
                        $('#fld_cust_address_state').val('');
                    });
                }
            });
            $('#fld_shipping_address_country').change(function() {
                var country = $(this).val();
                if (Util.isCountryUS(country)) {
                    $('#fld_shipping_address_state').parent('div').slideDown();
                } else {
                    $('#fld_shipping_address_state').parent('div')
                    .slideUp(function() {
                        $('#fld_shipping_address_state').val('');
                    });
                }
            });

            //promocode update
            $('a.updatePromoCode').click(function(e) {
                Basket.updatePromoCode.call(this, e);
            });

            //copy billinig info to delivery
            $('a#copyBillingToDelivery').click(function(e) {
                Basket.copyBillingToDeliveryAddress.call(this, e);
            });



            //call local load ready function
            if ( LoadReady.basketLocal != undefined) {
                LoadReady.basketLocal();
            }
        });
    },

    setupKeywordSearch: function(){
        //search form
        $('#keyword').focus(function() {
            if ($(this).val() == 'product search') {
                $(this).val('');
            }
        })
        .blur(function() {
            if ($(this).val() == '') {
                $(this).val('product search');
            }
        });
    },

    setupMiniCart: function(){
        var miniCartHover = false;

        //miniCart functions
        $('a.miniCartLink').hover(Basket.showMiniCart,
        function() {
            setTimeout(function() {
                if (!miniCartHover) {
                    $('#miniCart').slideUp();
                }
            }, 2000);
        });
        
        $('#miniCart').mouseover(function() {
            miniCartHover = true;
        });
        $('#miniCart').mouseleave(function() {
            miniCartHover = false;
            setTimeout(function() {
                $('#miniCart').slideUp();
            }, 3000);
        
        });
    }

}

