var gPairIdxCnt = 0;
var gZzip = new Array();	// ZIP entry
var gZones = new Array();	// corresponding zone for ZIP

function SetupZones()   // record zip/zone info into table
{
	for (var i=0; i < arguments.length;)
	{
		gZzip[gPairIdxCnt] = arguments[i++];	// zip code index
		gZones[gPairIdxCnt] = arguments[i++];	// zone
		++gPairIdxCnt;							// number of bkpts
	}
}

function GetZone(userZip)
{
	var zone = 0;
	var zip3 = userZip.substring(0, 3);			// 1st 3 chars of zip
	for (var i = gPairIdxCnt - 1; i >= 0; i--)	// run table backwards
	{
		if (zip3 >= gZzip[i])		// zip value
		{
			zone = gZones[i];		// corresponding zone
			break;					// get out, now
		}
	}
	return zone;
}

function GetShippingCostPerCase(userZip)
{
	var costPerCase = 0;
	var zone = GetZone(userZip);
	// get zone pricing for parcel post of 7 Pounds (1 case of Bon CaCa)
	switch (zone) {
	case 1:		costPerCase = 5.80;		break;
	case 2:		costPerCase = 5.80;		break;
	case 3:		costPerCase = 6.28;		break;
	case 4:		costPerCase = 7.91;		break;
	case 5:		costPerCase = 9.20;		break;
	case 6:		costPerCase = 10.35;	break;
	case 7:		costPerCase = 11.39;	break;
	case 8:		costPerCase = 12.83;	break;
	}
	return costPerCase;
}

function ValidateZip(userZip)
{
	if (isNaN(userZip) || 
		(userZip.length != 5 && userZip.length != 9))
	{
		alert ("Please enter a valid 5 or 9 digit zip code.");
		return false;
	}
	return true;
}

function Dollar(val)	// force to valid dollar amount
{
	var str,pos,rnd=0;
	if (val < .995)
		rnd = 1;	// for old Netscape browsers
	str = escape(val*1.0 + 0.005001 + rnd);	// float, round, escape
	pos = str.indexOf(".");	// should be one, but OK if not
	if (pos > 0)
		str = str.substring(rnd, pos + 3);
	return str;               // return valid string
}


SetupZones(
	'000',0,
	'005',6,   '006',8,   '010',6,   '018',7,
	'027',6,   '030',7,   '054',6,   '055',7,
	'056',6,   '057',7,   '060',6,   '129',7,
	'130',6,   '150',5,   '155',6,   '156',5,
	'157',6,   '160',5,   '163',6,   '213',0,
	'214',6,   '215',5,   '216',6,   '224',5,
	'233',6,   '238',5,   '254',6,   '255',5,
	'269',0,   '270',5,   '300',4,   '308',5,
	'310',4,   '313',5,   '315',4,   '320',5,
	'323',4,   '325',3,   '326',4,   '327',5,
	'337',4,   '338',5,   '343',0,   '344',4,
	'345',0,   '346',5,   '348',0,   '349',5,
	'350',4,   '353',0,   '354',4,   '365',3,
	'367',4,   '369',3,   '370',4,   '376',5,
	'377',4,   '387',3,   '388',4,   '389',3,
	'396',2,   '397',3,   '398',4,   '400',5,
	'419',0,   '420',4,   '425',5,   '428',0,
	'430',5,   '476',4,   '478',5,   '496',6,
	'500',5,   '517',0,   '520',5,   '529',0,
	'530',5,   '533',0,   '534',5,   '536',0,
	'537',5,   '541',6,   '546',5,   '548',6,
	'549',5,   '556',6,   '559',5,   '562',6,
	'568',0,   '570',5,   '572',6,   '578',0,
	'580',6,   '589',0,   '590',6,   '592',7,
	'593',6,   '594',7,   '600',5,   '620',4,
	'621',0,   '622',4,   '623',5,   '628',4,
	'634',5,   '636',4,   '640',5,   '643',0,
	'644',5,   '647',4,   '649',5,   '650',4,
	'659',0,   '660',5,   '667',4,   '668',5,
	'670',4,   '674',5,   '682',0,   '683',5,
	'694',0,   '700',2,   '702',0,   '703',2,
	'705',1,   '709',0,   '710',3,   '713',2,
	'715',0,   '716',3,   '723',4,   '732',0,
	'733',4,   '739',5,   '740',4,   '742',0,
	'743',4,   '750',3,   '759',2,   '760',4,
	'765',3,   '768',4,   '770',3,   '776',2,
	'778',3,   '780',4,   '790',5,   '792',4,
	'798',5,   '814',6,   '817',0,   '820',6,
	'833',7,   '834',6,   '835',7,   '839',0,
	'840',6,   '848',0,   '850',6,   '851',0,
	'852',6,   '854',0,   '855',6,   '858',0,
	'859',6,   '861',0,   '863',6,   '866',0,
	'870',5,   '873',6,   '875',5,   '876',0,
	'877',5,   '886',0,   '889',6,   '892',0,
	'893',6,   '894',7,   '896',0,   '897',7,
	'899',0,   '900',7,   '909',0,   '910',7,
	'929',0,   '930',7,   '955',8,   '956',7,
	'960',8,   '961',7,   '967',8,   '978',7,
	'980',8,   '987',0,   '988',8,   '990',7,
	'995',8
)
