function submitForm(formName, href)
{
    document.forms[formName].action=href;
    document.forms[formName].submit();
}


function submitFormNoNav(formName, href)
{
    var currLocation = document.location;
    
    if (href != null) {
        document.forms[formName].action=href;
    }
    
    document.forms[formName].submit();
    
    location.replace(currLocation);
}


function showCookie(cookie)
{
    settings = cookie.split(";");
    
    var i;
    for (i = 0; i < settings.length; i++)
    {
        var vals = settings[i].split("=");
        alert("Key: " + vals[0] + "\nValue: " + vals[1]);
    }
}


var request = false;

function checkValidationErrors()
{
    if (request.readyState != 4)
        return;
        
    if (request.status != 200) {
        return;
    }
    
    var fNameErrorStr = false;
    var fNameErrors = request.responseText.split('contact.firstName.errors">');
    if (fNameErrors && fNameErrors.length > 1) {
        var substrs = fNameErrors[1].split("<");
        fNameErrorStr = substrs[0];
    }
    
    var fNameErrorElem = document.getElementById("contact.firstName.errors");
    if (fNameErrorStr) {
        fNameErrorElem.innerHTML = fNameErrorStr;
    }
    else {
        fNameErrorElem.innerHTML = "";
    }
    
    var emailErrors = request.responseText.split('contact.email.errors">');
    var emailErrorStr;
    
    if (emailErrors && emailErrors.length > 1) {
        var substrs = emailErrors[1].split('<');
        emailErrorStr = substrs[0];
    }
    
    var emailErrorElem = document.getElementById("emailError");
    if (emailErrorStr) {
        emailErrorElem.innerHTML=emailErrorStr;
    }
    else {
        emailErrorElem.innerHTML = "";
    }
    
    if (!(fNameErrorStr || emailErrorStr))
    {
        var thanksElem = document.getElementById("thanks");
        thanksElem.innerHTML = "Thanks! We'll be in touch soon."
        
        // Hack Alert: hardcoded form name...
        //
        var formElem = document.forms['emailForm'];
        formElem.style.visibility = "hidden";
        formElem.style.height = "0";
    }
    
/*     showCookie(Response.cookies[0]); */
/*     alert("Response Headers: " + request.getAllResponseHeaders()); */
/*     alert("Cookies: " + request.responseXML.getElementsByTagName("domain")); */
}


function showCookies()
{
    if (request.readyState != 4)
        return;
        
    if (request.status != 200) {
        return;
    }
    
    alert("HEAD Request Response Headers:\n" + request.getAllResponseHeaders());
}

function checkForCookies()
{
    alert("Sending HEAD request...");
    request = new XMLHttpRequest();
    request.open("HEAD", "http://www.aboutobjects.com/contact_us.html", true);
    request.setRequestHeader("Connection", "close");
    request.onreadystatechange = showCookies;
    request.send("");
}

function ajaxFormSubmitHeadRequest(formName)
{
    checkForCookies();
    return false;
}

function ajaxFormSubmit(formName)
{
    //
    // FIXME: Change this to relative path in production...
    //
    var url = "/contact_us.html";
        
    try {
        request = new XMLHttpRequest();
    }
    catch (e) {
        request = false;
    }
    
    if (request)
    {
        var fNameKey = document.forms[formName].elements['contact.firstName'].name;
        var fNameVal = document.forms[formName].elements['contact.firstName'].value;
        var emailKey = document.forms[formName].elements['contact.email'].name
        var emailVal = document.forms[formName].elements['contact.email'].value
        
        var params = fNameKey + "=" + escape(fNameVal) + "&"
                   + emailKey + "=" + escape(emailVal) + "&"
                   + "subject=6" + "&"
                   + "contact.salutation=Mr" + "&"
                   + escape("contact.lastName=n/a") + "&"
                   + "contact.referredBy=15" + "&"
                   + escape("message=WWDC Special");
                            
        request.open("POST", url, true);
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        request.setRequestHeader("Content-length", params.length);
        request.setRequestHeader("Connection", "close");
        
        request.onreadystatechange = checkValidationErrors;
        
        request.send(params);
    }
    
    // So the form element doesn't submit it again.
    return false;
}

function iframeFormSubmit(formName)
{
    try {
        request = new XMLHttpRequest();
    }
    catch (e) {
        request = false;
    }
    
    if (request)
    {
        var url = "http://www.aboutobjects.com/contact_us.html";
        
        var fNameKey = document.forms[formName].elements['contact.firstName'].name;
        var fNameVal = document.forms[formName].elements['contact.firstName'].value;
        var emailKey = document.forms[formName].elements['contact.email'].name
        var emailVal = document.forms[formName].elements['contact.email'].value
        
        var params = fNameKey + "=" + fNameVal + "&" + emailKey + "=" + emailVal;
        
        request.open("POST", url, true);
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        request.setRequestHeader("Content-length", params.length);
        request.setRequestHeader("Connection", "close");
        
        request.onreadystatechange = checkValidationErrors;
        
        request.send(params);
    }
    
    // So the form element doesn't submit it.
    return false;
}


