// common javascript for preliminary hrva community self-assessment tool
// Brad Judson
//Ver January 26 2005 0920

var webURL = "http://www.pep.bc.ca/hrva/";
//var webURL = "http://www.geoinfosolutions.com/HRVA/";
//var webURL = "";
var numHazards = 25;
var hazardname;
var currenthazard;
var authority;
var user;
var version;

var saveURL = "http://www.pep.bc.ca/hrva/hazard.html?hazarray=";




data_names = new Array();
data_values = new Array();
var data_count = 0;

ds = location.search;
ds+= "&";  // PUT A DUMMY & AT END OF STRING, FOR SEARCH PURPOSES
var sl = ds.length;
var startidx = 1;
var endidx = 0;
var cstring;
var dname;
var dvalue;

if (sl > 1) {

do 
{
endidx = ds.indexOf("&",startidx);
if (endidx !=-1) {
  cstring = ds.substring(startidx, endidx); 
//  alert("cstring in main code is "+cstring)
  startidx = endidx + 1;
  data_names[data_count]  =  get_data_name(cstring);
  data_values[data_count] = get_data_value(cstring);

  data_count++};
}
while (endidx !=-1 & endidx != (ds.length -1));

}


function get_data_name(cstring) {
var m = cstring.indexOf("=",0)
//alert(m)
if (m != -1) {
  return cstring.substring(0, m)
  } else {
  return null}
}

function get_data_value(cstring) {
var converted
var m = cstring.indexOf("=", 0 )

if (m != -1) {
  converted = cstring.substring(m+1, cstring.length)
  } else  {
  return null }

// If it reaches here, a value string has been found. Now remove '+' space-placeholders, and 
// unescape to remove Unicode strings.

do {
converted=converted.replace("+"," ")}
while (converted.indexOf("+",0) != -1);

converted = unescape(converted)

return converted 

} // end of function.

var ArrayArg;

function substring2(string, start, length) {
//used like the mid$ function in VB
    return string.substring(start, start+length);
}

//declare hrva array 

	var hrva=new Array(numHazards);		//25 hazards see numHazards constant at top
	for (i=0; i <numHazards; i++){			
		hrva[i]=new Array(16);	//16 parameters for each hazard (last is a comma)
	}
//declare otherHazards array
//	var otherHazs=new Array(numHazards - 23);
	var otherHazs=new Array(2);

//declare otherHazardsName array

	var otherHazsName=new Array(7);

	otherHazsName[0]="OTHER";
	otherHazsName[1]="FIRE - URBAN/RURAL";
	otherHazsName[2]="FAMINE - DROUGHT";
	otherHazsName[3]="PEST INFESTATION";
	otherHazsName[4]="PLANT DISEASE";
	otherHazsName[5]="SPACE OBJECTS CRASH";
	otherHazsName[6]="WARFARE";


function loadArray(userarray){
	//load hrva array from the string
	//fill in the array used to hold all the user input from the argument userarray
	for (i=0; i <numHazards; i++){
		for (j=0; j <16; j++){			
			hrva[i][j]=substring2(userarray,(i * 16)  + j,1);	
		}
	}
	otherHazs[0]=substring2(userarray,(numHazards * 16) + 0,1);
	otherHazs[1]=substring2(userarray,(numHazards * 16) + 1,1);


	hazard[23][0] = otherHazsName[otherHazs[0]];
		hazard[23][1] = "";
	hazard[24][0] = otherHazsName[otherHazs[1]];
		hazard[24][1] = "";


//	alert(hrva[22][1]);
//	alert("load " + otherHazs[0]);
}

function passArray(){
//create the argument string userarray from the hrva[][] array
	var userarray = ""
	for (i=0; i <numHazards; i++){
		for (j=0; j <16; j++){			
			userarray = userarray + hrva[i][j];	
		}
	}
	userarray = userarray + otherHazs[0] + otherHazs[1]; //two optional hazards
//	alert("pass " + otherHazs[0]);
	return userarray;
}

//create hazard array: hazard name, description
	var hazard=new Array(numHazards);		//numHazards hazards
	for (i=0; i <numHazards; i++){			
		hazard[i]=new Array(2);	//2 parameters for each hazard
	}
	//load hazard list name and description
	hazard[0][0] = "AVALANCHE";
		hazard[0][1] = "";
	hazard[1][0] = "CRITICAL FACILITY FAILURE";
		hazard[1][1] = "Hospitals, police, fire, ambulance, shelters";
	hazard[2][0] = "DAM FAILURE";
		hazard[2][1] = "Including foundations and abutments";
	hazard[3][0] = "DANGEROUS GOODS SPILL";
		hazard[3][1] = "Chemical, oil, hazardous waste, radiation";
	hazard[4][0] = "EARTHQUAKE";
		hazard[4][1] = "";
	hazard[5][0] = "EPIDEMIC - ANIMAL";
		hazard[5][1] = "Foreign animal disease";
	hazard[6][0] = "EPIDEMIC - HUMAN";
		hazard[6][1] = "Pandemic flu";
	hazard[7][0] = "EXPLOSION OR EMISSIONS";
		hazard[7][1] = "Gas wells, pipelines";
	hazard[8][0] = "FIRE - INDUSTRIAL";
		hazard[8][1] = "";
	hazard[9][0] = "FIRE - INTERFACE & WILDFIRE";
		hazard[9][1] = "";
	hazard[10][0] = "FLOOD";
		hazard[10][1] = "";
	hazard[11][0] = "INFRASTRUCTURE FAILURE";
		hazard[11][1] = "Power, water, telephone, gas, transportation";
	hazard[12][0] = "LANDSLIDE, DEBRIS FLOW or SUBSIDENCE";
		hazard[12][1] = "";
	hazard[13][0] = "MINE ACCIDENT";
		hazard[13][1] = "";
	hazard[14][0] = "SEVERE WEATHER";
		hazard[14][1] = "Wind, tornado, lightning, rain, hail, fog, ice, snow, cold, heatwave, drought";
	hazard[15][0] = "STORM SURGE";
		hazard[15][1] = "";
	hazard[16][0] = "TERRORISM";
		hazard[16][1] = "Terrorism, hostage-taking, civil disturbance";
	hazard[17][0] = "TRANSPORT ACCIDENT - AIR";
		hazard[17][1] = "";
	hazard[18][0] = "TRANSPORT ACCIDENT - MARINE";
		hazard[18][1] = "";
	hazard[19][0] = "TRANSPORT ACCIDENT - RAIL";
		hazard[19][1] = "";
	hazard[20][0] = "TRANSPORT ACCIDENT - ROAD";
		hazard[20][1] = "";
	hazard[21][0] = "TSUNAMI";
		hazard[21][1] = "";
	hazard[22][0] = "VOLCANO ERUPTIONS";
		hazard[22][1] = "Pyroclastic or mud flows, ash";



//1. Vulnerable population
//– density, age, gender, ethnicity, social-economic status;
//2. Close proximity of high risk areas to hazard
//– people, buildings, infrastructure, property, environment;
//3. Inadequate evacuation plans, maps, routes or shelters;
//4. Inadequate alert and notification plan;
//5. Poor, incomplete or dated risk analysis, maps or scenarios;
//6. Inadequate hazard specific contingency plans; or

//declare vulnerability type array
	var vulnerability=new Array();		//6 vulnerabilites
	for (i=0; i <6; i++){			
		vulnerability[i]=new Array(2);	//2 parameters for each vulnerability
	}

//	vulnerability name, description

	//load vulnerability list name and description
	vulnerability[0][0] = "VULNERABLE POPULATION";
		vulnerability[0][1] = "Density, age, gender, ethnicity, social-economic status";
	vulnerability[1][0] = "VULNERABLE AREAS CLOSE TO HAZARD";
		vulnerability[1][1] = "People, buildings, infrastructure, property, environment";
	vulnerability[2][0] = "INADEQUATE ALERT OR EVACUATION PLANS";
		vulnerability[2][1] = "Dated notification list, inadequate maps, routes or shelters";
	vulnerability[3][0] = "LIMITED CAPABILITY TO RESPOND OR RECOVER";
		vulnerability[3][1] = "Inadequate resources, training or equipment";
	vulnerability[4][0] = "DATED RISK ANALYSIS, RESPONSE OR RECOVERY PLANS";
		vulnerability[4][1] = "";
	vulnerability[5][0] = "INADEQUATE HAZARD-SPECIFIC CONTINGENCY PLANS";
		vulnerability[5][1] = "If not covered by the general emergency response plan";


//declare consequence type array 

	var impact=new Array(7);		//7 consequences
	for (i=0; i <7; i++){			
		impact[i]=new Array(2);	//2 parameters for each consequence
	}

	//consequence name, description

	//load consequence list name and description
	impact[0][0] = "POTENTIAL EXTENT OF DEATHS";
		impact[0][1] = "";
	impact[1][0] = "POTENTIAL EXTENT OF INJURY";
		impact[1][1] = "Injury, health effects, suffering";
	impact[2][0] = "POTENTIAL EXTENT OF DAMAGE OR LOSSES TO CRITICAL FACILITIES";
		impact[2][1] = "Hospitals, police/fire/ambulance, schools, shelters";
	impact[3][0] = "POTENTIAL EXTENT OF DAMAGE OR LOSSES TO LIFELINES";
		impact[3][1] = "Transportation, power, water, gas, telephone";
	impact[4][0] = "POTENTIAL EXTENT OF DAMAGE OR LOSSES TO PROPERTY";
		impact[4][1] = "Public, commercial, private";
	impact[5][0] = "POTENTIAL EXTENT OF DAMAGE OR LOSSES TO ENVIRONMENT";
		impact[5][1] = "";
	impact[6][0] = "POTENTIAL EXTENT OF ECONOMIC OR SOCIAL IMPACT";
		impact[6][1] = "";

      var pix = new Array ( "tip.gif",
                            "tip2.gif")

      var numImages = 2
      var nowShowing = 0

      function cycle()
      {
        if (document.images) 
	{
	  nowShowing++
	  nowShowing = nowShowing % numImages
	}

	document.helptip.src = pix[nowShowing]  
	setTimeout( "cycle()", 1000 )
      }

