It's pretty long but it a professional one:
sEvent can be Blur or Focus depends when you call the function. Like this
<INPUT id=idCCNumber name=txtCCNumber onBlur="javascript:formatCCNumber('Blur')" onFocus="javascript:formatCCNumber('Focus')">
function formatCCNumber(sEvent)
{
var sValue = document.forms.frmMain.txtCCNumber.value;
var sMaskChar = new String();
var sInputChar = new String();
var sFormattedNumber = new String();
var sFormat = new String();
var i, j;
//CCLength = is the length of the Credit Card Number
if (sValue.length == 0 || <% =CCLength %> ==0)
return;
//sCreditCardMask something like this ###-#####-###
sFormat = "<% =sCreditCardMask %>"
if (sEvent == "Blur"

{
if (MaskedCreditCard == "True"

return;
else
{
//verify that the correct number of digits have been entered
if (sValue.length > 0 && sValue.length != <% =CCLength %>)
{
alert('Invalid_credit_card_number')%> ' + <% =CCLength %>);
document.forms.frmMain.txtCCNumber.focus();
document.forms.frmMain.txtCCNumber.select();
return;
}
//Format the credit card number
j = 0;
sFormattedNumber = "";
for (i=0; i <= sFormat.length; i++)
{
sMaskChar = sFormat.substr(i, 1);
sInputChar = sValue.substr(j, 1);
if (sMaskChar == "#"

{
//Represents a number, so insert input char
sFormattedNumber = sFormattedNumber + sInputChar;
//Increment input char
j++;
}
else
{
//Represents a space or dash
sFormattedNumber = sFormattedNumber + sMaskChar;
}
}
//Display the formatted number
document.forms.frmMain.txtCCNumber.value = sFormattedNumber;
}
}
else
{
if (sValue.search("#"

> 0)
{
var theResponse = confirm('Would_you_like_to_enter_a_new');
if (theResponse)
{
MaskedCreditCard = "False";
sValue = "";
}
else
{
MaskedCreditCard = "True";
document.forms.frmMain.txtCCRef.focus();
return;
}
}
sFormattedNumber = "";
//Strip out dashes and spaces
for (i=0; i < sValue.length; i++)
{
sInputChar = sValue.substr(i, 1);
if (sInputChar >= "0" && sInputChar <= "9"

sFormattedNumber = sFormattedNumber + sInputChar;
}
//Display the unformatted number
document.forms.frmMain.txtCCNumber.value = sFormattedNumber;
document.forms.frmMain.txtCCNumber.select();
}
}
Hope it will help you,
Regards,
Durug