// example text
example_dict = new dojo.collections.Dictionary();
example_dict.add('id_subscription_code', '仅限续订用户填写');



// show/hide html tags based on a boolean
function display(selector, mark) {
    if (mark) {
        $(selector).show();
    } else {
        $(selector).hide();
    }
}

var SYNC_PAYER_INFO_ID = '#id_sync_payer_info';
var SYNC_PAYER_INFO_BLOCK = '#payer_info';

// sync payer information
function register_sync_payer_info() { 
    var callback = function() {
        display(SYNC_PAYER_INFO_BLOCK, ! $(SYNC_PAYER_INFO_ID).attr('checked'));
    };
    $(SYNC_PAYER_INFO_ID).click(callback);
    callback(); // triggle event
}

var IS_RENEWAL_ID = '#id_is_renewal';
var SUBSCRIPTION_CODE_BLOCK = '#subscription_code';
var RENEWAL_GIFT_BLOCK = '#renewal_gift'

// renewal user
function register_renewal() {
    var callback = function() {
        display(SUBSCRIPTION_CODE_BLOCK, $(IS_RENEWAL_ID).attr('checked'));
        display(RENEWAL_GIFT_BLOCK, $(IS_RENEWAL_ID).attr('checked'));
    };
    $(IS_RENEWAL_ID).click(callback);
    callback(); // triggle event
};

// subscription type
var SUBSCRIPTION_AREA_ID = '#id_subscription_area';
var SUBSCRIPTION_TYPE_ID = '#id_subscription_type';
var SUBSCRIPTION_RENEWAL_GIFT_BLOCK = '#renewal_gift_field';
var SUBSCRIPTION_GIFT_BLOCK = '#gift_field';
var SUBSCRIPTION_PAYMENT_TYPE_BLOCK = '#subscription_payment_type_field';

var SUBSCRIPTION_GIFT_AJAX_URL = '/subscription/gift/';
var SUBSCRIPTION_RENEWAL_GIFT_AJAX_URL = '/subscription/renewal-gift/';
var SUBSCRIPTION_PAYMENT_TYPE_AJAX_URL = '/subscription/payment-type/';

function subscription_type_handler() {
    var data = { area: $(SUBSCRIPTION_AREA_ID).val(),
                 subscription_type_id: $(SUBSCRIPTION_TYPE_ID).val(),
                 gift_id: $('#id_gift').val(),
                 renewal_gift_id: $('#id_renewal_gift').val()
    };
    var callback = function (data) {
        $(SUBSCRIPTION_GIFT_BLOCK).html(data);
    };
    $.get(SUBSCRIPTION_GIFT_AJAX_URL, data, callback);
    var callback = function (data) {
        $(SUBSCRIPTION_RENEWAL_GIFT_BLOCK).html(data);
    };
    $.get(SUBSCRIPTION_RENEWAL_GIFT_AJAX_URL, data, callback);
    callback = function (data) {
        $(SUBSCRIPTION_PAYMENT_TYPE_BLOCK).html(data);
    };
    $.get(SUBSCRIPTION_PAYMENT_TYPE_AJAX_URL, data, callback);
}

function register_subscription_type() {
    $(SUBSCRIPTION_TYPE_ID).change(subscription_type_handler);
}

// subscription area
var SUBSCRIPTION_TYPE_BLOCK = '#subscription_type_field';
var SUBSCRIPTION_TYPE_AJAX_URL = '/subscription/subscription-type/';

function register_subscription_area() {
    $(SUBSCRIPTION_AREA_ID).change(function() {
            var data = { area: $(SUBSCRIPTION_AREA_ID).val(),
                         subscription_type_id: $(SUBSCRIPTION_TYPE_ID).val()
            };
            var callback = function (data) {
                $(SUBSCRIPTION_TYPE_BLOCK).html(data);
                register_subscription_type()
                $(SUBSCRIPTION_TYPE_ID).change();
            };
            $.get(SUBSCRIPTION_TYPE_AJAX_URL, data, callback);
        });
    $(SUBSCRIPTION_AREA_ID).change(); // triggle change
}

$(document).ready(register_sync_payer_info);
$(document).ready(register_renewal);
$(document).ready(register_subscription_area);

