﻿function EstateWeb_Objects_HTTPManager() {
    this.Request = new EstateWeb_Objects_HTTPManager_Request();
    this.Browser = new EstateWeb_Objects_HTTPManager_Browser();
    this.Document = new EstateWeb_Objects_HTTPManager_Document();
    this.Strings = new EstateWeb_Objects_HTTPManager_Strings();
}



//####################################################################
//####################################################################
// Request Object and supporting functions
//####################################################################
//####################################################################

function EstateWeb_Objects_HTTPManager_Request() {
    this.QueryString = EstateWeb_Objects_HTTPManager_Request_QueryString;
    this.AddToQueryString = EstateWeb_Objects_HTTPManager_Request_QueryString_Add;
    this.cookies = new EstateWeb_Objects_HTTPManager_Request_Cookies(this);
}

function EstateWeb_Objects_HTTPManager_Request_Cookies(o) {
    this.parent = o;
    this.Get = EstateWeb_Objects_HTTPManager_Request_Cookies_Get; //get a cookie's value by name
    this.Set = EstateWeb_Objects_HTTPManager_Request_Cookies_Set; //set a cookies value by name
    this.Delete = EstateWeb_Objects_HTTPManager_Request_Cookies_Delete; //delete a cookie by name
}

function EstateWeb_Objects_HTTPManager_Request_Cookies_Get(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

function EstateWeb_Objects_HTTPManager_Request_Cookies_Set(name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function EstateWeb_Objects_HTTPManager_Request_Cookies_Delete(name, expires, path, domain, secure) {
    if (this.Get(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

//####################################################################
// -> Functions  follow
//####################################################################

function EstateWeb_Objects_HTTPManager_Request_QueryString_Add(key, value) {
    //adds or replaces the value within the querystring with the key pair provided
    if (this.QueryString().length > 0) {
        var keys = this.QueryString().split("&");
        var matched = false;
        for (var i = 0; i < keys.length; i++) {
            var item = keys[i].split("=");
            //alert(item[0] + '//'+key);
            if (item[0].toLowerCase() == key.toLowerCase()) {
                //alert("matched");
                item[1] = value;
                keys[i] = item.join("=");
                matched = true;
                break;
            }
        }
        if (!matched) {
            keys[keys.length] = key + "=" + escape(value);
        }
        //reconstruct querystring
        return keys.join("&");
    } else {
        return key + "=" + escape(value);
    }
}

function EstateWeb_Objects_HTTPManager_Request_QueryString() {
    //returns the querystring value of the key provided
    var queryString;
    queryString = document.location.href;
    if (arguments.length > 0) {
        if (queryString.toUpperCase().indexOf(arguments[0].toUpperCase()) >= 0 && queryString.indexOf("?") >= 0) {
            var queryParams = queryString.split("?");
            var queryStringParams = queryParams[1].split("&");
            var avalues = [];
            for (i = 0; i < queryStringParams.length; i++) {
                var queryParam = queryStringParams[i].split("=");
                if (queryParam[0].toUpperCase() == arguments[0].toUpperCase()) {
                    var oStringManager = new EstateWeb_Objects_HTTPManager_Strings();
                    avalues.push(unescape(oStringManager.Unescape(queryParam[1])));
                }
            }
            return avalues.join(",");
        }
    } else {
        if (queryString.indexOf("?") > 0) { return queryString.split("?")[1]; }
    }
    return "";
}

//####################################################################
//####################################################################
// BrowserObject and supporting functions
//####################################################################
//####################################################################

function EstateWeb_Objects_HTTPManager_Browser() {
    this.Type = EstateWeb_Objects_HTTPManager_Browser_Type;
    this.Types = new EstateWeb_Objects_HTTPManager_Browser_Types();
    this.HighCompatability = EstateWeb_Objects_HTTPManager_Browser_HighCompatability;
    this.Window = new EstateWeb_Objects_HTTPManager_Browser_Window();
    this.ViewableDimensions = EstateWeb_Obejcts_HTTPManager_Browser_ViewableDimensions;
    this.ScrollOffset = EstateWeb_Obejcts_HTTPManager_Browser_ScrollOffset;
    this.eventManager = EstateWeb_Objects_HTTPManager_Browser_EventManager;
    this.events = new this.eventManager();
    this.debugging = new EstateWeb_Objects_HTTPManager_Browser_Debugging(this);
    this.blankDocument = EstateWeb_Objects_HTTPManager_Browser_BlankDocument;
    this.getFrameWindow = EstateWeb_Objects_HTTPManager_Browser_GetFrameWindow;
    this.getParentMostWindow = EstateWeb_Objects_HTTPManager_Browser_GetParentMostWindow;
    this.detectWindowClose = EstateWeb_Objects_HTTPManager_Browser_DetectWindowClose;
}

function EstateWeb_Objects_HTTPManager_Browser_DetectWindowClose() {
    if (document.getElementsByTagName("body").length > 0) {
        document.getElementsByTagName("body")[0].onbeforeunload = function() {
            if (event.clientY < 0) {
                setTimeout('document.isClosed=false', 100);
                document.isClosed = true;
            }
        }
        document.getElementsByTagName("body")[0].onunload = function() {
            if (document.isClosed == true) {
                HttpManager.Browser.events.raiseEvent("onwindowclosed", window, null);
            }
        }
    }
}

function EstateWeb_Objects_HTTPManager_Browser_GetParentMostWindow() {
    var oparent = window.parent;
    while (oparent.parent != oparent) {
        oparent = oparent.parent;
    }
    return oparent;
}



function EstateWeb_Objects_HTTPManager_Browser_GetFrameWindow(oframe) {
    return oframe.contentWindow;
}

function EstateWeb_Objects_HTTPManager_Browser_BlankDocument() {
    this.writeTo = EstateWeb_Objects_HTTPManager_Browser_BlankDocument_WriteTo;
    this.getBody = EstateWeb_Objects_HTTPManager_Browser_BlankDocument_GetBody;
}

function EstateWeb_Objects_HTTPManager_Browser_BlankDocument_GetBody(oframe) {
    var oDoc = HttpManager.Browser.getFrameWindow(oframe);
    var obody = oDoc.document.getElementsByTagName("body")[0];
    return obody;
}

function EstateWeb_Objects_HTTPManager_Browser_BlankDocument_WriteTo(frame) {
    HttpManager.Browser.getFrameWindow(frame).document.write("<html><head></head><body topmargin=\"0\" leftmargin=\"0\"></body></html>");
}

function EstateWeb_Objects_HTTPManager_Browser_Debugging(o) {
    this.parent = o;
    this.textItems = [];
    this.clearTextItems = EstateWeb_Objects_HTTPManager_Browser_Debugging_ClearTextItems;
    this.addText = EstateWeb_Objects_HTTPManager_Browser_Debugging_AddText;
    this.showText = EstateWeb_Objects_HTTPManager_Browser_Debugging_ShowText;
}

function EstateWeb_Objects_HTTPManager_Browser_Debugging_ClearTextItems() {
    this.textItems.length = 0;
}

function EstateWeb_Objects_HTTPManager_Browser_Debugging_ShowText() {
    if (HttpManager.Document.GetObject("pnlHttpManagerDebugOutput")) {
        HttpManager.Document.GetObject("pnlHttpManagerDebugOutput").parentNode.removeChild(HttpManager.Document.GetObject("pnlHttpManagerDebugOutput"));
    }
    var ooutput = document.createElement("div");
    ooutput.id = "pnlHttpManagerDebugOutput";
    with (ooutput.style) {
        border = "solid 1px #000000";
        backgroundColor = "#FFFFFF";
    }
    for (var i = 0; i < this.textItems.length; i++) {
        var otext = document.createElement("div");
        otext.style.width = "100%";
        otext.style.backgroundColor = (i % 2 == 0 ? "#C1EFF7" : "#FFFFFF");
        otext.style.padding = "5px";
        otext.innerHTML = this.textItems[i] + "";
        ooutput.appendChild(otext);
    }
    document.body.appendChild(ooutput);
}

function EstateWeb_Objects_HTTPManager_Browser_Debugging_AddText(text) {
    this.textItems.push(text);
}

function EstateWeb_Objects_HTTPManager_Browser_EventManager() {
    this.registrations = new Array();
    this.addHandler = EstateWeb_Objects_HTTPManager_Browser_EventManager_AddHandler;
    this.removeHandler = EstateWeb_Objects_HTTPManager_Browser_EventManager_RemoveHandler;
    this.raiseEvent = EstateWeb_Objects_HTTPManager_Browser_EventManager_RaiseEvent;
}

function EstateWeb_Objects_HTTPManager_Browser_EventManager_RemoveHandler(eventname, creator) {
    //removes any events that match the eventname and creator 
    for (var i = 0; i < this.registrations.length; i++) {
        if (this.registrations[i].eventname == eventname && this.registrations[i].creator == creator) {
            this.registrations.splice(i, 1);
        }
    }
}

function EstateWeb_Objects_HTTPManager_Browser_EventManager_RaiseEvent(eventname, sender, eventargs) {
    //loop through the event registrations executing any that match the event name
    for (var i = 0; i < this.registrations.length; i++) {
        if (this.registrations[i].eventname == eventname) {
            eval(this.registrations[i].fnc(this.registrations[i].creator, sender, eventargs));
        }
    }
}

function EstateWeb_Objects_HTTPManager_Browser_EventManager_AddHandler(eventname, creator, fnc) {
    this.registrations.push(
											{
											    "eventname": eventname,
											    "fnc": fnc,
											    "creator": creator
											}
										)
}

function EstateWeb_Obejcts_HTTPManager_Browser_ScrollOffset() {
    var scrOfX = 0, scrOfY = 0;
    if (typeof (window.pageYOffset) == 'number') {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    return [scrOfX, scrOfY];
}

function EstateWeb_Obejcts_HTTPManager_Browser_ViewableDimensions() {
    var browserwidth = 0, browserheight = 0;
    if (typeof (window.innerWidth) == 'number') {
        //Non-IE
        browserwidth = window.innerWidth;
        browserheight = window.innerHeight;
    } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
        //IE 6+ in 'standards compliant mode'
        browserwidth = document.documentElement.clientWidth;
        browserheight = document.documentElement.clientHeight;
    } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
        //IE 4 compatible
        browserwidth = document.body.clientWidth;
        browserheight = document.body.clientHeight;
    }
    return [browserwidth, browserheight];
}

function EstateWeb_Objects_HTTPManager_Browser_HighCompatability() {
    if (this.Type() > 2) { return true } else { return false }
}

function EstateWeb_Objects_HTTPManager_Browser_Type() {
    var oTypes = new EstateWeb_Objects_HTTPManager_Browser_Types();
    if (window.opera) { return oTypes.Opera }
    if (document.layers) { return oTypes.Netscape4 }
    if (document.getElementById && !document.all) { return oTypes.Mozilla }
    if (document.getElementById && document.all) { return oTypes.InternetExplorer5Plus }
    if (document.all & !document.getElementById) { return oTypes.InternetExplorer4Plus }

}

function EstateWeb_Objects_HTTPManager_Browser_Window() {
    this.Open = EstateWeb_Objects_HTTPManager_Browser_Window_Open;
}

function EstateWeb_Objects_HTTPManager_Browser_Window_Open() {
    window.open(arguments[0], arguments[1], arguments[2]);
}

function EstateWeb_Objects_HTTPManager_Browser_Types() {
    this.Netscape4 = 0;
    this.InternetExplorer4Plus = 1;
    this.Opera = 2;
    this.InternetExplorer5Plus = 3;
    this.Mozilla = 4;
}

//####################################################################
//####################################################################
// StringObject and supporting functions
//####################################################################
//####################################################################

function EstateWeb_Objects_HTTPManager_Strings() {
    this.Unescape = EstateWeb_Objects_HTTPManager_Strings_Unescape;
    this.isNumeric = EstateWeb_Objects_HTTPManager_Strings_IsNumeric;
    this.Format = EstateWeb_Objects_HTTPManager_Strings_Format;
}

function EstateWeb_Objects_HTTPManager_Strings_Format() {
    //formats a pattern using the arguments
    for (var i = 1; i < arguments.length; i++) {
        arguments[0] = arguments[0].replace("{" + (i - 1) + "}", arguments[i]);
    }
    return arguments[0];
}

function EstateWeb_Objects_HTTPManager_Strings_IsNumeric(s) {
    if (isNaN(s)) {
        return false;
    } else {
        return true;
    }
}

function EstateWeb_Objects_HTTPManager_Strings_Unescape() {
    if (arguments.length > 0) {
        // unescapes a string
        var val = arguments[0];
        val = val.replace("+", " ");
        return val;
    }
    return "";
}

//####################################################################
//####################################################################
// DocumentObject and supporting functions
//####################################################################
//####################################################################

function EstateWeb_Objects_HTTPManager_Document() {
    this.GetObject = EstateWeb_Objects_HTTPManager_Document_GetObject;
    this.RemoveObject = EstateWeb_Objects_HTTPManager_Document_RemoveObject;
    this.SwapImageObject = EstateWeb_Objects_HTTPManager_Document_SwapImageObject;
    this.SwapImage = EstateWeb_Objects_HTTPManager_Document_SwapImage;
    this.Scripts = new EstateWeb_Objects_HTTPManager_Document_Scripts();
    this.WaitForObject = EstateWeb_Objects_HTTPManager_Document_WaitForObject;
    this.InnerWidth = EstateWeb_Objects_HTTPManager_Document_InnerWidth;
    this.GetObjectPosition = EstateWeb_Objects_HTTPManager_Document_GetObjectPosition;
    this.Forms = new EstateWeb_Objects_HTTPManager_Document_Forms();
    this.Errors = new EstateWeb_Objects_HTTPManager_Document_Errors();
    this.importNode = EstateWeb_Objects_HTTPManager_Document_ImportNode;
    this.getWindowPath = EstateWeb_Objects_HTTPManager_Document_GetWindowPath;
    this.aspAjax = new EstateWeb_Objects_HTTPManager_Document_ASPAJAX();
}

function EstateWeb_Objects_HTTPManager_Document_ASPAJAX() {
    this.preventLoadScriptError = EstateWeb_Objects_HTTPManager_Document_ASPAJAX_PreventLoadScriptError;
    this.cancelPostback = EstateWeb_Objects_HTTPManager_Document_ASPAJAX_CancelPostback;
}

function EstateWeb_Objects_HTTPManager_Document_ASPAJAX_CancelPostback() {
    if (typeof Sys != "undefined") {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_initializeRequest(
            function initializeRequest(sender, args) {
                if (prm.get_isInAsyncPostBack()) {
                    args.set_cancel(true);
                }
            }
        );
    }
}

function EstateWeb_Objects_HTTPManager_Document_ASPAJAX_PreventLoadScriptError() {
    if (typeof Sys != "undefined") {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_initializeRequest(
            function initializeRequest(sender, args) {
                document.body.style.cursor = "wait";
                if (prm.get_isInAsyncPostBack()) {
                    args.set_cancel(true);
                }
            }
        );
        prm.add_endRequest(
                function endRequest(sender, args) { document.body.style.cursor = "auto"; }
        );
    }

}

function EstateWeb_Objects_HTTPManager_Document_GetWindowPath() {
    var awindows = [];
    var o = window;
    do {
        awindows.push(o.name);
        o = o.parent;
    } while (o.name.length > 0)
    awindows.reverse();
    return awindows.join(",");
}

function EstateWeb_Objects_HTTPManager_Document_ImportNode(node, destinationDocument, type) {
    var onewNode = null;
    if (node) {
        onewNode = destinationDocument.createElement(node.tagName);
        switch (type.toLowerCase()) {
            case "file":
                //set all attributes for file tag
                with (onewNode) {
                    setAttribute("id", node.id);
                    setAttribute("name", node.name);
                    setAttribute("type", "file");
                    setAttribute("size", node.size);
                }
                break;
        }
    }
    return onewNode;
}

function EstateWeb_Objects_HTTPManager_Document_Errors() {
    this.errors = new Array();
    this.add = EstateWeb_Objects_HTTPManager_Document_Errors_Add;
    this.show = EstateWeb_Objects_HTTPManager_Document_Errors_Show;
    this.clear = EstateWeb_Objects_HTTPManager_Document_Errors_Clear;
}

function EstateWeb_Objects_HTTPManager_Document_Errors_Clear(application) {
    for (var i = 0; i < this.errors.length; i++) {
        if (this.errors[i].application == application) {
            this.errors.splice(i, 1);
        }
    }
}

function EstateWeb_Objects_HTTPManager_Document_Errors_Add(application, msg) {
    this.errors.push(
		{
		    "application": application,
		    "message": msg
		}
	);
}

function EstateWeb_Objects_HTTPManager_Document_Errors_Show() {
    for (var i = 0; i < this.errors.length; i++) {
        alert(this.errors[i].application + "\n\n" + this.errors[i].message);
    }
}

function EstateWeb_Objects_HTTPManager_Document_RemoveObject(id) {
    if (this.GetObject(id)) {
        if (this.GetObject(id).parentNode) {
            this.GetObject(id).parentNode.removeChild(this.GetObject(id));
        }
    }
}

function EstateWeb_Objects_HTTPManager_Document_Forms() {
    this.HtmlSelect = new EstateWeb_Objects_HTTPManager_Document_Forms_HtmlSelect();
    this.HtmlInputText = new EstateWeb_Objects_HTTPManager_Document_Forms_HtmlInputText();
    this.HtmlInputHidden = new EstateWeb_Objects_HTTPManager_Document_Forms_HtmlInputHidden();
}

function EstateWeb_Objects_HTTPManager_Document_Forms_HtmlInputHidden() {
    this.setValue = EstateWeb_Objects_HTTPManager_Document_Forms_HtmlInputHidden_SetValue;
}

function EstateWeb_Objects_HTTPManager_Document_Forms_HtmlInputHidden_SetValue(formname, elementname, value) {
    if (document[formname]) {
        //element exists?
        if (document[formname][elementname]) {
            var oelem = document[formname][elementname];
            if (oelem.tagName.toLowerCase() == "input" && oelem.type.toLowerCase() == "hidden") {
                oelem.value = value;
            } else {
                alert("The element " + elementname + " is not of type HtmlInputHidden");
            }
        }
    }
}

function EstateWeb_Objects_HTTPManager_Document_Forms_HtmlSelect() {
    this.SelectedValue = EstateWeb_Objects_HTTPManager_Document_Forms_HtmlSelect_SelectedValue;
}

function EstateWeb_Objects_HTTPManager_Document_Forms_HtmlInputText() {
    this.Value = EstateWeb_Objects_HTTPManager_Document_Forms_HtmlInputText_Value;
}

function EstateWeb_Objects_HTTPManager_Document_Forms_HtmlInputText_Value(formname, elementname, value) {
    if (document[formname]) {
        //element exists?
        if (document[formname][elementname]) {
            var oelem = document[formname][elementname];
            if (oelem.tagName.toLowerCase() == "input" && oelem.type.toLowerCase() == "text") {
                oelem.value = value;
            } else {
                alert("The element " + elementname + " is not of type HtmlInputText");
            }
        }
    }
}

function EstateWeb_Objects_HTTPManager_Document_Forms_HtmlSelect_SelectedValue(formname, elementname, value) {
    //ensure that the form exists, the element exists and the value is one of the valid options
    if (document[formname]) {
        //element exists?
        if (document[formname][elementname]) {
            if (document[formname][elementname].tagName.toLowerCase() == "select") {
                //ensure that the value matches at least one of the items
                for (var i = 0; i < document[formname][elementname].options.length; i++) {
                    var ooption = document[formname][elementname].options[i];
                    if (ooption.value == value.toString()) {
                        ooption.selected = true;
                        break;
                    }
                }
            } else {
                alert("The element " + elementname + " is not of type HtmlSelect");
            }
        }
    }
}

function EstateWeb_Objects_HTTPManager_Document_SwapImage(o, src) {
    var element;
    if (typeof o != "object") {
        element = HttpManager.Document.GetObject(o);
    } else { element = o }

    if (!document.aswapImage) {
        aswapImage = new Array();
    }
    for (var i = 0; i < aswapImage.length; i++) {
        if (aswapImage[i][0].id == element.id) {
            aswapImage.splice(i, 1);
            break;
        }
    }
    aswapImage[aswapImage.length] = new Array(element, element.src);
    element.src = src;
    element.onmouseout = function() {
        for (var i = 0; i < aswapImage.length; i++) {
            if (aswapImage[i][0].id == this.id) {
                this.src = aswapImage[i][1];
                break;
            }
        }
    }
}

function EstateWeb_Objects_HTTPManager_Document_GetObjectPosition(ID) {
    var oCoords = new Object();
    oCoords.x = 0;
    oCoords.y = 0;
    //set x and y coordinates 
    if (this.GetObject(ID)) {
        var obj = this.GetObject(ID);
        if (obj.offsetParent) {
            while (obj.offsetParent) {
                oCoords.x += obj.offsetLeft;
                obj = obj.offsetParent;
            }
        } else if (obj.x) { oCoords.x += obj.x; }
        var obj = this.GetObject(ID);
        if (obj.offsetParent) {
            while (obj.offsetParent) {
                oCoords.y += obj.offsetTop;
                obj = obj.offsetParent;
            }
        } else if (obj.y) { oCoords.y += obj.y; }
    }
    return oCoords;
}

function EstateWeb_Objects_HTTPManager_Document_InnerWidth() {
    var oBrowser = new EstateWeb_Objects_HTTPManager_Browser();
    switch (EstateWeb_Objects_HTTPManager_Browser_Type()) {
        case oBrowser.Types.InternetExplorer5Plus: oBrowser.Types.InternetExplorer4Plus
            return document.body.clientWidth;
            break;
        default:
            return window.innerWidth;
            break;
    }
}

function EstateWeb_Objects_HTTPManager_Document_WaitForObject(o) {
    //waits for an object to become available then exists
    var isavailable = false;
    while (!isavailable) {
        try {
            eval(o);
            isavailable = true;
        } catch (e) { }
    }
}

function EstateWeb_Objects_HTTPManager_Document_Scripts() {
    this.RegisterScriptLibrary = EstateWeb_Objects_HTTPManager_Document_Scripts_RegisterScriptLibrary;
}

function EstateWeb_Objects_HTTPManager_Document_Scripts_RegisterScriptLibrary(path) {
    //registers a script library dynamically
    if (document.getElementsByTagName) {
        if (document.getElementsByTagName("head")) {
            var oScripts = document.getElementsByTagName("head")[0].childNodes;
            var bnewscript = true;
            if (oScripts.length > 0) {
                for (var i = 0; i < oScripts.length; i++) {
                    if (oScripts[i].attributes) {
                        for (var ii = 0; ii < oScripts[i].attributes.length; ii++) {
                            if (oScripts[i].attributes[ii].nodeName.toLowerCase() == "src") {
                                if (oScripts[i].attributes[ii].nodeValue.toLowerCase() == path.toLowerCase()) { bnewscript = false }
                                break;
                            }
                        }
                    }
                }
            }

            if (bnewscript) {
                var oscript = document.createElement("script");
                oscript.setAttribute("type", "text/javascript");
                oscript.setAttribute("src", path);
                document.getElementsByTagName("head")[0].appendChild(oscript);
                //alert(document.getElementsByTagName("head")[0].innerHTML);
            } else {
                // alert("not new script");
            }
        }
    }
}

function EstateWeb_Objects_HTTPManager_Document_SwapImageObject() {
    this.DestinationImageOriginalSRC;
    this.SourceImageFilename;
    this.DestinationImageID;
    this.Swap = EstateWeb_Objects_HTTPManager_Document_SwapImageObject_Swap;
    this.Restore = EstateWeb_Objects_HTTPManager_Document_SwapImageObject_Restore;
    this.GetDestinationImageOriginalSRC = EstateWeb_Objects_HTTPManager_Document_SwapImageObject_GetDestinationImageOriginalSRC;
}

function EstateWeb_Objects_HTTPManager_Document_SwapImageObject_Restore() {
    if (HttpManager.Document.GetObject(this.DestinationImageID)) {
        HttpManager.Document.GetObject(this.DestinationImageID).src = this.DestinationImageOriginalSRC;
    }
}

function EstateWeb_Objects_HTTPManager_Document_SwapImageObject_Swap(newImage, width, height) {
    var newSRC = this.DestinationImageOriginalSRC;
    var lastPart = newSRC.substring(newSRC.indexOf("w=") + 3);
    lastPart = lastPart.substring(lastPart.indexOf("&"));
    newSRC = newSRC.substring(0, newSRC.indexOf("&i=") + 3) + newImage + newSRC.substring(newSRC.indexOf("&r="));
    newSRC = newSRC.substring(0, newSRC.indexOf("&h=") + 3) + height + newSRC.substring(newSRC.indexOf("&w="));
    newSRC = newSRC.substring(0, newSRC.indexOf("&w=") + 3) + width + lastPart;
    if (HttpManager.Document.GetObject(this.DestinationImageID)) {
        HttpManager.Document.GetObject(this.DestinationImageID).src = newSRC;
    }
}

function EstateWeb_Objects_HTTPManager_Document_SwapImageObject_GetDestinationImageOriginalSRC() {
    if (HttpManager.Document.GetObject(this.DestinationImageID)) {
        this.DestinationImageOriginalSRC = HttpManager.Document.GetObject(this.DestinationImageID).src;
    }
}

function EstateWeb_Objects_HTTPManager_Document_GetObject() {
    var oBrowser = EstateWeb_Objects_HTTPManager_Browser_Type();
    var oBrowserTypes = new EstateWeb_Objects_HTTPManager_Browser_Types();
    var o;
    switch (oBrowser) {
        case oBrowserTypes.Netscape4:
            o = document.all[arguments[0]];
            break;
        case oBrowserTypes.InternetExplorer4Plus:
            o = document.all[arguments[0]];
            break;
        case oBrowserTypes.Opera:
            o = document.getElementById(arguments[0]);
            break;
        case oBrowserTypes.InternetExplorer5Plus:
            o = document.getElementById(arguments[0]);
            break;
        case oBrowserTypes.Mozilla:
            o = document.getElementById(arguments[0]);
            break;
        default:
            o = document.getElementById(arguments[0]);
            break;
    }
    if (o) {
        //if its an iframe then get a different reference method
        if (o.tagName.toLowerCase() == "iframe") {
            o = frames[arguments[0]];
        }
    }
    return o;

}


//self initialise
var HttpManager = new EstateWeb_Objects_HTTPManager();
//attach events
window.onload = function() { HttpManager.Browser.events.raiseEvent("onload", this, null); }
window.onunload = function() { HttpManager.Browser.events.raiseEvent("onunload", this, null); }
window.onresize = function() { HttpManager.Browser.events.raiseEvent("onresize", this, null); }
window.onerror = function() { }
//add default events
HttpManager.Browser.events.addHandler("onload", this, HttpManager.Document.aspAjax.preventLoadScriptError);
HttpManager.Browser.events.addHandler("onload", this, HttpManager.Browser.detectWindowClose);
