1 | function validateTime( str_target, str_datetime ) { |
---|
2 | |
---|
3 | var time = document.cal.time.value.split( ':' ); |
---|
4 | var invalid = 0; |
---|
5 | var dt_datetime = (str_datetime == null || str_datetime =="" ? new Date() : str2dt(str_datetime)); |
---|
6 | |
---|
7 | if( time.length <= 1 && invalid == 0 ) { |
---|
8 | |
---|
9 | document.cal.time.value = dt2tmstr( dt_datetime ); |
---|
10 | alert( 'Invalid time specified (needs to be HH:MM:SS), reset to current time.' ); |
---|
11 | invalid = 1; |
---|
12 | |
---|
13 | } else if( time.length == 2 ) { |
---|
14 | |
---|
15 | if( time[1] != '' ) { |
---|
16 | |
---|
17 | document.cal.time.value = document.cal.time.value + ':00'; |
---|
18 | |
---|
19 | } else if( invalid == 0 ) { |
---|
20 | |
---|
21 | document.cal.time.value = dt2tmstr( dt_datetime ); |
---|
22 | alert( 'Invalid time specified (needs to be HH:MM:SS), reset to current time.' ); |
---|
23 | invalid = 1; |
---|
24 | } |
---|
25 | |
---|
26 | } else if( time.length == 3 ) { |
---|
27 | |
---|
28 | newtime = ''; |
---|
29 | |
---|
30 | for( var i=0; i<time.length; i++) { |
---|
31 | |
---|
32 | time_field = time[i]; |
---|
33 | if( i == 0 ) |
---|
34 | var sep = ''; |
---|
35 | else |
---|
36 | var sep = ':'; |
---|
37 | |
---|
38 | |
---|
39 | if( time_field.length == 0 && invalid == 0 ) { |
---|
40 | |
---|
41 | document.cal.time.value = dt2tmstr( dt_datetime ); |
---|
42 | alert( 'Invalid time specified (needs to be HH:MM:SS), reset to current time.' ); |
---|
43 | invalid = 1; |
---|
44 | |
---|
45 | } else if( time_field.length == 1 ) { |
---|
46 | |
---|
47 | newtime = newtime + sep + '0' + time_field; |
---|
48 | } else { |
---|
49 | newtime = newtime + sep + time_field; |
---|
50 | } |
---|
51 | |
---|
52 | for( var l=0; l<time_field.length; l++ ) { |
---|
53 | var mydigit = time_field.charAt(l) |
---|
54 | |
---|
55 | if(( mydigit < "0" || mydigit > "9" ) && invalid == 0 ) { |
---|
56 | |
---|
57 | document.cal.time.value = dt2tmstr( dt_datetime ); |
---|
58 | alert( 'Invalid time specified (needs to be HH:MM:SS), reset to current time.' ); |
---|
59 | invalid = 1; |
---|
60 | |
---|
61 | } |
---|
62 | } |
---|
63 | } |
---|
64 | |
---|
65 | if( invalid == 0 ) { |
---|
66 | |
---|
67 | document.cal.time.value = newtime; |
---|
68 | } |
---|
69 | |
---|
70 | } |
---|
71 | |
---|
72 | if( invalid == 0 ) { |
---|
73 | |
---|
74 | target = str_target.split('.'); |
---|
75 | frm = target[1]; |
---|
76 | elm = target[2]; |
---|
77 | var mf = window.opener.document.forms[frm].elements[elm].value.split( ' ' ); |
---|
78 | |
---|
79 | if( mf[0] != '' ) |
---|
80 | window.opener.document.forms[frm].elements[elm].value=mf[0]+' '+document.cal.time.value; |
---|
81 | else |
---|
82 | window.opener.document.forms[frm].elements[elm].value=dt2dtstr( new Date() ) +document.cal.time.value; |
---|
83 | } |
---|
84 | } |
---|
85 | |
---|
86 | // datetime parsing and formatting routimes. modify them if you wish other datetime format |
---|
87 | function str2dt (str_datetime) { |
---|
88 | var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/; |
---|
89 | if (!re_date.exec(str_datetime)) |
---|
90 | return alert("Invalid Datetime format: "+ str_datetime); |
---|
91 | return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6)); |
---|
92 | } |
---|
93 | function dt2dtstr (dt_datetime) { |
---|
94 | return (new String ( |
---|
95 | dt_datetime.getDate()+"-"+(dt_datetime.getMonth()+1)+"-"+dt_datetime.getFullYear()+" ")); |
---|
96 | } |
---|
97 | function dt2tmstr (dt_datetime) { |
---|
98 | |
---|
99 | if( dt_datetime.getHours() < 10 ) |
---|
100 | var hours = '0' + dt_datetime.getHours(); |
---|
101 | else |
---|
102 | var hours = dt_datetime.getHours(); |
---|
103 | |
---|
104 | if( dt_datetime.getMinutes() < 10 ) |
---|
105 | var minutes = '0' + dt_datetime.getMinutes(); |
---|
106 | else |
---|
107 | var minutes = dt_datetime.getMinutes(); |
---|
108 | |
---|
109 | if( dt_datetime.getSeconds() < 10 ) |
---|
110 | var seconds = '0' + dt_datetime.getSeconds(); |
---|
111 | else |
---|
112 | var seconds = dt_datetime.getSeconds(); |
---|
113 | |
---|
114 | return (new String ( |
---|
115 | hours+":"+minutes+":"+seconds)); |
---|
116 | } |
---|