var hOokHeader = new Class({
    options: {
        searchBtn:'search-panel-wrapper',
        searchFade:'searchForm',
        searchBGopen:'search-header.png',
        searchBGclosed:'search-header-closed.png',
        searchSubmitBtn: 'btSearch',

        loginBtn:'login-panel-wrapper',
        loginFade:'loginForm',
        loginBGopen:'login-header.png',
        loginBGclosed:'login-header-closed.png',
        loginSubmitBtn:'btLogin'
    },
    initialize: function(){
        if ( $(this.options.searchBtn) ){
            $(this.options.searchBtn).addEvent('click', this.eventControl.pass([this.options.searchFade],this));
            $(this.options.searchBtn).setStyles({'cursor': 'pointer','background-image':'url(/_common/images/top_panels/'+this.options.searchBGclosed+')'});
            var panel = $(this.options.searchBtn).getParent();
            panel.addEvent('mouseenter', this.fX.pass([panel,true],this));
            panel.addEvent('mouseleave', this.fX.pass([panel,false],this));
            panel.setOpacity(0.6);
            $(this.options.searchFade).setOpacity(0);
            $(this.options.searchFade).addEvent('click',function(ev){ new Event(ev).stop(); });
            $(this.options.searchSubmitBtn).addEvent('click',function(ev){ $(this.options.searchFade).submit(); }.bind(this));
        }

        if ( $(this.options.loginBtn) ){
            $(this.options.loginBtn).addEvent('click', this.eventControl.pass([this.options.loginFade],this));
            $(this.options.loginBtn).setStyles({'cursor': 'pointer','background-image':'url(/_common/images/top_panels/'+this.options.loginBGclosed+')'});
            var panel = $(this.options.loginBtn).getParent();
            panel.addEvent('mouseenter', this.fX.pass([panel,true],this));
            panel.addEvent('mouseleave', this.fX.pass([panel,false],this));
            panel.setOpacity(0.6);
            $(this.options.loginFade).setOpacity(0);
            $(this.options.loginFade).addEvent('click',function(ev){ new Event(ev).stop(); });
            $(this.options.loginSubmitBtn).addEvent('click',function(ev){ $(this.options.loginFade).submit(); }.bind(this));

            if ( $$('#forgot-password a')[0] ){
                var forgot = $$('#forgot-password a')[0];
                forgot.addEvent('click',function(){ window.location = forgot.href  });
            }
        }
    },
    fX:function(par,fadeIN){
        var rel = par.getProperty('rel');
        if (rel!='opened'){
            var opacityEffect = (fadeIN)?[.6,.9]:[.9,.6];
            par.setProperty('rel','fading');
            new Fx.Styles(par,{
                duration: 250,
                transition: Fx.Transitions.linear,
                onComplete:function(){}
            }).start({'opacity':opacityEffect});
        }
    },
    eventControl:function(el){
        var imgSwitch='';
        if ( $(el).getStyle('opacity') == 0){
            imgSwitch=(el=='loginForm')?this.options.loginBGopen:this.options.searchBGopen;
            this.expand(el,imgSwitch);
        }else{
            imgSwitch=(el=='loginForm')?this.options.loginBGclosed:this.options.searchBGclosed;
            this.collapse(el,imgSwitch);
        }
    },
    collapse:function(el,bg){
        el = $(el);
        var btn = el.getParent();
        var par = btn.getParent();
        btn.setStyle('background-image','url(/_common/images/top_panels/'+bg+')');
        new Fx.Styles($(el),{
            duration: 450,
            transition: Fx.Transitions.linear,
            onComplete:function(){
                new Fx.Styles(par,{
                    duration: 450,
                    transition: Fx.Transitions.linear,
                    onComplete:function(){
                        par.setProperty('rel','');
                    }
                }).start({'opacity':[par.getStyle('opacity'),.6] });
            }
        }).start({ 'opacity':[$(el).getStyle('opacity'),0] });
    },
    expand:function(el,bg){
        el = $(el);
        var btn = el.getParent();
        var par = btn.getParent();
        par.setProperty('rel','opened');
        btn.setStyle('background-image','url(/_common/images/top_panels/'+bg+')');
        new Fx.Styles(par,{
            duration: 450,
            transition: Fx.Transitions.linear,
            onComplete:function(){
                new Fx.Styles(el,{
                    duration: 450,
                    transition: Fx.Transitions.linear,
                    onComplete:function(){}
                }).start({ 'opacity':[$(el).getStyle('opacity'),1] });
            }
        }).start({'opacity':[par.getStyle('opacity'),1] });
    }
});