﻿// ad displaying
var adArray = new Array();
function processAdStream(xmldoc) {
    var r = xmldoc.getElementsByTagName('ads')[0];
    for (i = 0; r != null && i < r.childNodes.length; i++) {
        var obj = 
        {
            url : "http://" + r.childNodes.item(i).getAttribute("url"),
            title : r.childNodes.item(i).getAttribute("title"),
            desc : r.childNodes.item(i).getAttribute("desc"),
            query : myAdQuery
        };	 
        if (obj.url && obj.title && obj.desc) {
            if (obj.desc.length > 80) {
                obj.desc = obj.desc.substring(0, 77) + "...";
            }
            adArray[adArray.length] = obj;  
        }
    }
    //if (!userMovedAds) {
        startIndex = (adArray.length >= myAdCells.length) ? (adArray.length - myAdCells.length) : 0;
    //}
    buildAdTable();
}

var myAdTable;
var myAdCells = new Array();
verifyAdTable();
myAdCells.length = 5;
function verifyAdTable() {
    var adTableSpan = document.getElementById("adSpan");
    if (!adTableSpan) { return false; }
    if (!myAdTable) {
        myAdTable = document.createElement("table");
        adTableSpan.appendChild(myAdTable);
        myAdTable.cellPadding = 1;
        myAdTable.cellSpacing = 0;
	myAdTable.style.borderCollapse = "collapse";
    
        var adTablePrevCell = myAdTable.insertRow().insertCell();
        adTablePrevCell.innerHTML = "<center><a href='javascript:adTableUp()'><img src='images/arrow_up.jpg' border=0></a></center>";
        for (var i=0; i<5; i++) {
            myAdCells[i] = myAdTable.insertRow().insertCell();
            myAdCells[i].style.borderWidth = "1px";
            myAdCells[i].style.borderColor = "black";
            myAdCells[i].style.borderCollapse = "collapse";
            myAdCells[i].style.borderStyle = "dashed";
        
            myAdCells[i].width = 200;
            myAdCells[i].height = 95;
            myAdCells[i].vAlign = "top";
            myAdCells[i].innerHTML = "cell #" + i;
        }
        var adTableNextCell = myAdTable.insertRow().insertCell();
        adTableNextCell.innerHTML = "<center><a href='javascript:adTableDown()'><img src='images/arrow_down.jpg' border=0></a></center>";
    }
    return true;
}

function populateAdTable(startIndex) {
    for (var i=0; i + startIndex<adArray.length && i<myAdCells.length; i++) {
        var myAdCell = myAdCells[i];
        var myAd = adArray[i + startIndex];
        var newAdTable = document.createElement("table");
        newAdTable.cellPadding = 2;
        newAdTable.cellSpacing = 0;
        myAdCell.innerHTML = "";
        myAdCell.title = myAd.query;
        myAdCell.appendChild(newAdTable);
        var titleRow = newAdTable.insertRow();
        var titleCell = titleRow.insertCell();
        var titleSpan = document.createElement("span");
        titleSpan.style.fontSize = "Smaller";
        titleSpan.style.fontWeight = "bold";
        titleSpan.style.fontFamily = "Arial";
        titleSpan.innerHTML = myAd.title;
        titleCell.appendChild(titleSpan);
        
        var descRow = newAdTable.insertRow();
        var descCell = descRow.insertCell();
        var descSpan = document.createElement("span");
        descSpan.style.fontSize = "Smaller";
        descSpan.style.fontFamily = "Arial";
        descSpan.innerHTML = myAd.desc;
        descCell.appendChild(descSpan);

        var urlRow = newAdTable.insertRow();
        var urlCell = urlRow.insertCell();
        var urlSpan = document.createElement("span");
        urlSpan.style.fontSize = "Smaller";
        urlSpan.style.fontFamily = "Arial";
        urlSpan.style.fontColor = "green";
        urlSpan.innerHTML = "<font color='forestgreen'><a target='_BLANK' color='green' href=\"" + myAd.url + "\">" + myAd.url + "</a></font>";
        urlCell.appendChild(urlSpan);
    }
}

var startIndex = 0;
var userMovedAds = false;
function buildAdTable() {
    if (adArray.length == 0 || !verifyAdTable()) {
        return;
    }
    populateAdTable(startIndex);
}

function adTableUp() {
    if (startIndex - 1 < 0) {
        return;
    }
    startIndex--;
    userMovedAds = true;
    buildAdTable();
}

function adTableDown() {
    if (startIndex + 1 > adArray.length - myAdCells.length) {
        return;
    }
    startIndex++;
    userMovedAds = true;
    buildAdTable();
}

var lastQuery = "";
function serveAds(query) {
    return;
    if (query != lastQuery) {
        lastQuery = query;  
        makeRequest("FetchAds.aspx?query=" + query, processAdStream, true);
        //document.getElementById("querySpan").innerHTML = query;
    }
}