// 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' );
    }.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;
        }.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));
  });
if($('serczAdv'))$('serczAdv').fade('in');

});