﻿// JScript File
var requestTimer;
var xhReq;
window.onload = onLoad;

function createXMLHttpRequest()
{
    try { return new XMLHttpRequest(); } catch(e) {}
    try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
    return null;
}

function onLoad()
{
if(createXMLHttpRequest() == null)
{ //No Ajax Support
document.getElementById("emailForm").innerHTML =
"<form id=\"emailSubmission\" action=\"SubmitEmail_Post.aspx\" method=\"post\">" +
"<input type=\"text\" maxlength=\"300\" id=\"email\" name=\"email\" />" +
"<input type=\"image\" src=\"/emailCollector/submit.gif\" id=\"submit\" name=\"submit\" value=\"Submit Email\" />" +
"</form>";
}
else
{ //Ajax Supported
document.getElementById("emailForm").innerHTML =
"<form id=\"emailSubmission\" action=\"javascript:onSubmit();\">" +
"<input type=\"text\" maxlength=\"300\" id=\"email\" name=\"email\" />" +
"<input type=\"image\" src=\"/emailCollector/submit.gif\" id=\"submit\" name=\"submit\" value=\"Submit Email\" />" +
"<div id=\"emailOutput\"></div>" +
"</form>";
}
}

function onSubmit()
{
    xhReq = createXMLHttpRequest();
    if(xhReq != null)
    {
        var emailAddress = document.getElementById("email").value;
        document.getElementById("emailOutput").innerHTML = "Submitting...";
        xhReq.open("GET", "/emailCollector/SubmitEmail_Ajax.aspx?email=" + emailAddress, true);
        xhReq.onreadystatechange = onResponse;
        xhReq.send(null);
        
        requestTimer = setTimeout(onTimeout, 30000);
    }
    else
    {
        // SHOULD NOT GET HERE since onLoad() checks and posts the appropriate form
        document.getElementById("emailOutput").innerHTML = "Error: Ajax Failed";
    }
}

function onTimeout()
{
    xhReq.abort();
    document.getElementById("emailOutput").innerHTML = "<font color=\"red\">Could not reach server</font>";
}

function onResponse()
{
    if (xhReq.readyState != 4)  { return; }  
    clearTimeout(requestTimer);
    var output;
    if (xhReq.status != 200)  {
        output = "<font color=\"red\">Unknown response from server</font>";
    } else {            
        var serverResponse = xhReq.responseText;
        switch(serverResponse)
        {
            case "INVALID":
            case "BLANK":
                output = "<font color=\"red\">Invalid email!</font>";
                break;
            case "ERROR":
                output = "<font color=\"red\">Could not submit email, please try again later</font>";
                break;
            case "OK":
                output = "<font color=\"darkgreen\">Email submitted, thank you!</font>";
                break;
            default:
                output = "<font color=\"red\">Unknown response from server</font>";
                break;
        }
    }
    document.getElementById("emailOutput").innerHTML = output;
    xhReq = null;
}

