﻿if(typeof MakinHey == "undefined" || !MakinHey) { var MakinHey = {}; }

MakinHey.updateOpacity = function(obj, opacity) {
    if(obj.filters) {
        obj.filters.item("DXImageTransform.Microsoft.Alpha").opacity = opacity;
    }
    else if(obj.style.opacity) {
        obj.style.opacity = opacity / 100;
    }
    else if(obj.style.MozOpacity) {
        obj.style.MozOpacity = opacity / 100;
    }
    else if(obj.style.KhtmlOpacity) {
        obj.style.KhtmlOpacity = opacity / 100;
    }
}

MakinHey.Background = function() {
    var pub = {};
    pub.DELAY = 4000;
    pub.DELTA = 5;
    var curIndex = 0;
    var prevIndex = 0;
    var objects = [];
    var percentOpacity = 100;
    var fadeInterval = null;
    
    function start() {
        objects[0].div = document.getElementById("bg0");
        startTransition();
    }
    
    function startTransition() {
        prevIndex = curIndex;
        curIndex = (curIndex + 1) % objects.length;
        if(!objects[curIndex].div) {
            var i = new Image();
            i.onload = function() {
                i.onload = null;
                var obj = document.getElementById("bg" + curIndex);
                obj.style.backgroundImage = objects[curIndex].url;
                objects[curIndex].div = obj;
                transitionImage();
            };
            i.src = objects[curIndex].src;
        }
        else {
            transitionImage();
        }
    }
    
    function transitionImage() {
        var obj = objects[curIndex].div;
        objects[prevIndex].div.style.zIndex = 2;
        percentOpacity = pub.DELTA;
        MakinHey.updateOpacity(obj, percentOpacity);
        obj.style.zIndex = 3;
        obj.style.visibility = "visible";
        fadeInterval = setInterval(fadeIn, 100);
    }
    
    function fadeIn() {
        if(percentOpacity < 100) {
            percentOpacity += pub.DELTA;
            MakinHey.updateOpacity(objects[curIndex].div, percentOpacity);
        }
        else {
            var style = objects[prevIndex].div.style;
            clearInterval(fadeInterval);
            style.zIndex = 1;
            style.visibility = "hidden";
            setTimeout(startTransition, pub.DELAY);
        }
    }
    
    pub.addImage = function addImage(src) {
        objects.push({
            "src" : src,
            "url" : "url(" + src + ")"
        });
    };
    
    pub.addDivs = function() {
        var i;
        for(i = 1; i < objects.length; i++) {
            document.write('<div id="bg' + i + '" class="bg" style="opacity: 1.0; -moz-opacity: 1.0; -khtml-opacity: 1.0;"></div>');
        }
    };
    
    pub.init = function () {
        setTimeout(start, pub.DELAY);
    };
    
    return pub;
}();