function is_empty(str)
{
    return str.replace(/^\s*|\s*$/g,"")=="";
}

// phone number - strip out delimiters
function check_phone (str)
{
    var error = "";
    var stripped = str.replace(/[\(\)\.\-\ \+\/]/g, ''); //strip out acceptable non-numeric characters

    // Allow extensions
    stripped = stripped.replace(/ext/g,'');
    var numeric = /[^0-9]/;

    if (str == "")
        error = "Please enter the phone number.";
    else if (numeric.test(stripped))
        error = "The phone number contains illegal characters.";

    return error;
}

function check_email (str)
{
    var error = "";
    var emailFilter=/^[a-z0-9!#$%&*+-=?^_`{|}~]+(\.[a-z0-9!#$%&*+-=?^_`{|}~]+)*@([-a-z0-9]+\.)+([a-z]{2,3}|info|arpa|aero|coop|name|museum)$/;

    if (str == "")
        error = "Please enter an email address.";
    else if (!emailFilter.test(str.toLowerCase().replace(/ /g,"")))
        error = "Please enter a valid email address.";

    return error;
}

function validate_form()
{
    var first_name   = document.getElementById('first_name').value;
    var last_name    = document.getElementById('last_name').value;
    var company      = document.getElementById('company').value;
    var company_site = document.getElementById('company_site').value;
    var email        = document.getElementById('email').value;
    var phone        = document.getElementById('phone').value;
    var country      = document.getElementById('country').value;
    var interest     = document.getElementById('interest').value;

    var error        = document.getElementById('error');
    var error_msg    = "";

    if (is_empty(first_name) || is_empty(last_name) || is_empty(company) ||
        is_empty(company_site) || is_empty(email) || is_empty(phone) ||
        is_empty(country) || is_empty(interest))
        error_msg = 'Please fill in all required fields.';

    if (is_empty(error_msg))
        error_msg = check_email(email);

    if (is_empty(error_msg))
        error_msg = check_phone(phone);

    if (error_msg == "")
    {
        error.style.display = 'none';
        var f = document.getElementById('request_form');
        var validated = document.createElement('input');
        validated.setAttribute('type','hidden');
        validated.setAttribute('name','validated');
        validated.setAttribute('value','1');

        f.appendChild(validated);
        return true;
    }
    error.innerHTML = error_msg;
    error.style.display = 'block';
    // return user to top of page to see error message.
    window.scrollTo(0,0);
    return false;
}

function validate_api_application()
{
    var api                = document.getElementById('api').value;
    var first_name         = document.getElementById('first_name').value;
    var last_name          = document.getElementById('last_name').value;
    var company            = document.getElementById('company').value;
    var company_url        = document.getElementById('company_url').value;
    var email              = document.getElementById('email').value;
    var phone              = document.getElementById('phone').value;
    var country            = document.getElementById('country').value;
    var reason             = document.getElementById('reason').value;
    var revenue_generation = document.getElementById('revenue_generation').value;

    var error     = document.getElementById('error');
    var error_msg = "";

    if (is_empty(api))
        error_msg = 'Please choose an API to apply for.';
    
    else if (is_empty(first_name) || is_empty(last_name) || is_empty(company) ||
        is_empty(company_url) || is_empty(email) || is_empty(phone) ||
        is_empty(country) || is_empty(reason) || is_empty(revenue_generation))
        error_msg = 'Please fill in all required fields.';

    if (is_empty(error_msg))
        error_msg = check_email(email);

    if (is_empty(error_msg))
        error_msg = check_phone(phone);

    if (error_msg == "")
    {
        error.style.display = 'none';
        var f = document.getElementById('request_form');
        var validated = document.createElement('input');
        validated.setAttribute('type','hidden');
        validated.setAttribute('name','validated');
        validated.setAttribute('value','1');

        f.appendChild(validated);
        return true;
    }
    error.innerHTML = error_msg;
    error.style.display = 'block';
    // return user to top of page to see error message.
    window.scrollTo(0,0);
    return false;
}

function display_estimated_searches()
{   
    var selected_api = document.getElementById("api").selectedIndex;
    var estimated_searches = document.getElementById("estimated_searches_div");
    
    if (selected_api > 1)
        estimated_searches.style.display = "none";
    else
        estimated_searches.style.display = "block";
}
