﻿// JScript File

var isNS = (document.layers) ? 1 : 0; 

var isIE = (document.all) ? 1 : 0; 
var isMZ = (!isIE && document.getElementById) ? 1 : 0; 

var scrollData;

function initScroll(pathToImages, initialImage, imagesCount, linesCount, linesPerPage, lineHeight) {
    scrollData = new Object();
    scrollData.imagesCount = imagesCount;
    scrollData.pathToImages = pathToImages;
    scrollData.initialImage = initialImage;
    scrollData.currentImage = 0;
    scrollData.linesOffset = 0;
    scrollData.linesCount = linesCount;
    scrollData.linesPerPage = linesPerPage;
    scrollData.lineHeight = lineHeight;
    scrollData.delay = 10;
    scrollData.deltaY = 4;
    scrollData.blendDelay = 1500;
    
    scrollData.previousImage = new Image();
    scrollData.nextImage = new Image();
}

function initPage()
{
    preloadImages();
    checkNavigation();
}

function preloadImages() {
    if (scrollData.currentImage > 0) {
        if (scrollData.currentImage > 1) {
            scrollData.previousImage.src = scrollData.pathToImages + padDigits(scrollData.currentImage - 1, 2) + '.jpg';
        }
        else {
            scrollData.previousImage.src = scrollData.pathToImages + scrollData.initialImage;
        }        
    }
    
    if (scrollData.currentImage < scrollData.imagesCount) {
        scrollData.nextImage.src = scrollData.pathToImages + padDigits(scrollData.currentImage + 1, 2) + '.jpg';
    }
    
    aNext = document.getElementById('aNextImage');
    aPrevious = document.getElementById('aPreviousImage');
    
    if (aNext != null && aPrevious != null) {
        if (scrollData.currentImage < scrollData.imagesCount) {
            aNext.className = '';
        }
        else {
            aNext.className = 'disabled';
        }
        
        if (scrollData.currentImage > 0) {
            aPrevious.className = '';
        }
        else {
            aPrevious.className = 'disabled';
        }
    }            
}

function checkNavigation() {

    aThumbNext = document.getElementById('aNextThumb');
    aThumbPrevious = document.getElementById('aPreviousThumb');
    
    if (aThumbNext != null && aThumbPrevious != null) {
        if (scrollData.linesOffset < scrollData.linesCount - scrollData.linesPerPage) {
            aThumbNext.className = '';
        }
        else {
            aThumbNext.className = 'disabled';
        }
        
        if (scrollData.linesOffset > 0) {
            aThumbPrevious.className = '';
        }
        else {
            aThumbPrevious.className = 'disabled';
        }
    }        
}

function nextImage() {
    if (scrollData.currentImage < scrollData.imagesCount) {
    	scrollData.currentImage += 1;
    	if (scrollData.currentImage < 100){
    	document.getElementById('pictureName').innerHTML = 'Poza ' + 0 + padDigits(scrollData.currentImage, 2);
        blendImage('divBigImage', 'imgBigImage', scrollData.pathToImages + 0 + padDigits(scrollData.currentImage, 2) + '.jpg', scrollData.blendDelay);
        preloadImages();
    	}
    	else {
    	document.getElementById('pictureName').innerHTML = 'Poza ' + padDigits(scrollData.currentImage, 2);
        blendImage('divBigImage', 'imgBigImage', scrollData.pathToImages + padDigits(scrollData.currentImage, 2) + '.jpg', scrollData.blendDelay);
        preloadImages();
    	}
    }
}

function previousImage() {
    if (scrollData.currentImage > 0) {
        if (scrollData.currentImage > 1) {
        	scrollData.currentImage -= 1;
        	if (scrollData.currentImage < 100){
	        	document.getElementById('pictureName').innerHTML = 'Poza ' + 0 + padDigits(scrollData.currentImage, 2);
	            blendImage('divBigImage', 'imgBigImage', scrollData.pathToImages + 0 + padDigits(scrollData.currentImage, 2) + '.jpg', scrollData.blendDelay);
        	}
        	else {
        		document.getElementById('pictureName').innerHTML = 'Poza ' +  padDigits(scrollData.currentImage, 2);
            	blendImage('divBigImage', 'imgBigImage', scrollData.pathToImages +  padDigits(scrollData.currentImage, 2) + '.jpg', scrollData.blendDelay);
        	}
        }
        else {
        	scrollData.currentImage -= 1;
        	document.getElementById('pictureName').innerHTML = 'Poza ' + scrollData.initialImage ;
            blendImage('divBigImage', 'imgBigImage', scrollData.pathToImages + scrollData.initialImage, scrollData.blendDelay);
        }
        preloadImages();
    }
}

function setImage(imageNo) {
	scrollData.currentImage = imageNo;
	if (scrollData.currentImage < 100){
		document.getElementById('pictureName').innerHTML = 'Poza ' + 0 + padDigits(imageNo, 2);
	    
	    blendImage('divBigImage', 'imgBigImage',  scrollData.pathToImages + 0 + padDigits(imageNo, 2) + '.jpg', scrollData.blendDelay);
	    preloadImages();
	}
	else {
		document.getElementById('pictureName').innerHTML = 'Poza ' + padDigits(imageNo, 2);
	    scrollData.currentImage = imageNo;
	    blendImage('divBigImage', 'imgBigImage',  scrollData.pathToImages + padDigits(imageNo, 2) + '.jpg', scrollData.blendDelay);
	    preloadImages();
	}
}

function scrollUpOneLine(divName) {
    if (scrollData.linesOffset > 0) {
        scrollData.linesOffset -= 1;
        scrollLayerTo(divName, scrollData.deltaY, scrollData.delay, scrollData.lineHeight, 1);
    }
    checkNavigation();
}

function scrollDownOneLine(divName) {
    if (scrollData.linesOffset < scrollData.linesCount - scrollData.linesPerPage) {
        scrollData.linesOffset += 1;
        scrollLayerTo(divName, scrollData.deltaY, scrollData.delay, scrollData.lineHeight, -1);
    }
    checkNavigation();
}

var continueScroll=false;


function scrollLayerTo(divName, pxPerIteration, delay, offset, direction) {
    var scrollLayer = getLayer(divName);
    if (scrollLayer != null) {
        continueScroll = true;
        setTimeout("scrollOneStep(\"" + divName + "\", " + pxPerIteration + ", " + delay + ", " + offset + ", " + direction + ")", delay);
    }
}

function scrollOneStep(divName, pxPerIteration, delay, offset, direction) {
    if (continueScroll && offset > 0) {
        var scrollLayer = getLayer(divName);
        if (scrollLayer != null) {
            moveLayerBy(scrollLayer, 0, direction * pxPerIteration);
            offset = offset - pxPerIteration;
            setTimeout("scrollOneStep(\"" + divName + "\", " + pxPerIteration + ", " + delay + ", " + offset + ", " + direction + ")", delay);
        }
    }
}

function getLayer(name) 
{ 
    if (isMZ) return document.getElementById(name); 
    else if (isIE) return eval('document.all.' + name); 
    else { 
        var layer; 
        for (var i = 0; i < document.layers.length; i++) { 
            layer = document.layers[i]; if (layer.name == name) return layer; 
        } 
    } 
} 

function getLeft(layer) { 
    if (isNS) return(layer.left); 
    else {
        var left = parseInt(layer.style.left.replace('px', '')); 
        if (isNaN(left)) left = 0;
        return left;
    }
} 

function getTop(layer) { 
    if (isNS) return(layer.top); 
    else {
        var top = parseInt(layer.style.top.replace('px', '')); 
        if (isNaN(top)) top = 0;
        return top;
    }
} 

function moveLayerBy(layer, x, y) { 
    if (isNS) layer.moveBy(x, y); 
    else { 
        layer.style.left = getLeft(layer) + x + 'px'; 
        layer.style.top = getTop(layer) + y + 'px'; 
    } 
} 


//change the opacity for different browsers
function changeOpac(opacity, elem) {
	elem.style.opacity = (opacity / 100);
	elem.style.MozOpacity = (opacity / 100);
	elem.style.KhtmlOpacity = (opacity / 100);
	elem.style.filter = "alpha(opacity=" + opacity + ")";
}

function doFadeInOut (elem, startOpacity, endOpacity, steps, intervals, powr) 
{
	if (elem.fadeMemInt) window.clearInterval(elem.fadeMemInt);
	var actStep = 0;
	elem.fadeMemInt = window.setInterval(
		function() {
            var opacValue = easeInOut(startOpacity, endOpacity, steps, actStep, powr);
            changeOpac(opacValue, elem);
			actStep++;
			if (actStep > steps) {
			    window.clearInterval(elem.fadeMemInt);
			}
		}
		,intervals)
} 

function easeInOut(minValue, maxValue, totalSteps, actualStep, powr) 
{
	var delta = maxValue - minValue;
	var stepp = minValue + (Math.pow(((1 / totalSteps) * actualStep), powr) * delta);
	return Math.ceil(stepp)
}


function blendImage(divid, imageid, imagefile, millisec) {
	var speed = Math.round(millisec / 100);
	var timer = 0;

    var img = document.getElementById(imageid);
    var divImage = document.getElementById(divid);

    if (img != null && divImage != null) 
    {
	   // divImage.style.backgroundRepeat = 'no-repeat';
	   // divImage.style.backgroundPosition = '1px 0px';
	  //  divImage.style.backgroundImage = "url(" + img.src + ")";
        
        //make image transparent
        changeOpac(0, img);

        //make new image
        img.src = imagefile;

        //make image visible
        changeOpac(100, img);
        //doFadeInOut(img, 0, 100, 24, 10, .5);
    }
}

function padDigits(n, totalDigits) 
{ 
    n = n.toString(); 
    var pd = ''; 
    if (totalDigits > n.length) 
    { 
        for (i=0; i < (totalDigits-n.length); i++) 
        { 
            pd += '0'; 
        } 
    } 
    return pd + n.toString(); 
} 