(function($) {
    $.fn.favPages=function(o){
        return new $.favPages(this,o); 
    };
    
    $.favPages=function (e,o) {

      var defaults={
            def_pref:'favPages',
            tab_id:'Tab'
      };
        this.o  = $.extend({}, defaults, o || {});
        this.slides = e;
        this.init();
    };
    
    var $favPages = $.favPages;
    
    $favPages.fn = $favPages.prototype = {
        favPages: '0.0.1'
    };
    $favPages.fn.extend=$favPages.extend=$.extend;

   
    $favPages.fn.extend({
       init:function(){
            this.slides.append('<div id="'+this.o.def_pref+'-'+this.o.tab_id+'"><ul></ul></div>');
            this.controls = $('#'+this.o.def_pref+'-'+this.o.tab_id+' ul');

            this.slides.find('div.tabs:first-child').addClass('shownTab').find('div.page_image').fadeIn();

            var controls = this.controls;
            this.slides.find('a.controls_title').each(function(){
                 controls.append('<li><a href="'+$(this).attr('href')+'">'+$(this).text()+'</a></li>');
                 $(this).remove();
            });
            this.controls.find('li:first-child a').addClass('shownHref');  
            this.evt();  
            var me = this;
                 
       },
       evt:function(){
           this.controls.find('a').bind('click',{me:this},this.transition);
       },
       transition:function(event){
          
           var slides = event.data.me.slides;
           var controls = event.data.me.controls;
           divToShow = slides.find('div.'+$(event.target).attr('href'));
                
            if(divToShow.hasClass('shownTab')){
                return false;
            }
            else{
                slides.find('div.shownTab').find('div.page_image').hide();
                slides.find('div.shownTab').removeClass('shownTab').hide();
                divToShow.addClass('shownTab');
                
                divToShow.show().find('div.page_image').fadeIn();

                controls.find('a.shownHref').removeClass('shownHref');
                $(event.target).addClass('shownHref');
            }
            return false;
       },
       next_slide:function(){

           var slides = this.slides;
           var controls = this.controls;
           divToShow = slides.find('div.shownTab.tabs').next();
            if(divToShow.hasClass('tabs')){

            }
            else{
                divToShow = slides.find('div.tabs:first');
            }
            slides.find('div.shownTab').removeClass('shownTab').hide();
            divToShow.addClass('shownTab');
            divToShow.show();

            controls.find('a.shownHref').removeClass('shownHref');    
            return false;
         
       },
       interval:function(){
           var me = this;
           this.intervalID = setInterval(function(){
               me.next_slide();
           },7000);           
       } 
    });    
    
})(jQuery);
