﻿// JScript File


function ValidateContainer(strContainerNo)
{
	var aSplit = new Array(0,0,0,0,0,0,0,0,0); 
	var  lTot = 0;
	var  i = 0;
	var  x = 0;
	var  CD = 0;

	if ((strContainerNo.length < 11) || (strContainerNo.length > 11)) return false; 

	CD = strContainerNo.substr(10,1);

	if (strContainerNo.substr(3,1).toUpperCase() != "U") return false; 

	i = 0;
	x = 1;
	while (i < 10) {
		if (i < 4)
		{
			aSplit[i] = GetContainerAlpha(strContainerNo.substr(i,1));
		}
		else
		{
			aSplit[i] = strContainerNo.substr(i,1);
		}

		if (aSplit[i] == -1) return false; 
		aSplit[i] = aSplit[i] * x;

		i = i + 1;
		x = x * 2;
	}

	lTot = 0;
	for (i = 0; i < 10; i++) {
		lTot = lTot + aSplit[i];
	}
	lTot = lTot % 11;
	if (lTot == 10) lTot = 0; 

	if (lTot != CD)
	{
		return false;
	}
	else
	{
		return true;
	}

}

function GetContainerAlpha(strAlpha)
{
	switch (strAlpha.toUpperCase()) {
		case "A":
			return 10;
		case "B":
			return 12;
		case "C":
			return 13;
		case "D":
			return 14;
		case "E":
			return 15;
		case "F":
			return 16;
		case "G":
			return 17;
		case "H":
			return 18;
		case "I":
			return 19;
		case "J":
			return 20;
		case "K":
			return 21;
		case "L":
			return 23;
		case "M":
			return 24;
		case "N":
			return 25;
		case "O":
			return 26;
		case "P":
			return 27;
		case "Q":
			return 28;
		case "R":
			return 29;
		case "S":
			return 30;
		case "T":
			return 31;
		case "U":
			return 32;
		case "V":
			return 34;
		case "W":
			return 35;
		case "X":
			return 36;
		case "Y":
			return 37;
		case "Z":
			return 38;

		default:
			return -1;
	}
}

