/******************************************************************************
*******************************************************************************

f_enum.js

Written by Chris Harding and Joshua McKinney
© Copyright F1 Solutions Pty Ltd 2003

This file holds the enumerations code/data used by all pages.

Production Version 1.4.2 - 29 March 2005

*******************************************************************************
******************************************************************************/

// PremiseData enum
var ePremiseOccupier = 0, ePremiseABN = 1, ePremiseAddress = 2;
var ePremisePropertyLocation = 3, ePremiseDay = 4, ePremiseMonth = 5, ePremiseYear = 6;
var ePremiseContactPerson1 = 7, ePremiseContactPhone1 = 8;
var ePremiseContactPerson2 = 9, ePremiseContactPhone2 = 10;
// PremiseData Field Count
var iPremiseFC = 11;

// navigation enum
var iIntroduction=0, iInstructions=1, iNew=2, iUpdate=3, iClear=4;
var iPlacardReport=5, iManifestReport=6, iInventoryReport=7, iPlacardFile=8;
var iManifestFile=9, iInventoryFile=10, iExamples=11, iGoods=12, iPremises = 13;

// classes and the goods form index associated
var Class_2_1 = 0, Class_2_1_A = 1, Class_2_1_C = 2, Class_2_2 = 3;
var Class_2_2_A = 4, Class_2_2_C = 5, Class_2_3 = 6, Class_2_3_A = 7;
var Class_2_3_C = 8, Class_3 = 9, Class_4_1 = 10, Class_4_2 = 11;
var Class_4_3 = 12, Class_5_1 = 13, Class_5_2 = 14, Class_6_1 = 15;
var Class_6_2 = 16, Class_7 = 17, Class_8 = 18, Class_9 = 19;
var GoodsTooDangerous = 20, C1_Bulk = 21, C1_Packaged = 22, C2 = 23, C1 = 24;
var Class_1 = 25, ClassNA = 99;

// packing groups and the goods form index associated
var packingGroup_none = 0, packingGroup_I = 1, packingGroup_II = 2;
var packingGroup_III = 3;

// enum for individual schedule placard and manifest limits/quantities
var eItem1_Class21=0, eItem1_Class22Other=1, eItem1_Class22Sub51=2;
var eItem1_Class23=3, eItem1_Class2A=4, eItem1_Class2C=5, eItem2_Pack1=6;
var eItem2_Pack2=7, eItem2_Pack3=8, eItem2_PackM=9, eItem3_Pack2=10;
var eItem3_Pack3=11, eItem3_PackM=12, eItem4a=13, eItem4b=14, eItem5=15;
var eItem6=16, eItem7_Bulk=17, eItem7_Pack=18, eItem7_BulkPack=19;
var eItem392b=20;

// enum for quantity data
var eQty_Class21=0, eQty_Class22Sub51=1, eQty_Class22Other=2, eQty_Class23=3, eQty_Class2A=4;
var eQty_Class2C=5, eQty_Class3_PackM=6, eQty_Class3_Pack1=7, eQty_Class3_Pack2=8, eQty_Class3_Pack3=9;
var eQty_Class41_PackM=10, eQty_Class41_Pack1=11, eQty_Class41_Pack2=12, eQty_Class41_Pack3=13;
var eQty_Class42_PackM=14, eQty_Class42_Pack1=15, eQty_Class42_Pack2=16, eQty_Class42_Pack3=17;
var eQty_Class43_PackM=18, eQty_Class43_Pack1=19, eQty_Class43_Pack2=20, eQty_Class43_Pack3=21;
var eQty_Class51_PackM=22, eQty_Class51_Pack1=23, eQty_Class51_Pack2=24, eQty_Class51_Pack3=25;
var eQty_Class52_PackM=26, eQty_Class52_Pack1=27, eQty_Class52_Pack2=28, eQty_Class52_Pack3=29;
var eQty_Class61_PackM=30, eQty_Class61_Pack1=31, eQty_Class61_Pack2=32, eQty_Class61_Pack3=33;
var eQty_Class8_PackM=34, eQty_Class8_Pack1=35, eQty_Class8_Pack2=36, eQty_Class8_Pack3=37;
var eQty_Class9_PackM=38, eQty_Class9_Pack2=39, eQty_Class9_Pack3=40, eQty_Item4a=41;
var eQty_Item4b=42, eQty_Item5=43, eQty_Item6=44, eQty_Item7Bulk=45, eQty_Item7Pack=46;

// enum for packing type
var ePacking_Packaging=0, ePacking_IBC=1, ePacking_Bulk=2, ePacking_NA=99;

// error codes
var ERROR_CLOSING_FILE = 0, ERROR_WRITING_FILE = 1, ERROR_CREATING_FILE = 2,
    ERROR_GETTING_TEMP = 3, ERROR_GETTING_FOLDER = 4, ERROR_CREATING_FSO = 5;

/* enum for goods array */
// Goods Array Field Index
var eGAName = 0, eGAUN = 1, eGAClass = 2, eGASubrisk1 = 3, eGASubrisk2 = 4;
var eGAPackingGroup = 5, eGAC1Isolated = 6, eGAStorageArea = 7;
var eGAStorageType = 8, eGAQuantity = 9, eGAExempt = 10, eGACapacity = 11;
var eGAContainerID = 12, eGAHazchem = 13, eGAShippingName = 14;
// Number of fields in each Goods Array item
var intGoodFC = 15;

// Grand Total Array Field Index
var eGTAName = 0, eGTAUN = 1, eGTAClass = 2, eGTASubrisk1 = 3;
var eGTASubrisk2 = 4, eGTAIsFireRisk = 5, eGTAPackingGroup = 6;
var eGTAStorageArea = 7, eGTAStorageType = 8, eGTAQuantity = 9;
var eGTACapacity = 10, eGTAContainerID = 11, eGTAHazchem = 12;
var eGTAShippingName = 13, eGTAC1Isolated = 14, eGTAExempt = 15;
// number of fields in each Grand Total array item
var intGrandTotalFC = 16;

// Area Total array field index
var eATAStorageArea = 0, eATAClass21 = 1, eATAClass22Sub51 = 2;
var eATAClass22SubNot51 = 3, eATAClass23 = 4, eATAClassAero = 5;
var eATAClassCryo = 6, eATAClass3Pack1 = 7, eATAClass3Pack2 = 8;
var eATAClass3Pack3 = 9, eATAClass41Pack1 = 10, eATAClass41Pack2 = 11;
var eATAClass41Pack3 = 12, eATAClass42Pack1 = 13, eATAClass42Pack2 = 14;
var eATAClass42Pack3 = 15, eATAClass43Pack1 = 16, eATAClass43Pack2 = 17;
var eATAClass43Pack3 = 18, eATAClass51Pack1 = 19, eATAClass51Pack2 = 20;
var eATAClass51Pack3 = 21, eATAClass52Pack1 = 22, eATAClass52Pack2 = 23;
var eATAClass52Pack3 = 24, eATAClass61Pack1 = 25, eATAClass61Pack2 = 26;
var eATAClass61Pack3 = 27, eATAClass8Pack1 = 28, eATAClass8Pack2 = 29;
var eATAClass8Pack3 = 30, eATAClass9Pack2 = 31, eATAClass9Pack3 = 32;
var eATASubrisk21 = 33, eATASubrisk22 = 34, eATASubrisk23 = 35;
var eATASubrisk3 = 36, eATASubrisk41 = 37, eATASubrisk42 = 38;
var eATASubrisk43 = 39, eATASubrisk51 = 40, eATASubrisk52 = 41;
var eATASubrisk61 = 42, eATASubrisk8 = 43, eATASubrisk9 = 44;
var eATAMixed2000 = 45, eATAMixed5000 = 46, eATAGTDTT = 47, eATAC1Bulk = 48;
var eATAC1Packaged = 49, eATAC2Bulk = 50, eATAC2Packaged = 51;
var eATAClassA21 = 52, eATAClassA22 = 53, eATAClassA2251 = 54;
var eATAClassA23 = 55, eATAClassC21 = 56, eATAClassC22 = 57;
var eATAClassC2251 = 58, eATAClassC23 = 59, eATAClass1 = 60, eATASubrisk1 = 61, eATAC1PackagedNotIsolated = 62, eATAC1BulkNotIsolated = 63;
// must be last two items of array:
var eATAHasFireRisk = 64, eATAClassCount = 65;
// number of fields in each Area Total array item
var intAreaTotalFC = 66;

// Area placard requirements array fields:
var eAPRStorageArea = 0, eAPRClass21 = 1, eAPRClass22 = 2;
var eAPRClass22Sub51 = 3, eAPRClass23 = 4, eAPRClassAerosol = 5;
var eAPRClassCryogenic = 6, eAPRClass3 = 7, eAPRClass41 = 8, eAPRClass42 = 9;
var eAPRClass43 = 10, eAPRClass51 = 11, eAPRClass52 = 12, eAPRClass61 = 13;
var eAPRClass8 = 14, eAPRClass9 = 15, eAPRGTDTT = 16, eAPRCombustibleLiquids = 17;
var eAPRMixedClass = 18, eAPRClass1 = 19;
// number of fields in each Area Placard array item
var intAreaPlacardFC = 20;

// Area placard cause array fields:
var eAPCStorageArea = 0, eAPCClass = 1, eAPCReason = 2, eAPCManifestLevel = 3;

// Bulk placard array fields:
var eBPAStorageArea = 0, eBPAClass = 1, eBPASubrisk1 = 2, eBPASubrisk2 = 3;
var eBPAName = 4, eBPAUN = 5, eBPAHazchem = 6, eBPAExempt = 7, eBPAStorageType = 8;

// Reasons for placarding
var strReasonItem1="Regulation 430 of the Victorian Dangerous Goods (Storage and handling) Interim Regulations 2011";
var strReasonItem2="Regulation 430 of the Victorian Dangerous Goods (Storage and handling) Interim Regulations 2011";
var strReasonItem3="Regulation 430 of the Victorian Dangerous Goods (Storage and handling) Interim Regulations 2011";
var strReasonItem4a="Section 39(3) of the Victorian Dangerous Goods (Storage and handling) Interim Regulations 2011";
var strReasonItem4b="Section 39(3) of the Victorian Dangerous Goods (Storage and handling) Interim Regulations 2011";
var strReasonItem5="Section 39(2)(e) of the Victorian Dangerous Goods (Storage and handling) Interim Regulations 2011";
var strReasonItem6="Section 39(2)(d) of the Victorian Dangerous Goods (Storage and handling) Interim Regulations 2011";
var strReasonItem7="Section , Regulation 430(2b) of the Victorian Dangerous Goods (Storage and handling) Interim Regulations 2011";
var strReason392b="Section 39(2)(b) of the Victorian Dangerous Goods (Storage and handling) Interim Regulations 2011";
var strReason392c="Section 39(2)(c) (50% of Quantity specified in Items 1, 2 or 3 of Schedule 2)";
// added 29/03/2005 CJH CR108
var strReasonAeroCryo="the Rules for Aerosols and Cryogenic Fluids.";
var strReasonRule1="Rule 1 of the Rules for Placarding Aerosols and Cryogenic Fluids";
var strReasonRule2="Rule 2 of the Rules for Placarding Aerosols and Cryogenic Fluids";
var strReasonRule3="Rule 3 of the Rules for Placarding Aerosols and Cryogenic Fluids";
var strReasonRule4="Rule 4 of the Rules for Placarding Aerosols and Cryogenic Fluids";

/* data string for blank new good */
var gstrNewGood = ",,1,99,99,0,false,0,0,0,false,0,,,";


/* Function: getPacking(packingID)                         */
/* This function returns the string representation of the  */
/* packing group id specified by packingID.                */
/* INPUTS : int                                            */
/* OUTPUTS: string                                         */
function getPacking(packingID) {
	if (packingID == packingGroup_I) return "I";
	if (packingID == packingGroup_II) return "II";
	if (packingID == packingGroup_III) return "III";
	if (packingID == packingGroup_none) return "none";
}



/* Function: getPackingID(packingStr)                      */
/* This function returns the integer representation of the */
/* packing group specified by packingStr.                  */
/* INPUTS : string                                         */
/* OUTPUTS: int                                            */
function getPackingID(packingStr) {
	if (packingStr == "I") return packingGroup_I;
	if (packingStr == "II") return packingGroup_II;
	if (packingStr == "III") return packingGroup_III;
	if (packingStr == "none") return packingGroup_none;
}



/* Function: getClassA(classID)                             */
/* This function returns the string representation of the  */
/* class specified by classID.                             */
/* INPUTS : int                                            */
/* OUTPUTS: string                                         */
function getClassA(classID) {
	 if (classID == Class_2_1) return "2.1";
	 if (classID == Class_2_2) return "2.2";
	 if (classID == Class_2_3) return "2.3";
	 if (classID == Class_3) return "3";
	 if (classID == Class_4_1) return "4.1";
	 if (classID == Class_4_2) return "4.2";
	 if (classID == Class_4_3) return "4.3";
	 if (classID == Class_5_1) return "5.1";
	 if (classID == Class_5_2) return "5.2";
	 if (classID == Class_6_1) return "6.1";
	 if (classID == Class_6_2) return "6.2";
	 if (classID == Class_7) return "7";
	 if (classID == Class_8) return "8";
	 if (classID == Class_9) return "9";
	 if (classID == GoodsTooDangerous) return "GTD";
	 if (classID == C1_Bulk) return "C1 Bulk";
	 if (classID == C1_Packaged) return "C1 Packaged";
	 if (classID == C2) return "C2";
	 if (classID == C1) return "C1";
	 if (classID == ClassNA) return "N/A";
	 if (classID == Class_2_1_A) return "2.1 Aerosol";
	 if (classID == Class_2_2_A) return "2.2 Aerosol";
	 if (classID == Class_2_3_A) return "2.3 Aerosol"; 
	 if (classID == Class_2_1_C) return "2.1 Cryogenic";
	 if (classID == Class_2_2_C) return "2.2 Cryogenic";
	 if (classID == Class_2_3_C) return "2.3 Cryogenic";
	 if (classID == Class_1) return "1";
}



/* Function: getClassID(classStr)                          */
/* This function returns the integer representation of the */
/* class specified by the classStr.                        */
/* INPUTS : string                                         */
/* OUTPUTS: int                                            */
function getClassID(classStr) {
	 if (classStr == "2.1") return Class_2_1;
	 if (classStr == "2.2") return Class_2_2;
	 if (classStr == "2.3") return Class_2_3;
	 if (classStr == "3") return Class_3;
	 if (classStr == "4.1") return Class_4_1;
	 if (classStr == "4.2") return Class_4_2;
	 if (classStr == "4.3") return Class_4_3;
	 if (classStr == "5.1") return Class_5_1;
	 if (classStr == "5.2") return Class_5_2;
	 if (classStr == "6.1") return Class_6_1;
	 if (classStr == "6.2") return Class_6_2;
	 if (classStr == "7") return Class_7;
	 if (classStr == "8") return Class_8;
	 if (classStr == "9") return Class_9;
	 if (classStr == "GTD") return GoodsTooDangerous;
	 if (classStr == "C1 Bulk") return C1_Bulk;
	 if (classStr == "C1 Packaged") return C1_Packaged;
	 if (classStr == "C2") return C2;
	 if (classStr == "C1") return C1;
	 if (classStr == "N/A") return ClassNA;
	 if (classID == "2.1 Aerosol") return Class_2_1_A;
	 if (classID == "2.2 Aerosol") return Class_2_2_A;
	 if (classID == "2.3 Aerosol") return Class_2_3_A;
	 if (classID == "2.1 Cryogenic") return Class_2_1_C;
	 if (classID == "2.2 Cryogenic") return Class_2_2_C;
	 if (classID == "2.3 Cryogenic") return Class_2_3_C;
	 if (classID == "1") return Class_1;
}



/* Function: getPackaging(pintStorageType)                 */
/* This function returns the string representation of the  */
/* packaging type represented by the pintStorageType.      */
/* INPUTS : int                                            */
/* OUTPUTS: string                                         */
function getPackaging(pintStorageType) {
	switch(pintStorageType) {
		case ePacking_Packaging:
			return "Packaging";
			break;
		case ePacking_IBC:
			return "IBC";
			break;
		case ePacking_Bulk:
			return "Bulk";
			break;
		case ePacking_NA:
			return "N/A";
			break;
		default:
			return "Unknown"
			break;
	}
}



/* Function: getPackagingShort(pintStorageType)            */
/* This function returns the string representation of the  */
/* packaging type represented by the pintStorageType.      */
/* INPUTS : int                                            */
/* OUTPUTS: string                                         */
function getPackagingShort(pintStorageType) {
	switch(pintStorageType) {
		case ePacking_Packaging:
			return "Pkg";
			break;
		case ePacking_IBC:
			return "IBC";
			break;
		case ePacking_Bulk:
			return "Blk";
			break;
		case ePacking_NA:
			return "N/A";
			break;
		default:
			return "???";
			break;
	}
}



/* Function: convertAPRtoClass(intAPRClass)                */
/* This function returns the string representation of the  */
/* area placard requirements specified by intAPRClass.     */
/* INPUTS : int                                            */
/* OUTPUTS: string                                         */
function convertAPRtoClass(intAPRClass) {
	switch(intAPRClass) {
		case eAPRClass21: return "Class 2.1"; break;
		case eAPRClass22: return "Class 2.2"; break;
		case eAPRClass22Sub51: return "Class 2.2 subsidiary risk 5.1"; break;
		case eAPRClass23: return "Class 2.3"; break;
		case eAPRClass3: return "Class 3"; break;
		case eAPRClass41: return "Class 4.1"; break;
		case eAPRClass42: return "Class 4.2"; break;
		case eAPRClass43: return "Class 4.3"; break;
		case eAPRClass51: return "Class 5.1"; break;
		case eAPRClass52: return "Class 5.2"; break;
		case eAPRClass61: return "Class 6.1"; break;
		case eAPRClass8: return "Class 8"; break;
		case eAPRClass9: return "Class 9"; break;
		case eAPRGTDTT: return "GTD"; break;
		case eAPRCombustibleLiquids: return "Combustible Liquids"; break;
		case eAPRMixedClass: return "Mixed Classes"; break;
		case eAPRClass1: return "Class 1"; break;
	}
}



/* Function: convertATAtoClass(intATAClass)                */
/* This function returns the string representation of the  */
/* area total array index specified by intATAClass.        */
/* INPUTS : int                                            */
/* OUTPUTS: string                                         */
function convertATAtoClass(intATAClass) {
	//alert("convertATAtoClass("+intATAClass+")");
	switch(intATAClass) {
		case eATAClass21:
		case eATAClassA21:
		case eATAClassC21:
		case eATASubrisk21: return "2.1"; break;
		case eATAClass22SubNot51:
		case eATAClass22Sub51:
		case eATAClassA22:
		case eATAClassA2251:
		case eATAClassC22:
		case eATAClassC2251:
		case eATASubrisk22: return "2.2"; break;
		case eATAClass23:
		case eATAClassA23:
		case eATAClassC23:
		case eATASubrisk23: return "2.3"; break;
		case eATAClass3Pack1:
		case eATAClass3Pack2:
		case eATAClass3Pack3:
		case eATASubrisk3: return "3"; break;
		case eATAClass41Pack1:
		case eATAClass41Pack2:
		case eATAClass41Pack3:
		case eATASubrisk41: return "4.1"; break;
		case eATAClass42Pack1:
		case eATAClass42Pack2:
		case eATAClass42Pack3:
		case eATASubrisk42: return "4.2"; break;
		case eATAClass43Pack1:
		case eATAClass43Pack2:
		case eATAClass43Pack3:
		case eATASubrisk43: return "4.3"; break;
		case eATAClass51Pack1:
		case eATAClass51Pack2:
		case eATAClass51Pack3:
		case eATASubrisk51: return "5.1"; break;
		case eATAClass52Pack1:
		case eATAClass52Pack2:
		case eATAClass52Pack3:
		case eATASubrisk52: return "5.2"; break;
		case eATAClass61Pack1:
		case eATAClass61Pack2:
		case eATAClass61Pack3:
		case eATASubrisk61: return "6.1"; break;
		case eATAClass8Pack1:
		case eATAClass8Pack2:
		case eATAClass8Pack3:
		case eATASubrisk8: return "8"; break;
		case eATAClass9Pack2:
		case eATAClass9Pack3:
		case eATASubrisk9: return "9"; break;
		case eATAGTDTT: return "Goods Too Dangerous"; break;
		case eATAC1Bulk:
		case eATAC2Bulk:
		case eATAC2Packaged:
		case eATAC1Packaged:
		case eATAC1PackagedNotIsolated:
		case eATAC1BulkNotIsolated: return "Combustible Liquids"; break;
		case eATAClass1:
		case eATASubrisk1: return "1"; break;
	}
}



/* Function: getClassAC(classID, blnIsAero, blnIsCryo)     */
/* This function returns the string representation of the  */
/* class enum specified by classID, blnIsAero and          */
/* blnIsCryo.                                              */
/* INPUTS : int, boolean, boolean                          */
/* OUTPUTS: string                                         */
function getClassAC(classID, blnIsAero, blnIsCryo) {
	var strReturn = "";
	if(classID == Class_2_1) strReturn += "2.1";
	if(classID == Class_2_2) strReturn += "2.2";
	if(classID == Class_2_3) strReturn += "2.3";
	if(classID == Class_3) strReturn += "3";
	if(classID == Class_4_1) strReturn += "4.1";
	if(classID == Class_4_2) strReturn += "4.2";
	if(classID == Class_4_3) strReturn += "4.3";
	if(classID == Class_5_1) strReturn += "5.1";
	if(classID == Class_5_2) strReturn += "5.2";
	if(classID == Class_6_1) strReturn += "6.1";
	if(classID == Class_6_2) strReturn += "6.2";
	if(classID == Class_7) strReturn += "7";
	if(classID == Class_8) strReturn += "8";
	if(classID == Class_9) strReturn += "9";
	if(classID == GoodsTooDangerous) strReturn += "GTD";
	if(classID == C1_Bulk) strReturn += "C1 Bulk";
	if(classID == C1_Packaged) strReturn += "C1 Packaged";
	if(classID == C2) strReturn += "C2";
	if(classID == C1) strReturn += "C1";
	if(classID == ClassNA) strReturn += "N/A";
	if(classID == Class_2_1_A) strReturn += "Aerosol (2.1)";
	if(classID == Class_2_2_A) strReturn += "Aerosol (2.2)";
	if(classID == Class_2_3_A) strReturn += "Aerosol (2.3)";
	if(classID == Class_2_1_C) strReturn += "Cryogenic (2.1)";
	if(classID == Class_2_2_C) strReturn += "Cryogenic (2.2)";
	if(classID == Class_2_3_C) strReturn += "Cryogenic (2.3)"; 
	if(blnIsAero) strReturn = "Aerosol (" + strReturn + ")"
	else if(blnIsCryo) strReturn = "Cryogenic (" + strReturn + ")"
	if(classID == Class_1) strReturn += "1";
	return strReturn;
}



/* Function: getFileClass(classID)                         */
/* This function returns the string representation of the  */
/* class for the save to file report specified by classID. */
/* INPUTS : int                                            */
/* OUTPUTS: string                                         */
function getFileClass(classID) {
	var strReturn = "";
	if(classID == Class_2_1) strReturn += "2.1";
	if(classID == Class_2_2) strReturn += "2.2";
	if(classID == Class_2_3) strReturn += "2.3";
	if(classID == Class_3) strReturn += "3";
	if(classID == Class_4_1) strReturn += "4.1";
	if(classID == Class_4_2) strReturn += "4.2";
	if(classID == Class_4_3) strReturn += "4.3";
	if(classID == Class_5_1) strReturn += "5.1";
	if(classID == Class_5_2) strReturn += "5.2";
	if(classID == Class_6_1) strReturn += "6.1";
	if(classID == Class_6_2) strReturn += "6.2";
	if(classID == Class_7) strReturn += "7";
	if(classID == Class_8) strReturn += "8";
	if(classID == Class_9) strReturn += "9";
	if(classID == GoodsTooDangerous) strReturn += "GTD";
	if(classID == C1_Bulk) strReturn += "C1";
	if(classID == C1_Packaged) strReturn += "C1";
	if(classID == C2) strReturn += "C2";
	if(classID == C1) strReturn += "C1";
	if(classID == ClassNA) strReturn += "N/A";
	if(classID == Class_2_1_A) strReturn += "2.1 Aero";
	if(classID == Class_2_2_A) strReturn += "2.2 Aero";
	if(classID == Class_2_3_A) strReturn += "2.3 Aero";
	if(classID == Class_2_1_C) strReturn += "2.1 Cryo";
	if(classID == Class_2_2_C) strReturn += "2.2 Cryo";
	if(classID == Class_2_3_C) strReturn += "2.3 Cryo";
	if(classID == Class_1) strReturn += "1";
	return strReturn;
}

