﻿// this file needs to be included in the pages that show product ads (pads).  It provides
// functionality to dynamically display product information in a context layer

var defaultAdWidth = 225;
var defaultAdHeight = 250;
var defaultSpeed = 5;
var defaultPadLeft = 70;
var defaultPadTop = 80;
var startTimer, tmr01, tmr02, tmr03, tmr04, tmr05, tmr06, tmr07, tmr08, tmr09, tmr10, tmr11, tmr12;
var aspectRatio = (defaultAdHeight / defaultAdWidth);
var contentLayerArray = new Array("bck0", "bck1", "bck2", "bck3", "bck4", "bck5", "bck6", "bck7", "bck8", "bck9", "bck10", "bck11", "bck12");


function ShowProductInfo(contentLayerName) {
    HideAllButThis(contentLayerName);
    var contentLayer = document.getElementById(contentLayerName);
    if (contentLayer.style.display != 'block') {
        contentLayer.style.left = defaultPadLeft + ("px");
        contentLayer.style.top = defaultPadTop + ("px");
        contentLayer.style.display = 'block';
        //ClearTimer(contentLayerName);
        var fct = format("ToggleAdInfo('{0}',0, {1}, {2})", contentLayerName, defaultSpeed, 1);
        startTimer = setTimeout(fct, 0);
    }
}

function HideProductInfo(contentLayerName, Delay) {
    var contentLayer = document.getElementById(contentLayerName);
    if (contentLayer != null) {
        if (contentLayer.style.width == defaultAdWidth + ("px")) {
            var fct = format("ToggleAdInfo('{0}',{1}, {2}, {3})", contentLayerName, defaultAdWidth, defaultSpeed, (-1));
            SetTimer(fct, contentLayerName, Delay);
            contentLayer.style.display = 'block';
        }
    }
}

function ToggleAdInfo(contentLayerName, currentWidth, speed, direction) {
    var contentLayer = document.getElementById(contentLayerName);
    currentWidth = currentWidth + (speed * direction);
    currentHeight = currentWidth * aspectRatio;
    speed = speed + (.3)
    if (currentWidth > 1 && currentWidth < defaultAdWidth) {
        if (currentHeight > defaultAdHeight)
            currentHeight = defaultAdHeight;
        contentLayer.style.width = currentWidth + ("px");
        contentLayer.style.height = currentHeight + ("px");
        contentLayer.style.left = defaultPadLeft - (currentWidth / 2) + ("px");
        contentLayer.style.top = defaultPadTop - (currentHeight / 1.9) + ("px");

        var fct = format("ToggleAdInfo('{0}', {1}, {2}, {3})", contentLayerName, currentWidth, speed, direction);
        toggleTimer = setTimeout(fct, 0);
    }
    else {
        if (currentWidth <= 1) {
            contentLayer.style.width = 0 + ("px");
            contentLayer.style.height = 0 + ("px");
            contentLayer.style.display = 'none';
        }
        else {
            contentLayer.style.width = defaultAdWidth + ("px");
            contentLayer.style.height = defaultAdHeight + ("px");
            HideProductInfo(contentLayerName, 7000);
        }
    }
}

function HideAllButThis(contentLayerName) {
    var contentLayer
    for (i = 1; i <= 12; i++) {
        if (contentLayerArray[i] != contentLayerName)
        {
            contentLayer = document.getElementById(contentLayerArray[i]);
            if(contentLayer!=null)
            {
                contentLayer.style.width = 0 + ("px");
                contentLayer.style.height = 0 + ("px");
                contentLayer.style.display = 'none';
            }
        }
    }
}

function SetTimer(procedure, LayerName, timerDelay) {
    switch (LayerName) {
        case "bck1":
            tmr01 = setTimeout(procedure, timerDelay);
            break;
        case "bck2":
            tmr02 = setTimeout(procedure, timerDelay);
            break;
        case "bck3":
            tmr03 = setTimeout(procedure, timerDelay);
            break;
        case "bck4":
            tmr04 = setTimeout(procedure, timerDelay);
            break;
        case "bck5":
            tmr05 = setTimeout(procedure, timerDelay);
            break;
        case "bck6":
            tmr06 = setTimeout(procedure, timerDelay);
            break;
        case "bck7":
            tmr07 = setTimeout(procedure, timerDelay);
            break;
        case "bck8":
            tmr08 = setTimeout(procedure, timerDelay);
            break;
        case "bck9":
            tmr09 = setTimeout(procedure, timerDelay);
            break;
        case "bck10":
            tmr10 = setTimeout(procedure, timerDelay);
            break;
        case "bck11":
            tmr11 = setTimeout(procedure, timerDelay);
            break;
        case "bck12":
            tmr12 = setTimeout(procedure, timerDelay);
            break;
    }
}


function ClearTimer(LayerName) {
    switch (LayerName) {
        case "bck1":
            clearTimeout(tmr01);
            break;
        case "bck2":
            clearTimeout(tmr02);
            break;
        case "bck3":
            clearTimeout(tmr03);
            break;
        case "bck4":
            clearTimeout(tmr04);
            break;
        case "bck5":
            clearTimeout(tmr05);
            break;
        case "bck6":
            clearTimeout(tmr06);
            break;
        case "bck7":
            clearTimeout(tmr07);
            break;
        case "bck8":
            clearTimeout(tmr08);
            break;
        case "bck9":
            clearTimeout(tmr09);
            break;
        case "bck10":
            clearTimeout(tmr10);
            break;
        case "bck11":
            clearTimeout(tmr11);
            break;
        case "bck12":
            clearTimeout(tmr12);
            break;
    }
}

function format(str) {
    for (i = 1; i < arguments.length; i++) {
        str = str.replace("{" + (i - 1) + "}", arguments[i]);
    }
    return str;
}