﻿
EmailProspect =
{
    getBrowserRequestObject: function() {
        var r = null;
        if (window.XMLHttpRequest) {
            try { r = new XMLHttpRequest(); }
            catch (e) { r = false; }
        }
        else if (window.ActiveXObject) {
            try { r = new ActiveXObject("Msxml2.XMLHTTP"); }
            catch (e) {
                try { r = new ActiveXObject("Microsoft.XMLHTTP"); }
                catch (e) { r = false; }
            }
        }
        return r;
    },

    Request: function() {
        this.url = null;
        this.query = '';
        this.responseHandler = null;

        this.browserRequest = EmailProspect.getBrowserRequestObject();

        this.isValid = function() {
            if (typeof (this.url) != 'string')
                return false;

            if (typeof (this.query) != 'string')
                return false;

            if (typeof (responseHandler) != 'undefined') {
                if (typeof (responseHandler) != 'function')
                    return false;
            }

            return true;
        }

        this.send = function() {
            if (!this.isValid())
                return false;

            if (typeof (this.responseHandler) == 'function')
                this.browserRequest.onreadystatechange = readyStateChange;

            try {
                _lastRequest = this;
                this.browserRequest.open('POST', this.url);
                this.browserRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                this.browserRequest.setRequestHeader('Content-Length', this.query.length);
                this.browserRequest.send(this.query);
            }
            catch (e) {
                //alert(e);
                return false;
            }

            return true;
        }

        readyStateChange = function() {
            if (typeof (_lastRequest) == 'undefined' || null == _lastRequest) return;
            if (_lastRequest.browserRequest.readyState != 4) return;

            var status = _lastRequest.browserRequest.status;
            var responseText = _lastRequest.browserRequest.responseText;
            var responseHandler = _lastRequest.responseHandler;

            _lastRequest = null;

            responseHandler(status, responseText);
        }
    },

    prospectResponseHandler: function(status, responseText) {
        var $container = $("*[id$='divEmailProspectMessage']");
        var $newDiv = $("<div>");

        $newDiv.html(responseText);
        if (status == 200) {
            var upperMsg = responseText.toUpperCase();
            if (upperMsg.indexOf("INVALID") == -1 && upperMsg.indexOf("AGAIN") == -1) {
                $newDiv.addClass("bold");
                $newDiv.css("margin", "10px 0 10px 0");
                $("input[id$='txtSmartBuyersGuide']").hide();
                $(".homeSmartBuyersGuideSubmit").hide();
            }   
            else {
                $newDiv.addClass("error");
            }
        }
        $container.html($newDiv);
    }
}

var _lastRequest;

function sendProspect()
{
    var request = new EmailProspect.Request();
    request.url = "EmailProspectHandler.ashx";
    request.query += "&EMAIL=" + $("input[id$='txtSmartBuyersGuide']")[0].value; //must have jquery.js included for this to work
    request.responseHandler = EmailProspect.prospectResponseHandler;
	request.send();
}
