regions = new Array(49); regions[0] = new Array("CC", "CCAD", "Addenbroke Island (CCAD)"); regions[1] = new Array("CC", "CCBB", "Bella Bella (CCBB)"); regions[2] = new Array("GI", "GICI", "Cortes Island (GICI)"); regions[3] = new Array("GI", "GIDE", "Denman Island (GIDE)"); regions[4] = new Array("GI", "GIGB", "Gabriola Island (GIGB)"); regions[5] = new Array("GI", "GIGA", "Galiano Island (GIGA)"); regions[6] = new Array("GI", "GIHO", "Hornby Island (GIHO)"); regions[7] = new Array("GI", "GILA", "Lasqueti Island (GILA)"); regions[8] = new Array("GI", "GIMA", "Mayne Island (GIMA)"); regions[9] = new Array("GI", "GIPE", "Pender Islands (GIPE)"); regions[10] = new Array("GI", "GIQU", "Quadra Island (GIQU)"); regions[11] = new Array("GI", "GISS", "Saltspring Island (GISS)"); regions[12] = new Array("GI", "GISA", "Saturna Island (GISA)"); regions[13] = new Array("GI", "GISE", "Secretary Island (GISE)"); regions[14] = new Array("GI", "GITE", "Texada Island (GITE)"); regions[15] = new Array("GI", "GIVA", "Valdes Island (GIVA)"); regions[16] = new Array("LM", "LMSQ", "Squamish (LMSQ)"); regions[17] = new Array("LM", "LMVN", "Vancouver (LMVN)"); regions[18] = new Array("LM", "LMWR", "White Rock (LMWR)"); regions[19] = new Array("NC", "NCKI", "Kitimat (NCKI)"); regions[20] = new Array("NC", "NCPO", "Porcher Island (NCPO)"); regions[21] = new Array("NC", "NCPR", "Prince Rupert (NCPR)"); regions[22] = new Array("QC", "QCMA", "Masset (QCMA)"); regions[23] = new Array("QC", "QCSK", "Skidegate-Sandspit (QCSK)"); regions[24] = new Array("QC", "QCTL", "Tlell (QCTL)"); regions[25] = new Array("SC", "SCBI", "Bowen Island (SCBI)"); regions[26] = new Array("SC", "SCEG", "Egmont (SCEG)"); regions[27] = new Array("SC", "SCGI", "Gibsons (SCGI)"); regions[28] = new Array("SC", "SCPH", "Pender Harbour (SCPH)"); regions[29] = new Array("SC", "SCPR", "Powell River (SCPR)"); regions[30] = new Array("SC", "SCSE", "Sechelt (SCSE)"); regions[31] = new Array("VI", "VIAB", "Alert Bay (VIAB)"); regions[32] = new Array("VI", "VIBM", "Bamfield (VIBM)"); regions[33] = new Array("VI", "VIBC", "Black Creek (VIBC)"); regions[34] = new Array("VI", "VICR", "Campbell River (VICR)"); regions[35] = new Array("VI", "VICH", "Chemainus (VICH)"); regions[36] = new Array("VI", "VICX", "Comox Valley (VICX)"); regions[37] = new Array("VI", "VICV", "Cowichan Valley (VICV)"); regions[38] = new Array("VI", "VIJR", "Jordon River (VIJR)"); regions[39] = new Array("VI", "VIMA", "Malcolm Island (VIMA)"); regions[40] = new Array("VI", "VINN", "Nanaimo (VINN)"); regions[41] = new Array("VI", "VIPR", "Pacific Rim (VIPR)"); regions[42] = new Array("VI", "VIPQ", "Parksville-Qualicum (VIPQ)"); regions[43] = new Array("VI", "VIPA", "Port Alberni (VIPA)"); regions[44] = new Array("VI", "VIPM", "Port McNeill (VIPM)"); regions[45] = new Array("VI", "VITS", "Tahsis (VITS)"); regions[46] = new Array("VI", "VITC", "Telegraph Cove (VITC)"); regions[47] = new Array("VI", "VIVI", "Victoria (VIVI)"); regions[48] = new Array("VI", "VIZE", "Zeballos (VIZE)"); sites = new Array(349); sites[0] = new Array("CCAD", "1", "1. Adenbroke Lighthouse"); sites[1] = new Array("GICI", "1", "1. Manson's Landing Lagoon"); sites[2] = new Array("GICI", "2", "2. Cortes Bay"); sites[3] = new Array("GIDE", "1", "1. Longbeak Point"); sites[4] = new Array("GIDE", "2", "2. Komas North"); sites[5] = new Array("GIDE", "3", "3. Denman Point"); sites[6] = new Array("GIDE", "4", "4. Glen Gorm"); sites[7] = new Array("GIDE", "5", "5. Lacon-Mallard"); sites[8] = new Array("GIDE", "6", "6. Lacon South"); sites[9] = new Array("GIDE", "7", "7. Reginald"); sites[10] = new Array("GIDE", "8", "8. McFarlane&East"); sites[11] = new Array("GIDE", "9", "9. East Road North"); sites[12] = new Array("GIDE", "10", "10. Fillongley"); sites[13] = new Array("GIDE", "11", "11. Komas Ranch Pond"); sites[14] = new Array("GIGA", "1", "1. Montague Harbour Provincial Park"); sites[15] = new Array("GIHO", "1", "1. Helliwell Park -North Side"); sites[16] = new Array("GIHO", "2", "2. Whaling Station Bay"); sites[17] = new Array("GIHO", "3", "3. Middle Bay"); sites[18] = new Array("GIHO", "4", "4. Tralee Point East"); sites[19] = new Array("GIHO", "5", "5. Tralee Point West/Apple Orchard Farm"); sites[20] = new Array("GIHO", "6", "6. Grassy Point"); sites[21] = new Array("GIHO", "7", "7. Fossil Beach/Georges Farm"); sites[22] = new Array("GIHO", "8", "8. Phipps Point"); sites[23] = new Array("GIHO", "9", "9. Shingle Spit"); sites[24] = new Array("GIHO", "10", "10. Ford Cove"); sites[25] = new Array("GIHO", "11", "11. Ford Cove South"); sites[26] = new Array("GIHO", "12", "12. Heron Rocks"); sites[27] = new Array("GIHO", "13", "13. Downes Point - South"); sites[28] = new Array("GIHO", "14", "14. Dunlop Pt. - Blue Whale Lookout"); sites[29] = new Array("GIHO", "15", "15. Dunlop Point to Little Tribune Bay"); sites[30] = new Array("GIHO", "16", "16. Little Tribune Bay"); sites[31] = new Array("GIHO", "17", "17. Big Tribune Bay"); sites[32] = new Array("GIHO", "18", "18. Mushroom Beach"); sites[33] = new Array("GIHO", "19", "19. Helliwell Park -Southwest"); sites[34] = new Array("GIHO", "20", "20. Beaver Lake"); sites[35] = new Array("GIHO", "21", "21. Cape Gurney"); sites[36] = new Array("GILA", "1", "1. Facing Jelina Island"); sites[37] = new Array("GILA", "2", "2. Tucker Bay east"); sites[38] = new Array("GILA", "3", "3. Inlet - Tucker Bay east"); sites[39] = new Array("GIMA", "1", "1. Village Bay - Bennett Bay"); sites[40] = new Array("GIMA", "2", "2. Horton Bay - Dinner Bay"); sites[41] = new Array("GIPE", "1", "1. Brook's Point"); sites[42] = new Array("GIPE", "2", "2. Camp Bay"); sites[43] = new Array("GIPE", "3", "3. Cooper's Point Area"); sites[44] = new Array("GIPE", "4", "4. Shark Cove"); sites[45] = new Array("GIPE", "5", "5. Medicine Beach/Bedwell Harbour"); sites[46] = new Array("GIPE", "6", "6. Magic Lake"); sites[47] = new Array("GIPE", "7", "7. Shingle Bay"); sites[48] = new Array("GIPE", "8", "8. Otter Bay"); sites[49] = new Array("GIPE", "9", "9. Hope Bay"); sites[50] = new Array("GIPE", "10", "10. Thieves Bay"); sites[51] = new Array("GIPE", "11", "11. Browning Harbour"); sites[52] = new Array("GIPE", "12", "12. Buck Lake"); sites[53] = new Array("GIPE", "13", "13. Stanley Pt. - James Pt."); sites[54] = new Array("GIPE", "14", "14. Pearson Rd. - Welcome Bay"); sites[55] = new Array("GIPE", "15", "15. Ella Bay - Irene Bay"); sites[56] = new Array("GISA", "1", "1. Winter Cove Provincial Park"); sites[57] = new Array("GISA", "2", "2. East Point Lighthouse"); sites[58] = new Array("GISA", "3", "3. Narvaez Bay"); sites[59] = new Array("GISA", "4", "4. Taylor Point"); sites[60] = new Array("GISA", "5", "5. Breezy Bay"); sites[61] = new Array("GISA", "6", "6. Boot Cove"); sites[62] = new Array("GISA", "7", "7. Lyall Harbour"); sites[63] = new Array("GISE", "1", "1. N. Secretary Island"); sites[64] = new Array("GISS", "1", "1. Goat Island, Ganges Inner Harbour"); sites[65] = new Array("GISS", "2", "2. Prevost Island/Annette Inlet"); sites[66] = new Array("GISS", "3", "3. Nose Point"); sites[67] = new Array("GISS", "4", "4. Burgoyne Bay"); sites[68] = new Array("GISS", "5", "5. Fulford Harbour"); sites[69] = new Array("GITE", "1", "1. Gillies Bay"); sites[70] = new Array("GIVA", "1", "1. Valdez Island East"); sites[71] = new Array("LMSQ", "1", "1. Outer Estuary (OE)"); sites[72] = new Array("LMSQ", "2", "2. West Delta (WD)"); sites[73] = new Array("LMSQ", "3", "3. Squamish River (SR)"); sites[74] = new Array("LMSQ", "4", "4. Training Dyke 1 (TD1)"); sites[75] = new Array("LMSQ", "5", "5. Training Dyke2 (TD2)"); sites[76] = new Array("LMSQ", "6", "6. Training Dyke 3 (TD3)"); sites[77] = new Array("LMSQ", "7", "7. East of Fill 1 (EF1)"); sites[78] = new Array("LMSQ", "8", "8. Central Channel (CC)"); sites[79] = new Array("LMSQ", "9", "9. East of Fill 2 (EF2)"); sites[80] = new Array("LMSQ", "10", "10. Crescent Slough (CS)"); sites[81] = new Array("LMSQ", "11", "11. East Channel (EC)"); sites[82] = new Array("LMSQ", "12", "12. East Marsh (EM)"); sites[83] = new Array("LMSQ", "13", "13. Bridge Pond (BP)"); sites[84] = new Array("LMSQ", "14", "14. North Field1 (NF1)"); sites[85] = new Array("LMSQ", "15", "15. North Field2 (NF2)"); sites[86] = new Array("LMSQ", "16", "16. Site A (SA)"); sites[87] = new Array("LMSQ", "17", "17. Isolated Marsh (IM)"); sites[88] = new Array("LMSQ", "18", "18. Mamquam Channel1 (MC1)"); sites[89] = new Array("LMSQ", "19", "19. Mamquam Channel2 (MC2)"); sites[90] = new Array("LMSQ", "20", "20. Dentville Wetland (DW)"); sites[91] = new Array("LMSQ", "21", "21. Woodfibre Ferry Route (WF)"); sites[92] = new Array("LMVN", "1", "1. Mud Bay"); sites[93] = new Array("LMVN", "2", "2. Boundary Bay 112th St."); sites[94] = new Array("LMVN", "3", "3. Boundary Bay 88th-104th"); sites[95] = new Array("LMVN", "4", "4. Boundary Bay 72nd - 88th St."); sites[96] = new Array("LMVN", "5", "5. Boundary Bay 12th-64th"); sites[97] = new Array("LMVN", "6", "6. Centennial Beach"); sites[98] = new Array("LMVN", "7", "7. Tsawwassen SW"); sites[99] = new Array("LMVN", "8", "8. Roberts Bank S"); sites[100] = new Array("LMVN", "9", "9. Roberts Bank Coal Port N"); sites[101] = new Array("LMVN", "10", "10. Reifel"); sites[102] = new Array("LMVN", "11", "11. Lulu South"); sites[103] = new Array("LMVN", "12", "12. Lulu North"); sites[104] = new Array("LMVN", "13", "13. YVR"); sites[105] = new Array("LMVN", "14", "14. Iona"); sites[106] = new Array("LMVN", "15", "15. Musqueam"); sites[107] = new Array("LMVN", "16", "16. UBC Booming Grounds"); sites[108] = new Array("LMVN", "17", "17. Wreck Beach"); sites[109] = new Array("LMVN", "18", "18. Tower Beach"); sites[110] = new Array("LMVN", "19", "19. Spanish Banks"); sites[111] = new Array("LMVN", "20", "20. Locarno Beach"); sites[112] = new Array("LMVN", "21", "21. Jericho Beach"); sites[113] = new Array("LMVN", "22", "22. Kitsilano West"); sites[114] = new Array("LMVN", "23", "23. Kitsilano East"); sites[115] = new Array("LMVN", "24", "24. Kitsilano Point"); sites[116] = new Array("LMVN", "25", "25. False Creek"); sites[117] = new Array("LMVN", "26", "26. English Bay Beach"); sites[118] = new Array("LMVN", "27", "27. Ferguson Point - 3rd Beach"); sites[119] = new Array("LMVN", "28", "28. Prospect Point"); sites[120] = new Array("LMVN", "29", "29. Ambleside"); sites[121] = new Array("LMVN", "30", "30. Stanley Park East"); sites[122] = new Array("LMVN", "31", "31. Coal Harbour"); sites[123] = new Array("LMVN", "32", "32. Vancouver Harbour West"); sites[124] = new Array("LMVN", "33", "33. Vancouver Harbour East"); sites[125] = new Array("LMVN", "34", "34. Vancouver 2nd Narrows"); sites[126] = new Array("LMVN", "35", "35. Burnaby 2nd Narrows"); sites[127] = new Array("LMVN", "36", "36. Burnaby refineries"); sites[128] = new Array("LMVN", "37", "37. Barnet West"); sites[129] = new Array("LMVN", "38", "38. Barnet East"); sites[130] = new Array("LMVN", "39", "39. Rocky Point - Port Moody"); sites[131] = new Array("LMVN", "40", "40. Ioco"); sites[132] = new Array("LMVN", "41", "41. Belcara Park"); sites[133] = new Array("LMVN", "42", "42. Belcara"); sites[134] = new Array("LMVN", "43", "43. Woodlands"); sites[135] = new Array("LMVN", "44", "44. Deep Cove"); sites[136] = new Array("LMVN", "45", "45. Dollarton East"); sites[137] = new Array("LMVN", "46", "46. Dollarton West"); sites[138] = new Array("LMVN", "47", "47. Maplewood"); sites[139] = new Array("LMVN", "48", "48. Neptune"); sites[140] = new Array("LMVN", "49", "49. Lonsdale East"); sites[141] = new Array("LMVN", "50", "50. Lonsdale West"); sites[142] = new Array("LMVN", "51", "51. West Vancouver"); sites[143] = new Array("LMVN", "52", "52. Dundarave"); sites[144] = new Array("LMVN", "53", "53. West Bay"); sites[145] = new Array("LMVN", "54", "54. Cypress"); sites[146] = new Array("LMVN", "55", "55. Lighthouse East"); sites[147] = new Array("LMVN", "56", "56. Lighthouse West and Grebe Islets"); sites[148] = new Array("LMVN", "58", "58. Eagle Harbour"); sites[149] = new Array("LMVN", "59", "59. Batchelor Pt. - Gleneagles"); sites[150] = new Array("LMVN", "60", "60. Whytecliff"); sites[151] = new Array("LMVN", "61", "61. Whytecliff North"); sites[152] = new Array("LMVN", "62", "62. Horseshoe Bay"); sites[153] = new Array("LMVN", "63", "63. Sunset Beach"); sites[154] = new Array("LMVN", "64", "64. Lost Lagoon"); sites[155] = new Array("LMVN", "65", "65. Tsawwassen NW"); sites[156] = new Array("LMVN", "66", "66. Noons Creek to Ioco Community Ctr"); sites[157] = new Array("LMVN", "67", "67. Jericho Pond"); sites[158] = new Array("LMVN", "68", "68. Brunswick Point"); sites[159] = new Array("LMWR", "1", "1. Little Campbell River to East Pier"); sites[160] = new Array("LMWR", "2", "2. East Pier to West Promenade"); sites[161] = new Array("LMWR", "3", "3. West Promenade to 131st Street"); sites[162] = new Array("LMWR", "4", "4. 131st Street to 1001 steps"); sites[163] = new Array("LMWR", "5", "5. 1001 steps to Beecher Street"); sites[164] = new Array("LMWR", "6", "6. Beecher Street to Blackie Spit"); sites[165] = new Array("LMWR", "7", "7. Little Campbell River - Peace Arch"); sites[166] = new Array("NCKI", "1", "1. Kitimat"); sites[167] = new Array("NCKI", "2", "2. Minnette Bay"); sites[168] = new Array("NCKI", "3", "3. Douglas Channel - Mkbay North"); sites[169] = new Array("NCPO", "1", "1. Porcher Island"); sites[170] = new Array("NCPR", "1", "1. Prince Rupert"); sites[171] = new Array("NCPR", "2", "2. Triple Island"); sites[172] = new Array("QCMA", "1", "1. North Beach/Rose Spit"); sites[173] = new Array("QCMA", "2", "2. Delkatla"); sites[174] = new Array("QCMA", "3", "3. Sangan River West"); sites[175] = new Array("QCMA", "4", "4. Sangan River East"); sites[176] = new Array("QCSK", "1", "1. Sandspit"); sites[177] = new Array("QCSK", "2", "2. Cape Chroustcheff (Sandspit)"); sites[178] = new Array("QCSK", "3", "3. Balch Islands"); sites[179] = new Array("QCSK", "4", "4. Sandspit reduced"); sites[180] = new Array("QCTL", "1", "1. Tlell"); sites[181] = new Array("QCTL", "2", "2. Tlell - Tlell River"); sites[182] = new Array("SCBI", "1", "1. Eagle Cliff Beach"); sites[183] = new Array("SCBI", "2", "2. September Morn Beach"); sites[184] = new Array("SCBI", "3", "3. Millers Landing"); sites[185] = new Array("SCBI", "4", "4. Smuggler's Cove"); sites[186] = new Array("SCBI", "5", "5. Lagoon"); sites[187] = new Array("SCBI", "6", "6. Grafton Bay and Hutt Island"); sites[188] = new Array("SCBI", "7", "7. Snug Cove - south side"); sites[189] = new Array("SCBI", "8", "8. Hood Point"); sites[190] = new Array("SCBI", "9", "9. Roger Curtis and Tunstall Bay"); sites[191] = new Array("SCBI", "10", "10. Seymour Bay"); sites[192] = new Array("SCBI", "11", "11. Bowen Bay Holdings"); sites[193] = new Array("SCBI", "12", "12. Deep Bay"); sites[194] = new Array("SCBI", "13", "13. Killarny Lake"); sites[195] = new Array("SCBI", "14", "14. Echo Bay - Arbutus Bay"); sites[196] = new Array("SCGI", "1", "1. Chaster Beach"); sites[197] = new Array("SCGI", "2", "2. Gospel Rock"); sites[198] = new Array("SCGI", "3", "3. Wakefield Creek"); sites[199] = new Array("SCGI", "4", "4. Roberts Creek - North"); sites[200] = new Array("SCGI", "5", "5. Roberts Creek - South"); sites[201] = new Array("SCGI", "6", "6. Davis Bay and Mission Point"); sites[202] = new Array("SCPH", "1", "1. Middlepoint Bight"); sites[203] = new Array("SCPH", "2", "2. Irvines Landing"); sites[204] = new Array("SCPR", "1", "1. Westview (Barge Dock) to Grief Point"); sites[205] = new Array("SCPR", "2", "2. Sliammon"); sites[206] = new Array("SCPR", "3", "3. Lang Creek breakwater- Stillwater Bay"); sites[207] = new Array("SCPR", "4", "4. Lang Creek Estuary"); sites[208] = new Array("SCSE", "1", "1. Porpoise Bay"); sites[209] = new Array("SCSE", "2", "2. Sargeant Bay"); sites[210] = new Array("SCSE", "3", "3. Halfmoon Bay - Outer"); sites[211] = new Array("SCSE", "4", "4. Halfmoon Bay - Inner"); sites[212] = new Array("VIBC", "1", "1. Oyster Bay"); sites[213] = new Array("VIBC", "2", "2. Oyster River Estuary"); sites[214] = new Array("VIBC", "3", "3. Black Creek Estuary"); sites[215] = new Array("VIBC", "4", "4. Oyster River Park"); sites[216] = new Array("VIBM", "1", "1. Aguilar Point"); sites[217] = new Array("VIBM", "2", "2. Government Dock - Bamfield Inlet"); sites[218] = new Array("VIBM", "3", "3. Dodger Channel"); sites[219] = new Array("VICH", "1", "1. Bear Pt. To Chemainus River Estuary"); sites[220] = new Array("VICR", "1", "1. Campbell River Estuary"); sites[221] = new Array("VICV", "1", "1. Cherry Point"); sites[222] = new Array("VICV", "2", "2. Mill Bay"); sites[223] = new Array("VICV", "3", "3. Verdier Point"); sites[224] = new Array("VICV", "4", "4. Duncan Sewage Lagoons"); sites[225] = new Array("VICV", "5", "5. Quamachan Lake"); sites[226] = new Array("VICX", "1", "1. Little River"); sites[227] = new Array("VICX", "2", "2. Goose Spit - Inside"); sites[228] = new Array("VICX", "3", "3. Kye Bay"); sites[229] = new Array("VICX", "4", "4. Dyke Road"); sites[230] = new Array("VICX", "5", "5. Courtenay Air Park"); sites[231] = new Array("VICX", "6", "6. Millard Creek/Piercy Estuary"); sites[232] = new Array("VICX", "7", "7. Wrecks Beach to Trent Beach"); sites[233] = new Array("VICX", "8", "8. Gartley Beach"); sites[234] = new Array("VICX", "9", "9. Union Bay and Log Sort"); sites[235] = new Array("VICX", "10", "10. Edgewater Bay"); sites[236] = new Array("VICX", "11", "11. Comox Bay Farm"); sites[237] = new Array("VICX", "12", "12. Beach Drive"); sites[238] = new Array("VICX", "13", "13. Kitty-Coleman Beach/Seal Bay"); sites[239] = new Array("VICX", "14", "14. Goose Spit - Outside"); sites[240] = new Array("VICX", "15", "15. Point Holmes"); sites[241] = new Array("VIJR", "1", "1. Jordan River"); sites[242] = new Array("VIMA", "1", "1. Malcolm Point"); sites[243] = new Array("VIMA", "2", "2. Shiels Bay - Malcolm Island"); sites[244] = new Array("VIMA", "3", "3. Dickenson Pt (graveyard)"); sites[245] = new Array("VIMA", "4", "4. Rough Bay"); sites[246] = new Array("VIMA", "5", "5. East Kaleva"); sites[247] = new Array("VINN", "1", "1. Nanoose Estuary"); sites[248] = new Array("VINN", "2", "2. Nanoose Bay"); sites[249] = new Array("VINN", "3", "3. Entrance Rocks to Blunden Pt."); sites[250] = new Array("VINN", "4", "4. Blunden Pt. To Trailer Park"); sites[251] = new Array("VINN", "5", "5. Icarus Point"); sites[252] = new Array("VINN", "6", "6. Nanaimo Waterfront"); sites[253] = new Array("VINN", "7", "7. Neck Point"); sites[254] = new Array("VINN", "8", "8. Page Lagoon/Lagoon Head"); sites[255] = new Array("VINN", "9", "9. Horswell Bluff"); sites[256] = new Array("VINN", "10", "10. Departure Bay"); sites[257] = new Array("VINN", "11", "11. Newcastle Island Passage"); sites[258] = new Array("VINN", "12", "12. McKay Channel"); sites[259] = new Array("VINN", "13", "13. Nanaimo River Estuary - West"); sites[260] = new Array("VINN", "14", "14. Protection Island - Outer"); sites[261] = new Array("VINN", "15", "15. Nanaimo River Estuary - East"); sites[262] = new Array("VIPA", "1", "1. China Creek"); sites[263] = new Array("VIPA", "2", "2. Somas Estuary"); sites[264] = new Array("VIPA", "3", "3. Cous Cous Creek"); sites[265] = new Array("VIPM", "1", "1. M&B Breakwater"); sites[266] = new Array("VIPM", "2", "2. Viner River Estuary"); sites[267] = new Array("VIPQ", "1", "1. Englishman River Estuary"); sites[268] = new Array("VIPQ", "2", "2. Craig Bay to Rathtrevor"); sites[269] = new Array("VIPQ", "3", "3. French Creek to Eaglecrest Beach"); sites[270] = new Array("VIPQ", "4", "4. Deep Bay"); sites[271] = new Array("VIPQ", "5", "5. Big Qualicum River Estuary"); sites[272] = new Array("VIPQ", "6", "6. Madrona Point to Wall Beach"); sites[273] = new Array("VIPQ", "7", "7. Little Qualicum Estuary"); sites[274] = new Array("VIPQ", "8", "8. Wall beach to Dorchas Point"); sites[275] = new Array("VIPQ", "9", "9. Northwest Bay -REMOVED AS DOUBLE SITE"); sites[276] = new Array("VIPQ", "10", "10. Nanoose Bay2 -REMOVED AS DOUBLE SITE"); sites[277] = new Array("VIPR", "1", "1. Stockham Island"); sites[278] = new Array("VIPR", "2", "2. Tofino"); sites[279] = new Array("VIPR", "3", "3. Browning Passage"); sites[280] = new Array("VIPR", "4", "4. Chesterman Bay"); sites[281] = new Array("VIPR", "5", "5. Long Beach North"); sites[282] = new Array("VIPR", "6", "6. Long Beach South"); sites[283] = new Array("VIPR", "7", "7. Quisitis Point"); sites[284] = new Array("VIPR", "8", "8. Grice Bay"); sites[285] = new Array("VIPR", "9", "9. Kvarno Island"); sites[286] = new Array("VIPR", "10", "10. Olsen Bay - West Ucluelet Inlet"); sites[287] = new Array("VIPR", "11", "11. Ittatsoo Indian Reserve"); sites[288] = new Array("VIPR", "12", "12. Spring Cove"); sites[289] = new Array("VIPR", "13", "13. Amphitrite Point"); sites[290] = new Array("VIPR", "14", "14. Jensens Bay Mudflats"); sites[291] = new Array("VIPR", "15", "15. Burley's B&B - PetroCan Dock"); sites[292] = new Array("VITC", "1", "1. Telegraph Cove"); sites[293] = new Array("VIVI", "1", "1. French Beach"); sites[294] = new Array("VIVI", "2", "2. Sooke Bay"); sites[295] = new Array("VIVI", "3", "3. Whiffin Spit"); sites[296] = new Array("VIVI", "4", "4. Sooke Harbour"); sites[297] = new Array("VIVI", "5", "5. Sooke Basin North"); sites[298] = new Array("VIVI", "6", "6. Sooke Basin South"); sites[299] = new Array("VIVI", "7", "7. Iron Mine Bay"); sites[300] = new Array("VIVI", "8", "8. Beechey Head"); sites[301] = new Array("VIVI", "9", "9. Becher Bay"); sites[302] = new Array("VIVI", "10", "10. Whirl Bay"); sites[303] = new Array("VIVI", "11", "11. Rocky Pt./Eemdyk Pass"); sites[304] = new Array("VIVI", "12", "12. Race Rocks"); sites[305] = new Array("VIVI", "13", "13. Pedder Bay inner"); sites[306] = new Array("VIVI", "14", "14. Pedder Bay outer"); sites[307] = new Array("VIVI", "15", "15. Parry Bay"); sites[308] = new Array("VIVI", "16", "16. Witty's Lagoon"); sites[309] = new Array("VIVI", "17", "17. Albert Head Lagoon"); sites[310] = new Array("VIVI", "18", "18. Esquimalt Lagoon"); sites[311] = new Array("VIVI", "19", "19. Esquimalt Harbour"); sites[312] = new Array("VIVI", "20", "20. Portage Inlet"); sites[313] = new Array("VIVI", "21", "21. The Gorge"); sites[314] = new Array("VIVI", "22", "22. Victoria Harbour"); sites[315] = new Array("VIVI", "23", "23. Ogden Pt. - Clover Pt."); sites[316] = new Array("VIVI", "24", "24. Clover Pt. - Harling Pt."); sites[317] = new Array("VIVI", "25", "25. Harling Pt. - Gonzales Pt."); sites[318] = new Array("VIVI", "26", "26. Gonzales Pt. - Mary Tod I."); sites[319] = new Array("VIVI", "27", "27. Mary Tod I. - Cattle Pt."); sites[320] = new Array("VIVI", "28", "28. Cattle Pt. - Flower I."); sites[321] = new Array("VIVI", "29", "29. Ten-mile Pt. - Telegraph Cove"); sites[322] = new Array("VIVI", "30", "30. Queenswood - Gordon Head"); sites[323] = new Array("VIVI", "31", "31. Gordon Head - Mt. Douglas"); sites[324] = new Array("VIVI", "32", "32. Cordova Bay and Sayward Beach"); sites[325] = new Array("VIVI", "34", "34. Martindale"); sites[326] = new Array("VIVI", "35", "35. Island View Beach - North"); sites[327] = new Array("VIVI", "36", "36. Saanichton Bay"); sites[328] = new Array("VIVI", "37", "37. Bazan Bay"); sites[329] = new Array("VIVI", "38", "38. Sidney - Roberts Pt."); sites[330] = new Array("VIVI", "39", "39. Roberts Bay"); sites[331] = new Array("VIVI", "40", "40. Tsehum Harbour"); sites[332] = new Array("VIVI", "41", "41. Canoe Bay"); sites[333] = new Array("VIVI", "42", "42. Swartz Bay"); sites[334] = new Array("VIVI", "43", "43. Deep Cove/Towner Bay"); sites[335] = new Array("VIVI", "44", "44. Pat Bay"); sites[336] = new Array("VIVI", "45", "45. Ardmore/Coles Bay"); sites[337] = new Array("VIVI", "46", "46. Brentwood Bay"); sites[338] = new Array("VIVI", "47", "47. Tod Inlet"); sites[339] = new Array("VIVI", "48", "48. Willis Pt. - Squally Rch."); sites[340] = new Array("VIVI", "49", "49. Goldstream"); sites[341] = new Array("VIVI", "50", "50. Bamberton"); sites[342] = new Array("VIVI", "51", "51. Elk Lake/Beaver Lake"); sites[343] = new Array("VIVI", "52", "52. Point No Point"); sites[344] = new Array("VIVI", "53", "53. Island View Beach - South"); sites[345] = new Array("VIVI", "54", "54. Saxe Point to Macaulay Point"); sites[346] = new Array("VIVI", "55", "55. Towner Pt - Deep Cove"); sites[347] = new Array("VIVI", "56", "56. Cloake Hill"); sites[348] = new Array("VIZE", "1", "1. Zeballos Bay/Inlet"); function refreshRegions(f) { clearSelect(f.region); clearSelect(f.site); f.region.options[0] = new Option("All regions",""); f.site.options[0] = new Option("All sites",""); if (f.area.selectedIndex != 0) { j = 1; for (i = 0; i < regions.length; i++) { if (regions[i][0] == f.area.options[f.area.selectedIndex].value) { f.region.options[j] = null; f.region.options[j] = new Option(regions[i][2], regions[i][1]); j++; } } } } function refreshSites(f) { clearSelect(f.site); f.site.options[0] = new Option("All sites",""); if (f.region.selectedIndex != 0) { j = 1; for (i = 0; i < sites.length; i++) { if (sites[i][0] == f.region.options[f.region.selectedIndex].value) { f.site.options[j] = null; f.site.options[j] = new Option(sites[i][2], sites[i][1]); j++; } } } } function clearSelect(l) { while (l.length > 0) { l.options[0] = null; } } function updateRegion(s) { for (i = 0; i < f.region.options.length; i++) { if (s == f.region.options[i].value) f.region.selectedIndex = i; } } function updateSite(s) { for (i = 0; i < f.site.options.length; i++) { if (s == f.site.options[i].value) f.site.selectedIndex = i; } } /* this line is used to prevent the use of the back button */ window.history.forward(1); function checkValue(v, t, mn, mx, l) { if (l != 'FR') l = 'EN'; if (v.value == '') return true; if (t == 'number' || t == 'float') { v.value = getCleanNumber(v); if (isNaN(v.value)) { if (l == 'EN') alert('You must enter a valid number.'); else alert('Vous devez entrer un chiffre'); v.value = ''; v.focus(); return false; } else if (!(parseFloat(v.value) < parseFloat(mn) || parseFloat(v.value) > parseFloat(mx))) return true; // else if (t == 'number') v.value = parseInt(v.value); // else if (t == 'float') v.value = parseFloat(v.value); } else { v.value = getCleanString(v); if (!(v.value < mn || v.value > mx)) return true; } if (mn != null && mx == null) { if (l == 'EN') alert('This value is smaller than\nthe minimum allowed: ' + mn); else alert('Cette valeur est plus petite que\nle minimum permis: ' + mn); } else if (mn == null && mx != null) { if (l == 'EN') alert('This value is larger than\nthe maximum allowed: ' + mx); else alert('Cette valeur est plus grande que\nle maximum permis: ' + mx); } else if (mn != null && mx != null) { if (l == 'EN') alert('This value is outside the \nallowed range ' + mn + '-' + mx +'.'); else alert('Cette valeur doit être\ncomprise entre ' + mn + '-' + mx +'.'); } v.value = ''; v.focus(); return false; } function getCleanNumber(b) { if (b.value=='') return ''; while (b.value.length > 0 && b.value.substr(0,1) == ' ') b.value = b.value.substr(1,b.value.length); while (b.value.length > 0 && b.value.substr(b.value.length-1,b.value.length) == ' ') b.value = b.value.substr(0,b.value.length-1); while (b.value.length > 1 && b.value.substr(0,1) == '0') b.value = b.value.substr(1,b.value.length); i = b.value.indexOf(','); if (i >= 0) b.value = b.value.substr(0,i)+"."+b.value.substr(i+1,b.value.length); return b.value; } function getCleanString(b) { while (b.value.length > 0 && b.value.substr(0,1) == ' ') b.value = b.value.substr(1,b.value.length); while (b.value.length > 0 && b.value.substr(b.value.length-1,b.value.length) == ' ') b.value = b.value.substr(0,b.value.length-1); return b.value; } function checkDate(yr, mo, d) { if (yr.value == '' || mo.value == '' || d.value=='') { alert('You must enter a complete date before submitting this form.'); d.focus(); return false; } d.value = parseInt(getCleanNumber(d)); if (mo.length > 1) m = mo.options[mo.selectedIndex].value; else m = mo.value; if (m == '') { alert('You must select a month'); d.value = ''; d.focus(); return false; } if (parseInt(yr/4) == yr/4) feb = 29; else feb = 28; if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) return checkValue(d, 'number', 1, 31); else if (m == 4 || m == 6 || m == 9 || m == 11) return checkValue(d, 'number', 1, 30); else if (m == 2) return checkValue(d, 'number', 1, feb); else return false; } function autotab(input,len) { if(input.value.length >= len) { input.value = input.value.slice(0, len); input.form[(getIndex(input)+1) % input.form.length].focus(); } } function getIndex(input) { var index = -1, i = 0, found = false; while (i < input.form.length && index == -1) if (input.form[i] == input)index = i; else i++; return index; } function checkRegionCode(f) { if (f.value == '') return; f.value = f.value.toUpperCase(); found = false; for (i = 0; i < regions.length; i++) { if (regions[i][1] == f.value) {found = true; break;} } if (!found) { alert('This is not a valid region code'); f.value=''; f.focus(); } } function checkSiteNumber(r,f) { if (f.value == '') return; else if (r.value == '') { alert('You must enter a region code first'); f.value = ''; r.focus(); return; } found = false; max = 0; for (i = 0; i < sites.length; i++) { if (sites[i][0] == r.value) { if (parseInt(sites[i][1]) > max) max = sites[i][1]; if (sites[i][1] == f.value) {found = true; break;} } } if (!found) { alert('This is not a valid site number for the region ' + r.value + '.' + (parseInt(f.value) > max?'\nThe highest site number for this region is ' + max + '.':'')); f.value=''; f.focus(); return; } } function checkstart(f) { if ((typeof(f.regioncode) != 'undefined' && f.regioncode.value == '') || (typeof(f.sitenumber) != 'undefined' && f.sitenumber.value == '')) { alert('Please enter a Region code and Site #'); f.regioncode.focus(); return false; } if (f.year.value == '' || f.month.selected == 0 || f.day.value == '') { alert('Please enter a valid date'); f.year.focus(); return false; } return true; } function checkform(f) { if (!checkstart(f)) return false; if ((f.starthr.value == '' || f.endhr.value == '') && !confirm('You did not enter a start and end time. Please confirm that this information is unknown, or click Cancel and return to the form.')) { f.starthr.focus(); return false; } if (f.weather[0].checked && !confirm('Please confirm that the weather conditions are unknown, or click Cancel to return to the form and complete this information.')) { f.weather[0].focus(); return false; } if (f.precip[0].checked && !confirm('Please confirm that the precipitation conditions are unknown, or click Cancel to return to the form and complete this information.')) { f.precip[0].focus(); return false; } if (f.seastate[0].checked && !confirm('Please confirm that the Sea State is unknown, or click Cancel to return to the form and complete this information.')) { f.seastate[0].focus(); return false; } if (f.tidestate[0].checked && !confirm('Please confirm that the Tide State is unknown, or click Cancel to return to the form and complete this information.')) { f.tidestate[0].focus(); return false; } if (f.tidemovement[0].checked && !confirm('Please confirm that the Tide Movement is unknown, or click Cancel to return to the form and complete this information.')) { f.tidemovement[0].focus(); return false; } if (f.visibility[0].checked && !confirm('Please confirm that the Visibility is unknown, or click Cancel to return to the form and complete this information.')) { f.visibility[0].focus(); return false; } if (!f.visibility[0].checked && !f.visibility[6].checked && f.poorvisib[0].checked && !confirm('You indicated that the visibility was reduced (less than 1km) but did not specify why. Click Ok to confirm that this information is unknown or click Cancel to return to the form and change this information.')) { f.poorvisib[0].focus(); return false; } if (f.equipment[0].checked && !confirm('Please confirm that the Equipment is unknown, or click Cancel to return to the form and complete this information.')) { f.equipment[0].focus(); return false; } if (f.poorvisib[4].checked && f.poorvisibother.value == '' && !confirm('You indicated that there was another reason for the poor visibility, but did not specify what it was. Click OK to confirm that this information is unknown, or click Cancel to return to the form and complete this information.')) { f.poorvisibother.focus(); return false; } if (f.OtherActivityNumber.value != '' && f.OtherActivityName == '' && !confirm('You indicated that there was other types of human activities, but did not specify what they were. Click OK to confirm that this information is unknown, or click Cancel to return to the form and complete this information.')) { f.equipment[0].focus(); return false; } if (!f.noactivity.checked && f.Walkers.value == '' && f.Dogs.value == '' && f.PowerBoats.value == '' && f.UnpoweredBoats.value == '' && f.OtherActivityNumber.value == '') { if (confirm('You entered no count of human activity, but did not confirm by checking the No Activity box. Click OK to check the No Activity Box or click Cancel to return to the form and complete this information.')) { f.noactivity.checked = true; } else { f.noactivity.focus(); return false; } } return true; } function checkNoActivity(n) { if (n.checked == false) return; f = self.document.forms[0]; if (f.Walkers.value != '' || f.Dogs.value != '' || f.PowerBoats.value != '' || f.UnpoweredBoats.value != '' || f.OtherActivityNumber.value != '') { alert('You cannot indicate that there is \'no activity\' because you already provided some counts. If you want to check this box, you must first clear the counts of human activities.'); n.checked = false; } }