﻿function checkIdNum(idNum)
{
	if (idNum == null || idNum == "")
	{
		return null ;
	}

	//15
	if (idNum.length == 15)
	{
		idNum = to18(idNum);
	}

	//18
	var idNumSum = 0 ;
	var nums2 = new Array(7 ,9 ,10 ,5 ,8 ,4 ,2 ,1 ,6 ,3 ,7 ,9 ,10 ,5 ,8 ,4 ,2) ;
	for (i=0;i<17 ;i++ )
	{
		idNumSum += idNum.charAt(i) * nums2[i] ;
	}
	
	var a = idNumSum % 11 ;
	switch (a)
	{
		case 0: a = "1" ;break;
		case 1: a = "0" ;break;
		case 2: a = "X" ;break;
		case 3: a = "9" ;break;
		case 4: a = "8" ;break;
		case 5: a = "7" ;break;
		case 6: a = "6" ;break;
		case 7: a = "5" ;break;
		case 8: a = "4" ;break;
		case 9: a = "3" ;break;
		case 10: a = "2" ;break;
	}
	
	if (a != idNum.charAt(17))
	{
		return null ;
	}

	return idNum ;
}

function to18(id15)
{
	var wArray = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1) ;
	var aArray = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2") ;
	var i,j,s=0 ;
　　var newid = id15 ;
	
	newid = newid.substring(0,6) + "19" + newid.substring(6,id15.length);
	for ( i=0;i<newid.length ;i++ )
	{
	　　 j= newid.substring(i,i+1) * wArray[i];
	　　 s=s+j;
	}
	s = s % 11;
	newid = newid + aArray[s];
	
	return newid;
}