~ubuntu-branches/ubuntu/raring/webcalendar/raring

« back to all changes in this revision

Viewing changes to includes/js/edit_entry.php

  • Committer: Bazaar Package Importer
  • Author(s): Rafael Laboissiere
  • Date: 2009-06-09 06:26:24 UTC
  • mfrom: (18.2.3 karmic)
  • Revision ID: james.westby@ubuntu.com-20090609062624-9n9xea2ftpipmg38
Tags: 1.2.0+dfsg-4
* debian/patches/06_send-reminder-paths.diff: Adjust patch to help
  translate.php to find the translation files under /etc/webcalendar.
  Thanks to Dale and Cheryl Schroeder for the help on debugging this
  (really, closes: #531312).
* debian/patches/16_no-blink-public-access-title.diff: New patch for
  avoiding the blinking title when changing the Public Access title in
  English-US.txt

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
        global $groups_enabled,$WORK_DAY_START_HOUR,$WORK_DAY_END_HOUR;
3
 
?><script type="text/javascript">
4
 
<!-- <![CDATA[
 
1
<?php /* $Id: edit_entry.php,v 1.75.2.5 2008/04/03 15:05:15 umcesrjones Exp $  */
 
2
defined ( '_ISVALID' ) or die ( 'You cannot access this file directly!' );
 
3
 
 
4
 global $GROUPS_ENABLED,$WORK_DAY_START_HOUR,$WORK_DAY_END_HOUR;
 
5
 $user = $arinc[3];
 
6
?>
 
7
var bydayAr = new Array();
 
8
var bymonthdayAr = new Array();
 
9
var bysetposAr = new Array();
 
10
var bydayLabels = new Array("SU","MO","TU","WE","TH","FR","SA");
 
11
var bydayTrans = new Array( "<?php etranslate ( 'SU' ) ?>"
 
12
, "<?php etranslate ( 'MO' ) ?>"
 
13
, "<?php etranslate ( 'TU' ) ?>"
 
14
, "<?php etranslate ( 'WE' ) ?>"
 
15
, "<?php etranslate ( 'TH' ) ?>"
 
16
, "<?php etranslate ( 'FR' ) ?>"
 
17
, "<?php etranslate ( 'SA' ) ?>"
 
18
);
5
19
// do a little form verifying
6
20
function validate_and_submit () {
7
 
  if ( document.editentryform.name.value == "" ) {
8
 
    document.editentryform.name.select ();
 
21
  if ( form.name.value == "" ) {
 
22
    form.name.select ();
9
23
<?php
10
24
    if ( empty ( $GLOBALS['EVENT_EDIT_TABS'] ) ||
11
25
      $GLOBALS['EVENT_EDIT_TABS'] == 'Y' ) { ?>
12
 
    showTab ( "details" );
 
26
    showTab( 'details' );
13
27
<?php } ?>
14
 
    document.editentryform.name.focus ();
15
 
    alert ( "<?php etranslate("You have not entered a Brief Description")?>." );
 
28
    form.name.focus();
 
29
    alert ( "<?php etranslate ( 'You have not entered a Brief Description', true)?>.");
16
30
    return false;
17
31
  }
18
 
  // Leading zeros seem to confuse parseInt()
19
 
  if ( document.editentryform.hour.value.charAt ( 0 ) == '0' )
20
 
    document.editentryform.hour.value = document.editentryform.hour.value.substring ( 1, 2 );
21
 
  if ( document.editentryform.timetype.selectedIndex == 1 ) {
22
 
    h = parseInt ( document.editentryform.hour.value );
23
 
    m = parseInt ( document.editentryform.minute.value );
24
 
<?php if ($GLOBALS["TIME_FORMAT"] == "12") { ?>
25
 
    if ( document.editentryform.ampm[1].checked ) {
26
 
      // pm
27
 
      if ( h < 12 )
28
 
        h += 12;
29
 
    } else {
30
 
      // am
31
 
      if ( h == 12 )
32
 
        h = 0;
33
 
    }
34
 
<?php } ?>
35
 
    if ( h >= 24 || m > 59 ) {
36
 
<?php
37
 
      if ( empty ( $GLOBALS['EVENT_EDIT_TABS'] ) ||
38
 
        $GLOBALS['EVENT_EDIT_TABS'] == 'Y' ) { ?>
39
 
        showTab ( "details" );
40
 
<?php } ?>
41
 
      alert ( "<?php etranslate ("You have not entered a valid time of day")?>." );
42
 
      document.editentryform.hour.select ();
43
 
      document.editentryform.hour.focus ();
44
 
      return false;
45
 
    }
 
32
  if ( form.timetype &&
 
33
    form.timetype.selectedIndex == 1 ) {
 
34
    h = parseInt (isNumeric( form.entry_hour.value ));
 
35
    m = parseInt (isNumeric( form.entry_minute.value ));
 
36
 
46
37
    // Ask for confirmation for time of day if it is before the user's
47
 
<?php
48
 
      if ( empty ( $GLOBALS['EVENT_EDIT_TABS'] ) ||
49
 
        $GLOBALS['EVENT_EDIT_TABS'] == 'Y' ) { ?>
50
 
        showTab ( "details" );
51
 
<?php } ?>
52
38
    // preference for work hours.
53
 
    <?php if ($GLOBALS["TIME_FORMAT"] == "24") {
 
39
    <?php if ($GLOBALS['TIME_FORMAT'] == "24") {
54
40
      echo "if ( h < $WORK_DAY_START_HOUR  ) {";
55
41
    }  else {
56
 
      echo "if ( h < $WORK_DAY_START_HOUR && document.editentryform.ampm[0].checked ) {";
 
42
      echo "if ( h < $WORK_DAY_START_HOUR && form.entry_ampmA.checked ) {";
57
43
    }
58
44
    ?>
59
 
    if ( ! confirm ( "<?php etranslate ("The time you have entered begins before your preferred work hours.  Is this correct?")?> "))
 
45
    if ( ! confirm ( "<?php etranslate ( 'The time you have entered begins before your preferred work hours. Is this correct?', true)?> "))
60
46
      return false;
61
 
  }
62
 
  }
 
47
   }
 
48
  }
 
49
 
63
50
  // is there really a change?
64
51
  changed = false;
65
 
  form=document.editentryform;
66
52
  for ( i = 0; i < form.elements.length; i++ ) {
67
53
    field = form.elements[i];
68
54
    switch ( field.type ) {
72
58
          changed = true;
73
59
        break;
74
60
      case "text":
75
 
//      case "textarea":
 
61
      case "textarea":
76
62
        if ( field.value != field.defaultValue )
77
63
          changed = true;
78
64
        break;
79
65
      case "select-one":
 
66
 //Don't register a percentage change
 
67
      if ( form.elements[i].name == "percent")
 
68
        break;
80
69
//      case "select-multiple":
81
70
        for( j = 0; j < field.length; j++ ) {
82
71
          if ( field.options[j].selected != field.options[j].defaultSelected )
88
77
  if ( changed ) {
89
78
    form.entry_changed.value = "yes";
90
79
  }
 
80
 
91
81
//Add code to make HTMLArea code stick in TEXTAREA
92
 
 if (typeof editor != "undefined") editor._textArea.value = editor.getHTML();
93
 
  // would be nice to also check date to not allow Feb 31, etc...
94
 
  document.editentryform.submit ();
95
 
  return true;
96
 
}
97
 
 
98
 
function selectDate (  day, month, year, current, evt ) {
99
 
  // get currently selected day/month/year
100
 
  monthobj = eval ( 'document.editentryform.' + month );
101
 
  curmonth = monthobj.options[monthobj.selectedIndex].value;
102
 
  yearobj = eval ( 'document.editentryform.' + year );
103
 
  curyear = yearobj.options[yearobj.selectedIndex].value;
104
 
  date = curyear;
105
 
 
106
 
                if (document.getElementById) {
107
 
    mX = evt.clientX   + 40;
108
 
    mY = evt.clientY  + 120;
109
 
  }
110
 
  else {
111
 
    mX = evt.pageX + 40;
112
 
    mY = evt.pageY +130;
113
 
  }
114
 
        var MyPosition = 'scrollbars=no,toolbar=no,left=' + mX + ',top=' + mY + ',screenx=' + mX + ',screeny=' + mY ;
115
 
  if ( curmonth < 10 )
116
 
    date += "0";
117
 
  date += curmonth;
118
 
  date += "01";
119
 
  url = "datesel.php?form=editentryform&fday=" + day +
120
 
    "&fmonth=" + month + "&fyear=" + year + "&date=" + date;
121
 
  var colorWindow = window.open(url,"DateSelection","width=300,height=200,"  + MyPosition);
122
 
}
123
 
 
124
 
<?php if ( $groups_enabled == "Y" ) { 
 
82
 if (typeof editor != "undefined") editor._textArea.value = editor.getHTML ();
 
83
 
 
84
 //Check if Event date is valid
 
85
  var d = form.day.selectedIndex;
 
86
  var vald = form.day.options[d].value;
 
87
  var m = form.month.selectedIndex;
 
88
  var valm = form.month.options[m].value;
 
89
  var y = form.year.selectedIndex;
 
90
  var valy = form.year.options[y].value;
 
91
  var c = new Date(valy,valm -1,vald);
 
92
 if ( c.getDate () != vald ) {
 
93
   alert ("<?php etranslate ( 'Invalid Event Date', true)?>.");
 
94
  form.day.focus ();
 
95
   return false;
 
96
 }
 
97
 //Repeat Tab enabled, Select all of them
 
98
 if ( form.rpttype ) {
 
99
   for ( i = 0; i < elements['exceptions[]'].length; i++ ) {
 
100
     elements['exceptions[]'].options[i].selected = true;
 
101
   }
 
102
 }
 
103
 
 
104
 if ( form.due_day ) {
 
105
   //Check if Event due date is valid
 
106
   var d = form.due_day.selectedIndex;
 
107
   var vald = form.due_day.options[d].value;
 
108
   var m = form.due_month.selectedIndex;
 
109
   var valm = form.due_month.options[m].value;
 
110
   var y = form.due_year.selectedIndex;
 
111
   var valy = form.due_year.options[y].value;
 
112
   var c = new Date(valy,valm -1,vald);
 
113
   if ( c.getDate () != vald ) {
 
114
     alert ("<?php etranslate ( 'Invalid Event Date', true)?>.");
 
115
     form.due_day.focus ();
 
116
     return false;
 
117
   }
 
118
 }
 
119
 
 
120
 //set byxxxList values for submission
 
121
 var bydayStr = '';
 
122
 for ( bydayKey in bydayAr ) {
 
123
   if ( bydayKey == isNumeric ( bydayKey ) )
 
124
     bydayStr = bydayStr + ',' + bydayAr[bydayKey];
 
125
 }
 
126
 if ( bydayStr.length > 0 )
 
127
   elements['bydayList'].value = bydayStr.substr(1);
 
128
 //set bymonthday values for submission
 
129
 var bymonthdayStr = '';
 
130
 for ( bymonthdayKey in bymonthdayAr ) {
 
131
   if ( bymonthdayKey == isNumeric ( bymonthdayKey ) )
 
132
     bymonthdayStr = bymonthdayStr + ',' + bymonthdayAr[bymonthdayKey];
 
133
 }
 
134
 if ( bymonthdayStr.length > 0 )
 
135
   elements['bymonthdayList'].value = bymonthdayStr.substr(1);
 
136
 
 
137
 //set bysetpos values for submission
 
138
 var bysetposStr = '';
 
139
 for ( bysetposKey in bysetposAr ) {
 
140
   if ( bysetposKey == isNumeric ( bysetposKey ) )
 
141
     bysetposStr = bysetposStr + ',' + bysetposAr[bysetposKey];
 
142
 }
 
143
 if ( bysetposStr.length > 0 )
 
144
   elements['bysetposList'].value = bysetposStr.substr(1);
 
145
 
 
146
 form.submit ();
 
147
 return true;
 
148
}
 
149
 
 
150
<?php if ( $GROUPS_ENABLED == 'Y' ) {
125
151
?>function selectUsers () {
 
152
  var user = "<?php echo $user ?>";
126
153
  // find id of user selection object
127
154
  var listid = 0;
128
 
  for ( i = 0; i < document.editentryform.elements.length; i++ ) {
129
 
    if ( document.editentryform.elements[i].name == "participants[]" )
 
155
  for ( i = 0; i < elementlength; i++ ) {
 
156
    if ( elements[i].name == "participants[]" )
130
157
      listid = i;
131
158
  }
132
 
  url = "usersel.php?form=editentryform&listid=" + listid + "&users=";
 
159
  url = "usersel.php?form=editentryform&listid=" + listid + "&user=" + user + "&users=";
133
160
  // add currently selected users
134
 
  for ( i = 0, j = 0; i < document.editentryform.elements[listid].length; i++ ) {
135
 
    if ( document.editentryform.elements[listid].options[i].selected ) {
 
161
  for ( i = 0, j = 0; i < elements[listid].length; i++ ) {
 
162
    if ( elements[listid].options[i].selected ) {
136
163
      if ( j != 0 )
137
 
               url += ",";
 
164
        url += ",";
138
165
      j++;
139
 
      url += document.editentryform.elements[listid].options[i].value;
 
166
      url += elements[listid].options[i].value;
140
167
    }
141
168
  }
142
169
  //alert ( "URL: " + url );
144
171
  window.open ( url, "UserSelection",
145
172
    "width=500,height=500,resizable=yes,scrollbars=yes" );
146
173
}
147
 
<?php } ?>
148
 
 
149
 
<?php   // This function is called when the event type combo box 
150
 
        // is changed. If the user selectes "untimed event" or "all day event",
151
 
        // the times & duration fields are hidden.
152
 
        // If they change their mind & switch it back, the original 
153
 
        // values are restored for them
 
174
<?php }
 
175
// This function is called when the event type combo box
 
176
 // is changed. If the user selectes "untimed event" or "all day event",
 
177
 // the times & duration fields are hidden.
 
178
 // If they change their mind & switch it back, the original
 
179
 // values are restored for them
154
180
?>function timetype_handler () {
155
 
  var i = document.editentryform.timetype.selectedIndex;
156
 
  var val = document.editentryform.timetype.options[i].text;
157
 
  //alert ( "val " + i + " = " + val );
158
 
  // i == 1 when set to timed event
 
181
  if ( ! form.timetype )
 
182
   return true;
 
183
  var i = form.timetype.selectedIndex;
 
184
  var val = form.timetype.options[i].text;
159
185
  if ( i != 1 ) {
160
186
    // Untimed/All Day
161
187
    makeInvisible ( "timeentrystart" );
162
 
    if ( document.editentryform.duration_h ) {
 
188
    if ( form.timezonenotice ) {
 
189
      makeInvisible ( "timezonenotice" );
 
190
    }
 
191
    if ( form.duration_h ) {
163
192
      makeInvisible ( "timeentryduration" );
164
193
    } else {
165
194
      makeInvisible ( "timeentryend" );
166
195
    }
 
196
     if ( form.rpttype ) {
 
197
      makeInvisible ( "rpt_until_time_date", true );
 
198
    }
167
199
  } else {
168
200
    // Timed Event
169
201
    makeVisible ( "timeentrystart" );
170
 
    if ( document.editentryform.duration_h ) {
 
202
    if ( form.timezonenotice ) {
 
203
      makeVisible ( "timezonenotice" );
 
204
    }
 
205
 
 
206
    if ( form.duration_h ) {
171
207
      makeVisible ( "timeentryduration" );
172
208
    } else {
173
209
      makeVisible ( "timeentryend" );
174
210
    }
 
211
    if ( form.rpttype ) {
 
212
      makeVisible ( "rpt_until_time_date", true );
 
213
    }
175
214
  }
176
215
}
177
216
 
178
217
function rpttype_handler () {
179
 
  var i = document.editentryform.rpttype.selectedIndex;
180
 
  var val = document.editentryform.rpttype.options[i].text;
 
218
  //Repeat Tab disabled
 
219
  if ( ! form.rpttype ) {
 
220
    return;
 
221
  }
 
222
  var expert = ( document.getElementById('rptmode').checked);
 
223
  var i = form.rpttype.selectedIndex;
 
224
  var val = form.rpttype.options[i].text;
181
225
  //alert ( "val " + i + " = " + val );
182
 
  //i == 0 when event does not repeat
183
 
  if ( i != 0 ) {
184
 
    // none (not repeating)
185
 
    makeVisible ( "rptenddate" );
186
 
    makeVisible ( "rptfreq" );
187
 
    if ( i == 2 ) {
188
 
      makeVisible ( "rptday" );
189
 
    } else {
190
 
      makeInvisible ( "rptday" );
191
 
    }
192
 
  } else {
193
 
    // Timed Event
194
 
    makeInvisible ( "rptenddate" );
195
 
    makeInvisible ( "rptfreq" );
196
 
    makeInvisible ( "rptday" );
197
 
  }
198
 
}
199
 
 
 
226
  //i == 0 none
 
227
  //i == 1 daily
 
228
  //i == 2 weekly
 
229
  //i == 3,4,5 monthlyByDay, monthlyByDate, monthlyBySetPos
 
230
  //i == 6 yearly
 
231
  //i == 7 manual  Use only Exclusions/Inclusions
 
232
 //Turn all off initially
 
233
  makeInvisible ( "rpt_mode" );
 
234
  makeInvisible ( "rptenddate1", true );
 
235
  makeInvisible ( "rptenddate2", true );
 
236
  makeInvisible ( "rptenddate3", true );
 
237
  makeInvisible ( "rptfreq", true );
 
238
  makeInvisible ( "weekdays_only" );
 
239
  makeInvisible ( "rptwkst" );
 
240
  //makeInvisible ( "rptday", true );
 
241
  makeInvisible ( "rptbymonth", true );
 
242
  makeInvisible ( "rptbydayln", true );
 
243
  makeInvisible ( "rptbydayln1", true );
 
244
  makeInvisible ( "rptbydayln2", true );
 
245
  makeInvisible ( "rptbydayln3", true );
 
246
  makeInvisible ( "rptbydayln4", true );
 
247
  makeInvisible ( "rptbydayextended", true );
 
248
  makeInvisible ( "rptbymonthdayextended", true );
 
249
  makeInvisible ( "rptbysetpos", true );
 
250
  makeInvisible ( "rptbyweekno", true );
 
251
  makeInvisible ( "rptbyyearday", true );
 
252
  makeInvisible ( "rptexceptions", true );
 
253
  //makeInvisible ( "select_exceptions_not", true );
 
254
  if ( i > 0 && i < 7 ) {
 
255
    //always on
 
256
    makeVisible ( "rptenddate1", true );
 
257
    makeVisible ( "rptenddate2", true );
 
258
    makeVisible ( "rptenddate3", true );
 
259
    makeVisible ( "rptfreq", true );
 
260
    makeVisible ( "rptexceptions", true);
 
261
    makeVisible ( "rpt_mode" );
 
262
 
 
263
    if ( i == 1 ) { //daily
 
264
      makeVisible ( "weekdays_only" );
 
265
    }
 
266
 
 
267
    if ( i == 2 ) { //weekly
 
268
      makeVisible ( "rptbydayextended", true );
 
269
      if (expert ) {
 
270
        makeVisible ( "rptwkst" );
 
271
      }
 
272
    }
 
273
   if ( i == 3 ) { //monthly (by day)
 
274
     if (expert ) {
 
275
        makeVisible ( "rptwkst" );
 
276
        makeVisible ( "rptbydayln", true );
 
277
        makeVisible ( "rptbydayln1", true );
 
278
        makeVisible ( "rptbydayln2", true );
 
279
        makeVisible ( "rptbydayln3", true );
 
280
        makeVisible ( "rptbydayln4", true );
 
281
     }
 
282
   }
 
283
 
 
284
   if ( i == 4 ) { //monthly (by date)
 
285
     if (expert ) {
 
286
       makeVisible ( "rptbydayextended", true );
 
287
       makeVisible ( "rptbymonthdayextended", true );
 
288
     }
 
289
   }
 
290
 
 
291
   if ( i == 5 ) { //monthly (by position)
 
292
      makeVisible ( "rptbysetpos", true );
 
293
   }
 
294
 
 
295
  if ( i == 6 ) {  //yearly
 
296
    if (expert ) {
 
297
        makeVisible ( "rptwkst" );
 
298
        makeVisible ( "rptbymonthdayextended", true );
 
299
        makeVisible ( "rptbydayln", true );
 
300
        makeVisible ( "rptbydayln1", true );
 
301
        makeVisible ( "rptbydayln2", true );
 
302
        makeVisible ( "rptbydayln3", true );
 
303
        makeVisible ( "rptbydayln4", true );
 
304
        makeVisible ( "rptbyweekno", true );
 
305
        makeVisible ( "rptbyyearday", true );
 
306
    }
 
307
  }
 
308
  if (expert ) {
 
309
    makeVisible ( "rptbydayextended", true );
 
310
    makeInvisible ( "weekdays_only" );
 
311
    makeVisible ( "rptbymonth", true );
 
312
  }
 
313
  }
 
314
  if ( i == 7 ) {
 
315
    makeVisible ( "rptexceptions", true);
 
316
  }
 
317
}
 
318
 
 
319
function rpttype_weekly () {
 
320
  var i = form.rpttype.selectedIndex;
 
321
  var val = form.rpttype.options[i].text;
 
322
 if ( val == "Weekly" ) {
 
323
   //Get Event Date values
 
324
   var d = form.day.selectedIndex;
 
325
   var vald = form.day.options[d].value;
 
326
   var m = form.month.selectedIndex;
 
327
   var valm = form.month.options[m].value -1;
 
328
   var y = form.year.selectedIndex;
 
329
   var valy = form.year.options[y].value;
 
330
   var c = new Date(valy,valm,vald);
 
331
   var dayOfWeek = c.getDay ();
 
332
   var rpt_day = bydayLabels[dayOfWeek];
 
333
   elements[rpt_day].checked = true;
 
334
 }
 
335
}
200
336
<?php //see the showTab function in includes/js/visible.php for common code shared by all pages
201
 
        //using the tabbed GUI.
 
337
 //using the tabbed GUI.
202
338
?>
203
 
var tabs = new Array();
 
339
var tabs = new Array ();
204
340
tabs[0] = "details";
205
341
tabs[1] = "participants";
206
342
tabs[2] = "pete";
 
343
tabs[3] = "reminder";
207
344
 
208
345
var sch_win;
209
346
 
210
 
function getUserList () {
211
 
  var listid = 0;
212
 
  for ( i = 0; i < document.editentryform.elements.length; i++ ) {
213
 
    if ( document.editentryform.elements[i].name == "participants[]" )
214
 
      listid = i;
215
 
  }
216
 
  return listid;
217
 
}
218
 
 
219
347
// Show Availability for the first selection
220
348
function showSchedule () {
221
 
  //var agent=navigator.userAgent.toLowerCase();
 
349
  //var agent=navigator.userAgent.toLowerCase ();
222
350
  //var agent_isIE=(agent.indexOf("msie") > -1);
223
 
  var myForm = document.editentryform;
224
 
  var userlist = myForm.elements[getUserList()];
 
351
  var userlist = form.elements['participants[]'];
225
352
  var delim = '';
226
353
  var users = '';
227
354
  var cols = <?php echo $WORK_DAY_END_HOUR - $WORK_DAY_START_HOUR ?>;
236
363
    }
237
364
  }
238
365
  if (users == '') {
239
 
    alert("<?php etranslate("Please add a participant")?>" );
 
366
    alert("<?php etranslate ( 'Please add a participant', true)?>" );
240
367
    return false;
241
368
  }
242
 
  var features = 'width='+ w +',height='+ h +',resizable=yes,scrollbars=no';
243
 
  var url = 'availability.php?users=' + users + 
244
 
           '&year='  + myForm.year.value + 
245
 
           '&month=' + myForm.month.value + 
246
 
           '&day='   + myForm.day.options[myForm.day.selectedIndex].text;
 
369
  var features = 'width='+ w +',height='+ h +',resizable=yes,scrollbars=yes';
 
370
  var url = 'availability.php?users=' + users +
 
371
           '&form='  + 'editentryform' +
 
372
           '&year='  + form.year.value +
 
373
           '&month=' + form.month.value +
 
374
           '&day='   + form.day.options[form.day.selectedIndex].text;
247
375
 
248
376
  if (sch_win != null && !sch_win.closed) {
249
377
     h = h + 30;
250
378
     sch_win.location.replace( url );
251
379
     sch_win.resizeTo(w,h);
252
380
  } else {
253
 
     sch_win = window.open( url, "showSchedule", features );
254
 
  }
255
 
}
256
 
 
257
 
//]]> -->
258
 
</script>
 
381
     sch_win = window.open ( url, "showSchedule", features );
 
382
  }
 
383
}
 
384
 
 
385
function add_exception (which) {
 
386
 var sign = "-";
 
387
 if (which ) {
 
388
    sign = "+";
 
389
 }
 
390
 var d = form.except_day.selectedIndex;
 
391
 var vald = form.except_day.options[d].value;
 
392
 var m = form.except_month.selectedIndex;
 
393
 var valm = form.except_month.options[m].value;
 
394
 var y = form.except_year.selectedIndex;
 
395
 var valy = form.except_year.options[y].value;
 
396
 var c = new Date(valy,valm -1,vald);
 
397
 if ( c.getDate () != vald ) {
 
398
   alert ("<?php etranslate ( 'Invalid Date',true ) ?>");
 
399
   return false;
 
400
 }
 
401
 //alert ( c.getFullYear () + " "  + c.getMonth () + " " + c.getDate ());
 
402
 var exceptDate = String((c.getFullYear () * 100 + c.getMonth () +1) * 100 + c.getDate ());
 
403
 var isUnique = true;
 
404
 //Test to see if this date is already in the list
 
405
  with (form)
 
406
   {
 
407
      with (elements['exceptions[]'])
 
408
      {
 
409
         for (i = 0; i < length; i++)
 
410
         {
 
411
            if (options[i].text ==  "-" + exceptDate || options[i].text ==  "+" + exceptDate){
 
412
         isUnique = false;
 
413
         }
 
414
     }
 
415
   }
 
416
  }
 
417
 if ( isUnique ) {
 
418
    elements['exceptions[]'].options[elements['exceptions[]'].length]  = new Option( sign + exceptDate, sign + exceptDate );
 
419
    makeVisible ( "select_exceptions" );
 
420
    makeInvisible ( "select_exceptions_not" );
 
421
 }
 
422
}
 
423
function del_selected () {
 
424
   with (form)
 
425
   {
 
426
      with (elements['exceptions[]'])
 
427
      {
 
428
         for (i = 0; i < length; i++)
 
429
         {
 
430
            if (options[i].selected){
 
431
         options[i] = null;
 
432
         }
 
433
         } // end for loop
 
434
     if ( ! length ) {
 
435
       makeInvisible ( "select_exceptions" );
 
436
       makeVisible ( "select_exceptions_not" );
 
437
     }
 
438
     }
 
439
   } // end with document
 
440
}
 
441
 
 
442
function toggle_byday(ele){
 
443
  var bydaytext = bydayTrans[ele.id.substr(2,1)];
 
444
  var bydayVal = bydayLabels[ele.id.substr(2,1)];
 
445
  var tmp = '';
 
446
  if (ele.value.length > 4 ) {
 
447
    //blank
 
448
    ele.value = ele.id.substr(1,1) + bydaytext;
 
449
    tmp = ele.id.substr(1,1) + bydayVal;
 
450
  } else if (ele.value == ele.id.substr(1,1) + bydaytext) {
 
451
    //positive value
 
452
    ele.value =  (parseInt(ele.id.substr(1,1)) -6 ) + bydaytext;
 
453
    tmp = (parseInt(ele.id.substr(1,1)) -6 ) +  bydayVal;
 
454
  } else if (ele.value ==  (parseInt(ele.id.substr(1,1)) -6 ) +  bydaytext) {
 
455
    //negative value
 
456
  ele.value = "        ";
 
457
  tmp = '';
 
458
  }
 
459
  bydayAr[ele.id.substr(1)] = tmp;
 
460
}
 
461
 
 
462
function toggle_bymonthday(ele){
 
463
  var tmp = '';
 
464
  if (ele.value .length > 3) {
 
465
    //blank
 
466
  ele.value = tmp = ele.id.substr(10);
 
467
  } else if (ele.value == ele.id.substr(10)) {
 
468
    //positive value
 
469
  ele.value =  tmp = parseInt(ele.id.substr(10)) -32;
 
470
  } else if (ele.value ==  (parseInt(ele.id.substr(10)) -32 )) {
 
471
    //negative value
 
472
  ele.value = "     ";
 
473
  tmp = '';
 
474
  }
 
475
  bymonthdayAr[ele.id] = tmp;
 
476
}
 
477
 
 
478
function toggle_bysetpos(ele){
 
479
  var tmp = '';
 
480
  if (ele.value .length > 3) {
 
481
    //blank
 
482
  ele.value = tmp = ele.id.substr(8);
 
483
 
 
484
  } else if (ele.value == ele.id.substr(8)) {
 
485
    //positive value
 
486
  ele.value =  tmp = parseInt(ele.id.substr(8)) -32;
 
487
  } else if (ele.value ==  (parseInt(ele.id.substr(8)) -32 )) {
 
488
    //negative value
 
489
  ele.value = "    ";
 
490
  tmp = '';
 
491
  }
 
492
  bysetposAr[ele.id.substr(8)] = tmp;
 
493
}
 
494
 
 
495
function toggle_until () {
 
496
  //Repeat Tab disabled
 
497
  if ( ! form.rpttype ) {
 
498
    return;
 
499
  }
 
500
 //use date
 
501
 elements['rpt_day'].disabled =
 
502
  elements['rpt_month'].disabled =
 
503
  elements['rpt_year'].disabled =
 
504
  elements['rpt_btn'].disabled =
 
505
  elements['rpt_hour'].disabled =
 
506
  elements['rpt_minute'].disabled =
 
507
  ( form.rpt_untilu.checked != true );
 
508
 
 
509
 //use count
 
510
 elements['rpt_count'].disabled =
 
511
  ( form.rpt_untilc.checked != true );
 
512
 if ( elements['rpt_ampmA'] ) {
 
513
   if ( form.rpt_untilu.checked ) { //use until date
 
514
     document.getElementById('rpt_ampmA').disabled = false;
 
515
     document.getElementById('rpt_ampmP').disabled = false;
 
516
   } else {
 
517
     document.getElementById('rpt_ampmA').disabled = 'disabled';
 
518
     document.getElementById('rpt_ampmP').disabled = 'disabled';
 
519
   }
 
520
  }
 
521
}
 
522
 
 
523
function toggle_rem_when () {
 
524
  //Reminder Tab disabled
 
525
  if ( ! form.rem_when ) {
 
526
    return;
 
527
  }
 
528
 if ( elements['reminder_ampmA'] ) {
 
529
   if ( elements['rem_when_date'].checked == true ) {
 
530
   document.getElementById('reminder_ampmA').disabled = false;
 
531
   document.getElementById('reminder_ampmP').disabled = false;
 
532
  } else {
 
533
   document.getElementById('reminder_ampmA').disabled = 'disabled';
 
534
   document.getElementById('reminder_ampmP').disabled = 'disabled';
 
535
  }
 
536
 }
 
537
 elements['rem_days'].disabled =
 
538
   elements['rem_hours'].disabled =
 
539
   elements['rem_minutes'].disabled =
 
540
   elements['rem_beforeY'].disabled =
 
541
   elements['rem_relatedS'].disabled =
 
542
   elements['rem_beforeN'].disabled =
 
543
   elements['rem_relatedE'].disabled =
 
544
   elements['rem_when_date'].checked;
 
545
 
 
546
 elements['reminder_day'].disabled =
 
547
   elements['reminder_month'].disabled =
 
548
   elements['reminder_year'].disabled =
 
549
   elements['reminder_btn'].disabled =
 
550
   elements['reminder_hour'].disabled =
 
551
   elements['reminder_minute'].disabled =
 
552
  ( elements['rem_when_date'].checked != true );
 
553
}
 
554
 
 
555
function toggle_reminders () {
 
556
  //Reminder Tab disabled
 
557
  if ( ! form.rem_when ) {
 
558
    return;
 
559
  }
 
560
  toggle_rem_when ();
 
561
  makeInvisible ( "reminder_when",true );
 
562
  makeInvisible ( "reminder_repeat", true );
 
563
  if ( elements['reminderYes'].checked == true ) {
 
564
   makeVisible ( "reminder_when", true );
 
565
   makeVisible ( "reminder_repeat", true );
 
566
  }
 
567
}
 
568
 
 
569
function toggle_rem_rep (){
 
570
 elements['rem_rep_days'].disabled =
 
571
 elements['rem_rep_hours'].disabled =
 
572
 elements['rem_rep_minutes'].disabled =
 
573
 ( elements['rem_rep_count'].value == 0 );
 
574
}
 
575
 
 
576
function editCats (  evt ) {
 
577
  if (document.getElementById) {
 
578
    mX = evt.clientX   -160;
 
579
    mY = evt.clientY  + 150;
 
580
  }
 
581
  else {
 
582
    mX = evt.pageX  -160;
 
583
    mY = evt.pageY + 150;
 
584
  }
 
585
  var MyPosition = 'scrollbars=no,toolbar=no,left=' + mX + ',top=' + mY + ',screenx=' + mX + ',screeny=' + mY;
 
586
  var cat_ids = elements['cat_id'].value;
 
587
  var user = '<?php echo $user ?>';
 
588
  url = "catsel.php?form=editentryform&cats=" + cat_ids;
 
589
  if (user ) {
 
590
  url += "&user=" + user;
 
591
 }
 
592
  var catWindow = window.open (url,"EditCat","width=440,height=250,"  + MyPosition);
 
593
}
 
594
 
 
595
function displayInValid(myvar)
 
596
{
 
597
  alert ( "<?php etranslate ( 'You have not entered a valid time of day', true)?>.");
 
598
  myvar.select ();
 
599
  myvar.focus ();
 
600
}
 
601
 
 
602
function isNumeric(sText)
 
603
{
 
604
   //allow blank values. these will become 0
 
605
   if ( sText.length == 0 )
 
606
     return sText;
 
607
   var validChars = "0123456789";
 
608
   var Char;
 
609
   for (i = 0; i < sText.length && sText != 99; i++)
 
610
   {
 
611
      Char = sText.charAt(i);
 
612
      if (validChars.indexOf(Char) == -1)
 
613
      {
 
614
        sText = 99;
 
615
      }
 
616
   }
 
617
   return sText;
 
618
}
 
619
 
 
620
function completed_handler () {
 
621
  if ( form.percent ) {
 
622
    elements['completed_day'].disabled =
 
623
      elements['completed_month'].disabled =
 
624
      elements['completed_year'].disabled =
 
625
      elements['completed_btn'].disabled =
 
626
      ( form.percent.selectedIndex != 10 || form.others_complete.value != 'yes' );
 
627
  }
 
628
}
 
629
 
 
630
function onLoad () {
 
631
  if ( ! document.editentryform )
 
632
          return false;
 
633
  //define these variables here so they are valid
 
634
  form = document.editentryform;
 
635
  elements = document.editentryform.elements;
 
636
  elementlength = document.editentryform.elements.length;
 
637
 
 
638
  //initialize byxxxAr Objects
 
639
  if ( form.bydayList ) {
 
640
    bydayList = form.bydayList.value;
 
641
    if ( bydayList.search( /,/ ) > -1 ) {
 
642
      bydayList = bydayList.split ( ',' );
 
643
      for ( key in bydayList ) {
 
644
        if ( key == isNumeric ( key ) )
 
645
        bydayAr[bydayList[key]] = bydayList[key];
 
646
      }
 
647
    } else if ( bydayList.length > 0 ) {
 
648
      bydayAr[bydayList] = bydayList;
 
649
    }
 
650
  }
 
651
 
 
652
  if ( form.bymonthdayList ) {
 
653
    bymonthdayList = form.bymonthdayList.value;
 
654
    if ( bymonthdayList.search( /,/ ) > -1 ) {
 
655
      bymonthdayList = bymonthdayList.split ( ',' );
 
656
      for ( key in bymonthdayList ) {
 
657
        if ( key == isNumeric ( key ) )
 
658
          bymonthdayAr[bymonthdayList[key]] = bymonthdayList[key];
 
659
      }
 
660
    } else if ( bymonthdayList.length > 0 ) {
 
661
      bymonthdayAr[bymonthdayList] = bymonthdayList;
 
662
    }
 
663
  }
 
664
 
 
665
  if ( form.bysetposList ) {
 
666
    bysetposList = form.bysetposList.value;
 
667
    if ( bysetposList.search( /,/ ) > -1 ) {
 
668
      bysetposList = bysetposList.split ( ',' );
 
669
      for ( key in bysetposList ) {
 
670
        if ( key == isNumeric ( key ) )
 
671
          bysetposAr[bysetposList[key]] = bysetposList[key];
 
672
      }
 
673
    } else if ( bysetposList.length > 0 ){
 
674
      bysetposAr[bysetposList] = bysetposList;
 
675
    }
 
676
  }
 
677
 
 
678
  timetype_handler ();
 
679
  rpttype_handler ();
 
680
  toggle_until ();
 
681
  toggle_reminders ();
 
682
  toggle_rem_rep ();
 
683
  completed_handler ();
 
684
}