// JavaScript Document


var SelectDesign = new Class({
    /********
    *  KONSTRUKTOR
    ****/     
    initialize: function(o){
        this.obj_select = o;
        this.parentDiv = o.getParent();
        this.selectedDiv = null;
        this.selectUl = null;
        
        //create
        this.createSelectedDiv();
        this.createSelectUl();
        
        //events
        this.addEwents();
        
        //display
        this.parentDiv.grab(this.selectedDiv);  
        this.parentDiv.grab(this.selectUl);  
        this.hideSelect();
    },
    
    /********
    *  DODAJ ZDARZENIA
    ****/     
    addEwents:  function(){
        //selectedDiv
        this.selectedDiv.addEvent("click", function(){
            this.selectUl.setStyle('display',(this.selectUl.getStyle('display')=='none') ? 'block' : 'none' );
            this.selectUl.setStyle('left', this.parentDiv.offsetLeft+40)
        }.bind(this));
        
        //parentDiv     
        var leave;
        
        this.parentDiv.addEvent('mouseleave',function(){
            leave = function(){this.selectUl.setStyle('display','none')}.bind(this).delay('300');
        }.bind(this));
        
        this.parentDiv.addEvent('mouseenter',function(){
            $clear(leave);
        });
    },
    
    /********
    *  UKRYJ SELECTA
    ****/  
    hideSelect:  function(){
        this.obj_select.setStyle('display','none');
    },
    
    /********
    *  STWORZ DIVA
    ****/   
    createSelectedDiv: function(){
        this.selectedDiv = new Element('div',{
            'class':'opt_first', 
            'text': this.obj_select.options[this.obj_select.selectedIndex].text
        });  
    },
    
    
    /********
    *  STWORZ LISTE UL I POBIERZ WARTOSCI Z SELECTA
    ****/ 
    createSelectUl: function(){
        this.selectUl = new Element('ul',{
            'class':'hidden opt_design', 
            'style':'display:none'
        });
        
        //insert li list
        for( var i=0; i < this.obj_select.length; i++ ){
            this.selectUl.grab(this.createOptionsLi(this.obj_select.options[i].text,i));
        }
    },
    
    /********
    *  STWORZ LISTE OPCJI WYBORU LI
    ****/ 
    createOptionsLi: function(text,i){
        var optionsLi = new Element('li',{
            'class':'option inpat', 
            'text': text,
            'events': {
                'click' : function(){
                    this.selectedDiv.set('text',text);
                    this.selectUl.setStyle('display','none');
                    this.obj_select.selectedIndex = i;
                    document.forms['rocznik'].submit();
                }.bind(this),
                'mouseover': function(){
                    this.addClass('hover_design');
                },
                'mouseout' : function(){
                    this.removeClass('hover_design');
                } 
            }
        });
        
        return optionsLi;      
    }
});

/********
*  AUTOSTART
****/ 
$(window).addEvent("domready", function(){
    $$('.select_design').each(function(el){
        new SelectDesign($(el));
    });
});