Subversion Repositories SmartDukaan

Rev

Rev 1640 | Rev 5145 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

$(function(){
        var utils = {
                        lastQueryType: -1,
                        
                        orderIdSelector: null,
                        
                        subjectTextBox: null,

                        resetProductSelector: function()        {
                                $('#product').html('<option value="-1">Select Product</option>').attr('disabled', 'true');
                        },
                        resetForm: function()   {
                                $('#communication_category').val("-1");
                                $('#orderComponent, #awbComponent, #productComponent, #subjectComponent, #msgComponent').hide();
                                this.resetProductSelector();
                                $('label.error').remove();
                                $('#submit').attr('disabled', 'disabled');
                                $('#resetFormButton').attr('disabled', 'disabled');
                        },
                        activateResetButton: function() {
                                $('#resetFormButton').removeAttr('disabled');
                        },
                        checkAndUpdateOrderSelector: function() {
                                if (this.lastQueryType == 1 || this.lastQueryType == 2) {
                                        jQuery.ajax({
                                                type: "GET",
                                                url: "/contact-us/all_orders",
                                                success: function(data) {
                                                        $("#order_id").html(data);
                                                }
                                        });
                                }
                        },
                        removeOrderIdSelector: function()       {
                                if(this.orderIdSelector == null)        {
                                        this.orderIdSelector = $('#order_id').clone(true);
                                        $('#order_id').remove();
                                }
                        },
                        addOrderIdSelector: function()  {
                                $(this.orderIdSelector).appendTo('#orderComponent');
                                this.orderIdSelector = null;
                        },
                        removeSubjectBox: function()    {
                                if(this.subjectTextBox == null) {
                                        this.subjectTextBox = $('#subject').clone(true);
                                        $('#subject').remove();
                                }
                        },
                        addSubjectBox: function()       {
                                $(this.subjectTextBox).appendTo('#subjectComponent');
                                this.subjectTextBox = null;
                        }
        };
        
        $('#resetFormButton').click(function() {
                utils.resetForm();
        });
        
        
        $('#communication_category').change(function(){
                $('#orderComponent, #awbComponent, #productComponent, #subjectComponent, #msgComponent').hide();
                $('#frmContactUs input[name="submit"]').removeAttr('disabled');
                utils.resetProductSelector();
                utils.activateResetButton();
                $('label.error').remove();
                
                switch(parseInt($(this).val())) {

                        case 1:
                                $('#orderComponent, #productComponent, #subjectComponent, #msgComponent').show();
                                $('#lblSubject').html('Reason');
                                $('#reason_to_return').attr('name', 'subject').show();
                                $('#delivery_problem, #subject').removeAttr('name').hide();
                                
                                utils.addOrderIdSelector();
                                utils.removeSubjectBox();
                                
                                jQuery.ajax({
                                        type: "GET",
                                        url: "/contact-us/to_return",
                                        success: function(data) {
                                                if($.trim(data) == "<option value='-1'>No Orders Found</option>")       {
                                                        alert("You don't hany any completed orders.");
                                                        utils.resetForm();
                                                }
                                                else    {
                                                        $("#order_id").html(data);
                                                }
                                        }
                                });
                                utils.lastQueryType = 1;
                                break;

                        case 2:
                                utils.addOrderIdSelector();
                                utils.addSubjectBox();
                                
                                $('#orderComponent, #subjectComponent, #msgComponent').show();
                                $('#lblSubject').html('Reason');
                                $('#subject').attr('name', 'subject').show();
                                $('#delivery_problem, #reason_to_return').removeAttr('name').hide();

                                jQuery.ajax({
                                        type: "GET",
                                        url: "/contact-us/to_cancel",
                                        success: function(data) {
                                                if($.trim(data) == "<option value='-1'>No Orders Found</option>")       {
                                                        alert("You don't have any completed orders.");
                                                        utils.resetForm();
                                                }
                                                else    {
                                                        $("#order_id").html(data);
                                                }
                                        }
                                });
                                utils.lastQueryType = 2;
                                break;

                        case 3:
                                $('#orderComponent, #subjectComponent, #msgComponent').show();
                                $('#lblSubject').html('Problem Type');
                                $('#delivery_problem').attr('name', 'subject').show();
                                $('#reason_to_return, #subject').removeAttr('name').hide();

                                utils.removeSubjectBox();
                                utils.addOrderIdSelector();
                                utils.checkAndUpdateOrderSelector();
                                utils.lastQueryType = 3;
                                break;

                        case 4:
                                $('#orderComponent, #msgComponent').show();

                                utils.removeSubjectBox();
                                utils.addOrderIdSelector();
                                utils.checkAndUpdateOrderSelector();
                                utils.lastQueryType = 4;
                                break;

                        case 5:
                                $('#orderComponent, #msgComponent').show();
                                utils.removeSubjectBox();
                                utils.addOrderIdSelector();
                                
                                utils.checkAndUpdateOrderSelector();
                                utils.lastQueryType = 5;
                                break;

                        case 6:
                                utils.addSubjectBox();
                                utils.removeOrderIdSelector();
                                $('#subjectComponent, #msgComponent').show();
                                $('#lblSubject').html('Product Title');
                                $('#subject').attr('name', 'subject').show();
                                $('#delivery_problem, #reason_to_return').removeAttr('name').hide();
                                utils.checkAndUpdateOrderSelector();
                                
                                utils.lastQueryType = 6;
                                break;

                        case 7:
                                utils.addSubjectBox();
                                utils.removeOrderIdSelector();
                                
                                $('#subjectComponent, #msgComponent').show();
                                $('#lblSubject').html('Subject');
                                $('#subject').attr('name', 'subject').show();
                                $('#delivery_problem, #reason_to_return').removeAttr('name').hide();
                                utils.checkAndUpdateOrderSelector();
                                
                                utils.lastQueryType = 7;
                                break;

                        default:
                                utils.resetForm();
                                break;
                }
        });
        
        $('#order_id').change(function(){
                var orderId = parseInt($(this).val());

                if(isNaN(orderId))      {
                        alert("Order Id must be an integer");
                } else  {
                        jQuery.ajax({
                                type: "GET",
                                url: "/contact-us/" + orderId + "",
                                success: function(data) {
                                        $("#product").removeAttr('disabled').html(data);
                                }
                        });
                }
        });
        
        $('form[name="frmContactUs"]').validate({
                rules: {
                        email: {
                                required: true,
                                email: true
                        },
                        order_id: {
                                required: true,
                                digits: true
/*                              required: {
                                        depends: function()     {
                                                return $('#orderComponent:visible');
                                        }
                                },
                                digits: {
                                        depends: function()     {
                                                return $('#orderComponent:visible');
                                        }
                                }*/
                        },
                        subject: {
                                required: true
                        }
                },
                messages: {
                        order_id: {
                                digits: "Order ID must be a valid number"
                        }
                }
        });
});