<!-- 
function Mod10(ccin,ccdatein,serverdate){//alert("validating cc");
  var CreditCards = "We currently only accept \"Visa\" and \"Mastercard\".";
  var ccno = ccin.value.replace(/\D/g,"");
  var ccdate = ccdatein.value.replace(/\D/g,"");
  var debug=0,NotSupported=0,vlengthgood=0,ccsum=0,result=0,dateErr=0,cclen=ccno.length;
	var cc_type_id,ccdig,mm,yy,formats,utcdate,i;
  if (cclen<13){ result = "Credit cards must have at least 13 digits.";
	}else{
		for (i=1; i<cclen; i++){
			ccdig=parseInt(ccno.charAt(cclen-(i+1)));
			if (i%2==1){
				ccdig*=2;
				if (ccdig.toString().length==2){ ccdig=(parseInt(ccdig.toString().charAt(0))+parseInt(ccdig.toString().charAt(1))); } 
			}
			ccsum+=ccdig;
		}
		ccsum+=parseInt(ccno.charAt(cclen-1));
		if (ccsum%10==0){
      cc_type_id = 'NS-NOT VALID TYPE'; 
      if (ccno.match(/^4/) )
				{cc_type_id = 'VISA';   if (cclen==13 || cclen==16) {vlengthgood=1;}   else {vlengthgood=0;} }
			if (ccno.match(/^50|^56|^57|^58|^6/) )
				{cc_type_id = 'NS-MAESTRO';   vlengthgood=1;}
			if (ccno.match(/^51|^52|^53|^54|^55/) )
				{cc_type_id = 'MASTERCARD';   if (cclen==16) {vlengthgood=1;}   else {vlengthgood=0;} }
      if (ccno.match(/^413733|^413734|^413735|^413736|^413737|^4462|^453978|^453979|^454313|^454313|^454432|^454433|^454434|^454435|^454742|^456725|^456726|^456727|^456728|^456729|^45673|^456740|^456741|^456742|^456743|^456744|^456745|^46583|^46584|^46585|^46586|^46587|^484409|^484410|^49096|^49097|^492181|^492182|^498824/) )
				{cc_type_id = 'NS-DELTA';   if (cclen==16) {vlengthgood=1;}   else {vlengthgood=0;} }
			if (ccno.match(/^450875|^484406|^484407|^484408|^484411|^484412|^484413|^484414|^484415|^484416|^484417|^484418|^484419|^48442|^48443|^48444|^484450|^484451|^484452|^484453|^484454|^484455|^49173|^49174|^49175|^491880/) )
				{cc_type_id = 'NS-ELECTRON';   if (cclen==16) {vlengthgood=1;}   else {vlengthgood=0;} }
			if (ccno.match(/^405501|^405502|^405503|^405504|^405550|^405551|^405552|^405553|^405554|^415928|^424604|^424604|^427533|^4288|^443085|^4484|^4485|^4486|^4715|^4716|^4804/) )
				{cc_type_id = 'VISA PURCHASING';   if (cclen==16) {vlengthgood=1;}   else {vlengthgood=0;} }
			if (ccno.match(/^490300|^490301|^49031|^49032|^490330|^490331|^490332|^490333|^490334|^49034|^49035|^49036|^49037|^49038|^49039|^49040|^490419|^490451|^490459|^490467|^490475|^490476|^490477|^490478|^4905|^491103|^491104|^491105|^491106|^491107|^491108|^491109|^49111|^49112|^49113|^49114|^49115|^49116|^491170|^491171|^491172|^491173|^491183|^491184|^491185|^491186|^491187|^491188|^491189|^49119|^4928|^4987/) )
				{cc_type_id = 'NS-VISA ATM ONLY';   if (cclen==16) {vlengthgood=1;}   else {vlengthgood=0;} }
			if (ccno.match(/^60/) )
				{cc_type_id = 'NS-DISCOVER';   if (cclen==16) {vlengthgood=1;}   else {vlengthgood=0;} }
			if (ccno.match(/^63345|^63346|^63347|^63348|^63349|^6767/) )
				{cc_type_id = 'NS-SOLO';   if (cclen==16 || cclen==18 || cclen==19) {vlengthgood=1;}   else {vlengthgood=0;} }
			if (ccno.match(/^490302|^490303|^490304|^490305|^490306|^490307|^490308|^490309|^490335|^490336|^490337|^490338|^490339|^491101|^491102|^491174|^491175|^491176|^491177|^491178|^491179|^491180|^491181|^491182|^4936|^564182|^63330|^63331|^63332|^63333|^63334|^6759/) )
				{cc_type_id = 'NS-SWITCH';   if (cclen==16 || cclen==18 || cclen==19) {vlengthgood=1;}   else {vlengthgood=0;} }
			if (ccno.match(/^34|^37/) )
				{cc_type_id = 'NS-AMEX';   if (cclen==13 || cclen==15) {vlengthgood=1;}   else {vlengthgood=0;} }
      if (ccno.match(/^3528|^3529|^353|^354|^355|^356|^357|^358|^2131|^1800/) )
				{cc_type_id = 'NS-JCB';   if (cclen==15 || cclen==16) {vlengthgood=1;}   else {vlengthgood=0;} }
      if (ccno.match(/^300|^301|^302|^303|^304|^305|^36|^380|^381|^382|^383|^384|^385|^386|^387|^388/) )
				{cc_type_id = 'NS-DINERS CLUB';   if (cclen==14) {vlengthgood=1;}   else {vlengthgood=0;} }
			if (ccno.match(/^389/) )
				{cc_type_id = 'NS-CARTE BLANCHE';   if (cclen==14) {vlengthgood=1;}   else {vlengthgood=0;} }
			if (ccno.match(/^2014|^2149/) )
				{cc_type_id = 'NS-ENROUTE';   if (cclen==15) {vlengthgood=1;}   else {vlengthgood=0;} }

      if(cc_type_id.substr(0,3) == "NS-") NotSupported = cc_type_id.substr(3);
			if (vlengthgood==0){ result = "The credit card entered is not a valid type or not supported.\n"+CreditCards+"\n\nIf the number you entered is one of the above\nplease check and re-enter the number again.";
      }else if(!debug && NotSupported){result = "It appears you are trying to use a \""+NotSupported+"\" credit or debt card.\t\n\n"+CreditCards;}
		}else{ result = "The credit card entered is not a valid number.\nPlease check and re-enter the number."; }
	}
  // validating the date
  mm = ccdate.substr(0,2); // first 2 numbers
  yy = "20"+ccdate.substr(2); // 20 + all remaining numbers
  utcdate = Date.UTC(yy, mm);
  formats = "Please check and re-enter the expiry date.\n\nValid expiry date formats:   mmyy  ,  mm/yy  ,  mm-yy\t\t\nInclude leading zero's, eg.   0304   ,  03/04   ,  03-04";
  if(yy.length > 4) dateErr = "Invalid year entered for the expiry date.\n"+formats;
  else if(mm > 12 || mm == "00") dateErr = "Invalid month entered for the expiry date.\n"+formats;
  else if(serverdate > utcdate) dateErr = "Credit card appears to be expired.\n"+formats;
  if(dateErr){ result = (result)? result + "\n\n" + dateErr : dateErr; }
  if(!result){  // update the user's format if there are no errors
    if(ccno.length != ccin.value.length){ ccin.value = ccno; }
    if(ccdate.length != ccdatein.value.length){ ccdatein.value = ccdate; }
  }
  return result;
}
//  -->