
 /****************************************************************************\
	 Creation date :-> 27-06-2006 [dd-mm-yyyy]
	 Last update   :-> 26-01-2007 [dd-mm-yyyy]

	 Author        :-> Antonio Magdic  <antonio@eburza.net>
 \****************************************************************************/

var my_form       = "";
var submitted     = false;
var error         = false;
var error_message = "";

function check_input(field_name, field_size, message) {
	if(my_form.elements[field_name] && (my_form.elements[field_name].type != "hidden")) {
		var field_value = my_form.elements[field_name].value;
		if(field_value == '' || field_value.length < field_size) {
			error_message = error_message + "* " + message + "\n";
			error = true;
		}
	}
}

function check_radio(field_name, message) {
	var isChecked = false;
	if(my_form.elements[field_name] && (my_form.elements[field_name].type != "hidden")) {
		var radio = my_form.elements[field_name];

		for (var i=0; i<radio.length; i++) {
			if (radio[i].checked == true) {
				isChecked = true;
				break;
			}
		}

		if(isChecked == false) {
			error_message = error_message + "* " + message + "\n";
			error = true;
		}
	}
}

function check_select(field_name, field_default, message) {
	if(my_form.elements[field_name] && (my_form.elements[field_name].type != "hidden")) {
		var field_value = my_form.elements[field_name].value;

		if(field_value == field_default) {
			error_message = error_message + "* " + message + "\n";
			error = true;
		}
	}
}

function check_password(field_name_1, field_name_2, field_size, message_1, message_2) {
	if(my_form.elements[field_name_1] && (my_form.elements[field_name_1].type != "hidden")) {
		var password = my_form.elements[field_name_1].value;
		var confirmation = my_form.elements[field_name_2].value;

		if(password == '' || password.length < field_size) {
			error_message = error_message + "* " + message_1 + "\n";
			error = true;
		} else if(password != confirmation) {
			error_message = error_message + "* " + message_2 + "\n";
			error = true;
		}
	}
}

function check_password_new(field_name_1, field_name_2, field_name_3, field_size, message_1, message_2, message_3) {
	if(my_form.elements[field_name_1] && (my_form.elements[field_name_1].type != "hidden")) {
		var password_current = my_form.elements[field_name_1].value;
		var password_new = my_form.elements[field_name_2].value;
		var password_confirmation = my_form.elements[field_name_3].value;

		if(password_current == '' || password_current.length < field_size) {
			error_message = error_message + "* " + message_1 + "\n";
			error = true;
		} else if(password_new == '' || password_new.length < field_size) {
			error_message = error_message + "* " + message_2 + "\n";
			error = true;
		} else if(password_new != password_confirmation) {
			error_message = error_message + "* " + message_3 + "\n";
			error = true;
		}
	}
}

function check_username(my_username) {
	var filter  = /^([a-zA-Z0-9_\.\-])+$/;
	if(!filter.test(my_username) && my_username.length > 0) {
		error_message = error_message + "* " + '' + "\n";
		error = true;
	}
}

function check_email(my_email) {
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(!filter.test(my_email) && my_email.length > 0) {
		error_message = error_message + "* " + '' + "\n";
		error = true;
	}
}

function check_number(my_number, message){
	var filter = /(^\d+$)|(^\d+\.\d+$)/;
	if(my_number != "" && !filter.test(my_number)) {
		error_message = error_message + "* " + message + "\n";
		error = true;
	}
} // end of the 'check_number()' function

function check_form(form_name) {
	if(submitted == true) {
		alert("");
		return false;
	}

	error = false;
	my_form = form_name;
	var my_action = my_form.elements['_action_'].value;
	error_message = "";

	// Sign Up Form OR Update Personal Data Form OR Members Admin -> Edit
	if(my_action == 'sign_up' || my_action == 'update_personal_data' || my_action == 'user_edit' || my_action == 'user_activate') {
		if(my_action == 'sign_up') {
			check_input("user_name", 2, "");
			check_username(my_form.elements['user_name'].value);
		}
		else if(my_action == 'user_activate') {
			check_input("password", 5, "");
		}
		
		check_input("lastname", 1, "");
		check_input("firstname", 1, "");
		check_radio("gender", "");

		check_input("email", 1, "");
		check_email(my_form.elements['email'].value);
		check_input("address", 1, "");
		check_input("town", 1, "");
		check_input("postcode", 1, "");
		check_select("country", "", "");
	}

	// Change Password Form
	else if(my_action == 'change_password') {
		check_password_new("old_password", "new_password", "new_password_verify", 5, "", "", "");
	}

	// Club Payment Form
	else if(my_action == 'sig_payment') {
		check_number(my_form.elements['fee1'].value, "");
		check_number(my_form.elements['fee2'].value, "");
		check_number(my_form.elements['fee3'].value, "");
		check_number(my_form.elements['tax'].value, "");
		check_input("fee1", 2, "");
	}
	
	// Events
	else if(my_action == 'add_event' || my_action == 'edit_event') {
		check_input("event_title", 2, "");
		check_select("event_country", "", "");
		check_number(my_form.elements['event_fee'].value, "");
	}
	
	// Polls
	else if(my_action == 'poll_add' || my_action == 'poll_edit') {
		check_input("question", 1, "");
		
		var obj1 = document.getElementById('variable1');
		var obj2 = document.getElementById('variable2');
		var obj3 = document.getElementById('variable3');
		var obj4 = document.getElementById('variable4');
		var obj5 = document.getElementById('variable5');
		var obj6 = document.getElementById('variable6');
		var obj7 = document.getElementById('variable7');
		var obj8 = document.getElementById('variable8');
		var obj9 = document.getElementById('variable9');
		var obj10 = document.getElementById('variable10');
		
		if(typeof(obj1) == 'undefined' || obj1 == null || typeof(obj1) != 'object') {
			error_message += "* \n";
			error = true;
		} else {
			check_input("variable1", 1, "");
		}
		if(typeof(obj2) == 'undefined' || obj2 == null || typeof(obj2) != 'object') {
			error_message += "* \n";
			error = true;
		} else {
			check_input("variable2", 1, "");
		}
		
		if(obj3 != null && typeof(obj3) == 'object') {
			check_input("variable3", 1, "");
		}
		if(obj4 != null && typeof(obj4) == 'object') {
			check_input("variable4", 1, "");
		}
		if(obj5 != null && typeof(obj5) == 'object') {
			check_input("variable5", 1, "");
		}
		if(obj6 != null && typeof(obj6) == 'object') {
			check_input("variable6", 1, "");
		}
		if(obj7 != null && typeof(obj7) == 'object') {
			check_input("variable7", 1, "");
		}
		if(obj8 != null && typeof(obj8) == 'object') {
			check_input("variable8", 1, "");
		}
		if(obj9 != null && typeof(obj9) == 'object') {
			check_input("variable9", 1, "");
		}
		if(obj10 != null && typeof(obj10) == 'object') {
			check_input("variable10", 1, "");
		}
	}
	
	// News
	else if(my_action == 'news_edit' || my_action == 'news_add') {
		check_input("news_title", 2, "");
		check_input("news_text", 5, "");
	}
	
	// Advert
	else if(my_action == 'advert_add' || my_action == 'advert_edit') {
		check_input("ad_title", 2, "");
		check_select("ad_type", "", "");
		check_input("ad_text", 5, "");
	}
	
	// Groups
	else if(my_action == 'group_add' || my_action == 'group_edit') {
		check_input("group_name", 2, "");
		check_select("group_type", "", "");
	}
	
	// Document Add
	else if(my_action == 'document_add') {
		check_input("document_title", 2, "");
		check_input("document_file", 2, "");
	}

	// Document Edit
	else if(my_action == 'document_edit') {
		check_input("document_title", 2, "");
	}
	
	// Newsletter
	else if(my_action == 'send_newsletter') {
		check_input("subject", 2, "");
		
		if(document.getElementById('hdnnewsletter').value == "") {
			error_message += "* \n";
			error = true;
		}
	}
	
	// Private Messages
	else if(my_action == 'send_message') {
		if(getCheckedValue(document.Messages.elements['to']) == '2') {
			check_select("member", "", "");
		}
		
		if(getCheckedValue(document.Messages.elements['to']) == '3') {
			check_select("group", "", "");
		}
		
		check_input("subject", 2, "");
		check_input("message_body", 2, "");
	}
	
	// Invitations
	else if(my_action == 'send_invitation') {
		check_input("emails", 3, "");
	}
	
	if(error == true) {
		alert(error_message);
		return false;
	} else {
		submitted = true;
		return true;
	}
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "0";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "0";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "0";
}
