// ********************************************************************* // * // * Splits Calculator - // * // ********************************************************************* // * // * Convert Miles to Kilometers // * // * miles: number of miles // * // * // ********************************************************************* function GetKilometers(miles) { var k = 0.0 k = miles / 0.6213712 return k } // ********************************************************************* // * // * Create a String of Space used for Padding. Method depends on // * where the output is destined. For blanks, FORMS support " " only, // * HTML supports " " only. // * // * num: number of spaces // * // * type: 0 = " " - for forms // * 1 = " " - for HTML // * // ********************************************************************* function GetSpace(num, type) { str = "" for (j=1; j <= num; j++) { // Create some padding if (type == 0) str = str + " " else str = str + " " } return str } // ********************************************************************* // * // * Return number of seconds as a formatted string (hh:mm:ss) // * // * total: total number of seconds // * // * // ********************************************************************* function ConvertTime(total) { // Time in seconds is returned as a formatted string (hh:mm:ss) var stime hr = Math.floor(total / 3600) min = Math.floor((total - (hr * 3600)) / 60) sec = Math.round(total - (hr * 3600) - (min * 60)) sec = (sec < 10) ? "0" + sec : sec min = (min < 10) ? "0" + min : min if (hr < 1) stime = min + ":" + sec else stime = hr + ":" + min + ":" + sec return stime } // ********************************************************************* // * // * Generate Mile or Kilometer splits based on the time and distance // * the user entered. Place results in the forms TEXTAREA // * // * FRMpace: Actual form, it must be passed to this function in // * order to work with Netscape. // * // ********************************************************************* function GetResultsText(FRMpace) { var sec, min, hour, total, mtime, ftime, msec, tsec var str, split, i, j, pad var mile // this var used for miles and kilometers hour = FRMpace.PACEhours[FRMpace.PACEhours.selectedIndex].value min = FRMpace.PACEminutes[FRMpace.PACEminutes.selectedIndex].value sec = FRMpace.PACEseconds[FRMpace.PACEseconds.selectedIndex].value dist = FRMpace.PACEdistance[FRMpace.PACEdistance.selectedIndex].value if (FRMpace.RADIOMiKm[1].checked) // Is Kilometer Splits Checked? dist = GetKilometers(dist) // Convert Miles to Kilometers tsec = (3600 * hour) + (60 * min) + (1 * sec) ftime = hour + ((min < 10) ? ":0" : ":") + min + ((sec < 10) ? ":0" : ":") + sec total = tsec/dist hour = Math.floor(total / 3600) min = Math.floor((total - (hour * 3600)) / 60) sec = Math.floor(total - (hour * 3600) - (min * 60)) if (hour < 1) mtime = min + ((sec < 10) ? ":0" : ":") + sec else mtime = hour + ((min < 10) ? ":0" : ":") + min + ((sec < 10) ? ":0" : ":") + sec msec = (3600 * hour) + (60 * min) + (1 * sec) if (FRMpace.RADIOMiKm[0].checked) // Is Mile Splits Checked? FRMpace.TXTpace.value = " Mile Splits \r\n" else FRMpace.TXTpace.value = " KM Splits \r\n" FRMpace.TXTpace.value = FRMpace.TXTpace.value + "------------------\r\n" sum = 0 for (i=1; i<=1+1*dist; i++) { // Loop to write Mile or Kilometer Splits if (i > dist) { if (dist % 1 != 0) { if (FRMpace.RADIOMiKm[0].checked) { // Is Mile Splits Checked? if ((dist > 4) && (dist < 5)) // Round to 1 decimal place for miles mile = Math.round(dist * 100) / 100 // EXCEPTION: Force 2 decimals for 8K 4.97 - Otherwise is rounded to 5 even else mile = Math.round(dist * 10) / 10 } else mile = Math.round(dist * 100) / 100 // Round to 2 decimal places for kilometers mile = '' + mile split = ConvertTime(total + (tsec - total)) pad = 16 - mile.length - split.length if ((i<10) && (dist>=10)) { mile = ' ' + mile pad = pad - 1 } else mile = '' + mile str = mile + GetSpace(pad, 0) + split FRMpace.TXTpace.value = FRMpace.TXTpace.value + str + "\r\n" } } else { sum = sum + msec mile = '' + i split = ConvertTime(sum) pad = 16 - mile.length - split.length if ((i<10) && (dist>=10)) { mile = ' ' + mile pad = pad - 1 } else mile = '' + mile str = mile + GetSpace(pad, 0) + split FRMpace.TXTpace.value = FRMpace.TXTpace.value + str + "\r\n" } } } // ********************************************************************* // * // * Repeat of GetResultsText() except the results are // * created in HTML and displayed in a new window // * // * FRMpace: Actual form, it must be passed to this function in // * order to work with Netscape. // * // ********************************************************************* function GetResultsPrinter(FRMpace) { var sec, min, hour, dist, total, mtime, ftime, msec, tsec var str, split, i, j, pad var mile // this var used for miles and kilometers var newWindow = window.open("","","status,height=375,width=170,scrollbars,menubar") hour = FRMpace.PACEhours[FRMpace.PACEhours.selectedIndex].value min = FRMpace.PACEminutes[FRMpace.PACEminutes.selectedIndex].value sec = FRMpace.PACEseconds[FRMpace.PACEseconds.selectedIndex].value dist = FRMpace.PACEdistance[FRMpace.PACEdistance.selectedIndex].value if (FRMpace.RADIOMiKm[1].checked) // Is Kilometer Splits Checked? dist = GetKilometers(dist) // Convert Miles to Kilometers tsec = (3600 * hour) + (60 * min) + (1 * sec) ftime = hour + ((min < 10) ? ":0" : ":") + min + ((sec < 10) ? ":0" : ":") + sec total = tsec/dist hour = Math.floor(total / 3600) min = Math.floor((total - (hour * 3600)) / 60) sec = Math.floor(total - (hour * 3600) - (min * 60)) if (hour < 1) mtime = min + ((sec < 10) ? ":0" : ":") + sec else mtime = hour + ((min < 10) ? ":0" : ":") + min + ((sec < 10) ? ":0" : ":") + sec msec = (3600 * hour) + (60 * min) + (1 * sec) // HTML start newWindow.document.writeln('') newWindow.document.writeln('') newWindow.document.writeln('') newWindow.document.writeln('') newWindow.document.writeln('') newWindow.document.writeln('ThePeacefulRunner.com Pace Calculator') newWindow.document.writeln('') newWindow.document.writeln('') // Table 1 start newWindow.document.writeln('
') newWindow.document.writeln('') // Cell Start newWindow.document.writeln('') newWindow.document.writeln('') newWindow.document.writeln('') // Table 1 End newWindow.document.writeln('') newWindow.document.writeln('
') newWindow.document.writeln('') newWindow.document.writeln('' + ' The Peaceful Runner
') newWindow.document.writeln(' Miles - ' + FRMpace.PACEdistance[FRMpace.PACEdistance.selectedIndex].text + '
') newWindow.document.writeln(' Pace - ' + mtime + '
') newWindow.document.writeln(' Time - ' + ftime + '
') // Cell End newWindow.document.writeln('
') // Cell Start newWindow.document.writeln('') newWindow.document.writeln('') newWindow.document.writeln('') // Table 1 End newWindow.document.writeln('') newWindow.document.writeln('') newWindow.document.close() }
') // Font Set newWindow.document.writeln('') newWindow.document.writeln('') // Header Write if (FRMpace.RADIOMiKm[0].checked) // Is Mile Splits Checked? newWindow.document.writeln(' ' + 'Mile' + '  ' + 'Splits' + '
') else newWindow.document.writeln(' ' + 'KM' + '     ' + 'Splits' + '
') newWindow.document.writeln(' -------------' + '
') sum = 0 for (i=1; i<=1+1*dist; i++) { // Loop to write Mile or Kilometer Splits if (i > dist) { if (dist % 1 != 0) { if (FRMpace.RADIOMiKm[0].checked) { // Is Mile Splits Checked? if ((dist > 4) && (dist < 5)) // Round to 1 decimal place for miles mile = Math.round(dist * 100) / 100 // EXCEPTION: Force 2 decimals for 8K 4.97 - Otherwise is rounded to 5 even else mile = Math.round(dist * 10) / 10 } else mile = Math.round(dist * 100) / 100 // Round to 2 decimal places for kilometers mile = '' + mile split = ConvertTime(total + (tsec - total)) pad = 13 - mile.length - split.length if ((i<10) && (dist>=10)) { mile = ' ' + mile pad = pad - 1 } else mile = '' + mile str = mile + GetSpace(pad) + split newWindow.document.writeln('' + str + '
') newWindow.document.writeln(' -------------' + '
') newWindow.document.writeln('' + 'thepeacefulrunner.com' + '
') } } else { sum = sum + msec mile = '' + i split = ConvertTime(sum) pad = 13 - mile.length - split.length if ((i<10) && (dist>=10)) { mile = ' ' + mile pad = pad - 1 } else mile = '' + mile str = mile + GetSpace(pad) + split if (i == dist) { // NON Decimal Mile finishing Time - ex. NOT (26.2, 3.1, etc.) newWindow.document.writeln('' + str + '
') newWindow.document.writeln(' -------------' + '
') newWindow.document.writeln('' + 'thepeacefulrunner.com' + '
') } else if ((i % 5) == 0) // Every 5th Mile newWindow.document.writeln('' + str + '
') else // All other Miles newWindow.document.writeln('' + str + '
') } } for (i=i; i<=45; i++) { // Write some additional blank lines newWindow.document.writeln(' 
') } newWindow.document.writeln('
') newWindow.document.writeln('
') // Cell End newWindow.document.writeln('