//<![CDATA[

function appendMoney(parentElem, moneyAmount) {
    var gold = 0;
    var silver = 0;
    var copper = 0;
    copper = moneyAmount % 100;
    moneyAmount = (moneyAmount - copper) / 100;
    silver = moneyAmount % 100;
    moneyAmount = (moneyAmount - silver) / 100;
    gold = moneyAmount;
    if (gold > 0) {
        parentElem.appendChild(document.createTextNode(gold + " "));
        var goldImg = document.createElement("img");
        goldImg.src = "gold.gif";
        goldImg.alt = "gold";
        goldImg.title = "gold";
        parentElem.appendChild(goldImg);
    }
    if (silver > 0) {
        parentElem.appendChild(document.createTextNode(silver + " "));
        var silverImg = document.createElement("img");
        silverImg.src = "silver.gif";
        silverImg.alt = "silver";
        silverImg.title = "silver";
        parentElem.appendChild(silverImg);
    }
    if (copper > 0) {
        parentElem.appendChild(document.createTextNode(copper + " "));
        var copperImg = document.createElement("img");
        copperImg.src = "copper.gif";
        copperImg.alt = "copper";
        copperImg.title = "copper";
        parentElem.appendChild(copperImg);
    }
}

function appendExternalItemLinks(parentElem, itemName) {
    if (itemName == "") return;
    parentElem.appendChild(document.createElement("br"));
    parentElem.appendChild(document.createTextNode("Search for "));
    var thotLookupLink = document.createElement("a");
    thotLookupLink.href = "http://thottbot.com/?s=" + myEncodeURI(itemName);
    thotLookupLink.appendChild(document.createTextNode(itemName));
    parentElem.appendChild(thotLookupLink);
    parentElem.appendChild(document.createTextNode(" on "));
    var thotLink = document.createElement("a");
    thotLink.href = "http://thottbot.com";
    thotLink.appendChild(document.createTextNode("Thottbot"));
    parentElem.appendChild(thotLink);
    parentElem.appendChild(document.createTextNode("."));

    parentElem.appendChild(document.createElement("br"));
    parentElem.appendChild(document.createTextNode("Search for "));
    var allaLookupLink = document.createElement("a");
    allaLookupLink.href = "http://wow.allakhazam.com/search.html?q=" + myEncodeURI(itemName);
    allaLookupLink.appendChild(document.createTextNode(itemName));
    parentElem.appendChild(allaLookupLink);
    parentElem.appendChild(document.createTextNode(" on "));
    var allaLink = document.createElement("a");
    allaLink.href = "http://wow.allakhazam.com";
    allaLink.appendChild(document.createTextNode("Allakhazam"));
    parentElem.appendChild(allaLink);
    parentElem.appendChild(document.createTextNode("."));

    parentElem.appendChild(document.createElement("br"));
    parentElem.appendChild(document.createTextNode("Search for "));
    var wikiLookupLink = document.createElement("a");
    wikiLookupLink.href = "http://wow.allakhazam.com/search.html?q=" + myEncodeURI(itemName);
    wikiLookupLink.href = "http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=" + myEncodeURI(itemName) + "%20site%3Awowwiki.com&btnG=Google+Search"
    wikiLookupLink.appendChild(document.createTextNode(itemName));
    parentElem.appendChild(wikiLookupLink);
    parentElem.appendChild(document.createTextNode(" on "));
    var wikiLink = document.createElement("a");
    wikiLink.href = "http://www.wowwiki.com";
    wikiLink.appendChild(document.createTextNode("WoWWiki"));
    parentElem.appendChild(wikiLink);
    parentElem.appendChild(document.createTextNode("."));


}

function getXMLFromElem(elem) {
    if (isIE) {
        return elem.xml;
    } else {
        return elem;
    }
}

function processItemResponse(request) {
    //alert('in callback - status is ' + request.status + ' and readyState is ' + request.readyState);
    var xmlDoc = request.responseXML.documentElement;

    var responseTag = $('testResponse');
    clearAll(responseTag);
    var xpath = getXPathFromXML(xmlDoc);
    var elems = xpath.selectNodes('//data/searchString');
    if (elems.length > 0) {
        // Multiple matches returned.
        responseTag.appendChild(document.createTextNode("All items that start with \"" + getDOMText(elems[0].childNodes) + "\":"));
        responseTag.appendChild(document.createElement("br"));
        elems = xpath.selectNodes('//data/itemMatch');
        for (var i = 0; i < elems.length; i++) {
            var lookupLink = document.createElement("a");
            var itemName = getDOMText(elems[i].childNodes);
            lookupLink.href = "javascript:submitItem(\"" + itemName + "\");";
            lookupLink.appendChild(document.createTextNode(itemName));
            responseTag.appendChild(document.createTextNode(" - "));
            responseTag.appendChild(lookupLink);
            responseTag.appendChild(document.createElement("br"));
        }
        if (elems.length == 0) {
            responseTag.appendChild(document.createTextNode(" No results found."));
            responseTag.appendChild(document.createElement("br"));
        }
        return;
/*    } else if (elems.length == 0) {
        // No results returned.
        responseTag.appendChild(document.createTextNode("No results found."));
        return; */
    }
    elems = xpath.selectNodes('//data/itemName');
    var itemName = '';
    if (elems.length > 0) {
        itemName = getDOMText(elems[0].childNodes);
        responseTag.appendChild(document.createTextNode("Results for " + itemName + ":"));
        responseTag.appendChild(document.createElement("br"));
    }
    var auctionDatas = xpath.selectNodes('//data/auctionData');
    var itemToAppend = responseTag;
    var tableRow;
    if (auctionDatas.length > 1) {
        var table = document.createElement("table");    
        responseTag.appendChild(table);
        var tbody = document.createElement("tbody");
        var tr = document.createElement("tr");
        table.appendChild(tbody);
        tbody.appendChild(tr);
        tableRow = tr;
    }
    for (var i = 0; i < auctionDatas.length; i++) {
        if (auctionDatas.length > 1) {
            var td = document.createElement("td");
            tableRow.appendChild(td);
            itemToAppend = td;
        }
        /*alert('auctionDatas[i] is ' + auctionDatas[i].xml);
        alert('auctionDatas[i].hasAttribute("description") is ' + auctionDatas[i].attributes.getNamedItem("description").xml);*/
        var hasAttribute = false;
        if (auctionDatas[i].attributes.getNamedItem("description")) {
            var auctionDescription = auctionDatas[i].getAttribute("description");
            if (auctionDescription) {
                itemToAppend.appendChild(document.createTextNode(auctionDescription));
                itemToAppend.appendChild(document.createElement("br"));
            }
        }
        //alert('auctionDatas[i].xml is ' + getXMLFromElem(auctionDatas[i]));
        dataXPath = getXPathFromXML(auctionDatas[i]);
        var elem = dataXPath.selectNodes('//lastScan');
        if (elem.length) {
            var lastScanAge = parseInt(getDOMText(elem[0].childNodes));
            lastScanDate = new Date();
            lastScanDate.setTime(lastScanAge * 1000);
            itemToAppend.appendChild(document.createTextNode("Last scanned: " + lastScanDate.toLocaleString()));
            itemToAppend.appendChild(document.createElement("br"));
        }
        var elems1 = dataXPath.selectNodes('//totalSeen');
        if (elems1.length > 0) {
            itemToAppend.appendChild(document.createTextNode("Seen " + getDOMText(elems1[0].childNodes) + " times at auction total"));
            itemToAppend.appendChild(document.createElement("br"));
        } else {
            itemToAppend.appendChild(document.createTextNode("Item not found!"));
            appendExternalItemLinks(responseTag, itemName);
            return;
        }
        itemToAppend.appendChild(document.createTextNode("Averages for this item:"));
        itemToAppend.appendChild(document.createElement("br"));
        elems = dataXPath.selectNodes('//avgMin');
        if (elems.length > 0) {
            itemToAppend.appendChild(document.createTextNode("Minimum: "));
            appendMoney(itemToAppend, parseInt(getDOMText(elems[0].childNodes)));
            itemToAppend.appendChild(document.createElement("br"));
        }
        elems = dataXPath.selectNodes('//bidPct');
        if (elems.length > 0) {
            var bidPct = parseInt(getDOMText(elems[0].childNodes));
            elems = dataXPath.selectNodes('//avgBid');
            var avgBid = 0;
            if (elems.length > 0) {
                avgBid = parseInt(getDOMText(elems[0].childNodes));
            }
            itemToAppend.appendChild(document.createTextNode("Bidded " + bidPct + "%, "));
            appendMoney(itemToAppend, avgBid);
            itemToAppend.appendChild(document.createElement("br"));
        }
        elems = dataXPath.selectNodes('//buyPct');
        if (elems.length > 0) {
            var buyPct = parseInt(getDOMText(elems[0].childNodes));
            elems = dataXPath.selectNodes('//avgBuy');
            var avgBuy = 0;
            if (elems.length > 0) {
                avgBuy = parseInt(getDOMText(elems[0].childNodes));
            }
            itemToAppend.appendChild(document.createTextNode("Buyout " + buyPct + "%, "));
            appendMoney(itemToAppend, avgBuy);
            itemToAppend.appendChild(document.createElement("br"));
        }
        elems = dataXPath.selectNodes('//buyoutCount');
        if (elems.length > 0) {
            var histcount = parseInt(getDOMText(elems[0].childNodes));
            elems = dataXPath.selectNodes('//buyoutMedian');
            var histmed = 0;
            if (elems.length > 0) {
                histmed = parseInt(getDOMText(elems[0].childNodes));
            }
            itemToAppend.appendChild(document.createTextNode("Last " + histcount + ", median BO "));
            appendMoney(itemToAppend, histmed);
            itemToAppend.appendChild(document.createElement("br"));
        }
        /*elems = dataXPath.selectNodes('//snapcount');
        if (elems.length > 0) {
            var snapcount = parseInt(getDOMText(elems[0].childNodes));
            elems = dataXPath.selectNodes('//snapmed');
            var snapmed = 0;
            if (elems.length > 0) {
                snapmed = parseInt(getDOMText(elems[0].childNodes));
            }
            itemToAppend.appendChild(document.createTextNode("Scanned " + snapcount + ", median BO "));
            appendMoney(itemToAppend, snapmed);
            itemToAppend.appendChild(document.createElement("br"));
        }*/
    }
    appendExternalItemLinks(responseTag, itemName);
}

function checkKeyPress(event, ourform) {

}

function submitItem(itemName) {
    doRequest(auctioneerLookupScriptName + '?itemName=' + itemName, true, processItemResponse, 'GET', null);
}

function doRequest(url, async, callback, method, postData) {
    var xmlhttp = new Ajax.Request(
        url,
        {
            method: method,
            parameters: '',
            onComplete: callback
        });
}

var myGlobalHandlers = {
    onCreate: function(){
        Element.show('systemWorking');
    },

    onComplete: function() {
        if(Ajax.activeRequestCount == 0){
            Element.hide('systemWorking');
        }
    }
};

Ajax.Responders.register(myGlobalHandlers);
Element.hide('systemWorking');

//]]>
