﻿// This script handles all transitions between slides.

/* Because slides can be either images or videos,
* it has to transition between them.  It does this
* by looking for the number of divs with class clsSlide
* in the callout, forming up to 6 buttons, then initiating.
* It also has to freeze whenever someone starts a video playing.
*/

/* This code is partially based on the code for standard slideshows */
var arrTimeouts;
var varLastSlideIndex;
var varSpeed;
var varSlideTotal;
var varHold;
var mediaPlayers;
function createSlideshowButtons() {
    var strButtons = "";
    for (var i = 1; i <= $(".clsSlide").length; i++) {
        if (i > 6) {
            break;
        }
        else if (i > 1) {
            strButtons += "<a href='javascript:varHold=false;showSlideLeft(" + i + ");' class='clsSlideShowButton' id='btnSlide" + i + "'></a>";
        }
        else {
            strButtons += "<a class='clsSlideShowButton' id='btnSlide" + i + "'></a>";
        }
    }
    $("#divButtonContainer").html(strButtons.toString());
}

function setSlideshowButtons(currentSlideIndexIn) {
    for (var i = 1; i <= $(".clsSlideShowButton").length; i++) {
        if (i < currentSlideIndexIn) {
            $("#btnSlide" + i).attr("href", "javascript:varHold=false;showSlideRight(" + i + ")");
        }
        else if (i == currentSlideIndexIn) {
            $("#btnSlide" + i).attr("href", "");
        }
        else {
            $("#btnSlide" + i).attr("href", "javascript:varHold=false;showSlideLeft(" + i + ")");
        }
    }
}

function clearAllTimeouts() {
    for (key in arrTimeouts) {
        clearTimeout(arrTimeouts[key]);
    }
}

function showSlideLeft(varSlideIndexIn) {
    if (!varHold) {
        if (varSlideIndexIn > varSlideTotal) {
            varSlideIndexIn = 1;
        }
        if (varSlideIndexIn - 1 == 0) {
            varTempPrevIndex = varSlideTotal;
        }
        else {
            varTempPrevIndex = varSlideIndexIn - 1;
        }
        setSlideshowButtons(varSlideIndexIn)
        clearAllTimeouts();
        arrTimeouts["changeSlideID"] = setTimeout("showSlideLeft(" + (varSlideIndexIn + 1) + ")", varSpeed * 1000);

        slideImageLeft("divSlide" + varSlideIndexIn, 100, 940);
        $("#txtSlide").html($("#divSlide" + varSlideIndexIn + " .clsText").html())
        if ($("#txtSlide").html().toString() == "") {
            $("#txtSlide").css("visibility", "hidden");
            $("#txtSlide").css("display", "none");
        }
        else {
            $("#txtSlide").css("visibility", "visible");
            $("#txtSlide").css("display", "block");
        }
        for (var i = 0; i < jwplayer.length; i++) {
            jwplayer(i).pause(true);
        }
        
        document.getElementById("lnkSlideNext").href = "javascript:varHold=false;showSlideLeft(" + (varSlideIndexIn + 1) + ")";
        document.getElementById("lnkSlidePrev").href = "javascript:varHold=false;showSlideRight(" + (varTempPrevIndex) + ")";
        var intCounter = 1;
        for (intCounter = 1; intCounter <= varSlideTotal; intCounter++) {
            document.getElementById("btnSlide" + intCounter).style.backgroundPosition = "top";
            document.getElementById("divSlide" + intCounter).style.zIndex = 0;
            if (!((varSlideIndexIn == intCounter) || (varLastSlideIndex == intCounter))) {
                document.getElementById("divSlide" + intCounter).style.left = "1000px";
            }           
        }
        document.getElementById("divSlide" + varLastSlideIndex).style.zIndex = 4;
        document.getElementById("btnSlide" + varSlideIndexIn).style.backgroundPosition = "bottom";
        document.getElementById("divSlide" + varSlideIndexIn).style.zIndex = 5;
        varLastSlideIndex = varSlideIndexIn;
    }
}

function showSlideRight(varSlideIndexIn) {
    if (!varHold) {
        if (varSlideIndexIn > varSlideTotal) {
            varSlideIndexIn = 1;
        }
        var varTempPrevIndex = 0;
        if (varSlideIndexIn - 1 == 0) {
            varTempPrevIndex = varSlideTotal;
        }
        else {
            varTempPrevIndex = varSlideIndexIn - 1;
        }
        setSlideshowButtons(varSlideIndexIn)
        clearAllTimeouts();
        arrTimeouts["changeSlideID"] = setTimeout("showSlideLeft(" + (varSlideIndexIn + 1) + ")", varSpeed * 1000);

        slideImageRight("divSlide" + varSlideIndexIn, 100, -940);
        $("#txtSlide").html($("#divSlide" + varSlideIndexIn + " .clsText").html())
        if ($("#txtSlide").html().toString() == "") {
            $("#txtSlide").css("visibility", "hidden");
            $("#txtSlide").css("display", "none");
        }
        else {
            $("#txtSlide").css("visibility", "visible");
            $("#txtSlide").css("display", "block");
        }
        for (var i = 0; i < jwplayer.length; i++) {
            jwplayer(i).pause(true);
        }
        document.getElementById("lnkSlideNext").href = "javascript:varHold=false;showSlideLeft(" + (varSlideIndexIn + 1) + ")";
        document.getElementById("lnkSlidePrev").href = "javascript:varHold=false;showSlideRight(" + (varTempPrevIndex) + ")";
        var intCounter = 1;
        for (intCounter = 1; intCounter <= varSlideTotal; intCounter++) {
            document.getElementById("btnSlide" + intCounter).style.backgroundPosition = "top";
            document.getElementById("divSlide" + intCounter).style.zIndex = 0;
            if (!((varSlideIndexIn == intCounter) || (varLastSlideIndex == intCounter))) {
                document.getElementById("divSlide" + intCounter).style.left = "1000px";
            }
        }
        document.getElementById("divSlide" + varLastSlideIndex).style.zIndex = 4;
        document.getElementById("btnSlide" + varSlideIndexIn).style.backgroundPosition = "bottom";
        document.getElementById("divSlide" + varSlideIndexIn).style.zIndex = 5;
        varLastSlideIndex = varSlideIndexIn;
    }
}

function slideImageLeft(imageid, millisec, width) {
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //move image to default position
    changePos(0, imageid);

    //start sliding image
    for (i = (width); i >= 0; i--) {
        arrTimeouts["fadeSlide" + i] = setTimeout("changePos(" + i + ",'" + imageid + "')", (timer * speed));
        timer++;
    }
}

function slideImageRight(imageid, millisec, width) {
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //move image to default position
    changePos(width, imageid);

    //start sliding image
    for (i = width; i <= 0; i++) {
        arrTimeouts["fadeSlide" + i] = setTimeout("changePos(" + i + ",'" + imageid + "')", (timer * speed));
        timer++;
    }
}

//change the position of the object
function changePos(x, id) {
    var object = document.getElementById(id).style;
    object.left = x + 'px';
    object.position = 'absolute';
}

function blendImage(imageid, millisec) {
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //make image transparent
    changeOpac(0, imageid);

    //fade in image
    for (i = 0; i <= 100; i++) {
        arrTimeouts["fadeSlide" + i] = setTimeout("changeOpac(" + i + ",'" + imageid + "')", (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 startSlideShow(slideTotalIn, speedIn) {
    arrTimeouts = new Array();
    varSpeed = speedIn;
    varSlideTotal = slideTotalIn;
    varLastSlideIndex = 1;
    //document.getElementById("imgSlide").src = "upload/images/slideshow/slide_1.jpg";
    showSlideLeft(1);
}

function initializeSlideShow(speedIn) {
    var intSlideCount = $(".clsSlide").length;
    createSlideshowButtons();
    varHold = false;
    $("#divSlideshow").click(function () { varHold = !varHold; });
    ContactLoad();
    startSlideShow(intSlideCount, speedIn);
}

function ClearInner(obj1) {
    obj1.value = "";
}

function ContactValidate(evt) {
    var regEmail = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    
    if ((document.getElementById(varContactPrefix + "txtName").value == "") || (document.getElementById(varContactPrefix + "txtName").value == "Name")) {
        alert("Please enter your name.");
        document.getElementById(varContactPrefix + "txtName").focus();
        return CancelEvent(evt);
    }
    if ((document.getElementById(varContactPrefix + "txtEmail").value == "") || (document.getElementById(varContactPrefix + "txtEmail").value == "Email")) {
        alert("Please enter your email address.");
        document.getElementById(varContactPrefix + "txtEmail").focus();
        return CancelEvent(evt);
    }
    if (!regEmail.test(document.getElementById(varContactPrefix + "txtEmail").value)) {
        alert("Please enter a valid email.");
        document.getElementById(varContactPrefix + "txtEmail").focus();
        return CancelEvent(evt);
    }
    if ((document.getElementById(varContactPrefix + "txtMessage").value == "") || (document.getElementById(varContactPrefix + "txtMessage").value == "Message")) {
        alert("Please enter a message for the email.");
        document.getElementById(varContactPrefix + "txtMessage").focus();
        return CancelEvent(evt);
    }
    return (true);
}

// page load functionality	
function ContactLoad() {
    var objEvents = new EventArray();
    objEvents.Add(new Event(varContactPrefix + "btnContact", "click", ContactValidate));
    objEvents.AttachEvents();
}

var varContactPrefix = "ctl00_plcPageContentPlaceholder_";
