var lsShopAJAXdata=''; var lbGetShopAJAX=true; var lsShop_result=''; var lsShop_searchValue=''; var liShop_searchdrop_length=0; try { if (gsSearchType.length<1) gsSearchType='SHOP'; } catch(ex) { gsSearchType='SHOP'; } try { if (gsSearchBox.length<1) gsSearchBox='tb_shop_search'; } catch(ex) { gsSearchBox='tb_shop_search'; } try { if (gsSearchDrop.length<1) gsSearchDrop='tb_shop_drop';} catch(ex) { gsSearchDrop='tb_shop_drop'; } var loShop_searchbox=func_getElement(gsSearchBox); // tb_shop_search var loShop_searchdrop=func_getElement(gsSearchDrop); //tb_shop_drop var liShop_searchdrop_selected=-1; if (loShop_searchdrop) { if (loShop_searchbox) { loShop_searchbox.onkeydown=function(e) { // document.onkeypress darf sich nicht mit anderen Events schneiden! e = e || window.event; lbGetShopAJAX=true; if (loShop_searchbox) { if (e.keyCode == '27' ) { if (loShop_searchdrop) { loShop_searchdrop.innerHTML=''; liShop_searchdrop_length=0; } } // esc: ausgabe schliessen // left = 37 up = 38 right = 39 down = 40 if (e.keyCode==40) { // backspace 8 ... wird über keypress nicht erfasst - folglich wirkungslos - evtl. gegen keydown ändern if (liShop_searchdrop_length>0) { if (liShop_searchdrop_selected0) { if (liShop_searchdrop_selected>0) {liShop_searchdrop_selected-=1;} else {liShop_searchdrop_selected=liShop_searchdrop_length;} func_select_shop_search_element(liShop_searchdrop_selected); } } if (e.keyCode==8) { // backspace 8 ... wird über keypress nicht erfasst - folglich wirkungslos - evtl. gegen keydown ändern if (loShop_searchbox.value.trim().length>1) { lsShop_searchValue=func_left(loShop_searchbox.value.trim(), loShop_searchbox.value.trim().length-1) ; if (lsShop_searchValue.trim().length>0) func_getAJAXsearch(gsSearchType, lsShop_searchValue.trim()); } } if ((e.keyCode >= '32' && e.keyCode <='128' && (e.keyCode <= '36' || e.keyCode >='41')) || e.keyCode==0) { // 0 für firefox, der kennt die keys scheinbar nicht... if (loShop_searchbox.value+String.fromCharCode(e.keyCode) != lsShop_searchValue) { if (e.keyCode!=0) { lsShop_searchValue=loShop_searchbox.value+String.fromCharCode(e.keyCode); } else { lsShop_searchValue=loShop_searchbox.value } if (lsShop_searchValue.trim().length>0) func_getAJAXsearch(gsSearchType, lsShop_searchValue.trim()); } } } } } } function func_search_fill_ajax() { laSearchAJAXdata=lsSearchAJAXdata.split('|'); lsSearchHTML=''; liShop_searchdrop_length=0; lii=0; lik=0; if (laSearchAJAXdata.length>0) { lsSearchHTML+=''; } if (loShop_searchdrop) { if (lii>0) { loShop_searchdrop.innerHTML=lsSearchHTML; liShop_searchdrop_length=lik; } } } function func_searchbox_update(lsUpdateText) { if (loShop_searchbox) { loShop_searchbox.value=lsUpdateText; if (loShop_searchdrop) { loShop_searchdrop.innerHTML=''; liShop_searchdrop_length=0; } } } function func_getAJAXsearch(lsSearchType, lsParam1) { var loAJAXsearchReq = new XMLHttpRequest(); loAJAXsearchReq.onload=function () { lsSearchAJAXdata = this.responseText; func_search_fill_ajax(); }; lsAJAXsearchScript = 'scripts/?csvplain_174_'+lsSearchType+'_'; // siehe standortfinder func_getAJAX() // Row_Number() over (order by if (lsParam1) { lsAJAXsearchScript = lsAJAXsearchScript + lsParam1; } loAJAXsearchReq.open("get", lsAJAXsearchScript); loAJAXsearchReq.send(); } function func_select_shop_search_element(liSelected) { loULsearchdrop=func_getElement("ajaxSearchDrop"); // ok, da geht aber nur eines... if (loULsearchdrop) { if (loULsearchdrop.childNodes.length>=liSelected) { for (lij=0; lij liChars) { lsText=lsText.substr(lsText.length-liChars); } return lsText; } function func_left(lsText, liChars) { lsText=lsText.substr(0, liChars); return lsText; } function func_getElement(myElement) { thisElement=document.getElementById(myElement); if (thisElement) { return thisElement; } else { theseElements=document.getElementsByClassName(myElement); if (theseElements[0]) { return theseElements[0]; } else { theseElements=document.getElementsByName(myElement); if (theseElements[0]) { return theseElements[0]; } else { return false; } } } }