var caption_indexes      = new Array();

var timecodes = new Array();
timecodes[0] = 0;
timecodes[1] = 115000;
timecodes[2] = 170000;
timecodes[3] = 340000;
timecodes[4] = 404000;
timecodes[5] = 492000;
timecodes[6] = 605000;
timecodes[7] = 658000;
timecodes[8] = 729000;
timecodes[9] = 788000;
timecodes[10] = 832000;
timecodes[11] = 887000;
timecodes[12] = 975000;
timecodes[13] = 983000;
timecodes[14] = 1017000;
timecodes[15] = 1026000;
timecodes[16] = 1040000;
timecodes[17] = 1133000;
timecodes[18] = 1168000;
timecodes[19] = 1269000;
timecodes[20] = 1311000;
timecodes[21] = 1377000;
timecodes[22] = 1460000;
timecodes[23] = 1553000;
timecodes[24] = 1636000;
timecodes[25] = 1719000;
timecodes[26] = 1891000;
timecodes[27] = 2138000;


var captions = new Array();
captions[0] = "Declining Populations|";
captions[1] = "Population Decline|";
captions[2] = "Countries and Territories ExperiencingPopulation Decline as of 2007:U.S. Census Bureau Estimates and Projections|";
captions[3] = "Births, Deaths, and Natural Increase in Population: Russian Federation, 1960-2007|";
captions[4] = "Estimated “Excess Mortality” in Russia, 1992-2006[Benchmarked against Russian Mortality Schedules for 1986/87; rounded]|";
captions[5] = "Total Fertility Rate of Less Than 2.1: U.S. Census Bureau Projections for the World, 2008|Updated 03/04/08 MDavy";
captions[6] = "How Much Of Humanity Currently Lives in Places With Fertility Levels Below Replacement?Some Recent Estimates, Approximations and Projections|";
captions[7] = "TFR, 1950/55 – 2005/2010|";
captions[8] = "How Low Can We Go? We Don’t Know!Total Fertility Rates for Japan and “Asian Tigers”, 1975-2007|";
captions[9] = "But we do know fertility rates can turn on a dime…Total Fertility Rate: Iran, 1972-2000|";
captions[10] = "Population Living in Countries Experiencing Population Decline|";
captions[11] = "World Population Living in Countries w/NRR \<1|";
captions[12] = "Germany’s Population Prospects 1950-2050,As Assessed by the German Federal Statistical Office in 2006|";
captions[13] = "Germany 2005 vs. 2050|";
captions[14] = "Italy 2005 vs. 2050|";
captions[15] = "Japan 2005 vs. 2050|";
captions[16] = "“Replacement Migration”? Average Annual Net Number of Migrants between 2000 and 2050, per Million Inhabitants in 2000, by UNPD Scenario and Country or Region|";
captions[17] = "Someone Has To Live There“Replacement Migration”: Per cent of post-1995 migrants and their descendants in total population in 2050, by scenario and country or region|";
captions[18] = "Graying Societies: Made by BabiesIllustrative Percentages of Population 65+:  Stable Populations, Coale-Demeny “West Model”, With Alternative Fertility (GRR) and Mortality (LE) Schedules {Population structures with over 12% over 65 in boldface]|";
captions[19] = "Where Have All The Families Gone?Population Structure of Shanghai: 2000 (Shaded) vs. 2040 (projected)|";
captions[20] = "Will Demographic Differentiation Mean International Discord?|";
captions[21] = "Declining populations|";
captions[22] = "Projected number of countries with deaths exceeding births|";
captions[23] = "Countries with population reductions exceeding one million, 2005-2050|";
captions[24] = "Countries with population reductions exceeding 15 per cent, 2005-2050|";
captions[25] = "Russian Federation: population by broad age groups 2005 and 2050|";
captions[26] = "Bulgaria: population by broad age groups 2005 and 2050|";
captions[27] = "Discussion|";


function create_caption_indexes()
{
	var i;
	var running_total=0;
	caption_indexes[0]=running_total;
	for(i=1; i <= captions.length; i++)
	{
		running_total = running_total + captions[i-1].length + 1;
		caption_indexes[i]=running_total;
	}
	return running_total;
}
function find_instances2(search_term) {
  var caption;
  var new_search_term;
  var regular_expression;  
  var s1='';     
  
  s1="<html><head>"; 
  s1=s1+"<link rel=\"stylesheet\" type=\"text/css\" href=\"default.css\">";
  s1=s1+"<script src=\"search.js\"></script></head>";   
  s1=s1+"<body>";
  s1=s1+"<div id=\"search\"><form name=\"form1\" onSubmit=\"find_instances2(document.form1.searchme.value);return false;\">"; 
  s1=s1+"<span style='font-family:Helvetica,Arial;font-size:11px;font-weight:bold;'>Search slide notes and transcript:</span><br/>";
  s1=s1+"<input type=\"text\" size=\"25\" name=\"searchme\" value=\"\">"; 
  s1=s1+"<a href=\"#\" onClick=\"find_instances2(document.form1.searchme.value);return false;\"><img src=\"search.gif\" border=\"0\" alt=\"Search\"></a>"; 
  s1=s1+"</form></div>";   
  s1=s1+"<span style='font-family:Helvetica,Arial;font-size:11px;font-weight:bold;'>";
  s1=s1+'<hr width="100%"/>\n';
  s1=s1+"Search results for: \"" + search_term.toUpperCase() + "\"";

  s1=s1+'<hr width="100%"/>\n';
  //CHECK THE SEARCH TERM TO MAKE SURE IT IS LEGIT--STRIP OUT FINAL *, BAD PUNCTUATION, ETC.
  if (search_term.length > 0) {
    new_search_term = filter_search_term(search_term);
    regular_expression = new RegExp(new_search_term, "gi");

    for(i = 0; i < captions.length; ++i) {
      caption = captions[i];
      if (regular_expression.test(caption)) {
        href = make_href(i, caption);
        s1=s1+href + "<br>\n";
      }
    }
  }
  //s1=s1+"<br><br>End of search results";
  s1=s1+"</span></body></html>";

parent.tabcontent.document.getElementById('search').innerHTML="";  
parent.tabcontent.document.getElementById('search').innerHTML=s1;  
  
}
function find_instances3(search_term) {
  var caption;
  var new_search_term;
  var regular_expression;  
  var s1='';     
  
  s1="<html><head>"; 
  s1=s1+"<link rel=\"stylesheet\" type=\"text/css\" href=\"default.css\">";
  s1=s1+"<script src=\"search.js\"></script></head>";   
  s1=s1+"<body><a href=\"#\" onClick=\"javascript:parent.ChangeTab('keywords','search','keywordsResults','outline');parent.TabSelected(2);return false;\"><< Back to Keywords</a><br/>";
  s1=s1+"<span style='font-family:Helvetica,Arial;font-size:11px;font-weight:bold;'>";
  s1=s1+'<hr width="100%"/>\n';
  s1=s1+"Slides containing keyword: \"" + search_term.toUpperCase() + "\"";

  s1=s1+'<hr width="100%"/>\n';
  if (search_term.length > 0) {
    new_search_term = filter_search_term(search_term);
    regular_expression = new RegExp(new_search_term, "gi");

    for(i = 0; i < captions.length; ++i) {
      caption = captions[i];
      if (regular_expression.test(caption)) {
        href = make_href2(i, caption);
        s1=s1+href + "<br>\n";
      }
    }
  }
  //s1=s1+"<br><br>End of keyword results";
  s1=s1+"</span></body></html>";
  
parent.tabcontent.document.getElementById('keywords').style.display="none";
parent.tabcontent.document.getElementById('keywordsResults').style.display="block";
parent.tabcontent.document.getElementById('keywordsResults').innerHTML="";  
parent.tabcontent.document.getElementById('keywordsResults').innerHTML=s1;  
  
}

function filter_search_term(search_term) {
  new_search_term = filter_out_bad_punctuation(search_term);
  regexp_period = /\./gi;
  regexp_asterisk = /\*/gi;
  regexp_many_asterisks = /[\*][\*]+/gi;
  regexp_final_asterisk = /(\w*)\*$/gi;
  regexp_question = /\?/gi;

  period_replace = 	 "\\\\.";
  many_asterisks_replace = "\*";
  asterisk_replace = "[A-Za-z_&\\-]*";
  question_replace = ".";

  new_search_term1 = new_search_term.replace(regexp_period,period_replace);
  new_search_term2 = new_search_term1.replace(regexp_many_asterisks,many_asterisks_replace);
  new_search_term3 = new_search_term2.replace(regexp_final_asterisk,"$1");
  new_search_term4 = new_search_term3.replace(regexp_asterisk,asterisk_replace);
  new_search_term5 = new_search_term4.replace(regexp_question,question_replace);

  filtered_search_term = new_search_term5;
  return filtered_search_term;
}

function filter_out_bad_punctuation(search_term)
{
		regexp_backslash = 	 /\\/gi;
		regexp_slash = 	         /\//gi;
		regexp_ampersand = 	 /\&/gi;
		regexp_plus = 		 /\+/gi;

		regexp_openparen = 	 /\(/gi;
		regexp_closeparen = 	 /\)/gi;
		regexp_openbracket =	 /\[/gi;
		regexp_closebracket =	 /\]/gi;
		regexp_carrot =		 /\^/gi;
		regexp_dollar = 	 /\$/gi;
		regexp_bar =		 /\|/gi;

		backslash_replace = 	 "\\\\";
		ampersand_replace = 	 "\\&";
		plus_replace =   	 "\\+";
		slash_replace =  	 "\\/";
		openbracket_replace =	 "\\[";
		closebracket_replace =	 "\\]";
		openparen_replace = 	 "\\(";
		closeparen_replace =  	 "\\)";

		carrot_replace =	"\\^";
		dollar_replace =	"\\$";
		bar_replace =		"\\|";

		search_term1  = search_term.replace(regexp_backslash,backslash_replace);
		search_term2  = search_term1.replace(regexp_slash,slash_replace);
		search_term3  = search_term2.replace(regexp_ampersand,ampersand_replace);
		search_term4  = search_term3.replace(regexp_plus,plus_replace);
		search_term5  = search_term4.replace(regexp_openparen,openparen_replace);
		search_term6  = search_term5.replace(regexp_closeparen,closeparen_replace);
		search_term7  = search_term6.replace(regexp_openbracket,openbracket_replace);
		search_term8  = search_term7.replace(regexp_closebracket,closebracket_replace);
		search_term9  = search_term8.replace(regexp_carrot,carrot_replace);
		search_term10 = search_term9.replace(regexp_dollar,dollar_replace);
		search_term11 = search_term10.replace(regexp_bar,bar_replace);

		punctuation_filtered_search_term = search_term11;

		return punctuation_filtered_search_term;
}

function make_href(caption_index, searched_caption)
{
	var caption = captions[caption_index];
	var timecode = timecodes[caption_index];
	var vid_string = get_video_string(timecode);
	var href = "\n <a href='#' OnClick='" + vid_string + ";return false;'>";
	href += searched_caption.substring(0, searched_caption.indexOf('|')) + "</a>";
	bullet_string = "Slide " + (caption_index +1) + ":  ";
	output_string = bullet_string + href;
	return output_string;
	return href;
}
function make_href2(caption_index, searched_caption)
{
	var caption = captions[caption_index];
	var timecode = timecodes[caption_index];
	var vid_string = get_video_string(timecode);
	var href = "\n <a href='#' OnClick='" + vid_string + ";return false;'>";
	href += searched_caption.substring(0, searched_caption.indexOf('|')) + "</a>";
	bullet_string = "Slide " + (caption_index +1) + ":  ";
	output_string = bullet_string + href;
	return output_string;
	return href;
}

function get_video_string(actual_timecode)
{
	var vid_string = "";
	//vid_string += "top.videoFrame.seek(" + actual_timecode + ")";
	vid_string += "parent.BuildPlayer(\"ERROR\"," + actual_timecode + ")";
	return vid_string;
}

/**********************
function search_term_is_a_digit(search_term)
{
	var test = parseInt(search_term);
	if (test >= 0 && test <= 9)
		return true;
	else
		return false;
}
**********************/
