// --[ Globals ]----------------------------------------------------------------
var xmlHttp;                    // Handle for the Callbacks
var newImg = new Array();       // Array for the new images.
var news = new Array();         // Array for the news-id's.
var curPage;                    // The current page.
var totalRows;                  // Page-var
var moreRows;                   // Page-var
var maxRows;                    // Page-var
var maxPages;                   // Page-var
var dir1;                       // Direction-variable
// -----------------------------------------------------------------------------

// Hide the big news-box.
function hideBig() {
    document.getElementById('newsDiv').style.display = "block";
    document.getElementById('newsBig').style.display = 'none';
}

// Function that catches the data returned from the NewsRequest.
function newsStateChanged() {

    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
        var xmlDoc = xmlHttp.responseXML;

        if (xmlDoc.getElementsByTagName('item')[0] != null) {
            // Single news-item
            var sImg = xmlDoc.getElementsByTagName('image')[0].firstChild.nodeValue;
            var sHdr = xmlDoc.getElementsByTagName('header')[0].firstChild.nodeValue;
            var sTxt = xmlDoc.getElementsByTagName('text')[0].firstChild.nodeValue;
            
            // Switch the data
            document.getElementById('bigImage').src             = sImg;
            document.getElementById('bigHeader').innerHTML      = sHdr;
            document.getElementById('bigText').innerHTML        = sTxt;

            // Hide the loader.
            document.getElementById('loader').style.display     = 'none';

            // Switch the view.
            document.getElementById('newsDiv').style.display    = "none";
            document.getElementById('newsBig').style.display    = "block";
        }
    }
    
}


// Function that catches the data returned from the NewsRequest.
function threeNewsStateChanged() {

    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
        var xmlDoc = xmlHttp.responseXML;


        nodes = xmlDoc.getElementsByTagName("items");
        var len = nodes[0].childNodes.length;
        
        for (i = 0; i < len; i++) {
            var itemNode = nodes[0].childNodes.item(i);
            
            document.getElementById('newsBox' + (i+1)).style.display    = 'block';
            document.getElementById('newsImage' + (i+1)).src            = itemNode.childNodes.item(0).firstChild.nodeValue;
            document.getElementById('newsText' + (i+1)).innerHTML       = itemNode.childNodes.item(1).firstChild.nodeValue;
            news[i]                                                     = itemNode.childNodes.item(2).firstChild.nodeValue;
        }
        
        // Hide the loader.
        document.getElementById('loader').style.display     = 'none';
    }
}


// Function that starts the async call.
function getNews(newsID) {
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
        alert ("Browser does not support HTTP Request");
        return;
    } 
    
    // Display the loader.
    document.getElementById('loader').style.display = 'block';
                    
    var url="/backend/getnews.asp";
    url=url+"?id=" + news[newsID];                
    xmlHttp.onreadystatechange=newsStateChanged;
    xmlHttp.open("GET",url,true);                
    xmlHttp.send(null);
}


// Function that starts the async call.
function getThreeNews() {
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
        alert ("Browser does not support HTTP Request");
        return;
    } 
    
    // Display the loader.
    document.getElementById('loader').style.display = 'block';
                    
    var url="/backend/getthreenews.asp";
    //url=url+"?id=0";
    xmlHttp.onreadystatechange=threeNewsStateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}


// Handles the page-switching AJAX-call
function getNewPage(pageID) {

    if (fading == true) {
        return;
    }
    
    // Check what page we're on.
    if (pageID == curPage) {
        return
    }
    else if (pageID < curPage) {
        dir1 = -1;
    }
    else if (pageID > curPage) {
        dir1 = 1;
    }
    
    curPage = pageID;

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
        alert ("Browser does not support HTTP Request");
        return;
    } 
    
    var url="/backend/getGalleryPage.asp";
    url=url+"?page=" + pageID;
    xmlHttp.onreadystatechange = newPageChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}
		    

// First load
function getPage(pageID) {

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
        alert ("Browser does not support HTTP Request");
        return;
    } 
                    
    var url="/backend/getGalleryPage.asp";
    url=url+"?page=" + pageID;
    xmlHttp.onreadystatechange = galleryStateChaged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}


// Function for page-numbers on the gallery-page.
function pageing(currentPage) {
    var objX = document.getElementById('pageing');
    var j;
    var sLinks = "";
    
    // If we are higher than the first page, add the <<-button.
    if (currentPage > 1) {
        sLinks = sLinks + "<span id=\"back\" class=\"bigLink\" ";
        sLinks = sLinks + "onclick=\"getNewPage(" + (currentPage - 1) + ");\" ";
        sLinks = sLinks + ">" + "&lt;&lt;&nbsp;" + "<" + "/span>";
    }
    else {
        sLinks = sLinks + "<span id=\"back\" class=\"bigLinkDisabled\" ";
        sLinks = sLinks + ">" + "&lt;&lt;&nbsp;" + "<" + "/span>";
    }
    
    for (j=1; j <= morePages; j++) {
        var sNum = "000" + j;
        sNum = sNum.substring(sNum.length - 2);
        sLinks = sLinks + "<span id=\"page" + j + "\" class=\"bigLink\" ";
        sLinks = sLinks + "onclick=\"getNewPage(" + j + ");\" ";
        if (j == currentPage) {
            sLinks = sLinks + "style=\"color: #D80000;\" ";
        }
        sLinks = sLinks + ">" + sNum + "&nbsp;" + "<" + "/span>";
    }
    
    if (currentPage < morePages) {
        sLinks = sLinks + "<span id=\"forward\" class=\"bigLink\" ";
        sLinks = sLinks + "onclick=\"getNewPage(" + (currentPage + 1) + ");\" ";
        sLinks = sLinks + ">" + "&gt;&gt;&nbsp;" + "<" + "/span>";
    }
    else {
        sLinks = sLinks + "<span id=\"forward\" class=\"bigLinkDisabled\" ";                    
        sLinks = sLinks + ">" + "&gt;&gt;&nbsp;" + "<" + "/span>";                
    }
    
    // Output to page.
    objX.innerHTML = sLinks;
}


// This function preloads the images for the fade-routine.
function preload() {
    var len = newImg.length;
    for (i = 1; i < len; i++) {
        var imgX = new Image();
        imgX.src = newImg[i][0];
    }
}

// This function zero's the opacity for the images so we can switch
// them without it beeing visible.
function zeroOpacity() {
    var j=1;
    // Loop through all images and set opacity to 0%
    for (j=1; j <= 14; j++) {
        var objX = document.getElementById('imgGallery' + j);
        if (objX.filters) {
            objX.style.filter="alpha(opacity=0)";
        }
        else if (objX.style.Opacity || objX.style.MozOpacity || objX.style.MozOpacity == "") {
            objX.style.MozOpacity = "0";
        }
    }            
}

// Switches the images before the first load.
function preSwitch() {
    var j=1;            

    // Make all pics blank, for the switch.
    for (j=1; j <= 14; j++) {
        var objX = document.getElementById('imgGallery' + j);
        objX.src = "img/blank.jpg";
        objX.alt = ".";
        objX.title = "";
    }
    
    // Fill up with the images.            
    for (j=1; j <= (newImg.length - 1); j++) {
        var objX    = document.getElementById('imgGallery' + j);
        objX.src    = newImg[j][0];
        objX.alt    = newImg[j][1];
        objX.title  = newImg[j][2];
    }            
}


// Handles the data returned from page-change call.
function newPageChanged() {
    var len;

    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
        var xmlDoc = xmlHttp.responseXML;

        nodes = xmlDoc.getElementsByTagName("gallery");                    
        len = nodes[0].childNodes.length;
                                                                                                            
        for (i = 0; i < len; i++) {
            var itemNode = nodes[0].childNodes.item(i);
            newImg[i+1] = [itemNode.childNodes.item(1).firstChild.nodeValue , itemNode.childNodes.item(0).firstChild.nodeValue , itemNode.childNodes.item(2).firstChild.nodeValue]
        }
        
        if (len < 14) {
            for (i = len; i < 14; i++) {
                newImg[i+1] = ["/img/blank.jpg", "", ""];
            }
        }

        // Get some values for the page-code.
        totalRows   = itemNode.childNodes.item(3).firstChild.nodeValue;
        moreRows    = itemNode.childNodes.item(4).firstChild.nodeValue;
        maxRows     = itemNode.childNodes.item(5).firstChild.nodeValue;
        morePages   = itemNode.childNodes.item(6).firstChild.nodeValue;

        // Now the array is loaded. Preload the images now.
        preload();
        pageing(curPage);
        switchImage(dir1);
    }
}
		    
		    
// Function that catches the data returned from the GalleryPage.
function galleryStateChaged() {
    var len;

    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
        var xmlDoc = xmlHttp.responseXML;

        curPage = 1;

        nodes = xmlDoc.getElementsByTagName("gallery");
        len = nodes[0].childNodes.length;
        
        for (i = 0; i < len; i++) {
            var itemNode = nodes[0].childNodes.item(i);
            newImg[i+1] = [itemNode.childNodes.item(1).firstChild.nodeValue , itemNode.childNodes.item(0).firstChild.nodeValue , itemNode.childNodes.item(2).firstChild.nodeValue];
        }

        // Get some values for the page-code.
        totalRows   = itemNode.childNodes.item(3).firstChild.nodeValue;
        moreRows    = itemNode.childNodes.item(4).firstChild.nodeValue;
        maxRows     = itemNode.childNodes.item(5).firstChild.nodeValue;
        morePages   = itemNode.childNodes.item(6).firstChild.nodeValue;

        // Now the array is loaded. Preload the images now.
        zeroOpacity();
        preload();
        pageing(curPage);
        preSwitch();

        x = 1;
        direction = 1;
        fading = true;
        fadeInI = setInterval("fadeIn(" + x + ")", 10 );
    }
}
