function maskEdit(objSrc,strMask) {
	/*
	Purpose:	Mask edit for textboxes
	Inputs:		objSrc 	- object, the element that the mask is applied to
				strMask - string, the mask string
	Outputs:	True or false to either pass through the input or not
				Changes contents of eSrc
	Notes:		Valid mask characters are:
					A for uppercase alpha
					a for lowercase alpha
					0 for numeric
				anything else is copied straight through
				Sample: Postal Code 'A0A-0A0'
						Phone		'000 000-0000'
						
	Updates:	Date		Author			Description
				05/10/2000	Michael Bartha	Created function
	*/
	var ascCH = event.keyCode;
	//alert(ascCH);
	var strTemp = "";
	var strOutput = "";
	var strInput = objSrc.value;
	var intInputLength = strInput.length;
	var strCH = String.fromCharCode(ascCH);
	//alert(intInputLength);
	//get mask character at character position
	mskCH = strMask.substring(intInputLength,intInputLength+1);
	switch (mskCH) {
		case "A" :
			//uppercase letters only
			//ascii code 65 to 90
			if((ascCH >= 65) && (ascCH <= 90)) {
				//valid concat to output
				strOutput += strCH;
			}
			if((ascCH >= 97) && (ascCH <= 122)) {
				//valid concat to output
				strOutput += String.fromCharCode(ascCH - 32);
			}
			break;
		case "a" :
			//uppercase letters only
			//ascii code 97 to 122
			if((ascCH >= 97) && (ascCH <= 122)) {
				//valid concat to output
				strOutput += strCH;
			}
			if((ascCH >= 65) && (ascCH <= 90)) {
				//valid concat to output
				strOutput += String.fromCharCode(ascCH + 32);
			}
			break;
		case "0" :
			//numbers only
			//ascii code 48 to 57
			if((ascCH >= 48) && (ascCH <= 57)) {
				//valid concat to output
				strOutput += strCH;
			}
			break;
		default :
				//pass through copy mask char to output
				strOutput += mskCH;
	}
	//get mask character at character position + 1 ie look ahead
	blnMatch = false;
	for(i=intInputLength + 1;i < strMask.length;i++) {
		mskCH1 = strMask.substring(i,i+1);		
		switch (mskCH1) {
			case "A" :
				blnMatch = true;
				break;
			case "a" :
				blnMatch = true;
				break;
			case "0" :
				blnMatch = true;
				break;
			default :
				//pass through copy mask char to output
				strOutput += mskCH1;
		}
		if(blnMatch) break;
	}
	//ascii codes of characters to pass through
	if ((ascCH != 8) && (ascCH != 9) && (ascCH != 13) && (ascCH != 36) && (ascCH != 35)
		&& (ascCH != 37) && (ascCH != 38) && (ascCH != 39) && (ascCH != 40)){
		objSrc.value = strInput  + strOutput;
		return false;
	}
	else {
		return true;
	}
}