/* Chris - added administration scripting */
/* Chris - added scripting to deal with resource searching */
/* Chris - added scripting index of ie fix */
/* Chris - added search refine */

	if (!Array.prototype.indexOf)
	{
  		Array.prototype.indexOf = function(elt /*, from*/)
  		{
    		var len = this.length >>> 0;
		
    		var from = Number(arguments[1]) || 0;
    		from = (from < 0)
    	     	? Math.ceil(from)
    	     	: Math.floor(from);
    		if (from < 0)
    		  	from += len;
	
    		for (; from < len; from++)
    		{
      		if (from in this &&
        	  	this[from] === elt)
        		return from;
    		}
    		return -1;
  		};
	}

	function searchTaxonomy(language) {
	
		var term;
		var found = false;
		var searchTerms = document.getElementById("searchBox").value;

		var searchArray = new Array();
		var resultArray = new Array();
		
		if (searchTerms != "") {

			searchTerms = searchTerms.toLowerCase();
			searchArray = searchTerms.split(' ');
		
			for (var x = 0; x < searchArray.length; x++) {

				term = searchArray[x];
			
				if (prepositionList.indexOf(term) == -1) {
			
					for (var y = 0; y < taxonomyList.length; y++) {
				
						if (taxonomyList[y].search(term) != -1) {
							found = true;
							resultArray.push(taxonomyList[y]);
						}
				
					}
			
				}
			
			}
		
			if (found) {

				$('#dialog-search').dialog('open');
			
				if (language == 'en') {	

					var message = "<h3>Did you want to filter your search further?</h3>";
					message = message + "<p>No thank you, search for: <a href=\"javascript:document.searchForm.submit()\">" + searchTerms + "</a></p>";
					message = message + "<h3>Refine your search query:</h3>";
					message = message + "<ul style='margin-top:15px;'>";
					for (var z = 0; z < resultArray.length && z < 10; z++) {
						message = message + "<li style='list-style:circle'><a href=\"javascript:changeQuery('" + resultArray[z].replace("'", "\\'") + "')\">" + resultArray[z] + "</a></li>";
					}
					message = message + "</ul>"
				
				} else {

					var message = "<h3>Vouliez-vous filtrer votre recherche encore plus?</h3>";
					message = message + "<p>Non merci, recherchez ce qui suit : <a href=\"javascript:document.searchForm.submit()\">" + searchTerms + "</a></p>";
					message = message + "<h3>Pr&eacute;cisez votre recherche :</h3>";
					message = message + "<ul style='margin-top:15px;'>";
					for (var z = 0; z < resultArray.length && z < 10; z++) {
						message = message + "<li style='list-style:circle'><a href=\"javascript:changeQuery('" + resultArray[z].replace("'", "\\'") + "')\">" + resultArray[z] + "</a></li>";
					}
					message = message + "</ul>"
						
				}


				document.getElementById("search-options").innerHTML = message;
				return false;
		
			} else {
		
				return true;
		
			}

		} else {
		
			return true;
		
		}
		
	}
	
	function changeQuery(query) {

		document.getElementById("searchBox").value = "\"" + query + "\"";
		document.searchForm.submit();
	
	}


	function switchLibrary(counter) {
			
		var optionPosition = document.getElementById("drpSearchLibrary").selectedIndex;
		var optionValue = document.getElementById("drpSearchLibrary").options[optionPosition].value;
		
		document.getElementById("txtSearchValue").value = optionValue;
		
		hideSections(counter)
		
		if (optionPosition != 0) {
			var dropdown = "drpSearchLibrarySection" + optionPosition;
			if (document.getElementById(dropdown).options.length > 1) {
				document.getElementById(dropdown).className = "resourceDropdown";	
			}
		}
		
	}
	
	function switchLibrarySection(row,counter) {

		var dropdown = "drpSearchLibrarySection" + row;
		var optionPosition = document.getElementById(dropdown).selectedIndex;
		var optionValue = document.getElementById(dropdown).options[optionPosition].value;
		
		if (optionPosition != 0) {
			document.getElementById("txtSearchValue").value = optionValue;		
		} else {
			optionPosition = document.getElementById("drpSearchLibrary").selectedIndex;
			optionValue = document.getElementById("drpSearchLibrary").options[optionPosition].value;
			document.getElementById("txtSearchValue").value = optionValue;	
		}
		
		hideSections(counter);
		document.getElementById(dropdown).className = "resourceDropdown";		
		
	}
	
	function hideSections(counter) {
	
		for (var i = 1; i <= counter; i++) {
			var dropdown = "drpSearchLibrarySection" + i;
			document.getElementById(dropdown).className = "resourceInvisible";
		}
		
	}
	
	function buildSearch(type) {
	
		switch(type) {
		
			case "library":
				break;
				
			case "keyword":
				if (document.getElementById("txtSearchKeyword").value == "") {
					document.getElementById("txtSearchValue").value = 0;
				} else {
					document.getElementById("txtSearchValue").value = document.getElementById("txtSearchKeywordHidden").value
				}
				break;
			
			case "title":
				if (document.getElementById("txtSearchTitle").value == "") {
					document.getElementById("txtSearchValue").value = 0;
				} else {
					document.getElementById("txtSearchValue").value = document.getElementById("txtSearchTitle").value
				}
				break;
				
			case "number":
				if (document.getElementById("txtSearchNumber").value == "") {
					document.getElementById("txtSearchValue").value = 0;
				} else {
					document.getElementById("txtSearchValue").value = document.getElementById("txtSearchNumber").value
				}
				break;
		
		}
	
		document.getElementById("txtSearchType").value = type;
		document.formSearch.submit();
	
	}
	
function submitOnEnter(e, type) {
	var ENTER_KEY = 13;
	var code = "";
      
	if (window.event) // IE
		{
	code = e.keyCode;
	 }
            else if (e.which) // Netscape/Firefox/Opera
            {
                code = e.which;
            }
            
            if (code == ENTER_KEY) {
				openDialog()
              	validateSearch(type)
                return false;
            }
 }
 
 function searchOnEnter(e) {
	var ENTER_KEY = 13;
	var code = "";
      
	if (window.event) // IE
		{
	code = e.keyCode;
	 }
            else if (e.which) // Netscape/Firefox/Opera
            {
                code = e.which;
            }
            
            if (code == ENTER_KEY) {
				
              	searchTaxonomy();
                return false;
            }
 }

function trim(str) {
	var newstr;
	newstr = str.replace(/^\s*/, "").replace(/\s*$/, ""); 
	newstr = newstr.replace(/\s{2,}/, " "); 
	return newstr;
} 

function validateSearch (type, language) {
	
	switch(type) {
		
			case "library":
				if (document.getElementById("drpSearchLibrary").selectedIndex == 0) {
					if (language == 0) {
						alert("Please select a library option");
					} else {
						alert("Choisissez une biblioth\350que");
					}
				}				
				else {
					buildSearch(type);		
				}
				break;
				
			case "keyword":
				if (trim(document.getElementById("txtSearchKeyword").value) == "") {
					if (language == 0) {
						alert("Please select a keyword");	
					} else {
						alert("Choisissez un mot cl\351");
					}	
				}
				else { /* buildKeyword function can be found on search resources fragment */
					buildKeyword();
					buildSearch(type);
				}
				break;
			
			case "title":
				if (trim(document.getElementById("txtSearchTitle").value) == "") {
					if (language == 0) {
						alert("Please insert a value in the title/description search box");	
					} else {
						alert("Inscrivez une valeur dans la bo\356te de recherche Titre / Description");
					}
				}
				else {
					buildSearch(type);		
				}
				break;
				
			case "number":
				if (trim(document.getElementById("txtSearchNumber").value) == "") {
					if (language == 0) {	
						alert("Please insert a value in the publication search box");	
					} else {
						alert("Inscrivez une valeur dans la bo\356te de recherche Publications");
					}
				}
				else {
					buildSearch(type);		
				}
				break;
		
		}

}	


function switchValue(type,dropmenu,textbox) {
	switch(type) {
		case "news":
			var optionPosition = document.getElementById(dropmenu).selectedIndex;
			var optionValue = document.getElementById(dropmenu).options[optionPosition].value;
			if (optionValue == 1 || optionValue == 2) {
				document.getElementById(textbox).value = 2;
			} else {
				document.getElementById(textbox).value = 1;
			}
			break;
	}
}

function switchLocation(typemenu,textbox,pagelocation) {
	var optionPosition = document.getElementById(typemenu).selectedIndex;
	var optionValue = document.getElementById(typemenu).options[optionPosition].value;
	if (optionValue == 2) {
		document.getElementById(textbox).className = "formInput";
		document.getElementById(textbox).value = "";		
	} else {
		document.getElementById(textbox).className = "formInvisible";
		document.getElementById(textbox).value = pagelocation;
	}
}

function insertItem(insertmenu,removemenu,textbox,menutype) {

	var add = false;
	
	var insertPosition;
	var insertValue;
	
	if (menutype == "dropdown") {
		insertPosition = document.getElementById(insertmenu).selectedIndex;
		insertValue = document.getElementById(insertmenu).options[insertPosition].value;
	} else {
		insertValue = document.getElementById(insertmenu).value;	
	}

	if (insertValue != 0) {
		if (document.getElementById(textbox).value == "") {
			add = true;
			document.getElementById(textbox).value = "|" + insertValue + "|";
		} else {
			var list = document.getElementById(textbox).value;
			if (list.search(insertValue) == -1) {
				add = true;
				document.getElementById(textbox).value = list + insertValue + "|";
			}
		}
	}

	if (add) {				
		var optionNew = document.createElement("option");
		optionNew.text = insertValue;
		optionNew.value = insertValue;					
		document.getElementById(removemenu).options.add(optionNew);			
		document.getElementById(removemenu).selectedIndex = document.getElementById(removemenu).options.length - 1;
	}

	if (menutype == "dropdown") {
		document.getElementById(insertmenu).selectedIndex = 0;
	} else {
		document.getElementById(insertmenu).value = "";	
	}
	
}

function removeItem(removemenu,textbox) {
	var list = document.getElementById(textbox).value;
	var optionPosition = document.getElementById(removemenu).selectedIndex;
	var optionValue = document.getElementById(removemenu).options[optionPosition].value;
	optionValue = "|" + optionValue + "|";
	document.getElementById(removemenu).remove(optionPosition);
	if (list != "") {
		list = list.replace(optionValue,"|");
		if (list.length == 1) {
			list = "";
		}
		document.getElementById(textbox).value = list;
	}
}


function show(id) {
	if (document.getElementById("rightbox")) {
		document.getElementById("rightbox").style.display = 'block';
	}
	var d = document.getElementById(id);
	for (var i = 0; i <= 40; i++) {
		if (document.getElementById('smenu' + i)) {
			if (document.getElementById('smenu' + i).style.display != 'block')
			document.getElementById('smenu' + i).style.display = 'none';
		}
	}
	if (d) {d.style.display = 'block';}	
}

function showHide(element_id) {
	if (document.getElementById && document.getElementById(element_id) && document.getElementById(element_id).style) {
		var menu  = document.getElementById(element_id);
		var arrow = document.getElementById(element_id + '_arrow');
		var title = document.getElementById(element_id + '_arrow');

		if (menu.style.display == "block") {
			menu.style.display = "none";
			if (arrow.src) { arrow.src = arrow.src.replace("down","right");}
			if (title.title) { title.title = title.title.replace("Close","Open");} 
		}
		else {
			menu.style.display = "block";
			if (arrow.src) { arrow.src = arrow.src.replace("right","down");}
			if (title.title) { title.title = title.title.replace("Open","Close");}
			}
		}
}

function showHideSimple(element_id) {
	if (document.getElementById && document.getElementById(element_id) && document.getElementById(element_id).style) {
		var menu  = document.getElementById(element_id);
		if (menu.style.display == "block") {
			menu.style.display = "none";
		}
		else {
			menu.style.display = "block";
		}
	}
}

function changeHeight(new_height) {
	document.getElementById('banner').style.height = new_height + 'px';
}
