function Banner(){
    var self = this;


    this.bannerHolder   = $('#bannerHolder');
    
    
    this.mainImage      = $('#bannerMain');
    this.fader          = $('#bannerFader');


    this.bannerText     = $('#bannerText');


    this.nav            = $('#bannerNav').find('tr');


    this.imageSources   = new Array();
    this.alts           = new Array();
    this.texts          = new Array();
    
    
    this.hiddenImgs     = this.bannerHolder.find('.hiddenImg');
    this.hiddenTexts    = this.bannerHolder.find('.hiddenText');


    this.count          = 0;
    this.current        = 1;


    this.path           = '';
    this.admin          = new String(window.location);
    this.admin          = this.admin.indexOf('admin');
    if(this.admin){
        this.path       = '../';
    }



    this.setCount = function(){
        this.count = this.hiddenImgs.length;
    }


    this.setImageScources = function(){
        this.hiddenImgs.each(function(){
            self.imageSources.push($(this).attr('src'));
        });
    }
    
    
    this.setAlts = function(){
        this.hiddenImgs.each(function(){
            self.alts.push($(this).attr('alt'));
        });
    }


    this.setTexts = function(){
        this.hiddenTexts.each(function(){
            self.texts.push($(this).html());
        });
    }
    
    
    this.next = function(){
        if(this.current < this.count){
            this.fader.attr('src', this.imageSources[this.current]);
            this.fader.fadeIn(1200);
            this.mainImage.fadeOut(1200, function(){
                self.mainImage.attr('src', self.imageSources[self.current]);
                self.mainImage.show();
                self.fader.hide();
                self.current++; 
                self.setCurrent();
            });
            this.bannerText.animate({left : '350px'}, 550, function(){                
                self.bannerText.html(self.texts[self.current]);
                self.bannerText.delay(100).animate({left : '0'}, 550);                               
            });            
        }
        else{
            this.goToPanel(1);
        }
    }


    this.goToPanel = function(num){
        if(num != this.current){
            self.deactivateNav();
            var index = num - 1;
            this.fader.attr('src', this.imageSources[index]);
            this.fader.fadeIn(1200);
            this.mainImage.fadeOut(1200, function(){
                self.mainImage.attr('src', self.imageSources[index]);
                self.mainImage.show();
                self.fader.hide();
                self.current = num;
                self.setCurrent();
                self.activateNav();
            });
            this.bannerText.animate({left : '350px'}, 550, function(){
                self.bannerText.html(self.texts[index]);
                self.bannerText.delay(100).animate({left : '0'}, 550);
            });
        }        
    }


    this.setNav = function(){
        for(var i = 0; i < this.count; i++){
            this.nav.append('<td class="navButton btn'+(i+1)+'">'+(i+1)+'</td>');
        }
    }


    this.setCurrent = function(){
        this.nav.find('td').css({background : 'url("'+self.path+'images/bg_btn_off.gif") no-repeat'});
        this.nav.find('[class~="btn'+this.current+'"]').css({background : 'url("'+self.path+'images/bg_btn_on.gif") no-repeat'});
    }


    this.activateNav = function(){
        this.nav.find('td').bind('click', function(){
            clearInterval(self.interval);
            var num = ($(this).attr('class'));
            num = parseInt(num.replace('navButton btn', ''));
            self.goToPanel(num);
        });
    }


    this.deactivateNav = function(){
         this.nav.find('td').unbind('click');
    }


    this.start = function(){
        this.interval = setInterval(function(){
            self.next();
        },7000);
    }


    this.setCount();
    this.setImageScources();
    this.setAlts();
    this.setTexts();
    this.setNav();
    this.activateNav();
    this.setCurrent();


    this.start();
}
