var addressChars = " 0123456789-_/&";
var cityChars= " -_" 
var emailChars= "0123456789-._@" 
var nameChars = " ";

function formatString(theTextField, sallowedchars, firstCapital, allLowerCase) {
	if(formatString.arguments.length < 3) {
		firstCapital = false;
		allLowerCase = false;
	}
	theString = theTextField.value;
	snew = "";
	for (i=0; i<theString.length; i++) {
		next = theString.charAt(i);
		code = next.charCodeAt(0);
		if (sallowedchars.indexOf(next) == -1) {
			if (code<65 || (code>90 && code<97) || (code>122 && code<192) || code==215 || code==222 || code==247 || code>253) {
				continue;
			}
		}
		code = next.charCodeAt(0);
		if (code > 191 && code < 199) {
			next="A";
		}
		if (code == 199) {
			next="C";
		}
		if (code > 199 && code < 204) {
			next="E";
		}
		if (code >= 204 && code < 208) {
			next="I";
		}
		if (code == 208 ) {
			next="D";
		}
		if (code == 209 ) {
			next="N";
		}
		if (code > 209 && code < 215) {
			next="O";
		}
		if (code >= 217 && code < 221) {
			next="U";
		}
		if (code == 221) {
			next="Y";
		}
		if (code == 223) {
			next="s";
		}
		if (code > 223 && code < 231) {
			next="a";
		}
		if (code == 231) {
			next="c";
		}
		if (code > 231 && code < 236) {
			next="e";
		}
		if (code >= 236 && code < 240) {
			next="i";
		}
		if (code == 240 ) {
			next="d";
		}
		if (code == 241 ) {
			next="n";
		}
		if (code > 241 && code < 249) {
			next="o";
		}
		if (code >= 249 && code < 253) {
			next="u";
		}
		if (code == 253) {
			next="y";
		}
		
		if (firstCapital) {
			if (snew.length == 0) {
				next = next.toUpperCase();
			}
			else {
				if (allLowerCase) {
					next = next.toLowerCase();
				}
				else {
					if (snew.charCodeAt(snew.length-1) == 32 || snew.charCodeAt(snew.length-1) == 45) {
						next = next.toUpperCase();
					}
					else {
						next = next.toLowerCase();
					}
				}
			} 
		}
		else {
			if (allLowerCase) {
				next = next.toLowerCase();
			}
		}
		
		snew += next;
	}
	theTextField.value = snew;
	
	return true;
}

