
  var navihistory = [];
  var navihistory_depth = 0;
  var current_editing_form = "";

  function history_back() {
    if (navihistory_depth <= 1) { alert("There are no more pages in your history"); }
    else {
try {
      navihistory_depth--;
      var temp = navihistory[navihistory_depth];
      navihistory_depth--;
      eval(temp);
} catch (err) { }
   }
  }

  function delete_entry(id,permit) {

    if (permit == 0) {
      alert("Approved Dictionary Editors can delete entries. Contact service@popupchinese.com for authorization.");
    }

    var element_to_hide = "#vocab_row_" + id;
    $(element_to_hide).hide();

    // Save our Stuff
    $.post("/updates/acceptDictionaryDelete",{
      id: id
    },function(txt){
    });
  }


  function addEntry(f1,f2,f3,f4,f5) {
    document.getElementById('light').style.display='block';
    document.getElementById('fade').style.display='block';
    document.getElementById('lesson_dialogue_editor').innerHTML = return_popup_addition_form(f1,f2,f3,f4,f5);
  }
  
  function add_to_dictionary() {
    var field1 = document.getElementById("addField1").value;
    var field2 = document.getElementById("addField2").value;
    var field3 = document.getElementById("addField3").value;
    var field4 = document.getElementById("addField4").value;
    var field5 = document.getElementById("addField5").value;

    // Save our Stuff
    $.post("/tools/addWordToDictionary",{
      field1: field1,
      field2: field2,
      field3: field3,
      field4: field4,
      field5: field5
    },function(txt){
    });

    hideLightbox();
    alert("Thank you! Your contribution has been submitted and will be reviewed for inclusion in the dictionary shortly.");
  }

  function return_to_addition_form() {
    document.getElementById('lesson_dialogue_editor').innerHTML = current_editing_form;
  }
  function pos_help() {
    current_editing_form = document.getElementById('lesson_dialogue_editor').innerHTML;
    rH = '<span style="font-size:0.7em"><div style="float:right" onclick="return_to_addition_form();"><img src="/img/icons/close.gif" /></div>';
    rH += 'Our machine-readable part-of-speech and ontological tags. We generally add these during the review process, but you might want to take care of it yourself. Suggestions on new tags/ontologies are welcome: ';
    rH += '<table style="">';
    rH += '<tr><th width="20%">Part of Speech</th><th>Usage Details</th></tr>';
    rH += '<tr><td span class="red">ADDRESS</td><td>Assignations like "Doctor", "Vice President", and "Chairman". Frequently followed by personal names</td></tr>';
    rH += '<tr><td span class="red">ADJT</td><td>Adjectival noun elements, older tag for stative verbs as well (now XING)</td></tr>';
    rH += '<tr><td span class="red">ADVB</td><td>Adverbs which modify verbs</td></tr>';
    rH += '<tr><td span class="red">AUXV</td><td>Auxiliary verbs are tooltooltooltools "should", "must" which precede verbs</td></tr>';
    rH += '<tr><td span class="red">CAD</td><td>Chinese adverbs of degree or scope, like "hen3" or "tai4". These precede stative verbs and verbs</td><td></td></tr>';
    rH += '<tr><td span class="red">CHINESEPERSON</td><td>Full name of a Chinese person</td></tr>';
    rH += '<tr><td span class="red">CITY</td><td>City names</td></tr>';
    rH += '<tr><td span class="red">COUNTRY</td><td>Country names</td></tr>';
    rH += '<tr><td span class="red">DATE</td><td>Dates</td></tr>';
    rH += '<tr><td span class="red">DOUBLENAME</td><td>Chinese family names that consist of two rather than once character (eg. Di4wu3).</td></tr>';
    rH += '<tr><td span class="red">EARTHLY</td><td>Twelve earthly stems</td></tr>';
    rH += '<tr><td span class="red">FEMALE</td><td>Signifies the entry refers to a female entity</td></tr>';
    rH += '<tr><td span class="red">FILM</td><td>The name of a film, or in the film ontology</td></tr>';
    rH += '<tr><td span class="red">HEAVENLY</td><td>The twelve heavenly stems</td></tr>';
    rH += '<tr><td span class="red">INFOTECH</td><td>An entry in the infotech ontology</td></tr>';
    rH += '<tr><td span class="red">LITERATURE</td><td>The name of a book, or an entry in the literature ontology</td></tr>';
    rH += '<tr><td span class="red">MALE</td><td>Signifies the entry refers to a male entity</td></tr>';
    rH += '<tr><td span class="red">MEASUREMENT</td><td>Measurement words like "kilowatt", "cubic inch", etc.</td></tr>';
    rH += '<tr><td span class="red">MW</td><td>Measure words</td></tr>';
    rH += '<tr><td span class="red">NAME</td><td>Chinese family name. One character in length (see DOUBLENAME)</td></tr>';
    rH += '<tr><td span class="red">NOUN</td><td>Nouns</td></tr>';
    rH += '<tr><td span class="red">OCPP</td><td>Obscure Chinese Political Phrase (three represents, three rurals, three guarantees, etc.)</td></tr>';
    rH += '<tr><td span class="red">ONOMAT</td><td>Onomatopoeia -- words that express a sound</td></tr>';
    rH += '<tr><td span class="red">OTHR</td><td>Other - miscellaneous or hard to classify otherwise</td></tr>';
    rH += '<tr><td span class="red">PHONETIC</td><td>A character (or word) that can be used merely to represent sounds, most frequently found in foreign loan words</td></tr>';
    rH += '<tr><td span class="red">PLACE</td><td>A geographic place</td></tr>';
    rH += '<tr><td span class="red">PERSON</td><td>A personal name. Used for both "Norman" and "Bethune".</td></tr>';
    rH += '<tr><td span class="red">PHRASE</td><td>A phrase rather than an individual word</td></tr>';
    rH += '<tr><td span class="red">PROPERNOUN</td><td>Generic tag for proper nouns</td></tr>';
    rH += '<tr><td span class="red">QUESTION</td><td>Question words and phrases, such as "what", "why" and "how"</td></tr>';
    rH += '<tr><td span class="red">SCIENCE</td><td>Signifies a scientific term in our science ontology</td></tr>';
    rH += '<tr><td span class="red">SLANG</td><td>This word is general slang</td></tr>';
    rH += '<tr><td span class="red">SWAN</td><td>Starting-with-a-Number. This tag can help software more accurately segment texts.</td></tr>';
    rH += '<tr><td span class="red">TIME</td><td>Times</td></tr>';
    rH += '<tr><td span class="red">XING</td><td>Stative verbs or Xingrongci. A common subset of adjectival entries typically preceded by CAD</td></tr>';
    rH += '<tr><td span class="red">VERB</td><td>Verbs. We like to tag verb phrases as VERB PHRASE.</td></tr>';
    rH += '<tr><td span class="red">BEIJINGHUA</td><td>Usage peculiar to the Beijing dialect</td></tr>';
    rH += '<tr><td span class="red">SHANGHAIHUA</td><td>Usage peculiar to Shanghai, land of incomprehensibility</td></tr>';
    rH += '<tr><td span class="red">DONGBEIHUA</td><td>We love Northeastern Chinese</td></tr>';
    rH += '<tr><td span class="red">HEIHUA</td><td>Bandit slang</td></tr>';
    rH += '</table>';
    rH += '</span>';
    document.getElementById('lesson_dialogue_editor').innerHTML = rH;
  }
  function return_popup_addition_form(f1,f2,f3,f4,f5) {

    replacementHTML = '<div style="float:right" onclick="hideLightbox();"><img src="/img/icons/close.gif" /></div>';
    replacementHTML += '<form name="adso_editor"><table width="100%">';

    replacementHTML += '<tr>';
    replacementHTML += '<td>';
    replacementHTML += 'Simplified Chinese: ';
    replacementHTML += '</td>';
    replacementHTML += '<td>';
    replacementHTML += '<input type="text" id="addField1" value="'+f1+'" />';
    replacementHTML += '</td>';
    replacementHTML += '</tr>';

    replacementHTML += '<tr>';
    replacementHTML += '<td>';
    replacementHTML += 'Traditional Chinese: ';
    replacementHTML += '</td>';
    replacementHTML += '<td>';
    replacementHTML += '<input type="text" id="addField2" value="'+f2+'" />';
    replacementHTML += '</td>';
    replacementHTML += '</tr>';

    replacementHTML += '<tr>';
    replacementHTML += '<td>';
    replacementHTML += 'Numeric Pinyin: ';
    replacementHTML += '</td>';
    replacementHTML += '<td>';
    replacementHTML += '<input type="text" id="addField3" value="'+f3+'" />';
    replacementHTML += '</td>';
    replacementHTML += '</tr>';

    replacementHTML += '<tr>';
    replacementHTML += '<td>';
    replacementHTML += 'English: ';
    replacementHTML += '</td>';
    replacementHTML += '<td>';
    replacementHTML += '<input type="text" id="addField4" value="'+f4+'" />';
    replacementHTML += '</td>';
    replacementHTML += '</tr>';

    replacementHTML += '<tr>';
    replacementHTML += '<td>';
    replacementHTML += 'Part of Speech: [<span class="red" style="font-size:0.8em" onclick="pos_help()">help</span>]';
    replacementHTML += '</td>';
    replacementHTML += '<td>';
    replacementHTML += '<input type="text" id="addField5" value="'+f5+'" />';
    replacementHTML += '</td>';
    replacementHTML += '</tr>';

    replacementHTML += '</table>';
    replacementHTML += '<br />';
    replacementHTML += '<span style="font-size:0.6em">Anonymous edits are queued for review. To join our team as an approved editor, contact us at <span class="red">service@popupchinese.com</span>.</span>';
    replacementHTML += '<br /><img src="/img/buttons/add_new_word.png" onclick="add_to_dictionary();" />';
 
    return replacementHTML;
  }

  function hideLightbox() {
    document.getElementById('light').style.display='none';
    document.getElementById('fade').style.display='none';
  }







  var content_id = "";
  var currently_editing = 0;
  var active_vocab_row = "";
  var active_vocab_row_id = "";
  var active_vocab_row_field = "";
  var vocab_object_under_editing = "";
  var original_vocab_text;


  function setInterface() {

     try {
       $("#dictionary_entries").sortable({
          items: ".dictionary_entry",
          update: function (e,ui) {
	    saveSort("dictionary");
         }
      });
    } catch (err) {
    }

    $(".vocab_field1").unbind("click");
    $(".vocab_field2").unbind("click");
    $(".vocab_field3").unbind("click");
    $(".vocab_field4").unbind("click");
    $(".vocab_field5").unbind("click");

    $(".vocab_field1").bind("click",function() { open_vocab_editor(this); active_vocab_row_field = 1; $(this).unbind("click"); });
    $(".vocab_field2").bind("click",function() { open_vocab_editor(this); active_vocab_row_field = 2; $(this).unbind("click"); });
    $(".vocab_field3").bind("click",function() { open_vocab_editor(this); active_vocab_row_field = 3; $(this).unbind("click"); });
    $(".vocab_field4").bind("click",function() { open_vocab_editor(this); active_vocab_row_field = 4; $(this).unbind("click"); });
    $(".vocab_field5").bind("click",function() { open_vocab_editor(this); active_vocab_row_field = 5; $(this).unbind("click"); });
    $(".vocab_row").bind("mouseover",function() {
      active_vocab_row = this;
    });

  }


  function open_vocab_editor(obj) {

      if (currently_editing == 1) {
        currently_editing = 0;
        vocab_object_under_editing.innerHTML = original_vocab_text;
        open_vocab_editor(obj);
        return;
      }

      vocab_object_under_editing = obj;
      original_vocab_text = obj.innerHTML;
      currently_editing = 1;

      revisedHTML = '<input type="text" id="vocab_editing_field" class="vocab_editing_field" name="vocab_editing_field" value="'+original_vocab_text+'" />';

      obj.innerHTML = revisedHTML;

      // fetch advice row id
      var thisText = active_vocab_row.innerHTML;

      try {
      temp = thisText.split("vocab_field1_");
      temp2 = temp[1].split('"');
      } catch (err) {
        try {
          temp = thisText.split("vocab_field2_");
          temp2 = temp[1].split('"');
        } catch (err) {
          temp = thisText.split("vocab_field3_");
          temp2 = temp[1].split('"');
        }
      }



      active_vocab_row_id = temp2[0];

      document.getElementById("vocab_editing_field").select();
      $(".vocab_editing_field").bind("keydown",function(evt) {
        if (evt.keyCode == 13) {
          field2update = "field"+active_vocab_row_field;

          value = document.getElementById("vocab_editing_field").value;
	vocab_object_under_editing.innerHTML = value;
          currently_editing = 0;

          // Update Database
          try {
            var head = document.getElementsByTagName("head")[0];
            script = document.createElement('script');
            script.id =  'updateScript';
            script.type = 'text/javascript';
            script.src = "/updates/editDictionary?vocab_id="+active_vocab_row_id+"&field="+field2update+"&value="+value;
            head.appendChild(script);
          } catch(err) { alert("Error: " + err.message); }

	  setInterface();
        }
      });

      $(".vocab_editing_field").bind("blur",function(evt) {
          field2update = "field"+active_vocab_row_field;

          value = document.getElementById("vocab_editing_field").value;
	vocab_object_under_editing.innerHTML = value;

          currently_editing = 0;
          // Update Database
          try {
            var head = document.getElementsByTagName("head")[0];
            script = document.createElement('script');
            script.id =  'updateScript';
            script.type = 'text/javascript';
            script.src = "/updates/editDictionary?vocab_id="+active_vocab_row_id+"&field="+field2update+"&value="+value;
            head.appendChild(script);
          } catch(err) { alert("Error: " + err.message); }
	  setInterface();
      });

  }




  setInterface();
