function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

Array.prototype.in_array = function(search) {
	var i;
	for (var i = 0, loopCnt = this.length; i < loopCnt; i++) {
		if (this[i] == search) {
			return true;
		}
	}
	return false;
};

function isNumeric(sText){
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;

	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
		}
	}
	return IsNumber;
}

function isInt(sText){
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;

	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
		}
	}
	return IsNumber;
}


var form 		  = '';
var submitted 	  = false;
var error 		  = false;
var error_message = '';

function check_email(field_name, message) {
	var field_value = form.elements[field_name].value;
	//	var field_value = document.form.field_name.value;
	
	var pattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	// PHP ^([_a-zA-Z0-9\-\.]+)@([a-zA-Z0-9-]+)\.([a-zA-Z]{2,3})$
	if( !pattern.test(field_value)) {
		error_message = error_message + "* " + message + "\n";
		error = true;
	}
}

function check_date(field_name, message) {
	var field_value = form.elements[field_name].value;
	var pattern = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
	var pattern_2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/; // Ex. mm/dd/yyyy or mm-dd-yyyy or mm.dd.yyyy
		
	if(!pattern.test(field_value)) {
		error_message = error_message + "* " + message + "\n";
		error = true;
	}
}

function valid_date(field_name, message) {
	var field_value = form.elements[field_name].value;
	var days = [31,28,31,30,31,30,31,31,30,31,30,31];
	var year;
	var month;
	var day;
	var date_parts = null;
	var err = true; 
		
	// dd/mm/yyyy => YYYY/MM/DD
	date_parts = field_value.match(/^(\d{4})[./-](\d{1,2})[./-](\d{1,2})$/);
	if (date_parts) { 
		day 	= date_parts[3];
		month 	= date_parts[2];
		year 	= date_parts[1];
	}
	else {
		err = false;
	}
		
	if (date_parts) {
		if (1 <= month && month <= 12) {
			if (month == 2) {
				if (year % 4 != 0 ? false : ( year % 100 != 0? true: (year % 1000 != 0? false : true))) {
					err = (1 <= day && day <= 29);
				} else {
					err = (1 <= day && day <= 28);
				}
			} else {
				err = (1 <= day && day <= days[month -1]);
			}
		} else {
			err = false;
		}
	} else {
		err = false;
	}
		
	if (err == false) {
		error_message = error_message + "* " + message + "\n";
		error = true;
	}
}



function check_input(field_name, field_size, message) {
	if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
		if (field_size == 0) 
			return;
		var field_value = form.elements[field_name].value.trim();
			
		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 (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
		var radio = 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 (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
		var field_value = form.elements[field_name].value.trim();
			
		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 (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
		var password 	 = form.elements[field_name_1].value.trim();
		var confirmation = form.elements[field_name_2].value.trim();
			
		if (password == '' || password.length < field_size) {
			error_message = error_message + "* " + message_1 + "\n";
			error = true;
		}
		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 (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
		var password_current 		= form.elements[field_name_1].value.trim();
		var password_new	 		= form.elements[field_name_2].value.trim();
		var password_confirmation 	= form.elements[field_name_3].value.trim();

		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;
			}
	}
}

