[thelist] Javascript: Objects to Strings

Minh-Lee Goon mlgoon at netscape.net
29 Nov 99 14:20:28 CST


Here's what I'm trying to do:
I'm taking values from a form and calculating them. The form is a sign-in
sheet, where the employees type in the times they signed in and out and the
form calculates how long they've worked.

I've included the script here so you can take a look at what I've been
attempting. The last chunk of the code is what's bothering me.

<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>Timesheet Calculator</title>

	<style type="text/css">
	<!-- 
		b { color:#0080ff; font-size:17px; }
		input { font-size:14px; font-family:"Courier New"; }
	-->
	</style>

	<script language="JavaScript">
	<!--
	function splitTime() {
		Total_Duration = 0;
		
		for (i=1;i<=31;i++) {
			Start_Time = eval("document.TimeSheet.start" + i + ".value");
			splitPoint = Start_Time.indexOf(":");
			Start_Hours = Start_Time.substring(0,splitPoint);
			Start_Minutes = Start_Time.substring((splitPoint + 1),Start_Time.length);
			StartHours = eval(Start_Hours);
			StartMinutes = eval(Start_Minutes);
			Start = StartHours + (StartMinutes/60);
			
			End_Time = eval("document.TimeSheet.end" + i + ".value");
			splitPoint = End_Time.indexOf(":");
			End_Hours = End_Time.substring(0,splitPoint);
			End_Minutes = End_Time.substring((splitPoint + 1),End_Time.length);
			EndHours = eval(End_Hours);
			EndMinutes = eval(End_Minutes);
			End = EndHours + (EndMinutes/60);
			
			if (End <= Start) {
				alert('Please check the values again.');
				return false;
				}
			else {
				duration = End - Start;
				}
			
			var Duration_Array = new Array();
			duration_Array[i] = duration;
			TimeSheet.duration[i].value = eval("document.TimeSheet.duration" + i +
".value");
			TimeSheet.duration[i].value = duration[i];
			
			Total_Duration = Total_Duration + duration;
			TimeSheet.total.value = Total_Duration;
			}
		}
	//-->
	</script>

</head>

<body>

<table border="0" width="450">
	<tr align="right" valign="top">
		<td>
			<font face="Arial" size="2">
			<form method="post" name="TimeSheet">
				<b>1</b> Start: <input name="start1" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end1" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration1"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>2</b> Start: <input name="start2" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end2" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration2"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>3</b> Start: <input name="start3" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end3" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration3"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>4</b> Start: <input name="start4" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end4" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration4"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>5</b> Start: <input name="start5" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end5" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration5"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>6</b> Start: <input name="start6" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end6" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration6"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>7</b> Start: <input name="start7" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end7" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration7"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>8</b> Start: <input name="start8" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end8" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration8"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>9</b> Start: <input name="start9" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end9" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration9"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>10</b> Start: <input name="start10" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end10" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration10"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>11</b> Start: <input name="start11" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end11" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration11"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>12</b> Start: <input name="start12" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end12" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration12"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>13</b> Start: <input name="start13" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end13" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration13"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>14</b> Start: <input name="start14" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end14" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration14"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>15</b> Start: <input name="start15" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end15" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration15"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>16</b> Start: <input name="start16" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end16" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration16"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>17</b> Start: <input name="start17" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end17" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration17"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>18</b> Start: <input name="start18" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end18" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration18"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>19</b> Start: <input name="start19" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end19" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration19"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>20</b> Start: <input name="start20" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end20" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration20"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>21</b> Start: <input name="start21" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end21" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration21"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>22</b> Start: <input name="start22" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end22" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration22"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>23</b> Start: <input name="start23" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end23" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration23"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>24</b> Start: <input name="start24" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end24" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration24"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>25</b> Start: <input name="start25" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end25" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration25"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>26</b> Start: <input name="start26" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end26" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration26"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>27</b> Start: <input name="start27" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end27" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration27"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>28</b> Start: <input name="start28" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end28" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration28"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>29</b> Start: <input name="start29" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end29" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration29"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>30</b> Start: <input name="start30" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end30" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration30"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				<b>31</b> Start: <input name="start31" type="Text" size="10" maxlength="5"
onchange="splitTime()"> End: <input name="end31" type="Text" size="10"
maxlength="5" onchange="splitTime()"> Duration: <input name="duration31"
type="Text" size="10" maxlength="5" onchange="splitTime()"><br>
				
				<p>
				<b>Total number of hours:</b> <input name="total" type="Text" size="10"
maxlength="5" onchange="splitTime()" maxlength="5" onchange="splitTime()">
				<input type="Submit" value="Calculate"><br>
				<input type="Reset" value="Reset"><br>
			</form>
			
			</font>
		</td>
	</tr>
</table>

</body>
</html>

____________________________________________________________________
Get your own FREE, personal Netscape WebMail account today at http://webmail.netscape.com.