function ImageRotation(div, interval) {
    var m_div = document.getElementById(div);
    var m_interval = interval;
    var m_Pics = new Array();
    var m_Img1 = document.createElement('img');
    var m_Img2 = document.createElement('img');
    var currentPictureIndex = 0;
    var running = false;
    var rotateIntervalId = 0;
    var fadeIntervalId = 0;
    var self = this;
    var currentOpacity = 0;
    var currentDiv = 1;
    var m_Cache = new Array();
    m_Img1.style.visibility = "collapse";
    m_Img2.style.visibility = "collapse";
    m_Img1.style.position = "absolute";
    m_Img2.style.position = "absolute";
    m_Img1.style.top = "0px";
    m_Img2.style.top = "0px";
    m_Img1.style.left = "0px";
    m_Img2.style.left = "0px";
    m_div.innerHTML = "";
    m_div.style.position = "relative";
    m_div.appendChild(m_Img1);
    m_div.appendChild(m_Img2);

    this.AddPicture = function AddPicture(path) {
        m_Pics.push(path);
        if(m_Pics.length == 1) {
            m_Img1.setAttribute('src', path);
            m_Img1.style.visibility = 'visible';
        }
    }
    this.Run = function Run() {
        if(m_Pics < 2)
            return;
        for(var i=0; i < m_Pics.length; i++) {
            var pic = new Image();
            pic.src = m_Pics[i];
            m_Cache[i] = pic;
        }

        m_Img1.setAttribute("src", m_Pics[0]);
        m_Img2.setAttribute("src", m_Pics[1]);
        currentPictureIndex++;
        running = true;
        //rotateIntervalId = setInterval(function() { self.Rotate(); }, m_interval);
        setTimeout(function() { self.Rotate(); }, m_interval);
    }
    this.Rotate = function Rotate() {
        if(currentDiv == 1){
            m_Img2.style.zIndex=2;
            m_Img1.style.zIndex=1;
        }else{
            m_Img1.style.zIndex=2;
            m_Img2.style.zIndex=1;
        }
        fadeDivToDiv();
    }

    var fadeDivToDiv = function() {
        var div1, div2;
        if(currentDiv == 1) {
            div1 = m_Img1;
            div2 = m_Img2;
        }else{
            div1 = m_Img2;
            div2 = m_Img1;
        }
        div2.style.opacity = 0;
        div2.style.visibility = "visible";
        currentOpacity = 0;
        fadeIntervalId = setInterval(function() { self.fadeDivToDivTick(); }, 50);
    }

    this.fadeDivToDivTick = function() {
        currentOpacity += 0.02;
        var div;
        if(currentDiv == 1)
            div = m_Img2;
        else
            div = m_Img1;
        div.style.opacity = currentOpacity
        if(currentOpacity >= 1) {
            fadeDivToDivFinal();
        }
    }

    var fadeDivToDivFinal = function() {
        clearInterval(fadeIntervalId);
        var div1, div2;
        if(currentDiv == 1) {
            div1 = m_Img1;
            div2 = m_Img2;
            currentDiv = 2;
        }else{
            div1 = m_Img2;
            div2 = m_Img1;
            currentDiv = 1;
        }

        if(currentPictureIndex < m_Pics.length - 1)
            currentPictureIndex++;
        else
            currentPictureIndex = 0;

        div2.style.opacity = 1;
        div1.style.visibility = "collapse";
        div1.setAttribute("src",m_Pics[currentPictureIndex]);
        setTimeout(function() { self.Rotate(); }, m_interval);
    }
}
