// Functies
$.namespace('swis.feltz.projecten');

//DOM ready
$(function() {
    oSlideshow = new swis.feltz.projecten.slideshow();
    oSlideshow.init(); 
    oSlideshow.start();
    
    if( swis.feltz.init.projectActive ) {
        oSlideshow.pause();
        $('#projectenOverlay').show(); 
    }
                         
});                                   

swis.feltz.projecten.slideshowConfig = {
    iTimeout: 6,            //Aantal seconden dat een achtergrond zichtbaar moet zijn
    iBulletResume: 10,      //Aantal seconden na stilstaan door klikken op balletje waarna slideshow weer moet starten
    iFadeIn: 1000,          //Aantal ms dat fade in duurt
    iFadeOut: 2000,          //Aantal ms dat fade out duur
    fBulletMultiplier: 0.2  //Snelheids multiplier voor fadeIn/fadeOut als wordt getoggled met de bullets.
}

swis.feltz.projecten.slideshow = function(){};

swis.feltz.projecten.slideshow.prototype.init = function() {
    if( typeof(swis.feltz.init.slideshow) == 'undefined' ) {
        return false;
    }                                            
    if( typeof(swis.feltz.init.projecten) == 'undefined' ) {
        return false;
    }                                                                                    
    this.aImages = swis.feltz.init.slideshow;    
    this.oProjecten = swis.feltz.init.projecten; 
       
    this.iCurrentBackgroundImage = 0;             
    this.iNumberOfBackgroundImages = this.aImages.length;
    this.bAlternative = false; 
    this.bPaused = false;
    
    this.iUpdateBackgroundTimeout = swis.feltz.projecten.slideshowConfig.iTimeout; 
    this.iBulletResumeTimeout = swis.feltz.projecten.slideshowConfig.iBulletResume;   
    this.iFadeInSpeed = swis.feltz.projecten.slideshowConfig.iFadeIn;
    this.iFadeOutSpeed = swis.feltz.projecten.slideshowConfig.iFadeOut;
    this.fBulletMultiplier = swis.feltz.projecten.slideshowConfig.fBulletMultiplier;
    
    if( $.browser.msie ) {
        if( $.browser.version.substring(0,1) == '6' || $.browser.version.substring(0,1) == '5' ) {
            this.iFadeInSpeed = 0;
            this.iFadeOutSpeed = 0;
        }
    } 
        
    var self = this;
    //More info button
    $('a[rel=projectOverlay]').live('click', function(eJsEvent) {
        //Geen standaard linkgedrag
        eJsEvent.preventDefault();
        
        self.pause();
                
        //Project key uit href halen
        var sProjectKey = $(this).attr('href').substring(8);
                                                      
        var jsonProject = self.oProjecten[sProjectKey];  
        $('#projectenOverlay .title').text(jsonProject.title);
        $('#projectenOverlay .content').text(jsonProject.content);
        $('#projectenOverlay').show();    
        
        Cufon.refresh();
    });
    
    //Close button
    $('a[rel=closeOverlay]').live('click', function(eJsEvent) {
        //Geen standaard linkgedrag
        eJsEvent.preventDefault();
        $('#projectenOverlay').hide();        
        
        self.resume();
    });
    
    //Clickable balletjes
    self.iDotTimeout = 0;
    $('#projectenNav li').live('click', function(eJsEvent) {
        //Project key uit href halen
        var sKey = this.id.substring(13);
        self.show(sKey, self.fBulletMultiplier);
        
        //Pauzeer de automatische timeout
        self.pause();
        // Na x seconden slideshow weer laten doorlopen
        self.iDotTimeout = setTimeout(function() {
            self.resume();
        }, self.iBulletResumeTimeout * 1000);
    });
}                             
    
swis.feltz.projecten.slideshow.prototype.start = function() {
    var self = this;
    self.update();
    
    //Interval      
    self.oInterval = setInterval( function() {
        self.update();
    }, self.iUpdateBackgroundTimeout * 1000);
}

swis.feltz.projecten.slideshow.prototype.pause = function() {
    this.bPaused = true;
}

swis.feltz.projecten.slideshow.prototype.resume = function() {
    this.bPaused = false;
}
                                                                
swis.feltz.projecten.slideshow.prototype.show = function(sKey, fSpeedMultiplier) {   
    if( !fSpeedMultiplier ) {
        fSpeedMultiplier = 1;
    }
    
    if( !this.bAlternative ) {
        $('#projectenBackground1')
            .css('background-image', 'url('+this.oProjecten[sKey].image+')')  
            .css('background-position', 'top center')
            .fadeIn(this.iFadeInSpeed * fSpeedMultiplier);
            
        $('#projectenBackground2').fadeOut(this.iFadeOutSpeed * fSpeedMultiplier);
          
        this.bAlternative = true;
        
    }
    else {
        $('#projectenBackground2')
            .css('background-image', 'url('+this.oProjecten[sKey].image+')')
            .css('background-position', 'top center')
            .fadeIn(this.iFadeInSpeed * fSpeedMultiplier);
        $('#projectenBackground1').fadeOut(this.iFadeOutSpeed * fSpeedMultiplier);
        this.bAlternative = false;
    }

    //Balletje verspringen
    $('#projectenNav li').removeClass('active');
    $('#projectenNav_'+sKey).addClass('active');
    
    //Titel verspringen
    $('#projectenTitels li').hide()
    $('#projectenTitels_'+sKey).show();
}

swis.feltz.projecten.slideshow.prototype.stop = function() {
    clearInterval(this.oInterval);  
}

swis.feltz.projecten.slideshow.prototype.update = function() {
    if( this.bPaused ) {
        return false;
    }           
    var sKey = this.aImages[this.iCurrentBackgroundImage];
    this.iCurrentBackgroundImage++;
    if( this.iCurrentBackgroundImage == this.iNumberOfBackgroundImages) {
        this.iCurrentBackgroundImage = 0;
    }
    this.show(sKey);
}        


