// email

function check_email (strng) {
	var error="";
	if (strng == "") {
		error = "You didn't enter an email address.\n";
		}

	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
	if (strng.match(illegalChars)) {
		error = "The email address contains illegal characters.\n";
		}
	return error;    
}


// phone number - strip out delimiters and check for 10 digits
function check_phone (strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter a phone number.\n";
		return error;
		}

	var stripped = strng.replace(/[\(\)\.\-\ ]/g, ''); 
	//strip out acceptable non-numeric characters
	if (isNaN(parseInt(stripped))) {
		error = "The phone number contains illegal characters.";
    		}
	if (!(stripped.length == 10)) {
		error = "The phone number is the wrong length.\n";
		} 
return error;
}


// password - between 6-8 chars, uppercase, lowercase, and numeral

function check_password (strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter a password.\n";
		}
return error;    
}    


// username - 4-10 chars, uc, lc, and underscore only.

function check_login (strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter a username.\n";
		}

	var illegalChars = /\W/; // allow letters, numbers, and underscores
    	if (illegalChars.test(strng)) {
    		error = "The username contains illegal characters.\n";
    		} 	
return error;
}       

//state - 2 characters only
function check_state (strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter a State.\n";
		} 
	else if(strng.length != 2){
		error = "Please enter a valid state abbreviation\n";
		}
	
	return error;
}

// Random - Check a random value for being empty
function check_random(strng, name){
	var error="";
	if(!strng){
		error = "You didn't enter a value for " + name + "\n";
		}
	return error;
}

// identical - Check to make sure that two values are identical Use for passwords.
function check_identical(string_a, string_b, name){
	var error="";
	if(string_a != string_b){
		error="Your " + name + " did not match.\n";
		}
	return error;
}

// cc - Check validity of a credit card
function check_cc(s) {

	var i, n, c, r, t;
	var error="";

	// First, reverse the string and remove any non-numeric characters.

	r = "";
	for (i = 0; i < s.length; i++) {
		c = parseInt(s.charAt(i), 10);
		if (c >= 0 && c <= 9)
			r = c + r;
	}

	// Check for a bad string.

	if (r.length <= 1){
		error="Credit card was too short\n";
		return error;
		}

	// Now run through each single digit to create a new string. Even digits
	// are multiplied by two, odd digits are left alone.

	t = "";
	for (i = 0; i < r.length; i++) {
		c = parseInt(r.charAt(i), 10);
		if (i % 2 != 0)
			c *= 2;
		t = t + c;
	}

	// Finally, add up all the single digits in this string.

	n = 0;
	for (i = 0; i < t.length; i++) {
		c = parseInt(t.charAt(i), 10);
		n = n + c;
	}

	// If the resulting sum is an even multiple of ten (but not zero), the
	// card number is good.

	if (n != 0 && n % 10 == 0){
		error="";
		}
	else{
	 	error="Invalid credit card number\n";	
		}
	return error;
}
function check_checkbox(box, name){
	var error="";
	if(!box.checked){
		error = "You didn't check the " + name + " box\n";
		}
	return error;
}
function check_dropdown(choice, name) {
    var error = "";
    if (choice == 0) {
       error = "You didn't choose an option from the " + name + " drop-down list.\n";
    }    
return error;
}  
