source: trunk/web2/addons/job_monarch/ts_validatetime.js @ 547

Last change on this file since 547 was 532, checked in by ramonb, 16 years ago

web2:

  • added Web 2.0 test branch
File size: 4.0 KB
Line 
1function 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
87function 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}
93function dt2dtstr (dt_datetime) {
94        return (new String (
95                        dt_datetime.getDate()+"-"+(dt_datetime.getMonth()+1)+"-"+dt_datetime.getFullYear()+" "));
96}
97function 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}
Note: See TracBrowser for help on using the repository browser.