var QSug_isClosing;

var QSug_maxEntry = new Array();
var QSug_aktEntry  = new Array();
var QSug_maxAktEntry = new Array();

var QSug_isActive = new Array();
var QSug_isVisible = new Array();
var QSug_isSearching = new Array();

var QSug_aktEntry = new Array();
var QSug_lsearch = new Array();
var QSug_interval = new Array();
var QSug_links = new Array();

var QSug_width = new Array();
var QSug_align = new Array();

        function QSugInit(QSugID, items,width,align) {

          QSug_maxEntry[QSugID] = items;
          QSug_width[QSugID] = width;
          QSug_align[QSugID] = align;

          QSug_maxAktEntry[QSugID] = 0;

          QSug_isActive[QSugID] = 0;
          QSug_isVisible[QSugID] = 0;
          QSug_isSearching[QSugID] = 0;

          QSug_aktEntry[QSugID] = -1; // keines
          QSug_lsearch[QSugID] = null;
          QSug_interval[QSugID] = null;
          QSug_links[QSugID] = new Array();

        }
        function QSugSearch (QSugID) {

                 if (QSug_isSearching[QSugID]) return 0; //sucht gerade

                 var eContent = trim(document.getElementById('QSug_inp_'+QSugID).value);

                 // gleicher Suchtext
                 if (eContent == QSug_lsearch[QSugID]) return 2;

                 // zu kurzer Suchtext
                 if (eContent.length < 3) {
                         QSugFadeOut(QSugID);
                         QSug_lsearch[QSugID] = null;
                         return 0;
                 } else {
                         QSugFadeIn(QSugID);
                 }

                 QSug_isSearching[QSugID] = 1; // Sucht gerade, Status setzen
                 QSugSetEntry (QSugID,'INFO','<i>Suche ...</i>');

                 eval('QSugSearch'+QSugID+'();');

                 QSug_lsearch[QSugID] = eContent;
                 QSugSetAktEntry (QSugID,-1);

                 return 1;
        }


        function QSugClick(QSugID,nr) {

                 var aktEntry = QSug_aktEntry[QSugID];

                 if (aktEntry == -1) {

                 } else {
                         // Suchfeld mit Quicklink beschriften
                         document.getElementById('QSug_inp_' + QSugID).value = document.getElementById('QSug_cnt_'+QSugID+'_'+aktEntry).innerText;

                         window.location.href = QSug_links[QSugID][aktEntry];
                 }


                 QSugDeact (QSugID);

        }

        function QSugSearchDone (QSugID,anz,infotext) {

                 var setval = 1;
                 for (var nr = 0; nr < QSug_maxEntry[QSugID]; nr++) {
                         if (nr==anz) setval = 0;
                         //changeDisplayStatus ('QSug_line_'+QSugID+'_'+nr,setval);
                         switchDisplay ('QSug_line_'+QSugID+'_'+nr,setval,'table-row');
                 }

                 infotext = typeof(infotext) != 'undefined' ? infotext : anz + ' Suchvorschläge';
                 QSugSetEntry (QSugID,'INFO',infotext);

                 QSug_maxAktEntry[QSugID] = anz;
                 QSug_isSearching[QSugID] = 0;
        }

         function QSugKeyPress (event,QSugID) {
                 if (isOpera) {
                         if (event.keyCode==13 && QSug_aktEntry[QSugID] >= 0)
                                 event.preventDefault();
                 }
         }

         function QSugKeyDown (event,QSugID) {

                 // Navigation:
                 if (event.keyCode==38) QSugSetAktEntry(QSugID,'last');
                 if (event.keyCode==40) QSugSetAktEntry(QSugID,'next');

                 // Eingabe:
                 if(event.keyCode==13) {
                         if (QSug_aktEntry[QSugID] >= 0) {
                                 QSugClick(QSugID);
                                 // Enter nicht durchreichen, da eigene Auswahl
                                 if (isIE && browserVersion < 5) {
                                          // IE unter 9.0
                                         event.returnValue=false;
                                 } else { event.preventDefault(); }
                         } else {
                                 QSugDeact (QSugID);
                         }
                 }

         }

         function QSugKeyUp (event,QSugID) {

                 var eContent = trim(document.getElementById('QSug_inp_' + QSugID).value);
                 var sState = 0;

                 if (eContent.length >= 3) {
                         sState = 1;
                         QSugSetEntry (QSugID,'SUCH',eContent);
                 }
                 switchDisplay ('QSug_line_'+QSugID+'_SUCH',sState,'table-row');

         }
        function QSugSetAktEntry (QSugID,newItem) {
                 var aktItem = QSug_aktEntry[QSugID];

                 if (aktItem == newItem) return 1;

                 if (newItem=='next') newItem = aktItem+1;
                 if (newItem=='last') newItem = aktItem-1;

                 if (newItem >= QSug_maxAktEntry[QSugID]) newItem = -1;
                 if (newItem < -1) newItem = QSug_maxAktEntry[QSugID]-1;

                 // Optische Änderungen
                 //document.getElementById('QSugStatus').innerHTML = ' set'+newItem;

                 if (newItem >= 0)
                    document.getElementById('QSug_line_'+QSugID+'_'+newItem).className = 'line akt';

                 if (aktItem >= 0)
                    document.getElementById('QSug_line_'+QSugID+'_'+aktItem).className = 'line';

                 QSug_aktEntry[QSugID] = newItem;
        }

        function QSugSetEntry (QSugID,nr,content,link) {

                 var eContent = document.getElementById('QSug_cnt_'+QSugID+'_'+nr);
                 QSug_links[QSugID][nr] = link;
                 //eContent.innerHTML = '<a href=\"' + link + '\" >' + label + '</a>';
                 eContent.innerHTML = content;

        }

        function QSugAct (QSugID) {

                 // Schließen-Timeout entfernen
                 if (typeof QSug_isClosing == 'number')
                         window.clearTimeout(QSug_isClosing);

                 if (QSug_isActive[QSugID]) return 0;

                 QSug_isActive[QSugID] = 1;

                 // Interval setzen
                 QSug_interval[QSugID] = window.setInterval('QSugSearch('+QSugID+')', 750);

        }

        function QSugDeact (QSugID) {

                 if (!QSug_isActive[QSugID]) return 0;
                 // ausblenden ...
                 QSug_isClosing = window.setTimeout('QSugExit('+QSugID+')', 200);
        }

        function QSugExit (QSugID) {
                 // Beenden

                 QSug_isActive[QSugID] = 0;
                 QSug_lsearch[QSugID] = null;

                 QSugFadeOut(QSugID);
                 window.clearInterval(QSug_interval[QSugID]);
        }

        function QSugFadeIn (QSugID) {

                 if (QSug_isVisible[QSugID]) return 0;

                 var eInp = document.getElementById('QSug_inp_'+QSugID);
                 var eTab = document.getElementById('QSug_tab_'+QSugID);

                 var pos = getPosition(document.getElementById('QSug_inp_'+QSugID));

                 eTab.style.top = (pos.y+pos.h+1)+'px';

                 if (QSug_width[QSugID] == 'auto') {
                         setWidth = pos.w;
                         eTab.style.width = setWidth+'px';
                 } else {
                         setWidth = QSug_width[QSugID];
                         eTab.style.width = setWidth+'px';
                 }

                 if (QSug_align[QSugID] == 'right') {
                         eTab.style.left  = (pos.x - (setWidth - pos.w))+'px';
                 } else {
                         eTab.style.left  = pos.x +'px';
                 }

                 QSug_isVisible[QSugID] = 1;
                 switchDisplay ('QSug_tab_'+QSugID,1,'table');
        }

        function QSugFadeOut (QSugID) {


                 QSug_isVisible[QSugID] = 0;

                 switchDisplay ('QSug_tab_'+QSugID,0,'table');
        }
