﻿/* *********************************************************
	Globals	

   ********************************************************* */
var SearchFieldInstruction = "Skriv søkeord her...";
var reloadSearchXML = false;





/* *********************************************************
	doSearch()
	
	Read txtSearchField (SearchString) and chkFreetextSearch,
	and performs either a title search (builtin) or freetext search (IS)

   ********************************************************* */
function doSearch(){
	try {
		

		//
		// Get and validate searchstring...
		//
		var SearchString = document.getElementById("txtSearchField").value;

		if( (SearchString == SearchFieldInstruction) || (SearchString.length == 0)) {
			endSearch();
			return;
		}


		//
		// Check if we should do a freetext search...
		//
		var UseFreetextSearch = document.getElementById("chkFreetextSearch").checked;

		if(UseFreetextSearch) {
			
			//
			// Freetext search...
			//
			
			gridSearch.clearConfigCookie();
			gridSearch.clearAndLoad("freetextsearch.asp?s=" + SearchString + "&hb=" + curBookID);
			reloadSearchXML = true;
			
		} else {

			//
			// Title search
			//
			
			if(reloadSearchXML) {
				//
				// Reload searchxml, with a callback to do the search...
				//
				gridSearch.clearConfigCookie();
				gridSearch.clearAndLoad(curSearchXML, doTitleSearch);
				//setTimeout("doTitleSearch(\'" + SearchString + "\')", 50)
				reloadSearchXML = false;
			} else {
				// Ordniary search...
				doTitleSearch();
			}
			
		}
		
		//
		// Show searchGrid, hide treeGrid...
		//
		document.getElementById('SearchGrid').style.display = "block";
		document.getElementById('TreeGrid').style.display = "none";
		
		
	} catch (e) {
		alert("Feil oppstod under søk: " + e);
	}
}




/* *********************************************************
	doTitleSearch()
	
	Called by doSearch(), doTitleSearch() splits the searchstring by
	whitespace and applies a filter on gridSearch for every token.
   ********************************************************* */

function doTitleSearch() {
	var SearchString = document.getElementById("txtSearchField").value;
	var SearchTokens = SearchString.split(" ");
	for(var i = 0; i<SearchTokens.length; i++) {
		append = false;
		if(i > 0) {
			append = true;
		}
		
		// Apply filter...
		gridSearch.filterBy(2, SearchTokens[i], append);
	}
}




/* *********************************************************
	endSearch()
	
	Called many places. This functions simply resets txtSearchField,
	hides SearchGrid, and shows TreeGrid...
   ********************************************************* */
function endSearch() {

	document.getElementById("txtSearchField").style.color = "#bbbbbb";
	document.getElementById("txtSearchField").value = SearchFieldInstruction;

	document.getElementById('SearchGrid').style.display = "none";
	document.getElementById('TreeGrid').style.display = "block";
}





/* *********************************************************
	SearchFieldFocused()	
	
	Remove instruction string from SearchField, and set another
	font color...
   ********************************************************* */

function SearchFieldFocused() {
	var SearchField = document.getElementById("txtSearchField");
	
	if( SearchField.value == SearchFieldInstruction)  {
			SearchField.style.color = "#15428b";
			SearchField.value = "";
	} else if (SearchField.style.color == "#bbbbbb") {
			SearchField.style.color = "#15428b";
	}
}




/* *********************************************************
	SearchFieldBlured()	
	
	If SearchField was left with nothing in it, insert the instruction
	string and dim the color...
   ********************************************************* */

function SearchFieldBlured() {
	var SearchField = document.getElementById("txtSearchField");
	if(SearchField.value.length == 0) {
		SearchField.style.color = "#bbbbbb";
		SearchField.value = SearchFieldInstruction;
	}
}



