// functions for client-side ecard validation

function validate_required(field) {
	with (field) {
		if ( value == null || value == "" ) {
			return false;
		}
		else {
			return true;
		}
	}
}

function validate_email(field) {
	var emailregex = /^[0-9A-Za-z~!#$%&_-]([.]?[0-9A-Za-z~!#$%&_-])*@[0-9A-Za-z~!#$%&_-]([.]?[0-9A-Za-z~!#$%&_-])*$/;

	with (field) {
		if (!(emailregex.test(value))) {
			return false;
		}
		else {
			return true;
		}
	}
}

function validate_message(field, maxLen) {
	with (field) {
		if ( value.length > maxLen ) {
			return false;
		}
		else {
			return true;
		}
	}
}

function validate_form(form) {
	errors = '';

	with (form) {
		if (validate_required(toName) == false) {
			errors += 'To Name can not be blank.\n';
		}
		if (validate_email(toMail) == false) {
			errors += 'To E-mail must be a valid email address.\n';
		}
		if (validate_required(fromName) == false) {
			errors += 'From Name can not be blank.\n';
		}
		if (validate_email(fromMail) == false) {
			errors += 'From E-mail must be a valid email address.\n';
		}
		if (validate_message(message, 500) == false) {
			errors += 'message exceeds maximum length.\n'
		}
	}

	if ( errors != '' ) {
		alert(errors);
		return false;
	}
	return true;
}

var watch_length = function(element) {
    var max_length = 500, tolerance = 200;

    if(element.value.length > max_length) { element.value = element.value.substring(0, max_length); }
    document.getElementById('msg_length').innerHTML = (max_length - element.value.length) < tolerance ? ((max_length - element.value.length) + ' characters left') : '500 characters max';
  };