LangHandler = new Class.create({

    initialize: function() {
        this.current;
        this.view;
    },

    change: function(p_lang) {
        if(p_lang != this.current){

            Effect.SlideUp('header_lang_select_container', { duration: 0.5 });

            obj_old = $('header_lang_current_icon['+ this.current +']');
            obj_new = $('header_lang_current_icon['+ p_lang +']');

            new Effect.Opacity(obj_old, { from: 1, to: 0, duration: 0.5 });
            new Effect.Opacity(obj_new, { from: 0, to: 1, duration: 0.5 });

            $("header_lang_select_current_text").innerHTML = obj_new.alt;
            $("header_lang_current_text").innerHTML = obj_new.alt;

            location.href = IV_url + "content/index?lang=" +p_lang;
        }
        return false;
    },
    
    showSelector: function(){
         Effect.SlideDown('header_lang_select_container', { duration: 0.5 });
         Effect.Fade('header_lang_tab_max', { duration: 0.3 });
         return false;
    },
    
    hideSelector: function() {
        Effect.SlideUp('header_lang_select_container', { duration: 0.5 });
        Effect.Appear('header_lang_tab_max', { duration: 0.6 });
        return false;
    },

    preview: function(p_lang){
        if(p_lang != this.view){
            obj_old = $('header_lang_select_current_icon['+ this.view +']');
            obj_new = $('header_lang_select_current_icon['+ p_lang +']');
    
            new Effect.Opacity(obj_old, { from: 1, to: 0, duration: 0.2 });
            new Effect.Opacity(obj_new, { from: 0, to: 1, duration: 0.2  });

            $("header_lang_select_current_text").innerHTML = obj_new.alt;

            this.view = p_lang;
        }
        return false;
    },

    previewReset: function() {
        obj_current = $('header_lang_select_current_icon['+ this.current +']');
        obj_view = $('header_lang_select_current_icon['+ this.view +']');
    
        new Effect.Opacity(obj_current, { from: 0, to: 1, duration: 0.2 });
        new Effect.Opacity(obj_view, { from: 1, to: 0, duration: 0.2  });

        $("header_lang_select_current_text").innerHTML = obj_current.alt;
        return false;
    }

});

Event.observe(window, 'load', function() { 

    langHandler = new LangHandler();

    langHandler.current = IV_lang;
    langHandler.view = IV_lang;

    $$("#header_lang_current_icons img").each(
        function (image) {
            image.id = "header_lang_current_icon["+ image.lang +"]";
            if (image.lang == langHandler.current) {
            	image.show();
                $("header_lang_current_text").innerHTML = image.alt;
            }
        }
    );

    $$("#header_lang_select_icons img").each(
        function(image) {
            Event.observe( image, "mouseover", function() { langHandler.preview(image.lang); });
            Event.observe( image, "click", function() { langHandler.change(image.lang); });
        }
    );

    $$("#header_lang_select_current_icons img").each(
        function(image){
            image.id = "header_lang_select_current_icon["+ image.lang +"]";
            if (image.lang != langHandler.current) {
                new Effect.Opacity(image, { from: 1, to: 0, duration: 0.1  });
            } else {
                new Effect.Opacity(image, { from: 0, to: 1, duration: 0.1  });
                $("header_lang_select_current_text").innerHTML = image.alt;
            }
        }
    );

    Event.observe( $('header_lang_tab_max'), "click", function() { langHandler.showSelector(); });
    Event.observe( $('header_lang_tab_min'), "click", function() { langHandler.hideSelector(); });
    Event.observe( $('header_lang_tab_min'), "click", function() { langHandler.previewReset(); });

});
