jQuery( function($) 
{
    $('#add_region').addClass('hidden');
        var region_tree = [];
        var topic_name; 
        var makeOverlay = function()
        {
            var ol = $('<div id="overlay"></div>');
            ol.append($('#nav_region_list_inner').clone().get(0));
            // remove that extra little div that does the visual connection
            $('#nav_region_list_connector',ol).remove();
            // get rid of the 3 special World regions
            $('table table :first',ol).remove();
            $('table td :first',ol).remove();
            // get ready to make the urls of each cross page
            // we want urls like this:
            //  http://roubinibeta.rgemonitor.com/topic/government-bonds.php?bg=Government%20Bonds&rg=Estonia 
            var base_url = window.location.href;
            var this_page = $('#main_head H1').text().replace(/ /g,'+'); 
            // set up the 
            $('A[href]',ol).each( function() {  
                if (typeof(this.text) == 'undefined') { this.text = this.innerHTML; }
                var link_part = this.text.replace(/ /g,'+');
                this.href = base_url + "?bg=" + this_page + "&rg=" + link_part;
            });
            $('A[href].subregion',ol).each( function() {
                if (typeof(this.text) == 'undefined') { this.text = this.innerHTML; }
                $(this).css({'font-weight': 'bold'});
            });
            $('#nav_region_list_inner>TABLE.nav_region_list>TBODY>TR>TD',ol).each( function() {
                $('A:first',this).css({'font-weight': 'bold','font-size':'11px'});
            });

            return ol;
        }
        var ParseRegionTreeJsonToHtml = function(json_resp) 
        {
            var i = 0;
            var j = 0;
            for(var flev_region in json_resp) {
                i = region_tree.length;
                region_tree[i] = { 'name':flev_region, 'children':[] };
                for(var slev_region in json_resp[flev_region]) {
                    j = region_tree[i].children.length;
                                    region_tree[i].children[j] = { 
                        'name':slev_region, 
                        'children':json_resp[flev_region][slev_region] 
                    };
                }
            }
            var data = {
                'path':location.pathname, 
                'topicname':topic_name,
                'region_tree':region_tree
            };
            var overlay = TrimPath.processDOMTemplate("topic_selector", data);
        }
        var setupOverlay = function() 
        {
            var overlay = makeOverlay();
            var showing_cross = false;
            var scrim = $('<div id="cross-scrim">&nbsp;</div>');
            var clone_button = $('<div id="clone_add_region" class="button">  ADD COUNTRY &nbsp; <span class="close">[ CLOSE X ]</span></div>');
            // var clone_button = $('#add_topic').clone(true);
            $('body').append(scrim);
            $('body').append(overlay);
            clone_button.addClass('active');
            clone_button.removeClass('hidden');
            $('#overlay').prepend(clone_button);
            $('#overlay').addClass('hidden');
            $('#add_region').removeClass('hidden');
            $('#clone_add_region').click(function(event) { 
                    hideTopicCross(); 
            });
            var closeOnEsc = function(e) {
                // close form if ESC is pressed
                 if (e.keyCode == 27) {
                    hideRegionCross();
                 }
            }
            var hideTopicCross = function() {
                scrim.removeClass('visible');
                $('#overlay').addClass('hidden');       
                $('#add_region').removeClass('hidden');  
                showing_cross=false;
            }
            var showTopicCross = function() {
                scrim.addClass('visible');
                $('#overlay').removeClass('hidden');
                $('#add_region').addClass('hidden');     
                $(document).bind('keyup', closeOnEsc);
                showing_cross=true;
            }
            $('#add_region').click(function(event) {
                if (showing_cross) { 
                        hideTopicCross(); 
                } else { 
                        showTopicCross();
                }
                return false;
            });            
        } // end ParseRegionTreeJsonToHtml
        var init_topic_cross = function() {
            setupOverlay();
            topic_name = $('#main_head > h1').text();
        };
        init_topic_cross();
});
