jQuery(document).ready(function(){
    RMHC.country.init();
});

RMHC.country = {
    init : function() {
        var controls = jQuery('\
            <ul class="tabs">\
                <li class="map"><a href="#map" class="active">Map</a></li>\
                <li class="listings"><a href="#listings">Listings</a></li>\
            </ul>\
            <div class="box-gray">\
                <div class="locations">\
                    <div id="map" class="tab-content"><div id="map_swf"></div></div>\
                    <div id="listings" class="tab-content" style="display: none;"></div>\
                </div>\
            </div>\
        ');

        jQuery('ul.articles').before(controls).show();

        jQuery('div.news').appendTo('div.box-gray').show();

        var ul_continents = jQuery('<ul class="continents"></ul>');
        var ul_article_index = jQuery('<ul class="article-index"></ul>');
        var continents = Array();
        jQuery('li.article p.location span.continent').each(function() {
            jQuery(this).hide();

            var continent = jQuery(this).text();
            var slug = RMHC.country.slugify(continent);

            if (jQuery.inArray(continent, continents) == -1) {
                continents[continents.length] = continent;
                ul_continents.append('<li class="continent continent-' + slug + '""><a href="#' + slug + '">' + continent + '</a></li>');
                ul_article_index.append('<li class="continent continent-' + slug + '"><ul></ul></li>');
            }
        });
        jQuery('#listings').append(ul_continents).append(ul_article_index);

        jQuery('li.article').each(function() {
            var id = jQuery(this).attr('id');
            var title = jQuery('h3', this).text();
            var continent = jQuery('p.location span.continent', this).text();
            var slug = RMHC.country.slugify(continent);

            jQuery('li.continent-' + slug + ' ul').append('\
                <li><a href="/what-we-do/local-chapters-at-work/#' + id + '" class="' + id + '">' + title + '</a></li>\
            ');
        });

        var hash = document.location.hash;
        var current_id = hash.replace('#', '');

        if (!current_id) {
            var count = jQuery('li.article').length;
            var rand = Math.floor(Math.random()*count);
            current_id = jQuery('li.article').eq(rand).attr('id');
        }

        var current_continent = jQuery('#' + current_id + ' p.location span.continent').text();
        current_continent = RMHC.country.slugify(current_continent);

        jQuery('li.article').hide();
        jQuery('ul.article-index li.continent').hide();
        jQuery('div.news ul li').hide();

        RMHC.country.show_article(current_id, true);
        RMHC.country.show_continent(current_continent);

        jQuery('ul.continents a').click(function() {
            RMHC.country.show_continent(jQuery(this).text());
            return false;
        });

        jQuery('ul.article-index a').click(function() {
            var id = jQuery(this).attr('class');
            RMHC.country.show_article(id);
            RMHC.country.flashvars.startup_id = id;
            return false;
        });

        jQuery('ul.tabs a').click(function() {
            jQuery('ul.tabs a').removeClass('active');
            jQuery(this).addClass('active');

            var id = jQuery(this).parent().attr('class');
            RMHC.country.load_map();

            jQuery('div.locations div.tab-content').hide();
            jQuery('#' + id).show();

            return false;
        });

        var lcId = new Date().getTime();

        RMHC.country.flashvars = { xml_url : country_xml_url, lcId : lcId, startup_id : current_id };
        RMHC.country.load_map();
        RMHC.country.proxy = new FlashProxy(lcId, swf_url + '/JavaScriptFlashGateway.swf');
    },

    load_map : function() {
        swfobject.embedSWF(swf_url + '/rmhc_map.swf', 'map_swf', '502', '278', '8.0.0', express_install, RMHC.country.flashvars, { wmode: 'opaque' });
    },

    show_news : function(continent) {
        var slug = RMHC.country.slugify(continent);
        jQuery('div.news ul li').hide();
        jQuery('div.news ul li.news-' + slug).show();
    },

    show_continent : function(continent) {
        RMHC.country.show_news(continent);
        var slug = RMHC.country.slugify(continent);

        if (!jQuery('ul.continents li.continent-' + slug).get(0)) {
            return false;
        }

        jQuery('ul.continents a').removeClass('current');
        jQuery('ul.continents li.continent-' + slug + ' a').addClass('current');

        jQuery('ul.article-index li.continent').hide();
        jQuery('ul.article-index li.continent-' + slug).show();
    },

    get_article_continent : function(id) {
        var continent = jQuery('#' + id).find('span.continent').text();
        return RMHC.country.slugify(continent);
    },

    show_article : function(id, noseek) {
        var continent = RMHC.country.get_article_continent(id);
        RMHC.country.show_news(continent);

        jQuery('ul.article-index a').removeClass('current');
        jQuery('ul.article-index a.' + id).addClass('current');

        jQuery('li.article').hide();
        jQuery('#' + id).show();

        jQuery('#' + id + ' h3').addClass('sifr');
        RMHC.sifr.init();

        if (!noseek) {
            document.location.hash = id;
        }
    },

    slugify : function(str) {
        str = str.toLowerCase();
        str = str.replace(' ', '-');
        str = str.replace(/[^a-z0-9\-]/, '');
        return str;
    }
}
