Description: Fix overreaching and underachieving Javascript validation
 Very simple patch: The time tracker currently validates the timestam
 with the ^\d\d:\d\d$ regex. This means that it leads to false
 positives and false negatives:
    * 9:30 is invalid (should be valid - hours below 10 can be 0x or x)
    * 25:00 is valid (should be invalid - hours above or equal to 24 do not exist)
    * 14:60 is valid (should be invalid - minutes above or equal to 60 do not exist)
 This patch makes the proper validations.
Forwarded: http://collabtive.o-dyn.de/forum/viewtopic.php?f=11&t=4168
Index: collabtive-0.6.5/templates/frost/addtimetracker.tpl
===================================================================
--- collabtive-0.6.5.orig/templates/frost/addtimetracker.tpl	2011-04-28 18:24:52.000000000 -0500
+++ collabtive-0.6.5/templates/frost/addtimetracker.tpl	2011-04-28 18:35:19.000000000 -0500
@@ -26,14 +26,14 @@
 	  	
 	  	<div class = "row">
 	  		<label for = "started">{#started#}:</label>
-	  		<input type = "text" class="text" style="width:80px;margin:0 6px 0 0;" id = "started" name = "started" required = "1" regexp="^\d\d:\d\d$" realname = "{#started#} (Format: hh:mm)" />
+	  		<input type = "text" class="text" style="width:80px;margin:0 6px 0 0;" id = "started" name = "started" required = "1" regexp="^([01]?\d|2[0123]):[012345]\d$" realname = "{#started#} (Format: hh:mm)" />
 	  		
 	  		<button onclick="getnow('started');return false;" onfocus="this.blur();" title = "{#inserttime#}">hh:mm</button>
 		</div>
 	  	
 	  	<div class = "row">
 	  		<label for = "ended">{#ended#}:</label>
-			<input  type = "text" class="text" style="width:80px;margin:0 6px 0 0;" id = "ended" name = "ended"  required = "1" regexp="^\d\d:\d\d$" realname = "{#ended#} (Format: hh:mm)" / >
+			<input  type = "text" class="text" style="width:80px;margin:0 6px 0 0;" id = "ended" name = "ended"  required = "1" regexp="^([01]?\d|2[0123]):[012345]\d$" realname = "{#ended#} (Format: hh:mm)" / >
 
 			<button onclick="getnow('ended');return false;" onfocus="this.blur();" title = "{#inserttime#}">hh:mm</button>
 		</div>
@@ -67,4 +67,4 @@
 	</fieldset>
 	</form>
 
-</div> {*block_in_wrapper end*}
\ No newline at end of file
+</div> {*block_in_wrapper end*}
Index: collabtive-0.6.5/templates/standard/addtimetracker.tpl
===================================================================
--- collabtive-0.6.5.orig/templates/standard/addtimetracker.tpl	2011-04-28 18:24:52.000000000 -0500
+++ collabtive-0.6.5/templates/standard/addtimetracker.tpl	2011-04-28 18:35:24.000000000 -0500
@@ -27,14 +27,14 @@
 
 	  	<div class = "row">
 	  		<label for = "started">{#started#}:</label>
-	  		<input type = "text" class="text" style="width:80px;margin:0 6px 0 0;" id = "started" name = "started" required = "1" regexp="^\d\d:\d\d$" realname = "{#started#} (Format: hh:mm)" />
+	  		<input type = "text" class="text" style="width:80px;margin:0 6px 0 0;" id = "started" name = "started" required = "1" regexp="^([01]?\d|2[0123]):[012345]\d$" realname = "{#started#} (Format: hh:mm)" />
 
 	  		<button onclick="getnow('started');return false;" onfocus="this.blur();" title = "{#inserttime#}">hh:mm</button>
 		</div>
 
 	  	<div class = "row">
 	  		<label for = "ended">{#ended#}:</label>
-			<input  type = "text" class="text" style="width:80px;margin:0 6px 0 0;" id = "ended" name = "ended"  required = "1" regexp="^\d\d:\d\d$" realname = "{#ended#} (Format: hh:mm)" / >
+			<input  type = "text" class="text" style="width:80px;margin:0 6px 0 0;" id = "ended" name = "ended"  required = "1" regexp="^([01]?\d|2[0123]):[012345]\d$" realname = "{#ended#} (Format: hh:mm)" / >
 
 			<button onclick="getnow('ended');return false;" onfocus="this.blur();" title = "{#inserttime#}">hh:mm</button>
 		</div>
@@ -68,4 +68,4 @@
 	</fieldset>
 	</form>
 
-</div> {*block_in_wrapper end*}
\ No newline at end of file
+</div> {*block_in_wrapper end*}
