﻿var sourceImage;
var firstImage;
var timeouts = Array();
var refreshTimeouts = Array();
var opacityTimeouts = Array();

function changeSquareColors(destinyImage) {
	var obj = document.getElementById('menu_home_info_right_border');
	var divs = obj.getElementsByTagName('div');
	for (var i=0 ; i<divs.length ; i++) {
		if (divs[i].className == 'slideButtonWhite') {
			divs[i].className = "slideButtonBlack";
		}
	}
	
	obj = document.getElementById(destinyImage);
	if (obj != null) {
		obj.parentNode.className = "slideButtonWhite";
	}
}

function changeSlide(destinyImage) {
    refreshSlide(sourceImage, destinyImage);
    sourceImage = destinyImage;    
	changeSquareColors(destinyImage);
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;
    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
	        opacityTimeouts[i] = setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
	        timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++) {
	        opacityTimeouts[i] = setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
	        timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

function shiftOpacity(id, millisec) {
    //if an element is invisible, make it visible, else make it ivisible
    if(document.getElementById(id).style.opacity == 0) {
        opacity(id, 0, 100, millisec);
    } else {
        opacity(id, 100, 0, millisec);
    }
}

function blendimage(divid, imageid, imagefile, millisec) {
    var speed = Math.round(millisec / 100);
    var timer = 0;
	
    //set the current image as background
    document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")";
	
    //make image transparent
    changeOpac(0, imageid);
	
    //make new image
    document.getElementById(imageid).src = imagefile;

    //fade in image
    for(i = 0; i <= 100; i++) {
        setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
        timer++;
    }
}

function currentOpac(id, opacEnd, millisec) {
    //standard opacity is 100
    var currentOpac = 100;
	
    //if the element has an opacity set, get it
    if(document.getElementById(id).style.opacity < 100) {
        currentOpac = document.getElementById(id).style.opacity * 100;
    }

    //call for the function that changes the opacity
    opacity(id, currentOpac, opacEnd, millisec)
}

function startSlide(destinyImage) {
    sourceImage = destinyImage;
    refreshTimeouts[0] = setTimeout("document.getElementById('slideContainer').style.backgroundImage = 'url(" + destinyImage + ")'", 200);
    refreshTimeouts[1] = setTimeout("document.getElementById('slideContainer').innerHTML = document.getElementById('" + destinyImage + "').innerHTML", 200);
    refreshTimeouts[2] = setTimeout("opacity('slideContainer', 0, 100, 2000)", 100);
}

function refreshSlide(sourceImage, destinyImage) {
    document.getElementById("slideContainer").innerHTML = document.getElementById(sourceImage).innerHTML;
    for (timeoutAux in opacityTimeouts) {
		clearTimeout(opacityTimeouts[timeoutAux]);
	}
	clearTimeout(refreshTimeouts[0]);
    clearTimeout(refreshTimeouts[1]);
    clearTimeout(refreshTimeouts[2]);
    opacity('slideContainer', 100, 0, 500);
	refreshTimeouts[0] = setTimeout("document.getElementById('slideContainer').style.backgroundImage = 'url(" + destinyImage + ")'", 500);
    refreshTimeouts[1] = setTimeout("document.getElementById('slideContainer').innerHTML = document.getElementById('" + destinyImage + "').innerHTML", 500);
    refreshTimeouts[2] = setTimeout("opacity('slideContainer', 0, 100, 2000)", 500);
}

function startSlideShow(destinyImage) {
    startSlide(destinyImage);
    var divs = document.getElementsByTagName('div');
	var divCounter = 1;
	var interval = 5000;
	var isFirstSlide = 'true';
	var timeoutIndex = 0;
	for (var i=0 ; i<divs.length ; i++) {
		if(divs[i].className=='slide') {
		    if (isFirstSlide == 'false') { 
                timeouts[timeoutIndex] = setTimeout("changeSlide('" + divs[i].id + "')", interval);
                interval = interval + 5000;
                timeoutIndex = timeoutIndex + 1;
            }
            else {
                isFirstSlide = 'false';
            }
		}
    }
	timeouts[timeoutIndex] = setTimeout("slideshow_off_click()", interval);   
	changeSquareColors(destinyImage);
}

function stopSlideShow() {
	for (var i=0 ; i<timeouts.length ; i++) {
        clearTimeout(timeouts[i]);
    }
}

function resumeSlideShow() {
    var divs = document.getElementsByTagName('div');
	var divCounter = 1;
	var interval = 5000;
	var isFirstSlide = 'true';
	var timeoutIndex = 0;
	for (var i=0 ; i<divs.length ; i++) {
		if(divs[i].className=='slide') {
		    if (isFirstSlide == 'false') { 
                timeouts[timeoutIndex] = setTimeout("changeSlide('" + divs[i].id + "')", interval);   
                interval = interval + 5000;
                timeoutIndex = timeoutIndex + 1;
            }
            else {
                if (divs[i].id == sourceImage) {
                    isFirstSlide = 'false';
                }
            }
		}
    }
	if (isFirstSlide == 'true')
		startSlideShow();
	timeouts[timeoutIndex] = setTimeout("slideshow_off_click()", interval);   
}
