function validateForm(f) 
{
    var errors = '';

    var jobKeywords = validated(trim(f.keyword.value));
    var state = document.getElementById("state").options[document.getElementById("state").selectedIndex].text;
    
    if (!isValidName(jobKeywords) || isEmpty(jobKeywords) || jobKeywords == 'Keyword') 
    {
        errors += 'You must enter Job Keywords to search\n';
        f.keyword.value = "";
    }
    
    if(state == 'State')
    {
    	errors += 'You must choose a State.';
    }
    
    if (errors != '') 
    {
        alert(errors);
        return false;
    } 
    else 
    {
        return true;
    }
}

function validateAndSubmit() 
{
    var getstr = "?";
    var obj = document.getElementById("frmCareers");

    for (i = 0; i < obj.getElementsByTagName("input").length; i++) 
    {
        if (obj.getElementsByTagName("input")[i].type == "text") 
        {
            getstr += obj.getElementsByTagName("input")[i].name + "=" + obj.getElementsByTagName("input")[i].value + "&";
        }
    }
    
    for (i = 0; i < obj.getElementsByTagName("SELECT").length; i++) 
    {
		if (obj.getElementsByTagName("SELECT")[i].tagName == "SELECT") 
		{
			var sel = obj.getElementsByTagName("SELECT")[i];
			getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
		}
	}
	
    if (validateForm(obj)) 
    {
        makeRequest('/servlets/Careers', getstr);
    }
}

var http_request = false;

function makeRequest(url, parameters) 
{
    http_request = false;

    if (window.XMLHttpRequest) // Mozilla, Safari,...
    {
        http_request = new XMLHttpRequest();

        if (http_request.overrideMimeType) 
        {
            http_request.overrideMimeType('text/html');
        }
    } 
    else if (window.ActiveXObject) // IE
    {
        try 
        {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) 
        {
            try 
            {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) {}
        }
    }
    if (!http_request) 
    {
        alert('Cannot create XMLHTTP instance');
        return false;
    }
    
    http_request.onreadystatechange = function () 
    {
    	if (http_request.readyState == 4) 
    	{
        	if (http_request.status == 200) 
        	{
        		window.open(http_request.responseText);
        	}
        	else
        	{
        		alert(http_request.status);
        	}
    	}
	};
    http_request.open('POST', url + parameters, true);
    http_request.send(null);
}

function isValidName(str) 
{
    var reg = /^[a-zA-Z\s.\-]+$/;
    return reg.test(str);
}

// returns true if the string is empty
function isEmpty(str) 
{
    return (str == null) || (str.length == 0) || (str.length == '');
}

function validated(string) 
{
    var output = '';

    for (var i = 0, invalid = "[]{}<>'\""; i < string.length; i++) 
    {
        if (invalid.indexOf(string.charAt(i)) != -1) {} else 
        {
            output += string.charAt(i);
        }
    }
    return output;
}

function trim(stringToTrim) 
{
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

