/***********************************************************************
*
* format		-	formats user input
*
* Graham Bradley 2006
*
*
************************************************************************/

function format(el,f){

var exclude=['Macclesfield','USA'];

if (!el.value) return false;
var str=el.value;
if (f=="cc"){
	var chr=" ";
	str=str.replace(/[^\d]/gi,"");
	str=str.substring(0,4)+chr+str.substring(4,8)+chr+str.substring(8,12)+chr+str.substring(12,str.length);
	}
else if (f=="upper") str=el.value.toUpperCase();
else if (f=="postcode" && isNaN(el.value)){
	str=(str.split(" ")).join("");
	str=str.substring(0,(str.length-3))+" "+str.substring((str.length-3),str.length)
	str=str.toUpperCase();
	}
else if (f=="lower") str=el.value.toLowerCase();
else if (f=="capitals"){
	str=str.toLowerCase();
	var arr=str.match(/(^.|\s.)/gi);
	for (var i=0;i<arr.length;i++) str=str.replace(arr[i],arr[i].toUpperCase());
	str=str.split(" ");
	for (var i=0;i<str.length;i++){
		index=has(exclude,str[i],1);
		if (index===false){
			var arr=str[i].match(/(-(.)|Mc(.)|Mac(.)|O'(.))/g);
			if (arr){
				for (var j=0;j<arr.length;j++){
					str[i]=str[i].replace(arr[j],arr[j].substring(0,arr[j].length-1)+(arr[j].substring(arr[j].length-1,arr[j].length)).toUpperCase());
					}
				}
			}
		else{
			str[i]=exclude[index];
			}
		}
	str=str.join(" ");
	}
el.value=str;

function has(a,v,m){
for (var i=0;i<a.length;i++){
	if (a[i].toLowerCase()===v.toLowerCase()) return (m ? i : true);
	}
return false;
}
}