﻿function getScrollingPosition() {
    var position = [0, 0];
    if (typeof window.pageYOffset != 'undefined') {
        position = [window.pageXOffset, window.pageYOffset];
    }
    else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0) {
        position = [document.documentElement.scrollLeft, document.documentElement.scrollTop];
    }
    else if (typeof document.body.scrollTop != 'undefined') {
        position = [document.body.scrollLeft, document.body.scrollTop];
    }
    return position;
}

/* Move Zoom Control */

var thisDiv = "";
var growDivUsed = "no";
var oldScroll = 0;
var newScroll = 0;
var growPart = 0;
var gradualLevel = 20;
var growThis = 0;
var scrollpos = 0;
var pageHeight = 0;

function activateGrow(divName) {
    if (growDivUsed == "no") {
        thisDiv = divName;
        growDivTimer = setTimeout("calculateGrow()", 500);
        playMoveSound = setTimeout("soundSlide()", 350);
        growDivUsed = "yes"
    }
    slidePlay = 0;
}

function calculateGrow() {

    scrollpos = getScrollingPosition();
    pageHeight = document.getElementById('zoom_content').offsetHeight;
    
    switch (zoomLevel) {
        case "small":
            zoomFix = 1;
            break;

        case "medium":
            zoomFix = 0.9;
            break;

        case "maximized":
            zoomFix = 0.6;
            break;

        default:
            zoomFix = 1;
            break;
    }

    newScroll = scrollpos[1] * zoomFix + 100 * zoomFix;

    if ((newScroll + 200) > pageHeight) newScroll = pageHeight - 210;
 
    growPart = (newScroll - oldScroll) / 190;
    gradualGrow();
}

function gradualGrow() {
    gradualGrowTimer = setTimeout("growDiv()", 20);
}

function growDiv() {

    clearTimeout(gradualGrowTimer);

    if (gradualLevel == 20) { growThis = oldScroll; }
    else { growThis = growThis + growPart * gradualLevel; }

    if (gradualLevel != 0) {
        document.getElementById(thisDiv).style.height = growThis + 'px';
        gradualLevel = gradualLevel - 1;
        gradualGrow();
    } else {
        gradualLevel = 20;
        growThis = 0;
        oldScroll = newScroll;
        growDivUsed = "no";
        
        scrollpos = getScrollingPosition();
        if (oldScroll != scrollpos[1] * zoomFix + 100 * zoomFix) {
            soundSlide();
            calculateGrow();
        }
    }
}