﻿
var divHeight;
var divHeightVariable_opening;
var divHeightVariable_closing;
var clickedSubmenu;
var currentlyOpenSubmenu;
var closingSubmenu;
function OpenCloseSubMenu(smID) {
    clickedSubmenu = document.getElementById(smID);
    if (clickedSubmenu) {
        // If clicked submenu is already open close it.
        if (currentlyOpenSubmenu && clickedSubmenu.id == currentlyOpenSubmenu.id) {
            divHeightVariable_closing = parseInt((clickedSubmenu.style.height).replace('px', '')) + 8;
            closingSubmenu = clickedSubmenu;
            CloseSubmenu();
            currentlyOpenSubmenu = null;
            return;
        }
        // If there is an open submenu different from this clicked submenu close it
        if (currentlyOpenSubmenu) {
            divHeightVariable_closing = parseInt((currentlyOpenSubmenu.style.height).replace('px', '')) + 8;
            closingSubmenu = currentlyOpenSubmenu;
            CloseSubmenu();
        }
        // Then finally open the selected submenu
        divHeight = clickedSubmenu.getElementsByTagName('div')[0].offsetHeight;
        divHeightVariable_opening = 0;
        OpenSubmenu();
        currentlyOpenSubmenu = clickedSubmenu;
    }
}

function OpenSubmenu() {
    divHeightVariable_opening += 5;
    if (divHeightVariable_opening > (divHeight + 8)) {
        return;
    }
    clickedSubmenu.style.height = divHeightVariable_opening + 'px';
    setTimeout('OpenSubmenu()', 1);
}
function CloseSubmenu() {
    divHeightVariable_closing -= 5;
    if (divHeightVariable_closing <= 0) {
        closingSubmenu.style.height = '0px';
        return;
    }
    closingSubmenu.style.height = divHeightVariable_closing + 'px';
    setTimeout('CloseSubmenu()', 1);
}

function ShowSideNavSubMenu(submenuID) {
    ssmElm = document.getElementById(submenuID);
    ssmElm.style.height = (ssmElm.getElementsByTagName('div')[0].offsetHeight + 5) + 'px';
    currentlyOpenSubmenu = ssmElm;
}

function OpenCloseDiv(divID) {
    if (document.getElementById(divID).style.display == "none")
        document.getElementById(divID).style.display = "block";
    else
        document.getElementById(divID).style.display = "none";

}

// ************************************************************
// * Slide show with cross fade
// ************************************************************
var ssImages; var ssImg0; var ssImg1;
var curImgIx;
var noOfImages;
var ImgShowingTime = 5000;
function PreloadImages() {
    divSlideShow1c = document.getElementById('div_SlideShow_1_c');
    ssImg0 = document.getElementById('ssImg_0');
    ssImg1 = document.getElementById('ssImg_1');
    ssImg0.style.width = ssImg1.style.width = divSlideShow1c.style.width;
    ssImg0.style.height = ssImg1.style.height = divSlideShow1c.style.height;
    frameImg = document.getElementById('SlideShowFrame');
    if (frameImg) {
        frameImg.style.width = divSlideShow1c.style.width;
        frameImg.style.height = divSlideShow1c.style.height;
    }
    noOfImages = PreloadImages.arguments.length - 1;
    ssImages = new Array(noOfImages);
    totalImagesLoaded = 0;

    // Load the 1st image and display immediately
    divSlideShow1 = document.getElementById('divSlideShow_1');
    img0 = new Image();
    img0.onload = function() { img0.style.width = divSlideShow1c.style.width; img0.style.height = divSlideShow1c.style.height; ssImg0.src = img0.src; ssImg0.style.display = 'block'; ssImages[0] = img0; totalImagesLoaded++; };
    img0.src = PreloadImages.arguments[0] + PreloadImages.arguments[1];
    // Load the rest of the images and once loaded start the slideshow
    for (ix = 1; ix < noOfImages; ix++) {
        anImg = new Image();
        anImg.onload = function() {
            totalImagesLoaded++;
            if (totalImagesLoaded == noOfImages) {
                ssImg1.src = ssImages[1].src;
                curImgIx = 0;
                DoSlideShow();
            }
        };
        anImg.style.width = divSlideShow1c.style.width;
        anImg.style.height = divSlideShow1c.style.height;
        anImg.src = PreloadImages.arguments[0] + PreloadImages.arguments[ix + 1];
        ssImages[ix] = anImg;
    }
}

opaVal = noOfFadingSteps = 50;
factor100 = 100 / noOfFadingSteps;
function DoSlideShow() {
    // Place the current image in ssImg_0 and next image in ssImg_1
    ssImg0.src = ssImages[curImgIx].src;
    nextImgIx = curImgIx + 1;
    if (nextImgIx > noOfImages - 1) nextImgIx = 0;
    ssImg1.src = ssImages[nextImgIx].src;

    ssImg1.style.display = 'block';
    setTimeout('CrossFade()', ImgShowingTime);
}
stepCntr = 0;
function CrossFade() {
    // Fade out
    ssImg0.style.opacity = opaVal / noOfFadingSteps; // ff 1.0 to 0.0
    ssImg0.style.filter = 'alpha(opacity=' + opaVal * factor100 + ')'; // ie 100 to 0
    // Fade in
    ssImg1.style.opacity = (noOfFadingSteps - opaVal) / noOfFadingSteps; // ff 0.0 to 1.0
    ssImg1.style.filter = 'alpha(opacity=' + (noOfFadingSteps - opaVal) * factor100 + ')'; // ie 0 to 100

    opaVal--;
    if (opaVal < 0) {
        ssImg0.src = ssImg1.src;
        ssImg0.style.opacity = 1; ssImg0.style.filter = 'alpha(opacity=100)';
        ssImg1.style.display = 'none';
        opaVal = noOfFadingSteps;
        curImgIx++;
        if (curImgIx > (noOfImages - 1)) curImgIx = 0;
        DoSlideShow();
        return;
    }
    setTimeout('CrossFade()', 20);
}



// ************************************************************
// * News displayer with fades
// ************************************************************
var isNewsPaused = false;
var newsItems;
var newsIx = -1;
var newsElement;
var divNewsHeight;
var divNewsWidth;

function ShowNews() {
    newsIx++;
    if (newsIx == newsItems.length) newsIx = 0;
    newsElement = newsItems[newsIx];
    
    // Fade in
//    newsElement.style.opacity = 0.0; // ff 0.0 to 1.0
//    newsElement.style.filter = 'alpha(opacity=0)'; // ie 0 to 100
//    newsElement.style.display = 'block';
//    DoFadeInElement();

    // Scroll up
    vScroolPos = divNewsHeight;
    newsElement.style.marginTop = divNewsHeight + 'px';
    newsElement.style.display = 'block';
    newsElement.style.opacity = 1.0; // ff 0.0 to 1.0
    newsElement.style.filter = 'alpha(opacity=100)'; // ie 0 to 100
    DoScrollUpElement();
}

var vScroolPos;

function DoScrollUpElement() {
    newsElement.style.marginTop = vScroolPos + 'px';

    vScroolPos = vScroolPos - 2;

    if (vScroolPos < 0) {
        // Scroll up complete
        setTimeout('DoFadeOutElement()', 5000);
        return;
    }

    setTimeout('DoScrollUpElement()', 25);
}

var newsNoOfFadingSteps = 50; var newsOpacityValue = 50; var newsFactor100 = 100 / newsNoOfFadingSteps;

function DoFadeInElement() {
    newsElement.style.opacity = (newsNoOfFadingSteps - newsOpacityValue) / newsNoOfFadingSteps; // ff 0.0 to 1.0
    newsElement.style.filter = 'alpha(opacity=' + (newsNoOfFadingSteps - newsOpacityValue) * newsFactor100 + ')'; // ie 0 to 100

    newsOpacityValue--;

    if (newsOpacityValue < 0) {
        // FadeIn complete
        newsOpacityValue = newsNoOfFadingSteps;
        setTimeout('DoFadeOutElement()', 3000);
        return;
    }

    setTimeout('DoFadeInElement()', 20);
}

function DoFadeOutElement() {
    if (isNewsPaused) { setTimeout('DoFadeOutElement()', 1000); return; }
    newsElement.style.opacity = newsOpacityValue / newsNoOfFadingSteps; // ff 1.0 to 0.0
    newsElement.style.filter = 'alpha(opacity=' + newsOpacityValue * newsFactor100 + ')'; // ie 100 to 0

    newsOpacityValue--;

    if (newsOpacityValue < 0) {
        // FadeIn complete
        newsOpacityValue = newsNoOfFadingSteps;
        newsElement.style.display = 'none';
        newsElement.style.opacity = 1.0; // ff 1.0 to 0.0
        newsElement.style.filter = 'alpha(opacity=100)'; // ie 100 to 0
        setTimeout('ShowNews()', 1000);
        return;
    }

    setTimeout('DoFadeOutElement()', 20);
}

function PauseNews() {
    isNewsPaused = true;
}
function ResumeNews() {
    isNewsPaused = false;
}
