// Global data of the application
var APP_BASE_URL    = '';
var MEDIA_BASE_URL  = '';
var PROJECTS        = false;
var CURRENT_PROJECT = 0;
var PROJECT_LOADING = false;
var PRELOADS        = new Array();

// Called after DOM ready event
$(document).bind('ready', function (e) {
    APP_BASE_URL   = $('script[@src$="media/js/prosumer24.js"]').attr('src').replace(/media\/js\/prosumer24\.js/, '');
    MEDIA_BASE_URL = APP_BASE_URL + 'media/';

    // Open links with blank class in new windows
    $('a.blank').bind('click', function (e) {
        window.open(this.href);
        return false;
    });

    // Projectcase
    var projectCase = $('#project-case');
    if (projectCase.length > 0) {
        $.getJSON(APP_BASE_URL + 'projekte/json',
            function (data) {
                PROJECTS = data;
                
                for (var i = 0; i < PROJECTS.length; i++) {
                    PRELOADS[i]     = new Image();
                    PRELOADS[i].src = APP_BASE_URL + 'projekte/thumbnail/' + PROJECTS[i] + '/807/177/807';
                }
                
                $('#project-case-prev').bind('click', prevProjectCaseImage);
                $('#project-case-next').bind('click', nextProjectCaseImage);
            }
        );
    } 
});

// Show previous projectcase image
function prevProjectCaseImage()
{
    if (PROJECTS == false || PROJECT_LOADING == true) {
        return false;
    }
    
    PROJECT_LOADING = true;

    CURRENT_PROJECT--;
    if (CURRENT_PROJECT == -1) {
        CURRENT_PROJECT = PROJECTS.length - 1;
    }
    
    var projectIdent = PROJECTS[CURRENT_PROJECT];
    
    loadImage(projectIdent);
    
    return false;
}

// Show next projectcase image
function nextProjectCaseImage()
{
    if (PROJECTS == false || PROJECT_LOADING == true) {
        return false;
    }
    
    PROJECT_LOADING = true;

    CURRENT_PROJECT++;
    if (PROJECTS.length < (CURRENT_PROJECT + 1)) {
        CURRENT_PROJECT = 0;
    }
    
    var projectIdent = PROJECTS[CURRENT_PROJECT];
    
    loadImage(projectIdent);
    
    return false;
}

// Load an image
var objImagePreloader;
var currentIdent;
function loadImage(ident)
{
    currentIdent = ident;

    objImagePreloader = new Image();
    objImagePreloader.onload = function() {
        // Create the image with its anchor
        var anchor = $(document.createElement('a'));
        anchor.attr('href', APP_BASE_URL + 'projekte#' + currentIdent);
        anchor.addClass('project-case-image');
    
        var image = $(document.createElement('img'));
        image.attr('width',  '807');
        image.attr('height', '177');
        image.attr('src',    objImagePreloader.src);
        
        anchor.append(image);
        
        // Find the current anchor
        var currentAnchor = $('#project-case').find('a.project-case-image');
        
        // Append the new anchor
        $('#project-case').prepend(anchor);
        
        // Fade out the current anchor
        currentAnchor.fadeOut(2000, function() {
            PROJECT_LOADING = false;

            $(this).remove();
        });        
              
        //  Clear onLoad, IE behaves irratically with animated gifs otherwise
        objImagePreloader.onload = function(){};
    };
    
    objImagePreloader.src = APP_BASE_URL + 'projekte/thumbnail/' + ident + '/807/177/807';
}
