// JavaScript Document

//validation functions

//used for name, address, city and county
function name_validation(param_value) {
	if (param_value.replace(/ /g, '').length > 1) {
		return true;
	} else {
		return false;
	}
}

function email_validation(param_value) {
	var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	if (!param_value.match(re)) {
		return false;
	} else {
		return true;
	}
}

function phone_validation(param_value) {
	var re = /^1?\s*[\-\s]?\s*\(?\s*\d{3}\s*[\)\-\s]?\s*\d{3}\s*[\-\s]?\s*\d{4}$/;
	if (!param_value.match(re)) {
		return false;
	} else {
		return true;
	}
}

function not_empty_validation(param_value) {
	var re = /.+/;
	if (!param_value.match(re)) {
		return false;
	} else {
		return true;
	}
}

function not_empty_radio_validation(param_object) {
	for (var i = 0; i < param_object.length; i++) {
		if (param_object.item(i).checked) {
			return true;
		}
	}
	
	return false;
}

function zip_validation(param_value) {
	var re = /^\d{5}(\s*[-\s]?\s*\d{4})?$/;
	if (!param_value.match(re)) {
		return false;
	} else {
		return true;
	}
}

function age_validation(param_value) {
	var re = /^\d{2,3}(\s*[-\s]?\s*\d{4})?$/;
	if (!param_value.match(re)) {
		return false;
	} else {
		return true;
	}			
}

function empty_validation(param_value) {
	if (param_value.length == 0) {
		return true;
	} else {
		return false;
	}
}

function kwc_id_validation(param_value) {
	var re = /^1\d{9}$/;
	if (!param_value.match(re)) {
		return false;
	} else {
		return true;
	}
}

function integer_validation(param_value) {
	var re = /^\d+$/;
	if (!param_value.match(re)) {
		return false;
	} else {
		return true;
	}		
}

function ssn_last_four_validation(param_value) {
	var re = /^\d{4}$/;
	if (!param_value.match(re)) {
		return false;
	} else {
		return true;
	}
}
	
function money_validation(param_value) {
	var re = /^\s*\d[,\d]*\.?\d*$/;
	if (!param_value.match(re)) {
		return false;
	} else {
		return true;
	}
}

var fields = new Array();

function validate() {
	var valid_form = true;
	var required;
	var valid;
	var field;	
	
	for (var i = 0; i < fields.length; i++) {
		if (fields[i][2].toLowerCase() == 'true') {
			required = true;
		} else {
			required = false;
		}
		field = document.getElementById(fields[i][0]);
		switch(fields[i][1].toLowerCase()) {
			case 'name':
				valid = name_validation(field.value);
				break;
			case 'not empty':
			case 'not_empty':
				valid = not_empty_validation(field.value);
				break;
			case 'zip':
				valid = zip_validation(field.value);
				break;
			case 'phone':
				valid = phone_validation(field.value);
				break;
			case 'email':
				valid = email_validation(field.value);
				break;
			case 'integer':
				valid = integer_validation(field.value);
				break;
			case 'kwc_id':
				valid = kwc_id_validation(field.value);
				break;
			case 'ssn_last_four':
				valid = ssn_last_four_validation(field.value);
				break;	
			case 'money':
				valid = money_validation(field.value);
				break;	
			case 'checkbox':
				valid = field.checked;
				break;				
			default:
				valid = false;
		}
		if (valid) {
			field.parentNode.parentNode.className = 'input_valid';
		} else {
			if ((field.value == '') && (!required)) {
				field.parentNode.parentNode.className = '';
			} else {
				field.parentNode.parentNode.className = 'input_error';
				valid_form = false;
			}
		}					
	}
	
	document.getElementById('btn_submit').disabled = !valid_form;		
}