﻿eBidType = new Object();
eBidType.EBud = 0;
eBidType.BidInternet = 1;
eBidType.CapitexSS = 2;
eBidType.None = 3;

function Bid(id, type, url)
{
    this.ID = id;
    this.Type = type;
    this.Url = url;
}

// link.href = "http://www.e-bud.nu/ebud/EbudServlet?action=PublicBidLink&ANB_OBJ_ID=" + ebudID.value;
Bid.prototype.update = function(sHighestBidID)
{
    if ( this.Type == eBidType.EBud || this.Type == eBidType.BidInternet )
    {
        var iHighestBid = this.getHighestBid();
        ctrlHighestBid = document.getElementById(sHighestBidID);
        if ( iHighestBid > 0 )
            ctrlHighestBid.innerHTML = "H&ouml;gsta bud " + Format(iHighestBid.toString(), "### ### ### ###") + " kr ";
        else
            ctrlHighestBid.style.display = "none";
    }
}

Bid.prototype.getHighestBid = function()
{
    var iHighestBid = 0;
    try
    {
        switch ( this.Type )
        {
            case eBidType.EBud:
            {
                iHighestBid = this.gethighestBidFromEBud(this.Url);
                break;
            }
            case eBidType.BidInternet:
            {
                iHighestBid = this.gethighestBidFromIBud(this.Url, this.ID);
                break;
            }
            default:
            {
                iHighestBid = 0;
                break;
            }
        }
    }
    catch(ex)
    {
    }

    return iHighestBid;    
}

// SKARP: https://bidinternet.capitex.se/Service/SharedService.asmx
// TEST: http://bidinternetservices.test.capitex.se/SharedService.asmx
Bid.prototype.gethighestBidFromIBud = function(url, guid) {
    var req = getXMLHTTP()
    var hogstaBud;
    {
        if (req) {
            var strEnvelope = "<?xml version=\"1.0\" encoding=\"utf-8\"?> \n" +
                "<soap:Envelope xmlns:xsi=\" http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" +
                " xmlns:soap= \"http://schemas.xmlsoap.org/soap/envelope/\"> \n" +
                    "<soap:Body>\n" +
                        "<GetHighestBid xmlns=\"http://capitex.bidinternet.service.shared.uri/\"> \n" +
                            "<sObjGUID>" + guid + "</sObjGUID>\n" +
                        "</GetHighestBid>" +
                    "</soap:Body>" +
                "</soap:Envelope>";

            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    try {
                        hogstaBud = req.responseXML.getElementsByTagName("GetHighestBidResult")[0].childNodes[0].nodeValue;
                    }
                    catch (e) {
                        hogstaBud = 0;
                    }
                    return parseInt(hogstaBud);
                }
            }
            req.open("POST", "/CapitexResources/Capitex.Web/Capitex.Web.Proxy.aspx?Type=IBUD&url=" + url, false);
            req.setRequestHeader("Content-type", "text/xml");
            req.setRequestHeader("SOAPAction", "http://capitex.bidinternet.service.shared.uri/GetHighestBid");
            req.send(strEnvelope);
        }
    }
    if (req.readyState == 4) {
        if (req.readyState == 4) {
            try {
                hogstaBud = req.responseXML.getElementsByTagName("GetHighestBidResult")[0].childNodes[0].nodeValue;
            }
            catch (e) {
                hogstaBud = 0;
            }
        }
    }
    return parseInt(hogstaBud);
}

// http://www.e-bud.nu/ebud/EbudServlet?action=PublicBidLink&ANB_OBJ_ID=" + ebudID + "&RESPONSE_TYPE=xml&GET_LAST_BID=true
Bid.prototype.gethighestBidFromEBud = function(url)
{
    var req = getXMLHTTP()
    var hogstaBud;
    
    // Använder sig utav "Lexiconal Scoping" och måste därför vara här
    req.onreadystatechange = function()
    {
        if ( req.readyState == 4 )
        {
            //Gör om resultatet till xml
            var doc;
            if (window.ActiveXObject)
            {
                doc = new ActiveXObject("Microsoft.XMLDOM");
                doc.async="false";
                doc.loadXML(req.responseText);
            }
            else
            {
                var xmlStr = req.responseText;
                while(xmlStr.lastIndexOf("\r\n") != -1)
                {
                    xmlStr = xmlStr.replace("\r\n","");
                }
                xmlStr = xmlStr.substring(xmlStr.indexOf("<"));
                var parser = new DOMParser();
                doc = parser.parseFromString(xmlStr,"text/xml");
            }
            // Hämtar ut det högsta budet
            try
            {
                hogstaBud = doc.getElementsByTagName("row")[0].attributes[1].nodeValue;
                while(hogstaBud.lastIndexOf(".") != -1)
                {
                    hogstaBud = hogstaBud.replace(".","");
                }
            }
            catch(e)
            {
                hogstaBud = 0;
            }
        }
    }
    
    req.open("GET","/CapitexResources/Capitex.Web/Capitex.Web.Proxy.aspx?type=EBUD&url=" + escape(url), false);
    req.send(null);

    return parseInt(hogstaBud);
}

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();