var MassageCreditsForm = {
    selected_payment_method: 'bibit',
    convertible_credit: null,

    init: function () {
        if (!$('bibit_radio')) {
            MassageCreditsForm.selected_payment_method = 'metacharge';
        }

        if ($('order_credit')) {
            MassageCreditsForm.initPaymentMethodButton();
        }

        if ($('choose_credit_amount')) {
            MassageCreditsForm.initAmountCreditButton();
        }

        if ($('convertcredits')) {
            MassageCreditsForm.initConvertCreditButton();
        }
    },

    // init form action for buttons
    initAmountCreditButton: function() {
        var inputs = new Array(
            'credit_amount',
            'minimum_credits_balance'
        );

        for (var i = 0, l = inputs.length; i < l; i++) {
            if ($(inputs[i])) {
                $(inputs[i]).onkeyup = MassageCreditsForm.setAmountCreditAction;
            }
        }
    },

    // set action for button evenement
    setAmountCreditAction: function(e) {
        var elm;
        try {
            elm = Event.element(e);
        } catch (error) {

        }

        var price_field = $('price');
        var current_credit_value = $('current_credit_value');
        var offered_credits_field = $('offered_credits');

        switch (this.id) {
            case 'credit_amount':
            case 'minimum_credits_balance':
                if ((!this.value.match(/^[0-9]+$/) || this.value < 5) && (this.id != 'minimum_credits_balance' || this.value != 0)) {
                    if (elm) {
                        Element.addClassName(elm, 'error_msg_bg');
                    }

                    Element.addClassName(price_field, 'error_msg_bg');
                    price_field.value = '< 5';

                    if (offered_credits_field) {
                        Element.hideExt($('offered_credits_line'));
                    }
                } else {
                    if (elm) {
                        Element.removeClassName(elm, 'error_msg_bg');
                    }

                    Element.removeClassName(price_field, 'error_msg_bg');
                    price_field.value = Math.round(current_credit_value.value * this.value * 100) / 100;

                    if(offered_credits_field) {
                        if (this.value >= 100) {
                            offered_credits_field.value = Math.floor(this.value / 10);
                            Element.showTr($('offered_credits_line'));
                        } else {
                            Element.hideExt($('offered_credits_line'));
                        }
                    }
                }

                break;

            default:
                //alert('No action for : '  + this.id);
        }

        return false;
    },

    // set action for button evenement
    setConvertCreditAction: function() {
        var convertible_credit = $('convertible_credit');
        var conversion_value = $('conversion_value');
        var conversion_fee = $('conversion_fee');
        var conversion_email_label = $('conversion_email_label');

        switch(this.id) {
            case 'convert_amount':
                if (this.value.match(/^[0-9]+$/) && parseInt(this.value) > 1) {

                   if (parseInt(this.value) > MassageCreditsForm.convertible_credit) {
                       // display message
                       alert(_('You do not have enough credits.'));

                       this.value = MassageCreditsForm.convertible_credit;
                       return false;
                   }

                } else {
                    // reset values
                    this.value = 2;

                    // display message
                    alert(_('Minimum price is 2 credits and only integers value are allowed.'));
                }

                break;

            case 'conversion_method':
                //Element.update(conversion_email_label, _('Your ' + this.options[this.selectedIndex].text + ' address:'));
                break;

            default:
                //alert('No action for : '  + this.id);
        }

        return false;
    }
}

/**
 * Launch script
 */
Event.onDOMReady(
    function() {
        MassageCreditsForm.init();
    }
);

