1var CoFBasedOnTreadwear=false; 2 3/*The function showTreadwear(show) show hide the fieldset for the treadwear input. 'show' is true or false.*/ 4function showTreadwear(show) 5{ 6 if(show) 7 { 8 document.getElementById("treadwear-fieldset").style.display = "block"; 9 document.getElementById("tire-road-button").checked = false; 10 document.getElementById("treadwear-button").checked = true; 11 CoFBasedOnTreadwear=true; 12 document.getElementById("list-box").selectedIndex = 4; 13 treadwearChanged(); 14 } 15 else 16 { 17 document.getElementById("treadwear-fieldset").style.display = "none"; 18 document.getElementById("tire-road-button").checked = true; 19 document.getElementById("treadwear-button").checked = false; 20 CoFBasedOnTreadwear=false; 21 selectTireType(); 22 } 23} 24 25/*The function selectTireType() sets the appropriate values for the friction coefficient and the rolling resistance coefficient*/ 26function selectTireType() 27{ 28 /*declare all variables:*/ 29 var FrictionTextBox = document.getElementById("fc"); 30 var RollingResistanceTextBox = document.getElementById("rrc"); 31 var AsphaltWetButton = document.getElementById("wet-asphalt"); 32 var EarthDryButton = document.getElementById("dry-dirt"); 33 var EarthWetButton = document.getElementById("wet-dirt"); 34 var SnowButton = document.getElementById("snow"); 35 var IceButton = document.getElementById("ice"); 36 var GravelButton = document.getElementById("gravel"); 37 var SandButton = document.getElementById("sand"); 38 var ListBoxValue = document.getElementById("list-box-value"); 39 40 /*depending on the list box selection and the radio button selection, set the coefficients:*/ 41 switch (document.getElementById("list-box").selectedIndex) 42 { 43 case 0: /*bicycle*/ 44 OptionButtonEnabled (false); 45 FrictionTextBox.innerHTML = "0.75"; 46 RollingResistanceTextBox.innerHTML = "0.004"; 47 break; 48 case 1: /*off-road, tractor*/ 49 OptionButtonEnabled (true); 50 FrictionTextBox.innerHTML = "0.75"; 51 RollingResistanceTextBox.innerHTML = "0.020"; 52 53 if (AsphaltWetButton.checked) 54 { 55 FrictionTextBox.innerHTML = "0.50"; 56 RollingResistanceTextBox.innerHTML = "0.024"; 57 } 58 else if (EarthDryButton.checked) 59 { 60 FrictionTextBox.innerHTML = "0.75"; 61 RollingResistanceTextBox.innerHTML = "0.030"; 62 } 63 else if (EarthWetButton.checked) 64 { 65 FrictionTextBox.innerHTML = "0.60"; 66 RollingResistanceTextBox.innerHTML = "0.040"; 67 } 68 else if(SnowButton.checked) 69 { 70 FrictionTextBox.innerHTML = "0.25"; 71 RollingResistanceTextBox.innerHTML = "0.022"; 72 } 73 else if (IceButton.checked) 74 { 75 FrictionTextBox.innerHTML = "0.10"; 76 RollingResistanceTextBox.innerHTML = "0.020"; 77 } 78 else if (GravelButton.checked) 79 { 80 FrictionTextBox.innerHTML = "0.60"; 81 RollingResistanceTextBox.innerHTML = "0.020"; 82 } 83 else if (SandButton.checked) 84 { 85 FrictionTextBox.innerHTML = "0.60"; 86 RollingResistanceTextBox.innerHTML = "0.200"; 87 } 88 break; 89 case 2: /*truck*/ 90 OptionButtonEnabled (true); 91 FrictionTextBox.innerHTML = "0.80"; 92 RollingResistanceTextBox.innerHTML = "0.008"; 93 94 if (AsphaltWetButton.checked) 95 { 96 FrictionTextBox.innerHTML = "0.55"; 97 RollingResistanceTextBox.innerHTML = "0.010"; 98 } 99 else if (EarthDryButton.checked) 100 { 101 FrictionTextBox.innerHTML = "0.68"; 102 RollingResistanceTextBox.innerHTML = "0.040"; 103 } 104 else if (EarthWetButton.checked) 105 { 106 FrictionTextBox.innerHTML = "0.55"; 107 RollingResistanceTextBox.innerHTML = "0.060"; 108 } 109 else if (SnowButton.checked) 110 { 111 FrictionTextBox.innerHTML = "0.20"; 112 RollingResistanceTextBox.innerHTML = "0.013"; 113 } 114 else if (IceButton.checked) 115 { 116 FrictionTextBox.innerHTML = "0.10"; 117 RollingResistanceTextBox.innerHTML = "0.008"; 118 } 119 else if (GravelButton.checked) 120 { 121 FrictionTextBox.innerHTML = "0.60"; 122 RollingResistanceTextBox.innerHTML = "0.020"; 123 } 124 else if (SandButton.checked) 125 { 126 FrictionTextBox.innerHTML = "0.60"; 127 RollingResistanceTextBox.innerHTML = "0.250"; 128 } 129 break; 130 case 3: /*tourism*/ 131 OptionButtonEnabled (true); 132 if(!CoFBasedOnTreadwear){FrictionTextBox.innerHTML = "0.90";}else{treadwearChanged();} 133 RollingResistanceTextBox.innerHTML = "0.011"; 134 135 if (AsphaltWetButton.checked) 136 { 137 FrictionTextBox.innerHTML = "0.60"; 138 RollingResistanceTextBox.innerHTML = "0.013"; 139 } 140 else if (EarthDryButton.checked) 141 { 142 FrictionTextBox.innerHTML = "0.68"; 143 RollingResistanceTextBox.innerHTML = "0.050"; 144 } 145 else if (EarthWetButton.checked) 146 { 147 FrictionTextBox.innerHTML = "0.55"; 148 RollingResistanceTextBox.innerHTML = "0.080"; 149 } 150 else if (SnowButton.checked) 151 { 152 FrictionTextBox.innerHTML = "0.20"; 153 RollingResistanceTextBox.innerHTML = "0.016"; 154 } 155 else if (IceButton.checked) 156 { 157 FrictionTextBox.innerHTML = "0.10"; 158 RollingResistanceTextBox.innerHTML = "0.011"; 159 } 160 else if (GravelButton.checked) 161 { 162 FrictionTextBox.innerHTML = "0.60"; 163 RollingResistanceTextBox.innerHTML = "0.020"; 164 } 165 else if (SandButton.checked) 166 { 167 FrictionTextBox.innerHTML = "0.60"; 168 RollingResistanceTextBox.innerHTML = "0.300"; 169 } 170 break; 171 case 4: /*hi-performance*/ 172 OptionButtonEnabled (true); 173 if(!CoFBasedOnTreadwear){FrictionTextBox.innerHTML = "1.00";}else{treadwearChanged();} 174 RollingResistanceTextBox.innerHTML = "0.014"; 175 176 if (AsphaltWetButton.checked) 177 { 178 FrictionTextBox.innerHTML = "0.70"; 179 RollingResistanceTextBox.innerHTML = "0.017"; 180 } 181 else if (EarthDryButton.checked) 182 { 183 FrictionTextBox.innerHTML = "0.65"; 184 RollingResistanceTextBox.innerHTML = "0.050"; 185 } 186 else if (EarthWetButton.checked) 187 { 188 FrictionTextBox.innerHTML = "0.55"; 189 RollingResistanceTextBox.innerHTML = "0.080"; 190 } 191 else if (SnowButton.checked) 192 { 193 FrictionTextBox.innerHTML = "0.15"; 194 RollingResistanceTextBox.innerHTML = "0.016"; 195 } 196 else if (IceButton.checked) 197 { 198 FrictionTextBox.innerHTML = "0.08"; 199 RollingResistanceTextBox.innerHTML = "0.014"; 200 } 201 else if (GravelButton.checked) 202 { 203 FrictionTextBox.innerHTML = "0.60"; 204 RollingResistanceTextBox.innerHTML = "0.020"; 205 } 206 else if (SandButton.checked) 207 { 208 FrictionTextBox.innerHTML = "0.60"; 209 RollingResistanceTextBox.innerHTML = "0.300"; 210 } 211 break; 212 case 5: /*hi-performance (no thread)*/ 213 OptionButtonEnabled (false); 214 if(!CoFBasedOnTreadwear){FrictionTextBox.innerHTML = "1.10";}else{treadwearChanged();} 215 RollingResistanceTextBox.innerHTML = "0.015"; 216 break; 217 case 6: /*stock car*/ 218 OptionButtonEnabled (false); 219 if(!CoFBasedOnTreadwear){FrictionTextBox.innerHTML = "1.35";}else{treadwearChanged();} 220 RollingResistanceTextBox.innerHTML = "0.020"; 221 break; 222 case 7: /*formula*/ 223 OptionButtonEnabled (false); 224 FrictionTextBox.innerHTML = "1.50"; 225 RollingResistanceTextBox.innerHTML = "0.020"; 226 break; 227 case 8: /*formula (qualification)*/ 228 OptionButtonEnabled (false); 229 FrictionTextBox.innerHTML = "1.70"; 230 RollingResistanceTextBox.innerHTML = "0.025"; 231 break; 232 case 9: /*drag*/ 233 OptionButtonEnabled (false); 234 FrictionTextBox.innerHTML = "4.00"; 235 RollingResistanceTextBox.innerHTML = "0.030"; 236 break; 237 } 238 239 ListBoxValue.innerHTML = document.getElementById("list-box").options[document.getElementById("list-box").selectedIndex].text; 240} 241 242/*The function OptionButtoEnabled() enables the radio buttons that are an appropriate selection for the tire type selected*/ 243function OptionButtonEnabled(value) /*'value' is true to enable radio buttons; false to disable them.*/ 244{ 245 /*declare all variables:*/ 246 var AsphaltDryButton = document.getElementById("dry-asphalt"); 247 var AsphaltWetButton = document.getElementById("wet-asphalt"); 248 var EarthDryButton = document.getElementById("dry-dirt"); 249 var EarthWetButton = document.getElementById("wet-dirt"); 250 var SnowButton = document.getElementById("snow"); 251 var IceButton = document.getElementById("ice"); 252 var GravelButton = document.getElementById("gravel"); 253 var SandButton = document.getElementById("sand"); 254 255 /*set the 'disabled' attribute:*/ 256 AsphaltWetButton.disabled = !value; 257 EarthDryButton.disabled = !value; 258 EarthWetButton.disabled = !value; 259 SnowButton.disabled = !value; 260 IceButton.disabled = !value; 261 SandButton.disabled = !value; 262 GravelButton.disabled = !value; 263 264 /*check the dry asphalt button if all other buttons are disabled:*/ 265 if (!value){AsphaltDryButton.checked = true} 266} 267 268/*The function treadwearChanged() sets the friction coefficient and the expected mileage based on the treadwear rating*/ 269 270function treadwearChanged() 271{ 272 if (document.getElementById("dry-asphalt").checked) 273 { 274 /*declare all variables:*/ 275 var FrictionTextBox = document.getElementById("fc"); 276 var TreadwearBox = document.getElementById("treadwear"); 277 var OldTreadwear = document.getElementById("previous-treadwear"); 278 var MileageTextBox = document.getElementById("mileage"); 279 var MileageUnitBox = document.getElementById("mileage-unit"); 280 var OldUnit = document.getElementById("previous-mileage-unit"); 281 282 var treadwear = Number(TreadwearBox.value); /*get treadwear*/ 283 284 if(isNaN(treadwear) || treadwear < 1) 285 { 286 /*treadwear is not a valid number*/ 287 288 alert("The treadwear must be a valid number greater or equal to 1."); 289 TreadwearBox.value=OldTreadwear.value; 290 } 291 else 292 { 293 /*treadwear is a valid number*/ 294 295 var frictionCoeff; 296 297 frictionCoeff = 2.25 / Math.pow(treadwear,0.15); /*calculate friction coefficient*/ 298 frictionCoeff=roundNumber(frictionCoeff,2,false); /*round value*/ 299 FrictionTextBox.innerHTML = frictionCoeff + " ±10%"; /*write value*/ 300 OldTreadwear.value=treadwear; /*record treadwear for future reference*/ 301 302 var convFactor = ConvFact("km", MileageUnitBox.value, LENGTH); /*get conversion factor for expected mileage*/ 303 if(convFactor>0) 304 { 305 /*unit is valid*/ 306 307 MileageTextBox.innerHTML = roundNumber(treadwear * 100 * convFactor,0,true); /*calculate and write value*/ 308 OldUnit.value = MileageUnitBox.value; /*record unit for future reference*/ 309 310 311 document.getElementById("treadwear-value").innerHTML = treadwear; 312 document.getElementById("treadwear-unit-value").innerHTML = MileageUnitBox.value; 313 } 314 else{MileageUnitBox.value=OldUnit.value;}
314 /*unit is not valid*/ 315 } 316 } 317}
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.