// przechowuje obiekt XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

var timerID = window.setInterval("process()", 8000);
window.clearInterval(timerId);

function $(v) {
     return(document.getElementById(v));
}

function $S(v) {
     return($(v).style);
}

function uni(v,id,s,top) {
     var ob=$S(id),b=v/100;
    ob.opacity=b;
    ob.top=top+'px';
    ob.MozOpacity=b;
    ob.KhtmlOpacity=b;
    ob.filter="alpha(opacity="+v+")";
}

function zero(v) {
     v=parseInt(v);
    return(!isNaN(v)?v:0);
}

function fade(id,ln,s) {
     var top=zero(parseInt($S(id).top));
    
    function opacity(oStart,oEnd,ln) {
         var speed=Math.round(ln/100),timer=0;
        
        if(oStart>oEnd) {
             for(i=oStart; i>=oEnd; i--) {
                 setTimeout("uni("+i+",'"+id+"','','"+(top--)+"')",timer*speed);
                timer++;
            }
             setTimeout("$S('"+id+"').display='none';",timer*speed);
        }
        else if(oStart<oEnd) {
             $S(id).display='inline';
            for(i=oStart; i<=oEnd; i++) {
                 setTimeout("uni("+i+",'"+id+"','"+1+"','"+(top++)+"')",timer*speed);
                timer++;
            }
        }
    }
    
    if(s==1 || (!s && $S(id).opacity==0)) opacity(0,100,ln);
    else opacity(100,0,ln);
}



function createXmlHttpRequestObject() {
    // przechowa odwołanie do obiektu XMLHttpRequest
    var xmlHttp;
    // powinno działać dla wszystkich przeglądarek z wyjątkiem IE6 i starszych
    try {
        // próbuje utworzyć obiekt XMLHttpRequest
        xmlHttp = new XMLHttpRequest();
    }
    catch(e) {
        // w przypadku, gdy przeglądarką jest IE6 lub starszy
        var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
        'MSXML2.XMLHTTP.5.0',
        'MSXML2.XMLHTTP.4.0',
        'MSXML2.XMLHTTP.3.0',
        'MSXML2.XMLHTTP',
        'Microsoft.XMLHTTP');
        // sprawdza każdy identyfikator programu, aż jeden zadziała
        for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) {
            try {
                // próbuje utworzyć obiekt XMLHttpRequest
                xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
            }
            catch (e) {
            }
        }
    }
    // zwraca utworzony obiekt lub wyświetla komunikat o błędzie
    if (!xmlHttp)
    alert("Błąd podczas tworzenia obiektu XMLHttpRequest.");
    else
    return xmlHttp;
}

// wywołana do odczytania pliku z serwera

function process() {
    // kontynuuje tylko jeśli obiekt xmlHttp istnieje
    if (xmlHttp) {
        // próbuje połączyć się z serwerem
        try {
            // inicjalizacja odczytu pliku async.txt z serwera
            xmlHttp.open("GET", "http://www.inozajrzyj.pl/foto.php", true);
            xmlHttp.onreadystatechange = handleRequestStateChange;
            xmlHttp.send(null);
        }
        // w przypadku niepowodzenia wyświetla komunikat o błędzie
        catch (e) {
            myDiv = document.getElementById("rand");
            myDiv.src = "images/fot2.jpg";
        }
    }
}

// funkcja wywoływana przy zmianie statusu HTTP

function handleRequestStateChange() {
    // kiedy readyState ma wartość 4, zaczynamy odczyt odpowiedzi serwera
    if (xmlHttp.readyState == 4) {
        // kontynuuje tylko, gdy status serwera ma wartość "OK"
        if (xmlHttp.status == 200) {
            try {
                // obsługuje odpowiedĄ z serwera
                handleServerResponse();
            }
            catch(e) {
                // wyświetla komunikat o błędzie
                myDiv = document.getElementById("rand");
                myDiv.src = "images/fot2.jpg";
            }
        }
        else {
            myDiv = document.getElementById("rand");
            myDiv.src = "images/fot2.jpg";
        }
    }
}


// obsługuje odpowiedĄ otrzymaną z serwera

function handleServerResponse() {
    // odczyt wiadomości z serwera
    var xmlResponse = xmlHttp.responseXML;
    // pobranie obiektu dokumentu pliku XML
    xmlRoot = xmlResponse.documentElement;
    
    titleArray = xmlRoot.getElementsByTagName("title");
    szerArray = xmlRoot.getElementsByTagName("szer");
    // wygenerowanie danych wyjściowych w postaci pliku HTML
    // pobranie referencji do elementu <div> na stronie
    for (var i=0; i<titleArray.length; i++) {
        var foto = titleArray.item(i).firstChild.data;
        var szer = szerArray.item(i).firstChild.data;
    }
    
    myDiv = document.getElementById("rand");
    fade('rand',1000,1);
    myDiv.src = foto;
    myDiv.width = szer;
}
