/**
* @author : Mehmet Andiç
* @date : 10/2010
* 
* selectbox ilk oluşturulduğunda : oldValue = null
*/
var EKMA_customSelectBox = function(SelectContainerID, HiddenInputId){
    this.selectContainerID = SelectContainerID;
    this.hiddenInputId = HiddenInputId; //içine seçilen elemanın değerinin gömüleceği kutucuk

    this.$list_Container = $('#' + SelectContainerID + ' .ekma_customselect_list_cont');

    this.$selecteditem = $('#' + SelectContainerID + ' .ekma_customselect_selecteditem');
    this.$selecteditem_textCont = $('#' + SelectContainerID + ' .ekma_customselect_selecteditem .ecs__middle');

    this.$listLI = $('#' + SelectContainerID + ' .ekma_customselect_list LI');

    $(document).bind('click', {$ListContainer:this.$list_Container}, function(event){//kutucuğun dışına tıkladığımızda listeyi kapat
        var __class = $(event.target).attr('class');

        if(__class != 'ekma_customselect_cont' && __class != 'ekma_customselect_selecteditem' && __class != 'ecs__left' && __class != 'ecs__right' && __class != 'ecs__middle' && __class != 'ekma_customselect_list_cont' && __class != 'ekma_customselect_list' && __class != 'ekma_customselect_hidden_inp' /*&& __class != 'ecs_option'*/){

            event.data.$ListContainer.hide();

        }
    });

    this.$selecteditem.bind('click', {_hiddenInputID:this.hiddenInputId, $ListContainer:this.$list_Container, _SelectContainerID:SelectContainerID}, function(event){//kutucuğa tıkladığımızda listeyi aç
        $('#'  + event.data._hiddenInputID).click();

        if(event.data.$ListContainer.css('display') == 'block'){
            event.data.$ListContainer.hide();
        }
        else{
            event.data.$ListContainer.show();

            var maxHeight = parseInt($('#' + event.data._SelectContainerID + ' li').eq(0).outerHeight(true))*5;

            if(parseInt(event.data.$ListContainer.outerHeight()) > maxHeight){
                event.data.$ListContainer.css({'height': maxHeight + 'px'});
            }
        }
    });

    $(this.$listLI).bind('click',{_hiddenInputID:this.hiddenInputId, $selectedItemTextCont:this.$selecteditem_textCont}, function(event){

        var _new_val = $(event.target).attr('val');
        var $_hidden_box = $('#' + event.data._hiddenInputID);
        
        
        if($_hidden_box.val() != _new_val){
            var _trigger_onChange = true;
        }
        else{
            var _trigger_onChange = false;
        }
        
        $_hidden_box
         .attr('oldValue',$_hidden_box.val()) // bir önceki değerini tut
         .val(_new_val)
         .attr('selectedIndex',$(event.target).attr('i'));

         if($(event.target).attr('rel') != undefined){
             $_hidden_box.attr('rel',$(event.target).attr('rel'));
         }

        event.data.$selectedItemTextCont.html($(event.target).html());
        
        $_hidden_box.unbind('getText').bind('getText',{_text:event.data.$selectedItemTextCont.html()}, function(_event){
            return _event.data._text;
        });
        
        if(_trigger_onChange){
            $_hidden_box.change();
        }
        
    });
}//end class EKMA_customSelect

function EKMA_createCustomSelectBox(SelectBoxId){
    var ekma_customselect_cont = document.createElement('div');
    ekma_customselect_cont.id = SelectBoxId + '_selectCont';
    ekma_customselect_cont.className = 'ekma_customselect_cont';
    $(ekma_customselect_cont).addClass($('#' + SelectBoxId).attr('class'));
    
    var _input = document.createElement('input');
    _input.type = 'hidden';
    _input.id = SelectBoxId;
    _input.name = $('#' + SelectBoxId).attr('name');
    _input.selectedIndex = 0;
    _input.className = 'ekma_customselect_hidden_inp';
    
    //onchange ve onclick fonksiyonlarını ayarla
    _input.onchange = document.getElementById(SelectBoxId).onchange;
    _input.onclick = document.getElementById(SelectBoxId).onclick
    
    ekma_customselect_cont.appendChild(_input);
    
    /** BEGIN: Görünen Kısmı Oluştur **/
    var _selecteditem_cont = document.createElement('div');
    _selecteditem_cont.className = 'ekma_customselect_selecteditem';
    
    var ecs__left = document.createElement('div');
    ecs__left.className = 'ecs__left';
    
    var ecs__right = document.createElement('div');
    ecs__right.className = 'ecs__right';
    
    var ecs__middle = document.createElement('div');
    ecs__middle.className = 'ecs__middle';
    
    var _clearBoth = document.createElement('div');
    _clearBoth.className = 'clear_both';
    
    _selecteditem_cont.appendChild(ecs__left);
    _selecteditem_cont.appendChild(ecs__middle);
    _selecteditem_cont.appendChild(ecs__right);
    _selecteditem_cont.appendChild(_clearBoth);
    
    ekma_customselect_cont.appendChild(_selecteditem_cont);
    /** END: Görünen Kısmı Oluştur **/
    
    
    /** BEGIN: Listeyi Oluştur **/
    var _list_cont = document.createElement('div');
    _list_cont.className = 'ekma_customselect_list_cont';
    
    var _ul_list = document.createElement('ul');
    _ul_list.className = 'ekma_customselect_list';
    
    var _realSelectBox = document.getElementById(SelectBoxId);
    
    var _len = _realSelectBox.options.length;
    
    for(var i=0; i<_len; i++){
        var _a_li = document.createElement('li');
        _a_li.className = 'ecs_option';
        $(_a_li).attr('val',_realSelectBox.options[i].value);
        $(_a_li).attr('i',i);

        _a_li.innerHTML = _realSelectBox.options[i].text;
        
        var _style = $(_realSelectBox.options[i]).attr('style');
        var _rel = $(_realSelectBox.options[i]).attr('rel');
        
        if(_style != undefined){
            $(_a_li).attr('style',_style);
        }
        
        if(_rel != undefined){
            $(_a_li).attr('rel',_rel);
        }
        
        if(_realSelectBox.options[i].selected){//seçili elemansa
            _input.value = _realSelectBox.options[i].value;
            _input.oldValue = null;
            
            _input.selectedIndex = i;
            
            ecs__middle.innerHTML = _realSelectBox.options[i].text;
            
            _input.getText = function(){
                return ecs__middle.innerHTML;
            }
        }

        _ul_list.appendChild(_a_li);
    }//end for


    _list_cont.appendChild(_ul_list);
    /** END: Listeyi Oluştur **/

    ekma_customselect_cont.appendChild(_list_cont);

    $('#' + SelectBoxId).replaceWith(ekma_customselect_cont);

    new EKMA_customSelectBox(ekma_customselect_cont.id, _input.id);
}//end function EKMA_createCustomSelectBox()
