var blockContainers = Array(
    "webDev_container",
    "ecomm_container",
    "seo_container",
    "ssm_container",
    "dmm_container",
    "mobile_container",
    "im_container"
    );

var autoBlockAnimationOn = false;
var lowOpacity = 0.0;
var noOpacity = 0.0;
var highOpacity = 1.0;
var logoAnimationTime = 5000;
var lowInterval = 2;
var medInterval = 1000;
var appearInterval = 2000;
var delayInterval = 5000;
var fadeInterval = 2000;
var timeToGetAttention = 7000;
var messageDisplayTime = 3000;
var leftSpan = 600;
var topSpan = 80;
var currentShowingBlockId = -1;

function showAnimation(id){
    if(id != undefined){
        autoBlockAnimationOn = false;
        $("#bulb_offon").attr("class", "toggleBulbOff");
        if(isBlockVisible(id)){
            fadeBlock(id, 0);
            switchOffBulb(id);
            return 0;
        }
        hideall();
        appearBlock(id);
        return 0;
    }

    if(!autoBlockAnimationOn){
        startAutoAnimation();
    }
    return 0;
}

function toggleAnimation(){
    if(!autoBlockAnimationOn){
        hideall();
        autoBlockAnimationOn = true;
        runAutoAnimation();
        return 0;
    }
    autoBlockAnimationOn = false;
    hideall();
    $("#bulb_offon").attr("class", "toggleBulbOff");
    return 0;
}


function startAutoAnimation(){
    if(!autoBlockAnimationOn){
        hideall();
        autoBlockAnimationOn = true;
    }
    runAutoAnimation();
}

function runAutoAnimation(){

    if(!autoBlockAnimationOn){
        return 0;
    }
    $("#bulb_offon").attr("class", "toggleBulbOn");


    var modifiedDelayInterval = 0;


    //if more than one image visible, hide all
    if(areMoreThanOneBlockVisible()){
        hideall();
    }else{
        //hide current block
        idToFade = currentShowingBlockId;
        // if the currentShowingBlock is visible, fade it
        if(isBlockVisible(idToFade)){
            modifiedDelayInterval = delayInterval;
            $blockTofade = $("#" + blockContainers[idToFade]);
            $blockTofade.delay(delayInterval).animate({
                opacity: lowOpacity
            }, appearInterval, function() {
                $blockTofade.css("visibility", "hidden");
                switchOffBulb(idToFade);
            });

        }
    }
    //set new block to show
    currentShowingBlockId++;

    if(currentShowingBlockId >= blockContainers.length){
        currentShowingBlockId = 0;
    }

    
    if(isBlockVisible(currentShowingBlockId)){
        return true;
    }

    $this = $("#" + blockContainers[currentShowingBlockId]);
    setRandomLocation($this);
    $this.css("visibility", "visible");

    $this.delay(modifiedDelayInterval).animate({
        opacity: highOpacity
    }, appearInterval, function() {
        switchOnBulb(currentShowingBlockId);
        runAutoAnimation();
    });
    
}

function isBlockVisible(id){
    var v = $("#" + blockContainers[id]).css("visibility");
    if(v == "visible"){
        return true;
    }
    return false;
}


function areMoreThanOneBlockVisible(){
    var count = 0;
    for(var i=0; i<blockContainers.length; i++ ){
        if(isBlockVisible(i)){
            count++;
        }
    }
    if(count > 1){
        return true;
    }
    return false;
}



function appearBlock(id, timeInterval){
    if(timeInterval == undefined){
        timeInterval =  lowInterval;
    }
    $this = $("#" + blockContainers[id]);

    setRandomLocation($this);
    $this.css("visibility", "visible");
    setOpacity($this, highOpacity, timeInterval);
    switchOnBulb(id);
}

function fadeBlock(id, timeInterval){
    
    if(timeInterval == undefined){
        timeInterval =  lowInterval;
    }
    $this = $("#" + blockContainers[id]);

    setOpacity($this, lowOpacity, timeInterval);
    //$this.stop(true, true);
    $this.css("visibility", "hidden");
    switchOffBulb(id);
}




function hideall(){
    for(var i=0; i<blockContainers.length; i++ ){
        fadeBlock(i);
        switchOffBulb(i);
    }
}


function fadeall(){
    for(var i=0; i<blockContainers.length; i++ ){
        if(isBlockVisible(i)){
            fadeBlock(i, appearInterval);
            switchOffBulb(i);
        }
    }
}

function setRandomLocation($obj){
    var v = $obj.css("visibility");
    if(v == "visible"){
        return;
    }
    var left = 102 + rand(leftSpan);
    var top = 75;
    $obj.css("margin-left", left);
    $obj.css("margin-top", top);
    
}

function switchOffBulb(id){
    $('div.smallBulb[blockIdToShow=' + id + ']').animate({
        opacity: 0.40
    }, 0, function() {
        //alert('.smallBulb[blockIdToShow=' + id + ']' + " OFF");
        });
}
function switchOnBulb(id){
    $('.smallBulb[blockIdToShow=' + id + ']').animate({
        opacity: 1
    }, 0, function() {
        //alert('.smallBulb[blockIdToShow=' + id + ']' + " on");
        });
}


function animateLogo(){
    $('#logo').animate({
        opacity: highOpacity - 0.2,
        height: '115',
        width: '172'
    }, logoAnimationTime, function() {
        $this = $(this);
        $this.attr("src","/images/vmi_logo.jpg");
        $('#logo').animate({
            opacity: highOpacity - 0.2
        }, 400, function() {
            $this.attr("src","/images/vmi_logo.jpg");
            $("#bulb_offon").show();
        });
    });
}


function animateSevenSecods(){
    $('#sevenSecods').animate({
        opacity: 0.6,
        marginTop: '-=0',
        marginLeft: '-=0'
    }, logoAnimationTime + 1000, function() {
        $("#sevenSecods_text").show();

        $('#sevenSecods').animate({
            opacity: 0
        }, timeToGetAttention, function() {
            $("#sevenSecods_container").hide();

            $('#largeCaptivate').animate({
                opacity: highOpacity
            }, appearInterval, function() {
                $('#largeCaptivate').hide();

                $('#largeCapture').animate({
                    opacity: highOpacity
                }, appearInterval, function() {
                    $('#largeCapture').hide();

                    $('#largeConvert').animate({
                        opacity: highOpacity
                    }, appearInterval, function() {
                        $('#largeConvert').hide();




                                    $('#letvmishowyou').animate({
                                        opacity: highOpacity
                                    }, messageDisplayTime, function() {
                                        $('#call_us_now').animate({
                                            opacity: highOpacity
                                        }, messageDisplayTime, function() {


                                            $('#CaptivateCaptureConvert').animate({
                                                opacity: 0
                                            }, messageDisplayTime, function() {
                                                });


                                            $('#letvmishowyou').animate({
                                                opacity: 0
                                            }, messageDisplayTime, function() {
                                                $("#page_container").show();
                                                $("#_navigation_panel").show();
                                                startAutoAnimation();
                                                $('#quickCallPanel').animate({
                                                    opacity: 0.6
                                                }, 1000, function() {
                                                    });

                                            });
                                        });
                                    });


                    });

                });

            });






        });


        $(document).mouseover(function(){
            });
    });
}










function setOpacity($this, opacityLevel, timeInterval){
    if(!timeInterval > 0){
        timeInterval = 0;
    }

    $this.animate({
        opacity: opacityLevel
    }, timeInterval, function() {
        });
}


function rand ( n )
{
    return ( Math.floor ( Math.random ( ) * n + 1 ) );
}

