var request;

function fao_company_register(obj) {
    var phone_number = document.getElementById('pro_phone_number').value;
    var name = document.getElementById('pro_name').value;
    var email = document.getElementById('pro_email').value;
    var title = document.getElementById('pro_title').value;
    var company = document.getElementById('pro_company').value;
    var address = document.getElementById('pro_address').value;
    var city = document.getElementById('pro_city').value;
    var state = document.getElementById('pro_state').value;
    var zip = document.getElementById('pro_zip').value;
    var i_agree = document.getElementById('pro_i_agree').checked;

    if(name == null || name == '') {
    	document.getElementById('pro_message').innerHTML = 'A name is required';
    	document.getElementById('pro_message').style.color = "red";
        return false;
    }
    if(phone_number == null || phone_number == '') {
    	document.getElementById('pro_message').innerHTML = 'A phone number is required';
    	document.getElementById('pro_message').style.color = "red";
        return false;
    }
    if(email == null || email == '') {
    	document.getElementById('pro_message').innerHTML = 'An email address is required';
    	document.getElementById('pro_message').style.color = "red";
        return false;
    }

    if(title == null || title == '') {
        document.getElementById('pro_message').innerHTML = 'A title is required';
        document.getElementById('pro_message').style.color = "red";
        return false;
    }
    
    if(company == null || company == '') {
        document.getElementById('pro_message').innerHTML = 'A company is required';
        document.getElementById('pro_message').style.color = "red";
        return false;
    }
    
    if( i_agree == null || i_agree != true) {
        document.getElementById('pro_message').innerHTML =  ' You must accepts the Terms of Service to continue';
        document.getElementById('pro_message').style.color = "red";
        return false;
    }

    document.getElementById('register_button').disabled = true;
    document.getElementById('pro_message').innerHTML = '&nbsp;';
    document.getElementById('pro_message').style.color = "blue";

    var url = "/cgi-bin/fao_company_register.cgi";
    // Does email need to be URL encoded?
    company_post_register(url, "phone_number=" + phone_number + "&name=" + name + "&email=" + email + "&title=" + title + "&company=" + company + "&address=" + address + "&city=" + city + "&state=" + state + "&zip=" + zip);
}

function company_post_register(url, params) {
    request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        request = new XMLHttpRequest();
        if (request.overrideMimeType) {
            // set type accordingly to anticipated content type
            //request.overrideMimeType('text/xml');
            request.overrideMimeType('text/x-json');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!request) {
        alert('Cannot create XMLHTTP instance');
        document.getElementById('register_button').disabled = false;
        return false;
    }

    request.onreadystatechange = company_register_response_handler;
    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.send(params);
}

// This is called when we get a response to a post
// Customize this to whatever is returned from the cgi
function company_register_response_handler() {
    if (request.readyState == 4 || request.readyState == "complete") {
        document.getElementById('register_button').disabled = false;

        if (request.status == 200) {
            var object = eval('(' + request.responseText + ')');
            // Comment this out to avoid setting message fields.
            document.getElementById('pro_message').innerHTML = object.message;
            if(!object.success) {
                document.getElementById('pro_message').style.color = "red";
            	//document.location = '/unhappy_landing.html';
            } else {
                document.getElementById('pro_message').style.color = "blue";
            	//document.location = '/landing_page.html';
            }
            return 1;
        } else {
            document.getElementById('pro_message').innerHTML = 'There was a problem processing your request.  Please try again later.';
            document.getElementById('pro_message').style.color = "red";
            return 1;
        }
    }
}
