]> git.datanom.net - webcal.git/blob - js/helper.js
Initial upload
[webcal.git] / js / helper.js
1 // $Id$
2
3 var onClickDisabled = [];
4 var allDay = false;
5 var observable_startdate = ['enddate'];
6 var observable_enddate = ['startdate'];
7
8 function newwin(url) {
9 window.open(url);
10 }
11
12 function focus(element) {
13 document.getElementById(element).focus();
14 }
15
16 function show_the_overlay() {
17 document.getElementById('display_overlay_holder').style.display = 'block';
18 }
19
20 function hide_the_overlay(referer) {
21 document.getElementById('display_overlay_holder').style.display = 'none';
22 document.location.href=referer;
23 }
24
25 function setCalendar(form, input, cal) {
26 var id = document.getElementById(input);
27 var theForm = document.getElementById(form);
28
29 if (id == null || theForm == null)
30 return;
31 id.value = cal;
32 }
33
34 function error(msg) {
35 alert(msg);
36 document.location.href="$referer";
37 }
38
39 function redirect(url) {
40 window.location = url;
41 }
42
43 function is_array(obj) {
44 return obj && !(obj.propertyIsEnumerable('length')) &&
45 typeof obj === 'object' && typeof obj.length === 'number';
46 }
47
48 function getDateString(date, add) {
49 var m = (date.getMonth() + 1);
50 if (m < 10)
51 m = '0' + m;
52 var d = (date.getDate() + add);
53 if (d < 10)
54 d = '0' + d;
55 var s = date.getFullYear() + '-' + m + '-' + d;
56 return s;
57 }
58
59 function getTimeString(date, end) {
60 var m = date.getMinutes();
61 var h = 0;
62 if (m < 8)
63 m = '00';
64 else if (m < 23)
65 m = '15';
66 else if (m < 38)
67 m = '30';
68 else if (m < 43)
69 m = '45';
70 else {
71 m = '00';
72 h = 1;
73 }
74 var h = date.getHours() + h + end;
75 if (h < 10)
76 h = '0' + h;
77 return h + m;
78 }
79
80 function stateSwitch(btn, elements, init) {
81 if (btn == null || elements == null || ! is_array(elements) || elements.length < 1)
82 return;
83
84 var starttime = document.getElementById('starttime');
85 var endtime = document.getElementById('endtime');
86 var startdate = document.getElementById('startdate');
87 var enddate = document.getElementById('enddate');
88 allDay = btn.checked;
89 for (var i = 0; i < elements.length; i++) {
90 var elem = document.getElementById(elements[i]);
91 if (btn.checked == true) {
92 elem.disabled = true;
93 if (elem.onclick) {
94 onClickDisabled[elem.id] = elem.onclick;
95 elem.onclick = null;
96 }
97 }
98 else {
99 var tmp = null;
100 if (onClickDisabled[elem.id])
101 var tmp = onClickDisabled[elem.id];
102 if (tmp) {
103 elem.onclick = tmp;
104 onClickDisabled[elem.id] = null;
105 }
106 elem.disabled = false;
107 }
108 }
109 if (! init) {
110 if (allDay) {
111 starttime.value = '0000';
112 endtime.value = '0000';
113 var s_date = new Date(startdate.value);
114 var e_date = new Date(getDateString(s_date, 1));
115 enddate.value = getDateString(e_date, 0);
116 }
117 else {
118 var now = new Date();
119 var time = getTimeString(now, 0);
120 var s_date = new Date(startdate.value);
121 enddate.value = getDateString(s_date, 0);
122 starttime.value = time;
123 endtime.value = getTimeString(now, 1);
124 }
125 }
126 }
127
128 function enableAll(elements) {
129 if (elements == null || ! is_array(elements) || elements.length < 1)
130 return true;
131
132 for (var i = 0; i < elements.length; i++) {
133 var elem = document.getElementById(elements[i]);
134 elem.disabled = false;
135 }
136 return true;
137 }
138
139 function dateAlign(hasDate) {
140 if (hasDate == null)
141 return;
142
143 if (hasDate.id == 'startdate')
144 elements = observable_startdate;
145 else
146 elements = observable_enddate;
147
148 for (var i = 0; i < elements.length; i++) {
149 var elem = document.getElementById(elements[i]);
150 elem.value = hasDate.value;
151 }
152 }
This page took 0.071589 seconds and 6 git commands to generate.