function i_chkName(name) {
	if(!(name.match(/^[a-zA-Z0-9_-]+$/))) return false;
	return true;
}

function i_chkPassword(password, strong) {
	var space = " ";
	
	// no spaces allowed
	if (password.indexOf(space) != -1) {
		return false;
	}
	
	if(strong == true) {
		// it must start with at least one letter     
		if (!(password.match(/^[a-zA-Z]+/))) return false;
		// it must contain at least one number
		if (!(password.match(/\d/))) return false;
		// it must contain at least one uppercase letter
		if (!(password.match(/[A-Z]/))) return false;
		// it password contain at least one lowercase letter
		if (!(password.match(/[a-z]/))) return false;
		// it must contain at least one special character #,@,%,!
		if (!(password.match(/\W+/))) return false;
	}
	
	return true;
}

function i_chkNumber(number) {
	if(!(number.match(/^[\d]+$/))) return false;
	return true;
}

function i_chkUrl(url) {
	if(!(url.match(/^https?:\/\/([\w\.]+)+(:\d+)?(\/(\w\/_\.]*(\?\S+)?)?)?$/))) return false;
	return true;
}

function i_chkEmail(email) {
	if(!(email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/))) return false;
	return true;
}

function i_chkY2k(number) {
	return (number < 1000) ? number + 1900 : number; 
}

function i_chkDate(month, day, year) {
	var unvaliddate = day + '/' + month + '/' + year;
	var date = new Date(year-0,month-1,day-0);
	var validdate = date.getDate() + '/' + (date.getMonth()+1) + '/' + i_chkY2k(date.getYear());
	
	if (unvaliddate != validdate) {
		return false;
	}
	return true;
}

function i_getValiddateUTC(month, day, year, hour, minute) {
	if (i_chkDate(month, day, year)) {
		var date = new Date(year-0,month-1,day-0,hour-0,minute-0,0);
		return Date.UTC(i_chkY2k(date.getYear()),date.getMonth(),date.getDate(),hour,minute,0);
	} else {
		return null;
	}
}

function i_display_required(required) {
	var count = 0;
	var message = "The following fields are required:\n";
	for(var i=0; i<required.length; i++) {
		if(required[i] != "" || required[i] != null) {
			message = message + " - " + required[i] + "\n";
			count += 1;
		}
	}
	
	if(count > 0) {
		alert(message);
		return false;
	} else {
		return true;
	}
}

function i_display_error(errors) {
	var count = 0;
	var message = "The following errors have occured:\n";
	for(var i=0; i<errors.length; i++) {
		if(errors[i] != "" || errors[i] != null) {
			message = message + " - " + errors[i] + "\n";
			count += 1;
		}
	}
	
	if(count > 0) {
		alert(message);
		return false;
	} else {
		return true;
	}
}