var element=document.getElementById('placeholder');
element.innerHTML='<script id="fabLocaleVariable1777530690196"> var fabLocaleData={ locale:\'en\', decimalseparator:\'.\' }; </script> <script id="fabGlobalJsVariable1777530690197"> var fabUmschlingBasisText=\'Wrap around angle\'; </script> <script id="fabGlobalJsVariable1777530690198"> var fabFmrMaxZ1=\'FM\'; </script> <script id="fabGlobalJsVariable1777530690199"> var fabFmrMaxZ2=\'max\'; </script> <script id="fabGlobalJsVariable1777530690200"> var fabFmrMinZ1=\'FM\'; </script> <script id="fabGlobalJsVariable1777530690201"> var fabFmrMinZ2=\'min\'; </script> <script id="fabGlobalJsVariable1777530690202"> var fabFgrZ1=\'FGM\'; </script> <script id="fabGlobalJsVariable1777530690203"> var fabFgrZ2=\'\'; </script> <script id="fabGlobalJsVariable1777530690204"> var fabFBKurz=\'FB\'; </script> <script id="fabGlobalJsVariable1777530690205"> var fabW1Kurz=\'A1\'; </script> <script id="fabGlobalJsVariable1777530690206"> var fabW2Kurz=\'A2\'; </script> <script id="fabGlobalJsVariable1777530690207"> var fabMrKurz=\'MD\'; </script> <script id="fabGlobalJsVariable1777530690208"> var fabFmKurz=\'FW\'; </script> <script id="fabGlobalJsVariable1777530690209"> var fabFgKurz=\'FG\'; </script> <script id="fabGlobalJsVariable1777530690210"> var fabW1Lang=\'Angle 1\'; </script> <script id="fabGlobalJsVariable1777530690211"> var fabW2Lang=\'Angle 2\'; </script> <script id="fabGlobalJsVariable1777530690212"> var fabMrLang=\'Measuring direction\'; </script> <script id="fabGlobalJsVariable1777530690213"> var fabFmLang=\'Bisecting angle\'; </script> <script id="fabGlobalJsVariable1777530690214"> var fabFgLang=\'Roller weight\'; </script> <script>document.fabAfterTabChange = () => {if (window.resizeWinkelzeichner===undefined){}else{window.resizeWinkelzeichner();}}; </script> <form class="produktauswahl"> <div style="display:flex;flex-direction:row;justify-content:space-between;"> <div><a href="https://haehne.de" style="border-style:none;"><img src="img/logo.png" style="max-width:200px" /></a> <h1>Configurator</h1> </div> <div style="margin-top:1em;"> <script> async function getInputElementNameValueForUrl1(inputElementId){ try{ let element=document.getElementById(inputElementId); if(element!=null){ if(typeof element.GetTechnicalUrlValue===\'function\'){let namevalue=element.name; if(namevalue===undefined){let nameAtt=element.attributes["name"];if(nameAtt!=null){namevalue=nameAtt.value;}}if(namevalue===undefined){namevalue=element.id;}let techurlval=element.GetTechnicalUrlValue(); if(techurlval==null || techurlval==\'\'){return "";} return namevalue+"="+encodeURIComponent(techurlval)+"&"; }else if(element.type==\'file\'){ const toBase64 = file => new Promise((resolve, reject) => { const reader = new FileReader(); if(file!=null){ reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = reject; } else { resolve(null); } }); let base64=await toBase64(element.files[0]); console.log(encodeURIComponent(base64)); return element.name+"="+encodeURIComponent(base64)+"&"; }else if(element.multiple){ let options=element.options; let optionsurl=""; for(let i=0;i<options.length;i++){ if(options[i].selected){ optionsurl+=element.name+"="+encodeURIComponent(options[i].value)+"&"; } } return optionsurl; }else if(element.tagName==\'CANVAS\'){ let dataurl=await element.toDataURL("image/png");return element.id+"="+encodeURIComponent(dataurl)+"&"; }else if(element.type==\'checkbox\'){if(element.checked){return element.name+"="+encodeURIComponent(element.checked)+"&";}else{return "";} }else if(element.type==\'radio\'){if(element.checked){return element.name+"="+encodeURIComponent(element.value)+"&";}else{return "";} }else if(element.tagName==\'SELECT\'){ console.log(element.id+\': \'+element.value); if(element.value==null || element.value==\'\'){return "";}else{return element.name+"="+encodeURIComponent(element.value)+"&";} }else{ return element.name+"="+encodeURIComponent(element.value)+"&"; } } else{return "";} }catch(error){ console.error(error); let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'An error occurred in the system.\'; errorElement.classList.add(\'fabjsmessage-error\'); errorShown=true; } if(errorShown==false){alert(\'An error occurred in the system.\');} throw error; } } function isInputValueValid1(inputElementId){ let element=document.getElementById(inputElementId); if(element!=null && element.tagName==\'INPUT\'){ console.log(element); element.classList.remove(\'faberror\'); element.setCustomValidity(""); let valid=element.reportValidity(); if(valid==false){ if(inputElementId==\'datenschutzok\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'telefon\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'email\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'stueckzahl\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} element.classList.add(\'faberror\'); element.scrollIntoView({behavior:"smooth",block:"center"}); element.focus(); console.log(\'Nicht valide: \'+inputElementId); } return valid; }else{ return true; } } function isFormValid1(){ console.log(\'Checking validity...\'); return true; } function getUrlParameterNameValueForUrl1(urlParameterName){ const searchParams = new URLSearchParams(window.location.search); if(searchParams.has(urlParameterName)){ return urlParameterName+\'=\'+searchParams.get(urlParameterName)+\'&\'; }else{ return ""; } } async function fabInputFieldSubmitBlst1795077999GetWdw(baseUrl){ try{ let btnFabInputField1777530690215=null;try{btnFabInputField1777530690215=document.getElementById(\'fabInputField1777530690215\');if(btnFabInputField1777530690215!=null){if(btnFabInputField1777530690215.classList.contains(\'fab-button-processing\')){return;}btnFabInputField1777530690215.classList.add(\'fab-button-processing\');}let query="messageelementid=nachricht&"; console.log(\'Adding URL param for locale\');if(!isInputValueValid1("locale")){return;} query+=await getInputElementNameValueForUrl1("locale"); console.log(\'Adding URL param for beratung\');if(!isInputValueValid1("beratung")){return;} query+=await getInputElementNameValueForUrl1("beratung"); console.log(\'Adding URL param for katalog\');if(!isInputValueValid1("katalog")){return;} query+=await getInputElementNameValueForUrl1("katalog"); console.log(\'Adding URL param for angebot\');if(!isInputValueValid1("angebot")){return;} query+=await getInputElementNameValueForUrl1("angebot"); console.log(\'Adding URL param for stueckzahl\');if(!isInputValueValid1("stueckzahl")){return;} query+=await getInputElementNameValueForUrl1("stueckzahl"); console.log(\'Adding URL param for firma\');if(!isInputValueValid1("firma")){return;} query+=await getInputElementNameValueForUrl1("firma"); console.log(\'Adding URL param for strasse\');if(!isInputValueValid1("strasse")){return;} query+=await getInputElementNameValueForUrl1("strasse"); console.log(\'Adding URL param for plz\');if(!isInputValueValid1("plz")){return;} query+=await getInputElementNameValueForUrl1("plz"); console.log(\'Adding URL param for ort\');if(!isInputValueValid1("ort")){return;} query+=await getInputElementNameValueForUrl1("ort"); console.log(\'Adding URL param for name\');if(!isInputValueValid1("name")){return;} query+=await getInputElementNameValueForUrl1("name"); console.log(\'Adding URL param for telefon\');if(!isInputValueValid1("telefon")){return;} query+=await getInputElementNameValueForUrl1("telefon"); console.log(\'Adding URL param for email\');if(!isInputValueValid1("email")){return;} query+=await getInputElementNameValueForUrl1("email"); console.log(\'Adding URL param for datum\');if(!isInputValueValid1("datum")){return;} query+=await getInputElementNameValueForUrl1("datum"); console.log(\'Adding URL param for datenschutzok\');if(!isInputValueValid1("datenschutzok")){return;} query+=await getInputElementNameValueForUrl1("datenschutzok"); console.log(\'Adding URL param for bandzugoderbreite_bandzug\');if(!isInputValueValid1("bandzugoderbreite_bandzug")){return;} query+=await getInputElementNameValueForUrl1("bandzugoderbreite_bandzug"); console.log(\'Adding URL param for bandzug\');if(!isInputValueValid1("bandzug")){return;} query+=await getInputElementNameValueForUrl1("bandzug"); console.log(\'Adding URL param for bandzugoderbreite_breite\');if(!isInputValueValid1("bandzugoderbreite_breite")){return;} query+=await getInputElementNameValueForUrl1("bandzugoderbreite_breite"); console.log(\'Adding URL param for zugn_pro_breitemm\');if(!isInputValueValid1("zugn_pro_breitemm")){return;} query+=await getInputElementNameValueForUrl1("zugn_pro_breitemm"); console.log(\'Adding URL param for bahnbreitemm\');if(!isInputValueValid1("bahnbreitemm")){return;} query+=await getInputElementNameValueForUrl1("bahnbreitemm"); console.log(\'Adding URL param for bandzugoderbreite_min_bandzug\');if(!isInputValueValid1("bandzugoderbreite_min_bandzug")){return;} query+=await getInputElementNameValueForUrl1("bandzugoderbreite_min_bandzug"); console.log(\'Adding URL param for bandzugmin\');if(!isInputValueValid1("bandzugmin")){return;} query+=await getInputElementNameValueForUrl1("bandzugmin"); console.log(\'Adding URL param for bandzugoderbreite_min_breite\');if(!isInputValueValid1("bandzugoderbreite_min_breite")){return;} query+=await getInputElementNameValueForUrl1("bandzugoderbreite_min_breite"); console.log(\'Adding URL param for zugn_pro_breitemm_min\');if(!isInputValueValid1("zugn_pro_breitemm_min")){return;} query+=await getInputElementNameValueForUrl1("zugn_pro_breitemm_min"); console.log(\'Adding URL param for bahnbreitemm_min\');if(!isInputValueValid1("bahnbreitemm_min")){return;} query+=await getInputElementNameValueForUrl1("bahnbreitemm_min"); console.log(\'Adding URL param for walzengewicht\');if(!isInputValueValid1("walzengewicht")){return;} query+=await getInputElementNameValueForUrl1("walzengewicht"); console.log(\'Adding URL param for walzengewicht_einheit\');if(!isInputValueValid1("walzengewicht_einheit")){return;} query+=await getInputElementNameValueForUrl1("walzengewicht_einheit"); console.log(\'Adding URL param for winkel1\');if(!isInputValueValid1("winkel1")){return;} query+=await getInputElementNameValueForUrl1("winkel1"); console.log(\'Adding URL param for winkel2\');if(!isInputValueValid1("winkel2")){return;} query+=await getInputElementNameValueForUrl1("winkel2"); console.log(\'Adding URL param for winkel1alternativ\');if(!isInputValueValid1("winkel1alternativ")){return;} query+=await getInputElementNameValueForUrl1("winkel1alternativ"); console.log(\'Adding URL param for winkel2alternativ\');if(!isInputValueValid1("winkel2alternativ")){return;} query+=await getInputElementNameValueForUrl1("winkel2alternativ"); console.log(\'Adding URL param for bandzuganteil_n\');if(!isInputValueValid1("bandzuganteil_n")){return;} query+=await getInputElementNameValueForUrl1("bandzuganteil_n"); console.log(\'Adding URL param for bandzuganteilmin_n\');if(!isInputValueValid1("bandzuganteilmin_n")){return;} query+=await getInputElementNameValueForUrl1("bandzuganteilmin_n"); console.log(\'Adding URL param for gesamtkraft_n\');if(!isInputValueValid1("gesamtkraft_n")){return;} query+=await getInputElementNameValueForUrl1("gesamtkraft_n"); console.log(\'Adding URL param for gesamtkraftmin_n\');if(!isInputValueValid1("gesamtkraftmin_n")){return;} query+=await getInputElementNameValueForUrl1("gesamtkraftmin_n"); console.log(\'Adding URL param for walzengewichtanteil_n\');if(!isInputValueValid1("walzengewichtanteil_n")){return;} query+=await getInputElementNameValueForUrl1("walzengewichtanteil_n"); console.log(\'Adding URL param for typ\');if(!isInputValueValid1("typ")){return;} query+=await getInputElementNameValueForUrl1("typ"); console.log(\'Adding URL param for typ2\');if(!isInputValueValid1("typ2")){return;} query+=await getInputElementNameValueForUrl1("typ2"); console.log(\'Adding URL param for lagerung\');if(!isInputValueValid1("lagerung")){return;} query+=await getInputElementNameValueForUrl1("lagerung"); console.log(\'Adding URL param for wellenzapfendurchmesser_mm\');if(!isInputValueValid1("wellenzapfendurchmesser_mm")){return;} query+=await getInputElementNameValueForUrl1("wellenzapfendurchmesser_mm"); console.log(\'Adding URL param for typ_lang\');if(!isInputValueValid1("typ_lang")){return;} query+=await getInputElementNameValueForUrl1("typ_lang"); console.log(\'Adding URL param for baugroesse\');if(!isInputValueValid1("baugroesse")){return;} query+=await getInputElementNameValueForUrl1("baugroesse"); console.log(\'Adding URL param for messrichtung\');if(!isInputValueValid1("messrichtung")){return;} query+=await getInputElementNameValueForUrl1("messrichtung"); console.log(\'Adding URL param for bauform\');if(!isInputValueValid1("bauform")){return;} query+=await getInputElementNameValueForUrl1("bauform"); console.log(\'Adding URL param for ballenlaenge\');if(!isInputValueValid1("ballenlaenge")){return;} query+=await getInputElementNameValueForUrl1("ballenlaenge"); console.log(\'Adding URL param for nennkraefte_n\');if(!isInputValueValid1("nennkraefte_n")){return;} query+=await getInputElementNameValueForUrl1("nennkraefte_n"); console.log(\'Adding URL param for option_k\');if(!isInputValueValid1("option_k")){return;} query+=await getInputElementNameValueForUrl1("option_k"); console.log(\'Adding URL param for stdleitung_art\');if(!isInputValueValid1("stdleitung_art")){return;} query+=await getInputElementNameValueForUrl1("stdleitung_art"); console.log(\'Adding URL param for stdleitung_m\');if(!isInputValueValid1("stdleitung_m")){return;} query+=await getInputElementNameValueForUrl1("stdleitung_m"); console.log(\'Adding URL param for stdanschluss\');if(!isInputValueValid1("stdanschluss")){return;} query+=await getInputElementNameValueForUrl1("stdanschluss"); console.log(\'Adding URL param for anschlussvariante\');if(!isInputValueValid1("anschlussvariante")){return;} query+=await getInputElementNameValueForUrl1("anschlussvariante"); console.log(\'Adding URL param for option_r\');if(!isInputValueValid1("option_r")){return;} query+=await getInputElementNameValueForUrl1("option_r"); console.log(\'Adding URL param for option_y\');if(!isInputValueValid1("option_y")){return;} query+=await getInputElementNameValueForUrl1("option_y"); console.log(\'Adding URL param for option_u\');if(!isInputValueValid1("option_u")){return;} query+=await getInputElementNameValueForUrl1("option_u"); console.log(\'Adding URL param for option_w\');if(!isInputValueValid1("option_w")){return;} query+=await getInputElementNameValueForUrl1("option_w"); console.log(\'Adding URL param for option_d\');if(!isInputValueValid1("option_d")){return;} query+=await getInputElementNameValueForUrl1("option_d"); console.log(\'Adding URL param for option_e\');if(!isInputValueValid1("option_e")){return;} query+=await getInputElementNameValueForUrl1("option_e"); console.log(\'Adding URL param for option_g\');if(!isInputValueValid1("option_g")){return;} query+=await getInputElementNameValueForUrl1("option_g"); console.log(\'Adding URL param for option_h\');if(!isInputValueValid1("option_h")){return;} query+=await getInputElementNameValueForUrl1("option_h"); console.log(\'Adding URL param for option_j\');if(!isInputValueValid1("option_j")){return;} query+=await getInputElementNameValueForUrl1("option_j"); console.log(\'Adding URL param for option_l\');if(!isInputValueValid1("option_l")){return;} query+=await getInputElementNameValueForUrl1("option_l"); console.log(\'Adding URL param for option_m\');if(!isInputValueValid1("option_m")){return;} query+=await getInputElementNameValueForUrl1("option_m"); console.log(\'Adding URL param for option_p\');if(!isInputValueValid1("option_p")){return;} query+=await getInputElementNameValueForUrl1("option_p"); console.log(\'Adding URL param for option_q\');if(!isInputValueValid1("option_q")){return;} query+=await getInputElementNameValueForUrl1("option_q"); console.log(\'Adding URL param for option_v\');if(!isInputValueValid1("option_v")){return;} query+=await getInputElementNameValueForUrl1("option_v"); console.log(\'Adding URL param for option_f\');if(!isInputValueValid1("option_f")){return;} query+=await getInputElementNameValueForUrl1("option_f"); console.log(\'Adding URL param for option_x\');if(!isInputValueValid1("option_x")){return;} query+=await getInputElementNameValueForUrl1("option_x"); console.log(\'Adding URL param for option_uc\');if(!isInputValueValid1("option_uc")){return;} query+=await getInputElementNameValueForUrl1("option_uc"); console.log(\'Adding URL param for option_z\');if(!isInputValueValid1("option_z")){return;} query+=await getInputElementNameValueForUrl1("option_z"); console.log(\'Adding URL param for zusatz1\');if(!isInputValueValid1("zusatz1")){return;} query+=await getInputElementNameValueForUrl1("zusatz1"); console.log(\'Adding URL param for zusatz2\');if(!isInputValueValid1("zusatz2")){return;} query+=await getInputElementNameValueForUrl1("zusatz2"); console.log(\'Adding URL param for zusatz3\');if(!isInputValueValid1("zusatz3")){return;} query+=await getInputElementNameValueForUrl1("zusatz3"); console.log(\'Adding URL param for zusatz4\');if(!isInputValueValid1("zusatz4")){return;} query+=await getInputElementNameValueForUrl1("zusatz4"); console.log(\'Adding URL param for zusatz5\');if(!isInputValueValid1("zusatz5")){return;} query+=await getInputElementNameValueForUrl1("zusatz5"); console.log(\'Adding URL param for zusatz6\');if(!isInputValueValid1("zusatz6")){return;} query+=await getInputElementNameValueForUrl1("zusatz6"); console.log(\'Adding URL param for zusatz7\');if(!isInputValueValid1("zusatz7")){return;} query+=await getInputElementNameValueForUrl1("zusatz7"); console.log(\'Adding URL param for zusatz8\');if(!isInputValueValid1("zusatz8")){return;} query+=await getInputElementNameValueForUrl1("zusatz8"); console.log(\'Adding URL param for zusatz9\');if(!isInputValueValid1("zusatz9")){return;} query+=await getInputElementNameValueForUrl1("zusatz9"); console.log(\'Adding URL param for zusatz10\');if(!isInputValueValid1("zusatz10")){return;} query+=await getInputElementNameValueForUrl1("zusatz10"); console.log(\'Adding URL param for zusatz11\');if(!isInputValueValid1("zusatz11")){return;} query+=await getInputElementNameValueForUrl1("zusatz11"); console.log(\'Adding URL param for zusatz12\');if(!isInputValueValid1("zusatz12")){return;} query+=await getInputElementNameValueForUrl1("zusatz12"); console.log(\'Adding URL param for zusatz13\');if(!isInputValueValid1("zusatz13")){return;} query+=await getInputElementNameValueForUrl1("zusatz13"); console.log(\'Adding URL param for zusatz14\');if(!isInputValueValid1("zusatz14")){return;} query+=await getInputElementNameValueForUrl1("zusatz14"); console.log(\'Adding URL param for zusatz15\');if(!isInputValueValid1("zusatz15")){return;} query+=await getInputElementNameValueForUrl1("zusatz15"); console.log(\'Adding URL param for zusatz16\');if(!isInputValueValid1("zusatz16")){return;} query+=await getInputElementNameValueForUrl1("zusatz16"); console.log(\'Adding URL param for zusatz17\');if(!isInputValueValid1("zusatz17")){return;} query+=await getInputElementNameValueForUrl1("zusatz17"); console.log(\'Adding URL param for zusatz18\');if(!isInputValueValid1("zusatz18")){return;} query+=await getInputElementNameValueForUrl1("zusatz18"); console.log(\'Adding URL param for zusatz19\');if(!isInputValueValid1("zusatz19")){return;} query+=await getInputElementNameValueForUrl1("zusatz19"); console.log(\'Adding URL param for zusatz20\');if(!isInputValueValid1("zusatz20")){return;} query+=await getInputElementNameValueForUrl1("zusatz20"); console.log(\'Adding URL param for blockausrichtung\');if(!isInputValueValid1("blockausrichtung")){return;} query+=await getInputElementNameValueForUrl1("blockausrichtung"); console.log(\'Adding URL param for blockposition\');if(!isInputValueValid1("blockposition")){return;} query+=await getInputElementNameValueForUrl1("blockposition"); console.log(\'Adding URL param for blockwinkel\');if(!isInputValueValid1("blockwinkel")){return;} query+=await getInputElementNameValueForUrl1("blockwinkel"); console.log(\'Adding URL param for expertenmodus\');if(!isInputValueValid1("expertenmodus")){return;} query+=await getInputElementNameValueForUrl1("expertenmodus"); console.log(\'Adding URL param for sondernennkraft\');if(!isInputValueValid1("sondernennkraft")){return;} query+=await getInputElementNameValueForUrl1("sondernennkraft"); console.log(\'Adding URL param for sensorattributecsv\');if(!isInputValueValid1("sensorattributecsv")){return;} query+=await getInputElementNameValueForUrl1("sensorattributecsv"); console.log(\'Adding URL param for bemerkung\');if(!isInputValueValid1("bemerkung")){return;} query+=await getInputElementNameValueForUrl1("bemerkung"); console.log(\'Adding URL param for projektname\');if(!isInputValueValid1("projektname")){return;} query+=await getInputElementNameValueForUrl1("projektname"); console.log(\'Adding URL param for messstelle\');if(!isInputValueValid1("messstelle")){return;} query+=await getInputElementNameValueForUrl1("messstelle"); console.log(\'Adding URL param for typbezeichner\');if(!isInputValueValid1("typbezeichner")){return;} query+=await getInputElementNameValueForUrl1("typbezeichner"); console.log(\'Adding URL param for alternativeswinkelsystem\');if(!isInputValueValid1("alternativeswinkelsystem")){return;} query+=await getInputElementNameValueForUrl1("alternativeswinkelsystem"); console.log(\'Adding URL param for winkel1cnvs\');if(!isInputValueValid1("winkel1cnvs")){return;} query+=await getInputElementNameValueForUrl1("winkel1cnvs"); console.log(\'Adding URL param for winkel2cnvs\');if(!isInputValueValid1("winkel2cnvs")){return;} query+=await getInputElementNameValueForUrl1("winkel2cnvs"); console.log(\'Adding URL param for winkel1alternativcnvs\');if(!isInputValueValid1("winkel1alternativcnvs")){return;} query+=await getInputElementNameValueForUrl1("winkel1alternativcnvs"); console.log(\'Adding URL param for winkel2alternativcnvs\');if(!isInputValueValid1("winkel2alternativcnvs")){return;} query+=await getInputElementNameValueForUrl1("winkel2alternativcnvs"); console.log(\'Adding URL param for winkel4cnvs\');if(!isInputValueValid1("winkel4cnvs")){return;} query+=await getInputElementNameValueForUrl1("winkel4cnvs"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__li\');if(!isInputValueValid1("auslegung__winkel3messrichtung__li")){return;} query+=await getInputElementNameValueForUrl1("auslegung__winkel3messrichtung__li"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__re\');if(!isInputValueValid1("auslegung__winkel3messrichtung__re")){return;} query+=await getInputElementNameValueForUrl1("auslegung__winkel3messrichtung__re"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__ob\');if(!isInputValueValid1("auslegung__winkel3messrichtung__ob")){return;} query+=await getInputElementNameValueForUrl1("auslegung__winkel3messrichtung__ob"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__un\');if(!isInputValueValid1("auslegung__winkel3messrichtung__un")){return;} query+=await getInputElementNameValueForUrl1("auslegung__winkel3messrichtung__un"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__wiha\');if(!isInputValueValid1("auslegung__winkel3messrichtung__wiha")){return;} query+=await getInputElementNameValueForUrl1("auslegung__winkel3messrichtung__wiha"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__frei\');if(!isInputValueValid1("auslegung__winkel3messrichtung__frei")){return;} query+=await getInputElementNameValueForUrl1("auslegung__winkel3messrichtung__frei"); console.log(\'Adding URL param for messrichtung_winkel\');if(!isInputValueValid1("messrichtung_winkel")){return;} query+=await getInputElementNameValueForUrl1("messrichtung_winkel"); window.location=baseUrl+\'?\'+query; }finally{if(btnFabInputField1777530690215!=null){btnFabInputField1777530690215.classList.remove(\'fab-button-processing\');}}}catch(error){ console.error(error); let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'An error occurred in the system.\'; errorElement.classList.add(\'fabjsmessage-error\'); errorShown=true; } if(errorShown==false){alert(\'An error occurred in the system.\');} throw error; } } </script><a class="localebutton" href="#" id="fabInputField1777530690215" title="German" type="button" onclick="fabInputFieldSubmitBlst1795077999GetWdw(\'index.html\');"><img src="img/de.svg" /></a> <script> </script><a class="localebutton" href="#" id="fabInputField1777530690216" title="English" type="button" onclick="fabInputFieldSubmitBlst1795077999GetWdw(\'index_en.html\');"><img src="img/en.svg" /></a> </div> </div> <style> .produktauswahl {font-family:"sans-serif",Verdana,sans-serif;font-size: 0.9rem;font-weight: 400;line-height: 1.5;color: #2b2b2b;text-align: left;background-color: #ffffff;} .produktauswahl * {-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;padding:0;margin:0;} .produktauswahl .sichtbar{} .produktauswahl .unsichtbar{display:none;} .produktauswahl a {color:#046aaf;text-decoration:none;} .produktauswahl a:hover {color:#023d64;text-decoration:underline;} .produktauswahl input[type="radio"]{margin-right:0.5em;} .produktauswahl input[type="radio"]{accent-color:#046aaf;} .produktauswahl input.faberror{background-color:#ffdddd;} .produktauswahl input[type="checkbox"].faberror{outline:4px solid #ffdddd;} .produktauswahl select{padding:0.25em;min-width:10em;} .produktauswahl #typ2bild {min-width:10em;width:10em;max-width:100%;} .produktauswahl #typlinkCntnr{display:inline-block;vertical-align:middle;} .produktauswahl #typlinkCntnr #typlink{display:inline-block;height:100%;} .produktauswahl textarea{padding:0.25em;font-family:"sans-serif",Verdana,sans-serif;} .produktauswahl #bemerkung{height:3em;} .produktauswahl .paar-label,.produktauswahl .bild-label{color:#555555;font-weight:bold;} .produktauswahl input:disabled{background-color:#f5f5f5;color:#888888;opacity: 1;} .produktauswahl .requiredflag{color:#fa0b0b;margin-left:0.5em;} .produktauswahl .fabdynoptempty, .produktauswahl .fabdynoptempty .paar-label,.produktauswahl .fabdynoptempty .bild-label{color:#aaaaaa;} .produktauswahl .optionheadline{font-size:1.2em;color:#046aaf;margin-top:1em;padding-bottom:0px;} .produktauswahl .blockcontainer {display:flex;flex-direction: row;gap:2rem;} .produktauswahl .block1 {width:400px;max-width:400px;flex-basis: 400px;flex-shrink: 1;flex-grow: 0;min-width:400px;} .produktauswahl .block2 {flex-grow:1;flex-shrink:1;flex-basis:700px;} @media (max-width: 1220px) { .produktauswahl .blockcontainer{flex-direction:column;} .produktauswahl .block1 {max-width:100%;flex-basis: unset;} } .produktauswahl .kraftzelle{display:table-cell;white-space: nowrap;} .produktauswahl .kraftzelle .einheit{margin-right:1.5em;} .produktauswahl .kraftzelle label{margin-right:1em;} .produktauswahl .kraftzelle input{width:100%;} .produktauswahl .kurzbezeichner.kraftzelle {padding-left:0.5em;} .produktauswahl .labelinputpaar {width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;gap:0.5em;justify-content:space-between;} .produktauswahl .labelinputpaar.unsichtbar{display:none;} .produktauswahl .paar-label {flex-basis:calc(50% - 1em);} .produktauswahl .input-container {flex-basis:calc(50%);} .produktauswahl #tab-kraft .input-container {flex-basis:calc(50% - 3em);} .produktauswahl .labelinputpaar .input-container input[type=\'text\'],.produktauswahl .labelinputpaar .input-container input[type=\'email\'],.produktauswahl .labelinputpaar .input-container input[type=\'date\'] {width:100%;} .produktauswahl .labelinputpaar label img, .produktauswahl .messrichtungwinkelblock label img {height:1em;margin-right:0.5em;vertical-align:sub;} .produktauswahl .labelinputpaar {margin-top:0.125em;margin-bottom:0.25em;} .produktauswahl .kurzbezeichner {flex-basis:4em;flex-grow:0;flex-shrink:0;} .produktauswahl .kurzbezeichner sub {font-size:70%;} .produktauswahl #sichtbarCntnr .labelinputpaar,.produktauswahl #sichtbarCntnr2 .labelinputpaar,.produktauswahl #sichtbarCntnrRead .labelinputpaar, .produktauswahl .labelinputpaar.typ2 {flex-direction: column;gap:0;} .produktauswahl #sichtbarCntnr .labelinputpaar .input-container,.produktauswahl #sichtbarCntnr2 .labelinputpaar .input-container,.produktauswahl #sichtbarCntnrRead .labelinputpaar .input-container, .produktauswahl .labelinputpaar.typ2 .input-container {width:100%;} .produktauswahl input[type="text"],.produktauswahl input[type="email"],.produktauswahl input[type="date"],.produktauswahl select{padding-top:1px;padding-bottom:1px;padding-left:2px;line-height:1.5em;} .produktauswahl .eingabefeld{max-width:280px;} .produktauswahl #typ2.eingabefeld, .produktauswahl #sichtbarCntnr .eingabefeld,.produktauswahl #sichtbarCntnr2 .eingabefeld{width:100%;max-width:calc(280px - 1.5em);} .produktauswahl .ausgabefeld{} .produktauswahl .ausgabefeld.fabhidden{display:none;} .produktauswahl .ausgabefeld.aufcanvas{background-color:#ffffff55;} .produktauswahl .text_xl{height:7em; width:100%;} .produktauswahl #sichtbarCntnr2 #lagerungCntnr {flex-direction: row;gap:0;} .produktauswahl #sichtbarCntnr2 #lagerungCntnr .paar-label {flex-basis:unset;} .produktauswahl #sichtbarCntnr2 #lagerungCntnr .input-container{flex-basis:unset;margin-left:1rem;} .produktauswahl #sichtbarCntnr2 #lagerungCntnr .eingabefeld{width:unset;} .produktauswahl #sichtbarCntnr2 #lagerungCntnr #lagerung .radiobtnrow{white-space: nowrap;} .produktauswahl .radiobtncontainer{flex-basis:50%;} .produktauswahl .radiobtnrow{display:block;} .produktauswahl .radiobtnrow-inline{display:inline-block;margin-right:1em;} .produktauswahl .localebutton{height:2em; padding:0; margin-right:0.5em; text-decoration:none; display:inline-block; border-width:1px;border-style:solid;border-color:#bbbbbb;} .produktauswahl .localebutton img{height:100%;} .produktauswahl #sensortypliste-cntnr{height:calc(100vh - 300px);min-height:500px;padding:4px;} .produktauswahl .sensortypradiocontainer{display:flex;flex-wrap:wrap;gap:1rem;} .produktauswahl .sensortyp-card{flex-basis:200px;box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);transition: 0.3s;margin-top:0.25rem;margin-bottom:0.25rem;} .produktauswahl .sensortyp-card:hover{box-shadow: 0 8px 16px 0 rgba(0,0,0,0.5);} .produktauswahl .sensortyp-card-img-cntnr{height:100px;width:100%;text-align:center;} .produktauswahl .sensortyp-card-img{max-height:100%;max-width:100%;} .produktauswahl .sensortyp-card .text{padding: 0.25rem;width:100%;text-align:center;} .produktauswahl .sensortyp-card .text h2{padding:0;margin:0;} .produktauswahl .sensortyp-modal-cntnr{display:none;position: fixed;z-index:2000;padding-top:100px;left: 0;top: 0;width: 100%;height: 100%;overflow: auto;background-color:rgb(0,0,0);background-color: rgba(0,0,0,0.4);} .produktauswahl .sensortyp-modal-cntnr.modal-sichtbar{display:block;} .produktauswahl .sensortyp-modal-content{background-color: #ffffff;margin: auto;padding: 20px;border: 1px solid #888;width: 80%;max-width:800px;border-radius:2rem;} .produktauswahl .sensortyp-modal-content .close {color: #aaaaaa;float: right;font-size: 3rem;font-weight: bold;cursor:pointer;} .produktauswahl .sensortyp-card-auswahl-btn{width:100%;border-radius:0;margin-bottom:0;} .produktauswahl .sensortypradiocontainer{width:100%;} .produktauswahl .sensortypradiorow{} .produktauswahl .sensortyp-link {display:block;margin-top:1em;} .produktauswahl .sensortyp-auswahl-btn{margin-top:1em;} .produktauswahl .sensortyp-technischedaten{border-spacing:0.25em;} .produktauswahl .sensortyp-detail{text-align:left; font-size:smaller;font-weight:normal; background-color:#eeeeee; padding-top:0.25em; padding-bottom:0.25em; padding-left:0.75em; padding-right:0.75em;} .produktauswahl .sensortyp-detailname{} .produktauswahl .sensortyp-detailwert{} .produktauswahl #saeulendiagramm{height:calc(100vh - 250px);min-height:500px;} .produktauswahl .dynopt-suffix{padding-left:0.5em;} .produktauswahl .einheit{margin-left:-1.5em;} .produktauswahl .einheit-l{margin-left:-3.5em;} .produktauswahl .feldmiteinheit{padding-right:2em;} .produktauswahl .feldmiteinheit-l{padding-right:4em;} .produktauswahl .zahlenfeld{text-align:right} .produktauswahl .zahlenfeld{width:9em;text-align:right} .produktauswahl #messrichtung_winkel{width:7em;} .produktauswahl #projektname, #messstelle{width:100%;text-align:center} .produktauswahl .gaineinheit{margin-left:-3em;} .produktauswahl .gainfeldmiteinheit{padding-right:4em;} .produktauswahl .gainzahlenfeld{width:9em;text-align:right} .produktauswahl .gainerror{color:red;} .produktauswahl .textfeld{width:100%;} .produktauswahl select{background-color:#f5f5f5;color:#000000;} .produktauswahl .tab-bar{width:100%;display:flex;flex-wrap:nowrap;gap:1px;justify-content:space-between;} .produktauswahl .tab-button-weiter{display:inline-block;} .produktauswahl .tab-button, .produktauswahl .tab-button-weiter{flex-basis:50%;cursor: pointer;padding:1em;background-color:#555555;;color:#ffffff;text-align:center;transition:0.3s;} .produktauswahl .tab-button:hover, .produktauswahl .tab-button-weiter:hover {background-color:#000000;} .produktauswahl .tab-button.tab-button-active{background-color:#066aaf;color:#ffffff;} .produktauswahl .tab-button.tab-button-active:hover {background-color:#066aaf;} .produktauswahl .tab-sheet{width:100%;padding-top:0.5em;} .produktauswahl .sensortyp-onetype{width:100%;margin-top:1em;} .produktauswahl .sensortyp-blockwrapper{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;} .produktauswahl .sensortyp-block1{display:inline-block;flex-basis:calc(50% - 30px);margin-right:20px;} .produktauswahl .sensortyp-block2{display:inline-block;flex-basis:calc(50% - 10px);} .produktauswahl .sensortyp-block1 img{width:100%;} @media (max-width: 768px) { .produktauswahl .sensortyp-blockwrapper{flex-direction:column;gap:0;} .produktauswahl .sensortyp-block1{display:block;margin-right:0px;} .produktauswahl .sensortyp-block2{display:block;} } .produktauswahl .vorzurueckzeile{display:flex;flex-direction:row;justify-content:space-between;gap:1em;margin-top:1em;} .produktauswahl .vorzurueckzeile .tab-button-weiter{border-radius:0.5em;} .produktauswahl hr.trenner{border-style:none;background-color:#dddddd;height:2px;border-radius:50%;} .produktauswahl .button{-webkit-appearance: button;-moz-appearance: button;appearance: button;display:inline-block;} .produktauswahl button,.produktauswahl input[type=\'file\']::file-selector-button,.produktauswahl .button{background-color:#066aaf;color:white;cursor:pointer;padding:1em;text-align:center;transition:0.3s;border-radius:0.5em;border-width:0;border-style:none;font-size:1em;line-height: 1.5em;margin-bottom:0.5rem;} .produktauswahl button:hover,.produktauswahl input[type=\'file\']::file-selector-button:hover,.produktauswahl .button:hover{background-color:#004a8f;text-decoration:none;color:white;cursor:pointer;} .produktauswahl hr{margin-bottom:1em;margin-top:1em;} .produktauswahl .umgebbed-table{display:table;width:100%;} .produktauswahl .umgebbed-row{display:table-row;} .produktauswahl .umgebbed-cell-name{display:table-cell;padding-right:1em;padding-bottom:0.8em;} .produktauswahl .umgebbed-cell-opt1, .produktauswahl .umgebbed-cell-opt2{display:table-cell;padding-right:1em;padding-bottom:0.8em;} .produktauswahl .umgebbed-cell-text{display:table-cell;padding-bottom:0.8em;} .produktauswahl h2 {padding-top:0.8em;padding-bottom:0.4em;} .produktauswahl h3 {padding-top:0.8em;padding-bottom:0.4em;} .produktauswahl .uploadblock{transition:1s;max-height:0px;overflow:hidden;} .produktauswahl .uploadblock.uploadsichtbar{display:block;margin-top:1em;margin-bottom:2em;max-height:500px;} .produktauswahl .uploadblock h2{margin-bottom:0.5em;} .produktauswahl .block2{max-width:1200px;} .produktauswahl #winkel1cnvs-cntnr,.produktauswahl #winkel2cnvs-cntnr,.produktauswahl #winkel1alternativcnvs-cntnr,.produktauswahl #winkel2alternativcnvs-cntnr,.produktauswahl #winkel4cnvs-cntnr{position:absolute;left:0px;top:0px;z-index:1000;} .produktauswahl #messrichtung-cntnr{position:absolute;left:0px;bottom:0px;z-index:1000;} .produktauswahl #messrichtung-cntnr{border-top-width:1px;border-top-style:solid;border-top-color:#dddddd;border-right-width:1px;border-right-style:solid;border-right-color:#dddddd;padding:0.5em;background-color:#ffffff;} .produktauswahl .cnvs-einheit{margin-left:-0.8em;} .produktauswahl #winkel1cnvs,.produktauswahl #winkel2cnvs,.produktauswahl #winkel1alternativcnvs,.produktauswahl #winkel2alternativcnvs,.produktauswahl #winkel4cnvs{width:5em;padding-right:1em;background-color:#ffffffaa;text-align:right;} .produktauswahl .button-processing{cursor: wait;animation: button-processing-animation 3s infinite;pointer-events: none;} @keyframes button-processing-animation {   0%, 100% {background-color: #066aaf;}   50% {background-color: #099aff;} } .produktauswahl .meldung{transition:1s;max-height:0px;overflow:hidden;max-width:20em;} .produktauswahl .meldung.warnung{color:#d9a200;display:block;margin-top:0.5em;max-height:500px;} .produktauswahl .meldung.fehler{color:#ef0a0b;display:block;margin-top:0.5em;max-height:500px;} .produktauswahl .eingabefeld.warnung{border-color:#fabb00;background-color:#ffecb3;} </style> <input type="hidden" name="locale" id="locale" value="en"></input><script> let localeF=document.getElementById(\'locale\'); </script> <div class="tab-bar" id="tab-bar"> <span class="tab-button tab-button-active" id="tab-btn-kraft" onclick="fabTabLayoutnullOpenTabSheets([\'tab-kraft\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });document.fabAfterTabChange();">Forces</span> <span class="tab-button" id="tab-btn-sensortyp" onclick="fabTabLayoutnullOpenTabSheets([\'tab-sensortyp\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });document.fabAfterTabChange();">Sensor Type</span> <span class="tab-button" id="tab-btn-optionen" onclick="fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });document.fabAfterTabChange();">Options</span> <span class="tab-button" id="tab-btn-projekt" onclick="fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });document.fabAfterTabChange();">Project</span> </div> <div class="blockcontainer"> <div class="block1 tab-sheet tab-sheet-inactive" id="tab-projekt"> <div class="" style="width:100%;"> <span>I wish</span> <span style="display:flex;justify-content:space-between;flex-wrap:wrap;"> <span> <span class="input-container"><input type="checkbox" name="beratung" class="eingabefeld" id="beratung"></input><script> let beratungF=document.getElementById(\'beratung\'); </script></span> <label for="beratung">Counselling</label> </span> <span> <span class="input-container"><input type="checkbox" name="katalog" class="eingabefeld" id="katalog"></input><script> let katalogF=document.getElementById(\'katalog\'); </script></span> <label for="katalog">Catalogue</label> </span> <span> <span class="input-container"><input type="checkbox" name="angebot" class="eingabefeld" id="angebot"></input><script> let angebotF=document.getElementById(\'angebot\'); </script></span> <label for="angebot">Offer</label> </span> <span> <span class="input-container"><script> function stueckzahlFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabstueckzahllastNumValue", event.currentTarget.value); } function stueckzahlFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabstueckzahlFocusMouseDown",true); } } function stueckzahlSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabstueckzahlFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabstueckzahlFocusMouseDown",false); } function stueckzahlFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (0==0) && (originalInputValue.length>=0)) { stueckzahlSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabstueckzahllastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabstueckzahlHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabstueckzahlHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>9) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabstueckzahllastNumValue"); stueckzahlSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(0, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(0, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabstueckzahlHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (0 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabstueckzahllastNumValue\', newNumericValue); stueckzahlSelectAtFocus(isFocusEvent,event); } </script><input name="stueckzahl" class="eingabefeld" id="stueckzahl" size="2" type="text"></input><script> let stueckzahlF=document.getElementById(\'stueckzahl\'); console.log("registriere"); stueckzahlF.addEventListener(\'mousedown\',stueckzahlFabMousedownNumericValue);stueckzahlF.addEventListener(\'input\',stueckzahlFabPrettyPrintNumericValue);stueckzahlF.addEventListener(\'change\',stueckzahlFabNormalizeNumericValue);stueckzahlF.addEventListener(\'focus\',stueckzahlFabNormalizeNumericValue);stueckzahlF.addEventListener(\'focus\',stueckzahlFabPrettyPrintNumericValue);stueckzahlF.addEventListener(\'blur\',stueckzahlFabPrettyPrintNumericValue,false);;;</script></span> <label for="stueckzahl">Quantity</label> </span> </span> </div> <div class="labelinputpaar"> <label for="firma" class="paar-label">Company</label> <span class="input-container"><input type="text" name="firma" class="eingabefeld" id="firma" maxlength="204"></input><script> let firmaF=document.getElementById(\'firma\'); </script></span> </div> <div class="labelinputpaar"> <label for="strasse" class="paar-label">Street</label> <span class="input-container"><input type="text" name="strasse" class="eingabefeld" id="strasse" maxlength="204"></input><script> let strasseF=document.getElementById(\'strasse\'); </script></span> </div> <div class="labelinputpaar"> <label for="plz" class="paar-label">Zip code</label> <span class="input-container"><input type="text" name="plz" class="eingabefeld" id="plz" maxlength="204"></input><script> let plzF=document.getElementById(\'plz\'); </script></span> </div> <div class="labelinputpaar"> <label for="ort" class="paar-label">City</label> <span class="input-container"><input type="text" name="ort" class="eingabefeld" id="ort" maxlength="204"></input><script> let ortF=document.getElementById(\'ort\'); </script></span> </div> <div class="labelinputpaar"> <label for="name" class="paar-label">Name</label> <span class="input-container"><input type="text" name="name" class="eingabefeld" id="name" maxlength="204"></input><script> let nameF=document.getElementById(\'name\'); </script></span> </div> <div class="labelinputpaar"> <label for="telefon" class="paar-label">Phone</label> <span class="input-container"><input type="text" name="telefon" class="eingabefeld" id="telefon" maxlength="204"></input><script> let telefonF=document.getElementById(\'telefon\'); </script></span> </div> <div class="labelinputpaar"> <label for="email" class="paar-label">E-Mail</label> <span class="input-container"><input type="email" name="email" class="eingabefeld" id="email" maxlength="204"></input><script> let emailF=document.getElementById(\'email\'); </script></span> </div> <div class="labelinputpaar"> <label for="datum" class="paar-label">Date</label> <span class="input-container"><input type="date" name="datum" class="eingabefeld" id="datum" value="2026-05-05"></input></span> </div> <div class="labelinputpaar"> <label for="datenschutzok" class="paar-label">Privacy policy</label> <span class="input-container" style="display:flex;flex-direction:row;align-items: baseline;"><input type="checkbox" name="datenschutzok" class="eingabefeld" id="datenschutzok"></input><script> let datenschutzokF=document.getElementById(\'datenschutzok\'); </script> <label for="datenschutzok" style="margin-left:1.5em;">I have read the <a href="https://haehne.de/en/company/privacy-policy/" target="_blank">privacy policy of HAEHNE</a> and I agree</label></span> </div> <div class="vorzurueckzeile"> <span class="tab-button-weiter" id="fabTabLayout1777530690217" onclick="fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });document.fabAfterTabChange();">Back to Options</span> </div> </div> <div class="block1 tab-sheet tab-sheet-active" id="tab-kraft"> <script type="module" src="https://haehne-configurator.de/script/kraftrechner.js"> </script> <script type="module" src="https://haehne-configurator.de/script/bandzugbahnumrechner.js"> </script> <div class="labelinputpaar"> <label for="bandzugoderbreite_bandzug" class="paar-label"> <input type="radio" name="bandzugoderbreite" id="bandzugoderbreite_bandzug" class="eingabefeld" value="bandzug" onchange="window.activateBandzugOderBreite(this.value,this.id,true);window.recalcValues(this.value,this.id,null);" checked="checked" /> Web/Strip tension (max)<span class="requiredflag">*</span></label> <span class="input-container"><script> function bandzugFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabbandzuglastNumValue", event.currentTarget.value); } function bandzugFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabbandzugFocusMouseDown",true); } } function bandzugSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabbandzugFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabbandzugFocusMouseDown",false); } function bandzugFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { bandzugSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabbandzuglastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabbandzugHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabbandzugHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabbandzuglastNumValue"); bandzugSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabbandzugHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabbandzuglastNumValue\', newNumericValue); bandzugSelectAtFocus(isFocusEvent,event); } </script><input name="bandzug" class="eingabefeld feldmiteinheit-l zahlenfeld" id="bandzug" value="0" type="text"></input><script> let bandzugF=document.getElementById(\'bandzug\'); console.log("registriere"); bandzugF.addEventListener(\'mousedown\',bandzugFabMousedownNumericValue);bandzugF.addEventListener(\'input\',bandzugFabPrettyPrintNumericValue);bandzugF.addEventListener(\'change\',bandzugFabNormalizeNumericValue);bandzugF.addEventListener(\'focus\',bandzugFabNormalizeNumericValue);bandzugF.addEventListener(\'focus\',bandzugFabPrettyPrintNumericValue);bandzugF.addEventListener(\'blur\',bandzugFabPrettyPrintNumericValue,false);;bandzugF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=bandzugF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function bandzugForwardChange(event){ console.log("Funktion bei Änderung: window.calcBandzugFuerBreite"); let newvalue=bandzugF.GetTechnicalUrlValue(); window.calcBandzugFuerBreite(newvalue,bandzugF.id,event); } bandzugF.addEventListener(\'change\',bandzugForwardChange);</script><span class="einheit-l">N</span> <span class="meldung" id="bandzug_meldung"></span></span> <span class="kurzbezeichner">FB<sub>Max</sub></span> </div> <div class="labelinputpaar"> <label for="bandzugoderbreite_breite" class="paar-label"> <input type="radio" name="bandzugoderbreite" id="bandzugoderbreite_breite" class="eingabefeld" value="breite" onchange="window.activateBandzugOderBreite(this.value,this.id,true);window.recalcValues(this.value,this.id,null);" /> Tension/width (max.)</label> <span class="input-container"><script> function zugn_pro_breitemmFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabzugn_pro_breitemmlastNumValue", event.currentTarget.value); } function zugn_pro_breitemmFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabzugn_pro_breitemmFocusMouseDown",true); } } function zugn_pro_breitemmSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabzugn_pro_breitemmFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabzugn_pro_breitemmFocusMouseDown",false); } function zugn_pro_breitemmFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { zugn_pro_breitemmSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabzugn_pro_breitemmlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabzugn_pro_breitemmHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabzugn_pro_breitemmHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabzugn_pro_breitemmlastNumValue"); zugn_pro_breitemmSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabzugn_pro_breitemmHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabzugn_pro_breitemmlastNumValue\', newNumericValue); zugn_pro_breitemmSelectAtFocus(isFocusEvent,event); } </script><input name="zugn_pro_breitemm" class="eingabefeld feldmiteinheit-l zahlenfeld" id="zugn_pro_breitemm" value="0" type="text"></input><script> let zugn_pro_breitemmF=document.getElementById(\'zugn_pro_breitemm\'); console.log("registriere"); zugn_pro_breitemmF.addEventListener(\'mousedown\',zugn_pro_breitemmFabMousedownNumericValue);zugn_pro_breitemmF.addEventListener(\'input\',zugn_pro_breitemmFabPrettyPrintNumericValue);zugn_pro_breitemmF.addEventListener(\'change\',zugn_pro_breitemmFabNormalizeNumericValue);zugn_pro_breitemmF.addEventListener(\'focus\',zugn_pro_breitemmFabNormalizeNumericValue);zugn_pro_breitemmF.addEventListener(\'focus\',zugn_pro_breitemmFabPrettyPrintNumericValue);zugn_pro_breitemmF.addEventListener(\'blur\',zugn_pro_breitemmFabPrettyPrintNumericValue,false);;zugn_pro_breitemmF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=zugn_pro_breitemmF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function zugn_pro_breitemmForwardChange(event){ console.log("Funktion bei Änderung: window.calcBandzugFuerBreite"); let newvalue=zugn_pro_breitemmF.GetTechnicalUrlValue(); window.calcBandzugFuerBreite(newvalue,zugn_pro_breitemmF.id,event); } zugn_pro_breitemmF.addEventListener(\'change\',zugn_pro_breitemmForwardChange);function zugn_pro_breitemmForwardPartialChange(){ console.log("Funktion bei partieller Änderung: window.calcBandzugFuerBreite"); let newvalue=zugn_pro_breitemmF.GetTechnicalUrlValue(); window.calcBandzugFuerBreite(newvalue,zugn_pro_breitemmF.id,event); } zugn_pro_breitemmF.addEventListener(\'input\',zugn_pro_breitemmForwardPartialChange);</script><span class="einheit-l">N/mm</span></span> <span class="kurzbezeichner"><sub></sub></span> </div> <div class="labelinputpaar"> <label for="bahnbreitemm" class="paar-label"> <input type="radio" style="visibility: hidden;" /> Web/Strip width (max.)</label> <span class="input-container"><script> function bahnbreitemmFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabbahnbreitemmlastNumValue", event.currentTarget.value); } function bahnbreitemmFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabbahnbreitemmFocusMouseDown",true); } } function bahnbreitemmSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabbahnbreitemmFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabbahnbreitemmFocusMouseDown",false); } function bahnbreitemmFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { bahnbreitemmSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabbahnbreitemmlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabbahnbreitemmHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabbahnbreitemmHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabbahnbreitemmlastNumValue"); bahnbreitemmSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabbahnbreitemmHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabbahnbreitemmlastNumValue\', newNumericValue); bahnbreitemmSelectAtFocus(isFocusEvent,event); } </script><input name="bahnbreitemm" class="eingabefeld feldmiteinheit-l zahlenfeld" id="bahnbreitemm" value="10" type="text"></input><script> let bahnbreitemmF=document.getElementById(\'bahnbreitemm\'); console.log("registriere"); bahnbreitemmF.addEventListener(\'mousedown\',bahnbreitemmFabMousedownNumericValue);bahnbreitemmF.addEventListener(\'input\',bahnbreitemmFabPrettyPrintNumericValue);bahnbreitemmF.addEventListener(\'change\',bahnbreitemmFabNormalizeNumericValue);bahnbreitemmF.addEventListener(\'focus\',bahnbreitemmFabNormalizeNumericValue);bahnbreitemmF.addEventListener(\'focus\',bahnbreitemmFabPrettyPrintNumericValue);bahnbreitemmF.addEventListener(\'blur\',bahnbreitemmFabPrettyPrintNumericValue,false);;bahnbreitemmF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=bahnbreitemmF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function bahnbreitemmForwardChange(event){ console.log("Funktion bei Änderung: window.calcBandzugFuerBreite"); let newvalue=bahnbreitemmF.GetTechnicalUrlValue(); window.calcBandzugFuerBreite(newvalue,bahnbreitemmF.id,event); } bahnbreitemmF.addEventListener(\'change\',bahnbreitemmForwardChange);function bahnbreitemmForwardPartialChange(){ console.log("Funktion bei partieller Änderung: window.calcBandzugFuerBreite"); let newvalue=bahnbreitemmF.GetTechnicalUrlValue(); window.calcBandzugFuerBreite(newvalue,bahnbreitemmF.id,event); } bahnbreitemmF.addEventListener(\'input\',bahnbreitemmForwardPartialChange);</script><span class="einheit-l">mm</span></span> <span class="kurzbezeichner"><sub></sub></span> </div> <hr class="trenner" /> <div class="labelinputpaar"> <label for="bandzugoderbreite_min_bandzug" class="paar-label"> <input type="radio" name="bandzugoderbreite_min" id="bandzugoderbreite_min_bandzug" class="eingabefeld" value="bandzug" onchange="window.activateBandzugOderBreite(this.value,this.id,true);window.recalcValues(this.value,this.id,null);" checked="checked" /> Web/Strip tension (min.)</label> <span class="input-container"><script> function bandzugminFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabbandzugminlastNumValue", event.currentTarget.value); } function bandzugminFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabbandzugminFocusMouseDown",true); } } function bandzugminSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabbandzugminFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabbandzugminFocusMouseDown",false); } function bandzugminFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { bandzugminSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabbandzugminlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabbandzugminHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabbandzugminHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabbandzugminlastNumValue"); bandzugminSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabbandzugminHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabbandzugminlastNumValue\', newNumericValue); bandzugminSelectAtFocus(isFocusEvent,event); } </script><input name="bandzugmin" class="eingabefeld feldmiteinheit-l zahlenfeld" id="bandzugmin" value="0" type="text"></input><script> let bandzugminF=document.getElementById(\'bandzugmin\'); console.log("registriere"); bandzugminF.addEventListener(\'mousedown\',bandzugminFabMousedownNumericValue);bandzugminF.addEventListener(\'input\',bandzugminFabPrettyPrintNumericValue);bandzugminF.addEventListener(\'change\',bandzugminFabNormalizeNumericValue);bandzugminF.addEventListener(\'focus\',bandzugminFabNormalizeNumericValue);bandzugminF.addEventListener(\'focus\',bandzugminFabPrettyPrintNumericValue);bandzugminF.addEventListener(\'blur\',bandzugminFabPrettyPrintNumericValue,false);;bandzugminF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=bandzugminF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function bandzugminForwardChange(event){ console.log("Funktion bei Änderung: window.calcBandzugFuerBreite"); let newvalue=bandzugminF.GetTechnicalUrlValue(); window.calcBandzugFuerBreite(newvalue,bandzugminF.id,event); } bandzugminF.addEventListener(\'change\',bandzugminForwardChange);</script><span class="einheit-l">N</span> <span class="meldung" id="bandzugmin_meldung"></span></span> <span class="kurzbezeichner">FB<sub>Min</sub></span> </div> <div class="labelinputpaar"> <label for="bandzugoderbreite_min_breite" class="paar-label"> <input type="radio" name="bandzugoderbreite_min" id="bandzugoderbreite_min_breite" class="eingabefeld" value="breite" onchange="window.activateBandzugOderBreite(this.value,this.id,true);window.recalcValues(this.value,this.id,null);" /> Tension/width (min.)</label> <span class="input-container"><script> function zugn_pro_breitemm_minFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabzugn_pro_breitemm_minlastNumValue", event.currentTarget.value); } function zugn_pro_breitemm_minFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabzugn_pro_breitemm_minFocusMouseDown",true); } } function zugn_pro_breitemm_minSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabzugn_pro_breitemm_minFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabzugn_pro_breitemm_minFocusMouseDown",false); } function zugn_pro_breitemm_minFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { zugn_pro_breitemm_minSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabzugn_pro_breitemm_minlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabzugn_pro_breitemm_minHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabzugn_pro_breitemm_minHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabzugn_pro_breitemm_minlastNumValue"); zugn_pro_breitemm_minSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabzugn_pro_breitemm_minHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabzugn_pro_breitemm_minlastNumValue\', newNumericValue); zugn_pro_breitemm_minSelectAtFocus(isFocusEvent,event); } </script><input name="zugn_pro_breitemm_min" class="eingabefeld feldmiteinheit-l zahlenfeld" id="zugn_pro_breitemm_min" value="0" type="text"></input><script> let zugn_pro_breitemm_minF=document.getElementById(\'zugn_pro_breitemm_min\'); console.log("registriere"); zugn_pro_breitemm_minF.addEventListener(\'mousedown\',zugn_pro_breitemm_minFabMousedownNumericValue);zugn_pro_breitemm_minF.addEventListener(\'input\',zugn_pro_breitemm_minFabPrettyPrintNumericValue);zugn_pro_breitemm_minF.addEventListener(\'change\',zugn_pro_breitemm_minFabNormalizeNumericValue);zugn_pro_breitemm_minF.addEventListener(\'focus\',zugn_pro_breitemm_minFabNormalizeNumericValue);zugn_pro_breitemm_minF.addEventListener(\'focus\',zugn_pro_breitemm_minFabPrettyPrintNumericValue);zugn_pro_breitemm_minF.addEventListener(\'blur\',zugn_pro_breitemm_minFabPrettyPrintNumericValue,false);;zugn_pro_breitemm_minF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=zugn_pro_breitemm_minF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function zugn_pro_breitemm_minForwardChange(event){ console.log("Funktion bei Änderung: window.calcBandzugFuerBreite"); let newvalue=zugn_pro_breitemm_minF.GetTechnicalUrlValue(); window.calcBandzugFuerBreite(newvalue,zugn_pro_breitemm_minF.id,event); } zugn_pro_breitemm_minF.addEventListener(\'change\',zugn_pro_breitemm_minForwardChange);function zugn_pro_breitemm_minForwardPartialChange(){ console.log("Funktion bei partieller Änderung: window.calcBandzugFuerBreite"); let newvalue=zugn_pro_breitemm_minF.GetTechnicalUrlValue(); window.calcBandzugFuerBreite(newvalue,zugn_pro_breitemm_minF.id,event); } zugn_pro_breitemm_minF.addEventListener(\'input\',zugn_pro_breitemm_minForwardPartialChange);</script><span class="einheit-l">N/mm</span></span> <span class="kurzbezeichner"><sub></sub></span> </div> <div class="labelinputpaar"> <label for="bahnbreitemm_min" class="paar-label"> <input type="radio" style="visibility: hidden;" /> Web/Strip width (min.)</label> <span class="input-container"><script> function bahnbreitemm_minFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabbahnbreitemm_minlastNumValue", event.currentTarget.value); } function bahnbreitemm_minFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabbahnbreitemm_minFocusMouseDown",true); } } function bahnbreitemm_minSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabbahnbreitemm_minFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabbahnbreitemm_minFocusMouseDown",false); } function bahnbreitemm_minFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { bahnbreitemm_minSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabbahnbreitemm_minlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabbahnbreitemm_minHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabbahnbreitemm_minHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabbahnbreitemm_minlastNumValue"); bahnbreitemm_minSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabbahnbreitemm_minHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabbahnbreitemm_minlastNumValue\', newNumericValue); bahnbreitemm_minSelectAtFocus(isFocusEvent,event); } </script><input name="bahnbreitemm_min" class="eingabefeld feldmiteinheit-l zahlenfeld" id="bahnbreitemm_min" value="10" type="text"></input><script> let bahnbreitemm_minF=document.getElementById(\'bahnbreitemm_min\'); console.log("registriere"); bahnbreitemm_minF.addEventListener(\'mousedown\',bahnbreitemm_minFabMousedownNumericValue);bahnbreitemm_minF.addEventListener(\'input\',bahnbreitemm_minFabPrettyPrintNumericValue);bahnbreitemm_minF.addEventListener(\'change\',bahnbreitemm_minFabNormalizeNumericValue);bahnbreitemm_minF.addEventListener(\'focus\',bahnbreitemm_minFabNormalizeNumericValue);bahnbreitemm_minF.addEventListener(\'focus\',bahnbreitemm_minFabPrettyPrintNumericValue);bahnbreitemm_minF.addEventListener(\'blur\',bahnbreitemm_minFabPrettyPrintNumericValue,false);;bahnbreitemm_minF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=bahnbreitemm_minF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function bahnbreitemm_minForwardChange(event){ console.log("Funktion bei Änderung: window.calcBandzugFuerBreite"); let newvalue=bahnbreitemm_minF.GetTechnicalUrlValue(); window.calcBandzugFuerBreite(newvalue,bahnbreitemm_minF.id,event); } bahnbreitemm_minF.addEventListener(\'change\',bahnbreitemm_minForwardChange);function bahnbreitemm_minForwardPartialChange(){ console.log("Funktion bei partieller Änderung: window.calcBandzugFuerBreite"); let newvalue=bahnbreitemm_minF.GetTechnicalUrlValue(); window.calcBandzugFuerBreite(newvalue,bahnbreitemm_minF.id,event); } bahnbreitemm_minF.addEventListener(\'input\',bahnbreitemm_minForwardPartialChange);</script><span class="einheit-l">mm</span></span> <span class="kurzbezeichner"><sub></sub></span> </div> <hr class="trenner" /> <div class="labelinputpaar"> <label for="walzengewicht" class="paar-label">Roll weight<span class="requiredflag">*</span></label> <span class="input-container"><script> function walzengewichtFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwalzengewichtlastNumValue", event.currentTarget.value); } function walzengewichtFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwalzengewichtFocusMouseDown",true); } } function walzengewichtSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwalzengewichtFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwalzengewichtFocusMouseDown",false); } function walzengewichtFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (4==4) && (originalInputValue.length>=0)) { walzengewichtSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwalzengewichtlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwalzengewichtHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwalzengewichtHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwalzengewichtlastNumValue"); walzengewichtSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(4, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(4, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwalzengewichtHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (4 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwalzengewichtlastNumValue\', newNumericValue); walzengewichtSelectAtFocus(isFocusEvent,event); } </script><input name="walzengewicht" class="eingabefeld feldmiteinheit-l zahlenfeld" id="walzengewicht" value="0" type="text"></input><script> let walzengewichtF=document.getElementById(\'walzengewicht\'); console.log("registriere"); walzengewichtF.addEventListener(\'mousedown\',walzengewichtFabMousedownNumericValue);walzengewichtF.addEventListener(\'input\',walzengewichtFabPrettyPrintNumericValue);walzengewichtF.addEventListener(\'change\',walzengewichtFabNormalizeNumericValue);walzengewichtF.addEventListener(\'focus\',walzengewichtFabNormalizeNumericValue);walzengewichtF.addEventListener(\'focus\',walzengewichtFabPrettyPrintNumericValue);walzengewichtF.addEventListener(\'blur\',walzengewichtFabPrettyPrintNumericValue,false);;walzengewichtF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=walzengewichtF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function walzengewichtForwardChange(event){ console.log("Funktion bei Änderung: window.recalcValues"); let newvalue=walzengewichtF.GetTechnicalUrlValue(); window.recalcValues(newvalue,walzengewichtF.id,event); } walzengewichtF.addEventListener(\'change\',walzengewichtForwardChange);</script><span class="einheit-l" id="walzengewicht_suffix"></span> <span class="meldung" id="walzengewicht_meldung"></span></span> <span class="kurzbezeichner">FG<sub></sub></span> </div> <div class="labelinputpaar"> <label class="paar-label">Roller weight Unit</label> <span class="input-container"><span class="radiobtncontainer" id="walzengewicht_einheit" name="walzengewicht_einheit"><span class="radiobtnrow-inline"><input class="eingabefeld" checked="" type="radio" value="kg" name="walzengewicht_einheit" id="auslegung__walzengewicht_einheit__kg"></input><label for="auslegung__walzengewicht_einheit__kg"><html><head></head><body>kg</body></html></label></span><span class="radiobtnrow-inline"><input class="eingabefeld" type="radio" value="lb" name="walzengewicht_einheit" id="auslegung__walzengewicht_einheit__lb"></input><label for="auslegung__walzengewicht_einheit__lb"><html><head></head><body>lb</body></html></label></span><span class="radiobtnrow-inline"><input class="eingabefeld" type="radio" value="n" name="walzengewicht_einheit" id="auslegung__walzengewicht_einheit__n"></input><label for="auslegung__walzengewicht_einheit__n"><html><head></head><body>N</body></html></label></span></span><script> document.getElementById(\'walzengewicht_einheit\').GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue; walzengewicht_einheit"); let value=null; let radioinput=null; radioinput=document.getElementById(\'auslegung__walzengewicht_einheit__kg\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__walzengewicht_einheit__lb\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__walzengewicht_einheit__n\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; console.log("GetTechnicalUrlValue "+value); return value; } ;let elmtAuslegung__walzengewicht_einheit__kg=document.getElementById(\'auslegung__walzengewicht_einheit__kg\'); if(elmtAuslegung__walzengewicht_einheit__kg!=null){elmtAuslegung__walzengewicht_einheit__kg.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__walzengewicht_einheit__lb=document.getElementById(\'auslegung__walzengewicht_einheit__lb\'); if(elmtAuslegung__walzengewicht_einheit__lb!=null){elmtAuslegung__walzengewicht_einheit__lb.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__walzengewicht_einheit__n=document.getElementById(\'auslegung__walzengewicht_einheit__n\'); if(elmtAuslegung__walzengewicht_einheit__n!=null){elmtAuslegung__walzengewicht_einheit__n.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}</script> <span class="meldung" id="walzengewicht_einheit_meldung"></span></span> <span class="kurzbezeichner"><sub></sub></span> </div> <hr class="trenner" /> <div class="labelinputpaar"> <label for="winkel1" class="paar-label">Angle 1</label> <span class="input-container"><script> function winkel1FabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwinkel1lastNumValue", event.currentTarget.value); } function winkel1FabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwinkel1FocusMouseDown",true); } } function winkel1SelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwinkel1FocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwinkel1FocusMouseDown",false); } function winkel1FabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { winkel1SelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwinkel1lastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwinkel1HiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwinkel1HiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwinkel1lastNumValue"); winkel1SelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking -36000 < \' + newInputAsNumber + \' < 36000\');if(newInputAsNumber<-36000){ console.log(newInputAsNumber+\' is < -36000\'); if (isBlurEvent) { inputElement.value = \'-36000\'; winkel1SelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel1lastNumValue"); winkel1SelectAtFocus(isFocusEvent,event); return; } } if(newInputAsNumber>36000){ console.log(newInputAsNumber+\' is > 36000\'); if (isBlurEvent) { inputElement.value = \'36000\'; winkel1SelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel1lastNumValue"); winkel1SelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwinkel1HiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwinkel1lastNumValue\', newNumericValue); winkel1SelectAtFocus(isFocusEvent,event); } </script><input name="winkel1" class="eingabefeld feldmiteinheit zahlenfeld" id="winkel1" value="0" type="text"></input><script> let winkel1F=document.getElementById(\'winkel1\'); console.log("registriere"); winkel1F.addEventListener(\'mousedown\',winkel1FabMousedownNumericValue);winkel1F.addEventListener(\'input\',winkel1FabPrettyPrintNumericValue);winkel1F.addEventListener(\'change\',winkel1FabNormalizeNumericValue);winkel1F.addEventListener(\'focus\',winkel1FabNormalizeNumericValue);winkel1F.addEventListener(\'focus\',winkel1FabPrettyPrintNumericValue);winkel1F.addEventListener(\'blur\',winkel1FabPrettyPrintNumericValue,false);;winkel1F.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=winkel1F.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function winkel1ForwardChange(event){ console.log("Funktion bei Änderung: window.recalcValues"); let newvalue=winkel1F.GetTechnicalUrlValue(); window.recalcValues(newvalue,winkel1F.id,event); } winkel1F.addEventListener(\'change\',winkel1ForwardChange);</script><span class="einheit">°</span> <span class="meldung" id="winkel1_meldung"></span></span> <span class="kurzbezeichner">A1<sub></sub></span> </div> <div class="labelinputpaar"> <label for="winkel2" class="paar-label">Angle 2</label> <span class="input-container"><script> function winkel2FabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwinkel2lastNumValue", event.currentTarget.value); } function winkel2FabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwinkel2FocusMouseDown",true); } } function winkel2SelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwinkel2FocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwinkel2FocusMouseDown",false); } function winkel2FabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { winkel2SelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwinkel2lastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwinkel2HiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwinkel2HiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwinkel2lastNumValue"); winkel2SelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking -36000 < \' + newInputAsNumber + \' < 36000\');if(newInputAsNumber<-36000){ console.log(newInputAsNumber+\' is < -36000\'); if (isBlurEvent) { inputElement.value = \'-36000\'; winkel2SelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel2lastNumValue"); winkel2SelectAtFocus(isFocusEvent,event); return; } } if(newInputAsNumber>36000){ console.log(newInputAsNumber+\' is > 36000\'); if (isBlurEvent) { inputElement.value = \'36000\'; winkel2SelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel2lastNumValue"); winkel2SelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwinkel2HiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwinkel2lastNumValue\', newNumericValue); winkel2SelectAtFocus(isFocusEvent,event); } </script><input name="winkel2" class="eingabefeld feldmiteinheit zahlenfeld" id="winkel2" value="-90" type="text"></input><script> let winkel2F=document.getElementById(\'winkel2\'); console.log("registriere"); winkel2F.addEventListener(\'mousedown\',winkel2FabMousedownNumericValue);winkel2F.addEventListener(\'input\',winkel2FabPrettyPrintNumericValue);winkel2F.addEventListener(\'change\',winkel2FabNormalizeNumericValue);winkel2F.addEventListener(\'focus\',winkel2FabNormalizeNumericValue);winkel2F.addEventListener(\'focus\',winkel2FabPrettyPrintNumericValue);winkel2F.addEventListener(\'blur\',winkel2FabPrettyPrintNumericValue,false);;winkel2F.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=winkel2F.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function winkel2ForwardChange(event){ console.log("Funktion bei Änderung: window.recalcValues"); let newvalue=winkel2F.GetTechnicalUrlValue(); window.recalcValues(newvalue,winkel2F.id,event); } winkel2F.addEventListener(\'change\',winkel2ForwardChange);</script><span class="einheit">°</span> <span class="meldung" id="winkel2_meldung"></span></span> <span class="kurzbezeichner">A2<sub></sub></span> </div> <div class="labelinputpaar" id="winkel1alternativcontainer"> <label for="winkel1alternativ" class="paar-label">Angle 1 alternative</label> <span class="input-container"><script> function winkel1alternativFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwinkel1alternativlastNumValue", event.currentTarget.value); } function winkel1alternativFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwinkel1alternativFocusMouseDown",true); } } function winkel1alternativSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwinkel1alternativFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwinkel1alternativFocusMouseDown",false); } function winkel1alternativFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { winkel1alternativSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwinkel1alternativlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwinkel1alternativHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwinkel1alternativHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwinkel1alternativlastNumValue"); winkel1alternativSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking -36000 < \' + newInputAsNumber + \' < 36000\');if(newInputAsNumber<-36000){ console.log(newInputAsNumber+\' is < -36000\'); if (isBlurEvent) { inputElement.value = \'-36000\'; winkel1alternativSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel1alternativlastNumValue"); winkel1alternativSelectAtFocus(isFocusEvent,event); return; } } if(newInputAsNumber>36000){ console.log(newInputAsNumber+\' is > 36000\'); if (isBlurEvent) { inputElement.value = \'36000\'; winkel1alternativSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel1alternativlastNumValue"); winkel1alternativSelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwinkel1alternativHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwinkel1alternativlastNumValue\', newNumericValue); winkel1alternativSelectAtFocus(isFocusEvent,event); } </script><input name="winkel1alternativ" class="eingabefeld feldmiteinheit zahlenfeld" id="winkel1alternativ" value="90" type="text"></input><script> let winkel1alternativF=document.getElementById(\'winkel1alternativ\'); console.log("registriere"); winkel1alternativF.addEventListener(\'mousedown\',winkel1alternativFabMousedownNumericValue);winkel1alternativF.addEventListener(\'input\',winkel1alternativFabPrettyPrintNumericValue);winkel1alternativF.addEventListener(\'change\',winkel1alternativFabNormalizeNumericValue);winkel1alternativF.addEventListener(\'focus\',winkel1alternativFabNormalizeNumericValue);winkel1alternativF.addEventListener(\'focus\',winkel1alternativFabPrettyPrintNumericValue);winkel1alternativF.addEventListener(\'blur\',winkel1alternativFabPrettyPrintNumericValue,false);;winkel1alternativF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=winkel1alternativF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function winkel1alternativForwardChange(event){ console.log("Funktion bei Änderung: window.winkel1alternativcnvschanged"); let newvalue=winkel1alternativF.GetTechnicalUrlValue(); window.winkel1alternativcnvschanged(newvalue,winkel1alternativF.id,event); } winkel1alternativF.addEventListener(\'change\',winkel1alternativForwardChange);</script><span class="einheit">°</span> <span class="meldung" id="winkel1alternativ_meldung"></span></span> <span class="kurzbezeichner"><sub></sub></span> </div> <div class="labelinputpaar" id="winkel2alternativcontainer"> <label for="winkel2alternativ" class="paar-label">Angle 2 alternative</label> <span class="input-container"><script> function winkel2alternativFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwinkel2alternativlastNumValue", event.currentTarget.value); } function winkel2alternativFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwinkel2alternativFocusMouseDown",true); } } function winkel2alternativSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwinkel2alternativFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwinkel2alternativFocusMouseDown",false); } function winkel2alternativFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { winkel2alternativSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwinkel2alternativlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwinkel2alternativHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwinkel2alternativHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwinkel2alternativlastNumValue"); winkel2alternativSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking -36000 < \' + newInputAsNumber + \' < 36000\');if(newInputAsNumber<-36000){ console.log(newInputAsNumber+\' is < -36000\'); if (isBlurEvent) { inputElement.value = \'-36000\'; winkel2alternativSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel2alternativlastNumValue"); winkel2alternativSelectAtFocus(isFocusEvent,event); return; } } if(newInputAsNumber>36000){ console.log(newInputAsNumber+\' is > 36000\'); if (isBlurEvent) { inputElement.value = \'36000\'; winkel2alternativSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel2alternativlastNumValue"); winkel2alternativSelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwinkel2alternativHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwinkel2alternativlastNumValue\', newNumericValue); winkel2alternativSelectAtFocus(isFocusEvent,event); } </script><input name="winkel2alternativ" class="eingabefeld feldmiteinheit zahlenfeld" id="winkel2alternativ" value="180" type="text"></input><script> let winkel2alternativF=document.getElementById(\'winkel2alternativ\'); console.log("registriere"); winkel2alternativF.addEventListener(\'mousedown\',winkel2alternativFabMousedownNumericValue);winkel2alternativF.addEventListener(\'input\',winkel2alternativFabPrettyPrintNumericValue);winkel2alternativF.addEventListener(\'change\',winkel2alternativFabNormalizeNumericValue);winkel2alternativF.addEventListener(\'focus\',winkel2alternativFabNormalizeNumericValue);winkel2alternativF.addEventListener(\'focus\',winkel2alternativFabPrettyPrintNumericValue);winkel2alternativF.addEventListener(\'blur\',winkel2alternativFabPrettyPrintNumericValue,false);;winkel2alternativF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=winkel2alternativF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function winkel2alternativForwardChange(event){ console.log("Funktion bei Änderung: window.winkel2alternativcnvschanged"); let newvalue=winkel2alternativF.GetTechnicalUrlValue(); window.winkel2alternativcnvschanged(newvalue,winkel2alternativF.id,event); } winkel2alternativF.addEventListener(\'change\',winkel2alternativForwardChange);</script><span class="einheit">°</span> <span class="meldung" id="winkel2alternativ_meldung"></span></span> <span class="kurzbezeichner"><sub></sub></span> </div> <div class="vorzurueckzeile"> <span></span> <span class="tab-button-weiter" id="fabTabLayout1777530690218" onclick="fabTabLayoutnullOpenTabSheets([\'tab-sensortyp\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });document.fabAfterTabChange();">Continue to Sensor Type</span> </div> <label class="paar-label" id="lbl-ergebnis-pro-sensor-line1">Results per sensor</label><br /> <label class="paar-label" id="lbl-ergebnis-pro-sensor-line2">with two-sided storage</label> <div style="display:table;"> <div style="display:table-row;"> <div class="kraftzelle"><label for="bandzuganteil_n" class="paar-label">Web tension portion (max.)</label></div> <div class="kraftzelle"><span class="input-container"><script> function bandzuganteil_nFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabbandzuganteil_nlastNumValue", event.currentTarget.value); } function bandzuganteil_nFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabbandzuganteil_nFocusMouseDown",true); } } function bandzuganteil_nSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabbandzuganteil_nFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabbandzuganteil_nFocusMouseDown",false); } function bandzuganteil_nFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { bandzuganteil_nSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabbandzuganteil_nlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabbandzuganteil_nHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabbandzuganteil_nHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabbandzuganteil_nlastNumValue"); bandzuganteil_nSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabbandzuganteil_nHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabbandzuganteil_nlastNumValue\', newNumericValue); bandzuganteil_nSelectAtFocus(isFocusEvent,event); } </script><input name="bandzuganteil_n" class="ausgabefeld feldmiteinheit zahlenfeld" id="bandzuganteil_n" disabled="" readonly="" type="text"></input><script> let bandzuganteil_nF=document.getElementById(\'bandzuganteil_n\'); console.log("registriere"); bandzuganteil_nF.addEventListener(\'mousedown\',bandzuganteil_nFabMousedownNumericValue);bandzuganteil_nF.addEventListener(\'input\',bandzuganteil_nFabPrettyPrintNumericValue);bandzuganteil_nF.addEventListener(\'change\',bandzuganteil_nFabNormalizeNumericValue);bandzuganteil_nF.addEventListener(\'focus\',bandzuganteil_nFabNormalizeNumericValue);bandzuganteil_nF.addEventListener(\'focus\',bandzuganteil_nFabPrettyPrintNumericValue);bandzuganteil_nF.addEventListener(\'blur\',bandzuganteil_nFabPrettyPrintNumericValue,false);;bandzuganteil_nF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=bandzuganteil_nF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;</script><span class="einheit">N</span></span></div> <div class="kurzbezeichner kraftzelle">FM<sub>Max</sub></div> </div> <div style="display:table-row;"> <div class="kraftzelle"><label for="bandzuganteilmin_n" class="paar-label">Web tension portion (min.)</label></div> <div class="kraftzelle"><span class="input-container"><script> function bandzuganteilmin_nFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabbandzuganteilmin_nlastNumValue", event.currentTarget.value); } function bandzuganteilmin_nFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabbandzuganteilmin_nFocusMouseDown",true); } } function bandzuganteilmin_nSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabbandzuganteilmin_nFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabbandzuganteilmin_nFocusMouseDown",false); } function bandzuganteilmin_nFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { bandzuganteilmin_nSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabbandzuganteilmin_nlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabbandzuganteilmin_nHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabbandzuganteilmin_nHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabbandzuganteilmin_nlastNumValue"); bandzuganteilmin_nSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabbandzuganteilmin_nHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabbandzuganteilmin_nlastNumValue\', newNumericValue); bandzuganteilmin_nSelectAtFocus(isFocusEvent,event); } </script><input name="bandzuganteilmin_n" class="ausgabefeld feldmiteinheit zahlenfeld" id="bandzuganteilmin_n" disabled="" readonly="" type="text"></input><script> let bandzuganteilmin_nF=document.getElementById(\'bandzuganteilmin_n\'); console.log("registriere"); bandzuganteilmin_nF.addEventListener(\'mousedown\',bandzuganteilmin_nFabMousedownNumericValue);bandzuganteilmin_nF.addEventListener(\'input\',bandzuganteilmin_nFabPrettyPrintNumericValue);bandzuganteilmin_nF.addEventListener(\'change\',bandzuganteilmin_nFabNormalizeNumericValue);bandzuganteilmin_nF.addEventListener(\'focus\',bandzuganteilmin_nFabNormalizeNumericValue);bandzuganteilmin_nF.addEventListener(\'focus\',bandzuganteilmin_nFabPrettyPrintNumericValue);bandzuganteilmin_nF.addEventListener(\'blur\',bandzuganteilmin_nFabPrettyPrintNumericValue,false);;bandzuganteilmin_nF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=bandzuganteilmin_nF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;</script><span class="einheit">N</span></span></div> <div class="kurzbezeichner kraftzelle">FM<sub>Min</sub></div> </div> <div style="display:table-row;"> <div class="kraftzelle"><label for="gesamtkraft_n" class="paar-label">Total force (max.)</label></div> <div class="kraftzelle"><span class="input-container"><script> function gesamtkraft_nFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabgesamtkraft_nlastNumValue", event.currentTarget.value); } function gesamtkraft_nFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabgesamtkraft_nFocusMouseDown",true); } } function gesamtkraft_nSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabgesamtkraft_nFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabgesamtkraft_nFocusMouseDown",false); } function gesamtkraft_nFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { gesamtkraft_nSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabgesamtkraft_nlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabgesamtkraft_nHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabgesamtkraft_nHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabgesamtkraft_nlastNumValue"); gesamtkraft_nSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabgesamtkraft_nHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabgesamtkraft_nlastNumValue\', newNumericValue); gesamtkraft_nSelectAtFocus(isFocusEvent,event); } </script><input name="gesamtkraft_n" class="ausgabefeld feldmiteinheit zahlenfeld" id="gesamtkraft_n" disabled="" readonly="" type="text"></input><script> let gesamtkraft_nF=document.getElementById(\'gesamtkraft_n\'); console.log("registriere"); gesamtkraft_nF.addEventListener(\'mousedown\',gesamtkraft_nFabMousedownNumericValue);gesamtkraft_nF.addEventListener(\'input\',gesamtkraft_nFabPrettyPrintNumericValue);gesamtkraft_nF.addEventListener(\'change\',gesamtkraft_nFabNormalizeNumericValue);gesamtkraft_nF.addEventListener(\'focus\',gesamtkraft_nFabNormalizeNumericValue);gesamtkraft_nF.addEventListener(\'focus\',gesamtkraft_nFabPrettyPrintNumericValue);gesamtkraft_nF.addEventListener(\'blur\',gesamtkraft_nFabPrettyPrintNumericValue,false);;gesamtkraft_nF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=gesamtkraft_nF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;</script><span class="einheit">N</span></span></div> <div class="kurzbezeichner kraftzelle">FGM&#xa0;+&#xa0;FM<sub>Max</sub></div> </div> <div style="display:table-row;"> <div class="kraftzelle"><label for="gesamtkraftmin_n" class="paar-label">Total force (min.)</label></div> <div class="kraftzelle"><span class="input-container"><script> function gesamtkraftmin_nFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabgesamtkraftmin_nlastNumValue", event.currentTarget.value); } function gesamtkraftmin_nFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabgesamtkraftmin_nFocusMouseDown",true); } } function gesamtkraftmin_nSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabgesamtkraftmin_nFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabgesamtkraftmin_nFocusMouseDown",false); } function gesamtkraftmin_nFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { gesamtkraftmin_nSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabgesamtkraftmin_nlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabgesamtkraftmin_nHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabgesamtkraftmin_nHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabgesamtkraftmin_nlastNumValue"); gesamtkraftmin_nSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabgesamtkraftmin_nHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabgesamtkraftmin_nlastNumValue\', newNumericValue); gesamtkraftmin_nSelectAtFocus(isFocusEvent,event); } </script><input name="gesamtkraftmin_n" class="ausgabefeld feldmiteinheit zahlenfeld" id="gesamtkraftmin_n" disabled="" readonly="" type="text"></input><script> let gesamtkraftmin_nF=document.getElementById(\'gesamtkraftmin_n\'); console.log("registriere"); gesamtkraftmin_nF.addEventListener(\'mousedown\',gesamtkraftmin_nFabMousedownNumericValue);gesamtkraftmin_nF.addEventListener(\'input\',gesamtkraftmin_nFabPrettyPrintNumericValue);gesamtkraftmin_nF.addEventListener(\'change\',gesamtkraftmin_nFabNormalizeNumericValue);gesamtkraftmin_nF.addEventListener(\'focus\',gesamtkraftmin_nFabNormalizeNumericValue);gesamtkraftmin_nF.addEventListener(\'focus\',gesamtkraftmin_nFabPrettyPrintNumericValue);gesamtkraftmin_nF.addEventListener(\'blur\',gesamtkraftmin_nFabPrettyPrintNumericValue,false);;gesamtkraftmin_nF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=gesamtkraftmin_nF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;</script><span class="einheit">N</span></span></div> <div class="kurzbezeichner kraftzelle">FGM&#xa0;+&#xa0;FM<sub>Min</sub></div> </div> <div style="display:table-row;"> <div class="kraftzelle"><label for="walzengewichtanteil_n" class="paar-label">Roll weight portion</label></div> <div class="kraftzelle"><span class="input-container"><script> function walzengewichtanteil_nFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwalzengewichtanteil_nlastNumValue", event.currentTarget.value); } function walzengewichtanteil_nFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwalzengewichtanteil_nFocusMouseDown",true); } } function walzengewichtanteil_nSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwalzengewichtanteil_nFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwalzengewichtanteil_nFocusMouseDown",false); } function walzengewichtanteil_nFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (1==1) && (originalInputValue.length>=0)) { walzengewichtanteil_nSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwalzengewichtanteil_nlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwalzengewichtanteil_nHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwalzengewichtanteil_nHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwalzengewichtanteil_nlastNumValue"); walzengewichtanteil_nSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(1, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwalzengewichtanteil_nHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (1 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwalzengewichtanteil_nlastNumValue\', newNumericValue); walzengewichtanteil_nSelectAtFocus(isFocusEvent,event); } </script><input name="walzengewichtanteil_n" class="ausgabefeld feldmiteinheit zahlenfeld" id="walzengewichtanteil_n" disabled="" readonly="" type="text"></input><script> let walzengewichtanteil_nF=document.getElementById(\'walzengewichtanteil_n\'); console.log("registriere"); walzengewichtanteil_nF.addEventListener(\'mousedown\',walzengewichtanteil_nFabMousedownNumericValue);walzengewichtanteil_nF.addEventListener(\'input\',walzengewichtanteil_nFabPrettyPrintNumericValue);walzengewichtanteil_nF.addEventListener(\'change\',walzengewichtanteil_nFabNormalizeNumericValue);walzengewichtanteil_nF.addEventListener(\'focus\',walzengewichtanteil_nFabNormalizeNumericValue);walzengewichtanteil_nF.addEventListener(\'focus\',walzengewichtanteil_nFabPrettyPrintNumericValue);walzengewichtanteil_nF.addEventListener(\'blur\',walzengewichtanteil_nFabPrettyPrintNumericValue,false);;walzengewichtanteil_nF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=walzengewichtanteil_nF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;</script><span class="einheit">N</span></span></div> <div class="kurzbezeichner kraftzelle">FGM<sub></sub></div> </div> </div> </div> <div class="block1 tab-sheet tab-sheet-inactive" id="tab-sensortyp" style="flex-basis:660px;max-width:unset;"> <div class=""> <h2>Sensor Type</h2> </div> <div class="" style="overflow-y:scroll;scrollbar-gutter: stable;" id="sensortypliste-cntnr"> <script>function showModal(elmntId){console.log(\'showModal(\'+elmntId+\');\');document.getElementById(elmntId).classList.add(\'modal-sichtbar\');} function hideModal(elmntId){console.log(\'hideModal(\'+elmntId+\');\');document.getElementById(elmntId).classList.remove(\'modal-sichtbar\');} </script> <span class="input-container"><span class="sensortypradiocontainer" id="typ" name="typ"><html> <head></head><body> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZA_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/4/f/csm_bza_b9d528724e.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZA 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690219" onclick="document.getElementById(\'typ__sensortyp__bza\').checked=true; window.syncSensortyp(\'BZA\',\'typ__sensortyp__bza\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZA_modal" onclick="hideModal(\'sensortyp_BZA_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZA_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bza_pb_en.pdf">Force Measuring Bearing BZA</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/4/f/csm_bza_b9d528724e.jpg" /> 				</div> 				<p>Force measuring bearing made of high-strength aluminium</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">100 ... 5.000 N</td> 					</tr> 					<tr> 						<th class="sensortyp-detail sensortyp-detailname">Shaft diameter</th> 						<td class="sensortyp-detail sensortyp-detailwert">15 … 60 mm</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bza_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690220" onclick="document.getElementById(\'typ__sensortyp__bza\').checked=true; window.syncSensortyp(\'BZA\',\'typ__sensortyp__bza\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bza" name="typ" value="BZA" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZU_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/8/0/csm_bzu-20241128_114944_e3fe6b9508.png" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZU 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690221" onclick="document.getElementById(\'typ__sensortyp__bzu\').checked=true; window.syncSensortyp(\'BZU\',\'typ__sensortyp__bzu\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZU_modal" onclick="hideModal(\'sensortyp_BZU_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZU_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bzu_pb_en_01.pdf">Force Measuring Bearing BZU</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/8/0/csm_bzu-20241128_114944_e3fe6b9508.png" /> 				</div> 				<p>The force measuring bearings in the BZU-series  measure the tension forces that occur during the handling of web materials.&#xa0;</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">160 … 15.000 N</td> 					</tr> 					<tr> 						<th class="sensortyp-detail sensortyp-detailname">Shaft diameter</th> 						<td class="sensortyp-detail sensortyp-detailwert">15 … 60 mm</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bzu_pb_en_01.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690222" onclick="document.getElementById(\'typ__sensortyp__bzu\').checked=true; window.syncSensortyp(\'BZU\',\'typ__sensortyp__bzu\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzu" name="typ" value="BZU" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_RCA_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/2/a/csm_rca-serie1_c47661391b.png" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					RCA 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690223" onclick="document.getElementById(\'typ__sensortyp__rca\').checked=true; window.syncSensortyp(\'RCA\',\'typ__sensortyp__rca\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_RCA_modal" onclick="hideModal(\'sensortyp_RCA_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_RCA_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/rca_pb_en_01.pdf">Force sensor RCA</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/2/a/csm_rca-serie1_c47661391b.png" /> 				</div> 				<p>Force sensor with adapter</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">50 … 2.000 N</td> 					</tr> 					<tr> 						<th class="sensortyp-detail sensortyp-detailname">Shaft diameter</th> 						<td class="sensortyp-detail sensortyp-detailwert">17 … 40 mm</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/rca_pb_en_01.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690224" onclick="document.getElementById(\'typ__sensortyp__rca\').checked=true; window.syncSensortyp(\'RCA\',\'typ__sensortyp__rca\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__rca" name="typ" value="RCA" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_RCZ_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/8/4/csm_rcz_1024x577_1eb6cf4e87.png" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					RCZ 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690225" onclick="document.getElementById(\'typ__sensortyp__rcz\').checked=true; window.syncSensortyp(\'RCZ\',\'typ__sensortyp__rcz\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_RCZ_modal" onclick="hideModal(\'sensortyp_RCZ_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_RCZ_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/rcz_pb_en_01.pdf">Pin Force Sensor</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/8/4/csm_rcz_1024x577_1eb6cf4e87.png" /> 				</div> 				<p>Space-saving sensor for use on pin rollers</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">50 … 2.000 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/rcz_pb_en_01.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690226" onclick="document.getElementById(\'typ__sensortyp__rcz\').checked=true; window.syncSensortyp(\'RCZ\',\'typ__sensortyp__rcz\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__rcz" name="typ" value="RCZ" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_RCR_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/9/d/csm_rcr-1024x577_d96c523ca8.png" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					RCR 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690227" onclick="document.getElementById(\'typ__sensortyp__rcr\').checked=true; window.syncSensortyp(\'RCR\',\'typ__sensortyp__rcr\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_RCR_modal" onclick="hideModal(\'sensortyp_RCR_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_RCR_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/rcr_pb_en.pdf">Roller sensor</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/9/d/csm_rcr-1024x577_d96c523ca8.png" /> 				</div> 				<p>Compact sensor for rollers</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">50 … 1.500 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/rcr_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690228" onclick="document.getElementById(\'typ__sensortyp__rcr\').checked=true; window.syncSensortyp(\'RCR\',\'typ__sensortyp__rcr\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__rcr" name="typ" value="RCR" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_RC_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/8/c/csm_rc-serie__1__2d6740f21b.png" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					RC 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690229" onclick="document.getElementById(\'typ__sensortyp__rc\').checked=true; window.syncSensortyp(\'RC\',\'typ__sensortyp__rc\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_RC_modal" onclick="hideModal(\'sensortyp_RC_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_RC_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/rc_pb_en.pdf">Measuring Bearing RC</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/8/c/csm_rc-serie__1__2d6740f21b.png" /> 				</div> 				<p>Cost-effective measuring bearing for a variety of applications</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">50 … 1.500 N</td> 					</tr> 					<tr> 						<th class="sensortyp-detail sensortyp-detailname">Shaft diameter</th> 						<td class="sensortyp-detail sensortyp-detailwert">17 mm</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/rc_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690230" onclick="document.getElementById(\'typ__sensortyp__rc\').checked=true; window.syncSensortyp(\'RC\',\'typ__sensortyp__rc\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__rc" name="typ" value="RC" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZLA_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/0/1/csm_bzl-a_8405477e0d.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZLA 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690231" onclick="document.getElementById(\'typ__sensortyp__bzla\').checked=true; window.syncSensortyp(\'BZLA\',\'typ__sensortyp__bzla\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZLA_modal" onclick="hideModal(\'sensortyp_BZLA_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZLA_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bzl-a_pb_en.pdf">Force Measurement Bearing BZL-A</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/0/1/csm_bzl-a_8405477e0d.jpg" /> 				</div> 				<p>Very compact and cost-effective design for simplified mounting e.g. to machine walls</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">125 … 500 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bzl-a_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690232" onclick="document.getElementById(\'typ__sensortyp__bzla\').checked=true; window.syncSensortyp(\'BZLA\',\'typ__sensortyp__bzla\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzla" name="typ" value="BZLA" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZR_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/e/b/csm_bzr5_8b5c623dcb.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZR5 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690233" onclick="document.getElementById(\'typ__sensortyp__bzr\').checked=true; window.syncSensortyp(\'BZR\',\'typ__sensortyp__bzr\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZR_modal" onclick="hideModal(\'sensortyp_BZR_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZR_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bzr5_pb_en.pdf">Force measurement bearing for large forces</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/e/b/csm_bzr5_8b5c623dcb.jpg" /> 				</div> 				<p>We offer solutions for applications up to 25 kN and bearing seat diameter of up to 80 mm</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">5 … 25 kN</td> 					</tr> 					<tr> 						<th class="sensortyp-detail sensortyp-detailname">Shaft diameter</th> 						<td class="sensortyp-detail sensortyp-detailwert">65 … 80 mm</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bzr5_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690234" onclick="document.getElementById(\'typ__sensortyp__bzr\').checked=true; window.syncSensortyp(\'BZR\',\'typ__sensortyp__bzr\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzr" name="typ" value="BZR" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_ZAD_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/5/4/csm_zad_1503d7545f.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					ZAD 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690235" onclick="document.getElementById(\'typ__sensortyp__zad\').checked=true; window.syncSensortyp(\'ZAD\',\'typ__sensortyp__zad\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_ZAD_modal" onclick="hideModal(\'sensortyp_ZAD_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_ZAD_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/zad_pb_en_01.pdf">Tension Force Sensor ZAD</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/5/4/csm_zad_1503d7545f.jpg" /> 				</div> 				<p>Tension force sensor with external thread and fastening nuts</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">10 … 1.000 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/zad_pb_en_01.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690236" onclick="document.getElementById(\'typ__sensortyp__zad\').checked=true; window.syncSensortyp(\'ZAD\',\'typ__sensortyp__zad\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__zad" name="typ" value="ZAD" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_ZAK_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/4/9/csm_zak3__4593516006.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					ZAK 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690237" onclick="document.getElementById(\'typ__sensortyp__zak\').checked=true; window.syncSensortyp(\'ZAK\',\'typ__sensortyp__zak\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_ZAK_modal" onclick="hideModal(\'sensortyp_ZAK_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_ZAK_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/en/web-tension/tension-force-sensor/tension-force-sensor-zak">Tension Force Measuring Roll ZAK</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/4/9/csm_zak3__4593516006.jpg" /> 				</div> 				<p>For a large variety of requirements in the tension force measurement</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">10 … 2.000 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/en/web-tension/tension-force-sensor/tension-force-sensor-zak">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690238" onclick="document.getElementById(\'typ__sensortyp__zak\').checked=true; window.syncSensortyp(\'ZAK\',\'typ__sensortyp__zak\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__zak" name="typ" value="ZAK" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_RMR3_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/3/4/csm_rmr3_1024x577_86383d35ff.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					RMR3 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690239" onclick="document.getElementById(\'typ__sensortyp__rmr3\').checked=true; window.syncSensortyp(\'RMR3\',\'typ__sensortyp__rmr3\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_RMR3_modal" onclick="hideModal(\'sensortyp_RMR3_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_RMR3_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/rmr3_pb_en.pdf">Force measuring roller RMR3-series</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/3/4/csm_rmr3_1024x577_86383d35ff.jpg" /> 				</div> 				<p>RMR3 series force sensors offer compact dimensions and are designed for measuring wire tension on running and rotating stranding machines.</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">20 … 1.000 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/rmr3_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690240" onclick="document.getElementById(\'typ__sensortyp__rmr3\').checked=true; window.syncSensortyp(\'RMR3\',\'typ__sensortyp__rmr3\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__rmr3" name="typ" value="RMR3" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_MWF_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/e/2/csm_mwf_6e31fd3cbd.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					MWF 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690241" onclick="document.getElementById(\'typ__sensortyp__mwf\').checked=true; window.syncSensortyp(\'MWF\',\'typ__sensortyp__mwf\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_MWF_modal" onclick="hideModal(\'sensortyp_MWF_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_MWF_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/zak_pb_en.pdf">Force Measuring Roll MWF, cantilever design</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/e/2/csm_mwf_6e31fd3cbd.jpg" /> 				</div> 				<p>Cantilevered measuring rolls, designed according to customer specification</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">50 … 2.000 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/zak_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690242" onclick="document.getElementById(\'typ__sensortyp__mwf\').checked=true; window.syncSensortyp(\'MWF\',\'typ__sensortyp__mwf\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__mwf" name="typ" value="MWF" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_MWFM90_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/b/c/csm_mwfm_7374c97a64.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					MWFM90 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690243" onclick="document.getElementById(\'typ__sensortyp__mwfm90\').checked=true; window.syncSensortyp(\'MWFM90\',\'typ__sensortyp__mwfm90\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_MWFM90_modal" onclick="hideModal(\'sensortyp_MWFM90_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_MWFM90_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/mwfm_pb_en.pdf">Force Measuring Roll MWFM, cantilever design</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/b/c/csm_mwfm_7374c97a64.jpg" /> 				</div> 				<p>Cantilevered measuring rolls for demanding measurement applications</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">100 … 1.000 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/mwfm_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690244" onclick="document.getElementById(\'typ__sensortyp__mwfm90\').checked=true; window.syncSensortyp(\'MWFM90\',\'typ__sensortyp__mwfm90\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__mwfm90" name="typ" value="MWFM90" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_MWB_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/d/f/csm_mes_ab08db73a2.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					MWB 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690245" onclick="document.getElementById(\'typ__sensortyp__mwb\').checked=true; window.syncSensortyp(\'MWB\',\'typ__sensortyp__mwb\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_MWB_modal" onclick="hideModal(\'sensortyp_MWB_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_MWB_modal\');">×</span> 				<h2> 					<a target="_blank" href="haehne.de/fileadmin/documentation_en/mwb_pb_en.pdf">Force Measuring Roll MWB</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/d/f/csm_mes_ab08db73a2.jpg" /> 				</div> 				<p>Complete measuring roll with integrated force sensor</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">200 … 3000 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="haehne.de/fileadmin/documentation_en/mwb_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690246" onclick="document.getElementById(\'typ__sensortyp__mwb\').checked=true; window.syncSensortyp(\'MWB\',\'typ__sensortyp__mwb\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__mwb" name="typ" value="MWB" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZH_A_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-a01_02.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZH-A 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690247" onclick="document.getElementById(\'typ__sensortyp__bzh_a\').checked=true; window.syncSensortyp(\'BZH_A\',\'typ__sensortyp__bzh_a\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZH_A_modal" onclick="hideModal(\'sensortyp_BZH_A_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZH_A_modal\');">×</span> 				<h2> 					<a target="_blank" href="haehne.de/fileadmin/documentation_en/bzva_bzha_pb_en.pdf">Force measuring blocks made of high-strength aluminum</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-a01_02.jpg" /> 				</div> 				<p>Cost-efficient strip tension sensors in a compact block design.</p> 				<a target="_blank" class="sensortyp-link" href="haehne.de/fileadmin/documentation_en/bzva_bzha_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690248" onclick="document.getElementById(\'typ__sensortyp__bzh_a\').checked=true; window.syncSensortyp(\'BZH_A\',\'typ__sensortyp__bzh_a\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzh_a" name="typ" value="BZH_A" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZH_A01_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-a01_02.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZH-A01/02 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690249" onclick="document.getElementById(\'typ__sensortyp__bzh_a01\').checked=true; window.syncSensortyp(\'BZH_A01\',\'typ__sensortyp__bzh_a01\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZH_A01_modal" onclick="hideModal(\'sensortyp_BZH_A01_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZH_A01_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bzh-a01_02_pb_en.pdf">Force measuring blocks made of high-strength aluminum</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-a01_02.jpg" /> 				</div> 				<p>Cost-efficient strip tension sensors in a compact block design.</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">5 … 25 kN</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bzh-a01_02_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690250" onclick="document.getElementById(\'typ__sensortyp__bzh_a01\').checked=true; window.syncSensortyp(\'BZH_A01\',\'typ__sensortyp__bzh_a01\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzh_a01" name="typ" value="BZH_A01" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZV_A_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-a01_02.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZV-A 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690251" onclick="document.getElementById(\'typ__sensortyp__bzv_a\').checked=true; window.syncSensortyp(\'BZV_A\',\'typ__sensortyp__bzv_a\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZV_A_modal" onclick="hideModal(\'sensortyp_BZV_A_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZV_A_modal\');">×</span> 				<h2> 					<a target="_blank" href="haehne.de/fileadmin/documentation_en/bzva_bzha_pb_en.pdf">Force measuring blocks made of high-strength aluminum</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-a01_02.jpg" /> 				</div> 				<p>Cost-efficient strip tension sensors in a compact block design.</p> 				<a target="_blank" class="sensortyp-link" href="haehne.de/fileadmin/documentation_en/bzva_bzha_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690252" onclick="document.getElementById(\'typ__sensortyp__bzv_a\').checked=true; window.syncSensortyp(\'BZV_A\',\'typ__sensortyp__bzv_a\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzv_a" name="typ" value="BZV_A" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZV_A01_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-a01_02.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZV-A01/02 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690253" onclick="document.getElementById(\'typ__sensortyp__bzv_a01\').checked=true; window.syncSensortyp(\'BZV_A01\',\'typ__sensortyp__bzv_a01\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZV_A01_modal" onclick="hideModal(\'sensortyp_BZV_A01_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZV_A01_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bzv-a01_02_pb_en.pdf">Force measuring blocks made of high-strength aluminum</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-a01_02.jpg" /> 				</div> 				<p>Cost-efficient strip tension sensors in a compact block design.</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">5 … 25 kN</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bzv-a01_02_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690254" onclick="document.getElementById(\'typ__sensortyp__bzv_a01\').checked=true; window.syncSensortyp(\'BZV_A01\',\'typ__sensortyp__bzv_a01\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzv_a01" name="typ" value="BZV_A01" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZH_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/5/f/csm_bzh_f76fd45eee.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZH 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690255" onclick="document.getElementById(\'typ__sensortyp__bzh\').checked=true; window.syncSensortyp(\'BZH\',\'typ__sensortyp__bzh\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZH_modal" onclick="hideModal(\'sensortyp_BZH_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZH_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bzh_pb_en_01.pdf">Force measuring blocks made of steel</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/5/f/csm_bzh_f76fd45eee.jpg" /> 				</div> 				<p>Robust pillow block sensors made of steel with mechanical overload protection.  The strip tension sensors are available with 2 mounting plates, which are designed to accommodate pillow block bearings from INA, FAG, SKF and NSK.</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">160 … 6.300 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bzh_pb_en_01.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690256" onclick="document.getElementById(\'typ__sensortyp__bzh\').checked=true; window.syncSensortyp(\'BZH\',\'typ__sensortyp__bzh\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzh" name="typ" value="BZH" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZHB_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/_processed_/a/d/csm_bzhb0106_11fa4e2edc.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZHB 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690257" onclick="document.getElementById(\'typ__sensortyp__bzhb\').checked=true; window.syncSensortyp(\'BZHB\',\'typ__sensortyp__bzhb\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZHB_modal" onclick="hideModal(\'sensortyp_BZHB_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZHB_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bzhb_pb_en.pdf">Force measuring blocks made of steel</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/_processed_/a/d/csm_bzhb0106_11fa4e2edc.jpg" /> 				</div> 				<p>Robust pillow block sensors made of steel with mechanical overload protection.  The strip tension sensors are available with 2 mounting plates, which are designed to accommodate pillow block bearings from INA, FAG, SKF and NSK.</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">160 … 6.300 N</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bzhb_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690258" onclick="document.getElementById(\'typ__sensortyp__bzhb\').checked=true; window.syncSensortyp(\'BZHB\',\'typ__sensortyp__bzhb\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzhb" name="typ" value="BZHB" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZH-K_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-k01_02.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZH-K 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690259" onclick="document.getElementById(\'typ__sensortyp__bzh_k\').checked=true; window.syncSensortyp(\'BZH-K\',\'typ__sensortyp__bzh_k\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZH-K_modal" onclick="hideModal(\'sensortyp_BZH-K_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZH-K_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bzh-k01_02_pb_en.pdf">Force measuring blocks made from stainless steel</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-k01_02.jpg" /> 				</div> 				<p>The force measuring blocks are designed for heavy use and are preferably used in the metal industry. Due to the mechanical stops, they have a high level of overload protection. The block sensors can be easily adapted to different types of bearings and can be quickly and easily mounted between the pedestal bearing and the machine mounting surface.</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">1 … 200 kN</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bzh-k01_02_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690260" onclick="document.getElementById(\'typ__sensortyp__bzh_k\').checked=true; window.syncSensortyp(\'BZH-K\',\'typ__sensortyp__bzh_k\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzh_k" name="typ" value="BZH-K" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZV-K_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-k01_02.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZV-K 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690261" onclick="document.getElementById(\'typ__sensortyp__bzv_k\').checked=true; window.syncSensortyp(\'BZV-K\',\'typ__sensortyp__bzv_k\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZV-K_modal" onclick="hideModal(\'sensortyp_BZV-K_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZV-K_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bzv-k01_02_pb_en.pdf">Force measuring blocks made from stainless steel</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzh-k01_02.jpg" /> 				</div> 				<p>The force measuring blocks are designed for heavy use and are preferably used in the metal industry. Due to the mechanical stops, they have a high level of overload protection. The block sensors can be easily adapted to different types of bearings and can be quickly and easily mounted between the pedestal bearing and the machine mounting surface.</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">5 … 200 kN</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bzv-k01_02_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690262" onclick="document.getElementById(\'typ__sensortyp__bzv_k\').checked=true; window.syncSensortyp(\'BZV-K\',\'typ__sensortyp__bzv_k\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzv_k" name="typ" value="BZV-K" /> 	</div> </body> </html><html> <head></head><body> 	<div class="sensortyp-card"> 		<div style="padding: 0; margin: 0; cursor: pointer;" onclick="showModal(\'sensortyp_BZH-PR_modal\');"> 			<div class="sensortyp-card-img-cntnr"> 				 <img class="sensortyp-card-img" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzhk__x8.jpg" title="For details please click" /> 			</div> 			<div class="text"> 				<h2> 					BZH-PR 9951 				</h2> 			</div> 		</div> 		<button type="button" class="sensortyp-card-auswahl-btn" id="fabTabLayout1777530690263" onclick="document.getElementById(\'typ__sensortyp__bzh_pr\').checked=true; window.syncSensortyp(\'BZH-PR\',\'typ__sensortyp__bzh_pr\');setTimeout(document.fabAfterTabChange,500);fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select</button> 		<div class="sensortyp-modal-cntnr" id="sensortyp_BZH-PR_modal" onclick="hideModal(\'sensortyp_BZH-PR_modal\');"> 			<div class="sensortyp-modal-content"> 				<span class="close" onclick="hideModal(\'sensortyp_BZH-PR_modal\');">×</span> 				<h2> 					<a target="_blank" href="https://haehne.de/fileadmin/documentation_en/bzh-pr9951_pb_en.pdf">Force measuring blocks made from stainless steel</a> 				</h2> 				<div style="width: 100%; text-align: center;"> 					<img style="width: 100%; max-width: 500px;" src="https://haehne.de/fileadmin/produkte/kraftmessbloecke/bzhk__x8.jpg" /> 				</div> 				<p>The BZH-PR9951 force measuring block is made of stainless<br />steel, has a high overload protection with mechanical stops and is characterised by its durability, accuracy and high reliability. The ideal solution for a wide range of industrial applications, especially in the paper industry.</p> 				<h3>Technical data</h3> 				<table class="sensortyp-technischedaten"> 					<tbody><tr> 						<th class="sensortyp-detail sensortyp-detailname">Nominal force range</th> 						<td class="sensortyp-detail sensortyp-detailwert">1 … 10 kN</td> 					</tr> 				</tbody></table> 				<a target="_blank" class="sensortyp-link" href="https://haehne.de/fileadmin/documentation_en/bzh-pr9951_pb_en.pdf">Product description (pdf)</a>  				<button type="button" class="sensortyp-auswahl-btn" id="fabTabLayout1777530690264" onclick="document.getElementById(\'typ__sensortyp__bzh_pr\').checked=true; window.syncSensortyp(\'BZH-PR\',\'typ__sensortyp__bzh_pr\');fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });">Select Sensor Type</button> 			</div> 		</div> 		<input type="radio" style="visibility: hidden; display: none;" id="typ__sensortyp__bzh_pr" name="typ" value="BZH-PR" /> 	</div> </body> </html></span><script> document.getElementById(\'typ\').GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue; typ"); let value=null; let radioinput=null; radioinput=document.getElementById(\'auslegung__typ__nothingselected\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bza\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzu\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__rca\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__rcz\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__rcr\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__rc\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzla\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzr\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__zad\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__zak\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__rmr3\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__mwf\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__mwfm90\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__mwb\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzh_a\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzh_a01\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzv_a\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzv_a01\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzh\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzhb\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzh_k\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzv_k\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'typ__sensortyp__bzh_pr\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; console.log("GetTechnicalUrlValue "+value); return value; } ;let elmtAuslegung__typ__nothingselected=document.getElementById(\'auslegung__typ__nothingselected\'); if(elmtAuslegung__typ__nothingselected!=null){elmtAuslegung__typ__nothingselected.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bza=document.getElementById(\'typ__sensortyp__bza\'); if(elmtTyp__sensortyp__bza!=null){elmtTyp__sensortyp__bza.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzu=document.getElementById(\'typ__sensortyp__bzu\'); if(elmtTyp__sensortyp__bzu!=null){elmtTyp__sensortyp__bzu.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__rca=document.getElementById(\'typ__sensortyp__rca\'); if(elmtTyp__sensortyp__rca!=null){elmtTyp__sensortyp__rca.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__rcz=document.getElementById(\'typ__sensortyp__rcz\'); if(elmtTyp__sensortyp__rcz!=null){elmtTyp__sensortyp__rcz.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__rcr=document.getElementById(\'typ__sensortyp__rcr\'); if(elmtTyp__sensortyp__rcr!=null){elmtTyp__sensortyp__rcr.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__rc=document.getElementById(\'typ__sensortyp__rc\'); if(elmtTyp__sensortyp__rc!=null){elmtTyp__sensortyp__rc.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzla=document.getElementById(\'typ__sensortyp__bzla\'); if(elmtTyp__sensortyp__bzla!=null){elmtTyp__sensortyp__bzla.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzr=document.getElementById(\'typ__sensortyp__bzr\'); if(elmtTyp__sensortyp__bzr!=null){elmtTyp__sensortyp__bzr.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__zad=document.getElementById(\'typ__sensortyp__zad\'); if(elmtTyp__sensortyp__zad!=null){elmtTyp__sensortyp__zad.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__zak=document.getElementById(\'typ__sensortyp__zak\'); if(elmtTyp__sensortyp__zak!=null){elmtTyp__sensortyp__zak.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__rmr3=document.getElementById(\'typ__sensortyp__rmr3\'); if(elmtTyp__sensortyp__rmr3!=null){elmtTyp__sensortyp__rmr3.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__mwf=document.getElementById(\'typ__sensortyp__mwf\'); if(elmtTyp__sensortyp__mwf!=null){elmtTyp__sensortyp__mwf.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__mwfm90=document.getElementById(\'typ__sensortyp__mwfm90\'); if(elmtTyp__sensortyp__mwfm90!=null){elmtTyp__sensortyp__mwfm90.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__mwb=document.getElementById(\'typ__sensortyp__mwb\'); if(elmtTyp__sensortyp__mwb!=null){elmtTyp__sensortyp__mwb.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzh_a=document.getElementById(\'typ__sensortyp__bzh_a\'); if(elmtTyp__sensortyp__bzh_a!=null){elmtTyp__sensortyp__bzh_a.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzh_a01=document.getElementById(\'typ__sensortyp__bzh_a01\'); if(elmtTyp__sensortyp__bzh_a01!=null){elmtTyp__sensortyp__bzh_a01.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzv_a=document.getElementById(\'typ__sensortyp__bzv_a\'); if(elmtTyp__sensortyp__bzv_a!=null){elmtTyp__sensortyp__bzv_a.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzv_a01=document.getElementById(\'typ__sensortyp__bzv_a01\'); if(elmtTyp__sensortyp__bzv_a01!=null){elmtTyp__sensortyp__bzv_a01.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzh=document.getElementById(\'typ__sensortyp__bzh\'); if(elmtTyp__sensortyp__bzh!=null){elmtTyp__sensortyp__bzh.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzhb=document.getElementById(\'typ__sensortyp__bzhb\'); if(elmtTyp__sensortyp__bzhb!=null){elmtTyp__sensortyp__bzhb.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzh_k=document.getElementById(\'typ__sensortyp__bzh_k\'); if(elmtTyp__sensortyp__bzh_k!=null){elmtTyp__sensortyp__bzh_k.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzv_k=document.getElementById(\'typ__sensortyp__bzv_k\'); if(elmtTyp__sensortyp__bzv_k!=null){elmtTyp__sensortyp__bzv_k.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}let elmtTyp__sensortyp__bzh_pr=document.getElementById(\'typ__sensortyp__bzh_pr\'); if(elmtTyp__sensortyp__bzh_pr!=null){elmtTyp__sensortyp__bzh_pr.addEventListener(\'change\', function(){if(this.checked==true){null(this.value,this.id)}});}</script></span> </div> <div class="vorzurueckzeile"> <span class="tab-button-weiter tab-button-active" id="fabTabLayout1777530690265" onclick="fabTabLayoutnullOpenTabSheets([\'tab-kraft\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });document.fabAfterTabChange();">Back to Forces</span> <span class="tab-button-weiter" id="fabTabLayout1777530690266" onclick="fabTabLayoutnullOpenTabSheets([\'tab-optionen\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });document.fabAfterTabChange();">Continue to Options</span> </div> </div> <script type="module" src="https://haehne-configurator.de/script/gainrechner.js"> </script> <div class="block1 tab-sheet tab-sheet-inactive" id="tab-optionen"> <div style="display:flex;flex-direction:row;margin-bottom:1rem;"> <div style="flex-basis:calc(100% - 100px);flex-grow: 0;flex-shrink: 1;"> <h2>Sensor</h2> <div class="labelinputpaar typ2"> <label for="typ2" class="paar-label">Sensor Type</label> <span class="input-container"><select name="typ2" class="eingabefeld" id="typ2" placeholder=""><option value=""></option><option value="BZA">BZA</option><option value="BZH">BZH</option><option value="BZH_A">BZH-A</option><option value="BZH_A01">BZH-A01/02</option><option value="BZH-K">BZH-K</option><option value="BZH-PR">BZH-PR 9951</option><option value="BZHB">BZHB</option><option value="BZLA">BZLA</option><option value="BZR">BZR5</option><option value="BZU">BZU</option><option value="BZV_A">BZV-A</option><option value="BZV_A01">BZV-A01/02</option><option value="BZV-K">BZV-K</option><option value="MWB">MWB</option><option value="MWF">MWF</option><option value="MWFM90">MWFM90</option><option value="RC">RC</option><option value="RCA">RCA</option><option value="RCR">RCR</option><option value="RCZ">RCZ</option><option value="RMR3">RMR3</option><option value="ZAD">ZAD</option><option value="ZAK">ZAK</option></select><script> let typ2F=document.getElementById(\'typ2\'); function typ2ForwardChange(event){ console.log("Funktion bei Änderung: window.syncSensortyp"); let newvalue=typ2F.value; window.syncSensortyp(newvalue,typ2F.id,event); } typ2F.addEventListener(\'change\',typ2ForwardChange);</script></span> </div> <div id="sichtbarCntnr" class="sichtbar"> </div> <div id="sichtbarCntnr2" class="sichtbar"> </div> <div id="sichtbarCntnrRead" class="sichtbar"> </div> <div id="unsichtbarCntnr" class="unsichtbar"> <button id="btnReset" type="button" onclick="document.resetDynOptionen();">Reset</button> <div class="labelinputpaar" id="lagerungCntnr"><label class="paar-label">Bearing</label><span class="input-container"><span class="radiobtncontainer" id="lagerung" name="lagerung"><span class="radiobtnrow"><input class="eingabefeld" type="radio" value="einstg" name="lagerung" id="auslegung__lagerung__einstg"></input><label for="auslegung__lagerung__einstg"><img src="https://haehne-configurator.de/img/einseitig.svg"></img><html><head></head><body>Single sided</body></html></label></span><span class="radiobtnrow"><input class="eingabefeld" checked="" type="radio" value="beidstg" name="lagerung" id="auslegung__lagerung__beidstg"></input><label for="auslegung__lagerung__beidstg"><img src="https://haehne-configurator.de/img/beidseitig.svg"></img><html><head></head><body>Dual sided</body></html></label></span></span><script> document.getElementById(\'lagerung\').GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue; lagerung"); let value=null; let radioinput=null; radioinput=document.getElementById(\'auslegung__lagerung__einstg\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__lagerung__beidstg\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; console.log("GetTechnicalUrlValue "+value); return value; } ;let elmtAuslegung__lagerung__einstg=document.getElementById(\'auslegung__lagerung__einstg\'); if(elmtAuslegung__lagerung__einstg!=null){elmtAuslegung__lagerung__einstg.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__lagerung__beidstg=document.getElementById(\'auslegung__lagerung__beidstg\'); if(elmtAuslegung__lagerung__beidstg!=null){elmtAuslegung__lagerung__beidstg.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}</script></span></div> <div class="labelinputpaar" id="typ2bildCntnr"><label class="paar-label"></label> <span class="input-container"><img id="typ2bild" /><span class="dynopt-suffix"></span> <span id="typlinkCntnr" class="unsichtbar"><a id="typlink" target="_blank"></a></span></span></div> <div class="labelinputpaar" id="wellenzapfendurchmesser_mmCntnr">  <label for="wellenzapfendurchmesser_mm" class="paar-label">Shaft journal diameter</label> <span class="input-container"><select id="wellenzapfendurchmesser_mm" name="wellenzapfendurchmesser_mm" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="wellenzapfendurchmesser_mmSuffix" class="dynopt-suffix">mm</span> </span></div> <div class="labelinputpaar" id="typ_langCntnr"><label for="typ_lang" class="paar-label">Type long</label> <span class="input-container"><input type="text" id="typ_lang" name="typ_lang" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);" /><span id="typ_langSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="baugroesseCntnr">  <label for="baugroesse" class="paar-label">Size</label> <span class="input-container"><select id="baugroesse" name="baugroesse" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="baugroesseSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="messrichtungCntnr">  <label for="messrichtung" class="paar-label">Measuring direction</label> <span class="input-container"><select id="messrichtung" name="messrichtung" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="messrichtungSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="bauformCntnr">  <label for="bauform" class="paar-label">Construction form</label> <span class="input-container"><select id="bauform" name="bauform" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="bauformSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="ballenlaengeCntnr">  <label for="ballenlaenge" class="paar-label">Roll length</label> <span class="input-container"><select id="ballenlaenge" name="ballenlaenge" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="ballenlaengeSuffix" class="dynopt-suffix">mm</span> </span></div> <div class="labelinputpaar" id="nennkraefte_nCntnr">  <label for="nennkraefte_n" class="paar-label">Nominal force of sensor</label> <span class="input-container"><select id="nennkraefte_n" name="nennkraefte_n" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="nennkraefte_nSuffix" class="dynopt-suffix">N</span><span class="meldung" id="nennkraefte_n_meldung"></span></span></div> <div class="labelinputpaar" id="option_kCntnr">  <label for="option_k" class="paar-label">Option K changed nominal force</label> <span class="input-container"><select id="option_k" name="option_k" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_kSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="stdleitung_artCntnr">  <label for="stdleitung_art" class="paar-label">Standard cable type</label> <span class="input-container"><select id="stdleitung_art" name="stdleitung_art" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="stdleitung_artSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="stdleitung_mCntnr">  <label for="stdleitung_m" class="paar-label">Standard cable in m</label> <span class="input-container"><select id="stdleitung_m" name="stdleitung_m" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="stdleitung_mSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="stdanschlussCntnr">  <label for="stdanschluss" class="paar-label">Standard connection</label> <span class="input-container"><select id="stdanschluss" name="stdanschluss" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="stdanschlussSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="anschlussvarianteCntnr">  <label for="anschlussvariante" class="paar-label">Connection</label> <span class="input-container"><select id="anschlussvariante" name="anschlussvariante" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="anschlussvarianteSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_rCntnr">  <label for="option_r" class="paar-label">Option R Radial outlet</label> <span class="input-container"><select id="option_r" name="option_r" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_rSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_yCntnr">  <label for="option_y" class="paar-label">Option Y changed cable</label> <span class="input-container"><select id="option_y" name="option_y" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_ySuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_uCntnr">  <label for="option_u" class="paar-label">Option U Protection hose</label> <span class="input-container"><select id="option_u" name="option_u" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_uSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_wCntnr">  <label for="option_w" class="paar-label">Option W changed cable length</label> <span class="input-container"><select id="option_w" name="option_w" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_wSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_dCntnr">  <label for="option_d" class="paar-label">Option D redundant design</label> <span class="input-container"><select id="option_d" name="option_d" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_dSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_eCntnr">  <label for="option_e" class="paar-label">Option E  for the use under flatness control rolls</label> <span class="input-container"><select id="option_e" name="option_e" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_eSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_gCntnr">  <label for="option_g" class="paar-label">Option G increased accuracy</label> <span class="input-container"><select id="option_g" name="option_g" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_gSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_hCntnr">  <label for="option_h" class="paar-label">Option H increased temperature</label> <span class="input-container"><select id="option_h" name="option_h" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_hSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_jCntnr">  <label for="option_j" class="paar-label">Option J silicon free</label> <span class="input-container"><select id="option_j" name="option_j" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_jSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_lCntnr">  <label for="option_l" class="paar-label">Option L lubrication nipple</label> <span class="input-container"><select id="option_l" name="option_l" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_lSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_mCntnr">  <label for="option_m" class="paar-label">Option M minus temperature on request</label> <span class="input-container"><select id="option_m" name="option_m" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_mSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_pCntnr">  <label for="option_p" class="paar-label">Option P lower protection class</label> <span class="input-container"><select id="option_p" name="option_p" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_pSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_qCntnr">  <label for="option_q" class="paar-label">Option Q increased protection class</label> <span class="input-container"><select id="option_q" name="option_q" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_qSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_vCntnr">  <label for="option_v" class="paar-label">Option V for the use in vacuum</label> <span class="input-container"><select id="option_v" name="option_v" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_vSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_fCntnr">  <label for="option_f" class="paar-label">Option F explosion proof</label> <span class="input-container"><select id="option_f" name="option_f" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_fSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_xCntnr">  <label for="option_x" class="paar-label">Option X special dimensions</label> <span class="input-container"><select id="option_x" name="option_x" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_xSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_ucCntnr">  <label for="option_uc" class="paar-label">Option UC</label> <span class="input-container"><select id="option_uc" name="option_uc" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_ucSuffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="option_zCntnr">  <label for="option_z" class="paar-label">Option Z acessories</label> <span class="input-container"><select id="option_z" name="option_z" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="option_zSuffix" class="dynopt-suffix"></span> </span></div> <h2 class="optionheadline" id="zusatz1Headline">Do you need a suitable measuring amplifier?</h2> <div class="labelinputpaar" id="zusatz1Cntnr">  <label for="zusatz1" class="paar-label">Signal output</label> <span class="input-container"><select id="zusatz1" name="zusatz1" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz1Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz2Cntnr">  <label for="zusatz2" class="paar-label">Measuring amplifier case</label> <span class="input-container"><select id="zusatz2" name="zusatz2" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz2Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz3Cntnr">  <label for="zusatz3" class="paar-label">Design</label> <span class="input-container"><select id="zusatz3" name="zusatz3" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz3Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz4Cntnr">  <label for="zusatz4" class="paar-label">Plug and measuring direction (see product description)</label> <span class="input-container"><select id="zusatz4" name="zusatz4" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz4Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz5Cntnr">  <label for="zusatz5" class="paar-label">Mounting</label> <span class="input-container"><select id="zusatz5" name="zusatz5" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz5Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz6Cntnr">  <label for="zusatz6" class="paar-label">Additional option 6</label> <span class="input-container"><select id="zusatz6" name="zusatz6" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz6Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz7Cntnr">  <label for="zusatz7" class="paar-label">Additional option 7</label> <span class="input-container"><select id="zusatz7" name="zusatz7" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz7Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz8Cntnr">  <label for="zusatz8" class="paar-label">Additional option 8</label> <span class="input-container"><select id="zusatz8" name="zusatz8" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz8Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz9Cntnr">  <label for="zusatz9" class="paar-label">Additional option 9</label> <span class="input-container"><select id="zusatz9" name="zusatz9" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz9Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz10Cntnr">  <label for="zusatz10" class="paar-label">Additional option 10</label> <span class="input-container"><select id="zusatz10" name="zusatz10" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz10Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz11Cntnr">  <label for="zusatz11" class="paar-label">Additional option 11</label> <span class="input-container"><select id="zusatz11" name="zusatz11" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz11Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz12Cntnr">  <label for="zusatz12" class="paar-label">Additional option 12</label> <span class="input-container"><select id="zusatz12" name="zusatz12" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz12Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz13Cntnr">  <label for="zusatz13" class="paar-label">Additional option 13</label> <span class="input-container"><select id="zusatz13" name="zusatz13" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz13Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz14Cntnr">  <label for="zusatz14" class="paar-label">Additional option 14</label> <span class="input-container"><select id="zusatz14" name="zusatz14" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz14Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz15Cntnr">  <label for="zusatz15" class="paar-label">Additional option 15</label> <span class="input-container"><select id="zusatz15" name="zusatz15" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz15Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz16Cntnr">  <label for="zusatz16" class="paar-label">Additional option 16</label> <span class="input-container"><select id="zusatz16" name="zusatz16" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz16Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz17Cntnr">  <label for="zusatz17" class="paar-label">Additional option 17</label> <span class="input-container"><select id="zusatz17" name="zusatz17" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz17Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz18Cntnr">  <label for="zusatz18" class="paar-label">Additional option 18</label> <span class="input-container"><select id="zusatz18" name="zusatz18" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz18Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz19Cntnr">  <label for="zusatz19" class="paar-label">Additional option 19</label> <span class="input-container"><select id="zusatz19" name="zusatz19" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz19Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="zusatz20Cntnr">  <label for="zusatz20" class="paar-label">Additional option 20</label> <span class="input-container"><select id="zusatz20" name="zusatz20" class="eingabefeld" onchange="window.syncSensordaten(this.value,this.id,null);"></select><span id="zusatz20Suffix" class="dynopt-suffix"></span> </span></div> <div class="labelinputpaar" id="blockausrichtung-cntnr"><label class="paar-label">Block alignment</label> <span class="input-container"><span class="radiobtncontainer" id="blockausrichtung" name="blockausrichtung"><span class="radiobtnrow" id="auslegung__blockausrichtung__ohne_container"><input class="eingabefeld-blockausrichtung" disabled="" readonly="" checked="" type="radio" value="ohne" name="blockausrichtung" id="auslegung__blockausrichtung__ohne"></input><label for="auslegung__blockausrichtung__ohne"><html><head></head><body>None</body></html></label></span><span class="radiobtnrow" id="auslegung__blockausrichtung__un_container"><input class="eingabefeld-blockausrichtung" disabled="" readonly="" type="radio" value="un" name="blockausrichtung" id="auslegung__blockausrichtung__un"></input><label for="auslegung__blockausrichtung__un"><img src="https://haehne-configurator.de/img/unten.svg"></img><html><head></head><body>Bottom</body></html></label></span><span class="radiobtnrow" id="auslegung__blockausrichtung__li_container"><input class="eingabefeld-blockausrichtung" disabled="" readonly="" type="radio" value="li" name="blockausrichtung" id="auslegung__blockausrichtung__li"></input><label for="auslegung__blockausrichtung__li"><img src="https://haehne-configurator.de/img/links.svg"></img><html><head></head><body>Left</body></html></label></span><span class="radiobtnrow" id="auslegung__blockausrichtung__ob_container"><input class="eingabefeld-blockausrichtung" disabled="" readonly="" type="radio" value="ob" name="blockausrichtung" id="auslegung__blockausrichtung__ob"></input><label for="auslegung__blockausrichtung__ob"><img src="https://haehne-configurator.de/img/oben.svg"></img><html><head></head><body>Top</body></html></label></span><span class="radiobtnrow" id="auslegung__blockausrichtung__re_container"><input class="eingabefeld-blockausrichtung" disabled="" readonly="" type="radio" value="re" name="blockausrichtung" id="auslegung__blockausrichtung__re"></input><label for="auslegung__blockausrichtung__re"><img src="https://haehne-configurator.de/img/rechts.svg"></img><html><head></head><body>Right</body></html></label></span></span><script> document.getElementById(\'blockausrichtung\').GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue; blockausrichtung"); let value=null; let radioinput=null; radioinput=document.getElementById(\'auslegung__blockausrichtung__ohne\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__blockausrichtung__un\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__blockausrichtung__li\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__blockausrichtung__ob\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__blockausrichtung__re\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; console.log("GetTechnicalUrlValue "+value); return value; } ;let elmtAuslegung__blockausrichtung__ohne=document.getElementById(\'auslegung__blockausrichtung__ohne\'); if(elmtAuslegung__blockausrichtung__ohne!=null){elmtAuslegung__blockausrichtung__ohne.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__blockausrichtung__un=document.getElementById(\'auslegung__blockausrichtung__un\'); if(elmtAuslegung__blockausrichtung__un!=null){elmtAuslegung__blockausrichtung__un.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__blockausrichtung__li=document.getElementById(\'auslegung__blockausrichtung__li\'); if(elmtAuslegung__blockausrichtung__li!=null){elmtAuslegung__blockausrichtung__li.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__blockausrichtung__ob=document.getElementById(\'auslegung__blockausrichtung__ob\'); if(elmtAuslegung__blockausrichtung__ob!=null){elmtAuslegung__blockausrichtung__ob.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__blockausrichtung__re=document.getElementById(\'auslegung__blockausrichtung__re\'); if(elmtAuslegung__blockausrichtung__re!=null){elmtAuslegung__blockausrichtung__re.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}</script></span> </div> <div class="labelinputpaar" id="blockposition-cntnr"> <label class="paar-label">Pillow block mounting position</label> <span class="input-container"><span class="radiobtncontainer" id="blockposition" name="blockposition"><span class="radiobtnrow"><input class="eingabefeld" checked="" type="radio" value="ohne" name="blockposition" id="auslegung__blockposition__ohne"></input><label for="auslegung__blockposition__ohne"><html><head></head><body>None</body></html></label></span><span class="radiobtnrow"><input class="eingabefeld" type="radio" value="un" name="blockposition" id="auslegung__blockposition__un"></input><label for="auslegung__blockposition__un"><img src="https://haehne-configurator.de/img/unten.svg"></img><html><head></head><body>Bottom</body></html></label></span><span class="radiobtnrow"><input class="eingabefeld" type="radio" value="li" name="blockposition" id="auslegung__blockposition__li"></input><label for="auslegung__blockposition__li"><img src="https://haehne-configurator.de/img/links.svg"></img><html><head></head><body>Left</body></html></label></span><span class="radiobtnrow"><input class="eingabefeld" type="radio" value="ob" name="blockposition" id="auslegung__blockposition__ob"></input><label for="auslegung__blockposition__ob"><img src="https://haehne-configurator.de/img/oben.svg"></img><html><head></head><body>Top</body></html></label></span><span class="radiobtnrow"><input class="eingabefeld" type="radio" value="re" name="blockposition" id="auslegung__blockposition__re"></input><label for="auslegung__blockposition__re"><img src="https://haehne-configurator.de/img/rechts.svg"></img><html><head></head><body>Right</body></html></label></span><span class="radiobtnrow"><input class="eingabefeld" type="radio" value="frei" name="blockposition" id="auslegung__blockposition__frei"></input><label for="auslegung__blockposition__frei"><html><head></head><body>Individual angle input</body></html></label></span></span><script> document.getElementById(\'blockposition\').GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue; blockposition"); let value=null; let radioinput=null; radioinput=document.getElementById(\'auslegung__blockposition__ohne\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__blockposition__un\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__blockposition__li\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__blockposition__ob\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__blockposition__re\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__blockposition__frei\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; console.log("GetTechnicalUrlValue "+value); return value; } ;let elmtAuslegung__blockposition__ohne=document.getElementById(\'auslegung__blockposition__ohne\'); if(elmtAuslegung__blockposition__ohne!=null){elmtAuslegung__blockposition__ohne.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__blockposition__un=document.getElementById(\'auslegung__blockposition__un\'); if(elmtAuslegung__blockposition__un!=null){elmtAuslegung__blockposition__un.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__blockposition__li=document.getElementById(\'auslegung__blockposition__li\'); if(elmtAuslegung__blockposition__li!=null){elmtAuslegung__blockposition__li.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__blockposition__ob=document.getElementById(\'auslegung__blockposition__ob\'); if(elmtAuslegung__blockposition__ob!=null){elmtAuslegung__blockposition__ob.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__blockposition__re=document.getElementById(\'auslegung__blockposition__re\'); if(elmtAuslegung__blockposition__re!=null){elmtAuslegung__blockposition__re.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}let elmtAuslegung__blockposition__frei=document.getElementById(\'auslegung__blockposition__frei\'); if(elmtAuslegung__blockposition__frei!=null){elmtAuslegung__blockposition__frei.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});}</script></span> </div> <div class="labelinputpaar" id="blockwinkel-cntnr"> <label class="paar-label">Pillow block mounting position</label> <span class="input-container"><script> function blockwinkelFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabblockwinkellastNumValue", event.currentTarget.value); } function blockwinkelFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabblockwinkelFocusMouseDown",true); } } function blockwinkelSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabblockwinkelFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabblockwinkelFocusMouseDown",false); } function blockwinkelFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { blockwinkelSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabblockwinkellastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabblockwinkelHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabblockwinkelHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabblockwinkellastNumValue"); blockwinkelSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabblockwinkelHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabblockwinkellastNumValue\', newNumericValue); blockwinkelSelectAtFocus(isFocusEvent,event); } </script><input name="blockwinkel" class="eingabefeld feldmiteinheit zahlenfeld" id="blockwinkel" value="0" type="text"></input><script> let blockwinkelF=document.getElementById(\'blockwinkel\'); console.log("registriere"); blockwinkelF.addEventListener(\'mousedown\',blockwinkelFabMousedownNumericValue);blockwinkelF.addEventListener(\'input\',blockwinkelFabPrettyPrintNumericValue);blockwinkelF.addEventListener(\'change\',blockwinkelFabNormalizeNumericValue);blockwinkelF.addEventListener(\'focus\',blockwinkelFabNormalizeNumericValue);blockwinkelF.addEventListener(\'focus\',blockwinkelFabPrettyPrintNumericValue);blockwinkelF.addEventListener(\'blur\',blockwinkelFabPrettyPrintNumericValue,false);;blockwinkelF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=blockwinkelF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function blockwinkelForwardChange(event){ console.log("Funktion bei Änderung: window.recalcValues"); let newvalue=blockwinkelF.GetTechnicalUrlValue(); window.recalcValues(newvalue,blockwinkelF.id,event); } blockwinkelF.addEventListener(\'change\',blockwinkelForwardChange);</script><span class="einheit">°</span></span> </div> </div> <div class="labelinputpaar unsichtbar" id="expertenmodusCntnr"> <label for="expertenmodus" class="paar-label">Expert mode</label> <span class="input-container"><input type="checkbox" name="expertenmodus" class="eingabefeld" id="expertenmodus"></input><script> let expertenmodusF=document.getElementById(\'expertenmodus\'); function expertenmodusForwardChange(event){ console.log("Funktion bei Änderung: window.recalcValues"); let newvalue=expertenmodusF.value; window.recalcValues(newvalue,expertenmodusF.id,event); } expertenmodusF.addEventListener(\'change\',expertenmodusForwardChange);</script><span class="einheit"></span></span> </div> <script>{/*Expertenmodus ist nur für bestimmte URL sichtbar*/ let urlsearchparamsForExpertMode=new URLSearchParams(document.location.search); let expertenmodus=urlsearchparamsForExpertMode.get(\'expertenmodus\'); if(expertenmodus==\'true\'){document.getElementById(\'expertenmodusCntnr\').classList.remove(\'unsichtbar\');} } </script> <div class="labelinputpaar unsichtbar" id="sondernennkraftCntnr"> <label for="sondernennkraft" class="paar-label">Differing nominal force of sensor</label> <span class="input-container"><script> function sondernennkraftFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabsondernennkraftlastNumValue", event.currentTarget.value); } function sondernennkraftFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabsondernennkraftFocusMouseDown",true); } } function sondernennkraftSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabsondernennkraftFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabsondernennkraftFocusMouseDown",false); } function sondernennkraftFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { sondernennkraftSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabsondernennkraftlastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabsondernennkraftHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabsondernennkraftHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabsondernennkraftlastNumValue"); sondernennkraftSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking 0.01 < \' + newInputAsNumber + \' < 9999999.99\');if(newInputAsNumber<0.01){ console.log(newInputAsNumber+\' is < 0.01\'); if (isBlurEvent) { inputElement.value = \'0.01\'; sondernennkraftSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } } if(newInputAsNumber>9999999.99){ console.log(newInputAsNumber+\' is > 9999999.99\'); if (isBlurEvent) { inputElement.value = \'9999999.99\'; sondernennkraftSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabsondernennkraftlastNumValue"); sondernennkraftSelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabsondernennkraftHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + \',\'; if (cursorPositionBeforeThousands>indexOfThousandsSeparator) { newCursorPosition++; } integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabsondernennkraftlastNumValue\', newNumericValue); sondernennkraftSelectAtFocus(isFocusEvent,event); } </script><input name="sondernennkraft" class="eingabefeld feldmiteinheit zahlenfeld" id="sondernennkraft" value="100" type="text"></input><script> let sondernennkraftF=document.getElementById(\'sondernennkraft\'); console.log("registriere"); sondernennkraftF.addEventListener(\'mousedown\',sondernennkraftFabMousedownNumericValue);sondernennkraftF.addEventListener(\'input\',sondernennkraftFabPrettyPrintNumericValue);sondernennkraftF.addEventListener(\'change\',sondernennkraftFabNormalizeNumericValue);sondernennkraftF.addEventListener(\'focus\',sondernennkraftFabNormalizeNumericValue);sondernennkraftF.addEventListener(\'focus\',sondernennkraftFabPrettyPrintNumericValue);sondernennkraftF.addEventListener(\'blur\',sondernennkraftFabPrettyPrintNumericValue,false);;sondernennkraftF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=sondernennkraftF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function sondernennkraftForwardChange(event){ console.log("Funktion bei Änderung: window.recalcValues"); let newvalue=sondernennkraftF.GetTechnicalUrlValue(); window.recalcValues(newvalue,sondernennkraftF.id,event); } sondernennkraftF.addEventListener(\'change\',sondernennkraftForwardChange);</script><span class="einheit">N</span> <span class="meldung" id="sondernennkraft_meldung"></span></span> </div> <div style="display:none;"> <textarea name="sensorattributecsv" id="sensorattributecsv" maxlength="4000"></textarea><script> let sensorattributecsvF=document.getElementById(\'sensorattributecsv\'); </script> </div> <div class="" style="margin-top:1rem;"> <label for="bemerkung" class="paar-label">Note</label> </div> <div class="" style="width:100%"> <textarea name="bemerkung" class="eingabefeld text_xl" id="bemerkung" maxlength="2000"></textarea><script> let bemerkungF=document.getElementById(\'bemerkung\'); </script> </div> <div class="vorzurueckzeile"> <span class="tab-button-weiter" id="fabTabLayout1777530690267" onclick="fabTabLayoutnullOpenTabSheets([\'tab-sensortyp\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });document.fabAfterTabChange();">Back to Sensor Type</span> <span class="tab-button-weiter" id="fabTabLayout1777530690268" onclick="fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: &quot;smooth&quot;, block: &quot;start&quot;, inline: &quot;nearest&quot; });document.fabAfterTabChange();">Continue to Contact</span> </div> </div> <div style="flex-basis:100px;flex-grow: 0;flex-shrink: 1;"> <div style="margin-top: 0.625em;line-height:1.5;">&#xa0; </div> <div style="line-height:1.5;">&#xa0; </div> <div class="" style="margin-top:5px;"> <label class="paar-label">Load</label> </div> <div class=""> <canvas id="saeulendiagramm" style="width:100px;height:600px;border-style:solid;border-color:#066aaf;border-width:1px;"></canvas> </div> <script type="module" src="https://haehne-configurator.de/script/saeulenzeichner.js"> </script> </div> </div> </div> <div class="block2"> <div style="display:flex;margin-top:0.625em;width:100%;flex-flow:row;"> <div class="kraftzelle" style="flex:1 1 10em;"><label for="projektname" class="paar-label">Project name</label></div> <div class="kraftzelle" style="flex:1 1 30em;"><span class="input-container"><input type="text" name="projektname" class="eingabefeld" id="projektname" maxlength="204"></input><script> let projektnameF=document.getElementById(\'projektname\'); </script></span></div> <div class="kraftzelle" style="flex:1 1 10em;padding-left:1em;"><label for="messstelle" class="paar-label">Measuring point</label></div> <div class="kraftzelle" style="flex:1 1 30em;"><span class="input-container"><input type="text" name="messstelle" class="eingabefeld" id="messstelle" maxlength="204"></input><script> let messstelleF=document.getElementById(\'messstelle\'); </script></span></div> </div> <div style="display:block;"> <div class="kraftzelle"><label class="paar-label">Type identifier</label></div> <div class="kraftzelle"><span class="input-container"><span id="typbezeichneroutput"></span><input type="text" name="typbezeichner" class="ausgabefeld fabhidden" id="typbezeichner" maxlength="204" disabled="" readonly=""></input><script> let typbezeichnerF=document.getElementById(\'typbezeichner\'); </script></span></div> </div> <div class="" style="display:flex;justify-content:space-between;padding-top:0.5em;"> <label class="bild-label"> </label> <span> <script>window.toggleWinkelsystem = () => { if (window.switchAngles===undefined){ /* JS-Modul ist noch nicht geladen -> probiere es gleich nochmal.*/ setTimeout(window.toggleWinkelsystem,500); }else { window.switchAngles(); } } </script> <input type="checkbox" name="alternativeswinkelsystem" class="eingabefeld" id="alternativeswinkelsystem"></input><script> let alternativeswinkelsystemF=document.getElementById(\'alternativeswinkelsystem\'); function alternativeswinkelsystemForwardChange(event){ console.log("Funktion bei Änderung: window.toggleWinkelsystem"); let newvalue=alternativeswinkelsystemF.value; window.toggleWinkelsystem(newvalue,alternativeswinkelsystemF.id,event); } alternativeswinkelsystemF.addEventListener(\'change\',alternativeswinkelsystemForwardChange);</script> <label for="alternativeswinkelsystem">Alternate angle presentation</label> </span> </div> <div id="bildcontainer" class="" style="position:relative;"> <script>window.winkel1cnvschanged = (value, sourceElementId, event) => { let separatorChar = \',\'; if (typeof fabLocaleData !== \'undefined\') { separatorChar = fabLocaleData.decimalseparator; } if(value!=null) { value=value.replace(\'.\',separatorChar); } document.getElementById(\'winkel1\').value=value; window.recalcValues(value, sourceElementId, event); }; window.winkel2cnvschanged = (value, sourceElementId, event) => { let separatorChar = \',\'; if (typeof fabLocaleData !== \'undefined\') { separatorChar = fabLocaleData.decimalseparator; } if(value!=null) { value=value.replace(\'.\',separatorChar); } document.getElementById(\'winkel2\').value=value; window.recalcValues(value, sourceElementId, event); }; window.winkel1alternativcnvschanged = (value, sourceElementId, event) => { let separatorChar = \',\'; if (typeof fabLocaleData !== \'undefined\') { separatorChar = fabLocaleData.decimalseparator; } if(value!=null) { value=value.replace(\'.\',separatorChar); } document.getElementById(\'winkel1\').value=window.asHaehneWinkel1(parseFloat(value),true); window.recalcValues(value, sourceElementId, event); }; window.winkel2alternativcnvschanged = (value, sourceElementId, event) => { let separatorChar = \',\'; if (typeof fabLocaleData !== \'undefined\') { separatorChar = fabLocaleData.decimalseparator; } if(value!=null) { value=value.replace(\'.\',separatorChar); } document.getElementById(\'winkel2\').value=window.asHaehneWinkel2(parseFloat(value),true); window.recalcValues(value, sourceElementId, event); }; window.winkel4cnvschanged = (value, sourceElementId, event) => { let separatorChar = \',\'; if (typeof fabLocaleData !== \'undefined\') { separatorChar = fabLocaleData.decimalseparator; } if(value!=null) { value=value.replace(\'.\',separatorChar); } document.getElementById(\'messrichtung_winkel\').value=value; window.recalcValues(value, \'messrichtung_winkel\', event); }; </script> <span id="winkel1cnvs-cntnr"><script> function winkel1cnvsFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwinkel1cnvslastNumValue", event.currentTarget.value); } function winkel1cnvsFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwinkel1cnvsFocusMouseDown",true); } } function winkel1cnvsSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwinkel1cnvsFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwinkel1cnvsFocusMouseDown",false); } function winkel1cnvsFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { winkel1cnvsSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwinkel1cnvslastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwinkel1cnvsHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwinkel1cnvsHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwinkel1cnvslastNumValue"); winkel1cnvsSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking -36000 < \' + newInputAsNumber + \' < 36000\');if(newInputAsNumber<-36000){ console.log(newInputAsNumber+\' is < -36000\'); if (isBlurEvent) { inputElement.value = \'-36000\'; winkel1cnvsSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel1cnvslastNumValue"); winkel1cnvsSelectAtFocus(isFocusEvent,event); return; } } if(newInputAsNumber>36000){ console.log(newInputAsNumber+\' is > 36000\'); if (isBlurEvent) { inputElement.value = \'36000\'; winkel1cnvsSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel1cnvslastNumValue"); winkel1cnvsSelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwinkel1cnvsHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwinkel1cnvslastNumValue\', newNumericValue); winkel1cnvsSelectAtFocus(isFocusEvent,event); } </script><input name="winkel1cnvs" id="winkel1cnvs" value="0" type="text"></input><script> let winkel1cnvsF=document.getElementById(\'winkel1cnvs\'); console.log("registriere"); winkel1cnvsF.addEventListener(\'mousedown\',winkel1cnvsFabMousedownNumericValue);winkel1cnvsF.addEventListener(\'input\',winkel1cnvsFabPrettyPrintNumericValue);winkel1cnvsF.addEventListener(\'change\',winkel1cnvsFabNormalizeNumericValue);winkel1cnvsF.addEventListener(\'focus\',winkel1cnvsFabNormalizeNumericValue);winkel1cnvsF.addEventListener(\'focus\',winkel1cnvsFabPrettyPrintNumericValue);winkel1cnvsF.addEventListener(\'blur\',winkel1cnvsFabPrettyPrintNumericValue,false);;winkel1cnvsF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=winkel1cnvsF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function winkel1cnvsForwardChange(event){ console.log("Funktion bei Änderung: window.winkel1cnvschanged"); let newvalue=winkel1cnvsF.GetTechnicalUrlValue(); window.winkel1cnvschanged(newvalue,winkel1cnvsF.id,event); } winkel1cnvsF.addEventListener(\'change\',winkel1cnvsForwardChange);</script><span class="cnvs-einheit">°</span></span> <span id="winkel2cnvs-cntnr"><script> function winkel2cnvsFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwinkel2cnvslastNumValue", event.currentTarget.value); } function winkel2cnvsFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwinkel2cnvsFocusMouseDown",true); } } function winkel2cnvsSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwinkel2cnvsFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwinkel2cnvsFocusMouseDown",false); } function winkel2cnvsFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { winkel2cnvsSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwinkel2cnvslastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwinkel2cnvsHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwinkel2cnvsHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwinkel2cnvslastNumValue"); winkel2cnvsSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking -36000 < \' + newInputAsNumber + \' < 36000\');if(newInputAsNumber<-36000){ console.log(newInputAsNumber+\' is < -36000\'); if (isBlurEvent) { inputElement.value = \'-36000\'; winkel2cnvsSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel2cnvslastNumValue"); winkel2cnvsSelectAtFocus(isFocusEvent,event); return; } } if(newInputAsNumber>36000){ console.log(newInputAsNumber+\' is > 36000\'); if (isBlurEvent) { inputElement.value = \'36000\'; winkel2cnvsSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel2cnvslastNumValue"); winkel2cnvsSelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwinkel2cnvsHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwinkel2cnvslastNumValue\', newNumericValue); winkel2cnvsSelectAtFocus(isFocusEvent,event); } </script><input name="winkel2cnvs" id="winkel2cnvs" value="0" type="text"></input><script> let winkel2cnvsF=document.getElementById(\'winkel2cnvs\'); console.log("registriere"); winkel2cnvsF.addEventListener(\'mousedown\',winkel2cnvsFabMousedownNumericValue);winkel2cnvsF.addEventListener(\'input\',winkel2cnvsFabPrettyPrintNumericValue);winkel2cnvsF.addEventListener(\'change\',winkel2cnvsFabNormalizeNumericValue);winkel2cnvsF.addEventListener(\'focus\',winkel2cnvsFabNormalizeNumericValue);winkel2cnvsF.addEventListener(\'focus\',winkel2cnvsFabPrettyPrintNumericValue);winkel2cnvsF.addEventListener(\'blur\',winkel2cnvsFabPrettyPrintNumericValue,false);;winkel2cnvsF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=winkel2cnvsF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function winkel2cnvsForwardChange(event){ console.log("Funktion bei Änderung: window.winkel2cnvschanged"); let newvalue=winkel2cnvsF.GetTechnicalUrlValue(); window.winkel2cnvschanged(newvalue,winkel2cnvsF.id,event); } winkel2cnvsF.addEventListener(\'change\',winkel2cnvsForwardChange);</script><span class="cnvs-einheit">°</span></span> <span id="winkel1alternativcnvs-cntnr"><script> function winkel1alternativcnvsFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwinkel1alternativcnvslastNumValue", event.currentTarget.value); } function winkel1alternativcnvsFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwinkel1alternativcnvsFocusMouseDown",true); } } function winkel1alternativcnvsSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwinkel1alternativcnvsFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwinkel1alternativcnvsFocusMouseDown",false); } function winkel1alternativcnvsFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { winkel1alternativcnvsSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwinkel1alternativcnvslastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwinkel1alternativcnvsHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwinkel1alternativcnvsHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwinkel1alternativcnvslastNumValue"); winkel1alternativcnvsSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking -36000 < \' + newInputAsNumber + \' < 36000\');if(newInputAsNumber<-36000){ console.log(newInputAsNumber+\' is < -36000\'); if (isBlurEvent) { inputElement.value = \'-36000\'; winkel1alternativcnvsSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel1alternativcnvslastNumValue"); winkel1alternativcnvsSelectAtFocus(isFocusEvent,event); return; } } if(newInputAsNumber>36000){ console.log(newInputAsNumber+\' is > 36000\'); if (isBlurEvent) { inputElement.value = \'36000\'; winkel1alternativcnvsSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel1alternativcnvslastNumValue"); winkel1alternativcnvsSelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwinkel1alternativcnvsHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwinkel1alternativcnvslastNumValue\', newNumericValue); winkel1alternativcnvsSelectAtFocus(isFocusEvent,event); } </script><input name="winkel1alternativcnvs" id="winkel1alternativcnvs" value="0" type="text"></input><script> let winkel1alternativcnvsF=document.getElementById(\'winkel1alternativcnvs\'); console.log("registriere"); winkel1alternativcnvsF.addEventListener(\'mousedown\',winkel1alternativcnvsFabMousedownNumericValue);winkel1alternativcnvsF.addEventListener(\'input\',winkel1alternativcnvsFabPrettyPrintNumericValue);winkel1alternativcnvsF.addEventListener(\'change\',winkel1alternativcnvsFabNormalizeNumericValue);winkel1alternativcnvsF.addEventListener(\'focus\',winkel1alternativcnvsFabNormalizeNumericValue);winkel1alternativcnvsF.addEventListener(\'focus\',winkel1alternativcnvsFabPrettyPrintNumericValue);winkel1alternativcnvsF.addEventListener(\'blur\',winkel1alternativcnvsFabPrettyPrintNumericValue,false);;winkel1alternativcnvsF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=winkel1alternativcnvsF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function winkel1alternativcnvsForwardChange(event){ console.log("Funktion bei Änderung: window.winkel1alternativcnvschanged"); let newvalue=winkel1alternativcnvsF.GetTechnicalUrlValue(); window.winkel1alternativcnvschanged(newvalue,winkel1alternativcnvsF.id,event); } winkel1alternativcnvsF.addEventListener(\'change\',winkel1alternativcnvsForwardChange);</script><span class="cnvs-einheit">°</span></span> <span id="winkel2alternativcnvs-cntnr"><script> function winkel2alternativcnvsFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwinkel2alternativcnvslastNumValue", event.currentTarget.value); } function winkel2alternativcnvsFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwinkel2alternativcnvsFocusMouseDown",true); } } function winkel2alternativcnvsSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwinkel2alternativcnvsFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwinkel2alternativcnvsFocusMouseDown",false); } function winkel2alternativcnvsFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { winkel2alternativcnvsSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwinkel2alternativcnvslastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwinkel2alternativcnvsHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwinkel2alternativcnvsHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwinkel2alternativcnvslastNumValue"); winkel2alternativcnvsSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking -36000 < \' + newInputAsNumber + \' < 36000\');if(newInputAsNumber<-36000){ console.log(newInputAsNumber+\' is < -36000\'); if (isBlurEvent) { inputElement.value = \'-36000\'; winkel2alternativcnvsSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel2alternativcnvslastNumValue"); winkel2alternativcnvsSelectAtFocus(isFocusEvent,event); return; } } if(newInputAsNumber>36000){ console.log(newInputAsNumber+\' is > 36000\'); if (isBlurEvent) { inputElement.value = \'36000\'; winkel2alternativcnvsSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel2alternativcnvslastNumValue"); winkel2alternativcnvsSelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwinkel2alternativcnvsHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwinkel2alternativcnvslastNumValue\', newNumericValue); winkel2alternativcnvsSelectAtFocus(isFocusEvent,event); } </script><input name="winkel2alternativcnvs" id="winkel2alternativcnvs" value="0" type="text"></input><script> let winkel2alternativcnvsF=document.getElementById(\'winkel2alternativcnvs\'); console.log("registriere"); winkel2alternativcnvsF.addEventListener(\'mousedown\',winkel2alternativcnvsFabMousedownNumericValue);winkel2alternativcnvsF.addEventListener(\'input\',winkel2alternativcnvsFabPrettyPrintNumericValue);winkel2alternativcnvsF.addEventListener(\'change\',winkel2alternativcnvsFabNormalizeNumericValue);winkel2alternativcnvsF.addEventListener(\'focus\',winkel2alternativcnvsFabNormalizeNumericValue);winkel2alternativcnvsF.addEventListener(\'focus\',winkel2alternativcnvsFabPrettyPrintNumericValue);winkel2alternativcnvsF.addEventListener(\'blur\',winkel2alternativcnvsFabPrettyPrintNumericValue,false);;winkel2alternativcnvsF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=winkel2alternativcnvsF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function winkel2alternativcnvsForwardChange(event){ console.log("Funktion bei Änderung: window.winkel2alternativcnvschanged"); let newvalue=winkel2alternativcnvsF.GetTechnicalUrlValue(); window.winkel2alternativcnvschanged(newvalue,winkel2alternativcnvsF.id,event); } winkel2alternativcnvsF.addEventListener(\'change\',winkel2alternativcnvsForwardChange);</script><span class="cnvs-einheit">°</span></span> <span id="winkel4cnvs-cntnr"><script> function winkel4cnvsFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabwinkel4cnvslastNumValue", event.currentTarget.value); } function winkel4cnvsFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabwinkel4cnvsFocusMouseDown",true); } } function winkel4cnvsSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabwinkel4cnvsFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabwinkel4cnvsFocusMouseDown",false); } function winkel4cnvsFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { winkel4cnvsSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabwinkel4cnvslastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabwinkel4cnvsHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabwinkel4cnvsHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabwinkel4cnvslastNumValue"); winkel4cnvsSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking -36000 < \' + newInputAsNumber + \' < 36000\');if(newInputAsNumber<-36000){ console.log(newInputAsNumber+\' is < -36000\'); if (isBlurEvent) { inputElement.value = \'-36000\'; winkel4cnvsSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel4cnvslastNumValue"); winkel4cnvsSelectAtFocus(isFocusEvent,event); return; } } if(newInputAsNumber>36000){ console.log(newInputAsNumber+\' is > 36000\'); if (isBlurEvent) { inputElement.value = \'36000\'; winkel4cnvsSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabwinkel4cnvslastNumValue"); winkel4cnvsSelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabwinkel4cnvsHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabwinkel4cnvslastNumValue\', newNumericValue); winkel4cnvsSelectAtFocus(isFocusEvent,event); } </script><input name="winkel4cnvs" id="winkel4cnvs" value="0" type="text"></input><script> let winkel4cnvsF=document.getElementById(\'winkel4cnvs\'); console.log("registriere"); winkel4cnvsF.addEventListener(\'mousedown\',winkel4cnvsFabMousedownNumericValue);winkel4cnvsF.addEventListener(\'input\',winkel4cnvsFabPrettyPrintNumericValue);winkel4cnvsF.addEventListener(\'change\',winkel4cnvsFabNormalizeNumericValue);winkel4cnvsF.addEventListener(\'focus\',winkel4cnvsFabNormalizeNumericValue);winkel4cnvsF.addEventListener(\'focus\',winkel4cnvsFabPrettyPrintNumericValue);winkel4cnvsF.addEventListener(\'blur\',winkel4cnvsFabPrettyPrintNumericValue,false);;winkel4cnvsF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=winkel4cnvsF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function winkel4cnvsForwardChange(event){ console.log("Funktion bei Änderung: window.winkel4cnvschanged"); let newvalue=winkel4cnvsF.GetTechnicalUrlValue(); window.winkel4cnvschanged(newvalue,winkel4cnvsF.id,event); } winkel4cnvsF.addEventListener(\'change\',winkel4cnvsForwardChange);</script><span class="cnvs-einheit">°</span></span> <div id="messrichtung-cntnr"> <label class="paar-label">Measuring direction</label> <div class="messrichtungwinkelblock"> <span class="input-container"><span class="radiobtncontainer" id="winkel3messrichtung" name="winkel3messrichtung"> <span style="display:block"> <input class="eingabefeld" type="radio" value="li" name="winkel3messrichtung" id="auslegung__winkel3messrichtung__li" /><label for="auslegung__winkel3messrichtung__li"><img src="img/links.svg" /></label> <input class="eingabefeld" type="radio" value="re" name="winkel3messrichtung" id="auslegung__winkel3messrichtung__re" /><label for="auslegung__winkel3messrichtung__re"><img src="img/rechts.svg" /></label> </span> <span style="display:block"> <input class="eingabefeld" type="radio" value="ob" name="winkel3messrichtung" id="auslegung__winkel3messrichtung__ob" /><label for="auslegung__winkel3messrichtung__ob"><img src="img/oben.svg" /></label> <span><input class="eingabefeld" type="radio" value="un" name="winkel3messrichtung" id="auslegung__winkel3messrichtung__un" /><label for="auslegung__winkel3messrichtung__un"><img src="img/unten.svg" /></label></span> </span> <span class="radiobtnrow"><input class="eingabefeld" checked="checked" type="radio" value="wiha" name="winkel3messrichtung" id="auslegung__winkel3messrichtung__wiha" /><label for="auslegung__winkel3messrichtung__wiha">Bisecting angle</label></span> <span class="radiobtnrow"><input class="eingabefeld" type="radio" value="frei" name="winkel3messrichtung" id="auslegung__winkel3messrichtung__frei" /><label for="auslegung__winkel3messrichtung__frei" style="margin-right:1em;"></label> <script> function messrichtung_winkelFabNormalizeNumericValue(event){ console.log("korrektur"); event.currentTarget.setAttribute("data-fabmessrichtung_winkellastNumValue", event.currentTarget.value); } function messrichtung_winkelFabMousedownNumericValue(event){ console.log("mousedown"); if(event.currentTarget!=document.activeElement){ event.currentTarget.setAttribute("data-fabmessrichtung_winkelFocusMouseDown",true); } } function messrichtung_winkelSelectAtFocus(isFocusEvent, event){ console.log("selectatfocus"); if (isFocusEvent && (event.currentTarget.getAttribute("data-fabmessrichtung_winkelFocusMouseDown")!=true||false)) {event.currentTarget.select();} event.currentTarget.setAttribute("data-fabmessrichtung_winkelFocusMouseDown",false); } function messrichtung_winkelFabPrettyPrintNumericValue(event){ const eventType = event==null?null:event.type; console.log("pretty print; "+eventType); const isInputEvent = eventType == \'input\'; const isBlurEvent = eventType == \'blur\'; const isFocusEvent = eventType == \'focus\'; const isInitialEvent = eventType == null; const inputElement = event.currentTarget; const originalInputValue = inputElement.value; if (originalInputValue==null || originalInputValue==\'\') { return; } if (isInitialEvent && (2==2) && (originalInputValue.length>=0)) { messrichtung_winkelSelectAtFocus(isFocusEvent, event); return; } const originalCursorPosition = inputElement.selectionStart; var newCursorPosition = originalCursorPosition; var originalInputValueWithExecutedDelete = originalInputValue; var userPressedDelete = event!=null && event.inputType=="deleteContentForward"; var userPressedBackspace = event!=null && event.inputType=="deleteContentBackward"; var intentionallyDeletedEverything = false; var lastvalue=inputElement.getAttribute(\'data-fabmessrichtung_winkellastNumValue\'); if(lastvalue==\'\'){lastvalue=null;}if ((userPressedDelete || userPressedBackspace) && lastvalue!=null) { if (lastvalue.length==originalInputValue.length+1) { var deletedCharacter = null; for (var i=0;i<originalInputValue.length;i++) { if(lastvalue.charAt(i)!=originalInputValue.charAt(i)) { deletedCharacter=lastvalue.charAt(i); break; } } if (deletedCharacter==null) { deletedCharacter=lastvalue.charAt(lastvalue.length-1); } if (deletedCharacter==\',\') { if (userPressedDelete) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition)+originalInputValueWithExecutedDelete.substring(newCursorPosition+1); } else if (userPressedBackspace) { originalInputValueWithExecutedDelete = originalInputValueWithExecutedDelete.substring(0,newCursorPosition-1)+originalInputValueWithExecutedDelete.substring(newCursorPosition); newCursorPosition--; } } if (deletedCharacter==\'.\' && /^0+$/.test(originalInputValueWithExecutedDelete)) { originalInputValueWithExecutedDelete = ""; intentionallyDeletedEverything = true; newCursorPosition = 0; } } } let isNegative = originalInputValueWithExecutedDelete.indexOf(\'-\')>=0; const originalInputValueLength = originalInputValueWithExecutedDelete.length; var newInputValue = ""; var decimalSeparatorIndex = null; for (var i = 0; i < originalInputValueLength; i++) { var character = originalInputValueWithExecutedDelete.charAt(i); if (character >= \'0\' && character <= \'9\') {   newInputValue = newInputValue + character; } else if (character==\'.\' && decimalSeparatorIndex==null) { 	newInputValue = newInputValue + character; 	decimalSeparatorIndex = i; } else { 	if (originalCursorPosition>i) { 		newCursorPosition--; 	} } } decimalSeparatorIndex = newInputValue.indexOf(\'.\'); var integerPart = (decimalSeparatorIndex>=0)?newInputValue.substring(0, decimalSeparatorIndex):newInputValue; var decimalPartWhenEditing = (decimalSeparatorIndex>=0)?newInputValue.substring(decimalSeparatorIndex+1):\'\'; let hiddenplaces=inputElement.getAttribute(\'data-fabmessrichtung_winkelHiddenDecPlaces\'); if(hiddenplaces==null){hiddenplaces=\'\';inputElement.setAttribute(\'data-fabmessrichtung_winkelHiddenDecPlaces\',hiddenplaces);} decimalPartWhenEditing = decimalPartWhenEditing + (isFocusEvent?hiddenplaces:""); while (integerPart.length<0) { 	integerPart = \'0\' + integerPart; 	newCursorPosition++; } while (integerPart.length>12) { if (integerPart.startsWith(\'0\')) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } else { inputElement.value = inputElement.getAttribute("data-fabmessrichtung_winkellastNumValue"); messrichtung_winkelSelectAtFocus(isFocusEvent,event); return; } } while (integerPart.charAt(0)==\'0\' && integerPart.length>1 && integerPart.length>0) { integerPart = integerPart.substring(1); if (newCursorPosition>0) { newCursorPosition--; } } let newInputAsNumber=parseFloat( (isNegative==true?\'-\':\'\') + integerPart + ( (decimalPartWhenEditing==null||decimalPartWhenEditing==\'\') ? \'\' : (\'.\'+decimalPartWhenEditing) ) ); console.log(\'Checking -36000 < \' + newInputAsNumber + \' < 36000\');if(newInputAsNumber<-36000){ console.log(newInputAsNumber+\' is < -36000\'); if (isBlurEvent) { inputElement.value = \'-36000\'; messrichtung_winkelSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabmessrichtung_winkellastNumValue"); messrichtung_winkelSelectAtFocus(isFocusEvent,event); return; } } if(newInputAsNumber>36000){ console.log(newInputAsNumber+\' is > 36000\'); if (isBlurEvent) { inputElement.value = \'36000\'; messrichtung_winkelSelectAtFocus(isFocusEvent,event); inputElement.dispatchEvent(new Event(\'change\')); return; } else{ inputElement.value = inputElement.getAttribute("data-fabmessrichtung_winkellastNumValue"); messrichtung_winkelSelectAtFocus(isFocusEvent,event); return; } } var numberOfDecimalsToKeepWhenEditing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); var numberOfDecimalsToKeepWhenShowing = Math.max(Math.min(2, decimalPartWhenEditing.length), 0); if (decimalPartWhenEditing.length>numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenEditing); } else if (intentionallyDeletedEverything==false) { while (decimalPartWhenEditing.length<numberOfDecimalsToKeepWhenEditing) { decimalPartWhenEditing = decimalPartWhenEditing + \'0\'; } } var decimalPartWhenShowing = decimalPartWhenEditing.substring(0, numberOfDecimalsToKeepWhenShowing); inputElement.setAttribute(\'data-fabmessrichtung_winkelHiddenDecPlaces\',decimalPartWhenEditing.substring(numberOfDecimalsToKeepWhenShowing, numberOfDecimalsToKeepWhenEditing)); var keepDecimalSeparator = (isInputEvent && decimalSeparatorIndex>=0); if (2 > 0 && isInputEvent) { } else if (numberOfDecimalsToKeepWhenEditing==0) { decimalSeparatorIndex = null; } newCursorPosition = Math.min(newCursorPosition, integerPart.length + ((decimalPartWhenEditing.length>0 || keepDecimalSeparator)?(1+decimalPartWhenEditing.length):0)); var indexOfThousandsSeparator = integerPart.length%3; if (indexOfThousandsSeparator==0) { 	indexOfThousandsSeparator+=3; } var numberOfThousandsSeparators = (Math.floor((integerPart.length-indexOfThousandsSeparator)/3)); var integerWithThousands = integerPart.substring(0, Math.min(indexOfThousandsSeparator, integerPart.length)); const cursorPositionBeforeThousands = newCursorPosition; for (var i=0; i<numberOfThousandsSeparators; i++) { integerWithThousands = integerWithThousands + integerPart.substr(indexOfThousandsSeparator, 3); indexOfThousandsSeparator += 3; } if (isNegative) { 	newCursorPosition++;  } var decimalPartWhenEditing = ((decimalPartWhenEditing.length>0 || (decimalSeparatorIndex!=null && decimalSeparatorIndex>=0))?\'.\':"") + ((decimalPartWhenEditing.length>0)?decimalPartWhenEditing:\'\'); var decimalPartWhenShowing = ((decimalPartWhenShowing.length>0 || keepDecimalSeparator)?\'.\'+decimalPartWhenShowing:""); var newNumericValue = (isNegative?\'-\':\'\') + integerWithThousands + ((isBlurEvent||isInitialEvent)?decimalPartWhenShowing:decimalPartWhenEditing); console.log("fabnum " + originalInputValue+" --> "+newNumericValue); inputElement.value = newNumericValue; newCursorPosition = Math.min(newCursorPosition, newNumericValue.length); if (originalCursorPosition>=0 && !(isBlurEvent)) { 	inputElement.setSelectionRange(newCursorPosition, newCursorPosition); } inputElement.setAttribute(\'data-fabmessrichtung_winkellastNumValue\', newNumericValue); messrichtung_winkelSelectAtFocus(isFocusEvent,event); } </script><input name="messrichtung_winkel" class="eingabefeld feldmiteinheit zahlenfeld" id="messrichtung_winkel" value="292" type="text"></input><script> let messrichtung_winkelF=document.getElementById(\'messrichtung_winkel\'); console.log("registriere"); messrichtung_winkelF.addEventListener(\'mousedown\',messrichtung_winkelFabMousedownNumericValue);messrichtung_winkelF.addEventListener(\'input\',messrichtung_winkelFabPrettyPrintNumericValue);messrichtung_winkelF.addEventListener(\'change\',messrichtung_winkelFabNormalizeNumericValue);messrichtung_winkelF.addEventListener(\'focus\',messrichtung_winkelFabNormalizeNumericValue);messrichtung_winkelF.addEventListener(\'focus\',messrichtung_winkelFabPrettyPrintNumericValue);messrichtung_winkelF.addEventListener(\'blur\',messrichtung_winkelFabPrettyPrintNumericValue,false);;messrichtung_winkelF.GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue"); let value=messrichtung_winkelF.value; if(value!=null){value=value.replace(\',\',\'\');} console.log("GetTechnicalUrlValue "+value); return value; } ;function messrichtung_winkelForwardChange(event){ console.log("Funktion bei Änderung: window.recalcValues"); let newvalue=messrichtung_winkelF.GetTechnicalUrlValue(); window.recalcValues(newvalue,messrichtung_winkelF.id,event); } messrichtung_winkelF.addEventListener(\'change\',messrichtung_winkelForwardChange);</script><span class="einheit">°</span> <span class="meldung" id="messrichtung_winkel_meldung"></span> </span></span> <script async="" type="text/javascript">document.getElementById(\'winkel3messrichtung\').GetTechnicalUrlValue = () => { console.log("GetTechnicalUrlValue; winkel3messrichtung"); let value=null; let radioinput=null; radioinput=document.getElementById(\'auslegung__winkel3messrichtung__li\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__winkel3messrichtung__re\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__winkel3messrichtung__ob\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__winkel3messrichtung__un\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__winkel3messrichtung__wiha\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; radioinput=document.getElementById(\'auslegung__winkel3messrichtung__frei\'); if(radioinput!=null && radioinput.checked){value=radioinput.value;}; console.log("GetTechnicalUrlValue "+value); return value; }; let elmtAuslegung__winkel3messrichtung__li=document.getElementById(\'auslegung__winkel3messrichtung__li\'); if(elmtAuslegung__winkel3messrichtung__li!=null){elmtAuslegung__winkel3messrichtung__li.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});} let elmtAuslegung__winkel3messrichtung__re=document.getElementById(\'auslegung__winkel3messrichtung__re\'); if(elmtAuslegung__winkel3messrichtung__re!=null){elmtAuslegung__winkel3messrichtung__re.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});} let elmtAuslegung__winkel3messrichtung__ob=document.getElementById(\'auslegung__winkel3messrichtung__ob\'); if(elmtAuslegung__winkel3messrichtung__ob!=null){elmtAuslegung__winkel3messrichtung__ob.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});} let elmtAuslegung__winkel3messrichtung__un=document.getElementById(\'auslegung__winkel3messrichtung__un\'); if(elmtAuslegung__winkel3messrichtung__un!=null){elmtAuslegung__winkel3messrichtung__un.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});} let elmtAuslegung__winkel3messrichtung__wiha=document.getElementById(\'auslegung__winkel3messrichtung__wiha\'); if(elmtAuslegung__winkel3messrichtung__wiha!=null){elmtAuslegung__winkel3messrichtung__wiha.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});} let elmtAuslegung__winkel3messrichtung__frei=document.getElementById(\'auslegung__winkel3messrichtung__frei\'); if(elmtAuslegung__winkel3messrichtung__frei!=null){elmtAuslegung__winkel3messrichtung__frei.addEventListener(\'change\', function(){if(this.checked==true){window.recalcValues(this.value,this.id)}});} { let urlsearchparamsForMr=new URLSearchParams(document.location.search); let urlvalue=urlsearchparamsForMr.get(\'winkel3messrichtung\'); if(urlvalue==\'li\'){elmtAuslegung__winkel3messrichtung__li.checked=true;} if(urlvalue==\'re\'){elmtAuslegung__winkel3messrichtung__re.checked=true;} if(urlvalue==\'un\'){elmtAuslegung__winkel3messrichtung__un.checked=true;} if(urlvalue==\'ob\'){elmtAuslegung__winkel3messrichtung__ob.checked=true;} if(urlvalue==\'wiha\'){elmtAuslegung__winkel3messrichtung__wiha.checked=true;} if(urlvalue==\'frei\'){elmtAuslegung__winkel3messrichtung__frei.checked=true;} } </script> </span> </div> </div> <canvas id="bild" style="width:100%;height:600px;border-style:solid;border-color:#dddddd;border-width:1px;"></canvas> </div> <script type="module" src="https://haehne-configurator.de/script/winkelzeichner.js"> </script> <style>.fabjsmessage-error{color:red;}.fabjsmessage-warn{color:yellow;}.fabjsmessage-info{color:#009900;} #nachricht{text-align:right;}</style> <div id="nachricht"></div> <span class="meldung fehler" id="alle_fehler" style="max-width:100%;"></span> <span class="meldung" id="alle_meldung" style="max-width:100%;"></span> <div style="width:100%;text-align:right;margin-top:1em;"> <a class="button" target="_blank" href="https://haehne.de/en/service/technical-terms-for-force-measuring-sensors">Force measurement glossary</a> <button type="button" onclick="let e=document.getElementById(\'uploadblock\');e.classList.toggle(\'uploadsichtbar\');e.scrollIntoView({behavior:\'smooth\',block:\'center\',inline:\'center\'});">Import</button> <script> async function getInputElementNameValueForUrl3(inputElementId){ try{ let element=document.getElementById(inputElementId); if(element!=null){ if(typeof element.GetTechnicalUrlValue===\'function\'){let namevalue=element.name; if(namevalue===undefined){let nameAtt=element.attributes["name"];if(nameAtt!=null){namevalue=nameAtt.value;}}if(namevalue===undefined){namevalue=element.id;}let techurlval=element.GetTechnicalUrlValue(); if(techurlval==null || techurlval==\'\'){return "";} return namevalue+"="+encodeURIComponent(techurlval)+"&"; }else if(element.type==\'file\'){ const toBase64 = file => new Promise((resolve, reject) => { const reader = new FileReader(); if(file!=null){ reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = reject; } else { resolve(null); } }); let base64=await toBase64(element.files[0]); console.log(encodeURIComponent(base64)); return element.name+"="+encodeURIComponent(base64)+"&"; }else if(element.multiple){ let options=element.options; let optionsurl=""; for(let i=0;i<options.length;i++){ if(options[i].selected){ optionsurl+=element.name+"="+encodeURIComponent(options[i].value)+"&"; } } return optionsurl; }else if(element.tagName==\'CANVAS\'){ let dataurl=await element.toDataURL("image/png");return element.id+"="+encodeURIComponent(dataurl)+"&"; }else if(element.type==\'checkbox\'){if(element.checked){return element.name+"="+encodeURIComponent(element.checked)+"&";}else{return "";} }else if(element.type==\'radio\'){if(element.checked){return element.name+"="+encodeURIComponent(element.value)+"&";}else{return "";} }else if(element.tagName==\'SELECT\'){ console.log(element.id+\': \'+element.value); if(element.value==null || element.value==\'\'){return "";}else{return element.name+"="+encodeURIComponent(element.value)+"&";} }else{ return element.name+"="+encodeURIComponent(element.value)+"&"; } } else{return "";} }catch(error){ console.error(error); let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'An error occurred in the system.\'; errorElement.classList.add(\'fabjsmessage-error\'); errorShown=true; } if(errorShown==false){alert(\'An error occurred in the system.\');} throw error; } } function isInputValueValid3(inputElementId){ let element=document.getElementById(inputElementId); if(element!=null && element.tagName==\'INPUT\'){ console.log(element); element.classList.remove(\'faberror\'); element.setCustomValidity(""); let valid=element.reportValidity(); if(valid==false){ if(inputElementId==\'datenschutzok\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'telefon\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'email\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'stueckzahl\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} element.classList.add(\'faberror\'); element.scrollIntoView({behavior:"smooth",block:"center"}); element.focus(); console.log(\'Nicht valide: \'+inputElementId); } return valid; }else{ return true; } } function isFormValid3(){ console.log(\'Checking validity...\'); return true; } function getUrlParameterNameValueForUrl3(urlParameterName){ const searchParams = new URLSearchParams(window.location.search); if(searchParams.has(urlParameterName)){ return urlParameterName+\'=\'+searchParams.get(urlParameterName)+\'&\'; }else{ return ""; } } async function fabInputFieldSubmitBlst1795077999GetDwnld(baseUrl){ try{ let btnFabInputField1777530690269=null;try{btnFabInputField1777530690269=document.getElementById(\'fabInputField1777530690269\');if(btnFabInputField1777530690269!=null){if(btnFabInputField1777530690269.classList.contains(\'button-processing\')){return;}btnFabInputField1777530690269.classList.add(\'button-processing\');}let query="messageelementid=nachricht&"; console.log(\'Adding URL param for locale\');if(!isInputValueValid3("locale")){return;} query+=await getInputElementNameValueForUrl3("locale"); console.log(\'Adding URL param for beratung\');if(!isInputValueValid3("beratung")){return;} query+=await getInputElementNameValueForUrl3("beratung"); console.log(\'Adding URL param for katalog\');if(!isInputValueValid3("katalog")){return;} query+=await getInputElementNameValueForUrl3("katalog"); console.log(\'Adding URL param for angebot\');if(!isInputValueValid3("angebot")){return;} query+=await getInputElementNameValueForUrl3("angebot"); console.log(\'Adding URL param for stueckzahl\');if(!isInputValueValid3("stueckzahl")){return;} query+=await getInputElementNameValueForUrl3("stueckzahl"); console.log(\'Adding URL param for firma\');if(!isInputValueValid3("firma")){return;} query+=await getInputElementNameValueForUrl3("firma"); console.log(\'Adding URL param for strasse\');if(!isInputValueValid3("strasse")){return;} query+=await getInputElementNameValueForUrl3("strasse"); console.log(\'Adding URL param for plz\');if(!isInputValueValid3("plz")){return;} query+=await getInputElementNameValueForUrl3("plz"); console.log(\'Adding URL param for ort\');if(!isInputValueValid3("ort")){return;} query+=await getInputElementNameValueForUrl3("ort"); console.log(\'Adding URL param for name\');if(!isInputValueValid3("name")){return;} query+=await getInputElementNameValueForUrl3("name"); console.log(\'Adding URL param for telefon\');if(!isInputValueValid3("telefon")){return;} query+=await getInputElementNameValueForUrl3("telefon"); console.log(\'Adding URL param for email\');if(!isInputValueValid3("email")){return;} query+=await getInputElementNameValueForUrl3("email"); console.log(\'Adding URL param for datum\');if(!isInputValueValid3("datum")){return;} query+=await getInputElementNameValueForUrl3("datum"); console.log(\'Adding URL param for datenschutzok\');if(!isInputValueValid3("datenschutzok")){return;} query+=await getInputElementNameValueForUrl3("datenschutzok"); console.log(\'Adding URL param for bandzugoderbreite_bandzug\');if(!isInputValueValid3("bandzugoderbreite_bandzug")){return;} query+=await getInputElementNameValueForUrl3("bandzugoderbreite_bandzug"); console.log(\'Adding URL param for bandzug\');if(!isInputValueValid3("bandzug")){return;} query+=await getInputElementNameValueForUrl3("bandzug"); console.log(\'Adding URL param for bandzugoderbreite_breite\');if(!isInputValueValid3("bandzugoderbreite_breite")){return;} query+=await getInputElementNameValueForUrl3("bandzugoderbreite_breite"); console.log(\'Adding URL param for zugn_pro_breitemm\');if(!isInputValueValid3("zugn_pro_breitemm")){return;} query+=await getInputElementNameValueForUrl3("zugn_pro_breitemm"); console.log(\'Adding URL param for bahnbreitemm\');if(!isInputValueValid3("bahnbreitemm")){return;} query+=await getInputElementNameValueForUrl3("bahnbreitemm"); console.log(\'Adding URL param for bandzugoderbreite_min_bandzug\');if(!isInputValueValid3("bandzugoderbreite_min_bandzug")){return;} query+=await getInputElementNameValueForUrl3("bandzugoderbreite_min_bandzug"); console.log(\'Adding URL param for bandzugmin\');if(!isInputValueValid3("bandzugmin")){return;} query+=await getInputElementNameValueForUrl3("bandzugmin"); console.log(\'Adding URL param for bandzugoderbreite_min_breite\');if(!isInputValueValid3("bandzugoderbreite_min_breite")){return;} query+=await getInputElementNameValueForUrl3("bandzugoderbreite_min_breite"); console.log(\'Adding URL param for zugn_pro_breitemm_min\');if(!isInputValueValid3("zugn_pro_breitemm_min")){return;} query+=await getInputElementNameValueForUrl3("zugn_pro_breitemm_min"); console.log(\'Adding URL param for bahnbreitemm_min\');if(!isInputValueValid3("bahnbreitemm_min")){return;} query+=await getInputElementNameValueForUrl3("bahnbreitemm_min"); console.log(\'Adding URL param for walzengewicht\');if(!isInputValueValid3("walzengewicht")){return;} query+=await getInputElementNameValueForUrl3("walzengewicht"); console.log(\'Adding URL param for walzengewicht_einheit\');if(!isInputValueValid3("walzengewicht_einheit")){return;} query+=await getInputElementNameValueForUrl3("walzengewicht_einheit"); console.log(\'Adding URL param for winkel1\');if(!isInputValueValid3("winkel1")){return;} query+=await getInputElementNameValueForUrl3("winkel1"); console.log(\'Adding URL param for winkel2\');if(!isInputValueValid3("winkel2")){return;} query+=await getInputElementNameValueForUrl3("winkel2"); console.log(\'Adding URL param for winkel1alternativ\');if(!isInputValueValid3("winkel1alternativ")){return;} query+=await getInputElementNameValueForUrl3("winkel1alternativ"); console.log(\'Adding URL param for winkel2alternativ\');if(!isInputValueValid3("winkel2alternativ")){return;} query+=await getInputElementNameValueForUrl3("winkel2alternativ"); console.log(\'Adding URL param for bandzuganteil_n\');if(!isInputValueValid3("bandzuganteil_n")){return;} query+=await getInputElementNameValueForUrl3("bandzuganteil_n"); console.log(\'Adding URL param for bandzuganteilmin_n\');if(!isInputValueValid3("bandzuganteilmin_n")){return;} query+=await getInputElementNameValueForUrl3("bandzuganteilmin_n"); console.log(\'Adding URL param for gesamtkraft_n\');if(!isInputValueValid3("gesamtkraft_n")){return;} query+=await getInputElementNameValueForUrl3("gesamtkraft_n"); console.log(\'Adding URL param for gesamtkraftmin_n\');if(!isInputValueValid3("gesamtkraftmin_n")){return;} query+=await getInputElementNameValueForUrl3("gesamtkraftmin_n"); console.log(\'Adding URL param for walzengewichtanteil_n\');if(!isInputValueValid3("walzengewichtanteil_n")){return;} query+=await getInputElementNameValueForUrl3("walzengewichtanteil_n"); console.log(\'Adding URL param for typ\');if(!isInputValueValid3("typ")){return;} query+=await getInputElementNameValueForUrl3("typ"); console.log(\'Adding URL param for typ2\');if(!isInputValueValid3("typ2")){return;} query+=await getInputElementNameValueForUrl3("typ2"); console.log(\'Adding URL param for lagerung\');if(!isInputValueValid3("lagerung")){return;} query+=await getInputElementNameValueForUrl3("lagerung"); console.log(\'Adding URL param for wellenzapfendurchmesser_mm\');if(!isInputValueValid3("wellenzapfendurchmesser_mm")){return;} query+=await getInputElementNameValueForUrl3("wellenzapfendurchmesser_mm"); console.log(\'Adding URL param for typ_lang\');if(!isInputValueValid3("typ_lang")){return;} query+=await getInputElementNameValueForUrl3("typ_lang"); console.log(\'Adding URL param for baugroesse\');if(!isInputValueValid3("baugroesse")){return;} query+=await getInputElementNameValueForUrl3("baugroesse"); console.log(\'Adding URL param for messrichtung\');if(!isInputValueValid3("messrichtung")){return;} query+=await getInputElementNameValueForUrl3("messrichtung"); console.log(\'Adding URL param for bauform\');if(!isInputValueValid3("bauform")){return;} query+=await getInputElementNameValueForUrl3("bauform"); console.log(\'Adding URL param for ballenlaenge\');if(!isInputValueValid3("ballenlaenge")){return;} query+=await getInputElementNameValueForUrl3("ballenlaenge"); console.log(\'Adding URL param for nennkraefte_n\');if(!isInputValueValid3("nennkraefte_n")){return;} query+=await getInputElementNameValueForUrl3("nennkraefte_n"); console.log(\'Adding URL param for option_k\');if(!isInputValueValid3("option_k")){return;} query+=await getInputElementNameValueForUrl3("option_k"); console.log(\'Adding URL param for stdleitung_art\');if(!isInputValueValid3("stdleitung_art")){return;} query+=await getInputElementNameValueForUrl3("stdleitung_art"); console.log(\'Adding URL param for stdleitung_m\');if(!isInputValueValid3("stdleitung_m")){return;} query+=await getInputElementNameValueForUrl3("stdleitung_m"); console.log(\'Adding URL param for stdanschluss\');if(!isInputValueValid3("stdanschluss")){return;} query+=await getInputElementNameValueForUrl3("stdanschluss"); console.log(\'Adding URL param for anschlussvariante\');if(!isInputValueValid3("anschlussvariante")){return;} query+=await getInputElementNameValueForUrl3("anschlussvariante"); console.log(\'Adding URL param for option_r\');if(!isInputValueValid3("option_r")){return;} query+=await getInputElementNameValueForUrl3("option_r"); console.log(\'Adding URL param for option_y\');if(!isInputValueValid3("option_y")){return;} query+=await getInputElementNameValueForUrl3("option_y"); console.log(\'Adding URL param for option_u\');if(!isInputValueValid3("option_u")){return;} query+=await getInputElementNameValueForUrl3("option_u"); console.log(\'Adding URL param for option_w\');if(!isInputValueValid3("option_w")){return;} query+=await getInputElementNameValueForUrl3("option_w"); console.log(\'Adding URL param for option_d\');if(!isInputValueValid3("option_d")){return;} query+=await getInputElementNameValueForUrl3("option_d"); console.log(\'Adding URL param for option_e\');if(!isInputValueValid3("option_e")){return;} query+=await getInputElementNameValueForUrl3("option_e"); console.log(\'Adding URL param for option_g\');if(!isInputValueValid3("option_g")){return;} query+=await getInputElementNameValueForUrl3("option_g"); console.log(\'Adding URL param for option_h\');if(!isInputValueValid3("option_h")){return;} query+=await getInputElementNameValueForUrl3("option_h"); console.log(\'Adding URL param for option_j\');if(!isInputValueValid3("option_j")){return;} query+=await getInputElementNameValueForUrl3("option_j"); console.log(\'Adding URL param for option_l\');if(!isInputValueValid3("option_l")){return;} query+=await getInputElementNameValueForUrl3("option_l"); console.log(\'Adding URL param for option_m\');if(!isInputValueValid3("option_m")){return;} query+=await getInputElementNameValueForUrl3("option_m"); console.log(\'Adding URL param for option_p\');if(!isInputValueValid3("option_p")){return;} query+=await getInputElementNameValueForUrl3("option_p"); console.log(\'Adding URL param for option_q\');if(!isInputValueValid3("option_q")){return;} query+=await getInputElementNameValueForUrl3("option_q"); console.log(\'Adding URL param for option_v\');if(!isInputValueValid3("option_v")){return;} query+=await getInputElementNameValueForUrl3("option_v"); console.log(\'Adding URL param for option_f\');if(!isInputValueValid3("option_f")){return;} query+=await getInputElementNameValueForUrl3("option_f"); console.log(\'Adding URL param for option_x\');if(!isInputValueValid3("option_x")){return;} query+=await getInputElementNameValueForUrl3("option_x"); console.log(\'Adding URL param for option_uc\');if(!isInputValueValid3("option_uc")){return;} query+=await getInputElementNameValueForUrl3("option_uc"); console.log(\'Adding URL param for option_z\');if(!isInputValueValid3("option_z")){return;} query+=await getInputElementNameValueForUrl3("option_z"); console.log(\'Adding URL param for zusatz1\');if(!isInputValueValid3("zusatz1")){return;} query+=await getInputElementNameValueForUrl3("zusatz1"); console.log(\'Adding URL param for zusatz2\');if(!isInputValueValid3("zusatz2")){return;} query+=await getInputElementNameValueForUrl3("zusatz2"); console.log(\'Adding URL param for zusatz3\');if(!isInputValueValid3("zusatz3")){return;} query+=await getInputElementNameValueForUrl3("zusatz3"); console.log(\'Adding URL param for zusatz4\');if(!isInputValueValid3("zusatz4")){return;} query+=await getInputElementNameValueForUrl3("zusatz4"); console.log(\'Adding URL param for zusatz5\');if(!isInputValueValid3("zusatz5")){return;} query+=await getInputElementNameValueForUrl3("zusatz5"); console.log(\'Adding URL param for zusatz6\');if(!isInputValueValid3("zusatz6")){return;} query+=await getInputElementNameValueForUrl3("zusatz6"); console.log(\'Adding URL param for zusatz7\');if(!isInputValueValid3("zusatz7")){return;} query+=await getInputElementNameValueForUrl3("zusatz7"); console.log(\'Adding URL param for zusatz8\');if(!isInputValueValid3("zusatz8")){return;} query+=await getInputElementNameValueForUrl3("zusatz8"); console.log(\'Adding URL param for zusatz9\');if(!isInputValueValid3("zusatz9")){return;} query+=await getInputElementNameValueForUrl3("zusatz9"); console.log(\'Adding URL param for zusatz10\');if(!isInputValueValid3("zusatz10")){return;} query+=await getInputElementNameValueForUrl3("zusatz10"); console.log(\'Adding URL param for zusatz11\');if(!isInputValueValid3("zusatz11")){return;} query+=await getInputElementNameValueForUrl3("zusatz11"); console.log(\'Adding URL param for zusatz12\');if(!isInputValueValid3("zusatz12")){return;} query+=await getInputElementNameValueForUrl3("zusatz12"); console.log(\'Adding URL param for zusatz13\');if(!isInputValueValid3("zusatz13")){return;} query+=await getInputElementNameValueForUrl3("zusatz13"); console.log(\'Adding URL param for zusatz14\');if(!isInputValueValid3("zusatz14")){return;} query+=await getInputElementNameValueForUrl3("zusatz14"); console.log(\'Adding URL param for zusatz15\');if(!isInputValueValid3("zusatz15")){return;} query+=await getInputElementNameValueForUrl3("zusatz15"); console.log(\'Adding URL param for zusatz16\');if(!isInputValueValid3("zusatz16")){return;} query+=await getInputElementNameValueForUrl3("zusatz16"); console.log(\'Adding URL param for zusatz17\');if(!isInputValueValid3("zusatz17")){return;} query+=await getInputElementNameValueForUrl3("zusatz17"); console.log(\'Adding URL param for zusatz18\');if(!isInputValueValid3("zusatz18")){return;} query+=await getInputElementNameValueForUrl3("zusatz18"); console.log(\'Adding URL param for zusatz19\');if(!isInputValueValid3("zusatz19")){return;} query+=await getInputElementNameValueForUrl3("zusatz19"); console.log(\'Adding URL param for zusatz20\');if(!isInputValueValid3("zusatz20")){return;} query+=await getInputElementNameValueForUrl3("zusatz20"); console.log(\'Adding URL param for blockausrichtung\');if(!isInputValueValid3("blockausrichtung")){return;} query+=await getInputElementNameValueForUrl3("blockausrichtung"); console.log(\'Adding URL param for blockposition\');if(!isInputValueValid3("blockposition")){return;} query+=await getInputElementNameValueForUrl3("blockposition"); console.log(\'Adding URL param for blockwinkel\');if(!isInputValueValid3("blockwinkel")){return;} query+=await getInputElementNameValueForUrl3("blockwinkel"); console.log(\'Adding URL param for expertenmodus\');if(!isInputValueValid3("expertenmodus")){return;} query+=await getInputElementNameValueForUrl3("expertenmodus"); console.log(\'Adding URL param for sondernennkraft\');if(!isInputValueValid3("sondernennkraft")){return;} query+=await getInputElementNameValueForUrl3("sondernennkraft"); console.log(\'Adding URL param for sensorattributecsv\');if(!isInputValueValid3("sensorattributecsv")){return;} query+=await getInputElementNameValueForUrl3("sensorattributecsv"); console.log(\'Adding URL param for bemerkung\');if(!isInputValueValid3("bemerkung")){return;} query+=await getInputElementNameValueForUrl3("bemerkung"); console.log(\'Adding URL param for projektname\');if(!isInputValueValid3("projektname")){return;} query+=await getInputElementNameValueForUrl3("projektname"); console.log(\'Adding URL param for messstelle\');if(!isInputValueValid3("messstelle")){return;} query+=await getInputElementNameValueForUrl3("messstelle"); console.log(\'Adding URL param for typbezeichner\');if(!isInputValueValid3("typbezeichner")){return;} query+=await getInputElementNameValueForUrl3("typbezeichner"); console.log(\'Adding URL param for alternativeswinkelsystem\');if(!isInputValueValid3("alternativeswinkelsystem")){return;} query+=await getInputElementNameValueForUrl3("alternativeswinkelsystem"); console.log(\'Adding URL param for winkel1cnvs\');if(!isInputValueValid3("winkel1cnvs")){return;} query+=await getInputElementNameValueForUrl3("winkel1cnvs"); console.log(\'Adding URL param for winkel2cnvs\');if(!isInputValueValid3("winkel2cnvs")){return;} query+=await getInputElementNameValueForUrl3("winkel2cnvs"); console.log(\'Adding URL param for winkel1alternativcnvs\');if(!isInputValueValid3("winkel1alternativcnvs")){return;} query+=await getInputElementNameValueForUrl3("winkel1alternativcnvs"); console.log(\'Adding URL param for winkel2alternativcnvs\');if(!isInputValueValid3("winkel2alternativcnvs")){return;} query+=await getInputElementNameValueForUrl3("winkel2alternativcnvs"); console.log(\'Adding URL param for winkel4cnvs\');if(!isInputValueValid3("winkel4cnvs")){return;} query+=await getInputElementNameValueForUrl3("winkel4cnvs"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__li\');if(!isInputValueValid3("auslegung__winkel3messrichtung__li")){return;} query+=await getInputElementNameValueForUrl3("auslegung__winkel3messrichtung__li"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__re\');if(!isInputValueValid3("auslegung__winkel3messrichtung__re")){return;} query+=await getInputElementNameValueForUrl3("auslegung__winkel3messrichtung__re"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__ob\');if(!isInputValueValid3("auslegung__winkel3messrichtung__ob")){return;} query+=await getInputElementNameValueForUrl3("auslegung__winkel3messrichtung__ob"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__un\');if(!isInputValueValid3("auslegung__winkel3messrichtung__un")){return;} query+=await getInputElementNameValueForUrl3("auslegung__winkel3messrichtung__un"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__wiha\');if(!isInputValueValid3("auslegung__winkel3messrichtung__wiha")){return;} query+=await getInputElementNameValueForUrl3("auslegung__winkel3messrichtung__wiha"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__frei\');if(!isInputValueValid3("auslegung__winkel3messrichtung__frei")){return;} query+=await getInputElementNameValueForUrl3("auslegung__winkel3messrichtung__frei"); console.log(\'Adding URL param for messrichtung_winkel\');if(!isInputValueValid3("messrichtung_winkel")){return;} query+=await getInputElementNameValueForUrl3("messrichtung_winkel"); let filePath=baseUrl+\'?\'+query; let link=document.createElement(\'a\'); link.href = filePath; link.target = \'_blank\'; link.download = filePath.substr(filePath.lastIndexOf(\'/\') + 1); link.click(); }finally{if(btnFabInputField1777530690269!=null){btnFabInputField1777530690269.classList.remove(\'button-processing\');}}}catch(error){ console.error(error); let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'An error occurred in the system.\'; errorElement.classList.add(\'fabjsmessage-error\'); errorShown=true; } if(errorShown==false){alert(\'An error occurred in the system.\');} throw error; } } </script><button id="fabInputField1777530690269" type="button" onclick="fabInputFieldSubmitBlst1795077999GetDwnld(\'https://administration.haehne-configurator.de/webservice-13/Auslegung\');">Save</button> <script> async function getInputElementNameValueForUrl4(inputElementId){ try{ let element=document.getElementById(inputElementId); if(element!=null){ if(typeof element.GetTechnicalUrlValue===\'function\'){let namevalue=element.name; if(namevalue===undefined){let nameAtt=element.attributes["name"];if(nameAtt!=null){namevalue=nameAtt.value;}}if(namevalue===undefined){namevalue=element.id;}let techurlval=element.GetTechnicalUrlValue(); if(techurlval==null || techurlval==\'\'){return "";} return namevalue+"="+encodeURIComponent(techurlval)+"&"; }else if(element.type==\'file\'){ const toBase64 = file => new Promise((resolve, reject) => { const reader = new FileReader(); if(file!=null){ reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = reject; } else { resolve(null); } }); let base64=await toBase64(element.files[0]); console.log(encodeURIComponent(base64)); return element.name+"="+encodeURIComponent(base64)+"&"; }else if(element.multiple){ let options=element.options; let optionsurl=""; for(let i=0;i<options.length;i++){ if(options[i].selected){ optionsurl+=element.name+"="+encodeURIComponent(options[i].value)+"&"; } } return optionsurl; }else if(element.tagName==\'CANVAS\'){ let dataurl=await element.toDataURL("image/png");return element.id+"="+encodeURIComponent(dataurl)+"&"; }else if(element.type==\'checkbox\'){if(element.checked){return element.name+"="+encodeURIComponent(element.checked)+"&";}else{return "";} }else if(element.type==\'radio\'){if(element.checked){return element.name+"="+encodeURIComponent(element.value)+"&";}else{return "";} }else if(element.tagName==\'SELECT\'){ console.log(element.id+\': \'+element.value); if(element.value==null || element.value==\'\'){return "";}else{return element.name+"="+encodeURIComponent(element.value)+"&";} }else{ return element.name+"="+encodeURIComponent(element.value)+"&"; } } else{return "";} }catch(error){ console.error(error); let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'An error occurred in the system.\'; errorElement.classList.add(\'fabjsmessage-error\'); errorShown=true; } if(errorShown==false){alert(\'An error occurred in the system.\');} throw error; } } function isInputValueValid4(inputElementId){ let element=document.getElementById(inputElementId); if(element!=null && element.tagName==\'INPUT\'){ console.log(element); element.classList.remove(\'faberror\'); element.setCustomValidity(""); let valid=element.reportValidity(); if(valid==false){ if(inputElementId==\'datenschutzok\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'telefon\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'email\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'stueckzahl\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} element.classList.add(\'faberror\'); element.scrollIntoView({behavior:"smooth",block:"center"}); element.focus(); console.log(\'Nicht valide: \'+inputElementId); } return valid; }else{ return true; } } function isFormValid4(){ console.log(\'Checking validity...\'); { console.log(\'Pflichtfeld-Prüfung für telefon, email\'); let elementgroup1=[]; let anelement1; anelement1=document.getElementById(\'telefon\'); if(anelement1!=null){ elementgroup1.push(anelement1); } anelement1=document.getElementById(\'email\'); if(anelement1!=null){ elementgroup1.push(anelement1); } let min1MitWert1=false; for(let e1 of elementgroup1){ if(e1.type==\'checkbox\'){ if(e1.checked==true){ min1MitWert1=true; console.log(\'min1MitWert1 -> True\');} }else if(e1.value!=null && e1.value!=\'\'){ min1MitWert1=true; console.log(\'min1MitWert1 -> True\');} } if(min1MitWert1==false){ for(let e1 of elementgroup1){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);e1.scrollIntoView({block:"center",behavior:"smooth"}); e1.classList.add(\'faberror\'); e1.setCustomValidity("Please fill in an eMail address or a phone number.");e1.reportValidity(); e1.focus(); }return false;} } { console.log(\'Pflichtfeld-Prüfung für datenschutzok\'); let elementgroup2=[]; let anelement2; anelement2=document.getElementById(\'datenschutzok\'); if(anelement2!=null){ elementgroup2.push(anelement2); } let min1MitWert2=false; for(let e2 of elementgroup2){ if(e2.type==\'checkbox\'){ if(e2.checked==true){ min1MitWert2=true; console.log(\'min1MitWert2 -> True\');} }else if(e2.value!=null && e2.value!=\'\'){ min1MitWert2=true; console.log(\'min1MitWert2 -> True\');} } if(min1MitWert2==false){ for(let e2 of elementgroup2){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);e2.scrollIntoView({block:"center",behavior:"smooth"}); e2.classList.add(\'faberror\'); e2.setCustomValidity("Please confirm that you have read the privacy policy and that you agree.");e2.reportValidity(); e2.focus(); }return false;} } { console.log(\'Pflichtfeld-Prüfung für stueckzahl\'); let elementgroup3=[]; let anelement3; anelement3=document.getElementById(\'stueckzahl\'); if(anelement3!=null){ elementgroup3.push(anelement3); } let min1MitWert3=false; for(let e3 of elementgroup3){ if(e3.type==\'checkbox\'){ if(e3.checked==true){ min1MitWert3=true; console.log(\'min1MitWert3 -> True\');} }else if(e3.value!=null && e3.value!=\'\'){ min1MitWert3=true; console.log(\'min1MitWert3 -> True\');} } if(min1MitWert3==false){ for(let e3 of elementgroup3){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);e3.scrollIntoView({block:"center",behavior:"smooth"}); e3.classList.add(\'faberror\'); e3.setCustomValidity("Please indicate how many sensors you require.");e3.reportValidity(); e3.focus(); }return false;} } return true; } function getUrlParameterNameValueForUrl4(urlParameterName){ const searchParams = new URLSearchParams(window.location.search); if(searchParams.has(urlParameterName)){ return urlParameterName+\'=\'+searchParams.get(urlParameterName)+\'&\'; }else{ return ""; } } async function fabInputFieldSubmitBlst0(url){ try{ let btnFabInputField1777530690270=null;try{btnFabInputField1777530690270=document.getElementById(\'fabInputField1777530690270\');if(btnFabInputField1777530690270!=null){if(btnFabInputField1777530690270.classList.contains(\'button-processing\')){return;}btnFabInputField1777530690270.classList.add(\'button-processing\');}let query="messageelementid=nachricht&"; console.log(\'Adding URL param for locale\');if(!isInputValueValid4("locale")){return;} query+=await getInputElementNameValueForUrl4("locale"); console.log(\'Adding URL param for beratung\');if(!isInputValueValid4("beratung")){return;} query+=await getInputElementNameValueForUrl4("beratung"); console.log(\'Adding URL param for katalog\');if(!isInputValueValid4("katalog")){return;} query+=await getInputElementNameValueForUrl4("katalog"); console.log(\'Adding URL param for angebot\');if(!isInputValueValid4("angebot")){return;} query+=await getInputElementNameValueForUrl4("angebot"); console.log(\'Adding URL param for stueckzahl\');if(!isInputValueValid4("stueckzahl")){return;} query+=await getInputElementNameValueForUrl4("stueckzahl"); console.log(\'Adding URL param for firma\');if(!isInputValueValid4("firma")){return;} query+=await getInputElementNameValueForUrl4("firma"); console.log(\'Adding URL param for strasse\');if(!isInputValueValid4("strasse")){return;} query+=await getInputElementNameValueForUrl4("strasse"); console.log(\'Adding URL param for plz\');if(!isInputValueValid4("plz")){return;} query+=await getInputElementNameValueForUrl4("plz"); console.log(\'Adding URL param for ort\');if(!isInputValueValid4("ort")){return;} query+=await getInputElementNameValueForUrl4("ort"); console.log(\'Adding URL param for name\');if(!isInputValueValid4("name")){return;} query+=await getInputElementNameValueForUrl4("name"); console.log(\'Adding URL param for telefon\');if(!isInputValueValid4("telefon")){return;} query+=await getInputElementNameValueForUrl4("telefon"); console.log(\'Adding URL param for email\');if(!isInputValueValid4("email")){return;} query+=await getInputElementNameValueForUrl4("email"); console.log(\'Adding URL param for datum\');if(!isInputValueValid4("datum")){return;} query+=await getInputElementNameValueForUrl4("datum"); console.log(\'Adding URL param for datenschutzok\');if(!isInputValueValid4("datenschutzok")){return;} query+=await getInputElementNameValueForUrl4("datenschutzok"); console.log(\'Adding URL param for bandzugoderbreite_bandzug\');if(!isInputValueValid4("bandzugoderbreite_bandzug")){return;} query+=await getInputElementNameValueForUrl4("bandzugoderbreite_bandzug"); console.log(\'Adding URL param for bandzug\');if(!isInputValueValid4("bandzug")){return;} query+=await getInputElementNameValueForUrl4("bandzug"); console.log(\'Adding URL param for bandzugoderbreite_breite\');if(!isInputValueValid4("bandzugoderbreite_breite")){return;} query+=await getInputElementNameValueForUrl4("bandzugoderbreite_breite"); console.log(\'Adding URL param for zugn_pro_breitemm\');if(!isInputValueValid4("zugn_pro_breitemm")){return;} query+=await getInputElementNameValueForUrl4("zugn_pro_breitemm"); console.log(\'Adding URL param for bahnbreitemm\');if(!isInputValueValid4("bahnbreitemm")){return;} query+=await getInputElementNameValueForUrl4("bahnbreitemm"); console.log(\'Adding URL param for bandzugoderbreite_min_bandzug\');if(!isInputValueValid4("bandzugoderbreite_min_bandzug")){return;} query+=await getInputElementNameValueForUrl4("bandzugoderbreite_min_bandzug"); console.log(\'Adding URL param for bandzugmin\');if(!isInputValueValid4("bandzugmin")){return;} query+=await getInputElementNameValueForUrl4("bandzugmin"); console.log(\'Adding URL param for bandzugoderbreite_min_breite\');if(!isInputValueValid4("bandzugoderbreite_min_breite")){return;} query+=await getInputElementNameValueForUrl4("bandzugoderbreite_min_breite"); console.log(\'Adding URL param for zugn_pro_breitemm_min\');if(!isInputValueValid4("zugn_pro_breitemm_min")){return;} query+=await getInputElementNameValueForUrl4("zugn_pro_breitemm_min"); console.log(\'Adding URL param for bahnbreitemm_min\');if(!isInputValueValid4("bahnbreitemm_min")){return;} query+=await getInputElementNameValueForUrl4("bahnbreitemm_min"); console.log(\'Adding URL param for walzengewicht\');if(!isInputValueValid4("walzengewicht")){return;} query+=await getInputElementNameValueForUrl4("walzengewicht"); console.log(\'Adding URL param for walzengewicht_einheit\');if(!isInputValueValid4("walzengewicht_einheit")){return;} query+=await getInputElementNameValueForUrl4("walzengewicht_einheit"); console.log(\'Adding URL param for winkel1\');if(!isInputValueValid4("winkel1")){return;} query+=await getInputElementNameValueForUrl4("winkel1"); console.log(\'Adding URL param for winkel2\');if(!isInputValueValid4("winkel2")){return;} query+=await getInputElementNameValueForUrl4("winkel2"); console.log(\'Adding URL param for winkel1alternativ\');if(!isInputValueValid4("winkel1alternativ")){return;} query+=await getInputElementNameValueForUrl4("winkel1alternativ"); console.log(\'Adding URL param for winkel2alternativ\');if(!isInputValueValid4("winkel2alternativ")){return;} query+=await getInputElementNameValueForUrl4("winkel2alternativ"); console.log(\'Adding URL param for bandzuganteil_n\');if(!isInputValueValid4("bandzuganteil_n")){return;} query+=await getInputElementNameValueForUrl4("bandzuganteil_n"); console.log(\'Adding URL param for bandzuganteilmin_n\');if(!isInputValueValid4("bandzuganteilmin_n")){return;} query+=await getInputElementNameValueForUrl4("bandzuganteilmin_n"); console.log(\'Adding URL param for gesamtkraft_n\');if(!isInputValueValid4("gesamtkraft_n")){return;} query+=await getInputElementNameValueForUrl4("gesamtkraft_n"); console.log(\'Adding URL param for gesamtkraftmin_n\');if(!isInputValueValid4("gesamtkraftmin_n")){return;} query+=await getInputElementNameValueForUrl4("gesamtkraftmin_n"); console.log(\'Adding URL param for walzengewichtanteil_n\');if(!isInputValueValid4("walzengewichtanteil_n")){return;} query+=await getInputElementNameValueForUrl4("walzengewichtanteil_n"); console.log(\'Adding URL param for typ\');if(!isInputValueValid4("typ")){return;} query+=await getInputElementNameValueForUrl4("typ"); console.log(\'Adding URL param for typ2\');if(!isInputValueValid4("typ2")){return;} query+=await getInputElementNameValueForUrl4("typ2"); console.log(\'Adding URL param for lagerung\');if(!isInputValueValid4("lagerung")){return;} query+=await getInputElementNameValueForUrl4("lagerung"); console.log(\'Adding URL param for wellenzapfendurchmesser_mm\');if(!isInputValueValid4("wellenzapfendurchmesser_mm")){return;} query+=await getInputElementNameValueForUrl4("wellenzapfendurchmesser_mm"); console.log(\'Adding URL param for typ_lang\');if(!isInputValueValid4("typ_lang")){return;} query+=await getInputElementNameValueForUrl4("typ_lang"); console.log(\'Adding URL param for baugroesse\');if(!isInputValueValid4("baugroesse")){return;} query+=await getInputElementNameValueForUrl4("baugroesse"); console.log(\'Adding URL param for messrichtung\');if(!isInputValueValid4("messrichtung")){return;} query+=await getInputElementNameValueForUrl4("messrichtung"); console.log(\'Adding URL param for bauform\');if(!isInputValueValid4("bauform")){return;} query+=await getInputElementNameValueForUrl4("bauform"); console.log(\'Adding URL param for ballenlaenge\');if(!isInputValueValid4("ballenlaenge")){return;} query+=await getInputElementNameValueForUrl4("ballenlaenge"); console.log(\'Adding URL param for nennkraefte_n\');if(!isInputValueValid4("nennkraefte_n")){return;} query+=await getInputElementNameValueForUrl4("nennkraefte_n"); console.log(\'Adding URL param for option_k\');if(!isInputValueValid4("option_k")){return;} query+=await getInputElementNameValueForUrl4("option_k"); console.log(\'Adding URL param for stdleitung_art\');if(!isInputValueValid4("stdleitung_art")){return;} query+=await getInputElementNameValueForUrl4("stdleitung_art"); console.log(\'Adding URL param for stdleitung_m\');if(!isInputValueValid4("stdleitung_m")){return;} query+=await getInputElementNameValueForUrl4("stdleitung_m"); console.log(\'Adding URL param for stdanschluss\');if(!isInputValueValid4("stdanschluss")){return;} query+=await getInputElementNameValueForUrl4("stdanschluss"); console.log(\'Adding URL param for anschlussvariante\');if(!isInputValueValid4("anschlussvariante")){return;} query+=await getInputElementNameValueForUrl4("anschlussvariante"); console.log(\'Adding URL param for option_r\');if(!isInputValueValid4("option_r")){return;} query+=await getInputElementNameValueForUrl4("option_r"); console.log(\'Adding URL param for option_y\');if(!isInputValueValid4("option_y")){return;} query+=await getInputElementNameValueForUrl4("option_y"); console.log(\'Adding URL param for option_u\');if(!isInputValueValid4("option_u")){return;} query+=await getInputElementNameValueForUrl4("option_u"); console.log(\'Adding URL param for option_w\');if(!isInputValueValid4("option_w")){return;} query+=await getInputElementNameValueForUrl4("option_w"); console.log(\'Adding URL param for option_d\');if(!isInputValueValid4("option_d")){return;} query+=await getInputElementNameValueForUrl4("option_d"); console.log(\'Adding URL param for option_e\');if(!isInputValueValid4("option_e")){return;} query+=await getInputElementNameValueForUrl4("option_e"); console.log(\'Adding URL param for option_g\');if(!isInputValueValid4("option_g")){return;} query+=await getInputElementNameValueForUrl4("option_g"); console.log(\'Adding URL param for option_h\');if(!isInputValueValid4("option_h")){return;} query+=await getInputElementNameValueForUrl4("option_h"); console.log(\'Adding URL param for option_j\');if(!isInputValueValid4("option_j")){return;} query+=await getInputElementNameValueForUrl4("option_j"); console.log(\'Adding URL param for option_l\');if(!isInputValueValid4("option_l")){return;} query+=await getInputElementNameValueForUrl4("option_l"); console.log(\'Adding URL param for option_m\');if(!isInputValueValid4("option_m")){return;} query+=await getInputElementNameValueForUrl4("option_m"); console.log(\'Adding URL param for option_p\');if(!isInputValueValid4("option_p")){return;} query+=await getInputElementNameValueForUrl4("option_p"); console.log(\'Adding URL param for option_q\');if(!isInputValueValid4("option_q")){return;} query+=await getInputElementNameValueForUrl4("option_q"); console.log(\'Adding URL param for option_v\');if(!isInputValueValid4("option_v")){return;} query+=await getInputElementNameValueForUrl4("option_v"); console.log(\'Adding URL param for option_f\');if(!isInputValueValid4("option_f")){return;} query+=await getInputElementNameValueForUrl4("option_f"); console.log(\'Adding URL param for option_x\');if(!isInputValueValid4("option_x")){return;} query+=await getInputElementNameValueForUrl4("option_x"); console.log(\'Adding URL param for option_uc\');if(!isInputValueValid4("option_uc")){return;} query+=await getInputElementNameValueForUrl4("option_uc"); console.log(\'Adding URL param for option_z\');if(!isInputValueValid4("option_z")){return;} query+=await getInputElementNameValueForUrl4("option_z"); console.log(\'Adding URL param for zusatz1\');if(!isInputValueValid4("zusatz1")){return;} query+=await getInputElementNameValueForUrl4("zusatz1"); console.log(\'Adding URL param for zusatz2\');if(!isInputValueValid4("zusatz2")){return;} query+=await getInputElementNameValueForUrl4("zusatz2"); console.log(\'Adding URL param for zusatz3\');if(!isInputValueValid4("zusatz3")){return;} query+=await getInputElementNameValueForUrl4("zusatz3"); console.log(\'Adding URL param for zusatz4\');if(!isInputValueValid4("zusatz4")){return;} query+=await getInputElementNameValueForUrl4("zusatz4"); console.log(\'Adding URL param for zusatz5\');if(!isInputValueValid4("zusatz5")){return;} query+=await getInputElementNameValueForUrl4("zusatz5"); console.log(\'Adding URL param for zusatz6\');if(!isInputValueValid4("zusatz6")){return;} query+=await getInputElementNameValueForUrl4("zusatz6"); console.log(\'Adding URL param for zusatz7\');if(!isInputValueValid4("zusatz7")){return;} query+=await getInputElementNameValueForUrl4("zusatz7"); console.log(\'Adding URL param for zusatz8\');if(!isInputValueValid4("zusatz8")){return;} query+=await getInputElementNameValueForUrl4("zusatz8"); console.log(\'Adding URL param for zusatz9\');if(!isInputValueValid4("zusatz9")){return;} query+=await getInputElementNameValueForUrl4("zusatz9"); console.log(\'Adding URL param for zusatz10\');if(!isInputValueValid4("zusatz10")){return;} query+=await getInputElementNameValueForUrl4("zusatz10"); console.log(\'Adding URL param for zusatz11\');if(!isInputValueValid4("zusatz11")){return;} query+=await getInputElementNameValueForUrl4("zusatz11"); console.log(\'Adding URL param for zusatz12\');if(!isInputValueValid4("zusatz12")){return;} query+=await getInputElementNameValueForUrl4("zusatz12"); console.log(\'Adding URL param for zusatz13\');if(!isInputValueValid4("zusatz13")){return;} query+=await getInputElementNameValueForUrl4("zusatz13"); console.log(\'Adding URL param for zusatz14\');if(!isInputValueValid4("zusatz14")){return;} query+=await getInputElementNameValueForUrl4("zusatz14"); console.log(\'Adding URL param for zusatz15\');if(!isInputValueValid4("zusatz15")){return;} query+=await getInputElementNameValueForUrl4("zusatz15"); console.log(\'Adding URL param for zusatz16\');if(!isInputValueValid4("zusatz16")){return;} query+=await getInputElementNameValueForUrl4("zusatz16"); console.log(\'Adding URL param for zusatz17\');if(!isInputValueValid4("zusatz17")){return;} query+=await getInputElementNameValueForUrl4("zusatz17"); console.log(\'Adding URL param for zusatz18\');if(!isInputValueValid4("zusatz18")){return;} query+=await getInputElementNameValueForUrl4("zusatz18"); console.log(\'Adding URL param for zusatz19\');if(!isInputValueValid4("zusatz19")){return;} query+=await getInputElementNameValueForUrl4("zusatz19"); console.log(\'Adding URL param for zusatz20\');if(!isInputValueValid4("zusatz20")){return;} query+=await getInputElementNameValueForUrl4("zusatz20"); console.log(\'Adding URL param for blockausrichtung\');if(!isInputValueValid4("blockausrichtung")){return;} query+=await getInputElementNameValueForUrl4("blockausrichtung"); console.log(\'Adding URL param for blockposition\');if(!isInputValueValid4("blockposition")){return;} query+=await getInputElementNameValueForUrl4("blockposition"); console.log(\'Adding URL param for blockwinkel\');if(!isInputValueValid4("blockwinkel")){return;} query+=await getInputElementNameValueForUrl4("blockwinkel"); console.log(\'Adding URL param for expertenmodus\');if(!isInputValueValid4("expertenmodus")){return;} query+=await getInputElementNameValueForUrl4("expertenmodus"); console.log(\'Adding URL param for sondernennkraft\');if(!isInputValueValid4("sondernennkraft")){return;} query+=await getInputElementNameValueForUrl4("sondernennkraft"); console.log(\'Adding URL param for sensorattributecsv\');if(!isInputValueValid4("sensorattributecsv")){return;} query+=await getInputElementNameValueForUrl4("sensorattributecsv"); console.log(\'Adding URL param for bemerkung\');if(!isInputValueValid4("bemerkung")){return;} query+=await getInputElementNameValueForUrl4("bemerkung"); console.log(\'Adding URL param for saeulendiagramm\');query+="saeulendiagramm="+encodeURIComponent(await window.getSaeulenzeichnerCanvasBase64())+"&"; console.log(\'Adding URL param for projektname\');if(!isInputValueValid4("projektname")){return;} query+=await getInputElementNameValueForUrl4("projektname"); console.log(\'Adding URL param for messstelle\');if(!isInputValueValid4("messstelle")){return;} query+=await getInputElementNameValueForUrl4("messstelle"); console.log(\'Adding URL param for typbezeichner\');if(!isInputValueValid4("typbezeichner")){return;} query+=await getInputElementNameValueForUrl4("typbezeichner"); console.log(\'Adding URL param for alternativeswinkelsystem\');if(!isInputValueValid4("alternativeswinkelsystem")){return;} query+=await getInputElementNameValueForUrl4("alternativeswinkelsystem"); console.log(\'Adding URL param for winkel1cnvs\');if(!isInputValueValid4("winkel1cnvs")){return;} query+=await getInputElementNameValueForUrl4("winkel1cnvs"); console.log(\'Adding URL param for winkel2cnvs\');if(!isInputValueValid4("winkel2cnvs")){return;} query+=await getInputElementNameValueForUrl4("winkel2cnvs"); console.log(\'Adding URL param for winkel1alternativcnvs\');if(!isInputValueValid4("winkel1alternativcnvs")){return;} query+=await getInputElementNameValueForUrl4("winkel1alternativcnvs"); console.log(\'Adding URL param for winkel2alternativcnvs\');if(!isInputValueValid4("winkel2alternativcnvs")){return;} query+=await getInputElementNameValueForUrl4("winkel2alternativcnvs"); console.log(\'Adding URL param for winkel4cnvs\');if(!isInputValueValid4("winkel4cnvs")){return;} query+=await getInputElementNameValueForUrl4("winkel4cnvs"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__li\');if(!isInputValueValid4("auslegung__winkel3messrichtung__li")){return;} query+=await getInputElementNameValueForUrl4("auslegung__winkel3messrichtung__li"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__re\');if(!isInputValueValid4("auslegung__winkel3messrichtung__re")){return;} query+=await getInputElementNameValueForUrl4("auslegung__winkel3messrichtung__re"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__ob\');if(!isInputValueValid4("auslegung__winkel3messrichtung__ob")){return;} query+=await getInputElementNameValueForUrl4("auslegung__winkel3messrichtung__ob"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__un\');if(!isInputValueValid4("auslegung__winkel3messrichtung__un")){return;} query+=await getInputElementNameValueForUrl4("auslegung__winkel3messrichtung__un"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__wiha\');if(!isInputValueValid4("auslegung__winkel3messrichtung__wiha")){return;} query+=await getInputElementNameValueForUrl4("auslegung__winkel3messrichtung__wiha"); console.log(\'Adding URL param for auslegung__winkel3messrichtung__frei\');if(!isInputValueValid4("auslegung__winkel3messrichtung__frei")){return;} query+=await getInputElementNameValueForUrl4("auslegung__winkel3messrichtung__frei"); console.log(\'Adding URL param for messrichtung_winkel\');if(!isInputValueValid4("messrichtung_winkel")){return;} query+=await getInputElementNameValueForUrl4("messrichtung_winkel"); console.log(\'Adding URL param for bild\');query+="bild="+encodeURIComponent(await window.getWinkelzeichnerCanvasBase64())+"&"; if(!isFormValid4()){return;} let response=await fetch(url, {method:"POST", body: query,headers:{\'Content-Type\': \'application/x-www-form-urlencoded\'}}); console.log(response); let responseCode=await response.status; if(responseCode>=200 && responseCode<300){let responseText=await response.text(); console.log(responseText); eval(responseText); } else { console.log(\'Fehlercode: \'+responseCode); let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'An error occurred in the system.\'; errorElement.classList.add(\'fabjsmessage-error\'); errorShown=true; } if(errorShown==false){alert(\'An error occurred in the system.\');} } let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'We\\\'ve got your request.\'; errorElement.classList.add(\'fabjsmessage-info\'); errorShown=true; } if(errorShown==false){alert(\'We\\\'ve got your request.\');} }finally{if(btnFabInputField1777530690270!=null){btnFabInputField1777530690270.classList.remove(\'button-processing\');}}}catch(error){ console.error(error); let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'An error occurred in the system.\'; errorElement.classList.add(\'fabjsmessage-error\'); errorShown=true; } if(errorShown==false){alert(\'An error occurred in the system.\');} throw error; } } </script><button id="fabInputField1777530690270" type="button" onclick="fabInputFieldSubmitBlst0(\'https://administration.haehne-configurator.de/webservice-14/Auslegung\');">By e-mail</button> </div> <div id="uploadblock" class="uploadblock"> <h2>Load file</h2> <input name="xmlfile" id="xmlfile" type="file" accept="text/xml,.xml,.hne,.mkb,application/xml" />  <script> async function getInputElementNameValueForUrl1(inputElementId){ try{ let element=document.getElementById(inputElementId); if(element!=null){ if(typeof element.GetTechnicalUrlValue===\'function\'){let namevalue=element.name; if(namevalue===undefined){let nameAtt=element.attributes["name"];if(nameAtt!=null){namevalue=nameAtt.value;}}if(namevalue===undefined){namevalue=element.id;}let techurlval=element.GetTechnicalUrlValue(); if(techurlval==null || techurlval==\'\'){return "";} return namevalue+"="+encodeURIComponent(techurlval)+"&"; }else if(element.type==\'file\'){ const toBase64 = file => new Promise((resolve, reject) => { const reader = new FileReader(); if(file!=null){ reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = reject; } else { resolve(null); } }); let base64=await toBase64(element.files[0]); console.log(encodeURIComponent(base64)); return element.name+"="+encodeURIComponent(base64)+"&"; }else if(element.multiple){ let options=element.options; let optionsurl=""; for(let i=0;i<options.length;i++){ if(options[i].selected){ optionsurl+=element.name+"="+encodeURIComponent(options[i].value)+"&"; } } return optionsurl; }else if(element.tagName==\'CANVAS\'){ let dataurl=await element.toDataURL("image/png");return element.id+"="+encodeURIComponent(dataurl)+"&"; }else if(element.type==\'checkbox\'){if(element.checked){return element.name+"="+encodeURIComponent(element.checked)+"&";}else{return "";} }else if(element.type==\'radio\'){if(element.checked){return element.name+"="+encodeURIComponent(element.value)+"&";}else{return "";} }else if(element.tagName==\'SELECT\'){ console.log(element.id+\': \'+element.value); if(element.value==null || element.value==\'\'){return "";}else{return element.name+"="+encodeURIComponent(element.value)+"&";} }else{ return element.name+"="+encodeURIComponent(element.value)+"&"; } } else{return "";} }catch(error){ console.error(error); let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'An error occurred in the system.\'; errorElement.classList.add(\'fabjsmessage-error\'); errorShown=true; } if(errorShown==false){alert(\'An error occurred in the system.\');} throw error; } } function isInputValueValid1(inputElementId){ let element=document.getElementById(inputElementId); if(element!=null && element.tagName==\'INPUT\'){ console.log(element); element.classList.remove(\'faberror\'); element.setCustomValidity(""); let valid=element.reportValidity(); if(valid==false){ if(inputElementId==\'datenschutzok\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'telefon\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'email\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} if(inputElementId==\'stueckzahl\'){fabTabLayoutnullOpenTabSheets([\'tab-projekt\']);} element.classList.add(\'faberror\'); element.scrollIntoView({behavior:"smooth",block:"center"}); element.focus(); console.log(\'Nicht valide: \'+inputElementId); } return valid; }else{ return true; } } function isFormValid1(){ console.log(\'Checking validity...\'); return true; } function getUrlParameterNameValueForUrl1(urlParameterName){ const searchParams = new URLSearchParams(window.location.search); if(searchParams.has(urlParameterName)){ return urlParameterName+\'=\'+searchParams.get(urlParameterName)+\'&\'; }else{ return ""; } } async function fabInputFieldxmluploadSubmitBlst0(url){ try{ let btnFabInputFieldxmlupload1777530690271=null;try{btnFabInputFieldxmlupload1777530690271=document.getElementById(\'fabInputFieldxmlupload1777530690271\');if(btnFabInputFieldxmlupload1777530690271!=null){if(btnFabInputFieldxmlupload1777530690271.classList.contains(\'button-processing\')){return;}btnFabInputFieldxmlupload1777530690271.classList.add(\'button-processing\');}let query="messageelementid=nachricht&"; console.log(\'Adding URL param for xmlfile\');if(!isInputValueValid1("xmlfile")){return;} query+=await getInputElementNameValueForUrl1("xmlfile"); if(!isFormValid1()){return;} let response=await fetch(url, {method:"POST", body: query,headers:{\'Content-Type\': \'application/x-www-form-urlencoded\'}}); console.log(response); let responseCode=await response.status; if(responseCode>=200 && responseCode<300){let responseText=await response.text(); console.log(responseText); eval(responseText); } else { console.log(\'Fehlercode: \'+responseCode); let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'An error occurred in the system.\'; errorElement.classList.add(\'fabjsmessage-error\'); errorShown=true; } if(errorShown==false){alert(\'An error occurred in the system.\');} } }finally{if(btnFabInputFieldxmlupload1777530690271!=null){btnFabInputFieldxmlupload1777530690271.classList.remove(\'button-processing\');}}}catch(error){ console.error(error); let errorElement=null; let errorShown=false; errorElement=document.getElementById(\'nachricht\'); if(errorShown==false && errorElement!=null){ errorElement.innerHTML=\'An error occurred in the system.\'; errorElement.classList.add(\'fabjsmessage-error\'); errorShown=true; } if(errorShown==false){alert(\'An error occurred in the system.\');} throw error; } } </script><button id="fabInputFieldxmlupload1777530690271" type="button" onclick="fabInputFieldxmluploadSubmitBlst0(\'https://administration.haehne-configurator.de/webservice-15/Auslegung\');">Upload</button> <div id="uploadnachricht"></div> </div> </div> </div> <script type="module" src="https://haehne-configurator.de/script/sensordaten.js"> </script> <script type="module" src="https://haehne-configurator.de/script/sensortypdaten.js"> </script> <script type="module" src="https://haehne-configurator.de/script/sensorregeldaten.js"> </script> <script type="module" src="https://haehne-configurator.de/script/sensortypauswahl.js"> </script> <script type="module" src="https://haehne-configurator.de/script/beschriftungen.js"> </script> <script type="module" src="https://haehne-configurator.de/script/beschriftungen-ausgabe.js"> </script> <script type="module" src="https://haehne-configurator.de/script/meldungeni18n.js"> </script> <script type="module" src="https://haehne-configurator.de/script/filter.js"> </script> <script type="module" src="https://haehne-configurator.de/script/sensoren.js"> </script> <script>function initBandzugOderBreite(){ let urlParams=new URLSearchParams(document.location.search); let bandzugOderBreiteValue=urlParams.get(\'bandzugoderbreite\'); if (bandzugOderBreiteValue==\'breite\'){ window.activateBandzugOderBreite(\'breite\', \'bandzugoderbreite_breite\',false); }else{ window.activateBandzugOderBreite(\'bandzug\', \'bandzugoderbreite_bandzug\',false); } let bandzugOderBreiteMinValue=urlParams.get(\'bandzugoderbreite_min\'); if (bandzugOderBreiteMinValue==\'breite\'){ window.activateBandzugOderBreite(\'breite\', \'bandzugoderbreite_min_breite\',false); }else{ window.activateBandzugOderBreite(\'bandzug\', \'bandzugoderbreite_min_bandzug\',false); } } function checkLoadedAndInit(){ if (window.activateBandzugOderBreite===undefined||window.recalcValues===undefined||window.recalcGain===undefined||window.redrawSaeule===undefined||window.syncSensordaten===undefined||window.fillSensordatenFromUrl===undefined||window.resizeWinkelzeichner===undefined) {setTimeout(() => {checkLoadedAndInit();}, 200);} else { window.recalcValues(null,null,null); window.recalcGain(null,null,null); window.fillSensordatenFromUrl(); initBandzugOderBreite(); window.resizeWinkelzeichner(); } } addEventListener("DOMContentLoaded", (event) => {checkLoadedAndInit()}); </script> </form> <script type="text/javascript" id="fabInputField1777530690272"> let fabInputFieldnullUrlParms=new URLSearchParams(document.location.search); function fabInputFieldnullSetValFromUrl(eId,paramname,isDecNumber){ let paramval=fabInputFieldnullUrlParms.get(paramname); if(paramval!=null){ let e=document.getElementById(eId); if(e.type==\'checkbox\'){ if(paramval==\'true\'||paramval==\'on\'){ e.checked=true;} }else if(isDecNumber){ e.value=paramval==null?\'\':paramval.replace(\'.\',\'.\');}else{ e.value=paramval;} } } fabInputFieldnullSetValFromUrl(\'beratung\',\'beratung\',false); fabInputFieldnullSetValFromUrl(\'katalog\',\'katalog\',false); fabInputFieldnullSetValFromUrl(\'angebot\',\'angebot\',false); fabInputFieldnullSetValFromUrl(\'stueckzahl\',\'stueckzahl\',false); fabInputFieldnullSetValFromUrl(\'firma\',\'firma\',false); fabInputFieldnullSetValFromUrl(\'strasse\',\'strasse\',false); fabInputFieldnullSetValFromUrl(\'plz\',\'plz\',false); fabInputFieldnullSetValFromUrl(\'ort\',\'ort\',false); fabInputFieldnullSetValFromUrl(\'name\',\'name\',false); fabInputFieldnullSetValFromUrl(\'telefon\',\'telefon\',false); fabInputFieldnullSetValFromUrl(\'email\',\'email\',false); fabInputFieldnullSetValFromUrl(\'datum\',\'datum\',false); fabInputFieldnullSetValFromUrl(\'datenschutzok\',\'datenschutzok\',false); fabInputFieldnullSetValFromUrl(\'bandzug\',\'bandzug\',true); fabInputFieldnullSetValFromUrl(\'zugn_pro_breitemm\',\'zugn_pro_breitemm\',true); fabInputFieldnullSetValFromUrl(\'bahnbreitemm\',\'bahnbreitemm\',true); fabInputFieldnullSetValFromUrl(\'bandzugmin\',\'bandzugmin\',true); fabInputFieldnullSetValFromUrl(\'zugn_pro_breitemm_min\',\'zugn_pro_breitemm_min\',true); fabInputFieldnullSetValFromUrl(\'bahnbreitemm_min\',\'bahnbreitemm_min\',true); fabInputFieldnullSetValFromUrl(\'walzengewicht\',\'walzengewicht\',true); function fabInputFieldnullwalzengewicht_einheitSetCheckedFromUrl(){ let paramval=fabInputFieldnullUrlParms.get(\'walzengewicht_einheit\'); console.log(\'Prüfe kg / auslegung__walzengewicht_einheit__kg\'); if(paramval==\'kg\'){document.getElementById(\'auslegung__walzengewicht_einheit__kg\').checked=true;} console.log(\'Prüfe lb / auslegung__walzengewicht_einheit__lb\'); if(paramval==\'lb\'){document.getElementById(\'auslegung__walzengewicht_einheit__lb\').checked=true;} console.log(\'Prüfe n / auslegung__walzengewicht_einheit__n\'); if(paramval==\'n\'){document.getElementById(\'auslegung__walzengewicht_einheit__n\').checked=true;} } fabInputFieldnullwalzengewicht_einheitSetCheckedFromUrl(); fabInputFieldnullSetValFromUrl(\'winkel1\',\'winkel1\',true); fabInputFieldnullSetValFromUrl(\'winkel2\',\'winkel2\',true); fabInputFieldnullSetValFromUrl(\'winkel1alternativ\',\'winkel1alternativ\',true); fabInputFieldnullSetValFromUrl(\'winkel2alternativ\',\'winkel2alternativ\',true); function fabInputFieldnulltypSetCheckedFromUrl(){ let paramval=fabInputFieldnullUrlParms.get(\'typ\'); console.log(\'Prüfe  / auslegung__typ__nothingselected\'); if(paramval==\'\'){document.getElementById(\'auslegung__typ__nothingselected\').checked=true;} console.log(\'Prüfe BZA / typ__sensortyp__bza\'); if(paramval==\'BZA\'){document.getElementById(\'typ__sensortyp__bza\').checked=true;} console.log(\'Prüfe BZU / typ__sensortyp__bzu\'); if(paramval==\'BZU\'){document.getElementById(\'typ__sensortyp__bzu\').checked=true;} console.log(\'Prüfe RCA / typ__sensortyp__rca\'); if(paramval==\'RCA\'){document.getElementById(\'typ__sensortyp__rca\').checked=true;} console.log(\'Prüfe RCZ / typ__sensortyp__rcz\'); if(paramval==\'RCZ\'){document.getElementById(\'typ__sensortyp__rcz\').checked=true;} console.log(\'Prüfe RCR / typ__sensortyp__rcr\'); if(paramval==\'RCR\'){document.getElementById(\'typ__sensortyp__rcr\').checked=true;} console.log(\'Prüfe RC / typ__sensortyp__rc\'); if(paramval==\'RC\'){document.getElementById(\'typ__sensortyp__rc\').checked=true;} console.log(\'Prüfe BZLA / typ__sensortyp__bzla\'); if(paramval==\'BZLA\'){document.getElementById(\'typ__sensortyp__bzla\').checked=true;} console.log(\'Prüfe BZR / typ__sensortyp__bzr\'); if(paramval==\'BZR\'){document.getElementById(\'typ__sensortyp__bzr\').checked=true;} console.log(\'Prüfe ZAD / typ__sensortyp__zad\'); if(paramval==\'ZAD\'){document.getElementById(\'typ__sensortyp__zad\').checked=true;} console.log(\'Prüfe ZAK / typ__sensortyp__zak\'); if(paramval==\'ZAK\'){document.getElementById(\'typ__sensortyp__zak\').checked=true;} console.log(\'Prüfe RMR3 / typ__sensortyp__rmr3\'); if(paramval==\'RMR3\'){document.getElementById(\'typ__sensortyp__rmr3\').checked=true;} console.log(\'Prüfe MWF / typ__sensortyp__mwf\'); if(paramval==\'MWF\'){document.getElementById(\'typ__sensortyp__mwf\').checked=true;} console.log(\'Prüfe MWFM90 / typ__sensortyp__mwfm90\'); if(paramval==\'MWFM90\'){document.getElementById(\'typ__sensortyp__mwfm90\').checked=true;} console.log(\'Prüfe MWB / typ__sensortyp__mwb\'); if(paramval==\'MWB\'){document.getElementById(\'typ__sensortyp__mwb\').checked=true;} console.log(\'Prüfe BZH_A / typ__sensortyp__bzh_a\'); if(paramval==\'BZH_A\'){document.getElementById(\'typ__sensortyp__bzh_a\').checked=true;} console.log(\'Prüfe BZH_A01 / typ__sensortyp__bzh_a01\'); if(paramval==\'BZH_A01\'){document.getElementById(\'typ__sensortyp__bzh_a01\').checked=true;} console.log(\'Prüfe BZV_A / typ__sensortyp__bzv_a\'); if(paramval==\'BZV_A\'){document.getElementById(\'typ__sensortyp__bzv_a\').checked=true;} console.log(\'Prüfe BZV_A01 / typ__sensortyp__bzv_a01\'); if(paramval==\'BZV_A01\'){document.getElementById(\'typ__sensortyp__bzv_a01\').checked=true;} console.log(\'Prüfe BZH / typ__sensortyp__bzh\'); if(paramval==\'BZH\'){document.getElementById(\'typ__sensortyp__bzh\').checked=true;} console.log(\'Prüfe BZHB / typ__sensortyp__bzhb\'); if(paramval==\'BZHB\'){document.getElementById(\'typ__sensortyp__bzhb\').checked=true;} console.log(\'Prüfe BZH-K / typ__sensortyp__bzh_k\'); if(paramval==\'BZH-K\'){document.getElementById(\'typ__sensortyp__bzh_k\').checked=true;} console.log(\'Prüfe BZV-K / typ__sensortyp__bzv_k\'); if(paramval==\'BZV-K\'){document.getElementById(\'typ__sensortyp__bzv_k\').checked=true;} console.log(\'Prüfe BZH-PR / typ__sensortyp__bzh_pr\'); if(paramval==\'BZH-PR\'){document.getElementById(\'typ__sensortyp__bzh_pr\').checked=true;} } fabInputFieldnulltypSetCheckedFromUrl(); fabInputFieldnullSetValFromUrl(\'typ2\',\'typ\',false); function fabInputFieldnulllagerungSetCheckedFromUrl(){ let paramval=fabInputFieldnullUrlParms.get(\'lagerung\'); console.log(\'Prüfe einstg / auslegung__lagerung__einstg\'); if(paramval==\'einstg\'){document.getElementById(\'auslegung__lagerung__einstg\').checked=true;} console.log(\'Prüfe beidstg / auslegung__lagerung__beidstg\'); if(paramval==\'beidstg\'){document.getElementById(\'auslegung__lagerung__beidstg\').checked=true;} } fabInputFieldnulllagerungSetCheckedFromUrl(); function fabInputFieldnullblockausrichtungSetCheckedFromUrl(){ let paramval=fabInputFieldnullUrlParms.get(\'blockausrichtung\'); console.log(\'Prüfe ohne / auslegung__blockausrichtung__ohne\'); if(paramval==\'ohne\'){document.getElementById(\'auslegung__blockausrichtung__ohne\').checked=true;} console.log(\'Prüfe un / auslegung__blockausrichtung__un\'); if(paramval==\'un\'){document.getElementById(\'auslegung__blockausrichtung__un\').checked=true;} console.log(\'Prüfe li / auslegung__blockausrichtung__li\'); if(paramval==\'li\'){document.getElementById(\'auslegung__blockausrichtung__li\').checked=true;} console.log(\'Prüfe ob / auslegung__blockausrichtung__ob\'); if(paramval==\'ob\'){document.getElementById(\'auslegung__blockausrichtung__ob\').checked=true;} console.log(\'Prüfe re / auslegung__blockausrichtung__re\'); if(paramval==\'re\'){document.getElementById(\'auslegung__blockausrichtung__re\').checked=true;} } fabInputFieldnullblockausrichtungSetCheckedFromUrl(); function fabInputFieldnullblockpositionSetCheckedFromUrl(){ let paramval=fabInputFieldnullUrlParms.get(\'blockposition\'); console.log(\'Prüfe ohne / auslegung__blockposition__ohne\'); if(paramval==\'ohne\'){document.getElementById(\'auslegung__blockposition__ohne\').checked=true;} console.log(\'Prüfe un / auslegung__blockposition__un\'); if(paramval==\'un\'){document.getElementById(\'auslegung__blockposition__un\').checked=true;} console.log(\'Prüfe li / auslegung__blockposition__li\'); if(paramval==\'li\'){document.getElementById(\'auslegung__blockposition__li\').checked=true;} console.log(\'Prüfe ob / auslegung__blockposition__ob\'); if(paramval==\'ob\'){document.getElementById(\'auslegung__blockposition__ob\').checked=true;} console.log(\'Prüfe re / auslegung__blockposition__re\'); if(paramval==\'re\'){document.getElementById(\'auslegung__blockposition__re\').checked=true;} console.log(\'Prüfe frei / auslegung__blockposition__frei\'); if(paramval==\'frei\'){document.getElementById(\'auslegung__blockposition__frei\').checked=true;} } fabInputFieldnullblockpositionSetCheckedFromUrl(); fabInputFieldnullSetValFromUrl(\'blockwinkel\',\'blockwinkel\',true); fabInputFieldnullSetValFromUrl(\'expertenmodus\',\'expertenmodus\',false); fabInputFieldnullSetValFromUrl(\'sondernennkraft\',\'sondernennkraft\',true); fabInputFieldnullSetValFromUrl(\'bemerkung\',\'bemerkung\',false); fabInputFieldnullSetValFromUrl(\'projektname\',\'projektname\',false); fabInputFieldnullSetValFromUrl(\'messstelle\',\'messstelle\',false); fabInputFieldnullSetValFromUrl(\'alternativeswinkelsystem\',\'alternativeswinkelsystem\',false); fabInputFieldnullSetValFromUrl(\'winkel1cnvs\',\'winkel1cnvs\',true); fabInputFieldnullSetValFromUrl(\'winkel2cnvs\',\'winkel2cnvs\',true); fabInputFieldnullSetValFromUrl(\'winkel1alternativcnvs\',\'winkel1alternativcnvs\',true); fabInputFieldnullSetValFromUrl(\'winkel2alternativcnvs\',\'winkel2alternativcnvs\',true); fabInputFieldnullSetValFromUrl(\'winkel4cnvs\',\'winkel4cnvs\',true); fabInputFieldnullSetValFromUrl(\'messrichtung_winkel\',\'messrichtung_winkel\',true); </script><script type="text/javascript" id="fabInputFieldxmlupload1777530690273"> </script><script type="text/javascript" id="fabTabLayout1777530690274">function fabTabLayoutnullOpenTabSheets(tabShtIds){ if(!Array.isArray(tabShtIds)){console.err(\'Parameter is not an array\');console.err(tabShtIds);return;}let allTabShtIds=[\'tab-projekt\',\'tab-kraft\',\'tab-sensortyp\',\'tab-optionen\']; let allTabBtnIds=[\'tab-btn-kraft\',\'tab-btn-sensortyp\',\'tab-btn-optionen\',\'tab-btn-projekt\',\'fabTabLayout1777530690217\',\'fabTabLayout1777530690218\',\'fabTabLayout1777530690219\',\'fabTabLayout1777530690220\',\'fabTabLayout1777530690221\',\'fabTabLayout1777530690222\',\'fabTabLayout1777530690223\',\'fabTabLayout1777530690224\',\'fabTabLayout1777530690225\',\'fabTabLayout1777530690226\',\'fabTabLayout1777530690227\',\'fabTabLayout1777530690228\',\'fabTabLayout1777530690229\',\'fabTabLayout1777530690230\',\'fabTabLayout1777530690231\',\'fabTabLayout1777530690232\',\'fabTabLayout1777530690233\',\'fabTabLayout1777530690234\',\'fabTabLayout1777530690235\',\'fabTabLayout1777530690236\',\'fabTabLayout1777530690237\',\'fabTabLayout1777530690238\',\'fabTabLayout1777530690239\',\'fabTabLayout1777530690240\',\'fabTabLayout1777530690241\',\'fabTabLayout1777530690242\',\'fabTabLayout1777530690243\',\'fabTabLayout1777530690244\',\'fabTabLayout1777530690245\',\'fabTabLayout1777530690246\',\'fabTabLayout1777530690247\',\'fabTabLayout1777530690248\',\'fabTabLayout1777530690249\',\'fabTabLayout1777530690250\',\'fabTabLayout1777530690251\',\'fabTabLayout1777530690252\',\'fabTabLayout1777530690253\',\'fabTabLayout1777530690254\',\'fabTabLayout1777530690255\',\'fabTabLayout1777530690256\',\'fabTabLayout1777530690257\',\'fabTabLayout1777530690258\',\'fabTabLayout1777530690259\',\'fabTabLayout1777530690260\',\'fabTabLayout1777530690261\',\'fabTabLayout1777530690262\',\'fabTabLayout1777530690263\',\'fabTabLayout1777530690264\',\'fabTabLayout1777530690265\',\'fabTabLayout1777530690266\',\'fabTabLayout1777530690267\',\'fabTabLayout1777530690268\']; let btnidsByShtid=new Map(); btnidsByShtid.set(\'tab-optionen\',[\'tab-btn-optionen\',\'fabTabLayout1777530690217\',\'fabTabLayout1777530690219\',\'fabTabLayout1777530690220\',\'fabTabLayout1777530690221\',\'fabTabLayout1777530690222\',\'fabTabLayout1777530690223\',\'fabTabLayout1777530690224\',\'fabTabLayout1777530690225\',\'fabTabLayout1777530690226\',\'fabTabLayout1777530690227\',\'fabTabLayout1777530690228\',\'fabTabLayout1777530690229\',\'fabTabLayout1777530690230\',\'fabTabLayout1777530690231\',\'fabTabLayout1777530690232\',\'fabTabLayout1777530690233\',\'fabTabLayout1777530690234\',\'fabTabLayout1777530690235\',\'fabTabLayout1777530690236\',\'fabTabLayout1777530690237\',\'fabTabLayout1777530690238\',\'fabTabLayout1777530690239\',\'fabTabLayout1777530690240\',\'fabTabLayout1777530690241\',\'fabTabLayout1777530690242\',\'fabTabLayout1777530690243\',\'fabTabLayout1777530690244\',\'fabTabLayout1777530690245\',\'fabTabLayout1777530690246\',\'fabTabLayout1777530690247\',\'fabTabLayout1777530690248\',\'fabTabLayout1777530690249\',\'fabTabLayout1777530690250\',\'fabTabLayout1777530690251\',\'fabTabLayout1777530690252\',\'fabTabLayout1777530690253\',\'fabTabLayout1777530690254\',\'fabTabLayout1777530690255\',\'fabTabLayout1777530690256\',\'fabTabLayout1777530690257\',\'fabTabLayout1777530690258\',\'fabTabLayout1777530690259\',\'fabTabLayout1777530690260\',\'fabTabLayout1777530690261\',\'fabTabLayout1777530690262\',\'fabTabLayout1777530690263\',\'fabTabLayout1777530690264\',\'fabTabLayout1777530690266\']); btnidsByShtid.set(\'tab-projekt\',[\'tab-btn-projekt\',\'fabTabLayout1777530690268\']); btnidsByShtid.set(\'tab-kraft\',[\'tab-btn-kraft\',\'fabTabLayout1777530690265\']); btnidsByShtid.set(\'tab-sensortyp\',[\'tab-btn-sensortyp\',\'fabTabLayout1777530690218\',\'fabTabLayout1777530690267\']); let activeBtnids=[]; for(let aTabShtId of allTabShtIds){ let aTabSht=document.getElementById(aTabShtId); if(tabShtIds.includes(aTabShtId)){ aTabSht.style.display=\'block\';aTabSht.classList.add(\'tab-sheet-active\');aTabSht.classList.remove(\'tab-sheet-inactive\');let btnidsForSht=btnidsByShtid.get(aTabShtId); if(btnidsForSht!=null){ for(aBtnId of btnidsForSht.values()){ activeBtnids.push(aBtnId); } } }else{ aTabSht.style.display=\'none\';aTabSht.classList.remove(\'tab-sheet-active\');aTabSht.classList.add(\'tab-sheet-inactive\');} } for(let aBtnId of activeBtnids){console.log(\'Active: \'+aBtnId);} let activeBtnidsSet=new Set(activeBtnids);for(let aBtnId of allTabBtnIds){ console.log(\'Loop for button \'+aBtnId); let aBtn=document.getElementById(aBtnId); if(activeBtnidsSet.has(aBtnId)){ aBtn.classList.remove(\'tab-button-inactive\');aBtn.classList.add(\'tab-button-active\');}else{ aBtn.classList.add(\'tab-button-inactive\');aBtn.classList.remove(\'tab-button-active\');} } } </script><script type="text/javascript" id="fabTabLayout1777530690275">fabTabLayoutnullOpenTabSheets([\'tab-kraft\']);document.getElementById(\'tab-bar\').scrollIntoView({ behavior: "smooth", block: "start", inline: "nearest" });document.fabAfterTabChange(); </script>';
var scriptElements=element.getElementsByTagName('script');
for (var i=0;i<scriptElements.length;i++) {
var node=scriptElements[i];
var parent=node.parentElement;
var newElement = document.createElement('script');
if (node.async==true){newElement.async=node.async;}
newElement.textContent=node.textContent;
var nodeSrc=node.getAttribute('src');
if(nodeSrc!=null){newElement.setAttribute('src',nodeSrc);}
var scriptType=node.getAttribute('type');if(scriptType==null){scriptType='text/javascript';}
newElement.setAttribute('type',scriptType);
parent.insertBefore(newElement,node);
parent.removeChild(node);
}