
var mywin = null;
function openWin(pageUrl) {
	var baseUrl = "";
	if( pageUrl != "" ) {
		try {
			if (mywin) mywin.close();
			mywin = window.open(pageUrl,"newwin","height=425px,width=475px,toolbar=0,scrollbars,resizable");
			mywin.focus();
		}
		catch(e) { alert("Error: " + e ); }
	}
	return "";
}

function execOnLoad(){
	
	var strPage = window.location.href;	
	
	if (strPage.indexOf('selections.php') == -1) 
		return;
	
		AdjustSelectionBoxes();
		AdjustChkBoxes();
		if (bFocusOutput)
			window.location='#Output';

}

// called on "onload" (specified in header.tpl). Since the same header.tpl is used for many pages first make sure we are on the right page
function AdjustSelectionBoxes(){
	var seriesVar = document.SelectionForm.series.value;

	// Step 1: adjust "data" listbox
	// if the series is stage we only have incidence and survival
	if (seriesVar == SERIES_VAR_STAGE){
		list = document.SelectionForm.data;
		var prevData = list.options[list.selectedIndex].value;
		
		removeAllOptions(list);

		AddOption('data_', DATA_INCIDENCE, DATA_INCIDENCE_TEXT, list, prevData);
		AddOption('data_', DATA_SURVIVAL, DATA_SURVIVAL_TEXT, list, prevData);
	} else if (seriesVar == SERIES_VAR_AGE){
		list = document.SelectionForm.data;
		var optId = 'data_' + DATA_RISK;
		opt = document.getElementById(optId);		
		if (opt != null){
			list.remove(opt.index);
		}			
	}  
	
	// Step 2: adjust "statistics" listbox
	// if the series is data we only have AA rates and trends in AA rates
	if (seriesVar == SERIES_VAR_DATA){
		
		list = document.SelectionForm.statistic;		
		var prevStat = list.options[list.selectedIndex].value;
		removeAllOptions(list);
		
		AddOption('Statistic_', STATISTIC_AA_RATE, STATISTIC_AA_RATE_TEXT, list, prevStat);  // Age-Adjusted Rates
		AddOption('Statistic_', STATISTIC_TREND_AA_RATE, STATISTIC_TREND_AA_RATE_TEXT, list, prevStat); // Trends in AA Rates
	
	} else {
		
		updateStatBox();
	
	}
	
	// Step 3: update year range
	updateYearBox();

	
	// Step 4: update cancer sites
	if (seriesVar != SERIES_VAR_SITE){
		updateSiteBox();	
		// call onSiteChange, this will update sub-site and sex
		onSiteChange();
	}
	
	// Step 5: update race listbox
	if (seriesVar != SERIES_VAR_RACE && seriesVar != SERIES_VAR_RACE_SEX){		
		updateRaceBox();
	}
	
	// the sex listbox has already been updated at this point
	
	// Step 6: update age listbox
	updateAgeBox();

	// Step 7: update output options ( graph or table )
	if (seriesVar != SERIES_VAR_DATA){
		updateOutputOptions();
	}

}

// called on "onload" (specified in header.tpl).
function AdjustChkBoxes(){

	var seriesVar = document.SelectionForm.series.value;

	if (seriesVar == SERIES_VAR_RACE){
		
		UpdateRaceCheckboxes();	
	
	} else if (seriesVar == SERIES_VAR_RACE_SEX){	
	
		UpdateRaceSexCheckboxes(SITE_FEMALE_GENITAL);	
	
	} else if (seriesVar == SERIES_VAR_SITE){		
		
		updateSiteCheckboxes();
		collapseSiteCheckboxes();		
	
	}
	
}

function collapseSiteCheckboxes(){
	
	//aSites = getSeriesValuesFromURL('cancer[]');

	aSites = arrSites;
	
	// check if any "female genital" sites are selected
	bHaveFemGenSys = false;
	for (i in aSites){
		for (j in grouped_sites_female)
			if (aSites[i] == grouped_sites_female[j].site){
				bHaveFemGenSys = true;
				break;
		}
		if (bHaveFemGenSys) break;	
	}
	
	// check if "Colon" or "Rectum" is selected
	bHaveColonOrRectum = false;
	for (i in aSites){
		if (aSites[i] == SITE_COLON || aSites[i] == SITE_RECTUM){
			bHaveColonOrRectum = true;
			break;
		}	
	}
	
	// check if "Acute Lymphocytic" or "Chronic Lymphocytic" is selected
	bAcuteLymphOrChronicLymph = false;
	for (i in aSites){
		if (aSites[i] == SITE_LEUK_LYMPH_ACUTE || aSites[i] == SITE_LEUK_LYMPH_CHRONIC){
			bAcuteLymphOrChronicLymph = true;
			break;
		}	
	}
	
	// check if "Acute Lymphocytic" or "Chronic Lymphocytic" is selected
	bAcuteLymphOrChronicLymph = false;
	for (i in aSites){
		if (aSites[i] == SITE_LEUK_LYMPH_ACUTE || aSites[i] == SITE_LEUK_LYMPH_CHRONIC){
			bAcuteLymphOrChronicLymph = true;
			break;
		}	
	}
	
	// check if "Acute Myeloid", "Acute Monocytic" or "Chronic Myeloid" is selected
	bAnyMyeloidOrMonocytic = false;
	for (i in aSites){
		if (aSites[i] == SITE_LEUK_MYELOID_ACUTE || aSites[i] == SITE_LEUK_MONOCYTIC_ACUTE || aSites[i] == SITE_LEUK_MYELOID_CHRONIC){
			bAnyMyeloidOrMonocytic = true;
			break;
		}	
	}
	
	// check if either of the two main Leuk sub-types are selected
	bTwoLeukSybTypes = false;
	for (i in aSites){
		if (aSites[i] == SITE_LEUK_LYMPH || aSites[i] == SITE_LEUK_MYELOID_AND_MONOCYTIC){
			bTwoLeukSybTypes = true;
			break;
		}	
	}
	
	
	// check if any "oral cavity" sites are selected
	bHaveOralCavity = false;
	for (i in aSites){
		for (j in grouped_sites_oral_cavity)
			if (aSites[i] == grouped_sites_oral_cavity[j].site){
				bHaveOralCavity = true;
				break;
		}
		if (bHaveOralCavity) break;	
	}
	

	//if (!bHaveFemGenSys) collapseSites(SITE_FEMALE_GENITAL);
	if (!bHaveColonOrRectum) collapseSites(SITE_COLON_AND_RECTUM);
	if (!bAcuteLymphOrChronicLymph) collapseSites(SITE_LEUK_LYMPH);
	if (!bAnyMyeloidOrMonocytic) collapseSites(SITE_LEUK_MYELOID_AND_MONOCYTIC);
	if (!bTwoLeukSybTypes && !(bAcuteLymphOrChronicLymph || bAnyMyeloidOrMonocytic)) collapseSites(SITE_LEUK);
	if (!bHaveOralCavity) collapseSites(SITE_ORAL_CAVITY_PHARYNX);
	
}


function onDataTypeChange(){
	updateStatBox();
	//updateYearBox_Data();
	updateYearBox();
	updateOutputOptions();
	
	var seriesVar = document.SelectionForm.series.value;
	if (seriesVar == SERIES_VAR_SITE) {
		updateSiteCheckboxes();
	} else {
		updateSiteBox();		
	}
	
	updateAgeBox();	
	if (seriesVar != SERIES_VAR_RACE && seriesVar != SERIES_VAR_RACE_SEX){		
		updateRaceBox();
	}
	
	if (seriesVar == SERIES_VAR_RACE)
		UpdateRaceCheckboxes();
	
	if (seriesVar == SERIES_VAR_RACE_SEX)
		UpdateRaceSexCheckboxes();
}


function onStatChange(){
	updateYearBox();
	
	var seriesVar = document.SelectionForm.series.value;
	if (seriesVar == SERIES_VAR_SITE){
		updateSiteCheckboxes();
	} else {
		updateSiteBox();
	}

	updateAgeBox();
	
	if (seriesVar != SERIES_VAR_RACE && seriesVar != SERIES_VAR_RACE_SEX){		
		updateRaceBox();
	}
	
	if (seriesVar == SERIES_VAR_RACE)
		UpdateRaceCheckboxes();
	
}


function onYearChange(){
	
	var seriesVar = document.SelectionForm.series.value;
	
	if (seriesVar != SERIES_VAR_SITE){
		updateSiteBox();
	} else {
		updateSiteCheckboxes();
	}
		
	if (seriesVar == SERIES_VAR_RACE){
		UpdateRaceCheckboxes();
	} else if (seriesVar == SERIES_VAR_RACE_SEX) {
		UpdateRaceSexCheckboxes();
	} else {
		updateRaceBox();
	}
}

function onSiteChange(){
	
	var seriesVar = document.SelectionForm.series.value;	
	updateSubSite();
	
	if (seriesVar != SERIES_VAR_SEX && seriesVar != SERIES_VAR_RACE_SEX)
		updateGenderBox();
	
	if (seriesVar == SERIES_VAR_RACE_SEX)
		UpdateRaceSexCheckboxes();
	
}


function onGenderChange(){
	var seriesVar = document.SelectionForm.series.value;
	
	if (seriesVar == SERIES_VAR_SITE)
		updateSiteCheckboxes();
}



function updateStatBox(){

	var seriesVar = document.SelectionForm.series.value;
	
	var list = document.SelectionForm.data;	
	var dataType = list.options[list.selectedIndex].value;
	
	list = document.SelectionForm.statistic;
	var prevStat = list.options[list.selectedIndex].value;
	
	removeAllOptions(list);
	
	for (i in STATISTICS_BY_DATA_TYPE[dataType]){
		AddOption('Statistic_', STATISTICS_BY_DATA_TYPE[dataType][i].stat, STATISTICS_BY_DATA_TYPE[dataType][i].text, list, prevStat);
  }

  
  // special cases
  if (seriesVar == SERIES_VAR_STAGE && dataType == DATA_SURVIVAL){
  
  	AddOption('Statistic_', STATISTIC_COND_5YEAR_REL_SURVIVAL_RATE, STATISTIC_COND_5YEAR_REL_SURVIVAL_RATE_TEXT, list, prevStat);
	
	} else if (seriesVar == SERIES_VAR_STAGE && dataType == DATA_INCIDENCE){
		
		var optId = 'Statistic_' + STATISTIC_STAGE_DISTR;
		opt = document.getElementById(optId);		
		if (opt != null){
			list.remove(opt.index);
		}		
	} else if (seriesVar == SERIES_VAR_AGE){
		var optId = 'Statistic_' + STATISTIC_AS_RATE;
		opt = document.getElementById(optId);		
		if (opt != null){
			list.remove(opt.index);
		}
	}
}


function updateSiteBox(){
	
	var seriesVar = document.SelectionForm.series.value;
	
	if (seriesVar != SERIES_VAR_DATA) {
		list = document.SelectionForm.data;	
		dataType = list.options[list.selectedIndex].value;
	}
	
	list = document.SelectionForm.year;		
	year = list.options[list.selectedIndex].value;
	
	list = document.SelectionForm.statistic;	
	var statType = list.options[list.selectedIndex].value;
	
	list = document.SelectionForm.cancer;
	prevCancer = list.options[list.selectedIndex].value;
	
	removeAllOptions(list);

	/* check if the statistic is the "stage distribution */  
  if (statType == STATISTIC_STAGE_DISTR) {
  	for (i in sites_stage){
				if (sites_stage[i].addToList)
					AddOption('cancer_', sites_stage[i].site, sites_stage[i].text, list, prevCancer);
		 }	
  } /* check if the statistic is the "complete prevalence" */	
   else if (statType == STATISTIC_COMPLETE_PREV){  
	   for (i in sites_comp_prev){
				if (sites_comp_prev[i].addToList)
					AddOption('cancer_', sites_comp_prev[i].site, sites_comp_prev[i].text, list, prevCancer);
		 } 
  }
   else if (seriesVar == SERIES_VAR_DATA){
		/* use the sites for delay incidence */
		for (i in SITES_BY_DATA_TYPE[DATA_DELAY_INCIDENCE]){
			if (SITES_BY_DATA_TYPE[DATA_DELAY_INCIDENCE][i].addToList)
				AddOption('cancer_', SITES_BY_DATA_TYPE[DATA_DELAY_INCIDENCE][i].site, SITES_BY_DATA_TYPE[DATA_DELAY_INCIDENCE][i].text, list, prevCancer);
	  }
	
	} else {
	
		if (dataType != "" && year != ""){		
			for (i in SITES_BY_DATA_AND_YEAR[dataType][year]){
				if (SITES_BY_DATA_AND_YEAR[dataType][year][i].addToList)				
					AddOption('cancer_', SITES_BY_DATA_AND_YEAR[dataType][year][i].site, SITES_BY_DATA_AND_YEAR[dataType][year][i].text, list, prevCancer);
		  }	
		} else if (year == ""){
			for (i in SITES_BY_DATA_TYPE[dataType]){
				if (SITES_BY_DATA_TYPE[dataType][i].addToList)
					AddOption('cancer_', SITES_BY_DATA_TYPE[dataType][i].site, SITES_BY_DATA_TYPE[dataType][i].text, list, prevCancer);
		  }
		}
	}
	
	/* if stratifying by sex, remove all sex-specific sites */
	if (seriesVar == SERIES_VAR_SEX){
  	removeSites(sites_male);
  	removeSites(sites_female);
  } /*else if (seriesVar == SERIES_VAR_STAGE) {
  	removeSites(sites_stage_na);
  }*/

 	onSiteChange();   
}

function updateSiteCheckboxes(){
	
	var list = document.SelectionForm.data;	
	var dataType = list.options[list.selectedIndex].value;
	
	list = document.SelectionForm.year;		
	year = list.options[list.selectedIndex].value;
	
	list = document.SelectionForm.statistic;
	var statType = list.options[list.selectedIndex].value;
	
	toggleSiteCheckboxes(sites_all, true);  // first, disable all
	

	if (statType == STATISTIC_STAGE_DISTR) // stage-distr - special case
		toggleSiteCheckboxes(sites_stage, false);
	else if (statType == STATISTIC_COMPLETE_PREV) // complete prevalence - special case
		toggleSiteCheckboxes(sites_comp_prev, false);
	else if (dataType == "")
		toggleSiteCheckboxes(sites_all, false);  // e.g. when first load the page
	else if (year == "")
		toggleSiteCheckboxes(SITES_BY_DATA_TYPE[dataType], false);
	else 					
		toggleSiteCheckboxes(SITES_BY_DATA_AND_YEAR[dataType][year], false);
	

	var list = document.SelectionForm.sex;	
	var sex = list.options[list.selectedIndex].value;
	
	if (sex == SEX_BOTH){
		toggleSiteCheckboxes(sites_male, true);
		toggleSiteCheckboxes(sites_female, true);	
	} else if  (sex == SEX_MALE){		
		toggleSiteCheckboxes(sites_female, true);
	} else if (sex == SEX_FEMALE ){		
		toggleSiteCheckboxes(sites_male, true);	
	}
	
  expandDisabledSites();
  
  uncheckDisabledSites();  
}

function uncheckDisabledSites(){
	
	prefix = 'chkCancer_';
	
	for (i in sites_all){
		chkBoxId = prefix + sites_all[i].site;
		chkBox = document.getElementById(chkBoxId);
		if (chkBox.disabled){
			chkBox.checked = false;
		}
	}

}


function updateOutputOptions(){
	
	var list;
	var dataType;
	var statType; 
	
	list = document.SelectionForm.data;	
	dataType = list.options[list.selectedIndex].value;
	
	//list = document.SelectionForm.statistic;
	//statType = list.options[list.selectedIndex].value;

	optionGraph =  document.getElementById('outputGraph');
	optionTable =  document.getElementById('outputTable');
	
	if (dataType == DATA_RISK || dataType == DATA_PREVALENCE){
		optionGraph.disabled = true;
		optionTable.checked = true;
	} else {
		optionGraph.disabled = false;	
	}

}

function updateGenderBox(){
	
	list = document.SelectionForm.cancer;	
	site = list.options[list.selectedIndex].value;
	
	genderList = document.SelectionForm.sex;
	prevGender = genderList.options[genderList.selectedIndex].value;
	
	removeAllOptions(genderList);
	
	var excludeMale = false;
	var excludeFemale = false;
	
	for (i in sites_female){
		if (sites_female[i].site == site){	
			excludeMale = true;
			break;
		}
	}
	
	for (i in sites_male){
		if (sites_male[i].site == site){	
			excludeFemale = true;
			break;
		}
	}
	
	if (!excludeMale && !excludeFemale)
		AddOption('sex_', 1, 'Both Sexes', genderList, prevGender);
		
	if (!excludeMale)
		AddOption('sex_', 2, 'Male', genderList, prevGender);

		
	if (!excludeFemale)
		AddOption('sex_', 3, 'Female', genderList, prevGender);
	
	
	if (excludeMale || excludeFemale){
		genderList.selectedIndex = 1;
	}

}

function updateSubSite(){

	var list = document.SelectionForm.cancer;	
	var site = list.options[list.selectedIndex].value;
	var siteName = list.options[list.selectedIndex].text;
	var site_all_text = 'All ' + siteName.trim();  
	
	var seriesVar = document.SelectionForm.series.value;
	
	var dataType = '';
	if (seriesVar != SERIES_VAR_DATA) {
		list = document.SelectionForm.data;
		dataType = list.options[list.selectedIndex].value;
	}
	
	list = document.SelectionForm.statistic;
	statType = list.options[list.selectedIndex].value;
	
	
	list = document.SelectionForm.subSite;
	var prevSubSite = document.SelectionForm.paramSubSite.value;	
	list.disabled = false;
	
	removeAllOptions(list);
	
	switch (site){
		
		case SITE_LEUK:

			AddOption('subSite_', SITE_LEUK, site_all_text, list, SITE_LEUK);
			
			if (dataType == DATA_PREVALENCE && statType == STATISTIC_COMPLETE_PREV){			
				AddOption('subSite_', SITE_LEUK_LYMPH, SITE_LEUK_LYMPH_TEXT_INDENTED, list, prevSubSite);
				AddOption('subSite_', SITE_LEUK_LYMPH_ACUTE, SITE_LEUK_LYMPH_ACUTE_TEXT_INDENTED, list, prevSubSite);
				AddOption('subSite_', SITE_LEUK_LYMPH_CHRONIC, SITE_LEUK_LYMPH_CHRONIC_TEXT_INDENTED, list, prevSubSite);			
				AddOption('subSite_', SITE_LEUK_MYELOID_ACUTE, SITE_LEUK_MYELOID_ACUTE_TEXT, list, prevSubSite);
				AddOption('subSite_', SITE_LEUK_MONOCYTIC_ACUTE, SITE_LEUK_MONOCYTIC_ACUTE_TEXT, list, prevSubSite);
				AddOption('subSite_', SITE_LEUK_MYELOID_CHRONIC, SITE_LEUK_MYELOID_CHRONIC_TEXT, list, prevSubSite);
			} else if (dataType != DATA_DELAY_INCIDENCE) {
				AddOption('subSite_', SITE_LEUK_LYMPH, SITE_LEUK_LYMPH_TEXT_INDENTED, list, prevSubSite);
				AddOption('subSite_', SITE_LEUK_LYMPH_ACUTE, SITE_LEUK_LYMPH_ACUTE_TEXT_INDENTED, list, prevSubSite);
				AddOption('subSite_', SITE_LEUK_LYMPH_CHRONIC, SITE_LEUK_LYMPH_CHRONIC_TEXT_INDENTED, list, prevSubSite);
				AddOption('subSite_', SITE_LEUK_MYELOID_AND_MONOCYTIC, SITE_LEUK_MYELOID_AND_MONOCYTIC_TEXT_INDENTED, list, prevSubSite);			
				AddOption('subSite_', SITE_LEUK_MYELOID_ACUTE, SITE_LEUK_MYELOID_ACUTE_TEXT_INDENTED, list, prevSubSite);
				AddOption('subSite_', SITE_LEUK_MONOCYTIC_ACUTE, SITE_LEUK_MONOCYTIC_ACUTE_TEXT_INDENTED, list, prevSubSite);
				AddOption('subSite_', SITE_LEUK_MYELOID_CHRONIC, SITE_LEUK_MYELOID_CHRONIC_TEXT_INDENTED, list, prevSubSite);		
			}
			
		break;
		
		case SITE_DIGESTIVE:
			
			AddOption('subSite_', SITE_DIGESTIVE, site_all_text, list, SITE_DIGESTIVE);			
			AddOption('subSite_', SITE_ESOPHAGUS, SITE_ESOPHAGUS_TEXT_INDENTED, list, prevSubSite);
			AddOption('subSite_', SITE_STOMACH, SITE_STOMACH_TEXT_INDENTED, list, prevSubSite);
			AddOption('subSite_', SITE_SMALL_INTESTINE, SITE_SMALL_INTESTINE_TEXT_INDENTED, list, prevSubSite);
			AddOption('subSite_', SITE_COLON_AND_RECTUM, SITE_COLON_AND_RECTUM_TEXT_INDENTED, list, prevSubSite);
			if (dataType == DATA_INCIDENCE || (dataType == DATA_PREVALENCE && statType != STATISTIC_COMPLETE_PREV)){
				AddOption('subSite_', SITE_COLON, SITE_COLON_TEXT, list, prevSubSite);
				AddOption('subSite_', SITE_RECTUM, SITE_RECTUM_TEXT, list, prevSubSite);
			}
			AddOption('subSite_', SITE_ANUS, SITE_ANUS_TEXT_INDENTED, list, prevSubSite);
				
		break;
		
		case SITE_COLON_AND_RECTUM:
		
			AddOption('subSite_', SITE_COLON_AND_RECTUM, site_all_text, list, SITE_COLON_AND_RECTUM);
			if (dataType == DATA_INCIDENCE || (dataType == DATA_PREVALENCE && statType != STATISTIC_COMPLETE_PREV)){				
				AddOption('subSite_', SITE_COLON, SITE_COLON_TEXT, list, prevSubSite);
				AddOption('subSite_', SITE_RECTUM, SITE_RECTUM_TEXT, list, prevSubSite);
			} /*else {
				AddOption('subSite_', SITE_NA, SITE_NA_TEXT, list, SITE_NA);
				list.disabled = true;
			}*/
		
		break;
		
		
		case SITE_FEMALE_GENITAL:
		
			AddOption('subSite_', SITE_FEMALE_GENITAL, site_all_text, list, SITE_FEMALE_GENITAL);
			AddOption('subSite_', SITE_CERVIX_UTERI, SITE_CERVIX_UTERI_TEXT_INDENTED, list, prevSubSite);
			AddOption('subSite_', SITE_CORPUS_AND_UTERUS, SITE_CORPUS_AND_UTERUS_TEXT_INDENTED, list, prevSubSite);
			AddOption('subSite_', SITE_OVARY, SITE_OVARY_TEXT_INDENTED, list, prevSubSite);
			AddOption('subSite_', SITE_VAGINA, SITE_VAGINA_TEXT_INDENTED, list, prevSubSite);
			AddOption('subSite_', SITE_VULVA, SITE_VULVA_TEXT_INDENTED, list, prevSubSite);
			
		
		break;
		
		case SITE_ORAL_CAVITY_PHARYNX:
				
			AddOption('subSite_', SITE_ORAL_CAVITY_PHARYNX, site_all_text, list, SITE_ORAL_CAVITY_PHARYNX);
			if (!((dataType == DATA_PREVALENCE && statType == STATISTIC_COMPLETE_PREV) || dataType == DATA_DELAY_INCIDENCE)){	
				AddOption('subSite_', SITE_LIP, SITE_LIP_TEXT, list, prevSubSite);
				AddOption('subSite_', SITE_TONGUE, SITE_TONGUE_TEXT, list, prevSubSite);
				AddOption('subSite_', SITE_SALIVARY_GLAND, SITE_SALIVARY_GLAND_TEXT, list, prevSubSite);
				AddOption('subSite_', SITE_FLOOR_OF_MOUTH, SITE_FLOOR_OF_MOUTH_TEXT, list, prevSubSite);
				if (statType != STATISTIC_STAGE_DISTR){
					AddOption('subSite_', SITE_GUM_AND_OTHER, SITE_GUM_AND_OTHER_TEXT, list, prevSubSite);
					AddOption('subSite_', SITE_OROPHARYNX_AND_TONSIL, SITE_OROPHARYNX_AND_TONSIL_TEXT, list, prevSubSite);
				}			
			}
		
		break;
		

		default:
		
			AddOption('subSite_', SITE_NA, SITE_NA_TEXT, list, SITE_NA);
			list.disabled = true;
		
		break;

	}
	

}

// update race box based on year
function updateRaceBox(){

		var seriesVar = document.SelectionForm.series.value;
		
		var list = document.SelectionForm.year;		
		year = list.options[list.selectedIndex].value;
		
		var dataType = '';
		if (seriesVar != SERIES_VAR_DATA){
			list = document.SelectionForm.data;	
	  	dataType = list.options[list.selectedIndex].value;
		}

		list = document.SelectionForm.statistic;	
		var statType = list.options[list.selectedIndex].value;
		
		list = document.SelectionForm.race;
		var prevRace = list.options[list.selectedIndex].value;
		removeAllOptions(list);
			
		AddOption('Race_', RACE_ALL_RACES, RACE_ALL_RACES_TEXT, list, prevRace); // all races
		AddOption('Race_', RACE_WHITE, RACE_WHITE_TEXT, list, prevRace); // white
		AddOption('Race_', RACE_BLACK, RACE_BLACK_TEXT, list, prevRace); // black

		if (dataType == DATA_PREVALENCE && statType != STATISTIC_COMPLETE_PREV){
			AddOption('Race_', RACE_ASIAN, RACE_ASIAN_TEXT, list, prevRace); // asian	
			AddOption('Race_', RACE_HISPANIC, RACE_HISPANIC_TEXT, list, prevRace); // hispanic
		} else if (year == '' || year == YEAR_02 || year == YEAR_03 || year == YEAR_PROB_OF_DEV_DYING){

			AddOption('Race_', RACE_IND_AK_NAT, RACE_IND_AK_NAT_TEXT, list, prevRace); // indian, AK native
			AddOption('Race_', RACE_ASIAN, RACE_ASIAN_TEXT, list, prevRace); // asian	
			AddOption('Race_', RACE_HISPANIC, RACE_HISPANIC_TEXT, list, prevRace); // hispanic
			AddOption('Race_', RACE_WHITE_NON_HISPANIC, RACE_WHITE_NON_HISPANIC_TEXT, list, prevRace); // non-hispanic white
		}
	
}

// turn off/on checkboxes based on the year
function UpdateRaceCheckboxes(){
	
	 var seriesVar = document.SelectionForm.series.value;
	
	 var list = document.SelectionForm.year;	
	 var year = list.options[list.selectedIndex].value;
	 
	 var dataType = '';
	 if (seriesVar != SERIES_VAR_DATA){
		list = document.SelectionForm.data;	
	 	dataType = list.options[list.selectedIndex].value;
	 }
	 
	 list = document.SelectionForm.statistic;	
	 var statType = list.options[list.selectedIndex].value;
		
		races = document.SelectionForm.elements['race[]'];

		if (year == YEAR_01 || year == YEAR_REL_SURV || year == YEAR_5YR_SURVIVAL) {
			for (i = 0; i < races.length; i++){
				var chkVal = races[i].value;
				if (chkVal == RACE_HISPANIC || chkVal == RACE_WHITE_NON_HISPANIC || chkVal == RACE_ASIAN || chkVal == RACE_IND_AK_NAT){
					races[i].checked = false;
					races[i].disabled = true;
				}
			}		
		}	else {		
			for (i = 0; i < races.length; i++){
				var chkVal = races[i].value;
				if (chkVal == RACE_HISPANIC || chkVal == RACE_WHITE_NON_HISPANIC || chkVal == RACE_ASIAN || chkVal == RACE_IND_AK_NAT){
						races[i].disabled = false;
				} 
			}			
		}			
	
		
		// prevalence
		if (dataType == DATA_PREVALENCE) {
			
			for (i = 0; i < races.length; i++){
				var chkVal = races[i].value;
				
				if (statType == STATISTIC_LIM_DURATION_PREV || statType == '') {
					if (chkVal == RACE_WHITE_NON_HISPANIC || chkVal == RACE_IND_AK_NAT){  
						races[i].checked = false;
						races[i].disabled = true;						 
					}
				}	else {				
					if (chkVal == RACE_HISPANIC || chkVal == RACE_WHITE_NON_HISPANIC || chkVal == RACE_ASIAN || chkVal == RACE_IND_AK_NAT){
						races[i].checked = false;
						races[i].disabled = true;
					}
				}	
			}		
		}
		
	
}



// turn off/on checkboxes based on the year and sex
function UpdateRaceSexCheckboxes(){
	
	 var seriesVar = document.SelectionForm.series.value;
	 
	 var dataType = '';
	 if (seriesVar != SERIES_VAR_DATA){
		list = document.SelectionForm.data;	
	 	dataType = list.options[list.selectedIndex].value;
	 }
	 
	 list = document.SelectionForm.statistic;	
	 var statType = list.options[list.selectedIndex].value;
	 
	 
	 list = document.SelectionForm.cancer;	
	 site = list.options[list.selectedIndex].value;
	 
	 var excludeMale = false;
		var excludeFemale = false;
		
		for (i in sites_female){
			if (sites_female[i].site == site){	
				excludeMale = true;
				break;
			}
		}
		
		for (i in sites_male){
			if (sites_male[i].site == site){	
				excludeFemale = true;
				break;
			}
		}
	 
	 
	 list = document.SelectionForm.year;
	 var year = list.options[list.selectedIndex].value;

		chkBoxes = document.SelectionForm.elements[SERIES_VAR_RACE_SEX+'[]'];
		
		for (i = 0; i < chkBoxes.length; i++){

			var chkTempVal = chkBoxes[i].value;
			var pos = chkTempVal.indexOf(',');
			var chkValRace  = chkTempVal.substring(0,pos);
			var chkValSex   = chkTempVal.substring(pos+1);

			if (excludeMale) {				
					if (chkValSex == SEX_MALE){
						chkBoxes[i].disabled = true;
						chkBoxes[i].checked = false;
					} else if (chkBoxes[i].disabled){
						chkBoxes[i].disabled = false;									
					} 
				}	else if (excludeFemale) {				
					if (chkValSex == SEX_FEMALE){
						chkBoxes[i].disabled = true;
						chkBoxes[i].checked = false;
					} else if (chkBoxes[i].disabled){
						chkBoxes[i].disabled = false;			
					}				
				} else {
					chkBoxes[i].disabled = false;
				}

				
				if (dataType == DATA_PREVALENCE){
					if (statType == STATISTIC_LIM_DURATION_PREV || statType == '') {
						if (chkValRace == RACE_WHITE_NON_HISPANIC || chkValRace == RACE_IND_AK_NAT){
							chkBoxes[i].disabled = true;
							chkBoxes[i].checked = false;
						}
					} else {
						if (chkValRace == RACE_HISPANIC || chkValRace == RACE_WHITE_NON_HISPANIC || chkValRace == RACE_ASIAN || chkValRace == RACE_IND_AK_NAT){
							chkBoxes[i].disabled = true;
							chkBoxes[i].checked = false;
						}
					}				
				} else if (year == YEAR_01 || year == YEAR_REL_SURV || year == YEAR_5YR_SURVIVAL){
					if (chkValRace == RACE_HISPANIC || chkValRace == RACE_WHITE_NON_HISPANIC || chkValRace == RACE_ASIAN || chkValRace == RACE_IND_AK_NAT){
						chkBoxes[i].disabled = true;
						chkBoxes[i].checked = false;
					}
				}
	}
}





/*function updateYearBox_Data(){

	var list = document.SelectionForm.data;	
	var dataType = list.options[list.selectedIndex].value;
	
	list = document.SelectionForm.year;
	list.disabled = false;
	var prevYear = list.options[list.selectedIndex].value;

	removeAllOptions(list);

	for (i in YEAR_BY_DATA_TYPE[dataType]){
		AddOption('Year_', YEAR_BY_DATA_TYPE[dataType][i].year, YEAR_BY_DATA_TYPE[dataType][i].text, list, prevYear);
  }
  
  // prevalence
  if (dataType == DATA_PREVALENCE){
  	list.selectedIndex = 1;
  	list.disabled = true;
  }
}*/

function updateYearBox(){

	var seriesVar = document.SelectionForm.series.value;
	
	var dataType = '';
	if (seriesVar != SERIES_VAR_DATA){
		list = document.SelectionForm.data;	
		dataType = list.options[list.selectedIndex].value;
	} 
		
	list = document.SelectionForm.statistic;	
	var statType = list.options[list.selectedIndex].value;
	
	list = document.SelectionForm.year;
	list.disabled = false;
	var prevYear = list.options[list.selectedIndex].value;

	removeAllOptions(list);

	if (seriesVar == SERIES_VAR_DATA) {
		AddOption('Year_', YEAR_01, YEAR_01_TEXT, list, prevYear); // 1975-2004
	} else {	
		if (dataType != "" && statType != ""){
			for (i in YEAR_BY_DATA_AND_STAT[dataType][statType]){				
				AddOption('Year_', YEAR_BY_DATA_AND_STAT[dataType][statType][i].year, YEAR_BY_DATA_AND_STAT[dataType][statType][i].text, list, prevYear);
	  	}			
		} else if (dataType != ""){			
			for (i in YEAR_BY_DATA_TYPE[dataType]){				
				AddOption('Year_', YEAR_BY_DATA_TYPE[dataType][i].year, YEAR_BY_DATA_TYPE[dataType][i].text, list, prevYear);
	  	}
  	}	
	}
	
	// prevalence
  if (dataType == DATA_PREVALENCE){
  	list.selectedIndex = 1;
  	list.disabled = true;
  }
}

function updateAgeBox(){

	var seriesVar = document.SelectionForm.series.value;
	
	if (seriesVar == SERIES_VAR_DATA) return;
	
	if (seriesVar != SERIES_VAR_AGE) {
		
		list = document.SelectionForm.data;	
		var dataType = list.options[list.selectedIndex].value;
	
		list = document.SelectionForm.statistic;	
		var statType = list.options[list.selectedIndex].value;
		
		list = document.SelectionForm.age;
		var prevAge = list.options[list.selectedIndex].value;
		removeAllOptions(list);	
		
		AddOption('Age_', AGE_ALL_AGES, AGE_ALL_AGES_TEXT, list, prevAge); // All Ages
	
		if (dataType != DATA_RISK &&
		    !(statType == STATISTIC_AS_RATE || statType == STATISTIC_PROB_OF_DEVELOPING || statType == STATISTIC_PROB_OF_DYING || statType == STATISTIC_COMPLETE_PREV)){
				
		 	AddOption('Age_', AGE_LESS_THAN_50, AGE_LESS_THAN_50_TEXT, list, prevAge); // Ages < 50
		 	AddOption('Age_', AGE_50_PLUS, AGE_50_PLUS_TEXT, list, prevAge); // Ages 50+
		 	AddOption('Age_', AGE_LESS_THAN_65, AGE_LESS_THAN_65_TEXT, list, prevAge); // Ages < 65
		 	AddOption('Age_', AGE_65_PLUS, AGE_65_PLUS_TEXT, list, prevAge); // Ages 65+
		 
		 	AddOption('Age_', AGE_LESS_THAN_20, AGE_LESS_THAN_20_TEXT, list, prevAge); // Ages < 20
		 	AddOption('Age_', AGE_20_49, AGE_20_49_TEXT, list, prevAge); // Ages 20-49
		 	AddOption('Age_', AGE_50_64, AGE_50_64_TEXT, list, prevAge); // Ages 50-64
		 	AddOption('Age_', AGE_65_74, AGE_65_74_TEXT, list, prevAge); // Ages 65-74
		 	AddOption('Age_', AGE_75_PLUS, AGE_75_PLUS_TEXT, list, prevAge); // Ages 75+
		
		}	
	}
}


var mywin = null;
function openWin(pageUrl) {
	var baseUrl = "";
	if( pageUrl != "" ) {
		try {
			if (mywin) mywin.close();
			mywin = window.open(pageUrl,"newwin","height=425px,width=475px,toolbar=0,scrollbars,resizable");
			mywin.focus();
		}
		catch(e) { alert("Error: " + e ); }
	}
	return "";
}

function AddOption(sPreFix, sValue, sText, list, selValue){
	
	var opt = document.createElement('option');
	
	opt.id = sPreFix + sValue;
	opt.value = sValue;
	opt.text  = "" + sText;
			
	try {
		list.add(opt, null);
	} catch (ex) {
		list.add(opt);   // IE
	}	
	
	if (opt.value == selValue){
		opt.selected = true;
	}

}

function removeSites(sites){
	
	var list = document.SelectionForm.cancer;
	for (i in sites){
		var optId = 'cancer_' + sites[i].site;
		opt = document.getElementById(optId);		
		if (opt != null){
			list.remove(opt.index);
		}	
	}
}

function expandDisabledSites(){
	
	var arrSites = new Array (SITE_DIGESTIVE, SITE_FEMALE_GENITAL, SITE_LEUK_LYMPH);
	
	for (i in arrSites){
		var chkId = 'chkCancer_' + arrSites[i];
		chk = document.getElementById(chkId);
		
		if (chk.disabled){
			expandSites(arrSites[i]);
		}		
	}

}

function expandSites (site){
	
	switch (site){
	
		case SITE_LEUK:
			showSite(SITE_LEUK_LYMPH); showSite(SITE_LEUK_MYELOID_AND_MONOCYTIC);
		break;
		
		case SITE_LEUK_LYMPH:
			showSite(SITE_LEUK_LYMPH_ACUTE); showSite(SITE_LEUK_LYMPH_CHRONIC); expandSites (SITE_LEUK);		
		break;
		
		case SITE_LEUK_MYELOID_AND_MONOCYTIC:
			showSite(SITE_LEUK_MYELOID_ACUTE); showSite(SITE_LEUK_MONOCYTIC_ACUTE); showSite(SITE_LEUK_MYELOID_CHRONIC);
		break;
		
		case SITE_ORAL_CAVITY_PHARYNX:
			showSite(SITE_LIP);showSite(SITE_TONGUE);showSite(SITE_SALIVARY_GLAND);showSite(SITE_FLOOR_OF_MOUTH);showSite(SITE_GUM_AND_OTHER);showSite(SITE_OROPHARYNX_AND_TONSIL);
		break;
			
		case SITE_DIGESTIVE:
		  showSite(SITE_ESOPHAGUS);showSite(SITE_STOMACH);showSite(SITE_SMALL_INTESTINE);showSite(SITE_COLON_AND_RECTUM);showSite(SITE_ANUS);
		break;
		
		case SITE_COLON_AND_RECTUM:
			showSite(SITE_COLON);showSite(SITE_RECTUM);
		break;
		
		case SITE_FEMALE_GENITAL:
		  showSite(SITE_CERVIX_UTERI);showSite(SITE_CORPUS_AND_UTERUS);showSite(SITE_OVARY);showSite(SITE_VAGINA);showSite(SITE_VULVA);
		break;

	}	
	
	toggleButton(site, 'Collapse');
	
}

function collapseSites(site) {
	
	switch (site){
	
		case SITE_LEUK:
			collapseSites(SITE_LEUK_LYMPH);
			collapseSites(SITE_LEUK_MYELOID_AND_MONOCYTIC);
			hideSite(SITE_LEUK_LYMPH);hideSite(SITE_LEUK_MYELOID_AND_MONOCYTIC);
		break;
		
		case SITE_LEUK_LYMPH:
			hideSite(SITE_LEUK_LYMPH_ACUTE);hideSite(SITE_LEUK_LYMPH_CHRONIC);
		break;
		
		case SITE_LEUK_MYELOID_AND_MONOCYTIC:		
			hideSite(SITE_LEUK_MYELOID_ACUTE);hideSite(SITE_LEUK_MONOCYTIC_ACUTE);hideSite(SITE_LEUK_MYELOID_CHRONIC);		
		break;
		
		case SITE_ORAL_CAVITY_PHARYNX:
			hideSite(SITE_LIP);hideSite(SITE_TONGUE);hideSite(SITE_SALIVARY_GLAND);hideSite(SITE_FLOOR_OF_MOUTH);hideSite(SITE_GUM_AND_OTHER);hideSite(SITE_OROPHARYNX_AND_TONSIL);
		break;
			
		case SITE_DIGESTIVE:
			collapseSites(SITE_COLON_AND_RECTUM);hideSite(SITE_ESOPHAGUS);hideSite(SITE_STOMACH);hideSite(SITE_SMALL_INTESTINE);hideSite(SITE_COLON_AND_RECTUM);hideSite(SITE_ANUS);
		break;
	
		case SITE_COLON_AND_RECTUM:
			hideSite(SITE_COLON);hideSite(SITE_RECTUM);
		break;
		
		case SITE_FEMALE_GENITAL:
			hideSite(SITE_CERVIX_UTERI);hideSite(SITE_CORPUS_AND_UTERUS);hideSite(SITE_OVARY);hideSite(SITE_VAGINA);hideSite(SITE_VULVA);
		break;
			
	}
	
	toggleButton(site, 'Expand');
}

function showSite(site){
	var site_id = 'site_' + site;
	var row = document.getElementById(site_id);
	row.style.visibility = "visible";
	row.style.display = "";
}


function hideSite(site){
	var site_id = 'site_' + site;
	var row = document.getElementById(site_id);
	row.style.visibility = "hidden";
	row.style.display = "none";
}

function toggleSiteCheckboxes(arrIDs, bDisabled){
	
	prefix = 'chkCancer_';
	
	for (i in arrIDs){
		chkBoxId = prefix + arrIDs[i].site;
		chkBox = document.getElementById(chkBoxId);
		chkBox.disabled = bDisabled;
	}
}

function toggleButton(site, btnName){
	
	var btn_to_hide, btn_to_show, spacer;
	
	if (btnName == 'Expand'){		
		btn_to_hide_id = 'btnCollapse_' + site;	
		btn_to_show_id = 'btnExpand_' + site;	

	} else {
		btn_to_hide_id = 'btnExpand_' + site;	
		btn_to_show_id = 'btnCollapse_' + site;	
	}
	
	btn_to_hide = document.getElementById(btn_to_hide_id);	
	btn_to_show = document.getElementById(btn_to_show_id);

	btn_to_hide.style.display = "none";
	btn_to_show.style.display = "";

}


function removeAllOptions(list){
	var curOptions = list.options;
	for (i = curOptions.length - 1; i > 0; i-- ){
		list.remove(i);
	}
}

function gup( theUrl, name ){  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  var regexS = "[\\?&]"+name+"=([^&#]*)";  var regex = new RegExp( regexS );  var results = regex.exec(theUrl);  if( results == null )    return "";  else    return results;}

function getSeriesValuesFromURL(urlParamToGet){
	retArray = new Array();
	iCount = 0;
	
	// first decode the url
	theUrl = unescape(document.URL);
	
	aTemp = new Array();
	
	aTemp = theUrl.split('?');
	if (aTemp[1] == '')
		return null;
	
	aTemp = aTemp[1].split('#');	
	aTemp = aTemp[0].split('&');

	for (i in aTemp){
		var aParamValPair = aTemp[i].split('=');
		var paramName = aParamValPair[0];
		var paramVal  = aParamValPair[1];
		
		if (paramName == urlParamToGet){
			retArray[iCount] = paramVal;
			iCount++;
		}
		
	}
		
	return retArray;
	
}

