var ticketnet_searchform_actions = {

    selected_values: {
        category_code: '',
        sub_category_code: '',
        country_code: '',
        region_code: '',
        departement_code: ''
    },

    init: function(category_code, sub_category_code, country_code, region_code, departement_code)
    {
        if (!$('ticketnet_search')) {
            return;
        }

        ticketnet_searchform_actions.selected_values.category_code = category_code;
        ticketnet_searchform_actions.selected_values.sub_category_code = sub_category_code;
        ticketnet_searchform_actions.selected_values.country_code = country_code;
        ticketnet_searchform_actions.selected_values.region_code = region_code;
        ticketnet_searchform_actions.selected_values.departement_code = departement_code;

        $('search_category').onchange = ticketnet_searchform_actions.updateSubCategorySelector;
        $('search_country').onchange = ticketnet_searchform_actions.updateRegionSelector;
        $('search_region').onchange = ticketnet_searchform_actions.updateDepartementSelector;

        ticketnet_searchform_actions.updateSubCategorySelector();
        ticketnet_searchform_actions.updateRegionSelector();
        ticketnet_searchform_actions.updateDepartementSelector();

        ticketnet_searchform_actions.selected_values.category_code = '';
        ticketnet_searchform_actions.selected_values.sub_category_code = '';
        ticketnet_searchform_actions.selected_values.country_code = '';
        ticketnet_searchform_actions.selected_values.region_code = '';
        ticketnet_searchform_actions.selected_values.departement_code = '';
    },

    updateSubCategorySelector: function()
    {
        var url = '/rpc/index.php?method=rpcTicketnet.getFormSubCategoriesList';
        var params = new Hash();

        params.merge({ program_code: $('program_code').value });

        if (ticketnet_searchform_actions.selected_values.category_code && ticketnet_searchform_actions.selected_values.sub_category_code) {
            params = params.merge({ category_code: ticketnet_searchform_actions.selected_values.category_code });
            params = params.merge({ sub_category_code: ticketnet_searchform_actions.selected_values.sub_category_code });
        } else {
            var category_field = $('search_category');
            params = params.merge({ category_code: category_field.options[category_field.selectedIndex].value });
        }
        var myAjax = new Ajax.Request(url,
            {
                method: 'post',
                parameters: params,
//                 onComplete: ticketnet_searchform_actions.fillRegionSelector
                onComplete: ajaxActions.callBack
            }
        );
    },

    updateRegionSelector: function()
    {
        var url = '/rpc/index.php?method=rpcTicketnet.getFormRegionsList';
        var params = new Hash();

        params.merge({ program_code: $('program_code').value });

        if (ticketnet_searchform_actions.selected_values.country_code && ticketnet_searchform_actions.selected_values.region_code) {
            params = params.merge({ country_code: ticketnet_searchform_actions.selected_values.country_code });
            params = params.merge({ region_code: ticketnet_searchform_actions.selected_values.region_code });
        } else {
            var country_field = $('search_country');
            params = params.merge({ country_code: country_field.options[country_field.selectedIndex].value });
            params = params.merge({ update_departements_select: 1 });
        }

        var myAjax = new Ajax.Request(url,
            {
                method: 'post',
                parameters: params,
//                 onComplete: ticketnet_searchform_actions.fillRegionSelector
                onComplete: ajaxActions.callBack
            }
        );
    },

    updateDepartementSelector: function()
    {
        var url = '/rpc/index.php?method=rpcTicketnet.getFormDepartementsList';
        var params = new Hash();

        params.merge({ program_code: $('program_code').value });

        if (ticketnet_searchform_actions.selected_values.country_code && ticketnet_searchform_actions.selected_values.region_code && ticketnet_searchform_actions.selected_values.departement_code) {
            params = params.merge({ country_code: ticketnet_searchform_actions.selected_values.country_code });
            params = params.merge({ region_code: ticketnet_searchform_actions.selected_values.region_code });
            params = params.merge({ departement_code: ticketnet_searchform_actions.selected_values.departement_code });
        } else {
            var country_field = $('search_country');
            params = params.merge({ country_code: country_field.options[country_field.selectedIndex].value });

            var region_field = $('search_region');
            params = params.merge({ region_code: region_field.options[region_field.selectedIndex].value });
        }

        var myAjax = new Ajax.Request(url,
            {
                method: 'post',
                parameters: params,
                onComplete: ajaxActions.callBack
            }
        );
    }
}
