(function($){
    
    $.fn.EKMA_AccordionMenu = function(options){
        
        var settings = $.extend( {
          'menu_el_width':100
        }, options);
        
        
        settings._parent = this;
        settings._parent_width = this.innerWidth();
        settings._el_count = this.find('.ekma_acc_an_element').length;
        
        settings._set_defaults = function(){
            settings._parent_left = settings._parent.position().left;
            
            settings._parent_right = /*settings._parent_left  + */settings._parent_width;
            
            // set tooltip bottom
            settings._parent.children('.ekma_acc_tooltip').css('bottom',($(window).height() - (settings._parent.offset().top + settings._parent.innerHeight())) + 'px');
        }

        settings._set_defaults();
        settings._set_tooltip_left = function(){};
        
        $(window).resize(function(){
            settings._set_defaults();
            settings._set_tooltip_left();
        });
        
        var _left_el;
        
        this.find('.ekma_acc_an_element').each(function(){
            //set initial position
//alert((settings._parent_width - settings.menu_el_width*$(this).index()) + 'px');
//alert((settings._parent_right - (settings._parent_width - (settings._el_count - $(this).index())*settings.menu_el_width) ) + 'px');

            if($(this).index() == 0){
                $(this).css('left', ('0px')).addClass('__ekma_acc_selected');
                
                //set tooltip properties
                if($(this).attr('title') != undefined && $(this).attr('title') != ''){
                    settings._parent.children('.ekma_acc_tooltip').html($(this).attr('title')).css({'display':'block'});
                    
                    _left_el = this;
                    
                    settings._set_tooltip_left = function(){
                        settings._parent.children('.ekma_acc_tooltip').css('left',$(_left_el).offset().left + 'px');
                    }

                    settings._set_tooltip_left();
                }
                else{
                    settings._parent.children('.ekma_acc_tooltip').css('display','none');
                }
            }
            else{
                $(this).css('left', (settings._parent_right - ((settings._el_count - $(this).index())*settings.menu_el_width) ) + 'px').removeClass('__ekma_acc_selected');
            }

            $(this).click(function(){
                if($(this).hasClass('__ekma_acc_selected')){
                    if($(this).attr('rel') != undefined && $(this).attr('rel') != ''){
                        if($(this).attr('target') == '_blank'){
                            window.open($(this).attr('rel'));
                        }
                        else{
                            document.location.href = $(this).attr('rel');
                        }
                        
                    }
                        
                }
                else{
                    var _selected_index = $(this).index();

                    settings._parent.find('.__ekma_acc_selected').removeClass('__ekma_acc_selected');
                    
                    settings._parent.children('.ekma_acc_tooltip').css('display','none');

                    if($(this).hasClass('ekma_acc_left')){//if the element is on the left, slide it to right
                        settings._parent.find('.ekma_acc_an_element').each(function(){
                            
                            if($(this).index() > _selected_index && $(this).hasClass('ekma_acc_left')){
                                $(this).animate({'left': (settings._parent_right - ((settings._el_count - $(this).index())*settings.menu_el_width) ) + 'px'},300).removeClass('ekma_acc_left');
                            }
                            else if($(this).index() == _selected_index){
                                //set tooltip properties
                                if($(this).attr('title') != undefined && $(this).attr('title') != ''){
                                    settings._parent.children('.ekma_acc_tooltip').html($(this).attr('title')).css({'display':'block'});
                                
                                    _left_el = this;
                    
                                    settings._set_tooltip_left = function(){
                                        settings._parent.children('.ekma_acc_tooltip').css('left',$(_left_el).offset().left + 'px');
                                    }

                                    settings._set_tooltip_left();
                                
                                }
                            }
                        });
                        
                    }
                    else{//if the element is on the right, slide it to left
                        settings._parent.find('.ekma_acc_an_element').each(function(){
                            
                            
                                
                            
                            if($(this).index() <= _selected_index){
                                $(this).animate({'left':((($(this).index())*settings.menu_el_width) ) + 'px'},300,function(){
                                    if($(this).index() == _selected_index){
                                        //set tooltip properties
                                        if($(this).attr('title') != undefined && $(this).attr('title') != ''){
                                            settings._parent.children('.ekma_acc_tooltip').html($(this).attr('title')).css({'display':'block'});
                                        
                                            _left_el = this;
                    
                                            settings._set_tooltip_left = function(){
                                                settings._parent.children('.ekma_acc_tooltip').css('left',$(_left_el).offset().left + 'px');
                                            }

                                            settings._set_tooltip_left();
                                        

                                        }
                                        
                                    }
                                }).addClass('ekma_acc_left');
                            }
                        });
                    }//end else (if the element is on the right)
                    
                    $(this).addClass('__ekma_acc_selected');
                    
                }
                
                _rtt_cntr = $(this).index();
            });//end click
                
        });
        
        var _rtt_cntr = 0;
        
        if(settings._el_count > 1){
            
            settings._autoRotate = function(){
                _rtt_cntr++;
                
                if(_rtt_cntr == settings._el_count){
                    _rtt_cntr = 0;
                }
                
                settings._parent.find('.ekma_acc_an_element').eq(_rtt_cntr).click();
            }
            
            setInterval(settings._autoRotate, 5000);
        }
            
        
    }//end EKMA_AccordionMenu
    
})(jQuery);
