


/*===============================
 Load Definition from URL String
 ================================
 */
 	
function loaddefinition()
{

  //find parameter..
  var name="query"; //parameter name
		
  var searchinput = document.getElementById('search_input');
  var listbox = document.getElementById('index_list');
  
  var querystring = "";	
	
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  
  if( results == null ){
    	querystring = "";
  }else{
    	querystring = results[1];
   }

   //Now that we have the definition page name, load it into the iframe:
   if(querystring){
	   
		//querystring = normalize_string(querystring); 
		document.getElementById('definition_frame').src = querystring; //load the definition
		
		//update the index:
		/* Bug: if I do this - it works, but then the history gets messed up.. going back will bring you back to the right index, but not the right definition */
		/*
		var termarray = listbox.options;
	
	
		for( i = 0; i < termarray.length; i ++){
			
			if(termarray[i].value == querystring){
								
					listbox.selectedIndex = termarray[i].index; //change list
					searchinput.value = termarray[i].text;
					
					return;
			}
		}	*/
		
		
	}
	
	return true;
}

	
 	
function changedef(pagename)
{
 
	var searchinput = document.getElementById('search_input');
	var listbox = document.getElementById('index_list');
	var selectedI = listbox.selectedIndex;
	
	if( selectedI >= 0){

		document.getElementById('definition_frame').src = listbox.options[selectedI].value;
		searchinput.value = listbox.options[selectedI].text;

	}	
		
	return true;
}


//--------------------------------------------
// Update Index View (from the Child iFrame **)
//---------------------------------------------
function update_index(pagename){
	
	/*
	var searchinput = parent.document.getElementById('search_input');
	var listbox = parent.document.getElementById('index_list');
	
	
	var termarray = listbox.options;
	
	pagename = pagename.toLowerCase();
	
	for( i = 0; i < termarray.length; i ++){
		
		if(termarray[i].value == pagename){
							
				listbox.selectedIndex = termarray[i].index; 
				searchinput.value = termarray[i].text;
				
				return;
		}
	}	
	*/
	
	//Otherwise, the term is not in the current index, so load the A to Z index (without creating a history)
	//parent.location.replace('atoz_index.html?query=' + pagename);
	//both of these lines work - but they mess up the history
	//parent.location.href = 'atoz_index.html?query=' + pagename;
}	

//--------------------------------------------
// Update Index View (from the main page **)
//---------------------------------------------
function  update(pagename){
	
	
}


//--------------------------------
// Helper Function - convert any strings to lower case, whitespace becomes underscore
//--------------------------------
function normalize_string(str)
{	
	str = str.replace(/\s+/g,'_') // change all whitespaces to underscore
	str = str.replace(/(^\s)|(\s$)/g,'') // trim begin and end spaces
	str = str.toLowerCase();//convert to all lower case
	
	str = str.replace(/,/g,''); //replace commas with nothing
			
	alert('string: ' + str);
	
	return str; 
}

//--------------------------------
// On Search Change
//--------------------------------
function search_change(){
	
	var searchinput = document.getElementById('search_input');
	var definitionframe = document.getElementById('definition_frame');
	var listbox = document.getElementById('index_list');
	
	var haystack_term = "";
	var needle = "";
	
	//alert('search value: ' + searchinput.value);
	
	var termarray = listbox.options;
	
	//alert('term 1: ' + termarray[1].text);
	//alert('term:' + termarray[12].text + ' index of b: ' + termarray[12].text.indexOf('b'));
	
	for( i = 0; i < termarray.length; i ++){
	
		haystack_term = termarray[i].text.toLowerCase();
		needle = searchinput.value.toLowerCase();
			
		if(haystack_term.indexOf(needle) == 0){
				//alert('found in term: ' + termarray[i].value);
				
				//alert('return: ' + termarray[i].value + ' index: ' + termarray[i].index);
				
				listbox.selectedIndex = termarray[i].index; //change list
				definitionframe.src = termarray[i].value; //change definition
				
				return;
		}
	}		
}