﻿// Javascript functions Species Search button.

var SEARCH_BUTTON_ID = "btSearch";
var SEARCH_BUTTON_TEXTBOX_ID = "tbSearchString";
var SEARCH_BUTTON_AUTOCOMPLETE_ID = "AutoComplete";
var SEARCH_BUTTON_AVAILABLE_SPECIES_RADIO_ID = "rbAvailableSpecies";
var SEARCH_BUTTON_FULL_DICTIONARY_RADIO_ID = "rbFullDictionary";
//Set in TitleBanner's Render method.
var SEARCH_BUTTON_SPECIES_SEARCH_URL = "";
var SEARCH_BUTTON_USER_FEEDBACK = "Enter some value!";
var SEARCH_BUTTON_AVAILABLE_SPECIES_MODE = "AVAILABLE_SPECIES";
var SEARCH_BUTTON_FULL_DICTIONARY_MODE = "FULL_DICTIONARY";

// Validates textbox and redirects to search page.
function SEARCH_BUTTON_validateTextbox()
{   
    // Get controls.
    var rbAvailableSpecies = document.getElementById(SEARCH_BUTTON_AVAILABLE_SPECIES_RADIO_ID);
    var rbFullDictionary = document.getElementById(SEARCH_BUTTON_FULL_DICTIONARY_RADIO_ID);
    var tbSearchString = document.getElementById(SEARCH_BUTTON_TEXTBOX_ID);
    
    if(tbSearchString != null)
    {
        // Get query string.
        var searchString = tbSearchString.value;
        
        // If search string is not empty.
        if(searchString != '' && searchString != SEARCH_BUTTON_USER_FEEDBACK)
        {  
            // Check that search string is not all blank spaces.
            if(STRING_validateNotEmpty(searchString) != false)
            {
                // Get search mode - Available Species or Full Dictionary.
                var searchMode = "";
                if(rbAvailableSpecies.checked == true)
                    searchMode = SEARCH_BUTTON_AVAILABLE_SPECIES_MODE;
                else
                    searchMode = SEARCH_BUTTON_FULL_DICTIONARY_MODE;
                                    
                // Remove eventual leading/trailing spaces.
                searchString = STRING_trimAll(searchString);
                
                // Redirect to search Page.
                window.location = SEARCH_BUTTON_SPECIES_SEARCH_URL + searchString + "&searchMode=" + searchMode;
            }
            else
            {
                // Display user feedback in textbox.
                SEARCH_BUTTON_displayUserFeedback(tbSearchString);
            }
        }
        else
        {   
            // Display user feedback in textbox.
            SEARCH_BUTTON_displayUserFeedback(tbSearchString);
        }
    }
}

function SEARCH_BUTTON_ButtonPressed(e)
{
    if (e.keyCode == 13) 
    {
      SEARCH_BUTTON_validateTextbox();
    }
    
}

// Displays user feedback in textbox.
function SEARCH_BUTTON_displayUserFeedback(tbSearchString)
{ 
    tbSearchString.value = SEARCH_BUTTON_USER_FEEDBACK;
    tbSearchString.select();
}

// Changes the contextKey in the auto-complete extender.
function SEARCH_BUTTON_ChangeAutoComplete_ContextKey(contextKey)
{ 
  var autoComplete = $find(SEARCH_BUTTON_AUTOCOMPLETE_ID);
  
  if(autoComplete != null)
    autoComplete.set_contextKey(contextKey);
}