]> err.no Git - sope/blob - sope-appserver/WEExtensions/calendar.jsm
new Xcode projects, removed old Xcode project
[sope] / sope-appserver / WEExtensions / calendar.jsm
1 /* automatically generated from calendar.js, do not edit ! */
2 @"var monthArray = getMonthSelect();\n"
3 @"var calDateField;\n"
4 @"var calDate;\n"
5 @"// innerHTML IS ONLY SUPPORTED BY MSIE...\n"
6 @"function rewriteLayerWithData(obj,data) {\n"
7 @"  if (isNav) {\n"
8 @"    obj.document.clear();\n"
9 @"    obj.document.write(data);\n"
10 @"    obj.document.close();\n"
11 @"  }\n"
12 @"  if (isIE) {\n"
13 @"    obj.innerHTML = data;\n"
14 @"  }\n"
15 @"  if (usesNavImages) {\n"
16 @"    document.images['dateFieldFirstImg'].src = dateFieldFirst.src;\n"
17 @"    document.images['dateFieldPreviousImg'].src = dateFieldPrevious.src;\n"
18 @"    document.images['dateFieldTodayImg'].src = dateFieldToday.src;\n"
19 @"    document.images['dateFieldNextImg'].src = dateFieldNext.src;\n"
20 @"    document.images['dateFieldLastImg'].src = dateFieldLast.src;\n"
21 @"    document.images['dateFieldCloseImg'].src = dateFieldClose.src;\n"
22 @"  }\n"
23 @"}\n"
24 @"// DETERMINE BROWSER BRAND\n"
25 @"var isNav = false;\n"
26 @"var isIE  = false;\n"
27 @"if (navigator.appName == \"Netscape\") {\n"
28 @"    isNav = true;\n"
29 @"}\n"
30 @"else {\n"
31 @"    isIE = true;\n"
32 @"}\n"
33 @"// PRE-BUILD PORTIONS OF THE CALENDAR WHEN THIS JS LIBRARY LOADS INTO THE BROWSER\n"
34 @"buildCalParts();\n"
35 @"// CALENDAR FUNCTIONS BEGIN HERE ---------------------------------------------------\n"
36 @"// SET THE INITIAL VALUE OF THE GLOBAL DATE FIELD\n"
37 @"function setDateField(dateField) {\n"
38 @"    // ASSIGN THE INCOMING FIELD OBJECT TO A GLOBAL VARIABLE\n"
39 @"    calDateField = dateField;    \n"
40 @"    // GET THE VALUE OF THE INCOMING FIELD\n"
41 @"    inDate = dateField.value;\n"
42 @"    // SET calDate TO THE DATE IN THE INCOMING FIELD OR DEFAULT TO TODAY'S DATE\n"
43 @"    setInitialDate();\n"
44 @"}\n"
45 @"// SET THE INITIAL CALENDAR DATE TO TODAY OR TO THE EXISTING VALUE IN dateField\n"
46 @"function setInitialDate() {\n"
47 @"   \n"
48 @"    // CREATE A NEW DATE OBJECT (WILL GENERALLY PARSE CORRECT DATE EXCEPT WHEN \".\" IS USED AS A DELIMITER)\n"
49 @"    // (THIS ROUTINE DOES *NOT* CATCH ALL DATE FORMATS, IF YOU NEED TO PARSE A CUSTOM DATE FORMAT, DO IT HERE)\n"
50 @"    // ADD CUSTOM DATE PARSING HERE\n"
51 @"    ypos = dateFormat.indexOf('%Y');\n"
52 @"    inYear = parseInt(inDate.substr(ypos,4));\n"
53 @"    mpos = dateFormat.indexOf('%m');\n"
54 @"    if (ypos < mpos) mpos+=2;  // because %Y stands for yyyy, add 2\n"
55 @"    inMonth = inDate.substr(mpos,2);\n"
56 @"    if (inMonth.charAt(0) == \"0\") \n"
57 @"      inMonth = inMonth.substr(1,inMonth.length-1);\n"
58 @"    inMonth = parseInt(inMonth);\n"
59 @"    \n"
60 @"    dpos = dateFormat.indexOf('%d');\n"
61 @"    if (ypos < dpos) dpos+=2;  // same as mpos\n"
62 @"    inDay = inDate.substr(dpos,2);\n"
63 @"    if (inDay.charAt(0) == \"0\") \n"
64 @"      inDay = inDay.substr(1,inDay.length-1);\n"
65 @"    inDay = parseInt(inDay);\n"
66 @"    if ((inYear) && (inMonth) && (inDay)) {\n"
67 @"        calDate = new Date(inYear,inMonth-1,inDay);\n"
68 @"    }\n"
69 @"    else {\n"
70 @"      calDate = new Date();\n"
71 @"    }\n"
72 @"    // KEEP TRACK OF THE CURRENT DAY VALUE\n"
73 @"    calDay  = calDate.getDate();\n"
74 @"    // SET DAY VALUE TO 1... TO AVOID JAVASCRIPT DATE CALCULATION ANOMALIES\n"
75 @"    // (IF THE MONTH CHANGES TO FEB AND THE DAY IS 30, THE MONTH WOULD CHANGE TO MARCH\n"
76 @"    //  AND THE DAY WOULD CHANGE TO 2.  SETTING THE DAY TO 1 WILL PREVENT THAT)\n"
77 @"    calDate.setDate(1);\n"
78 @"}\n"
79 @"// ENABLE MULTIPLE CALENDAR-USING OBJECTS BY USING VARIABLE calendarDiv;\n"
80 @"var calendarDiv = false;\n"
81 @"function toggleCalendar(dateFieldEl,calObj,calFormat) {\n"
82 @"  if ((calendarDiv) &&  (calendarDiv.id != calObj.id)) {\n"
83 @"    hideCalendar();\n"
84 @"  }\n"
85 @"  calendarDiv = calObj;\n"
86 @"  \n"
87 @"  if (isNav) condition = (calendarDiv.visibility == 'show');\n"
88 @"  if (isIE)  condition = (calendarDiv.style.visibility    == 'visible');\n"
89 @"  if (condition) {\n"
90 @"    hideCalendar();\n"
91 @"  }\n"
92 @"  else {\n"
93 @"    var i,j;\n"
94 @"    var dateField;\n"
95 @"    for (i = 0; i < document.forms.length; i++) {\n"
96 @"      for (j = 0; j < document.forms[i].elements.length; j++) {\n"
97 @"        if (document.forms[i].elements[j].name == dateFieldEl) {\n"
98 @"          dateField = document.forms[i].elements[j];\n"
99 @"        }\n"
100 @"      }\n"
101 @"    }\n"
102 @"    dateFormat = calFormat;\n"
103 @"    showCalendar(dateField);\n"
104 @"  }\n"
105 @"}\n"
106 @"// CAPTURE onMouseMove EVENT IF NETSCAPE FOR POSITIONING calendarDiv\n"
107 @"if (isNav) {\n"
108 @"  document.captureEvents( Event.MOUSEMOVE );\n"
109 @"  document.onmousemove = actPos;\n"
110 @"}\n"
111 @"var curScreenPosX;\n"
112 @"var curScreenPosY;\n"
113 @"function actPos(e) {\n"
114 @"  \n"
115 @"  curScreenPosX = e.pageX + 10;\n"
116 @"  curScreenPosY = e.pageY;\n"
117 @"  return true;\n"
118 @"}\n"
119 @"function showCalendar(dateField) {\n"
120 @"    // SET INITIAL VALUE OF THE DATE FIELD AND CREATE TOP AND BOTTOM FRAMES\n"
121 @"    setDateField(dateField);\n"
122 @"    writeCalendar();\n"
123 @"    if (isNav) {\n"
124 @"      calendarDiv.visibility   = 'show';\n"
125 @"      calendarDiv.left = curScreenPosX;\n"
126 @"      calendarDiv.top  = curScreenPosY;\n"
127 @"    }\n"
128 @"    if (isIE) {\n"
129 @"      calendarDiv.style.visibility      = 'visible';\n"
130 @"    }\n"
131 @"    return true;\n"
132 @"}\n"
133 @"function hideCalendar() {\n"
134 @"    if (isNav) {\n"
135 @"      calendarDiv.visibility = 'hide';\n"
136 @"    }\n"
137 @"    if (isIE) {\n"
138 @"      calendarDiv.style.visibility = 'hidden';\n"
139 @"    }\n"
140 @"    calendarDiv = false;\n"
141 @"}\n"
142 @"// NEW: NO FRAMES ANYMORE, ONE <DIV> INSTEAD\n"
143 @"function writeCalendar() {\n"
144 @"  data = buildTopCalFrame() + buildBottomCalFrame();\n"
145 @"  if (isNav) rewriteLayerWithData(calendarDiv, data);\n"
146 @"  if (isIE)  rewriteLayerWithData(calendarDiv, data);\n"
147 @"}\n"
148 @"// CREATE month/year DISPLAY\n"
149 @"function buildCalControlMonthYear() {\n"
150 @"  month = calDate.getMonth();\n"
151 @"  year  = calDate.getFullYear();\n"
152 @"  return String(monthArray[month])+\" \"+String(year);\n"
153 @"}\n"
154 @"var obj=false;\n"
155 @"var X,Y;\n"
156 @"function MD() {\n"
157 @"  if (isIE) {\n"
158 @"    ob = true;\n"
159 @"    X=event.offsetX;\n"
160 @"    Y=event.offsetY;\n"
161 @"    document.onmousemove = MM;\n"
162 @"    document.onmouseup   = MU;\n"
163 @"  }\n"
164 @"}\n"
165 @"function MM() {\n"
166 @"  if (ob) {\n"
167 @"    calendarDiv.style.pixelLeft = event.clientX-X + document.body.scrollLeft;\n"
168 @"    calendarDiv.style.pixelTop = event.clientY-Y + document.body.scrollTop;\n"
169 @"    return false;\n"
170 @"  }\n"
171 @"}\n"
172 @"function MU() {\n"
173 @"  ob = false;\n"
174 @"//  document.onmousemove = null;\n"
175 @"//  document.onmouseup   = null;\n"
176 @"}\n"
177 @"// CREATE THE TOP CALENDAR PART\n"
178 @"function buildTopCalFrame() {\n"
179 @"     var calDoc =\n"
180 @"       \"<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD BGCOLOR=black>\" +\n"
181 @"       \"<TABLE CELLPADDING=0 CELLSPACING=1 BORDER=0>\" +\n"
182 @"       \"<TR><TD COLSPAN=6 ALIGN=left CLASS=topCal onMouseDown='MD()'>\" +\n"
183 @"       buildCalControlMonthYear() +\n"
184 @"       \"</TD>\" +\n"
185 @"       \"<TD ALIGN=right CLASS=topCal>\"+\n"
186 @"       \"<A CLASS=navMonYear HREF='javascript:hideCalendar()'>\" +\n"
187 @"       dateFieldCloseSRC+\"</A>&nbsp;</TD></TR>\" +\n"
188 @"       \"<TR>\" +\n"
189 @"       \"<TD COLSPAN=7 CLASS=topCal ALIGN=center><FONT SIZE=1 FACE='Arial'>\"+\n"
190 @"       \"<A CLASS=navMonYear HREF='javascript:setPreviousYear()'>\"+\n"
191 @"       dateFieldFirstSRC+\"</A>\" +\n"
192 @"       \" <A CLASS=navMonYear HREF='javascript:setPreviousMonth()'>\"+\n"
193 @"       dateFieldPreviousSRC+\"</A>\" +\n"
194 @"       \" <A CLASS=navMonYear HREF='javascript:setToday()'>\"+\n"
195 @"       dateFieldTodaySRC+\"</A>\" +\n"
196 @"       \" <A CLASS=navMonYear HREF='javascript:setNextMonth()'>\"+\n"
197 @"       dateFieldNextSRC+\"</A>\"+\n"
198 @"       \" <A CLASS=navMonYear HREF='javascript:setNextYear()'>\"+\n"
199 @"       dateFieldLastSRC+\"</A>\" +\n"
200 @"       \"</FONT></TD>\" +\n"
201 @"       \"</TR>\";\n"
202 @"   return calDoc;\n"
203 @"}\n"
204 @"// CREATE THE BOTTOM CALENDAR PART\n"
205 @"function buildBottomCalFrame() {       \n"
206 @"    // START CALENDAR DOCUMENT\n"
207 @"    var calDoc = calendarBegin;\n"
208 @"    // GET MONTH, AND YEAR FROM GLOBAL CALENDAR DATE\n"
209 @"    month   = calDate.getMonth();\n"
210 @"    year    = calDate.getFullYear();\n"
211 @"    // GET GLOBALLY-TRACKED DAY VALUE (PREVENTS JAVASCRIPT DATE ANOMALIES)\n"
212 @"    day     = calDay;\n"
213 @"    var i   = 0;\n"
214 @"    // DETERMINE THE NUMBER OF DAYS IN THE CURRENT MONTH\n"
215 @"    var days = getDaysInMonth();\n"
216 @"    // IF GLOBAL DAY VALUE IS > THAN DAYS IN MONTH, HIGHLIGHT LAST DAY IN MONTH\n"
217 @"    if (day > days) {\n"
218 @"        day = days;\n"
219 @"    }\n"
220 @"    // DETERMINE WHAT DAY OF THE WEEK THE CALENDAR STARTS ON\n"
221 @"    var firstOfMonth = new Date (year, month, 1);\n"
222 @"    // GET THE DAY OF THE WEEK THE FIRST DAY OF THE MONTH FALLS ON\n"
223 @"    var startingPos  = firstOfMonth.getDay();\n"
224 @"    days += startingPos;\n"
225 @"    // KEEP TRACK OF THE COLUMNS, START A NEW ROW AFTER EVERY 7 COLUMNS\n"
226 @"    var columnCount = 0;\n"
227 @"    // MAKE BEGINNING NON-DATE CELLS BLANK\n"
228 @"    for (i = 0; i < startingPos; i++) {\n"
229 @"        calDoc += blankCell;\n"
230 @"      columnCount++;\n"
231 @"    }\n"
232 @"    // SET VALUES FOR DAYS OF THE MONTH\n"
233 @"    var currentDay = 0;\n"
234 @"    var dayType    = \"weekday\";\n"
235 @"    // DATE CELLS CONTAIN A NUMBER\n"
236 @"    for (i = startingPos; i < days; i++) {\n"
237 @"      var paddingChar = \"&nbsp;\";\n"
238 @"        // ADJUST SPACING SO THAT ALL LINKS HAVE RELATIVELY EQUAL WIDTHS\n"
239 @"        if (i-startingPos+1 < 10) {\n"
240 @"            padding = \"&nbsp;&nbsp;\";\n"
241 @"        }\n"
242 @"        else {\n"
243 @"            padding = \"&nbsp;\";\n"
244 @"        }\n"
245 @"        // GET THE DAY CURRENTLY BEING WRITTEN\n"
246 @"        currentDay = i-startingPos+1;\n"
247 @"        // SET THE TYPE OF DAY, THE focusDay GENERALLY APPEARS AS A DIFFERENT COLOR\n"
248 @"        if (currentDay == day) {\n"
249 @"            dayType = \"focusDay\";\n"
250 @"        }\n"
251 @"        else {\n"
252 @"            dayType = \"weekDay\";\n"
253 @"        }\n"
254 @"        // ADD THE DAY TO THE CALENDAR STRING\n"
255 @"        calDoc += \"<TD align=center bgcolor='lightgrey'>\" +\n"
256 @"                  \"<a class='\" + dayType + \"' href='javascript:returnDate(\" + \n"
257 @"                  currentDay + \")'>\" + padding + currentDay + paddingChar + \"</a></TD>\";\n"
258 @"        columnCount++;\n"
259 @"        // START A NEW ROW WHEN NECESSARY\n"
260 @"        if (columnCount % 7 == 0) {\n"
261 @"            calDoc += \"</TR><TR>\";\n"
262 @"        }\n"
263 @"    }\n"
264 @"    // MAKE REMAINING NON-DATE CELLS BLANK\n"
265 @"    for (i=days; i<42; i++)  {\n"
266 @"        calDoc += blankCell;\n"
267 @"      columnCount++;\n"
268 @"        // START A NEW ROW WHEN NECESSARY\n"
269 @"        if (columnCount % 7 == 0) {\n"
270 @"            calDoc += \"</TR>\";\n"
271 @"            if (i<41) {\n"
272 @"                calDoc += \"<TR>\";\n"
273 @"            }\n"
274 @"        }\n"
275 @"    }\n"
276 @"    // FINISH THE NEW CALENDAR PAGE\n"
277 @"    calDoc += calendarEnd;\n"
278 @"    // RETURN THE COMPLETED CALENDAR PAGE\n"
279 @"    return calDoc;\n"
280 @"}\n"
281 @"// SET THE CALENDAR TO TODAY'S DATE AND DISPLAY THE NEW CALENDAR\n"
282 @"function setToday() {\n"
283 @"    // SET GLOBAL DATE TO TODAY'S DATE\n"
284 @"    calDate = new Date();\n"
285 @"    // DISPLAY THE NEW CALENDAR\n"
286 @"    writeCalendar();\n"
287 @"}\n"
288 @"// SET THE GLOBAL DATE TO THE PREVIOUS YEAR AND REDRAW THE CALENDAR\n"
289 @"function setPreviousYear() {\n"
290 @"    var year  = calDate.getFullYear();\n"
291 @"    if (year > 1000) {\n"
292 @"        year--;\n"
293 @"        calDate.setFullYear(year);\n"
294 @"        writeCalendar();\n"
295 @"    }\n"
296 @"}\n"
297 @"// SET THE GLOBAL DATE TO THE PREVIOUS MONTH AND REDRAW THE CALENDAR\n"
298 @"function setPreviousMonth() {\n"
299 @"    var year  = calDate.getFullYear();\n"
300 @"    var month = calDate.getMonth();\n"
301 @"   \n"
302 @"    // IF MONTH IS JANUARY, SET MONTH TO DECEMBER AND DECREMENT THE YEAR\n"
303 @"    if (month == 0) {\n"
304 @"        month = 11;\n"
305 @"        if (year > 1000) {\n"
306 @"            year--;\n"
307 @"            calDate.setFullYear(year);\n"
308 @"        }\n"
309 @"    }\n"
310 @"    else {\n"
311 @"        month--;\n"
312 @"    }\n"
313 @"    calDate.setMonth(month);\n"
314 @"    writeCalendar();\n"
315 @"}\n"
316 @"// SET THE GLOBAL DATE TO THE NEXT MONTH AND REDRAW THE CALENDAR\n"
317 @"function setNextMonth() {\n"
318 @"    var year = calDate.getFullYear();\n"
319 @"        var month = calDate.getMonth();\n"
320 @"        // IF MONTH IS DECEMBER, SET MONTH TO JANUARY AND INCREMENT THE YEAR\n"
321 @"        if (month == 11) {\n"
322 @"            month = 0;\n"
323 @"            year++;\n"
324 @"            calDate.setFullYear(year);\n"
325 @"        }\n"
326 @"        else {\n"
327 @"            month++;\n"
328 @"        }\n"
329 @"        calDate.setMonth(month);\n"
330 @"        writeCalendar();\n"
331 @"}\n"
332 @"// SET THE GLOBAL DATE TO THE NEXT YEAR AND REDRAW THE CALENDAR\n"
333 @"function setNextYear() {\n"
334 @"    var year  = calDate.getFullYear();\n"
335 @"        year++;\n"
336 @"        calDate.setFullYear(year);\n"
337 @"        writeCalendar();\n"
338 @"}\n"
339 @"// GET NUMBER OF DAYS IN MONTH\n"
340 @"function getDaysInMonth()  {\n"
341 @"    var days;\n"
342 @"    var month = calDate.getMonth()+1;\n"
343 @"    var year  = calDate.getFullYear();\n"
344 @"    // RETURN 31 DAYS\n"
345 @"    if (month==1 || month==3 || month==5 || month==7 || month==8 ||\n"
346 @"        month==10 || month==12)  {\n"
347 @"        days=31;\n"
348 @"    }\n"
349 @"    // RETURN 30 DAYS\n"
350 @"    else if (month==4 || month==6 || month==9 || month==11) {\n"
351 @"        days=30;\n"
352 @"    }\n"
353 @"    // RETURN 29 DAYS\n"
354 @"    else if (month==2)  {\n"
355 @"        if (isLeapYear(year)) {\n"
356 @"            days=29;\n"
357 @"        }\n"
358 @"        // RETURN 28 DAYS\n"
359 @"        else {\n"
360 @"            days=28;\n"
361 @"        }\n"
362 @"    }\n"
363 @"    return (days);\n"
364 @"}\n"
365 @"// CHECK TO SEE IF YEAR IS A LEAP YEAR\n"
366 @"function isLeapYear (Year) {\n"
367 @"    if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {\n"
368 @"        return (true);\n"
369 @"    }\n"
370 @"    else {\n"
371 @"        return (false);\n"
372 @"    }\n"
373 @"}\n"
374 @"// BUILD THE MONTH SELECT LIST\n"
375 @"function getMonthSelect() {\n"
376 @"    // IF SET BY A PARAMETER (WRITTEN AT THE BEGINNING BY WOCalendar)\n"
377 @"    if (externMonths) {\n"
378 @"      monthArray = externMonths;\n"
379 @"    }\n"
380 @"    else {\n"
381 @"        monthArray = new Array('January', 'February', 'March', 'April', \n"
382 @"           'May', 'June', 'July', 'August', \n"
383 @"           'September', 'October', 'November', 'December');\n"
384 @"    }\n"
385 @"    return monthArray;\n"
386 @"}\n"
387 @"// SET DAYS OF THE WEEK DEPENDING ON LANGUAGE\n"
388 @"function createWeekdayList() {\n"
389 @"    // IF SET BY A PARAMETER (WRITTEN AT THE BEGINNING BY WODateFieldScript)\n"
390 @"    if (externWeekdays) {\n"
391 @"      weekdayArray = externWeekdays;\n"
392 @"    }\n"
393 @"    else {\n"
394 @"        weekdayArray = new Array('Su','Mo','Tu','We','Th','Fr','Sa');\n"
395 @"    }\n"
396 @"    var weekdays = \"<TR BGCOLOR='white'>\";\n"
397 @"    for (i in weekdayArray) {\n"
398 @"        weekdays += \"<TD class='heading' align=center>\"\n"
399 @"                 + weekdayArray[i] + \"</TD>\";\n"
400 @"    }\n"
401 @"    weekdays += \"</TR>\";\n"
402 @"    return weekdays;\n"
403 @"}\n"
404 @"// PRE-BUILD PORTIONS OF THE CALENDAR (FOR PERFORMANCE REASONS)\n"
405 @"function buildCalParts() {\n"
406 @"    // BUILD THE BLANK CELL ROWS\n"
407 @"    blankCell = \"<TD align=center bgcolor='lightGrey'>&nbsp;&nbsp;&nbsp;</TD>\";\n"
408 @"    // BUILD THE TOP PORTION OF THE CALENDAR PAGE USING CSS TO CONTROL SOME DISPLAY ELEMENTS\n"
409 @"    calendarBegin = createWeekdayList() + \"<TR>\";\n"
410 @"    // BUILD THE BOTTOM PORTION OF THE CALENDAR PAGE\n"
411 @"    calendarEnd = \"\";\n"
412 @"        // END THE TABLE AND HTML DOCUMENT\n"
413 @"        calendarEnd +=\n"
414 @"            \"</TABLE></TD></TR></TABLE>\";\n"
415 @"}\n"
416 @"// REPLACE ALL INSTANCES OF find WITH replace\n"
417 @"// inString: the string you want to convert\n"
418 @"// find:     the value to search for\n"
419 @"// replace:  the value to substitute\n"
420 @"//\n"
421 @"// usage:    jsReplace(inString, find, replace);\n"
422 @"// example:  jsReplace(\"To be or not to be\", \"be\", \"ski\");\n"
423 @"//           result: \"To ski or not to ski\"\n"
424 @"//\n"
425 @"function jsReplace(inString, find, replace) {\n"
426 @"    var outString = \"\";\n"
427 @"    if (!inString) {\n"
428 @"        return \"\";\n"
429 @"    }\n"
430 @"    // REPLACE ALL INSTANCES OF find WITH replace\n"
431 @"    if (inString.indexOf(find) != -1) {\n"
432 @"        // SEPARATE THE STRING INTO AN ARRAY OF STRINGS USING THE VALUE IN find\n"
433 @"        t = inString.split(find);\n"
434 @"        // JOIN ALL ELEMENTS OF THE ARRAY, SEPARATED BY THE VALUE IN replace\n"
435 @"        return (t.join(replace));\n"
436 @"    }\n"
437 @"    else {\n"
438 @"        return inString;\n"
439 @"    }\n"
440 @"}\n"
441 @"// JAVASCRIPT FUNCTION -- DOES NOTHING (USED FOR THE HREF IN THE CALENDAR CALL)\n"
442 @"function doNothing() {\n"
443 @"}\n"
444 @"// ENSURE THAT VALUE IS TWO DIGITS IN LENGTH\n"
445 @"function makeTwoDigit(inValue) {\n"
446 @"    var numVal = parseInt(inValue, 10);\n"
447 @"    // VALUE IS LESS THAN TWO DIGITS IN LENGTH\n"
448 @"    if (numVal < 10) {\n"
449 @"        // ADD A LEADING ZERO TO THE VALUE AND RETURN IT\n"
450 @"        return(\"0\" + numVal);\n"
451 @"    }\n"
452 @"    else {\n"
453 @"        return numVal;\n"
454 @"    }\n"
455 @"}\n"
456 @"// SET FIELD VALUE TO THE DATE SELECTED AND CLOSE THE CALENDAR WINDOW\n"
457 @"function returnDate(inDay)\n"
458 @"{\n"
459 @"    // inDay = THE DAY THE USER CLICKED ON\n"
460 @"    calDate.setDate(inDay);\n"
461 @"    // SET THE DATE RETURNED TO THE USER\n"
462 @"    var day           = calDate.getDate();\n"
463 @"    var month         = calDate.getMonth()+1;\n"
464 @"    var year          = calDate.getFullYear();\n"
465 @"    outDate = dateFormat;\n"
466 @"    outDate = jsReplace(outDate,'%Y',String(year));\n"
467 @"    outDate = jsReplace(outDate,'%m',makeTwoDigit(month));\n"
468 @"    outDate = jsReplace(outDate,'%d',makeTwoDigit(day));\n"
469 @"    // SET THE VALUE OF THE FIELD THAT WAS PASSED TO THE CALENDAR\n"
470 @"    calDateField.value = outDate;\n"
471 @"    // CLOSE THE CALENDAR WINDOW\n"
472 @"    hideCalendar();\n"
473 @"}\n"