
//variables specific to site
serverroot="/"; // modify to indicate path from root of server
sitename="Achieve BC";
rightmenulevel=4; // menu level that appears on the right, instead of the left menu
sectionHeadlevel=2; // determines heading levels to show in body, not used
toplevelmenus=1; //number of top level menu items ***
rightmenucodes="aswxpdcuk"; //see xls for relevant codes
//navlevel=2; // level within which prev and next nav elements appear, unused ***

//general variables
thisurl=window.location.href; // used to test whether page is current in menu
menutext = new Array(); // holds menu heading
menulevel = new Array(); // level, with 1=first level below home
menuhref = new Array(); // url if applicable
menuon = new Array(); // computed to determine visibility
menuhome = new Array(); // root pointer for current menu ?
//menusecure = new Array(); // holds security level to query file access, not used
menutext[0]=""; // declare variable
menuposition=-1; // declare variable
templevel="0"; // declare variable
leftmenu=""; // declare variable
sectionHeadline=""; // declare variable
menupath = new Array(); // tracks path to current page 

// parse parameters out of url
if (thisurl.indexOf("?")>0)
	thisurl=thisurl.substring(0,thisurl.indexOf("?"));
// reload if "#" in url to avoid print scripting problems
if (thisurl.indexOf("#")>0)
	location.href=thisurl.substring(0,thisurl.indexOf("#")); 
	
//function addmenu(fmenuitem,fmenulevel,fmenuhref,fmenusecure)
function addmenu(fmenuitem,fmenulevel,fmenuhref)
   {
   if (menutext[0] == "")  // if first item in array
      { i=0; }
   else 
      { i=menutext.length; }
   menutext[i]=fmenuitem;
   menulevel[i]=fmenulevel;
   menuhref[i]=serverroot+fmenuhref;
   if (menulevel[i]=="c") // if contact email
		menuhref[i]="mailto:"+fmenuhref;
   if (menulevel[i]=="u") // if external url
		menuhref[i]="http://"+fmenuhref;
   if (fmenuhref=="#")
        menuhref[i]="javascript:alert(&quot;Coming soon.&quot;)";
   //menusecure[i]=fmenusecure;
   if (fmenulevel==1)
      { 
	  menuon[i]=true; //set all top level menus to true for mastermenu page without self reference
	  toplevelmenus+=1; //track how many top level menus exist
	  } 
   else
      { 
	  menuon[i]=false; 
	  }
	menuhome[i]=toplevelmenus; // track which top level is associated with this menu item
}

//declare menu items 
//these may be generated by modifying excel spreadsheet in script directory
//modify section below with as many menu items as required
//note that style sheet must support menu hierarchy as many levels deep as you declare
//style sheet naming is .menulevelX-XX where X=level and XX = act or no, depending on state.
//declare in order: menu text in quotes, menu level as integer, link in quotes
//e.g. addmenu(label,level,url);
//relative links are not possible; declare from root for relative directories
//menu items as heads without links require void text string
//e.g. addmenu(label,level,"url",security);




addmenu("Early childhood development",1,"ecd.asp");
addmenu("Pregnant, healthy and happy",2,"ECD/PHH/phh.asp");
addmenu("Prenatal preparation",3,"ECD/Expecting/prenatal_prep.asp");
addmenu("Pregnancy food guide",3,"ECD/PHH/pregnancy_food_guide.asp");
addmenu("Nutritional worksheets",3,"ECD/PHH/nutritional_worksheets.asp");
addmenu("Fridge list",3,"ECD/PHH/fridge_list.asp");
addmenu("Active living",3,"ECD/PHH/active_living.asp");
addmenu("Getting ready for baby",3,"ECD/expecting/getting_ready.asp");
addmenu("Furnishing baby's room",3,"ECD/expecting/furniture_equipment_transport.asp");
addmenu("Getting ready for birth",3,"ECD/expecting/birthing_prep.asp");
addmenu("Labour relaxation techniques",3,"ECD/Expecting/relaxation_techniques.asp");
addmenu("Booklets",3,"ECD/Expecting/babys_best_chance.asp");
addmenu("Baby: First year",2,"ECD/babys_first/first_year.asp");
addmenu("A healthy start",3,"ECD/babys_first/healthy_start.asp");
addmenu("Vision",3,"ECD/babys_first/vision.asp");
addmenu("Hearing",3,"ECD/babys_first/hearing.asp");
addmenu("Vaccinations",3,"ECD/babys_first/vaccinations.asp");
addmenu("Transporting baby",3,"ECD/expecting/baby_transportation.asp");
addmenu("Teething",3,"ECD/babys_first/teething.asp");
addmenu("Fetal alcohol spectrum disorder (FASD)",3,"ECD/babys_first/fasd.asp");
addmenu("Keeping baby safe",3,"ECD/babys_first/health_and_safety.asp");
addmenu("Feeding your baby",3,"ECD/babys_first/feeding_baby.asp");
addmenu("Introducing solid foods",3,"ECD/babys_first/solid_foods.asp");
addmenu("Food allergies",3,"ECD/babys_first/food_allergies.asp");
addmenu("Skills and abilities",2,"ECD/growth_dev/0-6months.asp");
addmenu("0-6 months",3,"ECD/growth_dev/0-6_skills_abilities_dev_table.asp");
addmenu("6 Months to one year",3,"ECD/growth_dev/6mos-1yr_skills_abilities_dev_table.asp");
addmenu("Listen and watch for progress",3,"ECD/growth_dev/listen_concerns.asp");
addmenu("Toddler 1-3",2,"ECD/toddlers/intro.asp");
addmenu("Vision",3,"ECD/toddlers/vision.asp");
addmenu("Hearing",3,"ECD/toddlers/hearing.asp");
addmenu("Teeth",3,"ECD/toddlers/teeth.asp");
addmenu("Vaccinations",3,"ECD/toddlers/vaccinations.asp");
addmenu("Keeping toddler safe",3,"ECD/toddlers/keeping_toddler_safe.asp");
addmenu("Playing and learning",3,"ECD/toddlers/playing_learning.asp");
addmenu("Toddlers and food",3,"ECD/Toddlers/toddlers_food.asp");
addmenu("Communication",3,"ECD/growth_dev/communication.asp");
addmenu("Differences among children of the same age",3,"ECD/growth_dev/differences.asp");
addmenu("Separation anxiety",3,"ECD/growth_dev/separation_anxiety.asp");
addmenu("Growth and development 18 months",3,"ECD/Growth_Dev/18months.asp");
addmenu("Growth and development 2 years",3,"ECD/Growth_Dev/2years.asp");
addmenu("Growth and development 32 months",3,"ECD/Growth_Dev/32months.asp");
addmenu("Growth and development 3 years",3,"ECD/Growth_Dev/3years.asp");
addmenu("Children 3-5",2,"ECD/children_3-5/intro.asp");
addmenu("Growth and development 3-4",3,"ECD/children_3-5/growth_3-4.asp");
addmenu("Growth and development 4-5",3,"ECD/children_3-5/growth_4-5.asp");
addmenu("Getting ready for school",2,"ECD/ready_for_school/ready_set_learn.asp");
addmenu("Booklets",2,"ECD/ecd_booklets.asp");
addmenu("Parenting",1,"Parenting/parenting.asp");
addmenu("Bonding with your baby",3,"Parenting/bonding_with_baby.asp");
addmenu("Playing and learning",3,"Parenting/playing_and_learning.asp");
addmenu("Making your home safe",3,"Parenting/home_safe.asp");
addmenu("Keep your child healthy and safe",3,"Parenting/health_resources.asp");
addmenu("Behaviour issues",3,"Parenting/behaviour.asp");
addmenu("Childcare choices",3,"Parenting/child_care_choices.asp");
addmenu("Single parenting",3,"Parenting/single_parents.asp");
addmenu("Resources",3,"parenting/parent_resources.asp");
addmenu("Education",1,"education.asp");
addmenu("ActNow! BC",3,"Education/healthy_children/actnow.asp");
addmenu("Student health",3,"Education/healthy_children/student_health.asp");
addmenu("How children learn",2,"Education/How_children_learn/intro.asp");
addmenu("Active participation",3,"Education/How_children_learn/active_participation.asp");
addmenu("Learning methods",3,"Education/How_children_learn/learning_methods.asp");
addmenu("K-3 learning standards",2,"Education/k-3_parental_learning_standards/k-3_standards.asp");
addmenu("K-3 learning tips",3,"Education/k-3_parental_learning_standards/k-3tips.asp");
addmenu("Child development",3,"Education/k-3_parental_learning_standards/child_development.asp");
addmenu("Kindergarten",3,"Education/k-3_parental_learning_standards/kindergarten_dev.asp");
addmenu("Grade 1",3,"Education/k-3_parental_learning_standards/grade_1_dev.asp");
addmenu("Grade 2",3,"Education/k-3_parental_learning_standards/grade_2_dev.asp");
addmenu("Grade 3",3,"Education/k-3_parental_learning_standards/grade_3_dev.asp");
addmenu("Grade 4-7 learning standards",2,"Education/4-7_parental_learning_standards/4-7_standards.asp");
addmenu("Grade 4",3,"Education/4-7_parental_learning_standards/grade4.asp");
addmenu("Grade 5",3,"Education/4-7_parental_learning_standards/grade5.asp");
addmenu("Grade 6",3,"Education/4-7_parental_learning_standards/grade6.asp");
addmenu("Grade 7",3,"Education/4-7_parental_learning_standards/grade7.asp");
addmenu("Grade 4-7 learning tips",2,"Education/4-7_learning_tips/intro.asp");
addmenu("Reading",3,"Education/4-7_learning_tips/reading.asp");
addmenu("Writing",3,"Education/4-7_learning_tips/writing.asp");
addmenu("Math",3,"Education/4-7_learning_tips/math.asp");
addmenu("Grade 8 learning standards",2,"Education/8_parental_learning_standards/grade-8.asp");
addmenu("What are grade 8 students like?",3,"Education/8_parental_learning_standards/grade-8_students.asp");
addmenu("Applied skills",3,"Education/8_parental_learning_standards/8_applied_skills.asp");
addmenu("Health and career education",3,"Education/8_parental_learning_standards/8_capp.asp");
addmenu("English language arts",3,"Education/8_parental_learning_standards/8_ela.asp");
addmenu("Math",3,"Education/8_parental_learning_standards/8_math.asp");
addmenu("Physical Education",3,"Education/8_parental_learning_standards/8_pe.asp");
addmenu("Social Studies",3,"Education/8_parental_learning_standards/8_social_studies.asp");
addmenu("Science",3,"Education/8_parental_learning_standards/8_science.asp");
addmenu("Second language",3,"Education/8_parental_learning_standards/8_second_language.asp");
addmenu("Fine arts",3,"Education/8_parental_learning_standards/8_fine_arts.asp");
addmenu("Information technology",3,"Education/8_parental_learning_standards/8_info_tech.asp");
addmenu("Grade 9 learning standards",2,"Education/9_parental_learning_standards/grade-9.asp");
addmenu("What are Grade 9 students like?",3,"Education/9_parental_learning_standards/grade-9_students.asp");
addmenu("Applied skills",3,"Education/9_parental_learning_standards/9_applied_skills.asp");
addmenu("Health and career education",3,"Education/9_parental_learning_standards/9_capp.asp");
addmenu("English language arts",3,"Education/9_parental_learning_standards/9_ela.asp");
addmenu("Math",3,"Education/9_parental_learning_standards/9_math.asp");
addmenu("Physical Education",3,"Education/9_parental_learning_standards/9_pe.asp");
addmenu("Social Studies",3,"Education/9_parental_learning_standards/9_social_studies.asp");
addmenu("Science",3,"Education/9_parental_learning_standards/9_science.asp");
addmenu("Second language",3,"Education/9_parental_learning_standards/9_second_language.asp");
addmenu("Fine arts",3,"Education/9_parental_learning_standards/9_fine_arts.asp");
addmenu("Information technology",3,"Education/9_parental_learning_standards/9_info_tech.asp");
addmenu("How can I help my teen learn study skills",2,"Education/8-9_learning_tips/8-9-tips.asp");
addmenu("How do I get my teen ready for quizzes and tests?",3,"Education/8-9_learning_tips/ready_teen_quizzes.asp");
addmenu("How much help should I give my teen?",3,"Education/8-9_learning_tips/help_for_teen.asp");
addmenu("How much homework should my teen be doing in grades 8 and 9?",3,"Education/8-9_learning_tips/how_much_homework.asp");
addmenu("Is there a process for helping students develop learning processes?",3,"Education/8-9_learning_tips/process_developing_learning.asp");
addmenu("My teen says, “I don’t have any homework.” What should I do?",3,"Education/8-9_learning_tips/what_to_do.asp");
addmenu("Which Math Courses Should My Teen Take? Which Ones Lead to University?",3,"Education/8-9_learning_tips/math4university.asp");
addmenu("Success tips and homework help for parents of teens",2,"Education/8-9_success_tips/tips.asp");
addmenu("Homework help",3,"Education/8-9_success_tips/homework_help.asp");
addmenu("Succeeding with homework",3,"Education/8-9_success_tips/succeeding_with_homework.asp");
addmenu("Getting involved with your school",2,"Education/getting_involved/getting_involved.asp");
addmenu("School profile tool",3,"Education/getting_involved/school_profile_tool.asp");
addmenu("District parent advisory councils",3,"Education/getting_involved/district_pacs.asp");
addmenu("Parent advisory councils (PACs)",3,"Education/getting_involved/pacs.asp");
addmenu("District contact information",3,"Education/getting_involved/contact_info.asp");
addmenu("Open boundaries",3,"Education/open_boundaries/open_boundaries.asp");
addmenu("School safety",2,"Education/getting_involved/school_safety/safety.asp");
addmenu("Earthquake safety",3,"Education/getting_involved/school_safety/earthquake_safety.asp");
addmenu("Your education system",2,"Education/system/your_education_system.asp");
addmenu("Open boundaries",3,"Education/open_boundaries/open_boundaries.asp");
addmenu("Accountability",3,"Education/system/accountability/accountability.asp");
addmenu("District accountability contracts",3,"Education/system/accountability/contracts.asp");
addmenu("School planning councils",3,"Education/system/accountability/spc.asp");
addmenu("District review teams",3,"Education/system/accountability/district_review_teams.asp");
addmenu("Funding",2,"Education/funding/intro.asp");
addmenu("Education capital plan for 2005-2008",3,"Education/system/ed_capital_plan.asp");
addmenu("Provincial education budget",3,"Education/system/prov_education_budget.asp");
addmenu("System facts",2,"Education/system/system_facts.asp");
addmenu("School assessment",3,"Education/system/fsa.asp");
addmenu("Grade-to-pass rates",3,"Education/system/pass_rates.asp");
addmenu("Graduate satisfaction",3,"Education/system/grad_satisfaction.asp");
addmenu("School achievement indicators",3,"Education/system/school_achieve_indicators.asp");
addmenu("Secondary students",2,"Education/secondary_students/intro.asp");
addmenu("Graduation requirements",3,"Education/secondary_students/grad_reqs/grad_reqs.asp");
addmenu("Provincial exams",3,"Education/secondary_students/prov_exams/exams.asp");
addmenu("Award and scholarship information",3,"Education/secondary_students/awards_scholarship_info/intro.asp");
addmenu("Success tips for teens",2,"Education/secondary_students/success_tips_teens/secondary_success_tips.asp");
addmenu("Homework skills",3,"Education/secondary_students/success_tips_teens/homework_skills.asp");
addmenu("Math - tips",3,"Education/secondary_students/success_tips_teens/math.asp");
addmenu("Homework help for parents",3,"Education/secondary_students/homework/homework_help_parents.asp");
addmenu("Homework secrets for students",3,"Education/secondary_students/homework/secrets_for_students.asp");
addmenu("Aboriginal learning",3,"Education/secondary_students/aboriginal_learning/intro.asp");
addmenu("Booklets",2,"Education/booklets_education.asp");
addmenu("Booklets French translations",2,"Education/booklets_education_french.asp");
addmenu("Post-secondary learning resources",1,"post_secondary_learning_resources.asp");
addmenu("Children's education fund",3,"post-sec_learning-res/financial/children_education_fund.asp");
addmenu("Regional and institutional information",3,"post-sec_learning-res/institutional_info/intro.asp");
addmenu("BCcampus.ca and applying online (PASBC)",3,"post-sec_learning-res/student_services/bccampus.asp");
addmenu("Accommodations",2,"post-sec_learning-res/accommodations/housing.asp");
addmenu("Student expenses and financial aid",2,"post-sec_learning-res/financial/intro.asp");
addmenu("Assessing your costs",3,"post-sec_learning-res/financial/assessing_costs.asp");
addmenu("Student loans and loan forgiveness",3,"post-sec_learning-res/financial/student_loans.asp");
addmenu("Financial assistance",3,"post-sec_learning-res/financial/financial_assistance.asp");
addmenu("Other sources of financial assistance",3,"post-sec_learning-res/financial/other_sources.asp");
addmenu("Student services",2,"post-sec_learning-res/student_services/intro.asp");
addmenu("Co-op contacts at B.C. institutions",3,"post-sec_learning-res/institutional_info/co-op.asp");
addmenu("Education Planner",3,"post-sec_learning-res/student_services/ed_planner.asp");
addmenu("International students",3,"post-sec_learning-res/student_services/international_students.asp");
addmenu("Apprenticeship",2,"post-sec_learning-res/apprenticeship/intro.asp");
addmenu("Secondary school apprenticeship",3,"post-sec_learning-res/apprenticeship/secondary_school.asp");
addmenu("Credentials and certification",3,"post-sec_learning-res/apprenticeship/credentials_certification.asp");
addmenu("Adult learning",2,"post-sec_learning-res/adult_learning/intro.asp");
addmenu("Career planning",2,"post-sec_learning-res/career_planning_tools.asp");
addmenu("Graduation requirement",3,"post-sec_learning-res/career_planning/grad_reqs.asp");
addmenu("Booklets",2,"post-sec_learning-res/booklets_post_secondary.asp");
addmenu("Jobs and opportunities",1,"jobs-and-opportunities.asp");
addmenu("Youth employment",3,"jobs_opportunities/youth_employment.asp");
addmenu("Moving beyond income assistance",3,"jobs_opportunities/beyond_income_assistance.asp");
addmenu("Career planning tools",2,"jobs_opportunities/career_planning_tools.asp");
addmenu("A new approach to industry training",2,"jobs_opportunities/industry_training_authority.asp");
addmenu("How to land a job",2,"jobs_opportunities/intro.asp");
addmenu("Career planning process",3,"jobs_opportunities/career_planning.asp");
addmenu("Career tools",3,"jobs_opportunities/career_tools.asp");
addmenu("Career programs",3,"jobs_opportunities/career_programs.asp");
addmenu("Parents helping teens",3,"jobs_opportunities/helping_teens.asp");
addmenu("More information",3,"jobs_opportunities/more_info.asp");
addmenu("Completing an application form",3,"jobs_opportunities/application_form.asp");
addmenu("Applying online",3,"jobs_opportunities/applying_online.asp");
addmenu("Cold calling an employer",3,"jobs_opportunities/cold_calling.asp");
addmenu("Job website links",2,"jobs_opportunities/internet_job_sites.asp");
addmenu("Jobs of the future",3,"jobs_opportunities/jobs_of_the_future.asp");
addmenu("Job search basics",3,"jobs_opportunities/job_search_basics.asp");
addmenu("Other ways to find jobs",3,"jobs_opportunities/others_ways_to_find_work.asp");
addmenu("Identifying your skills",3,"jobs_opportunities/id_skills.asp");
addmenu("Start your own business",2,"jobs_opportunities/start_own_business.asp");
addmenu("Booklets",2,"jobs_opportunities/booklets_jobs.asp");
addmenu("Tools and resources",1,"tools-and-resources.asp");
addmenu("Career planning tools",2,"tools_resources/career_planning_tools.asp");
addmenu("Booklets",2,"tools_resources/tools_resources_booklets.asp");
addmenu("A celebration of excellence",1,"excellence.asp");
addmenu("B.C. Achievers",2,"excellence/BC_achievers.asp");







//end declare

function findself()
	{
	for (i = 0; i < menutext.length; i++)
		{
      if (thisurl.search(menuhref[i])> 0)
         {
         menuposition=i;
         menuon[i]=true;
         }
		}
	}                                      
	
function parsesubs()
	{
	templevel=menulevel[menuposition];
	for (i = menuposition+1; i < menutext.length; i++)
		{
		if (menulevel[i] == templevel+1)
		   	menuon[i]=true;
		if (menulevel[i] <= templevel)
		   break;
		}
	}

function parsevoid() 
	//determines next menu level following and includes peers in following group 
	//allows for voids in hierarchy
	{
	if (menuposition == menutext.length) return; // if eof abort
		else nextlevel=menulevel[menuposition+1]; // determine level of next item in array
	if (nextlevel<=menulevel[menuposition]) return;
	for (i = menuposition+1; i < menutext.length; i++)
		{
		if (menulevel[i] == nextlevel) 
		   menuon[i]=true;
		else
		 	break;
		}
	}

function parseupward()
	{
	templevel=menulevel[menuposition];
	for (i = menuposition; i >= 0; i--)
		{
		if ((sectionHeadline=="") && (menulevel[i]==sectionHeadlevel) && (i != menuposition))
			sectionHeadline=menutext[i];
		if (menulevel[i] <= templevel) 
		   { 
		   menuon[i]=true;
		   templevel=menulevel[i];
		   }
		}
	}

function parsedownward()
	{
	templevel=menulevel[menuposition];
	for (i = menuposition; i < menutext.length; i++)
		{
		if (menulevel[i] <= templevel) 
		   { 
		   menuon[i]=true;
		   templevel=menulevel[i];
		   }
		}
	}
	
function resetroot()
	{
	for (i = 0; i < menutext.length; i++)
		{
		if (menulevel[i]==1)
			menuon[i]=true;
		}
	}
	

function parsepath() //keeps an array of path to current page for breadcrumbs & headings
	{
	templevel=menulevel[menuposition];
	menupath[menulevel[menuposition]]=menuposition;
	for (i = (menuposition-1); i >= 0; i--)
		{
		if (menulevel[i]<templevel) // may be causing a problem with numeric menu levels
			{
			menupath[menulevel[i]]=i;
			templevel=menulevel[i];
			}
		}
	}

function parsecontainers()
	{
	for ((i = menuposition+1); (i < menutext.length); i++) 
		{
		if (rightmenucodes.indexOf(menulevel[i])>=0) 
		  		menuon[i]=true;
		else
		   	break;
		}
	}
	
// following function may be called for debugging
function dump()
	{
	for (i = 0; i < menutext.length; i++)
		{
		if (i==menuposition)
			document.write("<br>***<br>");
		if (menuon[i])
			{ document.write("+ "); }
		else
			{ document.write("- "); }
		document.write(menulevel[i]+", "+menutext[i]+", "+menuhref[i]+"<br>");
		}
	for (i=0; i <= menupath.length; i++)
		{
		document.write("<br>"+menutext[menupath[i]]);
		}
	}
/*function breadcrumbs()
	{ 
	strCrumbs="<span>"+sitename+":&nbsp;</span>";
	for (i=1; i<=(menupath.length-2); i++)
		{
		strCrumbs+="<span>"+menutext[menupath[i]]+":&nbsp;</span>";
		}
	strCrumbs+="<span>"+menutext[menupath[menupath.length-1]]+"</span>";
	return strCrumbs; 
	}*/
	
/*function headlines()
	{
	return menutext[menuposition];
	}*/

findself();
parsesubs();
parsevoid();
parseupward(); 
parsedownward();
parsepath();
parsecontainers();
resetroot();

/*
Modified: April 24, 2007
Author: Grant Graham
Comment:Needed to handle issue when menutext[menuposition] is null
	When null the title would display sitename: undefined
*/
if(menutext[menuposition] == null){
	document.title= sitename;//alert(menutext[menuposition]);
}else
{
	document.title= sitename + ": " + menutext[menuposition];
}

//dump();



