var aufwands_counter = 0;
var identify_counter = 0;

var word_lister = "";
  // hit_counter is appreciated each time a form was identified
  var hit_counter = 0;


// Function for finding a certain verbform --------------------------------------------------------------
function search_form_deluxe(entered_word_1)
{
  
  // return nothing if no word is given
  if(entered_word_1 == "") return;

  // hit_counter is appreciated each time a form was identified
  hit_counter = 0;
  // includes the results of each search
  var word_result = "";
  // the word is changed into lowercase to also scan word at the beginning of a sentence
  var entered_word = entered_word_1.toLowerCase();
  
  //word_result += "<p><u>Suche nach:</u> <b>" + entered_word + "</b></p>";
  word_result += "<b><u><font color=\\'#FF0066\\'>Konjugation</font></u></b><br>";

  var start_letter = entered_word.substring(0,1);
  var start_search = 0;
  var end_search = 0;  // must be set to ZERO!!! prevent error message in Konjugator for unknown initial letters!
  //var end_search = stammformen_list.length;
  
  for(sal=0;sal<al.length;sal++)
  {
    if(start_letter == al[sal].let)
    {
      start_search = al[sal].occ;
      end_search = al[sal+1].occ-1;
    }
  }
  


  // All Stammformen in the database are created!!!
  for(i=start_search;i<end_search+1;i++)
  {
    applyStammformen(i);
    // AUFWANDS-COUNTER: 1527 -> 317
    	

    if(beginsWith(entered_word,"trans") || beginsWith(entered_word,"inter") || beginsWith(entered_word,"inst"))
    {
      if(check_this(entered_word,6,6,6,6))
        word_result += final_search(entered_word);
    }
    else if(beginsWith(entered_word,"per") || beginsWith(entered_word,"pro") || beginsWith(entered_word,"con") || beginsWith(entered_word,"com") || beginsWith(entered_word,"app") || beginsWith(entered_word,"imp") || beginsWith(entered_word,"eff") || beginsWith(entered_word,"par"))
    {
      if(beginsWith(entered_word,"comm") || beginsWith(entered_word,"cont") || beginsWith(entered_word,"prop"))
      {
        if(check_this(entered_word,6,6,6,6))
          word_result += final_search(entered_word);
      }
      
      else if(check_this(entered_word,4,4,4,4))
        word_result += final_search(entered_word);
    }
    else if(beginsWith(entered_word,"in") || beginsWith(entered_word,"de") || beginsWith(entered_word,"ex") || beginsWith(entered_word,"ab") || beginsWith(entered_word,"ad"))
    {
      if(check_this(entered_word,4,4,4,4))
        word_result += final_search(entered_word);
    }
    else if(check_this(entered_word,2,3,3,3))
      word_result += final_search(entered_word);
  }




// search for Sonderformen
  // agere
  if(beginsWith(entered_word,"ag") || beginsWith(entered_word,"eg"))
  {
    applyStammformen(sonder_forms[0]);
    word_result += final_search(entered_word);
  }
  //ferre
  if(beginsWith(entered_word,"fer") || beginsWith(entered_word,"tul") || beginsWith(entered_word,"lat"))
  {
    applyStammformen(sonder_forms[1]);
    word_result += final_search(entered_word);
  }
  //incipere
  if(beginsWith(entered_word,"incip") || beginsWith(entered_word,"coep"))
  {
    applyStammformen(sonder_forms[2]);
    word_result += final_search(entered_word);
  }
  //tollere
  if(beginsWith(entered_word,"toll") || beginsWith(entered_word,"sustul") || beginsWith(entered_word,"sublat"))
  {
    applyStammformen(sonder_forms[3]);
    word_result += final_search(entered_word);
  }
  // dare
  if(beginsWith(entered_word,"da") || beginsWith(entered_word,"do") || beginsWith(entered_word,"ded") || beginsWith(entered_word,"dat"))
  {
    applyStammformen(sonder_forms[4]);
    word_result += final_search(entered_word);
  }
  // esse
  if(beginsWith(entered_word,"su") || beginsWith(entered_word,"si") || beginsWith(entered_word,"fu") || beginsWith(entered_word,"es") || beginsWith(entered_word,"er"))
  {
    applyStammformen(sonder_forms[5]);
    word_result += final_search(entered_word);
  }
  //ire
  if((beginsWith(entered_word,"eo") || beginsWith(entered_word,"i")) && !(beginsWith(entered_word,"in") || beginsWith(entered_word,"im")))
  {
    applyStammformen(sonder_forms[6]);
    word_result += final_search(entered_word);
  }




  
  word_result += "<br><u>Anzahl der Treffer:</u> " + hit_counter;
  
  for(i=0;i<=verbformen_list.length-1;i++)
    verbformen_list[i].verb_form = "";
  infinitiv = "";
  stamm_01 = "";
  stamm_02 = "";
  stamm_03 = "";
  translation = "";
  return word_result;
}


// checks if the first s1 letters of the stammform
function check_this(entered_word,s1,s2,s3,ix)
{
  return (entered_word.substring(0,s1) == stamm_01.substring(0,s1) || entered_word.substring(0,s2) == stamm_02.substring(0,s2) || entered_word.substring(0,s3) == stamm_03.substring(0,s3) || entered_word.substring(0,ix) == infinitiv.substring(0,ix));
}



function final_search(entered_word)
{
	var word_result = "";
	//identify_counter++;
    //aufwands_counter
    //word_lister += entered_word + "______" + infinitiv + "<br>";
    
    // AUSWANDS-COUNTER: 317 -> 136
    if(beginsWith(entered_word,getPraesStamm(stamm_01)) || beginsWith(entered_word,getPerfStamm(stamm_02)) || beginsWith(entered_word,getPerfPassStamm(stamm_03)))
    {
      aufwands_counter++;
      runVerbformCreation();
      for(j=5;j<verbformen_list.length;j++)
        {
          if(entered_word == verbformen_list[j].verb_form)
          {
            word_result += entered_word + " - " + infinitiv + ", " + verbformen_list[j].verb_description + " - <b>" + translation + "</b><br>";
            //add2list_of_text_forms(entered_word + "   >" + infinitiv + "<    (" + verbformen_list[j].verb_description + " - " + translation + ")")
            add2list_of_text_forms("<tr><td><a name='" + entered_word + "'>" + entered_word + "</td><td>" + infinitiv + "</td><td>" + verbformen_list[j].verb_description + "</td><td>" + translation + "</td><td align='center'><input type='button' id='buttons_kon' value='konjugieren' onClick='parent.conjugate_verb(\"" + infinitiv + "\");'>" + "</td></tr>");
            hit_counter++;
          }
        }
        return word_result;
      }
      else return "";
}


function applyStammformen(i)
{
    infinitiv = stammformen_list[i].inf;
    stamm_01 = stammformen_list[i].stamm_01;
    stamm_02 = stammformen_list[i].stamm_02;
    stamm_03 = stammformen_list[i].stamm_03;
    translation = stammformen_list[i].trans;
}


