
function format(control, type, format, decimals, group)
{
	var v;
	if (format == null) format = "";
	if(control.value=="") 
	    return;
	
	switch (type.toLowerCase()) {
		case "number":
			switch (format.toLowerCase()) {
				case "currency":
					v = getDecimals(decimals, getValue("[0-9.]", control.value), group);
					break;
				case "ssn":
					v = getValue("[0-9]", control.value);
			        if (v.length > 9)
			            v = v.substring(0, 9);
					if (v.length > 5)
					    v = v.substring(0,3) + "-" + v.substring(3,5) + "-" + v.substring(5);
					else if (v.length > 3)
					    v = v.substring(0,3) + "-" + v.substring(3);
					break;
				case "zipcode":
					v = getValue("[0-9]", control.value);
					v = (v.length > 5) ? (v.substring(0,5) + "-" + v.substring(5, 9)) : (v.substring(0,5));
					break;
			    case "date": 
			        v = getValue("[0-9]", control.value);			        
			        if (v.length > 8)
			            v = v.substring(0, 8);
			        if (v.length > 4) 
			            v = v.substring(0,2) + "/" + v.substring(2,4) + "/" + v.substring(4);
			        else if (v.length > 2)
			            v = v.substring(0,2) + "/" + v.substring(2);
			        break;
				default:
					v = getValue("[0-9]", control.value);
					break;
			}
			break;
	}
	
	function getDecimals(len, value, group) {
		var a = value.split(".", 2);
		var v;
		
		if (len == null) len = 0;
		if ((isNaN(len)) || (len < 0)) len = 0;
		if (group != true) group = false;
		
		if (isNaN(parseInt(a[0]))) a[0] = 0;
		if (isNaN(parseInt(a[1]))) a[1] = 0;
		
		switch (len) {
			case 0: v = a[0]; break;
			default: v = a[0] + "." + zeroPad(len, a[1]); break;
		}
		
		return v;
	}
	
	function getValue(pattern, value) {
		var re = new RegExp(pattern, "g");
		var m = value.match(re);
		var v = (m != null) ? m.join("") : "";
		
		return v;
	}
	
	function zeroPad(len, value) {
		var v = String(value);
		
		if (len > v.length) while (v.length < len) v +=  "0";
		if (v.length > len) v = v.substring(0, len);
		
		return v;
	}
	
	control.value = v;
	return;
}
