﻿var curtainAction = false;


function setStyle(style, add, change) {
    if (style == '' && !add)
        return '';

    styleArray = style.split(' ');
    newStyleArray = new Array();

    for (var n = 0; n < styleArray.length; n++)
        if (styleArray[n] != change)
        newStyleArray[newStyleArray.length] = styleArray[n];

    if (add)
        newStyleArray[newStyleArray.length] = change;

    var newStyle = '';
    for (var n = 0; n < newStyleArray.length; n++) {
        if (newStyle != '')
            newStyle = newStyle + ' ';
        newStyle = newStyle + newStyleArray[n];
    }

    return newStyle;
}

function setStyleById(id, classId, add) {

    var element = document.getElementById(id);

    if (element)
        element.className = setStyle(element.className, add, classId);

}



function showGallery(targetId, galleryId) {
    menuId = targetId + 'Menu';
    var menu = document.getElementById(menuId);
    menu.style.display = "none";

    var div = document.getElementById(targetId);
    setStyleById(targetId, 'largeImageGallery', true);

    fadeGallery(targetId, galleryId, true);
}


function fadeGallery(targetId, galleryId, show) {

    var id = targetId;

    var div = document.getElementById(id);
    var image = document.getElementById(id + 'StartImage');

    var targetHeight = 440;
    var targetOpacity = 0;

    var heightPx = new String(div.style.height);
    var heightPx = heightPx.substr(0, 3);
    var height = heightPx * 1;

    if (height < 300)
        height = 300;

    var newHeight = height;

    var diffHeight = Math.ceil((targetHeight - height) / 3);

    newHeight = height + diffHeight;
    newOpacity = 100 - Math.floor(((newHeight - 300) / (targetHeight - 300)) * 100);

    if (Math.abs(newHeight - targetHeight) <= 1) {
        newHeight = targetHeight;
        newOpacity = targetOpacity;
    }

    div.style.height = newHeight + 'px';

    setOpacity(image, newOpacity);

    if (Math.abs(newHeight - targetHeight) <= 1)
        startGallery(targetId, galleryId);
    else
        window.setTimeout("fadeGallery('" + targetId + "','" + galleryId + "','" + show + "')", 1);

}

function setOpacity(object, opacity) {

    if (!object)
        return;

    object.style.filter = "alpha(opacity:" + opacity + ")"; // IE/Win
    object.style.KHTMLOpacity = opacity / 100; 			// Safari<1.2, Konqueror
    object.style.MozOpacity = opacity / 100; 				// Older Mozilla and Firefox
    object.style.opacity = opacity / 100; 				// Safari 1.2, newer Firefox and Mozilla, CSS3
}


function startGallery(targetId, galleryId) {

    var containerDivId = galleryId + '_container';

    // Flytter galleri til startposisjon
    var galleryImages = document.getElementById(galleryId + '_images');
    galleryImages.style.left = '760px';


    // Henter inn div fra content
    var targetDiv = document.getElementById(targetId);
    var containerDiv = document.getElementById(containerDivId);

    // Putter startbilde i content
    var content = containerDiv.innerHTML;
    containerDiv.innerHTML = targetDiv.innerHTML;

    // Legger galleri i target
    targetDiv.innerHTML = content;

    // Flytter innhold til høyre
    galleryNext(galleryId);

}


function galleryGetInfo(galleryId) {

    var divId = galleryId + '_images';
    var div = document.getElementById(divId);

    // posisjon
    var posPx = new String(div.style.left);
    posPx = posPx.substr(0, posPx.length - 2);
    var pos = posPx * 1;

    // bredde
    var widthPx = new String(div.style.width);
    widthPx = widthPx.substr(0, widthPx.length - 2);
    var width = widthPx * 1;

    // antall bilder
    var imgCount = Math.ceil(width / 760);

    // bildeNo
    var imgNo = Math.floor(0 - pos / 760) + 1;

    // i bevegelse
    var moving = (0 - ((imgNo - 1) * 760) != pos);

    var result = new Array(imgNo, imgCount, pos, width, moving);

    return result;

}


function galleryGetPos(galleryId) {

    var divId = galleryId + '_images';
    var div = document.getElementById(divId);

    var posPx = new String(div.style.left);
    var posPx = posPx.substr(0, posPx.length - 2);
    var pos = posPx * 1;

    return pos;

}


function galleryNext(galleryId) {
    var info = galleryGetInfo(galleryId);

    if (info[4] || info[0] == info[1])
        return false;

    // skjuler knapp hvis siste bilde
    var button = document.getElementById(galleryId + '_next');
    button.style.display = (info[0] > info[1] - 3) ? 'none' : 'inline';

    button = document.getElementById(galleryId + '_prev');
    button.style.display = (info[0] < 1) ? 'none' : 'inline';

    var newPos = 0 - (info[0] * 760);

    galleryScroll(galleryId, info[2], newPos, true, info[0] + 1, info[0]);

}


function galleryPrev(galleryId) {
    var info = galleryGetInfo(galleryId);

    if (info[4] || info[0] <= 1)
        return false;

    // skjuler knapp hvis siste bilde
    var button = document.getElementById(galleryId + '_prev');
    button.style.display = (info[0] <= 2) ? 'none' : 'inline';

    button = document.getElementById(galleryId + '_next');
    button.style.display = 'inline';

    var newPos = 0 - ((info[0] - 2) * 760);

    galleryScroll(galleryId, info[2], newPos, true, info[0] - 1, info[0]);
}


function galleryScroll(galleryId, startPos, stopPos, start, showPicNo, hidePicNo) {
    var divId = galleryId + '_images';
    var div = document.getElementById(divId);

    var dir = (startPos > stopPos);

    if (start)
        window.galleryScrollDirection = dir;
    else if (window.galleryScrollDirection != dir) {
        alert('feilveg');
        return false;
    }

    var showPic = document.getElementById(galleryId + '_image' + showPicNo);
    var hidePic = document.getElementById(galleryId + '_image' + hidePicNo);

    // Skjuler bilde som skal vises
    if (start)
        setOpacity(showPic, 0)

    var posPx = new String(div.style.left);
    var posPx = posPx.substr(0, posPx.length - 2);
    var pos = posPx * 1;

    if (isNaN(pos))
        return;

    // Finner ny opacity
    var newOpacityOut = Math.floor(((Math.abs(pos - stopPos) * 3) / Math.abs(startPos - stopPos)) * 100);
    var newOpacityIn = 100 - Math.floor(((Math.abs(pos - stopPos) * 2) / Math.abs(startPos - stopPos)) * 100);

    setOpacity(showPic, newOpacityIn);

    if (hidePic)
        setOpacity(hidePic, newOpacityOut);

    diffPos = Math.ceil((pos - stopPos) / 5);

    if (diffPos == 0)
        diffPos = -1;

    pos -= diffPos;

    div.style.left = pos + 'px';

    if (pos != stopPos)
        window.setTimeout("galleryScroll('" + galleryId + "', " + startPos + "," + stopPos + ", false," + showPicNo + "," + hidePicNo + ")", 10);

}

