/* Adapted from http://stackoverflow.com/questions/1428645/search-through-a-big-list-fast-with-jquery */
var abbrs = {};
	
jQuery(document).ready(function() {
	
	jQuery('#archive li').each(function(i){
		abbrs[jQuery.trim(jQuery(this).text().toLowerCase())] = i;
	});
	
	
	jQuery('#archivesearch').focus().keyup(function(e){
		SearchList(jQuery('#archivesearch'),e) /* update search as user types */
	});
	
	jQuery('#archivesearchtype1,#archivesearchtype2').change(function() {
		SearchList(jQuery('#archivesearch'),null) /* update search if type is changed */
	});
	
	
	
});

function SearchList(o,e) {
	
	//alert(o)
	
	if(o.val().length >= 1){
			jQuery('#archive_noresults').hide() /* Hide any messages to user */
			jQuery('#archive li').hide(); /* Hide all */
			var filterBy = o.val().toLowerCase();
			
			var iSearchResults = 0
			
			var sSearchType =  jQuery("input[name='archivesearchtype']:radio:checked").val()
			
			for (var abbr in abbrs) {
				jQuery.log("abbr: " + abbr + " filter: " + filterBy + " filterBy.length: " + filterBy.length)
				if (sSearchType == "startswith") {
					/* Filter by start part of article title string */
					if(abbr.substring(0,filterBy.length).toLowerCase() == filterBy) {
					   var li = abbrs[abbr];
					   jQuery('#archive li:eq('+li+')').show(); //.css("color","red");
					   iSearchResults++ 
					}
				} else {
					/* Filter by any part of article title string */
					if (abbr.indexOf(filterBy) !== -1) {
					   var li = abbrs[abbr];
					   jQuery('#archive li:eq('+li+')').show(); //.css("color","red");
					   iSearchResults++ 
					}
				}
			} 
			
			if (iSearchResults == 0) {
				jQuery('#archive_noresults').show()
			}
						  
	} else {
			jQuery('#archive li').show();        
	}
	
	if(e != null) { 
		if(e.keyCode == 13) {
				o.val('');
				jQuery('#archive li').show();
		} 
	}

}
