function appendCharacters(cMask, nPos) {
	lcAppend 	= '';
	lcWildCard	= cMask.substring(nPos, nPos + 1);
	
	if((lcWildCard != '#') && (lcWildCard != '!')) {
		lcAppend = lcWildCard;
	}
	
	return lcAppend;
}

function getWildCard(cMask, nPos) {
	return cMask.substring(nPos, nPos + 1);
}

function inputMask (nKey, oObject, cMask) {
	//Mask en waarde in het object opvragen.
	lcMask	= cMask;
	lcText	= oObject.value;
	
	//Bepalen op welke positie nu invoer word gegeven.
	lnPos	= lcText.length;	
	
	//Als er niet op een backspace of delete is gedrukt vul dan de
	//eerstevolgende wildcard op.
	if((nKey != 8) && (nKey != 46)) {		
		lcText += appendCharacters(lcMask, lnPos);			
		lnPos   = lcText.length;
	}
	
	//Alle functie toetsen inschakelen behalve spaties.
	if((nKey < 48) && (nKey != 32)) {
        return true;
	}	
				
	//Bepalen welke masker op deze positie geld.
	lcWCard	= getWildCard(lcMask, lnPos);
	
	//Aan de hand van de wilcard kijken of de invoer geaccepteerd wordt.
	if(lcWCard == '#') {
		//Alleen numerieke characters van 0-9.
		if((nKey > 47 && nKey < 58)) {
			lcText += String.fromCharCode(nKey);
			
			//Textbox aanvullen tot aan volgende wildcard.
			lcText += appendCharacters(lcMask, lnPos + 1);
		}
		
		//Bij het keypad moet er -48 van de nKey worden afgetrokken.
		if((nKey > 95 && nKey < 106)) {
			lcText += String.fromCharCode(nKey - 48);
			
			//Textbox aanvullen tot aan volgende wildcard.
			lcText += appendCharacters(lcMask, lnPos + 1);
		}		
	} else if(lcWCard == '!') {
		//Alleen alfanumerieke characters van a-z | A-Z.
		if((nKey > 64 && nKey < 91)) {
			lcText += String.fromCharCode(nKey);
			
			//Textbox aanvullen tot aan volgende wildcard.
			lcText += appendCharacters(lcMask, lnPos + 1);
		}		
	}
	
	//Aanpassingen opslaan in het object.
	oObject.value = lcText;
		
	return false;
}
