var global_validation_rules = new Array();
var global_validation_interval_id = null;
function add_required_field(submit_button_name, field_name, feedback_class, message, default_value){
	var submit_button;
	var form;
	var field;
	jQuery("[name="+submit_button_name+"]").each(function(){
		submit_button = this;
		var current_node = this;
		while(current_node.parentNode != null){
			if(current_node.parentNode.tagName == "FORM"){
				form = current_node.parentNode;
				break;
			}
			current_node = current_node.parentNode;
		}
	});
	
	jQuery("[name="+field_name+"]").each(function(){
		field = this;
		if(default_value != null){
			this.default_value = default_value;
			field.value = this.default_value;
		}
		this.onfocus = function(){
			if(this.value == this.default_value){
				this.value = "";
			}
		}
	});
	
	if(field != null && submit_button != null){
		var validation_array = new Array();
		validation_array[0] = field;
		validation_array[1] = submit_button;
		validation_array[2] = form;
		validation_array[3] = true;
		validation_array[4] = message;
		validation_array[5] = default_value;
		global_validation_rules.push(validation_array);
		submit_button.onclick = function(){
			Check_Validation(this);	
		}
	}
}

function Check_Validation(submit_button){
	var isvalid = true;
	var form = null;
	var field = null;
	var default_value = "required field";
	var message = "Please fill out the fields marked in red";
	for(var i = 0; i < global_validation_rules.length; i++){
		var this_rule = global_validation_rules[i];
		var this_submit_button = this_rule[1];
		if(this_submit_button == submit_button){
			form = this_rule[2];
			field = this_rule[0];
			var field_value = jQuery((field)).val();
			if(this_rule[5] != null){
			default_value = this_rule[5]
			}
			if(field_value == "" || field_value == null || field_value == default_value){
				isvalid = false;
				if(this_rule[4] != null){
					message = this_rule[4];	
				}
				field.original_border = field.style.border;
				field.style.border = "solid 1px red";
				field.onfocus = function(){
					this.value = "";
					this.onfocus= null;
				}
				break;
			}
			else{
				field.style.border = "";
				if(field.original_border != null){
					field.style.border = field.original_border;	
				}
			}
		}
	}
	if(!isvalid){
		alert(message);	
		field.value = default_value;
	}
	else{
		if(form != null){
			form.submit();
		}
		else{
			alert("Form was null or invalid");	
		}
	}
}
