﻿
(function () {

    Farima.Banks = {
        bankList: null,
        drpBanks: null,
        selectedBankInput: null,
        gateMessage: null,
        firstDrpChange: false,
        bind: function () {

            $Banks.hideExtraElements();

            $Banks.gateMessage = $('#gatewayMessage');
            $('#banks #gateway').bind('gatewaysListChanged', function () {
                if ($('#gateway option').length == 0) {
                    $Banks.gateMessage.css('display', 'none');
                }
                else {
                    $Banks.gateMessage.css('display', 'block');
                }
            });

            $Banks.customizeGatewayContainer();

            $Banks.selectedBankInput = $('div#banks input[type=hidden]#selected-bank-id');
            $Banks.bankList = $('ul#banks-list li');
            $Banks.drpBanks = $('#bankSelect');
            $Banks.drpBanks.html($Banks.drpBanks.html() + '<option value="0" title="img/none.png"></option>');
            for (i = 0; i < $Banks.bankList.length; i++) {
                var value = $Banks.bankList.get(i).id.replace('bank-number-', '');
                var persianTitle = $Banks.bankList.get(i).children[1].innerHTML;
                var englishTitle = $Banks.bankList.get(i).children[0].innerHTML;
                $Banks.drpBanks.html($Banks.drpBanks.html() + '<option value="' + value + '" title="img/' + englishTitle + '.png">' + persianTitle + '</option>');
            }

            $Banks.drpBanks.change(function () {
                var selectedOption = $(this);
                if (!$Banks.firstDrpChange) {
                    $('#bankSelect_msa_0').remove();
                    $Banks.firstDrpChange = true;
                }
                $Banks.bankList.removeClass('selected');
                $Banks.selectedBankInput.val(selectedOption.val());
                $('li#bank-number-' + selectedOption.val()).addClass('selected');
                listRelatedGateways(selectedOption.val());
            });
        },

        //عوض کردن ترتیب بعضی از بانکها با توجه به ترتیب تعداد تراکنش
        sort: function () {
            var eghtesadeNovin = $('#bankSelect_msa_10');
            eghtesadeNovin.insertAfter($('#bankSelect_msa_6'));

            var keshavarzi = $('#bankSelect_msa_11');
            keshavarzi.insertAfter(eghtesadeNovin);

            var pasargad = $('#bankSelect_msa_12');
            pasargad.insertAfter(keshavarzi);

            var maskan = $('#bankSelect_msa_9');
            maskan.insertAfter(pasargad);

            var sepah = $('#bankSelect_msa_8');
            sepah.insertAfter(maskan);

            var sina = $('#bankSelect_msa_16');
            sina.insertAfter($('#bankSelect_msa_7')/*رفاه*/);

            var sarmaye = $('#bankSelect_msa_17');
            sarmaye.insertAfter(sina);

            var karAfarin = $('#bankSelect_msa_19');
            karAfarin.insertAfter(sarmaye);

            var postBank = $('#bankSelect_msa_15');
            postBank.insertAfter(karAfarin);

            var shahr = $('#bankSelect_msa_22');
            shahr.insertAfter(postBank);

            var mehr = $('#bankSelect_msa_20');
            mehr.insertAfter($('#bankSelect_msa_13')/*توسعه و تعاون*/);

            var sanatMadan = $('#bankSelect_msa_24');
            sanatMadan.insertAfter(mehr);

            var toseeSaderat = $('#bankSelect_msa_23');
            toseeSaderat.insertAfter(sanatMadan);

            var tat = $('#bankSelect_msa_18');
            tat.insertAfter(toseeSaderat);
        },

        hideExtraElements: function () {
            $('#banks h3').hide();
            $('#banks-list').hide();
            $('#selected-bank-name').hide();
            $('#selected-gateway').hide();
        },

        customizeGatewayContainer: function () {
            var gatewayDrp = $('#gateway');
            $('#banks').append(gatewayDrp);
            var gatewaySelection = $('#gateway-selection');
            gatewaySelection.html('');
            gatewaySelection.append(gatewayDrp);
            $('#step3Submit').insertBefore(gatewayDrp);
            $('<span>پرداخت از طریق درگاه بانک</span>').insertBefore(gatewayDrp);
            $Banks.moveElementNextToPurchaseButton(gatewayDrp);

        },

        moveElementNextToPurchaseButton: function (el) {
            //move gateway drp next to purchase button
            el.css('position', 'relative');
            el.css('top', '-10px');
        }
    };


    Farima.Info = {
        align: function () {
            var container = $('#userInfo');
            var h3Element = container.find('h3');
            h3Element.remove();
            var emailDIV = container.find('div.field:nth(0)');
            var mobileDIV = container.find('div.field:nth(1)');
            mobileDIV.attr('id', 'mobileField');
            emailDIV.attr('id', 'emailField');
            mobileDIV.insertBefore(emailDIV);
        }
    };

    Farima.DRP = {
        build: function () {
            try {
                var drp = $("#bankSelect").msDropDown({ visibleRows: 8, rowHeight: 30 });
            }
            catch (e) { }
        }
    };

    Farima.Cards = {
        dataSource: null,
        cardsContainers: null,
        selectBtns: null,

        bind: function () {

            $Cards.dataSource = $('#cards');
            $Cards.dataSource.hide();

            $('#cards input:radio').attr("checked", false);
            var operators = $('div#cards ul#operators li');
            for (i = 0; i < operators.length; i++) {
                var opName = operators[i].attributes['id'].value;
                ////data faker        
//                $('div#cards ul.operator li input:checked').find(' > input[type=radio]').attr('disabled', '');
//                $('ul#' + operators[i].attributes['id'].value + '-cards li input').removeAttr("disabled");
                ////end of data faker
                var operatorCheckBoxInputs = $('ul#' + opName + '-cards li input:enabled');
                if (operatorCheckBoxInputs.length > 0) {

                    var currentOperatorCardsContainer = $('#' + opName + 'CardContainer');
                    var persianOperatorName = $Cards.getPersianOperatorName(opName);
                    for (j = 0; j < operatorCheckBoxInputs.length; j++) {
                        var elementId = opName + 'Cart' + j;
                        currentOperatorCardsContainer.append($('<span id="' + elementId + '" class="radio_img card-radio" operator="' + opName + '" value="' + operatorCheckBoxInputs.get(j).value + '" ></span><label>' + operatorCheckBoxInputs.siblings('label:nth(' + j + ')')[0].innerHTML.replace('کارت شارژ ', '').replace(persianOperatorName + '', '') + ' ریالی</label>'));
                        $('#' + elementId).click(function () {
                            var el = $(this);
                            $('.card-radio').removeClass('checked');
                            el.addClass('checked');
                            $('#' + el.attr('operator') + '-' + el.attr('value')).attr("checked", true);
                            Farima.Bill.calculateBill();
                        });
                    }

                }
                else {
                    $('li#' + opName + 'Tab').remove();
                    $('div#' + opName).remove();
                }
            }
            $Cards.selectBtns = $('.card-radio');

        },

        getPersianOperatorName: function (operatorName) {
            switch (operatorName) {
                case 'irancell':
                    return 'ایرانسل';
                case 'talia':
                    return 'تالیا';
                case 'hamrahe-aval':
                    return 'همراه اول';
            }
        },

        arrangeTabs: function () {
            $Cards.changeTab($('#selected-operator').val() + 'Tab');
            $("ul.tabs li").click(function () {
                $Cards.changeTab($(this).attr('id'));
            });
        },

        changeTab: function (operatorTabName) {

            $('li.grid_6').removeClass("active");
            $("#" + operatorTabName).addClass("active");

            if ($Cards.cardsContainers == null) {
                $Cards.cardsContainers = $(".tabContent");
            }
            $Cards.cardsContainers.hide();
            $('#' + operatorTabName.replace('Tab', '') + 'Cont').fadeIn();

            if ($Cards.selectBtns != null) {
                $Cards.selectBtns.removeClass('checked');
                $('div#cards ul.operator li input').attr('checked', false);
            }
            $Count.countBtns.eq(0).click();
        }
    };

    Farima.Count = {
        countBtns: null,
        bind: function () {
            $Count.countBtns = $('.count-radio');
            $Count.countBtns.click(function () {
                var el = $(this);
                $Count.countBtns.removeClass('checked');
                $('.number_' + el.attr('value')).addClass('checked');
                $('#quantity').val(el.attr('value'));
                Farima.Bill.calculateBill();
            });
            $Count.countBtns.eq(0).click();
        }
    };

    Farima.Bill = {
        calculateBill: function () {
            var li = $('div#cards ul.operator li input:checked').parent();
            if (li.length == 0) {
                $('div#bill #bill-card-type td.value span').text('');
                $('div#bill #bill-unit-price td.value span').text('');
                $('div#bill #bill-order-quantity td.value span').text('');
                $('div#bill #bill-total-price td.value span').text('');
                return;
            }

            $('div#bill #bill-card-type td.value span').text(li.find(' > label').text());
            //var cardPrice = cardValues[li.find(' > input[type=radio]').val()];
            var cardPrice = li.find(' > span.price').text();
            $('div#bill #bill-unit-price td.value span').text(cardPrice + ' ریال');
            var orderQuantity = $('div#cards select#quantity').val()
            $('div#bill #bill-order-quantity td.value span').text(orderQuantity);
            $('div#bill #bill-total-price td.value span').text(cardPrice * orderQuantity + ' ریال');
            //li.find(' > input[type=radio]').attr('checked', 'checked');
            //return false;

        }
    };

    Farima.Wizard = {
        makeAccordion: function () {
            $("#mainContent").msAccordion();

            $("#mainContent_msTitle_0").click(function () {
                $('#mainContent_msTitle_0').trigger('change');
            });

            $("#userInfoBtn").click(function () {
                $('#mainContent_msTitle_1').click();
            });

            $("#mainContent_msTitle_1").click(function () {
                var text = '';
                var formMessages;
                $('div#userInfo input:text').each(function () {
                    text += $(this).val();
                });
                formMessages = $('#formMessages');
                if (text == '') {
                    if (typeof formMessages[0] == 'undefined') {
                        alert('لطفاً برای استفاده از خدمات پشتیبانی سایت، ایمیل یا موبایل خود را وارد کنید');
                    }
                    else {
                        formMessages.find('div.user-info-message').remove();
                        formMessages.append('<div class=\'error user-info-message\'><p>لطفاً برای استفاده از خدمات پشتیبانی سایت، ایمیل یا موبایل خود را وارد کنید</p><span class=\'icon\'></span></div>').triggerHandler('contentChanged');
                        $('html').animate({ scrollTop: 0 }, 'fast');
                    }
                    return;
                }
                else {
                    if (typeof formMessages[0] != 'undefined') {
                        formMessages.find('div.user-info-message').remove();
                    }
                    $('#mainContent_msTitle_1').trigger('change');
                }
            });

            $("#mainContent_msTitle_2").click(function () {
                var formMessages = $('#formMessages');
                if ($('div#cards input:radio:checked').length == 0) {
                    if (typeof formMessages[0] == 'undefined') {
                        alert('ابتدا کارت مورد نظرتان را انتخاب نمایید');
                    }
                    else {
                        formMessages.find('div.cards-message').remove();
                        formMessages.append('<div class=\'error cards-message\'><p>ابتدا کارت مورد نظرتان را انتخاب نمایید</p><span class=\'icon\'></span></div>').triggerHandler('contentChanged');
                        $('html').animate({ scrollTop: 0 }, 'fast');
                    }

                }
                else {
                    if (typeof formMessages[0] != 'undefined') {
                        formMessages.find('div.cards-message').remove();
                        $('#mainContent_msTitle_2').trigger('change');
                    }

                }

            });

            $(".step2Button").click(function () {
                $('#mainContent_msTitle_2').click();

            });
        }
    };

    $Banks = Farima.Banks;
    $Info = Farima.Info;
    $Cards = Farima.Cards;
    $Count = Farima.Count;
    $DRP = Farima.DRP;

    $(document).ready(function () {
        $Banks.bind();
        $DRP.build();
        $Banks.sort();
        $Info.align();
        $Count.bind();
        $Cards.arrangeTabs();
        $Cards.bind();
        Farima.Wizard.makeAccordion();
        $('#step3Submit').click(function () { $('form').submit() });



    });

})();

