﻿var placeholder = document.getElementById("my_gallery");

var item_arr = new Array();
var img_array = new Array();
var title_array = new Array();
var desc_array = new Array();

var index = null;
var curr = document.getElementById("img1");
var new_img = document.getElementById("img2");
var previous = new Image();
var next = new Image();

var title = document.getElementById("img_title");
var desc = document.getElementById("desc");

//--slide show parameters
var t;
var slide_show_interval = 5000;
var fading_speed = 10;


function initGallery(img, title, desc, i) {
    index = i;

    img_array = img;
    title_array = title;
    desc_array = desc;

    setPic(i);

    placeholder.className = "gallery";
}

function closeGallery() {
    placeholder.className = "hidden";
    curr.src = "";
    new_img.src = "";
}

function setPic(i) {
    var temp;

    if (i >= 0 && i < img_array.length) {
        new_img.src = img_array[i];
        
        fadeIn(new_img, 0, 100);
        fadeOut(curr, 100, 0);

        temp = curr;
        curr = new_img;
        new_img = temp;

        next.src = img_array[i + 1];
        previous.src = img_array[i - 1];
        index = i;

        title.innerHTML = title_array[i];
        desc.innerHTML = desc_array[i];
    }
}
function setNext() {
    setPic(index + 1);
}
function setPrevious() {
    setPic(index - 1);
}

//---------------- SLIDE SHOW ---------------------------

function slideShow() {
    t = setTimeout("startShow()", slide_show_interval);
}
function startShow() {
    var i = (curr + 1 == item_arr.length) ? 1 : curr + 1;
    changePic(i);
    
    if(document.getElementById("pause").className == "button pause") {
        t = setTimeout("startShow()", slide_show_interval);
    }
}
function stopShow() {
    clearTimeout(t);
}
function pausePlay() {
    var obj = document.getElementById("pause");
    if(obj.className == "button pause") {
        obj.className = "button play";
        stopShow();
    }
    else {
        obj.className = "button pause";
        t = setTimeout("startShow()", slide_show_interval);
    }
}

//--------------- OPACITY EFFECTS ---------------------

function fadeIn(obj, startfade, endfade) {
	var timer = 0;
	if (startfade < endfade) {
		for (j = startfade; j <= endfade; j++) {
			setTimeout("setOpacity(" + j + ",'" + obj.id + "');", (timer * fading_speed));
			timer++;
		}
	}
}

function fadeOut(obj, startfade, endfade) {
	var timer = 0;
	if (startfade > endfade) {
		for (j = startfade; j >= endfade; j--) {
			setTimeout("setOpacity(" + j + ",'" + obj.id + "');", (timer * fading_speed));
			timer++;
		}
	}
}

function setOpacity(opacity, id) {
    var obj = document.getElementById(id);
    
	obj.style.opacity = (opacity / 100);
	obj.style.MozOpacity = (opacity / 100);
	obj.style.KhtmlOpacity = (opacity / 100);
	obj.style.filter = "alpha(opacity=" + opacity + ")";
}

//----------------------RESIZE------------------------

function resizeGallery() {
//    placeholder.style.height = (document.getElementById("wrapper").offsetHeight - 10) + "px";
    resizeImage(curr);
    resizeImage(new_img);
}
function resizeImage(img) {
    var w = winWidth();
    var h = winHeight();
    img.style.width = "auto";
    img.style.height = "auto";
    
    if (img.offsetWidth > w) {
        img.style.width = w + "px";
        img.style.height = "auto";
    }
    if (img.offsetHeight > h - 60) {
        img.style.height = (h - 60) + "px";
        img.style.width = "auto";
    }

    if (img.offsetWidth < w)
        img.style.left = ((w - img.offsetWidth) / 2) + "px";
    else
        img.style.left = "0px";
    if (img.offsetHeight < h - 60)
        img.style.top = (((h - 60 - img.offsetHeight) / 2) + 40) + "px";
    else
        img.style.top = "40px";
}
