1/* ver: 01.03.2025-13.25 uur, Regel 1224 -1250 De bestaande AdBlock vertaging aangepast, werket ineens niet meer. Nieuwe methode met 'promise' gebruikt, Ook setTime werkt niet in FF en Edge! Zie mail aan self*/ 2/* ver: 23.02.2025-16.20 uur, Regel 414 - nu ook voor Chain not verified een eigen GIF plaatje laden met '_c' achteraan (van chain) ipv _p voor partly*/ 3/* ver: 30.05.2024-11.20 uur, Regel 457 - Ophalen new Cookie NumBrand toegevoegd voor dat aantal op pagina gc_what.htm */ 4/* ver: 29.05.2024-13.00 uur, Regel 1384 - er stond myarr{ubi] i.p.v. myArr[ubi] (Hoofdletter A.) OMG heeft ff geduurd */ 5/* ver: 23.05.2024-13.20 uur, Regel 1032 - 1051 voorzien van If functie indien er geen links ingevuld zijn, tekst toten en niets berekenen. */ 6/* ver: 02.04.2024-12.15 uur, Tekst in Mask aangepast en tevens de gc_main.css file voor juiste plaatsing teksten */ 7/* ver: 29.03.2024-10.56 uur, Werkte neit meer, er was geen GC_UBI cookie: document.cookie = NameOfCookie + "=" + escape(Cookie_Content) + '; SameSite=Lax;'; VERVANGEN door set_cookie */ 8/* ver: 27.07.2023-12.30 uur, creAdd() aangepast zodat Subject in mail wordt aangemaakt ipv achter adres wordt geplakt (? ipv &). */ 9/* ver: 04.02.2022-12.30 uur, Tekst Sinkhole Mask aangeoast, ok AdBlock erbij genoemd */ 10/* ver: 10.11.2021-1x.x0 uur, fnPiHolePresent() toegevoegd om bijv.CyberSec te detecteren */ 11/* ver: 13.06.2021-1x.x0 uur, Bij Load Bike Gearing gebruik nu automatisch openen van Bike Info plus Stock data */ 12/* ver: 17.10.2020-12.30 uur, her en der Speed49Combo en SpeedGearRPM teksten aangepast met extra 'GPS' deel */ 13 14/* Bepaal of er MainPage data is en laadt deze of anders zet de Units volgens Koekje */ 15function fnSetData() { 16 /* console.log("Dit is fnSetData"); */ 17 begin = document.cookie.indexOf("GC_MainPage_Data"+"="); 18 if (begin != -1) 19 { /* alert("Mainpage data wordt nu terug gelezen !: " + begin); */ 20 fnLoadSetups("gcm","Maindat"); 21 /* Ook de ABDI data gereed maken, alleen maar als er MainPage data is */ 22 fnABDI('PageLoad'); 23 fnUpdDrvTypTxt(document.getElementById("FinDrivTyp").value) /* 6.5 - nodig om bij reload page de Devider texten aan te passen */ 24 } 25 else { 26 /* alert("Dit is fnSetData, er is GEEN MainPAge cookie"); */ 27 var Units_koekje = get_cookie('GC_Units'); 28 /* alert("landkoekje is: "+Units_koekje); */ 29 30 if (Units_koekje == null) { 31 32 var expiremins =525600; /* about 1 year */ 33 var ExpireDate = new Date (); 34 ExpireDate.setTime(ExpireDate.getTime() + (expiremins * 60 * 1000)); 35 /* initeel moet Setup Stock zijn */ 36 set_cookie("GC_SetupChosen","Stock",ExpireDate) ; 37 38 Swal.fire({ 39 position: 'top', 40 width: '250px', 41 padding: '5px', 42 icon: 'question', 43 showConfirmButton: true, 44 showCancelButton: true, 45 confirmButtonColor: '#3085d6', 46 cancelButtonColor: '#3085d6', 47 confirmButtonText: 'Imperial:<br> Miles/h + inch', 48 cancelButtonText: 'Metric:<br> Km/h and mm ', 49 allowEscapeKey: false, 50 allowOutsideClick: false, 51 html: 52 '<p style="font-size:18px; font-weight:bold; font-family:Verdana; color:green">Please select your<br>preferred Units<br><p style="font-size:14px; font-family:Verdana; color:green;"> These will be used for Speeds<br>and calculated Dimensions.</p></font> ', 53 54 }).then((result) => { 55 if (result.value) { 56 Swal.fire({ 57 position: 'top', 58 width: '250px', 59 padding: '5px', 60 icon: 'success', 61 showConfirmButton: true, 62 html: 63 '<p style="font-size:18px; font-weight:bold; font-family:Verdana; color:green">Your selection <br>"IMPERIAL"<br> has been saved!<br><p style="font-size:14px; font-family:Verdana; color:green;"> Please make sure to Not delete<br>Gearing Commander cookies.</p></font> ', 64 65 });
66 Units_koekje = "Imperial"; 67 set_cookie("GC_Units",Units_koekje,ExpireDate) ; 68 document.getElementById("UnitSel").value = "I"; 69 var Un = "Km/h"; 70 set_cookie("GC_Accur_Dec",10,ExpireDate); 71 document.getElementById("Accur").value = 10; 72 fnABDI('Reset'); 73 74 /* For more information about handling dismissals please visit */ 75 /* https://sweetalert2.github.io/#handling-dismissals */ 76 } else if (result.dismiss === Swal.DismissReason.cancel) { 77 Swal.fire({ 78 position: 'top', 79 width: '250px', 80 padding: '5px', 81 icon: 'success', 82 showConfirmButton: true, 83 html: 84 '<p style="font-size:18px; font-weight:bold; font-family:Verdana; color:green">Your selection <br>"METRIC"<br> has been saved!<br><p style="font-size:14px; font-family:Verdana; color:green;"> Please make sure to Not delete<br>Gearing Commander cookies.</p></font> ', 85 86 }); 87 88 /* alert("Werkt Metric"); */ 89 Units_koekje = "Metric"; 90 set_cookie("GC_Units",Units_koekje,ExpireDate); 91 document.getElementById("UnitSel").value = "M"; 92 var Un = "Mph"; 93 set_cookie("GC_Accur_Dec",10,ExpireDate); 94 document.getElementById("Accur").value = 10; 95 fnABDI('Reset'); 96 97 } 98 }) 99 } 100 } 101 fnSetupChoice('Pers'); 102} 103 104/* Delete MainPage data koekje bij Reset All */ 105function fnDelMainPageDat(FuncInp) { 106 107 /* werkt niet (meer) del_cookie("GC_MainPage_Data"); */ 108 /* werkt niet (meer) Delete_Cookie("GC_MainPage_Data", "/base/", "gearingcommander.700"); */ 109 /* alert("fnDelMainPageDat running"); */ 110 fnEraseCookie("GC_MainPage_Data"); 111} 112 113/* Create qlib counter imagelist */ 114 DIGITS = new QImageList(8, 10, "img/qlib/d0.gif", "img/qlib/d1.gif", 115 "img/qlib/d2.gif", "img/qlib/d3.gif", "img/qlib/d4.gif", 116 "img/qlib/d5.gif", "img/qlib/d6.gif", "img/qlib/d7.gif", 117 "img/qlib/d8.gif", "img/qlib/d9.gif", "img/qlib/z.gif"); 118 119 var preVal = new Array(); 120 var BrandLogo = "sprockets"; 121 var DefFTcc ; 122 var DefRTcc ; 123 var DefBCtc ; 124 var CurFTcc ; 125 var CurRTcc ; 126 var CurBCtc ; 127 var CustFTcc ; 128 var CustRTcc ; 129 var CustBCtc ; 130 131ns4 = (document.layers)? true:false; 132ie4 = (document.all)? true:false; 133 134 135function creAdd() { 136 MailAdd = "DUCMAN" + String.fromCharCode(64) + "GearingCommander.com"; 137 /* alert("This mail address will be used: " + MailAdd); */ 138 window.open("mailto:" + escape(MailAdd) + "?Subject=About GC:"); 139} 140 141 142function fnPrepare() { 143 document.getElementById("SpeedGearRPM").innerHTML = "GPS Speed in " + Un + " at RPM in Gear in selected setup: "; 144} 145 146 147function fnSetupChoice(SChoice) { 148 /* window.alert("Parameter choice is" + SChoice); */ 149 if (SChoice == "Pers") {var SU_Choice = get_cookie('GC_SetupChosen')} else {SU_Choice = SChoice; 150 var expiremins =525600; /* about 1 year */ 151 var ExpireDate = new Date (); 152 ExpireDate.setTime(ExpireDate.getTime() + (expiremins * 60 * 1000)); 153 set_cookie("GC_SetupChosen",SChoice,ExpireDate) ; 154 } 155 var ChosenSet= SU_Choice + "Txt"; 156 /* window.alert("ChosenSet is" + ChosenSet); */ 157 if (SU_Choice == "Custom") { 158 BckGColor = "green"; 159 } else if (SU_Choice == "Stock") { 160 BckGColor = "red"; 161 } else { 162 BckGColor = "orange"; 163 } 164 165 document.getElementById("CurrentTxt").style.fontSize = '80%'; 166 document.getElementById("CurrentTxt").style.fontWeight = 'normal'; 167 document.getElementById("CurrentTxt").style.border = 'white'; 168 document.getElementById("CurrentTxt").style.textDecoration = 'underline'; 169 document.getElementById("CustomTxt").style.fontSize = '80%'; 170 document.getElementById("CustomTxt").style.fontWeight = 'normal'; 171 document.getElementById("CustomTxt").style.border = 'white'; 172 document.getElementById("CustomTxt").style.textDecoration = 'underline'; 173 document.getElementById("StockTxt").style.fontSize = '80%'; 174 document.getElementById("StockTxt").style.fontWeight = 'normal'; 175 document.getElementById("StockTxt").style.border = 'white'; 176 document.getElementById("StockTxt").style.textDecoration = 'underline'; 177 178 elem = document.getElementById(ChosenSet); 179 elem.style.fontSize = "115%"; 180 elem.style.fontWeight = "bold";
181 elem.style.border = 'thin solid '+ BckGColor; 182 elem.style.textDecoration = 'none'; 183 document.getElementById("SetupChosen").value = SU_Choice; 184 185 /* 03.09.20 - nu vervangen door zelfde actie met Cookie in regels 139-143 if (SChoice != "Pers") { */ 186 /* alleen wijzigen bij eigen keuze via 3 optie op mainpage alert("Is niet Pers! " +SChoice); */ 187 /* window.alert("Ga nu Local Sytorage wijzigen wegen eigen keuze"); */ 188 /* window.localStorage.setItem('GC_SetupChosen', SU_Choice)}; */ 189 /* window.alert("Haal nu waarde weer op " +window.localStorage.getItem('GC_SetupChosen') ); */ 190 191 if (document.getElementById("TGear1A").value > 0) { 192 /* alert("Running fnCalculate ! from fnSetupChoice"); */ 193 fnCalculate(document)}; 194} 195 196var Numbik = 999; 197 198function fnBetaAlert(form) { 199 var koekje = get_cookie('savestate_0'); 200 if (koekje == null) { 201 alert("You are about to use a new release of the \n\n    Gearing Commander version 6.0 !\n\nPlease provide some feedback using Contact/Comments afterwards."); 202 /* mb.alert('Please use the Comments option in the Contact menu to send some FEEDBACK about the site afterwards. Thanks, DUCMANs ! Click Red button below to close'); */ 203 /* mb.moveTo(mb.x - 50, mb.y + 150); */ 204 } 205} 206 207function fnBuildPresets(FuncInp) { 208 var previousTypes= 0; 209 for (var i=0; i < brands.length; i++) 210 { 211 var presetBrand = brands[i][0]; 212 var option = document.createElement("OPTION"); 213 option.text = presetBrand; 214 option.value = i; 215 /* gcm.elements["Brands"].options.add(option); */ 216 document.getElementById("Brands").options.add(option); 217 } 218 var Loaded = 0; 219} 220 221function fnChangeUnits(FuncInp) { 222 223 if (document.getElementById("UnitSel").value == "I") {var selectedunits= "Imperial";} else {var selectedunits= "Metric";} 224 var expiremins =525600; /* 1 Year */ 225 var ExpireDate = new Date (); 226 ExpireDate.setTime(ExpireDate.getTime() + (expiremins * 60 * 1000)); 227 set_cookie("GC_Units",selectedunits,ExpireDate); /* alleen rekenen als er al iets geladen is, en dus al iets staat in de eerste versnelling, wel Convert FreeLinks ! */ 228 if (document.getElementById("TGear1A").value > 0) {fnCheckCalc("Alles");} else {fnCheckCalc("ChainLinkCalc");} 229 230} 231 232function fnChangeDec(FuncInp) { 233 Accuracy = document.getElementById("Accur").value; 234 var expiremins =525600; /* 1 Year */ 235 var ExpireDate = new Date (); 236 ExpireDate.setTime(ExpireDate.getTime() + (expiremins * 60 * 1000)); 237 set_cookie("GC_Accur_Dec",Accuracy,ExpireDate); 238 /* alleen doorrekenen als er al iets geladen is, en dus al iets staat in de eerste versnelling */ 239 if (document.getElementById("TGear1A").value > 0) {fnCalculate(FuncInp)}; 240 /* if (gcm.TGear1A.value > 0) {fnCalculate(form,"","","","Yes")}; 6.5 Bug Fix: gewijzigd naar bovenstaande, dan logo blijft ook goed bij wijz. dec. accurr */ 241} 242 243 244/* Bereken waardes Top Speed tabel */ 245function fnTopSpeedMatrix(form) { 246 247 var driveConstant = 1 / primaryDriveRatio / (CustRearSprocket / CustFrontSprocket); 248 var TSM = new Array() 249 for (x = 1; x <= 5;x++) 250 { 251 for (y = 1; y <= 5; y++) 252 { 253 TSM[x,y] = (((CustRearSprocket - 3) + y) / ((CustFrontSprocket - 3) + x)) * CustMaxRPM * driveConstant * CusttireCircumference * speedConstant 254 /* alert(TSM[x,y]); */ 255 } 256 } 257} 258 259 260function fnLoadPreset(FuncInp,preVal) { 261 /* console.log("Dit is fnLoadPreset"); */ 262 /* alert("Dit is fnLoadPreset -gc_main.js"); */ 263 /* when loading a preset, the Save Setups & Load Setup buttons must be enabled (Load Setup will be enabled after using Save Setups ! */ 264  document.getElementById("But_SS").disabled= false; 265  document.getElementById("But_LS").disabled= false; 266 267  document.getElementById("TMaxRPM").value = preVal[0]; 268  document.getElementById("TCurMaxRPM").value = preVal[0]; 269  document.getElementById("TCustMaxRPM").value = preVal[0]; 270  document.getElementById("TTireWidth").value = preVal[1]; 271  document.getElementById("TCurTireWidth").value = preVal[1]; 272  document.getElementById("TCustTireWidth").value = preVal[1]; 273  document.getElementById("TTireAspect").value = preVal[2]; 274  document.getElementById("TCurTireAspect").value = preVal[2]; 275  document.getElementById("TCustTireAspect").value = preVal[2]; 276  document.getElementById("TTireDiameter").value = preVal[3]; 277  document.getElementById("TCurTireDiameter").value = preVal[3]; 278  document.getElementById("TCustTireDiameter").value = preVal[3]; 279  document.getElementById("TPrimaryDrive").value = preVal[4]; 280  document.getElementById("TCurPrimaryDrive").value = preVal[4]; 281  document.getElementById("TCustPrimaryDrive").value = preVal[4]; 282  document.getElementById("TFinalA").value = preVal[5]; 283  document.getElementById("CopTFinalA").value = preVal[5]; /* in kettingen */ 284 285 /* Load Current with -1 at the front (as of version 7.0) maar alleen indien > 2, zelfde voor rear (dus niet voor shafts enzo) */ 286 if (preVal[5] >= 2) {document.getElementById("TCurFinalA").value = preVal[5]-1;}else {document.getElementById("TCurFinalA").value = preVal[5]}; 287 document.getElementById("CopTCurFinalA").value = document.getElementById("TCustFinalA").value; /* in kettingen */ 288 289  document.getElementById("TCustFinalA").value = preVal[5]; 290  document.getElementById("TDefFrontSprocket").value = preVal[5]; 291  document.getElementById("TDefRearSprocket").value = preVal[6]; 292  document.getElementById("TFinalB").value = preVal[6]; 293  document.getElementById("TCurFinalB").value = preVal[6]; 294  document.getElementById("CopTFinalB").value = preVal[6]; 295 296 if (preVal[6] >= 10) {document.getElementById("TCustFinalB").value = preVal[6]; 297 document.getElementById("TCustFinalB").value ++; 298 document.getElementById("TCustFinalB").value ++; 299 document.getElementById("TCustFinalB").value ++;} else {document.getElementById("TCustFinalB").value = preVal[6]}; 300 document.getElementById("CopTCustFinalB").value = document.getElementById("TCustFinalB").value; /* in kettingen */ 301  document.getElementById("TGear1A").value = preVal[7]; 302  document.getElementById("TGear1B").value = preVal[8]; 303  document.getElementById("TGear2A").value = preVal[9]; 304  document.getElementById("TGear2B").value = preVal[10]; 305  document.getElementById("TGear3A").value = preVal[11]; 306  document.getElementById("TGear3B").value = preVal[12]; 307  document.getElementById("TGear4A").value = preVal[13]; 308  document.getElementById("TGear4B").value = preVal[14]; 309  document.getElementById("TGear5A").value = preVal[15];
310 Â document.getElementById("TGear5B").value = preVal[16]; 311 Â document.getElementById("TGear6A").value = preVal[17]; 312 Â document.getElementById("TGear6B").value = preVal[18]; 313 Â document.getElementById("TGear7A").value = preVal[19]; 314 Â document.getElementById("TGear7B").value = preVal[20]; 315 316 var MaxGear = preVal[21]; 317 Â document.getElementById("NumGears").value =preVal[21]; 318 Â document.getElementById("SelectedGear").value =preVal[21]; 319 320 321 322 if (document.getElementById("UnitSel").value == "I") {preVal[23] = (preVal[23] / 25.4)}; 323 324 Â document.getElementById("TDefPitch").value = preVal[23]; 325 Â document.getElementById("DefChainPitch").value = preVal[23]; 326 Â document.getElementById("TCurPitch").value = preVal[23]; 327 Â document.getElementById("TCustPitch").value = preVal[23]; 328 Â document.getElementById("TDefLinks").value = preVal[24]; 329 Â document.getElementById("DefChainLinks").value = preVal[24]; 330 Â document.getElementById("TCurLinks").value = preVal[24]; 331 Â document.getElementById("TCustLinks").value = preVal[24]; 332 333 Â document.getElementById("DataVerif").value = preVal[25]; /* 6.4 'trim()' om spatie uit bikeconfig sheet weg te halen ! */ 334 335 336 337 /* 6.5 Als er een bike geladen wordt welke geen Chain heeft moeten er txt updates plaats vinden. */ 338 var CurDrvTyp = document.getElementById("FinDrivTyp").value; 339 /* alert("FinDrivTyp: " +CurDrvTyp); */ 340 /* alert("preVal[24].trim(): " +preVal[24].trim()); */ 341 if (CurDrvTyp != preVal[26].trim()) { 342 fnUpdDrvTypTxt(preVal[26].trim()) 343 } 344 Â document.getElementById("FinDrivTyp").value = preVal[26].trim(); 345 346 /* console.log("fnSetVerifColers wordt aangeroepen met: "+ preVal[23]+", "+""+" ,"+preVal[20]); */ 347 348 BrandLogo = fnSetVerifColors(preVal[25].trim(),"",preVal[22].trim()); 349 /* opgeslagen naam in hidden field */ 350 document.getElementById("h_MerkLogo").value = BrandLogo; 351 352 /* 29.03.24 Onderstaande 2 retgels werkte niet meer, vervangen door normaal set_cookie*/ 353 /* var NameOfCookie = "GC_UBI"; */ 354 /* document.cookie = NameOfCookie + "=" + escape(Cookie_Content) + '; SameSite=Lax;'; */ 355 var expiremins =525600; /* about 1 year */ 356 var ExpireDate = new Date (); 357 ExpireDate.setTime(ExpireDate.getTime() + (expiremins * 60 * 1000)); 358 /* 29.03.24 */ 359 360 var UBI = preVal[27]; /* 6.5, was 24 */ 361 Cookie_Content = UBI; 362 /* var NameOfCookie = "GC_UBI"; 363 /* document.cookie = NameOfCookie + "=" + escape(Cookie_Content) + '; SameSite=Lax;'; */ 364 set_cookie("GC_UBI",Cookie_Content,ExpireDate) ; 365 366 367 /* Calc Initial circumf. */ 368 if (document.getElementById("UnitSel").value == "M") {var Cvrt = 1; var NumDec = 10}; 369 if (document.getElementById("UnitSel").value == "I") {var Cvrt = 25.4; var NumDec = 100}; 370 371 var InitTireCirc = Math.round((preVal[1] /25.4 * preVal[2] /100 + preVal[3] / 2) * 2 * Math.PI * 25.4 / Cvrt * NumDec ) / NumDec; 372 Â document.getElementById("TCDef").value = InitTireCirc; 373 Â document.getElementById("TCCur").value = InitTireCirc; 374 Â document.getElementById("TCCust").value = InitTireCirc; 375 376 /* fnRefreshLogo(BrandLogo); */ 377 fnSetupChoice("Pers"); /* v7.0- omdat Cur en Cus nu ander zijn als Stock, bij laden nieuwe bike (Load Bike Gearing), schakelen naar Stock */ 378 fnCalculate(FuncInp,BrandLogo,"",UBI, "No"); 379} 380 381function fnRefreshLogo(BrandLogo) { 382 /* alert("Brandlogo in fnRefreshLogo is: " +BrandLogo); */ 383 var LogoPath= "img/"+BrandLogo+".gif"; 384 /* console.log("Dit is fnRefreshLogo, BrandLogo= "+BrandLogo+", Pad is: "+LogoPath); */ 385 document.getElementById("MerkLogo").src = LogoPath; 386} 387 388function fnSetVerifColors(DatVerStatus,BrandLogo,VerifBrandImg) { 389 /* console.log("Dit is START fnSetVerifColors, BrandLogo= "+BrandLogo +", DatVerStatus= "+ DatVerStatus+", VerifBrandIma= "+VerifBrandImg); */ 390 /* Indien Reset button Mainpage, dan alleen kleuren reset en sprocket img reset !, geen return nodig !; */ 391 if (BrandLogo == "ToReset") { 392 document.getElementById("MerkLogo").src = "img/sprockets.gif"; 393 document.getElementById("DataVerif").value = "v"; 394 } 395 /* (Return BrandLogo en set kleuren) indien aangeroepen vanuit andere procedures */ 396 if (DatVerStatus == "v") { 397 /* 6.4 alert("Ga nu het Merk logo setten"); */ 398 var BrandLogo = VerifBrandImg; 399 var fontCol = "red"; 400 var backCol = "white"; 401 document.getElementById("h_MerkLogo").value = VerifBrandImg; 402 } else if (DatVerStatus == "n") 403 { 404 /* 6.4 alert("GEEN Merk logo !"); */ 405 var BrandLogo = "gc_notver"; 406 var fontCol = "white"; 407 var backCol = "black"; 408 } else if (DatVerStatus == "p") 409 { 410 /*var BrandLogo = "gc_parver";*/ 411 var BrandLogo = VerifBrandImg + "_p"; 412 var fontCol = "black"; 413 var backCol = "yellow"; 414 } else { 415 var BrandLogo = VerifBrandImg + "_c"; 416 /* var BrandLogo = "gc_chainver"; was tot 23.02.25*/ 417 var fontCol = "black"; 418 var backCol = "orange"; 419 } 420 document.getElementById("Brand").style.color = fontCol; 421 document.getElementById("Brand").style.backgroundColor = backCol; 422 document.getElementById("Modell").style.color = fontCol; 423 document.getElementById("Modell").style.backgroundColor = backCol; 424 document.getElementById("MYear").style.color = fontCol; 425 document.getElementById("MYear").style.backgroundColor = backCol; 426 /* Logo ook opslaan in hidden veld */ 427 428 /* alert("Brandlogo in fnSetVerifColors is:" +BrandLogo); */ 429 /* console.log("Dit is EINDE fnSetVerifColors, BrandLogo= "+BrandLogo +", DatVerStatus= "+ DatVerStatus); */ 430 return BrandLogo; 431} 432 433function fnDetermineLink() { 434 if (document.getElementById("DataVerif").value == "v") {window.open('gc_manuals.htm','_self')} 435 else {window.open('gc_popup_notparverif.htm','','scrollbars=yes,menubar=no,height=670,width=650,resizable=yes,toolbar=no,location=no,status=no')} 436} 437 438function fnCheckCalc(FuncInp) { 439 440 441 if (document.getElementById("UnitSel").value == "I") { var UnitSelected = 1; var Un = "Mph"; var MeasUn = 1 / 25.4;
441 var MeasTxt = "inch"; var NumDec= 100} 442 if (document.getElementById("UnitSel").value == "M") { var UnitSelected = 1.609344 ; var Un = "km/h"; var MeasUn = 25.4; var MeasTxt = "mm";var NumDec= 10} 443 444 if (FuncInp == "Alles") { 445 var Loaded = document.getElementById("TMaxRPM").value; 446 var CurrentUn = document.getElementById("TUnit1").value; /* 6.5 var CurrentUn = gcm.elements["TUnit1"].value; */ 447 if (CurrentUn != MeasTxt) { fnConvert(FuncInp, MeasUn, MeasTxt, NumDec), fnCalculate(FuncInp); } 448 } else {fnFreeLinks("Conv", MeasUn, MeasTxt);} /* komt hier alleen bij leeg mainpage maar convert, Links calcul. */ 449} 450 451function fnGetVersion() { 452 453 document.getElementById("eVersion").value = Version; 454 /* gcm.elements["OL_eVersion"].value = Version; //Alleen in de Offline versie ! */ 455 document.getElementById("ePubDat").value = PubDat; 456/* Zet Aant biks in een cookie voor Whatis-page */ 457 var expiremins =525600; /* 1 Year */ 458 var ExpireDate = new Date (); 459 ExpireDate.setTime(ExpireDate.getTime() + (expiremins * 60 * 1000)); 460 set_cookie("GC_NumBiks",NumBik,ExpireDate); 461 set_cookie("GC_NumBrand",NumBrand,ExpireDate); 462} 463 464function incrementAuto(Welke) { 465 gcm.elements.AutoCount.value = 0; 466 gcm.elements[Welke].value = parseInt(gcm.elements[Welke].value) + 100; 467} 468 469function increment(Welke) { 470 gcm.elements[Welke].value = parseInt(gcm.elements[Welke].value) + (50 * gcm.elements.AutoCount.value); 471} 472 473function decrementAuto(Welke) { 474 document.getElementById("AutoCount").value = 0; 475 document.getElementById(Welke).value = parseInt(document.getElementById(Welke).value) - 100; 476} 477 478function decrement(Welke) { 479 document.getElementById(Welke).value = parseInt(document.getElementById(Welke).value) - (50 * document.getElementById("AutoCount").value); 480} 481 482 483function fnConvert(FuncInp, MeasUn, MeasTxt, NumDec) { 484 485 document.getElementById("TDefPitch").value = Math.round((parseFloat(document.getElementById("TDefPitch").value) * MeasUn + 0.000001) * 1000000) / 1000000; 486 document.getElementById("DefChainPitch").value = Math.round((parseFloat(document.getElementById("DefChainPitch").value) * MeasUn + 0.000001) * 1000) / 1000; 487 document.getElementById("TCurPitch").value = Math.round((parseFloat(document.getElementById("TCurPitch").value) * MeasUn + 0.000001) * 1000000) / 1000000; 488 document.getElementById("TCustPitch").value = Math.round((parseFloat(document.getElementById("TCustPitch").value) * MeasUn + 0.000001) * 1000000) / 1000000; 489 document.getElementById("TCDef").value = Math.round((parseFloat(document.getElementById("TCDef").value) * MeasUn) * NumDec) / NumDec; 490 document.getElementById("TCCur").value = Math.round((parseFloat(document.getElementById("TCCur").value) * MeasUn) * NumDec) / NumDec; 491 document.getElementById("TCCust").value = Math.round((parseFloat(document.getElementById("TCCust").value) * MeasUn) * NumDec) / NumDec; 492 /* conv Free Gen Drive */ 493 fnFreeLinks("Conv", MeasUn, MeasTxt); 494 } 495 496 497function fnGearUp(FuncInp) { 498 var GearSelected = parseFloat(document.getElementById("SelectedGear").value); 499 if (GearSelected < document.getElementById("NumGears").value) { 500 var GearSelected = GearSelected + 1 501 document.getElementById("SelectedGear").value = GearSelected; 502 fnCalculate(document.forms[0]) 503 } 504} 505 506function fnGearDown(FuncInp) { 507 var GearSelected = parseFloat(document.getElementById("SelectedGear").value); 508 if (GearSelected >= 2) { 509 var GearSelected = GearSelected - 1 510 document.getElementById("SelectedGear").value = GearSelected; 511 fnCalculate(document.forms[0]) 512 } 513} 514 515/* Hieronder 10 functies om 6 cust. input velden te syncen */ 516function fnSynInpCustFrontSprocTop() { 517 document.getElementById("TCustFrontSprocket").value = parseFloat(document.getElementById("TCustFinalA").value); 518 /* document.getElementById("CopTCustFrontSprocket").value = parseFloat(document.getElementById("TCustFinalA").value); */ 519 document.getElementById("CopTCustFinalA").value = parseFloat(document.getElementById("TCustFinalA").value); 520 fnCalculate(document.forms[0]); 521} 522 523function fnSynInpCustFrontSprocBottom() { 524 document.getElementById("TCustFinalA").value = parseFloat(document.getElementById("TCustFrontSprocket").value); 525 document.getElementById("CopTCustFinalA").value = parseFloat(document.getElementById("TCustFrontSprocket").value); 526 fnCalculate(document.forms[0]); 527} 528 529function fnSynInpCustRearSprocTop() { 530 document.getElementById("TCustRearSprocket").value = parseFloat(document.getElementById("TCustFinalB").value); 531 /* document.getElementById("CopTCustRearSprocket").value = parseFloat(document.getElementById("TCustFinalB").value); */ 532 document.getElementById("CopTCustFinalB").value = parseFloat(document.getElementById("TCustFinalB").value); 533 fnCalculate(document.forms[0]); 534} 535 536function fnSynInpCustRearSprocBottom() { 537 document.getElementById("TCustFinalB").value = parseFloat(document.getElementById("TCustRearSprocket").value); 538 document.getElementById("CopTCustFinalB").value = parseFloat(document.getElementById("TCustRearSprocket").value); 539 fnCalculate(document.forms[0]); 540} 541 542function fnSynInpCustFrontSprocGeo() { 543 document.getElementById("TCustFrontSprocket").value = parseFloat(document.getElementById("CopTCustFinalA").value); 544 document.getElementById("TCustFinalA").value = parseFloat(document.getElementById("CopTCustFinalA").value); 545 fnCalculate(document.forms[0]); 546} 547function fnSynInpCustRearSprocGeo() { 548 document.getElementById("TCustRearSprocket").value = parseFloat(document.getElementById("CopTCurFinalB").value); 549 document.getElementById("TCustFinalB").value = parseFloat(document.getElementById("CopTCustFinalB").value); 550 fnCalculate(document.forms[0]); 551} 552 553function fnSynInpCustChainPitchBottom() { 554 /* alert("Dit is fnSynInpCustChainPitchBottom"); */ 555 document.getElementById("TCustPitch").value = parseFloat(document.getElementById("CustChainPitch").value); 556 fnCalculate(document.forms[0]); 557} 558 559function fnSynInpCustChainLinksBottom() { 560 /* alert("Dit is fnSynInpCustChainLinksBottom"); */ 561 document.getElementById("TCustLinks").value = parseFloat(document.getElementById("CustChainLinks").value); 562 fnCalculate(document.forms[0]); 563} 564 565 566function fnSynInpCustChainLinksTop() { 567 document.getElementById("CustChainLinks").value = parseFloat(document.getElementById("TCustLinks").value); 568 fnCalculate(document.forms[0]); 569} 570 571function fnSynInpCustChainPitchTop() { 572 /* alert("Dit is fnSynInpCustChainPitchTop"); */ 573 document.getElementById("CustChainPitch").value = parseFloat(document.getElementById("TCustPitch").value); 574 fnCalculate(document.forms[0]); 575} 576 577/* Hieronder 4 functies om Def en Cur Final Drive input velden te syncen in Kettingen */ 578function fnSynInpDefFrontSproc() { 579 document.getElementById("TDefFrontSprocket").value = parseFloat(document.getElementById("CopTFinalA").value); 580 document.getElementById("TFinalA").value = parseFloat(document.getElementById("CopTFinalA").value); 581 fnCalculate(document.forms[0]); 582} 583function fnSynInpDefRearSproc() { 584 document.getElementById("TDefRearSprocket").value = parseFloat(document.getElementById("CopTFinalB").value); 585 document.getElementById("TFinalB").value = parseFloat(document.getElementById("CopTFinalB").value); 586 fnCalculate(document.forms[0]); 587} 588function fnSynInpCurFrontSproc() { 589 document.getElementById("TCurFrontSprocket").value = parseFloat(document.getElementById("CopTCurFinalA").value); 590 document.getElementById("TCurFinalA").value = parseFloat(document.getElementById("CopTCurFinalA").value); 591 fnCalculate(document.forms[0]); 592} 593function fnSynInpCurRearSproc() { 594 document.getElementById("TCurRearSprocket").value = parseFloat(document.getElementById("CopTCurFinalB").value); 595 document.getElementById("TCurFinalB").value = parseFloat(document.getElementById("CopTCurFinalB").value); 596 fnCalculate(document.forms[0]); 597} 598/* einde Input-Sync Functies */ 599 600 601/* Calculate Tire Size changes */ 602function fnTireSizeChg(FuncInp) { 603 if (document.getElementById("UnitSel").value == "M") {var Cvrt = 1; var NumDec = 10}; 604 if (document.getElementById("UnitSel").value == "I") {var Cvrt = 25.4; var NumDec = 100}; 605 document.getElementById("TCDef").value = Math.round((parseFloat(document.getElementById("TTireWidth").value) / 25.4 * parseFloat(document.getElementById("TTireAspect").value) / 100 + parseFloat(document.getElementById("TTireDiameter").value)/ 2) * 2 * Math.PI * 25.4 / Cvrt * NumDec ) / NumDec; 606 document.getElementById("TCCur").value = Math.round((parseFloat(document.getElementById("TCurTireWidth").value) / 25.4 * parseFloat(document.getElementById("TCurTireAspect").value) / 100 + parseFloat(document.getElementById("TCurTireDiameter").value)/ 2) * 2 * Math.PI * 25.4 / Cvrt * NumDec ) / NumDec; 607 document.getElementById("TCCust").value = Math.round((parseFloat(document.getElementById("TCustTireWidth").value) / 25.4 * parseFloat(document.getElementById("TCustTireAspect").value) / 100 + parseFloat(document.getElementById("TCustTireDiameter").value)/ 2) * 2 * Math.PI * 25.4 / Cvrt * NumDec ) / NumDec; 608 fnCalculate(document.forms[0]); 609} 610 611/* Calculate Tire Circumference changes back to an Aspect */ 612function fnTireCircChg(form) { 613 if (document.getElementById("UnitSel").value == "I") {var ToInch = 1}; 614 if (document.getElementById("UnitSel").value == "M") {var ToInch = 25.4}; 615 document.getElementById("TTireAspect").value = Math.round(12700 * ((parseFloat(document.getElementById("TCDef").value) / ToInch) - (Math.PI * parseFloat(document.getElementById("TTireDiameter").value))) / ( Math.PI * parseFloat(document.getElementById("TTireWidth").value))) / 10; 616 document.getElementById("TCurTireAspect").value = Math.round(12700 * ((parseFloat(document.getElementById("TCCur").value) / ToInch) - (Math.PI * parseFloat(document.getElementById("TCurTireDiameter").value))) / ( Math.PI * parseFloat(document.getElementById("TCurTireWidth").value))) / 10; 617 document.getElementById("TCustTireAspect").value = Math.round(12700 * ((parseFloat(document.getElementById("TCCust").value) / ToInch) - (Math.PI * parseFloat(document.getElementById("TCustTireDiameter").value))) / ( Math.PI * parseFloat(document.getElementById("TCustTireWidth").value))) / 10; 618 fnCalculate(document.forms[0]); 619} 620 621/* Start fnCALCULATE ! */
622function fnCalculate(FuncInp, BrandLogo, DefPitch, DefLinks, Loaded) { 623 /* console.log("Dit is fnCalculate. Brandlogo, Defpictch, DefLinks, Loaded:"+BrandLogo+"," + DefPitch+ ","+ DefLinks+","+ Loaded); */ 624 /* alert("Brandlogo in fnCalculate is:" + BrandLogo); */ 625 626 /* 6.5 alert("Running fnCalculate initieel BrandLogo= " +BrandLogo); */ 627 628 if (BrandLogo == undefined) { 629 /* BrandLogo = "img/gc_notver.gif"; */ 630 BrandLogo = document.getElementById("h_MerkLogo").value; 631 /* 6.5 alert("Running de IF=True in fnCalculate en BrandLogo= " +BrandLogo); */ 632 /* console.log("In fnCalculate, BrandLogo was leeg en is nu: " +BrandLogo); */ 633 fnRefreshLogo(BrandLogo); 634 635 } else 636 {/* 6.5 alert("Running de ELSE in fnCalculate en BrandLogo= " +BrandLogo); */ 637 fnRefreshLogo(BrandLogo);} 638 639 640 if (document.getElementById("UnitSel").value == "I") { var UnitSelected = 1; var Un = "Mph"; var MeasUn = 1 / 25.4; var Cvrt = 1; var MeasTxt = "inch"; var DistTxt="Mile";} 641 if (document.getElementById("UnitSel").value == "M") { var UnitSelected = 1.609344 ; var Un = "Km/h"; var MeasUn = 25.4; var Cvrt = 25.4; var MeasTxt = "mm"; var DistTxt="Km";} 642 643 var RndFact = document.getElementById("Accur").value; 644 document.getElementById("Calculated").value = 1; 645 646 647/* Lees Default waarden terug uit formulier */ 648 var DefmaxRPM = parseInt(document.getElementById("TMaxRPM").value); 649 var DefprimDrivRatio = parseFloat(document.getElementById("TPrimaryDrive").value); 650 var VDefChainPitch = parseFloat(document.getElementById("TDefPitch").value); 651 var VDefChainLinks = parseFloat(document.getElementById("TDefLinks").value); 652 653 document.getElementById("DefChainPitch").value = VDefChainPitch ; 654 document.getElementById("DefChainLinks").value = VDefChainLinks ; 655 656 var DefFrontSprocket = parseFloat(document.getElementById("TFinalA").value); 657 var DefRearSprocket = parseFloat(document.getElementById("TFinalB").value); 658 659 document.getElementById("TDefFrontSprocket").value = DefFrontSprocket ; 660 document.getElementById("CopTFinalA").value = DefFrontSprocket ; /* in kettingen */ 661 document.getElementById("TDefRearSprocket").value = DefRearSprocket ; 662 document.getElementById("CopTFinalB").value = DefRearSprocket ; /* in kettingen */ 663 document.getElementById("CopTCurFinalA").value = parseFloat(document.getElementById("TCurFinalA").value); /* in kettingen */ 664 document.getElementById("CopTCurFinalB").value = parseFloat(document.getElementById("TCurFinalB").value); /* in kettingen */ 665 document.getElementById("CopTCustFinalA").value = parseFloat(document.getElementById("TCustFinalA").value); /* in kettingen */ 666 document.getElementById("CopTCustFinalB").value = parseFloat(document.getElementById("TCustFinalB").value); /* in kettingen */ 667 668 669/* Haalop band diameter */ 670 var DeftireCircumference = parseFloat(document.getElementById("TCDef").value) / Cvrt; 671 672/* Lees Current waarden terug uit formulier */ 673 var CurmaxRPM = parseInt(document.getElementById("TCurMaxRPM").value); 674 var CurprimDrivRatio = parseFloat(document.getElementById("TCurPrimaryDrive").value); 675 var VCurChainPitch = parseFloat(document.getElementById("TCurPitch").value); 676 var VCurChainLinks = parseFloat(document.getElementById("TCurLinks").value); 677 var CurFrontSprocket = parseFloat(document.getElementById("TCurFinalA").value); 678 var CurRearSprocket = parseFloat(document.getElementById("TCurFinalB").value); 679/* Haalop band diameter */ 680 var CurtireCircumference = parseFloat(document.getElementById("TCCur").value) / Cvrt; 681 682/* Lees Custom waarden terug uit formulier */ 683 var CustmaxRPM = parseInt(document.getElementById("TCustMaxRPM").value); 684 var CustprimDrivRatio = parseFloat(document.getElementById("TCustPrimaryDrive").value); 685 var VCustChainPitch = parseFloat(document.getElementById("TCustPitch").value); 686 var VCustChainLinks = parseFloat(document.getElementById("TCustLinks").value); 687 var CustFrontSprocket = parseFloat(document.getElementById("TCustFinalA").value); 688 var CustFrontSprocket2 = parseFloat(document.getElementById("TCustFrontSprocket").value); 689 var CustRearSprocket = parseFloat(document.getElementById("TCustFinalB").value); 690/* haalop band diameter */ 691 var CusttireCircumference = parseFloat(document.getElementById("TCCust").value) / Cvrt; 692 693 694 var gear1A = parseFloat(document.getElementById("TGear1A").value); 695 var gear1B = parseFloat(document.getElementById("TGear1B").value); 696 var gear2A = parseFloat(document.getElementById("TGear2A").value); 697 var gear2B = parseFloat(document.getElementById("TGear2B").value); 698 var gear3A = parseFloat(document.getElementById("TGear3A").value); 699 var gear3B = parseFloat(document.getElementById("TGear3B").value); 700 var gear4A = parseFloat(document.getElementById("TGear4A").value); 701 var gear4B = parseFloat(document.getElementById("TGear4B").value); 702 var gear5A = parseFloat(document.getElementById("TGear5A").value); 703 var gear5B = parseFloat(document.getElementById("TGear5B").value); 704 var gear6A = parseFloat(document.getElementById("TGear6A").value); 705 var gear6B = parseFloat(document.getElementById("TGear6B").value); 706 var gear7A = parseFloat(document.getElementById("TGear7A").value); 707 /* alert("Waarde teruggelzen gear7A: " +gear7A); */ 708 var gear7B = parseFloat(document.getElementById("TGear7B").value); 709 var FixSpd = parseFloat(document.getElementById("FixSpeed").value); 710 711 if (document.getElementById("SetupChosen").value == 'Stock') { 712 713 var SelSetup="Stock"; 714 var maxRPM = DefmaxRPM; 715 var tireCircumference =DeftireCircumference; 716 var primaryDriveRatio = DefprimDrivRatio ; 717 var SelRearSprocket = DefRearSprocket ; 718 var SelFrontSprocket = DefFrontSprocket ; 719 720 }; 721 722 if (document.getElementById("SetupChosen").value == 'Current') { 723 var SelSetup="Current" 724 var maxRPM = CurmaxRPM; 725 var tireCircumference =CurtireCircumference; 726 var primaryDriveRatio = CurprimDrivRatio; 727 var SelRearSprocket = CurRearSprocket ; 728 var SelFrontSprocket = CurFrontSprocket ; 729 }; 730 731 if (document.getElementById("SetupChosen").value == 'Custom') { 732 var SelSetup="Custom" 733 var maxRPM = CustmaxRPM; 734 var tireCircumference =CusttireCircumference; 735 var primaryDriveRatio = CustprimDrivRatio; 736 var SelRearSprocket = CustRearSprocket ; 737 var SelFrontSprocket = CustFrontSprocket ; 738 739 }; 740 741 var driveConstant = 1 / primaryDriveRatio / (SelRearSprocket / SelFrontSprocket); 742 var speedConstant = 60 / 63360 * UnitSelected; 743 /* 1 mile = 63360 inch... */ 744 745/* Wijzigen te tonen RPM bereik */ 746 var minRPM = parseFloat(document.getElementById("TMinRPM").value); 747 var RPMrange =new Array; 748 RPMrange[0] = Math.round(minRPM); 749 for (var i = 1; i <= 9; i++) { 750 RPMrange[i]= Math.round(((maxRPM - minRPM) * (i / 10)) + minRPM); 751 } 752 RPMrange[10] = Math.round(maxRPM); 753 754 var gearRatio = new Array; 755 gearRatio[1] = gear1B / gear1A; 756 gearRatio[2] = gear2B / gear2A; 757 gearRatio[3] = gear3B / gear3A; 758 gearRatio[4] = gear4B / gear4A; 759 gearRatio[5] = gear5B / gear5A; 760 gearRatio[6] = gear6B / gear6A; 761 gearRatio[7] = gear7B / gear7A; 762 763 764 if (gear7A == 0) {gearRatio[7] = 0} /* in case of only 6 gears */ 765 /* alert("waarde gear7A: " + gear7A); */ 766 /* alert("waarde gearRatio[7]: " + gearRatio[7]); */ 767 if (gear6A == 0) {gearRatio[6] = 0} /* in case of only 5 gears */ 768 if (gear5A == 0) {gearRatio[5] = 0} /* in case of only 4 gears */ 769 if (gear4A == 0) {gearRatio[4] = 0} /* in case of only 3 gears */ 770 771/* Tonen berekende headers */ 772 for (var i = 0; i <= 10; i++) { 773 var Veld = "RPM" + i; 774 document.getElementById(Veld).value = RPMrange[i]; 775 } 776 777/* Toon snelheden afhankelijk van versnelling en toerental in Eerste table "Speed" */ 778 779 for (var G = 1; G <= 7; G++) { 780 for (var R = 0; R <= 10; R++) { 781 782 var Veld = "Gear" + G + "RPM" + R; 783 if (gearRatio[G] != 0) { 784 document.getElementById(Veld).value = Math.round(RPMrange[R] * gearRatio[G] * driveConstant * tireCircumference * speedConstant * RndFact) / RndFact;} 785 else { 786 document.getElementById(Veld).value = "-" } 787 } 788 } 789 790/* Toon toerental verschillen afhankelijk van sprockets etc */ 791/* Default berekeningen */ 792 793 DefprimDrivRatio 794 var DefTotRatio = 1 / DefprimDrivRatio / (DefRearSprocket / DefFrontSprocket); 795 var CurTotRatio = 1 / CurprimDrivRatio / (CurRearSprocket / CurFrontSprocket ); 796 var CustTotRatio = 1 / CustprimDrivRatio / (CustRearSprocket / CustFrontSprocket ); 797 798 799 var G1FSD = Math.round(FixSpd / (gearRatio[1] * DefTotRatio * DeftireCircumference * speedConstant)); 800 if (G1FSD <= DefmaxRPM) {document.getElementById("Gear1FixSpeedDef").value = G1FSD;} else {document.getElementById("Gear1FixSpeedDef").value = "-";} 801 var G2FSD = Math.round(FixSpd / (gearRatio[2] * DefTotRatio * DeftireCircumference * speedConstant)); 802 if (G2FSD <= DefmaxRPM) {document.getElementById("Gear2FixSpeedDef").value = G2FSD;} else {document.getElementById("Gear2FixSpeedDef").value = "-";} 803 var G3FSD = Math.round(FixSpd / (gearRatio[3] * DefTotRatio * DeftireCircumference * speedConstant)); 804 if (G3FSD <= DefmaxRPM) {document.getElementById("Gear3FixSpeedDef").value = G3FSD;} else {document.getElementById("Gear3FixSpeedDef").value = "-";} 805 var G4FSD = Math.round(FixSpd / (gearRatio[4] * DefTotRatio * DeftireCircumference * speedConstant)); 806 if (G4FSD <= DefmaxRPM) {document.getElementById("Gear4FixSpeedDef").value = G4FSD;} else {document.getElementById("Gear4FixSpeedDef").value = "-";} 807 var G5FSD = Math.round(FixSpd / (gearRatio[5] * DefTotRatio * DeftireCircumference * speedConstant)); 808 if (G5FSD <= DefmaxRPM) {document.getElementById("Gear5FixSpeedDef").value = G5FSD;} else {document.getElementById("Gear5FixSpeedDef").value = "-";} 809 var G6FSD = Math.round(FixSpd / (gearRatio[6] * DefTotRatio * DeftireCircumference * speedConstant)); 810 if (G6FSD <= DefmaxRPM) {document.getElementById("Gear6FixSpeedDef").value = G6FSD;} else {document.getElementById("Gear6FixSpeedDef").value = "-";} 811 var G7FSD = Math.round(FixSpd / (gearRatio[7] * DefTotRatio * DeftireCircumference * speedConstant)); 812 if (G7FSD <= DefmaxRPM) {document.getElementById("Gear7FixSpeedDef").value = G7FSD;} else {document.getElementById("Gear7FixSpeedDef").value = "-";} 813 814/* Current berekeningen */ 815 var G1FS = Math.round(FixSpd / (gearRatio[1] * CurTotRatio * CurtireCircumference * speedConstant)); 816 if (G1FS <= CurmaxRPM) {document.getElementById("Gear1FixSpeed").value = G1FS;} else {document.getElementById("Gear1FixSpeed").value = "-";} 817 var G2FS = Math.round(FixSpd / (gearRatio[2] * CurTotRatio * CurtireCircumference * speedConstant)); 818 if (G2FS <= CurmaxRPM) {document.getElementById("Gear2FixSpeed").value = G2FS;} else {document.getElementById("Gear2FixSpeed").value = "-";} 819 var G3FS = Math.round(FixSpd / (gearRatio[3] * CurTotRatio * CurtireCircumference * speedConstant)); 820 if (G3FS <= CurmaxRPM) {document.getElementById("Gear3FixSpeed").value = G3FS;} else {document.getElementById("Gear3FixSpeed").value = "-";} 821 var G4FS = Math.round(FixSpd / (gearRatio[4] * CurTotRatio * CurtireCircumference * speedConstant)); 822 if (G4FS <= CurmaxRPM) {document.getElementById("Gear4FixSpeed").value = G4FS;} else {document.getElementById("Gear4FixSpeed").value = "-";} 823 var G5FS = Math.round(FixSpd / (gearRatio[5] * CurTotRatio * CurtireCircumference * speedConstant)); 824 if (G5FS <= CurmaxRPM) {document.getElementById("Gear5FixSpeed").value = G5FS;} else {document.getElementById("Gear5FixSpeed").value = "-";} 825 var G6FS = Math.round(FixSpd / (gearRatio[6] * CurTotRatio * CurtireCircumference * speedConstant)); 826 if (G6FS <= CurmaxRPM) {document.getElementById("Gear6FixSpeed").value = G6FS;} else {document.getElementById("Gear6FixSpeed").value = "-";} 827 var G7FS = Math.round(FixSpd / (gearRatio[7] * CurTotRatio * CurtireCircumference * speedConstant)); 828 if (G7FS <= CurmaxRPM) {document.getElementById("Gear7FixSpeed").value = G7FS;} else {document.getElementById("Gear7FixSpeed").value = "-";} 829 830/* Cust berekeningen */ 831 var G1FSCust = Math.round(FixSpd / (gearRatio[1] * CustTotRatio * CusttireCircumference * speedConstant)); 832 if (G1FSCust <= CustmaxRPM) {document.getElementById("Gear1FixSpeedCust").value = G1FSCust;} else {document.getElementById("Gear1FixSpeedCust").value = "-";} 833 var G2FSCust = Math.round(FixSpd / (gearRatio[2] * CustTotRatio * CusttireCircumference * speedConstant)); 834 if (G2FSCust <= CustmaxRPM) {document.getElementById("Gear2FixSpeedCust").value = G2FSCust;} else {document.getElementById("Gear2FixSpeedCust").value = "-";} 835 var G3FSCust = Math.round(FixSpd / (gearRatio[3] * CustTotRatio * CusttireCircumference * speedConstant)); 836 if (G3FSCust <= CustmaxRPM) {document.getElementById("Gear3FixSpeedCust").value = G3FSCust;} else {document.getElementById("Gear3FixSpeedCust").value = "-";} 837 var G4FSCust = Math.round(FixSpd / (gearRatio[4] * CustTotRatio * CusttireCircumference * speedConstant)); 838 if (G4FSCust <= CustmaxRPM) {document.getElementById("Gear4FixSpeedCust").value = G4FSCust;} else {document.getElementById("Gear4FixSpeedCust").value = "-";}
839 var G5FSCust = Math.round(FixSpd / (gearRatio[5] * CustTotRatio * CusttireCircumference * speedConstant)); 840 if (G5FSCust <= CustmaxRPM) {document.getElementById("Gear5FixSpeedCust").value = G5FSCust;} else {document.getElementById("Gear5FixSpeedCust").value = "-";} 841 var G6FSCust = Math.round(FixSpd / (gearRatio[6] * CustTotRatio * CusttireCircumference * speedConstant)); 842 if (G6FSCust <= CustmaxRPM) {document.getElementById("Gear6FixSpeedCust").value = G6FSCust;} else {document.getElementById("Gear6FixSpeedCust").value = "-";} 843 var G7FSCust = Math.round(FixSpd / (gearRatio[7] * CustTotRatio * CusttireCircumference * speedConstant)); 844 if (G7FSCust <= CustmaxRPM) {document.getElementById("Gear7FixSpeedCust").value = G7FSCust;} else {document.getElementById("Gear7FixSpeedCust").value = "-";} 845 846/* Verschil Current to Default */ 847 var DiffGear1SpeedCur = G1FS - G1FSD; 848 var DiffGear2SpeedCur = G2FS - G2FSD; 849 var DiffGear3SpeedCur = G3FS - G3FSD; 850 var DiffGear4SpeedCur = G4FS - G4FSD; 851 var DiffGear5SpeedCur = G5FS - G5FSD; 852 var DiffGear6SpeedCur = G6FS - G6FSD; 853 var DiffGear7SpeedCur = G7FS - G7FSD; 854 var DiffCurPercent = Math.round((DiffGear1SpeedCur * 10000) / (G1FSD)) / 100 855 856 var DiffGear1Speed = (G1FSCust - G1FS); 857 var DiffGear2Speed = (G2FSCust - G2FS); 858 var DiffGear3Speed = (G3FSCust - G3FS); 859 var DiffGear4Speed = (G4FSCust - G4FS); 860 var DiffGear5Speed = (G5FSCust - G5FS); 861 var DiffGear6Speed = (G6FSCust - G6FS); 862 var DiffGear7Speed = (G7FSCust - G7FS); 863 var DiffPercent = Math.round((DiffGear1Speed * 10000) / (G1FS)) / 100; 864 865/* Verschil Custom to Default */ 866 var DiffGear1SpeedCust = G1FSCust - G1FSD; 867 var DiffGear2SpeedCust = G2FSCust - G2FSD; 868 var DiffGear3SpeedCust = G3FSCust - G3FSD; 869 var DiffGear4SpeedCust = G4FSCust - G4FSD; 870 var DiffGear5SpeedCust = G5FSCust - G5FSD; 871 var DiffGear6SpeedCust = G6FSCust - G6FSD; 872 var DiffGear7SpeedCust = G7FSCust - G7FSD; 873 var DiffCustPercent = Math.round((DiffGear1SpeedCust * 10000) / (G1FSD)) / 100 874 875/* Overzicht Current - Default */ 876 document.getElementById("TDiffGear1CurSpeed").value = DiffGear1SpeedCur; 877 document.getElementById("TDiffGear2CurSpeed").value = DiffGear2SpeedCur; 878 document.getElementById("TDiffGear3CurSpeed").value = DiffGear3SpeedCur; 879 if (gear4A == 0) {document.getElementById("TDiffGear4CurSpeed").value = "-"} else {document.getElementById("TDiffGear4CurSpeed").value = DiffGear4SpeedCur;} 880 if (gear5A == 0) {document.getElementById("TDiffGear5CurSpeed").value = "-"} else {document.getElementById("TDiffGear5CurSpeed").value = DiffGear5SpeedCur;} 881 if (gear6A == 0) {document.getElementById("TDiffGear6CurSpeed").value = "-"} else {document.getElementById("TDiffGear6CurSpeed").value = DiffGear6SpeedCur;} 882 if (gear7A == 0) {document.getElementById("TDiffGear7CurSpeed").value = "-"} else {document.getElementById("TDiffGear7CurSpeed").value = DiffGear7SpeedCur;} 883 884/* Overzicht Custom - Current */ 885 document.getElementById("TDiffGear1Speed").value = DiffGear1Speed; 886 document.getElementById("TDiffGear2Speed").value = DiffGear2Speed; 887 document.getElementById("TDiffGear3Speed").value = DiffGear3Speed; 888 if (gear4A == 0) {document.getElementById("TDiffGear4Speed").value = "-"} else {document.getElementById("TDiffGear4Speed").value = DiffGear4Speed;} 889 if (gear5A == 0) {document.getElementById("TDiffGear5Speed").value = "-"} else {document.getElementById("TDiffGear5Speed").value = DiffGear5Speed;} 890 if (gear6A == 0) {document.getElementById("TDiffGear6Speed").value = "-"} else {document.getElementById("TDiffGear6Speed").value = DiffGear6Speed;} 891 if (gear7A == 0) {document.getElementById("TDiffGear7Speed").value = "-"} else {document.getElementById("TDiffGear7Speed").value = DiffGear7Speed;} 892 893/* Overzicht Default-Custom */ 894 document.getElementById("TDiffGear1FixSpeed").value = DiffGear1SpeedCust; 895 document.getElementById("TDiffGear2FixSpeed").value = DiffGear2SpeedCust; 896 document.getElementById("TDiffGear3FixSpeed").value = DiffGear3SpeedCust; 897 if (gear4A == 0) {document.getElementById("TDiffGear4FixSpeed").value = "-"} else {document.getElementById("TDiffGear4FixSpeed").value = DiffGear4SpeedCust;} 898 if (gear5A == 0) {document.getElementById("TDiffGear5FixSpeed").value = "-"} else {document.getElementById("TDiffGear5FixSpeed").value = DiffGear5SpeedCust;} 899 if (gear6A == 0) {document.getElementById("TDiffGear6FixSpeed").value = "-"} else {document.getElementById("TDiffGear6FixSpeed").value = DiffGear6SpeedCust;} 900 if (gear7A == 0) {document.getElementById("TDiffGear7FixSpeed").value = "-"} else {document.getElementById("TDiffGear7FixSpeed").value = DiffGear7SpeedCust;} 901 902 document.getElementById("TCurRearSprocket").value = CurRearSprocket; 903 document.getElementById("TCurFrontSprocket").value = CurFrontSprocket; 904 document.getElementById("TCustRearSprocket").value = CustRearSprocket; 905 document.getElementById("TCustFrontSprocket").value = CustFrontSprocket; 906 907 908 document.getElementById("TDiffPercent").value = DiffPercent; 909 document.getElementById("TDiffCustPercent").value = DiffCustPercent; 910 document.getElementById("TDiffCurPercent").value = DiffCurPercent; 911 912 document.getElementById("SpeedGearRPM").innerHTML = "GPS Speed in " + Un + " at RPM in Gear in selected setup: "; 913 document.getElementById("Speed49Combo").innerHTML = "GPS Top speed in " + Un + " for 49 final drive combinations at M.P.RPM in Custom setup:"; 914 915 if (document.getElementById("FinDrivTyp").value != "c") { 916 if (document.getElementById("FinDrivTyp").value == "b") { 917 document.getElementById("ChainDiff").innerHTML = "Loaded Bike: Effect of Final Drive changes on teeth & wheel position"; 918 document.getElementById("RelWear").innerHTML = "Loaded Bike: Relative sprocket & belt wear due to Final Drive changes "; 919 } else { 920 document.getElementById("ChainDiff").innerHTML = "No chain or belt calculations possible as this is a Shaft bike ! "; 921 document.getElementById("RelWear").innerHTML = "No relative wear calculations possible as this is a Shaft bike ! "; 922 } 923 } else { 924 document.getElementById("ChainDiff").innerHTML = "Loaded Bike: Effect of Final Drive changes on links & wheel position"; 925 document.getElementById("RelWear").innerHTML = "Loaded Bike: Relative sprocket & chain wear due to Final Drive changes "; 926 } 927 928 /* Diverse velden units aanpassen */ 929 document.getElementById("TUnit").value = Un; 930 /* document.getElementById("TUnit0").value = Un; */ 931 document.getElementById("TUnit1").innerHTML = MeasTxt; /* document.getElementById("TUnit1").value = MeasTxt; */ 932 document.getElementById("Tab4Pitch").innerHTML = "Pitch in " + MeasTxt;; /* document.getElementById("TUnit2").value = MeasTxt; */ 933 document.getElementById("Tab4Length").innerHTML = "Chain / Belt Length in " + MeasTxt; 934 document.getElementById("CWTab4SprDis").innerHTML = "Chain / Belt<br>Sprocket distance in " + MeasTxt; 935 document.getElementById("UnGenSpDis").innerHTML = "in " + MeasTxt; 936 document.getElementById("UnGenPit").innerHTML = "in " + MeasTxt; 937 938 /* document.getElementById("TUnit7").value = MeasTxt; */ 939 document.getElementById("TDistUn1").value = DistTxt; /* document.getElementById("TUnit8").value = Un; */ 940 941 942/* Ketting berekeningen */ 943 944 /* Current */ 945 var CurDist1 = (VCurChainPitch / 8); 946 var CurDist2 = ( (2 * VCurChainLinks) - CurFrontSprocket- CurRearSprocket); 947 var CurDist4 = (Math.pow(CurDist2,2) - (( 8 / 9.86) * Math.pow((CurRearSprocket- CurFrontSprocket),2))); 948 var CurDist5 = Math.sqrt(CurDist4); 949 var CurDist6 = CurDist2 + CurDist5; 950 var CurDistTotal = CurDist1 * CurDist6; 951 var CurWearPerc = parseFloat(document.getElementById("CurCWp").value); 952 var VCurChainLen = (VCurChainPitch * VCurChainLinks) * (100 + CurWearPerc) / 100; 953 var CWCurDistTotal = Math.round((CurDistTotal) * (100 + CurWearPerc)) / 100; 954 955 /* alert("Tot dist :" +CurDistTotal); */ 956 957 document.getElementById("CurChainPitch").value = VCurChainPitch; 958 document.getElementById("CurChainLinks").value = VCurChainLinks; 959 document.getElementById("CurChainLen").value = Math.round(VCurChainLen*10) / 10; 960 961 if (CurWearPerc >= 1.00) {document.getElementById("CurCWp").style.color = "#ff0000";} else {document.getElementById("CurCWp").style.color = "#000000";} 962 963 if (VCurChainLinks != 0) {document.getElementById("CWCurAxisDist").value = CWCurDistTotal;} 964 else {document.getElementById("CWCurAxisDist").value = 0;} 965 966 /* Default Terug lezen default waarden uit sheet */ 967 var DefChainLen = VDefChainPitch * VDefChainLinks; 968 var DefDist1 = (VDefChainPitch / 8); 969 var DefDist2 = ( (2 * VDefChainLinks) - DefFrontSprocket- DefRearSprocket); 970 var DefDist4 = (Math.pow(DefDist2,2) - (( 8 / 9.86) * Math.pow((DefRearSprocket- DefFrontSprocket),2))); 971 var DefDist5 = Math.sqrt(DefDist4); 972 var DefDist6 = DefDist2 + DefDist5; 973 var DefDistTotal = DefDist1 * DefDist6; 974 975 document.getElementById("DefChainLen").value = Math.round(DefChainLen*10) / 10; 976 if (VDefChainLinks != 0) {document.getElementById("DefAxisDist").value = Math.round(DefDistTotal*100) / 100;} /* bij Stock is slijtage 0 dus aftsand gelijk aan nieuw */ 977 else {document.getElementById("DefAxisDist").value = 0;} 978 979 980 /* Custom */ 981 var VCustChainPitch = parseFloat(document.getElementById("TCustPitch").value); 982 var VCustChainLinks = parseFloat(document.getElementById("TCustLinks").value); 983 984 var CustDist1 = (VCustChainPitch / 8); 985 var CustDist2 = ( (2 * VCustChainLinks) - CustFrontSprocket- CustRearSprocket); 986 var CustDist4 = (Math.pow(CustDist2,2) - (( 8 / 9.86) * Math.pow((CustRearSprocket- CustFrontSprocket),2))); 987 var CustDist5 = Math.sqrt(CustDist4); 988 var CustDist6 = CustDist2 + CustDist5; 989 var CustDistTotal = CustDist1 * CustDist6; 990 var CusWearPerc = parseFloat(document.getElementById("CusCWp").value); 991 var VCustChainLen = (VCustChainPitch * VCustChainLinks)* (100 + CusWearPerc) / 100; 992 var CWCustDistTotal = Math.round((CustDistTotal) * (100 + CusWearPerc)) / 100; 993 994 995 /* alert(CustDistTotal + " en CW: " + CWCustDistTotal); */ 996 997 document.getElementById("CustChainPitch").value = parseFloat(document.getElementById("TCustPitch").value); 998 document.getElementById("CustChainLinks").value = parseFloat(document.getElementById("TCustLinks").value); 999 document.getElementById("CustChainLen").value = Math.round(VCustChainLen*10) / 10; 1000 1001 if (CusWearPerc >= 1.00) {document.getElementById("CusCWp").style.color = "#ff0000";} else {document.getElementById("CusCWp").style.color = "#000000";} 1002 1003 if (CurWearPerc >=1 | CusWearPerc >=1) {document.getElementById("CWTab4Length").innerHTML= "Current Wear in %<br>Pls. replace that chain or belt !"; 1004 document.getElementById("CWTab4Length").style.color= "#ff0000";} else 1005 {document.getElementById("CWTab4Length").style.color = "#000000"; 1006 document.getElementById("CWTab4Length").innerHTML= "Current Wear in %";} 1007 /* Adjust Wear Mess */ 1008 var AWMText = document.getElementById("Tab4LorT").innerHTML; 1009 var BeltOrChain = AWMText.search("Belt"); 1010 if (BeltOrChain == -1) {AWMText = " links "} else {AWMText = " belt teeth "}; 1011 if (VCustChainLinks > VCurChainLinks) {document.getElementById("AdjWearMes").value= "< " + VCustChainLinks + AWMText + "require new " + document.getElementById("Tab4DrivTyp").innerHTML +". Set wear to 0%"; 1012 document.getElementById("AdjWearMes").style.color= "#ff0000";} else 1013 {document.getElementById("AdjWearMes").style.color = "#000000"; 1014 document.getElementById("AdjWearMes").value= "";} 1015 1016 1017 1018 if (VCustChainLinks != 0) {document.getElementById("CWCustAxisDist").value = CWCustDistTotal; } 1019 else {document.getElementById("CWCustAxisDist").value =0;} 1020 1021 /* list verschillen in mm */ 1022 document.getElementById("DifPCustCur").value = VCustChainPitch - VCurChainPitch; 1023 document.getElementById("DifPCustDef").value = VCustChainPitch - VDefChainPitch ; 1024 document.getElementById("DifPDefCur").value = VCurChainPitch - VDefChainPitch ; 1025 1026 document.getElementById("DifLinCustCur").value = VCustChainLinks - VCurChainLinks; 1027 document.getElementById("DifLinCustDef").value = VCustChainLinks - VDefChainLinks; 1028 document.getElementById("DifLinDefCur").value = VCurChainLinks - VDefChainLinks; 1029 1030 document.getElementById("DifLenCustCur").value = Math.round((VCustChainLen - VCurChainLen) * 100) / 100; 1031 document.getElementById("DifLenCustDef").value = Math.round((VCustChainLen - DefChainLen) * 100) / 100; 1032 document.getElementById("DifLenDefCur").value = Math.round((VCurChainLen - DefChainLen) * 100) / 100; 1033 1034/* Curent chain with wear */ 1035/* alleen uitvoeren als geen van de links 0 is, ander eindeloos in loop ! */ 1036var LinkCheck = document.getElementById("DefChainLinks").value * document.getElementById("TCurLinks").value * document.getElementById("TCustLinks").value; 1037 1038if ( LinkCheck > 0){ 1039 1040 if (CWCurDistTotal.toFixed(2) - DefDistTotal.toFixed(2) == 0) {var DirArr6 = ""} else if (CurDistTotal - DefDistTotal > 0) {var DirArr6 = " <->"} else {var DirArr6 = " >-<"}; 1041 document.getElementById("CWDifAxDefCur").value = Math.round((CWCurDistTotal - DefDistTotal) * 100) / 100 + DirArr6; 1042 1043 1044 if (CWCustDistTotal.toFixed(2) - CWCurDistTotal.toFixed(2) == 0) {var DirArr4 = ""} else if (CWCustDistTotal - CWCurDistTotal > 0){var DirArr4 = " <->"} else {var DirArr4 = " >-<"}; 1045 document.getElementById("CWDifAxCustCur").value = Math.round((CWCustDistTotal - CWCurDistTotal) * 100) / 100 + DirArr4; 1046 1047 /* alert(CWCustDistTotal.toFixed(2) - DefDistTotal.toFixed(2)); */ 1048 if (CWCustDistTotal.toFixed(2) - DefDistTotal.toFixed(2) == 0) {var DirArr5 = ""} else if (CWCustDistTotal - DefDistTotal > 0) {var DirArr5 = " <->"} else {var DirArr5 = " >-<"}; 1049 document.getElementById("CWDifAxCustDef").value = Math.round((CWCustDistTotal - DefDistTotal) * 100) / 100 + DirArr5; 1050 } 1051 1052 else { 1053 /* 23.05.24 als er geen chain-belt-links zijn moet boevnstaande niet berekend worden, gaat fout: daarom vervangen door melding */ 1054 document.getElementById("CWDifAxDefCur").value = "No chain"; 1055 document.getElementById("CWDifAxCustCur").value ="or belt"; 1056 document.getElementById("CWDifAxCustDef").value ="data!"; 1057 } 1058 1059 1060/* Ketting slijtage (maakt gebruik van script 'gc_wear.js' */ 1061 /* alleen uitvoeren als geen van de links 0 is, ander eindeloos in loop ! */ 1062 var LinkCheck = document.getElementById("DefChainLinks").value * document.getElementById("TCurLinks").value * document.getElementById("TCustLinks").value; 1063 if ( LinkCheck > 0){ 1064 1065 if (document.getElementById("FinDrivTyp").value == "c") { 1066 document.getElementById("ChainMess").value = "Links Explanation." 1067 } else {document.getElementById("ChainMess").value = "Belt-Teeth Explanation." } 1068 getLCM("no",DeftireCircumference,CurtireCircumference,CusttireCircumference); 1069 } else { 1070 /* eerst ketting slijtage velden resetten */ 1071 getLCM("yes",0,0,0); 1072 if (document.getElementById("FinDrivTyp").value == "c") { 1073 document.getElementById("ChainMess").value = "Bike chain data not available !" } 1074 else { 1075 if (document.getElementById("FinDrivTyp").value == "b") { 1076 document.getElementById("ChainMess").value = "Bike belt data not available !" } 1077 else {document.getElementById("ChainMess").value = "" } 1078 } 1079 } 1080/* TopSpeedMatrix gebaseerd op de Custom instellingen ! */ 1081 /* Alle tandwiel opties: */ 1082 for (var x = 1; x <= 7; x++) { 1083 What_F= "TSM_F" + x; 1084 What_R= "TSM_R" + x; 1085 document.getElementById(What_F).value = CustFrontSprocket - 4 + x; 1086 document.getElementById(What_R).value = CustRearSprocket - 4 + x; 1087 } 1088 1089 TSM = new Array(7); 1090 var GearSelected = parseFloat(document.getElementById("SelectedGear").value); 1091 for (var x = 1; x <= 7; x++) { 1092 TSM[x] = new Array(7) 1093 for (var y = 1; y <= 7; y++) { 1094 var FDrive = (((CustRearSprocket - 4) + y) / ((CustFrontSprocket - 4) + x)); 1095 TSM[x][y] = Math.round(gearRatio[GearSelected] * (1 / CustprimDrivRatio / FDrive ) *
1095CustmaxRPM * CusttireCircumference * speedConstant * RndFact) / RndFact; 1096 } 1097 } 1098 1099 for (var x = 1; x <= 7; x++) { 1100 for (var y = 1; y <= 7; y++) { 1101 1102 var Veld = "TSM" + x + "_" + y; 1103 document.getElementById(Veld).value = TSM[x][y]; 1104 } 1105 } 1106 1107/* Indien geen pitch dan geen sprocket graph */ 1108 var PitchCheck = document.getElementById("TDefPitch").value * document.getElementById("TCurPitch").value * document.getElementById("TCustPitch").value; 1109 1110 if ( PitchCheck == 0){ 1111 document.getElementById("graph7").disabled =true; 1112 /* alert("Wordt DISABLED, Pitch check is: " + PitchCheck); */ 1113 } else { 1114 document.getElementById("graph7").disabled =false; 1115 /* alert("Wordt ENABLED, Pitch check is: " + PitchCheck); */ 1116 } 1117if (Loaded != 'Yes') {fnSaveSetups(FuncInp,'Maindat');} /* alleen opslaan als er niet net iets is terug gelezen */ 1118} 1119/* END fucntion CALCULATE */ 1120 1121 1122/* 6.5 alleen aangeroepen als een bike geladen wordt met een ander drv typ als de huidige */ 1123function fnUpdDrvTypTxt(DrvTyp) { 1124 /* alert("Dit is de fnUpdDrvTypTxt met var: " + DrvTyp); */ 1125 /* alert("Huidige DrvTyp was: " + document.getElementById("FinDrivTyp").value); */ 1126 if (DrvTyp != "c") { 1127 1128 /* alert("fnUpdDrvTypTxt zegt: DrvType gekozen is NIET Chain"); */ 1129 if (DrvTyp == "b") { 1130 /* alert("fnUpdDrvTypTxt zegt: DrvType gekozen is WEL Belt"); */ 1131 document.getElementById("ChainDiff").innerHTML = "Current Belt Loaded Bike: Effect of sprocket & belt changes "; 1132 document.getElementById("RelWear").innerHTML = "Currently Loaded Bike: Relative sprocket & belt wear due to drive train changes "; 1133 document.getElementById("DTyp1").innerHTML = "Belt Pitch"; 1134 document.getElementById("DTyp2").innerHTML = "Belt Teeth"; 1135 document.getElementById("Tab4DrivTyp").innerHTML = "Belt"; 1136 document.getElementById("Tab4DrivTyp1").innerHTML = "belt & sprockets"; 1137 document.getElementById("Tab4DrivTyp2").innerHTML = "belt & sprockets"; 1138 document.getElementById("Tab4DrivTyp3").innerHTML = "belt & sprockets"; 1139 document.getElementById("Tab4LorT").innerHTML = "Belt Teeth"+ " "; 1140 1141 document.getElementById("SubRelWear").innerHTML = "Same Teeth Sprocket & Belt <u><font size='1'><a target='GCMP' href='gc_howto27.htm'>(<font color='#0000FF'><u>help</u></font>)</a></font></u> Tooth Belt contacts & Belt Teeth contacts <u> <font size='1'><a target='GCMP' href='gc_howto28.htm'>(<font color='#0000FF'><u>help</u></font>)</a></font></u>"; 1142 1143 document.getElementById("Tab5STSL").innerHTML = "Same<br>tooth-belt<br>position every X Belt Rev's"; 1144 document.getElementById("Tab5DrivTyp1").innerHTML = " belt &<br> sprockets <br><br>Belt Rev's"; 1145 document.getElementById("Tab5DrivTyp2").innerHTML = " belt &<br> sprockets <br><br>Belt Rev's"; 1146 document.getElementById("Tab5DrivTyp3").innerHTML = " belt &<br> sprockets <br><br>Belt Rev's"; 1147 document.getElementById("Tab6DrivTyp1").innerHTML = " belt &<br> sprockets <br><br>contacts<br>"; 1148 document.getElementById("Tab6DrivTyp2").innerHTML = " belt &<br> sprockets <br><br>contacts<br>"; 1149 document.getElementById("Tab6DrivTyp3").innerHTML = " belt &<br> sprockets <br><br>contacts<br>"; 1150 document.getElementById("Tab6LinkTooth").innerHTML = "B.Tooth"; 1151 1152 for (i = 0; i <= 10; i++) { 1153 DeviderId ="Devider" + i; 1154 /* alert(DeviderId); */ 1155 document.getElementById(DeviderId).innerHTML = "<img border='0' src='img/gc_belt.png' width='850' height='15'>"; 1156 } 1157 1158 } else { 1159 1160 document.getElementById("ChainDiff").innerHTML = "No geometry calculations possible as this is a Shaft bike ! "; 1161 document.getElementById("RelWear").innerHTML = "No relative wear calculations possible as this is a Shaft bike ! "; 1162 document.getElementById("graph7").disabled = true; 1163 /* alert("fnUpdDrvTypTxt zegt: DrvType gekozen is WEL Shaft"); */ 1164 for (i = 0; i <= 10; i++) { 1165 DeviderId ="Devider" + i; 1166 document.getElementById(DeviderId).innerHTML = "<img border='0' src='img/gc_shaft.png' width='850' height='21'>"; 1167 } 1168 } 1169 } else { 1170 /* alert("fnUpdDrvTypTxt zegt: DrvType gekozen is WEL Chain"); */ 1171 document.getElementById("ChainDiff").innerHTML = "Current Chain Loaded Bike: Effect of sprocket & chain changes "; 1172 document.getElementById("RelWear").innerHTML = "Currently Loaded Bike: Relative sprocket & chain wear due to drive train changes "; 1173 document.getElementById("DTyp1").innerHTML = "Chain Pitch"; 1174 document.getElementById("DTyp2").innerHTML = "Chain Links"; 1175 document.getElementById("Tab4DrivTyp").innerHTML = "Chain"; 1176 document.getElementById("Tab4DrivTyp1").innerHTML = "chain & sprockets"; 1177 document.getElementById("Tab4DrivTyp2").innerHTML = "chain & sprockets"; 1178 document.getElementById("Tab4DrivTyp3").innerHTML = "chain & sprockets"; 1179 document.getElementById("Tab4LorT").innerHTML = "Links"+ " "; 1180 document.getElementById("Tab5STSL").innerHTML = "Same<br>tooth-chain<br>position every X Chain Rev's"; 1181 document.getElementById("Tab5DrivTyp1").innerHTML = " chain &<br> sprockets <br><br>Chain Rev's"; 1182 document.getElementById("Tab5DrivTyp2").innerHTML = " chain &<br> sprockets <br><br>Chain Rev's"; 1183 document.getElementById("Tab5DrivTyp3").innerHTML = " chain &<br> sprockets <br><br>Chain Rev's"; 1184 document.getElementById("Tab6DrivTyp1").innerHTML = " chain &<br> sprockets <br><br>contacts<br>"; 1185 document.getElementById("Tab6DrivTyp2").innerHTML = " chain &<br> sprockets <br><br>contacts<br>"; 1186 document.getElementById("Tab6DrivTyp3").innerHTML = " chain &<br> sprockets <br><br>contacts<br>"; 1187 document.getElementById("Tab6LinkTooth").innerHTML = "Link"; 1188 1189 for (i = 0; i <= 10; i++) { 1190 DeviderId ="Devider" + i; 1191 document.getElementById(DeviderId).innerHTML = "<img border='0' src='img/gc_chain_div.png' width='850' height='15'>"; 1192 } 1193 } 1194} 1195 1196function fnPop(HPage) { 1197 if (HPage == "ChainOrBelt") { 1198 if (document.getElementById("FinDrivTyp").value == "c") { 1199 var ToOpen="gc_popup_links.htm"; 1200 Hoog= 700; 1201 Breed = 630; 1202 } else { 1203 var ToOpen="gc_popup_beltteeth.htm"; 1204 Hoog= 700; 1205 Breed = 630; 1206 } 1207 } else { 1208 var ToOpen="gc_popup_freelinks.htm"; 1209 Hoog= 600; 1210 Breed = 675;} 1211 1212 Params = 'scrollbars=yes,menubar=no,height=' + Hoog +',width=' + Breed + ',resizable=yes,toolbar=no,location=no,status=no' 1213 window.open(ToOpen,'',Params); 1214} 1215/* Adblock Code */ 1216function fnSetAdCookie(CookieVal) { 1217 var expiremins =525600; /* 1 Year */ 1218 var ExpireDate = new Date (); 1219 ExpireDate.setTime(ExpireDate.getTime() + (expiremins * 60 * 1000)); 1220 set_cookie("CGDAB",CookieVal,ExpireDate); /* heette eerst GC_Adblock */ 1221} 1222 1223 1224function sleep(ms) { 1225 return new Promise(resolve => setTimeout(resolve, ms)); 1226} 1227 1228async function fnWacht(MilSecs) { 1229 /* alert("Wachtfunctie gestart.");*/ 1230 await sleep(MilSecs); // Waits for X seconds 1231 /* alert("Wachtfunctie Gestopt Blok volgt...");*/ 1232 fnMaskAdBlock(); 1233} 1234 1235function fnCountDown(FirstTime) { 1236 /*alert("Timeout is: " + FirstTime); */ 1237 ReducedWait = get_cookie("CGDAB"); 1238 /* alert("ReducedWait is: " +ReducedWait); */ 1239 if (ReducedWait == null) { var MaskTijd = FirstTime;} else {var MaskTijd = ReducedWait;} 1240 /* alert("Setting WST to "+ MaskTijd); */ 1241 1242 /* Onderstaande werkt niet in FF en Edge, wel in Chrome ! */ 1243 /* setTimeout(() => {fnMaskAdBlock(); */ 1244 /* alert("fnMask Fired !");*/ 1245 /*},MaskTijd);*/ 1246 /* Onderstaande werkt vroeger in alle browsers, daarna alleen in chrome. Toen naar await functie gegaan https://www.geeksforgeeks.org/how-to-wait-n-seconds-in-javascript/ */ 1247 /* window.setTimeout(function() {fnMaskAdBlock()},MaskTijd); */ 1248 1249 fnWacht(MaskTijd); 1250} 1251
1252function fnMaskAdBlock() { 1253/* alert("Running fnMaskAdBlock Now !"); */ 1254 document.getElementById('ShowRed1').innerHTML = "We know ads are anoying but without them<br>this free service would cease to exist."; 1255 document.getElementById('ShowText1').innerHTML = "So, please make sure ads can load by checking out below link.<br><br><img height='110' src='help/gc_plsdisadb.gif' width='250'><br><br><a href='gc_adblockpol.htm'>How to stop this mask from appearing ? </a>"; 1256 document.getElementById('ShowText2').innerHTML = "<a href='gc_what.htm'>What is the Gearing Commander and what can it do ?</a><br><a href='gc_addbike_mail.htm'>Add your bike to the Gearing Commander database</a>"; 1257 document.getElementById('ShowRed2').innerHTML = "We know ads are anoying but without them<br>this free service would cease to exist."; 1258 document.getElementById('ShowText3').innerHTML = "So, please make sure ads can load by checking out below link.<br><br><img height='110' src='help/gc_plsdisadb.gif' width='250'><br><br><a href='gc_adblockpol.htm'>How to stop this mask from appearing ? </a>"; 1259 document.getElementById('ShowText4').innerHTML = "<a href='gc_what.htm'>What is the Gearing Commander and what can it do ?</a><br><a href='gc_addbike_mail.htm'>Add your bike to the Gearing Commander database</a>"; 1260 document.getElementById('hideGCM').style.display = "block"; 1261 document.getElementById('ShowRed1').style.display = "block"; 1262 document.getElementById('ShowText1').style.display = "block"; 1263 document.getElementById('ShowText2').style.display = "block"; 1264 document.getElementById('ShowRed2').style.display = "block"; 1265 document.getElementById('ShowText3').style.display = "block"; 1266 document.getElementById('ShowText4').style.display = "block"; 1267 fnSetAdCookie(3000); 1268} 1269 1270 1271 1272function fnMaskPiHole() { 1273/* alert("Running fnMaskAdBlock Now !"); */ 1274 document.getElementById('ShowText5').innerHTML = "We are sorry to interrupt your session but it appears you are<br> blocking ads by using AdBlock or a DNS Sinkhole service. <br>To keep access to this website and its services Completely Free:<br><br>Please disable the service which is blocking our ads.<br> When using a VPN, either disable it or disable its ad-block functionality<br>and reload this page. See below link for more info.<br><br><img height='110' src='help/gc_sinkhole.gif' width='250'><br><br><a href='gc_sinkhole.htm'>What is and how to disable a DNS Sinkhole Service</a>"; 1275 document.getElementById('ShowText6').innerHTML = "<a href='gc_contact.htm'>Contact me about this mask.</a><br><a href='gc_addbike_mail.htm'>Add your bike to the Gearing Commander database</a>"; 1276 document.getElementById('ShowText7').innerHTML = "We are sorry to interrupt your session but it appears you are<br> blocking ads by using AdBlock or a DNS Sinkhole service. <br>To keep access to this website and its services Completely Free:<br><br>Please disable the service which is blocking our ads.<br> When using a VPN, either disable it or disable its ad-block functionality<br>and reload this page. See below link for more info.<br><br><img height='110' src='help/gc_sinkhole.gif' width='250'><br><br><a href='gc_sinkhole.htm'>What is and how to disable a DNS Sinkhole Service</a>"; 1277 document.getElementById('ShowText8').innerHTML = "<a href='gc_contact.htm'>Contact me about this mask.</a><br><a href='gc_addbike_mail.htm'>Add your bike to the Gearing Commander database</a>"; 1278 document.getElementById('hideGCM').style.display = "block"; 1279 document.getElementById('ShowText5').style.display = "block"; 1280 document.getElementById('ShowText6').style.display = "block"; 1281 document.getElementById('ShowText7').style.display = "block"; 1282 document.getElementById('ShowText8').style.display = "block"; 1283 fnSetAdCookie(3000); 1284} 1285 1286 1287function fnPiHoleCheck() { 1288 alert("Start fnPiHoleCheck"); 1289 1290 var xhr = new XMLHttpRequest(); 1291 1292 // var file = "https://i.imgur.com/7ofBNix.png"; 1293 /* var file = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"; */ 1294 /* var file = "https://pagead2.googlesyndication.com/pagead/managed/js/activeview/current/ufs_web_display.js"; */ 1295 var file = "https://www.statcounter.com/counter/counter.js"; 1296 1297 var randomNum = Math.round(Math.random() * 10000); 1298 1299 xhr.open('HEAD', file + "?rand=" + randomNum, true); 1300 xhr.send(); 1301 1302 xhr.addEventListener("readystatechange", processRequest, false); 1303 1304 function processRequest(e) { 1305 if (xhr.readyState == 4) { 1306 if (xhr.status >= 200 && xhr.status < 304) { 1307 alert("connection exists!"); 1308 } else { 1309 alert("connection doesn't exist!"); 1310 fnMaskPiHole() 1311 } 1312 } 1313 } 1314} 1315 1316/* New in version 7.0.xxx */
1317/* Function called if AdBlock is not detected */ 1318function adBlockNotDetected() { 1319 //alert('AdBlock is not enabled'); 1320 fnPiHoleCheck(); 1321} 1322 1323 1324/* Function called from index if AdBlock is detected */ 1325function adBlockDetected() { 1326 var notforme = get_cookie('GC_Superuser'); 1327 /* alert("nfm= " + notforme); */ 1328 1329 if (notforme != 1) 1330 {fnCountDown(20000);} else { 1331 document.getElementById('hideGCM').style.display = "none"; 1332 fnSetAdCookie(0); 1333 } 1334 /* alert('AdBlock is enabled'); */ 1335} 1336 1337 1338function fnABDI(ToDo) { 1339 1340 /* alert("fnABDI Todo is: " +ToDo); */ 1341 1342 if (ToDo == "PageLoad") { 1343 document.getElementById("BikeInfoStat").value = 0; 1344 1345 fnHidAbdi(); 1346 /* alert("Was PageLOad"); */ 1347 } 1348 1349 if (ToDo != "Reset") { 1350 /* enable Bike Info-button first as apparently data has been loaded. ( */ 1351 /* gcm.elements['But_EI'].disabled=false; */ 1352 document.getElementById("But_EI").disabled = false; 1353 1354 1355 ubi = get_cookie("GC_UBI"); 1356 /* alert("ubi in fnABDI is: " +ubi); */ 1357 var xmlhttp = new XMLHttpRequest(); 1358 xmlhttp.onreadystatechange = function() { 1359 if (this.readyState == 4 && this.status == 200) { 1360 var myArr = JSON.parse(this.responseText); 1361 1362 /* alert("Running...JSON parse..."); */ 1363 /* alert("ubi = " + ubi); */ 1364 /* alert("myArr[ubi].typ = " + myArr[ubi].typ); */ 1365 /* alert("myArr[ubi].cat = " + myArr[ubi].cat); */ 1366 1367 if (myArr[ubi].typ == "v") { 1368 myArr[ubi].typ = "Stock Bike Data was Verified."; 1369 document.getElementById("But_EI").style.color = "green"; 1370 document.getElementById("But_EI").style.fontWeight = "bold"; 1371 document.getElementById("ABDI-typ").style.color="green"; 1372 document.getElementById("ABDI-typ").style.fontWeight="bold";} 1373 else if (myArr[ubi].typ == "i") { 1374 myArr[ubi].typ = "Additional details"; 1375 document.getElementById("But_EI").style.color = "blue"; 1376 document.getElementById("But_EI").style.fontWeight = "bold"; 1377 document.getElementById("ABDI-typ").style.color="green"; 1378 document.getElementById("ABDI-typ").style.fontWeight="bold";} 1379 else if (myArr[ubi].typ == "w") { 1380 myArr[ubi].typ = "Take Notice !"; 1381 document.getElementById("But_EI").style.color = "red"; 1382 document.getElementById("But_EI").style.fontWeight = "bold"; 1383 document.getElementById("ABDI-typ").style.color="red"; 1384 document.getElementById("ABDI-typ").style.fontWeight="bold";} 1385 else if (myArr[ubi].typ == "p") { 1386 myArr[ubi].typ = "Stock Data of this bike was only Partly verified !"; 1387 document.getElementById("But_EI").style.color = "red"; 1388 document.getElementById("But_EI").style.fontWeight = "bold"; 1389 document.getElementById("ABDI-typ").style.color="red"; 1390 document.getElementById("ABDI-typ").style.fontWeight="bold";} 1391 else if (myArr[ubi].typ == "c") { 1392 myArr[ubi].typ = "Chain or Belt data of this bike was NOT verified !"; 1393 document.getElementById("But_EI").style.color = "red"; 1394 document.getElementById("But_EI").style.fontWeight = "normal"; 1395 document.getElementById("ABDI-typ").style.color="orange"; 1396 document.getElementById("ABDI-typ").style.fontWeight="bold";} 1397 else if (myArr[ubi].typ == "n") { 1398 myArr[ubi].typ = "Stock Data of this bike was NOT verified !"; 1399 document.getElementById("But_EI").style.color = "red"; 1400 document.getElementById("But_EI").style.fontWeight = "bold"; 1401 document.getElementById("ABDI-typ").style.color="red"; 1402 document.getElementById("ABDI-typ").style.fontWeight="bold";} 1403 1404 else {myArr[ubi].typ = "tbd"}; 1405 1406 1407 if (myArr[ubi].cat == "1") {myArr[ubi].cat = "Stock data is verified and calculated speeds should match GPS readings. <br>Also RPM and chain or belt (if applicable) related results should reflect reality.";} 1408 else if (myArr[ubi].cat == "1s") {myArr[ubi].cat = "Stock data is verified and calculated speeds should match GPS readings.<br>Also RPM calculations are accurate. No Chain/Belt and Wear calculations possible as this a
1408shaft bike.";} 1409 else if (myArr[ubi].cat == "2") {myArr[ubi].cat = "Stock data is verified and calculated results are accurate but make sure your bike matches this selected one.";} 1410 else if (myArr[ubi].cat == "3") {myArr[ubi].cat = "Please use calculated results with caution and if available please send (link to) official data.";} 1411 else if (myArr[ubi].cat == "4") {myArr[ubi].cat = "In all probability calculated results are unreliable >>>> If available please send (link to) official data.";} 1412 else if (myArr[ubi].cat == "5") {myArr[ubi].cat = "As a temporary workaround, please check the 'History-page' if and how data for this bike was verified.";} 1413 else if (myArr[ubi].cat == "6") {myArr[ubi].cat = "Stock gearing data is verified, calculated speeds should match GPS readings.<br>Also RPM calculations are accurate. All chain or belt related results should be used with caution ! <br>If official chain or belt data available please send it.";} 1414 else {myArr[ubi].cat = "To be Defined.";} 1415 1416 1417 /* document.getElementById("ABDI_ubi").innerHTML = myArr[ubi].ubi; */ 1418 document.getElementById("ABDI-typheader").innerHTML = " Bike Information: "; 1419 document.getElementById("ABDI-catheader").innerHTML = "Remark or Request:"; 1420 1421 document.getElementById("ABDI-cat").innerHTML = myArr[ubi].cat; 1422 document.getElementById("ABDI-typ").innerHTML = myArr[ubi].typ; 1423 document.getElementById("ABDI-L1").innerHTML = myArr[ubi].l1; 1424 document.getElementById("ABDI-L2").innerHTML = myArr[ubi].l2; 1425 document.getElementById("ABDI-L3").innerHTML = myArr[ubi].l3; 1426 1427 } 1428 }; 1429 xmlhttp.open("GET", "js/gc_abdi.json", true); 1430 xmlhttp.send(); 1431 } else { 1432 /* Below for a Reset */ 1433 /* document.getElementById("ABDI_ubi").innerHTML = ""; */ 1434 document.getElementById("ABDI-typ").innerHTML = ""; 1435 document.getElementById("ABDI-cat").innerHTML = ""; 1436 document.getElementById("ABDI-L1").innerHTML = ""; 1437 document.getElementById("ABDI-L2").innerHTML = ""; 1438 document.getElementById("ABDI-L3").innerHTML = ""; 1439 document.getElementById("ABDI-typheader").innerHTML = ""; 1440 document.getElementById("ABDI-catheader").innerHTML = ""; 1441 document.getElementById("But_EI").style.color = "rgb(109, 109, 109)"; 1442 document.getElementById("But_EI").style.fontWeight = "normal"; 1443 document.getElementById("But_EI").style.backgroundColor="#E0E0E0"; 1444 /* close ABDI window */ 1445 1446 fnHidAbdi() 1447 /* window.location.href= CurPath + "#show1"; */ 1448 /* window.location.href= "http://www.gearingcommander.700/base/gc_main.htm#show1" */ 1449 1450 document.getElementById("BikeInfoStat").value = 0; 1451 document.getElementById("But_EI").disabled=true; 1452 1453 } 1454} 1455 1456 1457function fnHidAbdi() { 1458 /* alert("Dit is fnHidAbdi"); */ 1459 var AbdiCollaps = document.getElementById("abdi_col"); 1460 AbdiCollaps.style.display = "none"; 1461 document.getElementById("BikeInfoStat").value = 0; 1462 } 1463 1464function fnTogAbdi(Actie) { 1465 /* alert("Dit is fnTogAbdi aangeroepen met: " + Actie); */ 1466 var x = document.getElementById("abdi_col"); 1467 1468 /* Als aangeroepen vanuit Load Bike Gearing button (Action = Open) , dan altijd Open houden vanweg geen toggle als die al Open is! */ 1469 1470 if (Actie == "Open") {x.style.display = "block"; 1471 document.getElementById("BikeInfoStat").value = 1; 1472 document.getElementById("But_EI").style.backgroundColor="#00FF00"; 1473 } else { 1474 1475 if (x.style.display === "none") { 1476 x.style.display = "block"; 1477 document.getElementById("BikeInfoStat").value = 1; 1478 document.getElementById("But_EI").style.backgroundColor="#00FF00"; 1479 /* x.focus(); */ 1480 /* document.getElementById("DataWrong").scrollIntoView(true); */ 1481 1482 } else { 1483 x.style.display = "none"; 1484 document.getElementById("BikeInfoStat").value = 0; 1485 document.getElementById("But_EI").style.backgroundColor="#E0E0E0"; 1486 } 1487 } 1488} 1489function fnPopTirCirc() {
1490 window.open('gc_popup_tircir.htm','','scrollbars=yes,menubar=no,height=450,width=450,resizable=yes,toolbar=no,location=no,status=no'); 1491 } 1492 1493function fnPopMaxRPM() { 1494 window.open('gc_popup_maxrpm.htm','','scrollbars=yes,menubar=no,height=720,width=450,resizable=yes,toolbar=no,location=no,status=no'); 1495 } 1496 1497 1498/* ketting slijtage percentage buttons */ 1499var tmrVar; 1500var deltastep = 0.05; 1501function chgFld(fildName, dir){ 1502 if(dir==0) { 1503 clearTimeout(tmrVar); 1504 return true; 1505 } 1506 theField=document.forms[0][fildName]; 1507 if(dir > 0) 1508 theField.value = parseFloat((Number(theField.value) + deltastep).toFixed(2)); 1509 else 1510 theField.value = parseFloat((Number(theField.value) - deltastep).toFixed(2)); 1511 if(theField.value > 2 ) theField.value= (0).toFixed(2); 1512 if(theField.value < 0) theField.value=(2).toFixed(2); 1513 tmrVar=setTimeout("chgFld('"+fildName+"',"+dir+")",200) 1514} 1515 1516/* Aantal links Free Final drive, ook aangeroepen met leeg mainscherm vanuit fnCheckCalc() */ 1517function fnFreeLinks(Actie, Unit, U_txt) { 1518 /* alert("Actie, Unit, U_txt = " + Actie + " " + Unit + " " + U_txt); */ 1519 var FrFinalA = parseInt(document.getElementById("FreeFinalA").value); 1520 var FrFinalB = parseInt(document.getElementById("FreeFinalB").value); 1521 var FrPitch = parseFloat(document.getElementById("FreePit").value) * Unit; 1522 if (FrPitch > 1 && Actie == "Rek" && document.getElementById("UnGenPit").innerHTML != "in mm") { 1523 document.getElementById("FreePit").value = ""; 1524 Swal.fire({ 1525 position: 'center', 1526 width: '200px', 1527 padding: '5px', 1528 icon: 'warning', 1529 showConfirmButton: true, 1530 html: 1531 '<font size="3" face="Verdana" color="red">Selected Units<br>is: Inch</font> <p style="font-size:13px; font-family:Verdana; color:green"><br><b> Please enter both the Chain Pitch and Sprocket Distance in Inch.</p> ', 1532 }); 1533 return;}; 1534 1535 if (FrPitch < 1 && Actie == "Rek" && document.getElementById("UnGenPit").innerHTML != "in inch") { 1536 document.getElementById("FreePit").value = ""; 1537 Swal.fire({ 1538 position: 'center', 1539 width: '200px', 1540 padding: '5px', 1541 icon: 'warning', 1542 showConfirmButton: true, 1543 html: 1544 '<font size="3" face="Verdana" color="red">Selected Units<br>is: Milimeter</font> <p style="font-size:13px; font-family:Verdana; color:green"><br><b> Please enter both the Chain Pitch and Sprocket Distance in Milimeter.</p> ', 1545 }); 1546 return;}; 1547 1548 1549 1550 var FrSprDis = parseFloat(document.getElementById("FreeSprDis").value) * Unit; 1551 var FrSprDelt = parseFloat(document.getElementById("FreeDelta").value) * Unit; 1552 1553 var FDInput = FrFinalA * FrFinalB * FrPitch * FrSprDis; 1554 /* alert("Actie is: " +Actie + " en Units is: " +Unit + "en U_Txt is: " +U_txt + " Number.isNaN(FDInput) is:" +Number.isNaN(FDInput)) ; */ 1555 /* als alles gevuld is */ 1556 if (Number.isNaN(FDInput)) {return}
1557 else {if (Actie == "Conv") { 1558 /* alert("Plaatsen geconv, waarden, Actie is: " +Actie); */ 1559 document.getElementById("FreePit").value = FrPitch.toFixed(3); 1560 document.getElementById("FreeSprDis").value = FrSprDis.toFixed(2); 1561 document.getElementById("UnGenSpDis").innerHTML = "in " + U_txt; 1562 document.getElementById("UnGenPit").innerHTML = "in " + U_txt; 1563 } 1564 1565 var LinP1 = Math.pow((FrFinalA - FrFinalB) / (2 * Math.PI),2); 1566 var LinP2 = (2 * FrSprDis) / FrPitch; 1567 var LinP3 = (FrFinalA + FrFinalB) / 2; 1568 var LinP4 = LinP1 / (FrSprDis / FrPitch); 1569 var FrLinkRec = (2 * Math.round((LinP2 + LinP3 + LinP4) / 2)); 1570 1571 var FSDR1 = FrPitch / 8; 1572 var FSDR2 = ( 2 * FrLinkRec) - FrFinalA - FrFinalB; 1573 var FSDR3 = (Math.pow(FSDR2,2) - (( 8 / 9.86) * Math.pow((FrFinalB - FrFinalA),2))); 1574 var FSDR4 = Math.sqrt(FSDR3); 1575 var FSDR5 = FSDR2 + FSDR4; 1576 var FSDR6 = FSDR1 * FSDR5; 1577 document.getElementById("FreeLinCal").value = (LinP2 + LinP3 + LinP4).toFixed(2); 1578 document.getElementById("FreeLinkRec").value = FrLinkRec.toFixed(0); 1579 document.getElementById("FreeSprDisRec").value = FSDR6.toFixed(2); 1580 document.getElementById("FreeDelta").value = (FSDR6 - FrSprDis).toFixed(2); 1581 /* alert(document.getElementById("UnGenPit").innerHTML); */ 1582 if (document.getElementById("UnGenPit").innerHTML == "in mm") {var SelUn = "mm"} else {var SelUn = '"'}; 1583 if (document.getElementById("FreeDelta").value == 0) {var DirArr3 = ""} else if (document.getElementById("FreeDelta").value > 0) {var DirArr3 = SelUn +" <->"} else {var DirArr3 = SelUn + " >-<"}; 1584 document.getElementById("FreeDelta").value = document.getElementById("FreeDelta").value + DirArr3; 1585 1586 /* alert("Actie is: " +Actie); */ 1587 /* alert("U_txt is: " +U_txt); */ 1588 /* alert("FrPitch is: " +FrPitch); */ 1589 /* alert("UnGenPitis: "+document.getElementById("UnGenPit").innerHTML); */ 1590 /* switch to assumed correct units (only here) depending on pitch value */ 1591 1592 /* if (FrPitch > 1 && Actie == "Rek" && document.getElementById("UnGenPit").innerHTML != "in mm") {alert("We have switched the Units in this table to Milimeter!"); */ 1593 /* fnFreeLinks("Conv", 1, "mm") */ 1594 /* return;} */ 1595 1596 } 1597} 1598 1599function fnResetUnitsText() { 1600 1601 var Units_koekje = get_cookie('GC_Units'); 1602 /* alert("Units_koekje = " + Units_koekje); */ 1603 1604 if (Units_koekje == "Imperial") { var UnitSelected = 1; var Un = "Mph"; var MeasUn = 1 / 25.4; var MeasTxt = "inch"; var NumDec= 100; var UnSel= "I";} 1605 if (Units_koekje == "Metric") { var UnitSelected = 1.609344 ; var Un = "Km/h"; var MeasUn = 25.4; var MeasTxt = "mm";var NumDec= 10; var UnSel= "M";} 1606 1607 /* Diverse velden units aanpassen */ 1608 document.getElementById("TUnit").value = Un; 1609 document.getElementById("TUnit1").innerHTML = MeasTxt; 1610 document.getElementById("Tab4Pitch").innerHTML = "Pitch in " + MeasTxt; 1611 document.getElementById("Tab4Length").innerHTML = "Chain / Belt Length in " + MeasTxt; 1612 document.getElementById("CWTab4SprDis").innerHTML = "Chain / Belt<br>Sprocket distance in " + MeasTxt; 1613 document.getElementById("UnGenSpDis").innerHTML = "in " + MeasTxt; 1614 document.getElementById("UnGenPit").innerHTML = "in " + MeasTxt; 1615 document.getElementById("SpeedGearRPM").innerHTML = "GPS Speed in "+ Un + " at RPM in Gear in selected setup:"; 1616 document.getElementById("Speed49Combo").innerHTML = "GPS Top speed in " + Un + " for 49 final drive combinations at M.P.RPM in Custom setup:"; 1617 /* console.log("UnSel = " + UnSel); */ 1618 /* alert("UnSel = " + UnSel); */ 1619 document.getElementById("UnitSel").value = UnSel; 1620 1621}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.