﻿var GlossarySText;
var GlossaryDictionary;
var GlossaryXMLVar;
var GlossarySelectedType;
var SelectedItem="";
var unSelectedItem="";
var PressNumber=0;

function GlossaryGetInput(){
GlossarySText= document.getElementById("keyword").value;
return GlossarySText;
}

function GlossaryClearInput(){
PressNumber=0;
SelectedItem="";
//unSelectedItem="";
document.getElementById("risultati").value="";
document.getElementById("keyword").value="";
document.getElementById("keyword_auto_complete").style.display='none';
}

function GlossarySetInput(text, desc){

GlossaryHideList();
SelectedItem="";
PressNumber=0;
document.getElementById("keyword").value=text.firstChild.nodeValue;
document.getElementById("risultati").value=desc.firstChild.nodeValue;
document.getElementById("risultati").style.display="block";

}

function GlossaryDictChange(element){
GlossaryClearInput();
 return element;
}

function GlossaryloadData(q,e,la)
{
la=la=="IT"?"":la;
var a=e.keyCode;
document.getElementById("risultati").value="";
if(a!=40 && a!=38 && a!=13 && a!=27){
    URL="/azienda/common/control_appl/toolbox_controls/glossario.aspx";
   if(GlossarySelectedType!=null){
    type=GlossarySelectedType;
   }else{
    type= document.getElementById("lista").firstChild.firstChild.firstChild.id

    }
    substring=q;
    URL=URL + "?t=" + type + "&q=" + q + "&c=" + la;
    GlossaryxmlReq = null;
    if(window.XMLHttpRequest) GlossaryxmlReq = new XMLHttpRequest();
    else if(window.ActiveXObject) GlossaryxmlReq = new ActiveXObject("Microsoft.XMLHTTP");
    if(GlossaryxmlReq==null) return; 
    GlossaryxmlReq.onreadystatechange = function()
    {
        switch(GlossaryxmlReq.readyState)
        {
        case 0:
            break;
        case 1:
            break;
        case 2:
            break;
        case 3:
            break;
        case 4:
            GlossaryXMLVar=GlossaryHandler(GlossaryxmlReq.responseXML);
            break;
        default:
            break;
        }
    }
    GlossaryxmlReq.open ('GET', URL, true);
    GlossaryxmlReq.send (null);
    }else if(document.getElementById('keyword_auto_complete').style.display=='block'){
    switch(a){
    case 40:
    
     if(SelectedItem==null || SelectedItem==""){
     
     PressNumber=0;
     SelectedItem=StyleChange("w" + PressNumber,'select');
     }else{
     PressNumber++;
     PressNumber>eval(document.getElementById("listOption").childNodes.length/2) - 1?PressNumber=PressNumber-PressNumber:PressNumber=PressNumber;
     if(PressNumber>0){
     unSelectedItem=StyleChange("w" + eval(PressNumber - 1).toString() ,'unselect');
     document.getElementById("w" + eval(PressNumber - 1)).style.offset=0;
     }
     if(PressNumber==0){
     document.getElementById("listOption").scrollTop = 0;
     unSelectedItem=StyleChange("w" + (eval(document.getElementById("listOption").childNodes.length/2) - 1).toString(),'unselect');
     SelectedItem=StyleChange("w0",'select');

     }

     SelectedItem=StyleChange("w" + PressNumber,'select');
     }
    break;
    case 38:
     if(SelectedItem==null || SelectedItem==""){ 
     PressNumber=0;
     SelectedItem="";
     }else{
     PressNumber>0?PressNumber--:PressNumber=eval(document.getElementById("listOption").childNodes.length/2) - 1;
     SelectedItem=StyleChange("w" + PressNumber,'select');
    if(PressNumber<eval(document.getElementById("listOption").childNodes.length/2) - 1) unSelectedItem=StyleChange("w" + (PressNumber + 1).toString() ,'unselect');
    if(PressNumber==eval(document.getElementById("listOption").childNodes.length/2) - 1){document.getElementById("listOption").scrollTop = 0; unSelectedItem=StyleChange("w0" ,'unselect');}
     }
     break;
       case 13:
       GlossarySetInput(document.getElementById(SelectedItem).firstChild,document.getElementById(SelectedItem).nextSibling);
     break;
       case 27:
      GlossaryClearInput();

      document.getElementById('keyword_auto_complete').style.display='none';
     break;
    }
    if(SelectedItem!="")
    {
    if(document.getElementById(SelectedItem).offsetTop>document.getElementById("listOption").offsetHeight){
        document.getElementById("listOption").scrollTop = eval(document.getElementById(SelectedItem).offsetTop - document.getElementById("listOption").offsetHeight + document.getElementById(SelectedItem).offsetHeight + 2) ;
        }
    if(document.getElementById(SelectedItem).offsetTop<document.getElementById("listOption").scrollTop)
        {
        document.getElementById("listOption").scrollTop = 0;
        }
    }else{ document.getElementById("listOption").scrollTop = 0;}
    }
}
function GlossaryHandler(xml)
{
var ss = document.getElementById('keyword_auto_complete');
ss.innerHTML = '';
var str = xml;
var result = xml.getElementsByTagName('lemma');
if(result.length==0){
ss.style.display='none';
}else{

ss.style.display='block';
}
var suggest;
suggest="<div id=\"listOption\" class=\"listOption\" style=\"position:absolute; z-index:2; backgroundColor:white;  overflow-y:scroll; height:150px; width:155px; margin:0px 3px 0px 3px; border:1px solid grey;\">";

for(i=0; i < result.length ; i++) {	
		suggest += "<div id=\"w" + i + "\" class=\"Option\" style=\"backgroundColor:white\" onclick=\"GlossarySetInput(this.firstChild,nextSibling);\" onmouseout=\"unSelectedItem=StyleChange(SelectedItem,'unselect');\"  onmouseover=\"PressNumber=" + i + ";SelectedItem==''?SelectedItem='':unSelectedItem=StyleChange(SelectedItem,'unselect');SelectedItem=StyleChange('w" + i + "','select');\" onkeyup=\"Naviga(event);\" >";


		suggest += "<span  class=\"word\">" + result[i].firstChild.firstChild.nodeValue + "</span>";
	 
	    suggest +="</div>"; 
	 	suggest += "<span id=\"desc" + i + "\" style=\"display:none\" class=\"def\" onclick=\"GlossarySetInput(this,nextSibling)\">" + result[i].lastChild.lastChild.nodeValue + "</span>";
   
}
suggest+="</div>";
ss.innerHTML += suggest;
}
function Naviga(e){
var a=e.keyCode;
}

function StyleChange(component,selectionmode){
if(component!="")
{
if(selectionmode=='select')
{
document.getElementById(component).style.backgroundColor ="red";
document.getElementById(component).style.color ="white";

}else {
document.getElementById(component).style.backgroundColor ="white";
document.getElementById(component).style.color ="black";

}
}

return component;
}
function GlossaryHideList(){
var ss = document.getElementById('keyword_auto_complete');
ss.style.display='none';
}

