var searchControlFocus = false;
var focusTolerance = 0;

var autoSuggestInput;
var autoSuggestBox;
var oldSchoolKey;
var postbackButton;
var oldValue="";
var oldSearchType = "";

function setFocusFlag(sff_arg1) {
   if(sff_arg1 == true) {
      focusTolerance = 1;
      searchControlFocus = true;
   } else {
      if(focusTolerance < 1) {
         searchControlFocus = false;
      } else {
         if(focusTolerance > 0) focusTolerance --;
      }
   }
   updateAutosuggestVisibility();
}

function updateAutosuggestVisibility() {
   autoSuggestBox = document.getElementById('autoSuggestBox');
   
   if(autoSuggestInput) {
      if(autoSuggestInput.value.length >= 2 && searchControlFocus && autoSuggestBox.innerHTML.length > 20) {
         autoSuggestBox.style.display = "block";
      } else {
if (autoSuggestBox.style.display == "block")
autoSuggestInput.value="";
         autoSuggestBox.style.display = "none";

      }
   }
}

function debugAlert(msg) {
   alert(msg);
}

setFocusFlag(false);

//my old functions

//search for inherting schools
function getSchoolSuggestions(el, stateCode, oldKey, triggerId){
    autoSuggestInput=el;
    oldSchoolKey = oldKey;
    postbackButton = triggerId;
    var _stateCode = document.getElementById('stateCode').value;
    //alert(el.name + '\nlength:' + el.value.length);
    if (el.value.length>1 && el.value!=oldValue) {
        oldValue = el.value;
        
        ProfileAutoSuggest.BuildSchoolSuggestions(el.value,_stateCode,showResults,onError);
        
    }
}

//search for any entity
//do the postback if we have a search criterion
function getSuggestions(el){
    autoSuggestInput=el;
    //alert(el.name + "\nlength:" + el.value.length);
    if (el.value.length>1 && el.value!=oldValue) {
        oldValue = el.value;
        var searchType = getSearchType();
        
        
        ProfileAutoSuggest.GetSearchSuggestions(searchType, el.value,showResults,onError);
        oldSearchType=searchType;
    }
}

function getSearchType() {
        var radios = document.forms[0].EntitySearchControl_4$radEntityType;
        for (var i=0;i<radios.length;i++) {
        if(radios[i].checked)
        return radios[i].value;
        }
}

function showResults(result, userContext) {
if (result.length>20) {
   autoSuggestBox = document.getElementById('autoSuggestBox');
   autoSuggestBox.innerHTML=result;
   autoSuggestBox.style.display = 'block';
   updateAutosuggestVisibility();
}
}

function onError(result){
   alert('Error:' + result.get_message());
}

function hideList() {
 var autoSuggestBox = findFirstElementByTagAndClass('div','autoSuggest');
 autoSuggestBox.style.display = 'none';
}

function selectSchool(id) {
    hideList();
    //alert("old: " + oldSchoolKey + "\nnew:" + id);
    ProfileAutoSuggest.SetInheritingSchool(oldSchoolKey,id,refreshInheriting,onError);
    
}

function refreshInheriting(result, userContext) {

     //alert('need to refresh the inheriting list - a dopostback here');
    __doPostBack(postbackButton, '');
}

 //get an element based on tag and class
 function findFirstElementByTagAndClass(tagName, className) {

    var tagEls = document.getElementsByTagName(tagName);

    for (var i=0;i<tagEls.length;i++){
        var el = tagEls[i];
        if (el.className==className) 
            return el;
    }
    return null;
}

//entity type fnctions
function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function


window.onclick = function() { setFocusFlag(false); }