﻿var xmlHttp = false;
var xmlResponse;
try {
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
    try {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e2) {
        xmlHttp = false;
    }
}

if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
}

var intRotator = document.getElementById('hdnRotator').value;
var intSpeed = document.getElementById('hdnSpeed').value;
var i = document.getElementById('hdnIndex').value;
var div = document.getElementById('hdnRotator').parentNode.childNodes[0];
var divOld;
var divNew;
var intMovement = 20;
var intOpacity = 0;
var s;
var t;
initFade();

function initFade() {
    var dtNow = new Date();
    var requestTime = dtNow.getFullYear() + '-' + dtNow.getMonth() + '-' + dtNow.getDate() + '-' + dtNow.getTime();
    var strAddress = '/Rotator.aspx?intRotator=' + intRotator + '&date=' + requestTime;
    xmlHttp.open("GET", strAddress, true);
    xmlHttp.onreadystatechange = parseXML;
    xmlHttp.send(null);
}

function parseXML() {
    if (xmlHttp.readyState == 4) {
        xmlResponse = xmlHttp.responseXML.documentElement;
        if (xmlResponse.childNodes.length > 0) {
            if (i == xmlResponse.childNodes.length - 1) {
                i = 0;
            }
            else {
                i++;
            }
            divOld = div.childNodes[0];
            divOld.style.position = 'absolute';
            divNew = document.createElement('div');
            divNew.innerHTML = innerxml(xmlResponse.childNodes[i]);
            divNew.style.visibility = 'hidden';
            divNew.style.position = 'absolute';
            div.appendChild(divNew);
            s = setTimeout(shutter, intSpeed * 1000);
        }
    }
}

function shutter() {
    clearInterval(s);
    t = setInterval(fade, 30);
}

function fade() {
    if (intOpacity < 100) {
        divNew.style.filter = 'alpha(opacity=' + intOpacity + ')';
        divNew.style.opacity = intOpacity / 100;
//        divOld.style.filter = 'alpha(opacity=' + (100 - intOpacity) + ')';
//        divOld.style.opacity = (100 - intOpacity) / 100;
        divNew.style.visibility = 'visible';
        intOpacity += 5;
    }
    else {
        clearInterval(t);
        div.removeChild(divOld);
        intOpacity = 0;
        parseXML();
    }
}

function innerxml(node)
{
    return (node.xml || (new XMLSerializer()).serializeToString(node) || "").replace(
    new RegExp("(^<\\w*" + node.tagName + "[^>]*>)¦(<\\w*\\/\\w*" + node.tagName + "[^>]*>$)", "gi"), "");
}