var caption_indexes      = new Array();

var timecodes = new Array();
timecodes[0] = 0;
timecodes[1] = 54000;
timecodes[2] = 110000;
timecodes[3] = 145000;
timecodes[4] = 231000;
timecodes[5] = 257000;
timecodes[6] = 282000;
timecodes[7] = 319000;
timecodes[8] = 352000;
timecodes[9] = 408000;
timecodes[10] = 587000;
timecodes[11] = 607000;
timecodes[12] = 623000;
timecodes[13] = 637000;
timecodes[14] = 668000;
timecodes[15] = 752000;
timecodes[16] = 765000;
timecodes[17] = 774000;
timecodes[18] = 813000;
timecodes[19] = 847000;
timecodes[20] = 977000;
timecodes[21] = 1412000;
timecodes[22] = 1475000;
timecodes[23] = 1543000;
timecodes[24] = 1637000;
timecodes[25] = 1766000;
timecodes[26] = 1840000;
timecodes[27] = 1908000;
timecodes[28] = 1998000;
timecodes[29] = 2061000;


var captions = new Array();
captions[0] = "The Theoretical and Political Framing of the Population Factor in Development|1";
captions[1] = "The impact of silence….|2";
captions[2] = "Two central questions about population:|3";
captions[3] = "Classical and economic theories of fertility decline:|";
captions[4] = "Classical and economic theories of fertility decline:|";
captions[5] = "Where does the demand for a smaller family planning come from?|6";
captions[6] = "Where does the demand for a smaller family planning come from?|7";
captions[7] = "“Opportunity” model|";
captions[8] = "Normal Consumer Behavior|";
captions[9] = "Barriers – tangible and intangible|10";
captions[10] = "Sequence toward silence (PERFECT STORM)|11";
captions[11] = "Sequence toward silence (PERFECT STORM)|12";
captions[12] = "Sequence toward silence (PERFECT STORM)|13";
captions[13] = "Sequence toward silence (PERFECT STORM)|14";
captions[14] = "Sequence toward silence (PERFECT STORM)|15";
captions[15] = "Sequence toward silence (PERFECT STORM)|16";
captions[16] = "Sequence toward silence (PERFECT STORM)|17";
captions[17] = "Sensitivity when there appears to be no acceptable answer …|18";
captions[18] = "Sensitivity when there appears to be no acceptable answer …|19";
captions[19] = "Identifying a precondition for development|20";
captions[20] = "Discussion|";
captions[21] = "QuestionsJoel E. Cohen|";
captions[22] = "Questions|";
captions[23] = "1. What is the population problem (global or local)?|";
captions[24] = "1. What is the population problem (global or local) (continued)?|";
captions[25] = "1. What is the population problem (global or local) (continued)?|";
captions[26] = "3. What are the right models?|";
captions[27] = "4. What are adequate tests?|";
captions[28] = "4. What are adequate tests?|";
captions[29] = "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;
}
**********************/