CatalogueWidget = new Class({
    initialize: function () {
        this.filters = $('filter');
        this.region_list = {};
        this.countries = $("countries");
        this.country_list = {};
        this.current_country = null;
        this.get_countries();
         
        $('select-country').addEvent('click',function(e){
            e.stop();
            if ($('selected-country').getStyle('display')=='block') $('selected-country').setStyle('display','none');
            e.target.addClass('active');
            $('any-country').removeClass('active');
            this.region_list['y'] = $('region-list').getPosition().y
            $("countries").setStyle('display','block').set('opacity',0).fade('in');
            this.region_list['y_offset'] = $('region-list').getPosition().y
            this.region_list['y_diff'] = this.region_list['y']-this.region_list['y_offset'] 
            $('region-list').setPosition({y:this.region_list['y_diff']});
            $('catalogue-widget').setStyle('margin-bottom',this.region_list['y_diff']);
        }.bind(this));
        
/* html
        <li><img id="cancel-country-select" src="/media/img/icons/close.png"></li>
*/
/*
        $('cancel-country-select').addEvent('click', function(e){
            this.reset_positions();
        }.bind(this));
*/        
        $('any-country').addEvent('click', function(e){
            e.stop();
            this.all_regions();
        }.bind(this));
        
        $('close-selected-country').addEvent('click', function(e){
            e.stop();
            $("region-list").setStyle("display", "none");
            $("countries").setStyle("display", "block");
            $("selected-country").setStyle("display", "none");
            
        }.bind(this));
    },
        
    reset_positions: function() {
        if (this.current_country==null) {
            this.filters.setStyle('display','none');
            $('any-country').addClass('active');
        } else {
            $('selected-country').getFirst('span').set('text',this.countries_list[this.current_country]).getNext().set('src','/media/img/flags/'+this.current_country+'.png').getParent().setStyle('display','block');
        }
        
        $("countries").setStyle('display','block');
        $('region-list').setPosition({y:0});
        $('catalogue-widget').setStyle('margin-bottom',0);
        $('select-country').removeClass('active');
    },
    
    get_countries: function () {
        this.countries_list = {};
        $("region-list").setStyle("display", "none");
        $('selected-country').setStyle('display', 'none');
        $$('#countries ul li').each( function (el,i) {
                    this.countries_list[el.getFirst('img').getProperty('src').substring(17,19)] = el.get('text');
                    el.getFirst('a').addEvent('click',this.country_select.bind(this));
            }.bind(this));
    },
    
    country_select: function (e) {
        e.stop();
        code = e.target.get('id');
        this.current_country = code;

        $$('#region-list li').each(function(el,i){
            el.setStyle('display','block');
            if (el.getFirst('img').getProperty('src').substring(17,19)!=code) { this.collapse_region(el); }
        }.bind(this));

        $('region-list').setStyle('display', 'block');
            
        this.countries.setStyle('display','none');

        $('region-list').setPosition({y:0});
        $('catalogue-widget').setStyle('margin-bottom',0);
        $('selected-country').getFirst('span').set('text',this.countries_list[code]).getNext().set('src','/media/img/flags/'+code+'.png').getParent().setStyle('display','block');
        $('selected-country').setStyle('display', 'block');
    },
    
    collapse_region: function(el) {
        el.setStyle('display','none');
    },
    
    all_regions: function () {
        if ($('select-country').hasClass('active') || this.current_country!=null) {
            this.current_country = null;
            $('any-country').addClass('active');
            $('selected-country').setStyle('display', 'block');
            $('select-country').addClass('active');
            $("countries").fade('out');
            (function(){
                $("countries").setStyle('display','none');
                $('any-country').addClass('active');
                $('region-list').fade('out');
                $('region-list').setPosition({y:0});
                $('catalogue-widget').setStyle('margin-bottom',0);
                (function(){
                    $$('#region-list li').each(function(el,i){ el.setStyle('display','block') });
                }).delay(500);
            }.bind(this)).delay(500);
        }
    }
});

