﻿
BrandingVisuals.prototype.VisualPanels;
BrandingVisuals.prototype.MainPanel;
BrandingVisuals.prototype.MainPanelBackgroundURL;
BrandingVisuals.prototype.currentID;
BrandingVisuals.prototype.timeOutMouseMove;
BrandingVisuals.prototype.mouseStopTime;
BrandingVisuals.prototype.mouseNextTime;

function BrandingVisuals(MainPanel) {
    
    this.VisualPanels = new Array();
    this.MainPanel = $(MainPanel);
    this.MainPanelBackgroundURL = this.MainPanel.css("background-image");
    this.currentID = null;
    this.timeOutMouseMove = -1;
    this.mouseStopTime = 10000;
    this.mouseNextTime = 6000;

    //$(".test").mouseover(function() { curObj.onMouseOver( $(".test").attr("id") ); });    //function() { curObj.OnMouseOver(); }
}

BrandingVisuals.prototype.onInit = function(selectedID) {

    var curObj = this;
    this.currentID = selectedID;

    if (this.VisualPanels != null) {
        
        for (var i = 0; i < this.VisualPanels.length; i++) {
            
            if (this.VisualPanels[i][2] != null) {
                
                var link = curObj.VisualPanels[i][2];
                this.VisualPanels[i][2].hover(
                    function() { curObj.onMouseOver($(this)); }
                    ,
                    function() { curObj.onMouseOut($(this)); }
                );

            }

        }
    }

    if (this.VisualPanels[0] != null && this.VisualPanels[0][2] == null)
        this.MainPanel.css("backgroundImage", "url(" + this.VisualPanels[0][1].src + ")");

    //$(document).mousemove(function() { curObj.MouseMove(); });
    if (this.VisualPanels.length > 1) {
        document.body.onmousemove = function() { curObj.MouseMove(); };
        this.timeOutMouseMove = setTimeout(function() { curObj.nextBrandingVisual(); }, this.mouseStopTime);
    }
}

BrandingVisuals.prototype.onMouseOver = function(linkObject) {
    
    if (this.currentID != linkObject.attr("countID")) {

        if (this.VisualPanels[this.currentID] != null) {

            if (this.VisualPanels[this.currentID][2] != null) {

                this.VisualPanels[this.currentID][2].removeClass("VisualLinkSelected");
            }

            $("#" + this.VisualPanels[this.currentID][0]).hide();
        }

        linkObject.addClass("VisualLinkSelected");

        var sourceNewBG = this.VisualPanels[linkObject.attr("countID")][1].src;
        this.MainPanel.fadeOut("fast", function() {
            $(this).css("backgroundImage", "url(" + sourceNewBG + ")");
            $(this).fadeIn("fast");
        }
        );

        this.currentID = parseInt(linkObject.attr("countID"));

        $("#" + this.VisualPanels[linkObject.attr("countID")][0]).show();
        //this.MainPanel.css("background-image", "url('" + this.VisualPanels[linkObject.attr("countID")][1].src + "')");

    }
}

BrandingVisuals.prototype.onMouseOut = function(linkObject) {


}

BrandingVisuals.prototype.AddVisual = function(id, div_id, backgroundImg, Link) {

    this.VisualPanels[id] = new Array();
    this.VisualPanels[id][0] = div_id;

    this.VisualPanels[id][1] = new Image();
    this.VisualPanels[id][1].src = backgroundImg;
    this.VisualPanels[id][2] = Link;
    
}

BrandingVisuals.prototype.MouseMove = function() {

    if (this.timeOutMouseMove > 0)
        clearTimeout(this.timeOutMouseMove);
    
    var obj = this;
    this.timeOutMouseMove = setTimeout(function() { obj.nextBrandingVisual(); }, this.mouseStopTime);
}

BrandingVisuals.prototype.nextBrandingVisual = function() {

    var newID = 0;

    if (this.currentID + 1 != this.VisualPanels.length) {
        newID = parseInt(this.currentID) + 1;
    }
    else {
        newID = 0;
    }
    

    if (this.currentID != newID) {


        if (this.VisualPanels[this.currentID] != null) {
            if (this.VisualPanels[this.currentID][2] != null)
                this.VisualPanels[this.currentID][2].removeClass("VisualLinkSelected");

            $("#" + this.VisualPanels[this.currentID][0]).hide();
        }

        this.currentID = newID;

        if (this.VisualPanels[this.currentID][2] != null) {
            
            this.VisualPanels[this.currentID][2].addClass("VisualLinkSelected");
        }

        var sourceNewBG = this.VisualPanels[this.currentID][1].src;
        this.MainPanel.fadeOut("fast", function() {
            $(this).css("backgroundImage", "url(" + sourceNewBG + ")");
            $(this).fadeIn("fast");
        }
        );

        $("#" + this.VisualPanels[this.currentID][0]).show();
        //this.MainPanel.css("background-image", "url('" + this.VisualPanels[linkObject.attr("countID")][1].src + "')");

        this.timeOutMouseMove = setTimeout(createContextFunction(this, 'nextBrandingVisual'), this.mouseNextTime);
    }
}