/****************************************
*   Copyright © 2007 smallmeans.com,
*   All rights reserved
*
*   Last mod.: 14 March 2007
****************************************/

myReq = new XMLHttpReq('/online.dictionary/words.php');
function initDictionary() {
  myReq.callback = function(responseText, responseStatus) {
    if (responseStatus==200) {
      if(responseText.indexOf('EMPTY-RES')!=-1){
        string="<div style='color:red;font-size: 16px;'><img src='no.png'>Sorry, there were no results for <b>\""+document.forms.form1.keyword.value+"\" </b><br>";
        elm=SmallMeans.DOM.$("liveQuery");
        elm.innerHTML =string;   
      }
      else{
        toggleView("liveQuery",true);
        SmallMeans.DOM.$("liveQuery").innerHTML =responseText;              
      }
      SmallMeans.DOM.$('info').innerHTML='';
      SmallMeans.DOM.$('info').className='info';
    }
    else {
      SmallMeans.DOM.$("liveQuery").innerHTML="roof is on fire :<br>"+req.statusText;
    }
  }
  var inputs = document.getElementsByTagName('input');
  for (var i=0; i<inputs.length; i++) {
    var input = inputs[i];
    if (input.getAttribute('type') == 'text') {
      if (document.all) {
        
        input.onkeydown = reactToKeys;
        input.onkeyup = reactToKeys;
      }
      else {
        
        input.onkeyup = reactToKeys;
      }
    }
  }
  document.form1.keyword.focus();
}

/* Running query upon allowed keys..
  alpha=[65-90] + some control keys */
function isAllowed(key){
  
   var controlKeys = [8,46, 192, 221,222];
  return (controlKeys.inArray(key) || (inRange(key,65,90))|| (inRange(key,105,122)))
}

function reactToKeys(e){
  if (!e)   var e = window.event; 
   var kc = e.keyCode ? e.keyCode : e.charCode;
  if (isAllowed(kc) && SmallMeans.DOM.$('dicButton').disabled){
    sendQuery(document.forms.form1.keyword.value,e);
    
   
  }
  
  else if(inRange(kc,37,40) || inRange(kc,35,36) || !SmallMeans.DOM.$('dicButton').disabled){
    e.returnValue = true;
  }
  else   {
    if (document.all){
      e.cancelBubble = true;
      e.returnValue = false;
    }
    else{
      e.preventDefault();
      e.stopPropagation();
    }
  }
}

function sendQuery(word,evt){
  
if(word.replace(/^\s*|\s*$/g,"")=="") return;
  var url="type="+pos+"&dic="+dic+"&word="+escape(word);
  myReq.update(url);
  SmallMeans.DOM.$('info').className='loading';
  SmallMeans.DOM.$('info').innerHTML='please, wait..';
}
addEvent(window,'load',initDictionary);
addEvent(window,'load',function(){
  swap('t1');
  var query = SmallMeans.getQuery();
  if(typeof query.word ==="undefined"){
    document.form1.keyword.setAttribute("autocomplete","off");
  }else{
    if(typeof query.dic !=="undefined"){
      if(query.dic=="en2da"){
        dic="_dicEng2DK";
        swap('t2');
      }
    }
    var word=unescape(query.word);
    document.forms.form1.keyword.value=word;
    sendQuery(word,'POST');
    toggleView("liveQuery",true);
    SmallMeans.DOM.$('container').scrollIntoView()
  }
});

