
var jQueryAacRegistry=new Array();jQuery.fn.extend({aautocomplete:function(settings){return this.each(function(){jQueryAacRegistry[this.id]=new jQuery.aautocompleteObj(this,settings);});}});jQuery.aautocompleteObj=function(input,settings){var me=this;me.lastValue=input.value;setInterval(function(){var val=$input.val();if(val!=me.lastValue){me.lastValue=val;selectedRow=null;firstRow=0;me.loadData();}},100);me.close=function(){$dropdown.css('visibility','hidden');}
me.open=function(force){if(!me.settings.disabled||me.settings.notFoundMsg!=null||force==true){drawDropdown();align();selectedRow=null;firstRow=0;$dropdown.css('visibility','visible');}}
me.isOpen=function(){return($dropdown.css('visibility')=='visible');}
var align=function(){var offset=$input.offset();dropdown.style.left=(offset.left+me.settings.positionOffset.left)+'px';dropdown.style.top=(offset.top+$input.outerHeight()+me.settings.positionOffset.top-1)+'px';dropdown.style.position='absolute';dropdown.style.width=(me.settings.width==0?$input.innerWidth():me.settings.width)+'px';}
var keydown=function(e){switch(e.keyCode){case 27:case 9:me.close();break;case 13:if(me.isOpen()){writeBack();}
break;case 38:moveCursor(-1);break;case 39:break;case 40:if(!me.isOpen()){me.loadData();}
moveCursor(1);break
case 37:break;}}
var moveCursor=function(step){if(data.length<1){me.close();return;}
if(selectedRow==null){if(step<0){selectedRow=0;firstRow=0;}else{selectedRow=(data.length)-1;firstRow=(data.length)-(me.settings.maxResult);}}
if(selectedRow+step<0){var nextStep=step+selectedRow+1;selectedRow=(data.length)-1;firstRow=(data.length)-(me.settings.maxResult);moveCursor(nextStep);return;}
if(selectedRow+step>(data.length)-1){nextStep=step-(data.length)+selectedRow;firstRow=0;selectedRow=0;moveCursor(nextStep);return;}
selectedRow=selectedRow+step;if(firstRow>selectedRow){firstRow=selectedRow}
if(firstRow+(me.settings.maxResult-1)<selectedRow){firstRow=selectedRow-(me.settings.maxResult)+1;}
drawDropdown();}
var keyup=function(e){switch(e.keyCode){case 9:case 27:case 13:case 38:case 39:case 40:case 37:break;default:}}
me.loadData=function(){if($input.val().length==0||me.settings.disabled){data=Array();me.close();return;}
if(me.settings.notFoundMsg==null&&($input.val().length<me.settings.minChar)){me.close();}
else{if(typeof me.cache[$input.val()]!="undefined"){data=me.cache[$input.val()];me.open();}
else if((typeof me.settings.url=="string")&&(me.settings.url.length>0)){var q=$input.val();setTimeout(function(){if(q!=$input.val()){return;}
$.get(getUrl(q),function(geteddata){if(q!=$input.val()){return;}
if(geteddata.length<2){return;}
var jsonData=eval('('+geteddata+')');if(typeof jsonData.items=='object'&&jsonData.items.length>0){data=jsonData.items;me.cache[q]=data;me.open();}
else{if(me.settings.notFoundMsg){data=Array();if($input.val().length>=me.settings.minChar){me.open();}}else{me.close();}}},'json');},300);}
else if(me.settings.notFoundMsg!==null){data=Array();}}}
var getUrl=function(q){var url=me.settings.url+"?q="+encodeURI(q);for(var i in me.settings.extraParams){url+="&"+i+"="+encodeURI(me.settings.extraParams[i]);}
return url}
var drawDropdown=function(){if(me.settings.disabled){return false;}
align();$('.AAClist',$dropdown).html('');if(data.length==0){$('.AAClist',$dropdown).append(me.settings.notFoundMsg);}
else{var row;for(var I=firstRow;I<me.settings.maxResult+firstRow;I++){if(typeof data[I]!="undefined"&&data[I].length>0){boldRE=new RegExp('('+$input.val()+')','i');$row=$(me.settings.rowTemplate.replace('$$$$',data[I].replace(boldRE,"<b>$1</b>")));if(I==selectedRow){$row.addClass('AACselected');}
$('.AAClist',$dropdown).append($row);}}}}
var writeBack=function(){if(selectedRow>-1){$input.val(data[selectedRow]);}
me.close();$input.trigger('itemSelected');$($input).parents('form').submit();}
var blur_click=function(e){if(me.isOpen){var hide=true;if(this.id==input.id){hide=false;}else if($(this).hasClass('ac_onoff'))
{hide=false;}else if($(this).closest('.AACbox').length>0){hide=false;}
if(hide){me.close();}else{setTimeout("document.getElementById('"+input.id+"').focus()",20);}}}
var mouseSelect=function(e){var $this=$(this);$this.siblings().removeClass('AACselected');$this.addClass('AACselected');selectedRow=firstRow+$this.prevAll().length;}
me.clearCache=function(){me.cache=new Array();}
me.clearInput=function(){$input.val('');}
me.getDropdown=function(){return $dropdown;}
me.getData=function(){return data;}
var selectedRow=null;var firstRow=0;var data=new Array();var $input=$(input);me.cache=new Array();$input.attr("autocomplete","off");$input.addClass('AACized');me.settings={url:settings.url||null,maxResult:settings.maxResult||4,minChar:settings.minChar||2,extraParams:settings.extraParams||'',positionOffset:settings.positionOffset||{top:3,left:0},width:settings.width||0,boxClass:settings.boxClass||null,notFoundMsg:settings.notFoundMsg||null,mainTemplate:settings.mainTemplate||"<div class='AACbox' style=\"margin:0;padding:0\"><div class='AAClist'></div> <span class='AAClistUp'>fel</span> - <span class='AAClistDown'>le</span>  </div>",rowTemplate:settings.rowTemplate||"<div class=\"AACrow\">$$$$</div>",disabled:settings.disabled||false}
var $dropdown=$(me.settings.mainTemplate);var dropdown=$dropdown[0];align();$dropdown.attr('id','AACdropdown_'+$input.attr('id'));$input.keydown(keydown);$input.keyup(keyup);$('*').live('click',blur_click);$('.AACrow',$dropdown).live('mouseover',mouseSelect);$('.AACrow',$dropdown).live('click',writeBack);me.close();$dropdown.appendTo('body');};jQuery.aautocompleteGet=function(id){return jQueryAacRegistry[id];}
var q=document.getElementById('q');$document.ready(function(){var $from=$('#from');var $to=$('#to');var setupAutoComplete=function(){autocomplete.close();autocomplete.clearCache();autocomplete.settings.extraParams={from:$from.val(),to:$to.val()};}
$(q).aautocomplete({mainTemplate:$('#AACboxTemplate').html(),minChar:aacMinChar,positionOffset:{left:0,top:0}});var autocomplete=jQuery.aautocompleteGet('q');autocomplete.settings.disabled=false;autocomplete.settings.url='/dictionary/autocomplete';$from.change(function(){setupAutoComplete();q.focus();if(this.value==$to.val()){kAlert(sameLangNotice);}});$to.change(function(){setupAutoComplete();q.focus();if(this.value==$from.val()){kAlert(sameLangNotice);}});$(document.getElementById('swaplanguages')).click(function(e){e.preventDefault();var tmp=$from.val();$from.data('nise').setValue($to.val());$to.data('nise').setValue(tmp);setupAutoComplete();q.focus();});$(document.getElementById('dictionary_search')).submit(function(e){e.stopPropagation();$('#error_q, #error_q2').hide();var l=q.value.length;if(l==0){$('#error_q').show();return false;}
else if($from.val()==$to.val()){kAlert(sameLangNotice);return false;}
return true;});setupAutoComplete();});