﻿// Image document logic
/* Dynamisk antall gallerier - bruk tabell */

var isAnimating = false;

var nDocIndex = 0;
var nDocWidth = 0;
var nAppCount = 0;
var nGalleryCount = 0;
var currentImage = 0;



function setupImageElements() {
    nGalleryCount = $("#gallery_content").length;

    for (x = 0; x <= nGalleryCount; x++) {
        isAnimating = false;
        nDocIndex = 0;
        nAppCount = $("#gallery_content>div").length;
        
        $('#prev_button').hide();

        if (nAppCount > 4) {
            var elmFirst = $("#gallery_content>div")[0];
            nDocWidth = $(elmFirst).width();
            displayNaviButtons();
        }
    }
}

function navigate(index) {
	if(index != currentImage){
		currentImage = index;
		var distance = index - nDocIndex;

		nDocIndex = index-1;

		if(nDocIndex > nAppCount - 5){
			nDocIndex = nAppCount - 5;
		}

		var newPos = parseInt(-nDocIndex * nDocWidth);

		var cont = $("#gallery_content");
				cont.animate({
					left: newPos + "px"
				}, { duration: 500, easing: "swing", callback: endAnimate() });
				displayNaviButtons();
	}
}

function endAnimate() {
    isAnimating = false;

	//TODO - skriv ferdig selector her.
	var src = $('#image_' + currentImage).attr('src');
	src = src.substring(0, src.indexOf('&')).substring(16, src.length);

	/*$('#main_image').hide()
		.load(function () {
	      $(this).fadeIn();
		})
	    .attr('src', src)
	*/
	changeSource(src, currentImage);
}

function nextImage() {
	currentImage++;
    //Bugfix her... - Onload funket ikke i IE.
    nAppCount = $("#gallery_content>div").length;

	if(currentImage == nAppCount + 1){
		navigate(1);
		return;
	}
	
    if (nAppCount > 1) {
        elmFirst = $("#gallery_content>div")[0];
        nDocWidth = $(elmFirst).width();
    }

	//Ikke flytt slideshow når det blir hvitt til høyre
	if (nDocIndex + 5 >= (nAppCount)){
		endAnimate();
	} else {
		if (!isAnimating) {
			
			if ((nDocIndex) < nAppCount) {
				isAnimating = true;
				nDocIndex++;
				var newPos = parseInt(-nDocIndex * nDocWidth);
				
				
				var cont = $("#gallery_content");
				cont.animate({
					left: newPos + "px"
				}, { duration: 500, easing: "swing", callback: endAnimate() });
				displayNaviButtons();
			}
		}
	}
}

function prevImage() {
	currentImage--;
    if (!isAnimating) {
        if (nDocIndex > 0) {
            isAnimating = true;
            nDocIndex--;
            var newPos = parseInt(-nDocIndex * nDocWidth);
            newPos++;       //Bugfix border
            var cont = $("#gallery_content");
            cont.animate({
                left: newPos + "px"
            }, { duration: 500, easing: "swing", callback: endAnimate() });
            displayNaviButtons();
        }
    }
}

function displayNaviButtons() {

    if (nDocIndex == 0) {
        
        $('#prev_button').hide();
        $('#prev_button_disabled').show();
    }
    else {
        $('#prev_button').show();
        $('#prev_button_disabled').hide();
        
    }

    /*if (nDocIndex + 5 >= (nAppCount)) {
        $('#forward_button').hide();
        $('#forward_button_disabled').show();
    }
    else {
        $('#forward_button').show();
        $('#forward_button_disabled').hide();

    }*/
}

function changeSource(src, pos){
      $('#main_image').fadeOut(300, function(){
            $(this).attr('src',src).bind('onreadystatechange load', function(){
                  if (this.complete) $(this).fadeIn(300);
            });
       }); 
	   currentImage = pos;
}
