function clearSearchTips(id) {
  if($('show_tips') == null || $('show_tips').value == 0) {
    $(id).value = '';
    if($('show_tips') != null) {
      $('show_tips').value = 1;
    }
    $(id).setStyle({
    	color: '#000000',
    	fontStyle: 'normal'
      });
   }
}

function restoreSearchTips(id, msg) {
  if($(id).value == '') {
    $(id).value = msg;
    if($('show_tips') != null) {
      $('show_tips').value = 0;
    }
    $(id).setStyle({
    	color: '#999999',
    	fontStyle: 'italic'
       });
    }
 }

function hideElementsOnLoad(){
	var hideAdvancedMenus = checkAdvancedMenuStatus();
	if(hideAdvancedMenus == true){
		$('advancedSearchMenus','rangeMenuRow','FGenreMenu','NFGenreMenu','lessonSkillsRow').invoke('hide');
		resetMenus();
	}
	else{
		showAdvancedMenus();
	}
	Field.focus('searchTerms');
}

function showRangeMenusFromLevelType(){
	$('razLevelMenu','fountasPinnellMenu','draMenu','readingRecoveryMenu','gradeMenu').invoke('hide');
	
	var levelTypeSelected = $('levelTypeMenu').getValue();
	
	switch(levelTypeSelected){
		case 'RAZ':
		    $('rangeMenuRow','razLevelMenu').invoke('show');
		break;
		
		case 'Fountas Pinnell':
		    $('rangeMenuRow','fountasPinnellMenu').invoke('show');
		break;
		
		case 'DRA':
		    $('rangeMenuRow','draMenu').invoke('show');
		break;
		
		case 'Reading Recovery':
		    $('rangeMenuRow','readingRecoveryMenu').invoke('show');
		break;
		
		case 'Grade':
		    $('rangeMenuRow','gradeMenu').invoke('show');
		break;
		
		default:
			$('rangeMenuRow','razLevelMenu','fountasPinnellMenu','draMenu','readingRecoveryMenu','gradeMenu').invoke('hide');
		break;
	}
}

function showGenreMenusFromFNF(){
	var genreSelected = $('allGenreMenu').getValue();
	var fGenreSelected = $('FGenreMenu').getValue();
	var nfGenreSelected = $('NFGenreMenu').getValue();
	var genreStart = 0;
	var fnfStart = "All";

	changeFNFMenu();
	
	if(genreSelected != genreStart){
		if(navigator.appName != "Microsoft Internet Explorer"){
		    if($('FGenreMenu').contains(genreSelected)){
			    $('FGenreMenu').setValue(genreSelected);
			    $('NFGenreMenu').setValue(genreStart);
			    $('allGenreMenu').setValue(genreStart);
			    $('fnfMenu').setValue('Fiction');
		    }
		    else{
			    $('NFGenreMenu').setValue(genreSelected);
			    $('FGenreMenu').setValue(genreStart);
			    $('allGenreMenu').setValue(genreStart);
			    $('fnfMenu').setValue('Nonfiction');
		    }
		    changeFNFMenu();   
		}
		else{
		    var menuOptionExists = containsElement($('FGenreMenu'), genreSelected);
		    if(menuOptionExists){
		    	$('FGenreMenu').setValue(genreSelected);
		    	$('NFGenreMenu').setValue(genreStart);
		    	$('allGenreMenu').setValue(genreStart);
		    	$('fnfMenu').setValue('Fiction');
		    }
		    else{
		    	$('NFGenreMenu').setValue(genreSelected);
		    	$('FGenreMenu').setValue(genreStart);
		    	$('allGenreMenu').setValue(genreStart);
		    	$('fnfMenu').setValue('Nonfiction');
		    }
		    changeFNFMenu();
		}
	}
	else if($('FGenreMenu').getValue() != genreStart){
		$('FGenreMenu').setValue(fGenreSelected);
		$('NFGenreMenu').setValue(genreStart);
		$('allGenreMenu').setValue(genreStart);
		$('fnfMenu').setValue('Fiction');
	}
	else if($('NFGenreMenu').getValue() != genreStart){
		$('NFGenreMenu').setValue(nfGenreSelected);
		$('FGenreMenu').setValue(genreStart);
	    $('allGenreMenu').setValue(genreStart);
	    $('fnfMenu').setValue('Nonfiction');
	}
	else if($('allGenreMenu').getValue() == genreStart){
		$('allGenreMenu').setValue(genreStart);
		$('FGenreMenu').setValue(genreStart);
		$('NFGenreMenu').setValue(genreStart);
	}
	else if($('FGenreMenu').getValue() == genreStart){
		$('allGenreMenu').setValue(genreStart);
		$('FGenreMenu').setValue(genreStart);
		$('NFGenreMenu').setValue(genreStart);
		$('fnfMenu').setValue('Fiction');
	}
	else if($('NFGenreMenu').getValue() == genreStart){
		$('allGenreMenu').setValue(genreStart);
		$('FGenreMenu').setValue(genreStart);
		$('NFGenreMenu').setValue(genreStart);
		$('fnfMenu').setValue('Nonfiction');
	}
	changeFNFMenu();
}

function changeFNFMenu(){
	var fnfSelected = $('fnfMenu').getValue();
	var genreStart = 0;
	
	switch(fnfSelected){
		case 'Fiction':
		    $('allGenreMenu', 'NFGenreMenu').invoke('hide');
		    $('FGenreMenu').show();
		    $('allGenreMenu').setValue(genreStart);
		    $('NFGenreMenu').setValue(genreStart);
		break;
		
		case 'Nonfiction':
		    $('allGenreMenu','FGenreMenu').invoke('hide');
		    $('NFGenreMenu').show();
		    $('allGenreMenu').setValue(genreStart);
		    $('FGenreMenu').setValue(genreStart);
		break;
		
		default:
		    $('FGenreMenu','NFGenreMenu').invoke('hide');
		    $('allGenreMenu').show();
		    $('NFGenreMenu').setValue(genreStart);
		    $('FGenreMenu').setValue(genreStart);
		    $('allGenreMenu').setValue(genreStart);
		break;
	}
	
}
	
function showLessonSkillsMenu(){
	
	var SkillType = {ALL:-1, RSTRATEGY:0, COMPREHENSION:1, PHONOAWARENESS:2, PHONICS:3, GRAMMARMECHANICS:4, WORDWORK:6};
	var selectedSkillType = $('skillTypeMenu').getValue();
	
	var rsStart = document.getElementById('rsSkills').options[0].value;
    var comprehensionStart = document.getElementById('comprehensionSkills').options[0].value;
    var phonAwareStart = document.getElementById('phonAwareSkills').options[0].value;
    var phonicsStart = document.getElementById('phonicsSkills').options[0].value;
    var gamStart = document.getElementById('gamSkills').options[0].value;
    var wwStart = document.getElementById('wwSkills').options[0].value;
	//convert the string to an int
	selectedSkillType =  parseInt(selectedSkillType);

    switch(selectedSkillType){
    	case SkillType.RSTRATEGY:
    	    $('lessonSkillsRow', 'rsSkills').invoke('show');
    	    $('comprehensionSkills','phonAwareSkills','phonicsSkills','gamSkills','wwSkills').invoke('hide');
    	    $('comprehensionSkills').setValue(comprehensionStart);
    	    $('phonAwareSkills').setValue(phonAwareStart);
    	    $('phonicsSkills').setValue(phonicsStart);
    	    $('gamSkills').setValue(gamStart);
    	    $('wwSkills').setValue(wwStart);
    	break;
    	
    	case SkillType.COMPREHENSION:
    	    $('lessonSkillsRow', 'comprehensionSkills').invoke('show');
    	    $('rsSkills','phonAwareSkills','phonicsSkills','gamSkills','wwSkills').invoke('hide');
    	    $('rsSkills').setValue(rsStart);
    	    $('phonAwareSkills').setValue(phonAwareStart);
    	    $('phonicsSkills').setValue(phonicsStart);
    	    $('gamSkills').setValue(gamStart);
    	    $('wwSkills').setValue(wwStart);
    	break;
    	
    	case SkillType.PHONOAWARENESS:
    	    $('lessonSkillsRow', 'phonAwareSkills').invoke('show');
    	    $('rsSkills','comprehensionSkills','phonicsSkills','gamSkills','wwSkills').invoke('hide');
    	    $('rsSkills').setValue(rsStart);
    	    $('comprehensionSkills').setValue(comprehensionStart);
    	    $('phonicsSkills').setValue(phonicsStart);
    	    $('gamSkills').setValue(gamStart);
    	    $('wwSkills').setValue(wwStart);
    	break;
    	
    	case SkillType.PHONICS:
    	    $('lessonSkillsRow', 'phonicsSkills').invoke('show');
    	    $('rsSkills','phonAwareSkills','comprehensionSkills','gamSkills','wwSkills').invoke('hide');
    	    $('rsSkills').setValue(rsStart);
    	    $('comprehensionSkills').setValue(comprehensionStart);
    	    $('phonAwareSkills').setValue(phonAwareStart);
    	    $('gamSkills').setValue(gamStart);
    	    $('wwSkills').setValue(wwStart);
    	break;
    	
    	case SkillType.GRAMMARMECHANICS:
    	    $('lessonSkillsRow', 'gamSkills').invoke('show');
    	    $('rsSkills','phonAwareSkills','phonicsSkills','comprehensionSkills','wwSkills').invoke('hide');
    	    $('rsSkills').setValue(rsStart);
    	    $('comprehensionSkills').setValue(comprehensionStart);
    	    $('phonAwareSkills').setValue(phonAwareStart);
    	    $('phonicsSkills').setValue(phonicsStart);
    	    $('wwSkills').setValue(wwStart);
    	break;
    	
    	case SkillType.WORDWORK:
    	    $('lessonSkillsRow', 'wwSkills').invoke('show');
    	    $('rsSkills','phonAwareSkills','phonicsSkills','gamSkills','comprehensionSkills').invoke('hide');
    	    $('rsSkills').setValue(rsStart);
    	    $('comprehensionSkills').setValue(comprehensionStart);
    	    $('phonAwareSkills').setValue(phonAwareStart);
    	    $('phonicsSkills').setValue(phonicsStart);
    	    $('gamSkills').setValue(gamStart);
    	break;
    	
    	default:
    	    $('lessonSkillsRow').hide();
    	break;
    }
}

function resetMenus(){
	var resourceTypeMenuStart = 0;
	var levelTypeMenuStart = "Select Leveling System";
	var sortMenuStart = "Relevancy";
	
	var razLevelStart = 1;
	var razLevelEnd = 27;
	var fpStart = 1;
	var fpEnd = 21;
	var draStart = 1;
	var draEnd = 18;
	var rrStart = 1;
	var rrEnd = 19;
	var gradeStart = 1;
	var gradeEnd = 6;
	var themeStart = 0;
	var fnfStart = "All";
	var genreStart = 0;
	var skillTypeStart = -1;
	var rsStart = document.getElementById('rsSkills').options[0].value;
    var comprehensionStart = document.getElementById('comprehensionSkills').options[0].value;
    var phonAwareStart = document.getElementById('phonAwareSkills').options[0].value;
    var phonicsStart = document.getElementById('phonicsSkills').options[0].value;
    var gamStart = document.getElementById('gamSkills').options[0].value;
    var wwStart = document.getElementById('wwSkills').options[0].value;
	
	$('resourceTypeMenu').setValue(resourceTypeMenuStart);
	
	$('levelTypeMenu').setValue(levelTypeMenuStart);
	$('razLevelFromMenu').setValue(razLevelStart);
	$('razLevelToMenu').setValue(razLevelEnd);
	$('fountasPinnellFromMenu').setValue(fpStart);
	$('fountasPinnellToMenu').setValue(fpEnd);
	$('draFromMenu').setValue(draStart);
	$('draToMenu').setValue(draEnd);
	$('readingRecoveryFromMenu').setValue(rrStart);
	$('readingRecoveryToMenu').setValue(rrEnd);
	$('gradeFromMenu').setValue(gradeStart);
	$('gradeToMenu').setValue(gradeEnd);
	
	
	$('themeMenu').setValue(themeStart);
	$('fnfMenu').setValue(fnfStart);
	$('allGenreMenu').setValue(genreStart);
	$('FGenreMenu').setValue(genreStart);
	$('NFGenreMenu').setValue(genreStart);
	
	$('skillTypeMenu').setValue(skillTypeStart);
	$('rsSkills').setValue(rsStart);
	$('comprehensionSkills').setValue(comprehensionStart);
	$('phonAwareSkills').setValue(phonAwareStart);
	$('phonicsSkills').setValue(phonicsStart);
	$('gamSkills').setValue(gamStart);
	$('wwSkills').setValue(wwStart);
	
	
	//hide necessary menus
	$('rangeMenuRow','razLevelMenu','fountasPinnellMenu','draMenu','readingRecoveryMenu','gradeMenu',
	   'FGenreMenu','NFGenreMenu','lessonSkillsRow').invoke('hide');

    $('allGenreMenu').show();
	
}

function checkAdvancedMenuStatus(){
	var resourceTypeMenuStart = 0;
	var levelTypeMenuStart = "Select Leveling System";
	
	var razLevelStart = 1;
	var razLevelEnd = 27;
	var fpStart = 1;
	var fpEnd = 21;
	var draStart = 1;
	var draEnd = 18;
	var rrStart = 1;
	var rrEnd = 19;
	var gradeStart = 1;
	var gradeEnd = 6;
	var themeStart = 0;
	var fnfStart = "All";
	var genreStart = 0;
	var skillTypeStart = -1;
	var rsStart = document.getElementById('rsSkills').options[0].value;
    var comprehensionStart = document.getElementById('comprehensionSkills').options[0].value;
    var phonAwareStart = document.getElementById('phonAwareSkills').options[0].value;
    var phonicsStart = document.getElementById('phonicsSkills').options[0].value;
    var gamStart = document.getElementById('gamSkills').options[0].value;
    var wwStart = document.getElementById('wwSkills').options[0].value;
    
    var hideAdvancedMenus = true;
    if($('resourceTypeMenu').getValue() != resourceTypeMenuStart){
    	hideAdvancedMenus = false;
    }
    if($('levelTypeMenu').getValue() != levelTypeMenuStart){
    	hideAdvancedMenus = false;
    }
    if($('themeMenu').getValue() != themeStart){
    	hideAdvancedMenus = false;
    }
    if($('fnfMenu').getValue() != fnfStart){
    	hideAdvancedMenus = false;
    }
    if(($('allGenreMenu').getValue() != genreStart) || ($('FGenreMenu').getValue() != genreStart) || ($('NFGenreMenu').getValue() != genreStart)){
    	hideAdvancedMenus = false;
    }
    if($('skillTypeMenu').getValue() != skillTypeStart){
    	hideAdvancedMenus = false;
    }
    
    return hideAdvancedMenus;
}

var isAdvancedSearchOpen = false;
function toggleSearchLink() {
	//toggle link text
	isAdvancedSearchOpen = !isAdvancedSearchOpen;
	$('advLink').update(isAdvancedSearchOpen ? "Basic Search" : "Advanced Search");
}

function showAdvancedMenus(){
	var levelTypeMenuStart = "Select Leveling System";
	var fnfStart = "All";
	var skillTypeStart = -1;
	var genreStart = 0;	
	
	//toggle the search link
	toggleSearchLink();
	
	//hide everything first
	$('rangeMenuRow','razLevelMenu','fountasPinnellMenu','draMenu','readingRecoveryMenu','gradeMenu',
	   'FGenreMenu','NFGenreMenu','lessonSkillsRow').invoke('hide');
	   
	//show the menu box
	$('advancedSearchMenus').show();
	
	//show all the default menus
	$('resourceTypeMenu', 'levelTypeMenu', 'allGenreMenu', 'themeMenu', 'fnfMenu', 'skillTypeMenu').invoke('show');
	
	//show the speciality menus
	if($('levelTypeMenu').getValue() != levelTypeMenuStart){
    	showRangeMenusFromLevelType();
    }
    if($('fnfMenu').getValue() != fnfStart){
    	showGenreMenusFromFNF();
    }
    if($('skillTypeMenu').getValue() != skillTypeStart){
    	showLessonSkillsMenu();
    }
    if($('FGenreMenu').getValue() != genreStart){
    	$('allGenreMenu','NFGenreMenu').invoke('hide');
    	$('FGenreMenu').show();
    }
    if($('NFGenreMenu').getValue() != genreStart){
    	$('allGenreMenu','FGenreMenu').invoke('hide');
    	$('NFGenreMenu').show();
    }
}

function sortResults(){
	var sortOption = $('sortOption').getValue();
	
	var url ="index.php";
	var pars = "action=sort&sortOption=" + sortOption;
	var fullResultStatusHtml = $('resultStatus').innerHTML;
	var starting = fullResultStatusHtml.toLowerCase().indexOf("Results <strong>".toLowerCase()) + "Results <strong>".length;
	var ending = fullResultStatusHtml.toLowerCase().indexOf("</strong> of".toLowerCase());
	var oldString = fullResultStatusHtml.substring(starting, ending);
	var hitValue = $('hitValue').innerHTML;
	var newString = "1&nbsp;-&nbsp;10"
	//
	// if we have less than ten results, only show 
	// one to hit count instead of showing one to ten
	//
	if(hitValue < 10){
		newString = "1&nbsp;-&nbsp;"+hitValue;
	}
	
	var resultStatusUpdatedHtml = fullResultStatusHtml.replace(oldString, newString);
			
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: pars,
			onSuccess: function(transport) {
				var start = (transport.responseText.indexOf("<div id=\"resultList\">") + "<div id=\"resultList\">".length);
				var end = transport.responseText.indexOf("<!-- START FACETED SEARCH -->");

				
				var fullText = transport.responseText;
				var sortedResultsHtml =fullText.substring(start,end);
				$('resultList').update(sortedResultsHtml);
					
				$('resultStatus').update(resultStatusUpdatedHtml);
	
				var pageStart = transport.responseText.indexOf("<!--paginationBegin-->");
				var pageEnd = transport.responseText.indexOf("<!--paginationEnd-->") + "<!--paginationEnd-->".length;			
				var newPaginationHtml = fullText.substring(pageStart, pageEnd);
				$('pagination').update(newPaginationHtml);
				
				//remove all previous popouts on the page
				$$('div.generated-popout').invoke('remove');				
	   		}
		}		
	)
}



function resetSortMenu(){
	var sortMenuStart = "Relevancy";
	$('sortOption').setValue(sortMenuStart);
}

function containsElement(menu, selectValue){
	for(var i=0; i<menu.options.length; i++){
	    if(menu.options[i].value == selectValue){
	        return true;
	    }
   }
   return false;
 }


Element.addMethods({
  contains: function(element, selectValue){
  	element = $(element);
  	for(var i=0; i<element.options.length; i++){
	    if(element.options[i].value == selectValue){
	        return true;
	    }
   }
   return false;
  }
});





