﻿// 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;
var borderStyle = 'border:1px solid #FFF';



function setupImageElements() {
    nGalleryCount = jQuery("#gallery_content_thumbs").length;

    for (x = 1; x <= nGalleryCount; x++) {
        isAnimating = false;
        nDocIndex = 0;
        nAppCount = jQuery("#gallery_content_thumbs>div").length;

        jQuery('#prev_button').hide();

		jQuery('#main_image_0').fadeIn("slow");
		var elm = jQuery('.thumb_image>div')[0];
		jQuery(elm).addClass('whiteborder');

        if (nAppCount > 7) {
            var elmFirst = jQuery("#gallery_content_thumbs>div")[0];
            nDocWidth = jQuery(elmFirst).width();
            displayNaviButtons();
        }
    }
}

function navigate(index) {
	if(index != currentImage){

		var elm = jQuery('.thumb_image>div')[currentImage];
		jQuery(elm).removeClass('whiteborder');

		jQuery('#main_image_' + (currentImage)).fadeOut("slow");

		currentImage = index;
		var distance = index - nDocIndex;

		var elm = jQuery('.thumb_image>div')[currentImage];
		jQuery(elm).addClass('whiteborder');

		nDocIndex = index;

		if(nDocIndex > nAppCount - 7){
			jQuery('#main_image_' + nDocIndex).fadeIn("slow");
		} else {
			var newPos = parseInt(-nDocIndex * nDocWidth);

			var cont = jQuery("#gallery_content_thumbs");
					cont.animate({
						left: newPos + "px"
					}, { duration: 500, easing: "swing", callback: endAnimate() });
					displayNaviButtons();
					jQuery('#main_image_' + nDocIndex).fadeIn("slow");
		}
	}
}

function endAnimate() {
    isAnimating = false;
}

function nextImage() {

	var elm = jQuery('.thumb_image>div')[currentImage];
	jQuery(elm).removeClass('whiteborder');

	currentImage++;
    //Bugfix her... - Onload funket ikke i IE.
    nAppCount = jQuery("#gallery_content_thumbs>div").length;

	if(currentImage == nAppCount){
		jQuery('#main_image_' + (nAppCount - 1)).fadeOut("slow");
		navigate(0);
		return;
	}
	
    if (nAppCount > 1) {
        elmFirst = jQuery("#gallery_content_thumbs>div")[0];
        nDocWidth = jQuery(elmFirst).width();
    }

	var elm = jQuery('.thumb_image>div')[currentImage];
	jQuery(elm).addClass('whiteborder');

	//Ikke flytt slideshow når det blir hvitt til høyre
	if (nDocIndex + 7 >= (nAppCount)){
		jQuery('#main_image_' + nDocIndex).fadeOut("slow");
		nDocIndex++;
		jQuery('#main_image_' + nDocIndex).fadeIn("slow");


	} else {
		if (!isAnimating) {
			
			if ((nDocIndex) < nAppCount) {
				isAnimating = true;

			    jQuery('#main_image_' + nDocIndex).fadeOut("slow");
				nDocIndex++;
				
				var newPos = parseInt(-nDocIndex * nDocWidth);

				
				var cont = jQuery("#gallery_content_thumbs");
				cont.animate({
					left: newPos + "px"
				}, { duration: 500, easing: "swing", callback: endAnimate() });
				displayNaviButtons();
				jQuery('#main_image_' + nDocIndex).fadeIn("slow");
			}
		}
	}
}

function prevImage() {
    if (!isAnimating) {
        if (nDocIndex > 0) {
			var elm = jQuery('.thumb_image>div')[nDocIndex];
			jQuery(elm).removeClass('whiteborder');

			currentImage--;

			var elm = jQuery('.thumb_image>div')[currentImage];
			jQuery(elm).addClass('whiteborder');

			//Ikke flytt slideshow når det blir hvitt til høyre
			if (currentImage + 7 >= (nAppCount)){
				jQuery('#main_image_' + nDocIndex).fadeOut("slow");
				nDocIndex--;
				jQuery('#main_image_' + nDocIndex).fadeIn("slow");
			} else {
				isAnimating = true;
				jQuery('#main_image_' + nDocIndex).fadeOut("slow");
				nDocIndex--;
				jQuery('#main_image_' + nDocIndex).fadeIn("slow");

				var newPos = parseInt(-nDocIndex * nDocWidth);

				var cont = jQuery("#gallery_content_thumbs");
				cont.animate({
					left: newPos + "px"
				}, { duration: 500, easing: "swing", callback: endAnimate() });
				displayNaviButtons();
			}
        }
    }
}

function displayNaviButtons() {

    if (nDocIndex == 0) {
        
        jQuery('#prev_button').hide();
        jQuery('#prev_button_disabled').show();
    }
    else {
        jQuery('#prev_button').show();
        jQuery('#prev_button_disabled').hide();
        
    }

    /*if (nDocIndex + 5 >= (nAppCount)) {
        jQuery('#forward_button').hide();
        jQuery('#forward_button_disabled').show();
    }
    else {
        jQuery('#forward_button').show();
        jQuery('#forward_button_disabled').hide();

    }*/
}

function changeSource(src, pos){
      jQuery('#main_image').fadeOut(300, function(){
            jQuery(this).attr('src',src).bind('onreadystatechange load', function(){
                  if (this.complete) jQuery(this).fadeIn(300);
            });
       }); 
	   currentImage = pos;
}
