var isOpera = navigator.userAgent.indexOf("Opera") > -1; var isIE = navigator.userAgent.indexOf("MSIE") > 1 && !isOpera; var isMoz = navigator.userAgent.indexOf("Mozilla/5.") == 0 && !isOpera; function textboxSelect (oTextbox, iStart, iEnd) { switch(arguments.length) { case 1: oTextbox.select(); break; case 2: iEnd = oTextbox.value.length; /* falls through */ case 3: if (isIE) { var oRange = oTextbox.createTextRange(); oRange.moveStart("character", iStart); oRange.moveEnd("character", -oTextbox.value.length + iEnd); oRange.select(); } else if (isMoz){ oTextbox.setSelectionRange(iStart, iEnd); } } oTextbox.focus(); } function textboxReplaceSelect (oTextbox, sText) { if (isIE) { var oRange = document.selection.createRange(); oRange.text = sText; oRange.collapse(true); oRange.select(); } else if (isMoz) { var iStart = oTextbox.selectionStart; oTextbox.value = oTextbox.value.substring(0, iStart) + sText + oTextbox.value.substring(oTextbox.selectionEnd, oTextbox.value.length); oTextbox.setSelectionRange(iStart + sText.length, iStart + sText.length); } oTextbox.focus(); } function autocompleteMatch (sText, arrValues) { sTextUpper=sText.toUpperCase(); for (var i=0; i < arrValues.length; i++) { if (arrValues[i].indexOf(sText) == 0) { return arrValues[i]; } if (arrValues[i].toUpperCase().indexOf(sTextUpper) == 0) { return arrValues[i]; } } return null; } function autocomplete(oTextbox, oEvent) { var arrValues = [ "1020 LANKOPREDAL" ,"5073 FLUIDE 2S" ,"CCTP" ,"FBI" ,"FDES" ,"FFR" ,"Fibres pour béton à incorporer" ,"Silicone carreleur" ,"acrylfix" ,"adhésicol" ,"adjuvant super +" ,"algirex" ,"amg. armature métallique" ,"antigel liquide" ,"antigel poudre" ,"armature rm" ,"artopierre tf" ,"artopierre tm" ,"avr armature de verre renforcée pour soubassement" ,"avu armature de verre universelle" ,"axel 3000" ,"bande armée pour angle" ,"bande auto adhésive" ,"bande d'étanchéité proliband" ,"bande papier" ,"bio graffiti nettoyant" ,"bio graffiti protection" ,"blanc de meudon" ,"blanc du littoral" ,"brochures environnementales" ,"brépoxy" ,"bétenduit" ,"béton rapide" ,"béton universel" ,"calcidéco" ,"calcilane antico" ,"calcilane badigeon" ,"calcilane enduit" ,"calcilane fond" ,"calfarge" ,"calfarge gros" ,"calfarge rapide" ,"chaux de paviers" ,"ciment blanc" ,"ciment fondu" ,"ciment gris" ,"ciment prompt" ,"clavex" ,"clavexpress" ,"clavexpress gros" ,"colle carrelage" ,"colle enduits tous travaux" ,"colle et joint en pâte" ,"colle pour carreaux plâtre" ,"colle pour matériaux d'isolation" ,"coltou" ,"crylane" ,"crépi à rouler" ,"descriptifs" ,"durcipierre" ,"ehi Enduit hydraulique sur isolant" ,"emultor" ,"enduit d'étanchéité" ,"enduit de bouchage" ,"enduit de façade" ,"enduit de façade monocouche" ,"enduit de façade tyrolien" ,"enduit de lissage" ,"enduit à la chaux" ,"enduits à bande" ,"ertoflex" ,"ertomur" ,"façade" ,"fiches de données environnementales et sanitaires" ,"fixopierre" ,"fleur de chaux" ,"floorsuper" ,"gobétis spécial a" ,"granilane moyen" ,"grillage galvanisée maille 20*20" ,"hautes performances sur murs et sols" ,"joint en pâte" ,"joint fin" ,"joint large" ,"joint rustic" ,"joint souple" ,"kit d'étanchéité sous carrelage pour salle de bain" ,"lankoair" ,"lankoband" ,"lankobat neutre coloré" ,"lankobat neutre translucide" ,"lankobat sanit" ,"lankobat tuile" ,"lankobat étanche" ,"lankoblack fibré" ,"lankoblack fluide" ,"lankoblack pâteux" ,"lankoblack vernis" ,"lankocem" ,"lankocol h.p" ,"lankocolor" ,"lankocryl" ,"lankocryl extérieur" ,"lankocrète abrasion" ,"lankocrète réseau" ,"lankocrète spécial" ,"lankocuring" ,"lankodem plus" ,"lankodem éco" ,"lankodilpox" ,"lankodécap" ,"lankofibres fibrillées" ,"lankofibres multifilaments" ,"lankofill coque" ,"lankofix" ,"lankoflex" ,"lankofloor liquide" ,"lankofloor peinture" ,"lankofloor poudre" ,"lankofluid" ,"lankofoam" ,"lankofugant" ,"lankofuge masse" ,"lankofuge surface" ,"lankogel" ,"lankogunite r.i.g" ,"lankogunite standard" ,"lankoimper" ,"lankolastic" ,"lankolatex" ,"lankolav" ,"lankomousse" ,"lankomur fin" ,"lankomur prêt" ,"lankopassiv" ,"lankophonic mini-chape" ,"lankoplast" ,"lankoplug" ,"lankopontage" ,"lankopoxy" ,"lankoprotec" ,"lankoraod rapidex" ,"lankorep blanc" ,"lankorep façade" ,"lankorep fin" ,"lankorep fissure" ,"lankorep patrimoine" ,"lankorep rapide" ,"lankorep structure" ,"lankoroad bitume" ,"lankoroad bordures" ,"lankoroad hiver" ,"lankoroad scellflash" ,"lankoscelpox" ,"lankoseal" ,"lankosec" ,"lankosol mince" ,"lankosol épais" ,"lankosteel" ,"lankostone joint" ,"lankostone pose" ,"lankostone pose mb" ,"lankostop" ,"lankotoit" ,"lankotuile" ,"maité monocomposant" ,"marbri" ,"marbri granulats" ,"membrane sk 2000 s" ,"micro gobétis 2000" ,"monexal" ,"monoblanco" ,"monodéco gt" ,"monodécor gm" ,"monodécor gtp" ,"monodécor tl" ,"monorex" ,"monorex gf" ,"mortier blocs" ,"mortier bâtard" ,"mortier béton cellulaire" ,"mortier colle béton cellulaire" ,"mortier colle spécial extérieur" ,"mortier de réparation" ,"mortier feu" ,"mortier fin" ,"mortier fin d'imperméabilisation" ,"mortier pierre dm" ,"mortier pierre tf" ,"mortier rapide" ,"mortier réfractaire" ,"mortier universel" ,"mortiers spéciaux" ,"murale 80" ,"murchape" ,"murs intérieurs et Plans de travail" ,"noir de voirie" ,"normes" ,"nuancier" ,"nuancier 196 teintes" ,"nuancier 48 teintes" ,"néoprène" ,"omni 3" ,"omnibois" ,"omnichape" ,"omnichape fibré" ,"omniplay" ,"parbéton" ,"pardecap" ,"pardéco fin" ,"pardéco moyen" ,"pardéco tyrolien" ,"parenduit" ,"parexal" ,"parexbric" ,"parexi" ,"parilien" ,"parilien fin" ,"parinjection" ,"parité" ,"parjoint" ,"parlumière clair" ,"parlumière fin" ,"parlumière moyen" ,"parlumière sth" ,"parmurex" ,"parmurex sans poussière" ,"partenariat FFR" ,"parthéna moulage" ,"parthéna ragréage" ,"pei mat" ,"plâtre de paris" ,"plâtre à modeler" ,"polytapis" ,"prescripteur" ,"primaie sk" ,"primaire tous supports" ,"primaprène plus" ,"prise rapide" ,"prolicoat" ,"prolidal" ,"prolidal plus" ,"prolidal super" ,"proliflex hp" ,"prolifluide" ,"prolifluide anhydrite" ,"prolifluide rapide" ,"prolijoint hp" ,"prolijoint m" ,"prolijoint rapide" ,"prolijoint rustic" ,"prolijoint s" ,"prolijoint souple" ,"prolijoint tradi" ,"prolipate" ,"prolipate hp" ,"prolipate plus" ,"prolipox m-s" ,"prolipox s" ,"proliprim" ,"prolirapide" ,"prolitradi" ,"pâte d'étanchéité k 100" ,"ragréage extérieur" ,"ragréage fibré spécial rénovation" ,"ragréage intérieur" ,"ragrépar" ,"renfort d'angle sk de" ,"revlane fixateur" ,"revlane quartz projeté" ,"revlane ribbé fin" ,"revlane ribbé fin sp" ,"revlane ribbé gros" ,"revlane roulé" ,"revlane régulateur" ,"revlane solvante gros" ,"revlane taloché fin" ,"revlane taloché gros" ,"sable fin à maçonner" ,"salle de bains et cuisine" ,"services" ,"simulateur" ,"sol 4000" ,"sol et mur intérieur" ,"solchape express" ,"soldur" ,"solflex" ,"solinter" ,"solplast" ,"solrapid" ,"sous couche lankophonic" ,"sous-couche d'étanchéité sous carrelage" ,"spécial sol extérieur" ,"stylo joint blanc" ,"supacryl" ,"suremballage bande d'étanchéité" ,"tapisol" ,"tardex" ,"thixopierre" ,"toile de verre tv 10" ,"toile de verre tv 33" ,"tous carreaux sur tous supports" ,"tradirex" ,"uretafix" ,"utarep h 80 c" ,"utarep h 80 f" ]; switch (oEvent.keyCode) { case 38: //up arrow case 40: //down arrow case 37: //left arrow case 39: //right arrow case 33: //page up case 34: //page down case 36: //home case 35: //end case 13: //enter case 9: //tab case 27: //esc case 16: //shift case 17: //ctrl case 18: //alt case 20: //caps lock case 8: //backspace case 46: //delete return true; break; default: textboxReplaceSelect(oTextbox, String.fromCharCode(isIE ? oEvent.keyCode : oEvent.charCode)); var iLen = oTextbox.value.length; var sMatch = autocompleteMatch(oTextbox.value, arrValues); if (sMatch != null) { oTextbox.style.color='black'; oTextbox.value = sMatch; textboxSelect(oTextbox, iLen, oTextbox.value.length); } else oTextbox.style.color='red'; return false; } }