function validateFields(field, fieldtype, fieldname) {

	var LetterType="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ.'-"
	var UserType="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
	var NameType="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ'&.,-/"
	var StringType="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ'&.,-/0123456789"
	var IntegerType="1234567890"
	var FloatType="1234567890."
	var DateType="1234567890/"
	var PhoneType="+1234567890x()-/.,' "
	var PostcodeType="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-/.,'"
	var ok = "yes";
	var temp;

	switch (fieldtype){

		case "LetterType" : 
			valid = LetterType;
			break;

		case "StringType" : 
			valid = StringType;
			break;

		case "UserType" : 
			valid = UserType;
			break;

		case "NameType" : 
			valid = NameType;
			break;

		case "IntegerType" :
			valid = IntegerType;
			break;

		case "FloatType" :
			valid = FloatType;
			break;

		case "DateType" :
			if (ValidDate(field.value)==false){
				field.focus();
				return false;}
			else {
				return true;
			}
			break;

		case "PhoneType" :
			valid = PhoneType;
			break;

		case "PostcodeType" :
			valid = PostcodeType;
			break;

		default : alert("Incorrect No of Parameters sent to ValidateFields function");
	}

	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if ((valid.indexOf(temp) == "-1") && (temp != "\n")) ok = "no";
	}

	if (ok == "no") {
		alert("Sorry, your " + fieldname.toLowerCase() + " seems to contain invalid characters. Please check it carefully.\n\nYou are allowed any of: " + valid);
		field.focus();
		return false;
	}
	else {
		return true;
	}
}

