annotate gnv/src/main/webapp/scripts/calendar-setup.js @ 409:df78178e1180

Moved user interface creation to an own action. This makes avoids code duplication and makes it easier to write new action to handle special interactions, because there is no need for parsing the describe document and creating the user interface after this. gnv/trunk@599 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 22 Jan 2010 11:28:25 +0000
parents 9719cbd1a23f
children
rev   line source
14
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 /* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2 * ---------------------------------------------------------------------------
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 *
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 * The DHTML Calendar
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5 *
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6 * Details and latest version at:
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
7 * http://dynarch.com/mishoo/calendar.epl
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8 *
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
9 * This script is distributed under the GNU Lesser General Public License.
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
10 * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
11 *
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
12 * This file defines helper functions for setting up the calendar. They are
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
13 * intended to help non-programmers get a working calendar on their site
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
14 * quickly. This script should not be seen as part of the calendar. It just
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
15 * shows you what one can do with the calendar, while in the same time
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
16 * providing a quick and simple method for setting it up. If you need
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
17 * exhaustive customization of the calendar creation process feel free to
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
18 * modify this code to suit your needs (this is recommended and much better
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
19 * than modifying calendar.js itself).
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
20 */
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
21
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
22 // $Id: calendar-setup.js,v 1.1 2007/12/06 13:55:16 drewnak Exp $
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
23
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
24 /**
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
25 * This function "patches" an input field (or other element) to use a calendar
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
26 * widget for date selection.
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
27 *
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28 * The "params" is a single object that can have the following properties:
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
29 *
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
30 * prop. name | description
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
31 * -------------------------------------------------------------------------------------------------
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
32 * inputField | the ID of an input field to store the date
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
33 * displayArea | the ID of a DIV or other element to show the date
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
34 * button | ID of a button or other element that will trigger the calendar
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
35 * eventName | event that will trigger the calendar, without the "on" prefix (default: "click")
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
36 * ifFormat | date format that will be stored in the input field
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37 * daFormat | the date format that will be used to display the date in displayArea
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
38 * singleClick | (true/false) wether the calendar is in single click mode or not (default: true)
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39 * firstDay | numeric: 0 to 6. "0" means display Sunday first, "1" means display Monday first, etc.
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 * align | alignment (default: "Br"); if you don't know what's this see the calendar documentation
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
41 * range | array with 2 elements. Default: [1900, 2999] -- the range of years available
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
42 * weekNumbers | (true/false) if it's true (default) the calendar will display week numbers
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43 * flat | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 * flatCallback | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45 * disableFunc | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46 * onSelect | function that gets called when a date is selected. You don't _have_ to supply this (the default is generally okay)
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47 * onClose | function that gets called when the calendar is closed. [default]
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
48 * onUpdate | function that gets called after the date is updated in the input field. Receives a reference to the calendar.
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 * date | the date that the calendar will be initially displayed to
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50 * showsTime | default: false; if true the calendar will include a time selector
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 * timeFormat | the time format; can be "12" or "24", default is "12"
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52 * electric | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
53 * step | configures the step of the years in drop-down boxes; default: 2
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
54 * position | configures the calendar absolute position; default: null
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
55 * cache | if "true" (but default: "false") it will reuse the same calendar object, where possible
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
56 * showOthers | if "true" (but default: "false") it will show days from other months too
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
57 *
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
58 * None of them is required, they all have default values. However, if you
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59 * pass none of "inputField", "displayArea" or "button" you'll get a warning
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
60 * saying "nothing to setup".
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
61 */
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
62 Calendar.setup = function (params) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
63 function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
64
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
65 param_default("inputField", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
66 param_default("displayArea", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
67 param_default("button", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
68 param_default("eventName", "click");
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
69 param_default("ifFormat", "%Y/%m/%d");
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
70 param_default("daFormat", "%Y/%m/%d");
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
71 param_default("singleClick", true);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
72 param_default("disableFunc", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
73 param_default("dateStatusFunc", params["disableFunc"]); // takes precedence if both are defined
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
74 param_default("dateText", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
75 param_default("firstDay", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
76 param_default("align", "Br");
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
77 param_default("range", [1900, 2999]);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
78 param_default("weekNumbers", true);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
79 param_default("flat", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
80 param_default("flatCallback", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
81 param_default("onSelect", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
82 param_default("onClose", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
83 param_default("onUpdate", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
84 param_default("date", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
85 param_default("showsTime", false);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
86 param_default("timeFormat", "24");
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
87 param_default("electric", true);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
88 param_default("step", 2);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
89 param_default("position", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
90 param_default("cache", false);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
91 param_default("showOthers", false);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
92 param_default("multiple", null);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
93
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
94 var tmp = ["inputField", "displayArea", "button"];
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
95 for (var i in tmp) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
96 if (typeof params[tmp[i]] == "string") {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
97 params[tmp[i]] = document.getElementById(params[tmp[i]]);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
98 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
99 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
100 if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
101 alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
102 return false;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
103 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
104
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
105 function onSelect(cal) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
106 var p = cal.params;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
107 var update = (cal.dateClicked || p.electric);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
108 if (update && p.inputField) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
109 p.inputField.value = cal.date.print(p.ifFormat);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
110 if (typeof p.inputField.onchange == "function")
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
111 p.inputField.onchange();
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
112 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
113 if (update && p.displayArea)
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
114 p.displayArea.innerHTML = cal.date.print(p.daFormat);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
115 if (update && typeof p.onUpdate == "function")
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
116 p.onUpdate(cal);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
117 if (update && p.flat) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
118 if (typeof p.flatCallback == "function")
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
119 p.flatCallback(cal);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
120 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
121 if (update && p.singleClick && cal.dateClicked)
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
122 cal.callCloseHandler();
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
123 };
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
124
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
125 if (params.flat != null) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
126 if (typeof params.flat == "string")
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
127 params.flat = document.getElementById(params.flat);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
128 if (!params.flat) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
129 alert("Calendar.setup:\n Flat specified but can't find parent.");
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
130 return false;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
131 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
132 var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
133 cal.showsOtherMonths = params.showOthers;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
134 cal.showsTime = params.showsTime;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
135 cal.time24 = (params.timeFormat == "24");
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
136 cal.params = params;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
137 cal.weekNumbers = params.weekNumbers;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
138 cal.setRange(params.range[0], params.range[1]);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
139 cal.setDateStatusHandler(params.dateStatusFunc);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
140 cal.getDateText = params.dateText;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
141 if (params.ifFormat) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
142 cal.setDateFormat(params.ifFormat);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
143 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
144 if (params.inputField && typeof params.inputField.value == "string") {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
145 cal.parseDate(params.inputField.value);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
146 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
147 cal.create(params.flat);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
148 cal.show();
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
149 return false;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
150 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
151
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
152 var triggerEl = params.button || params.displayArea || params.inputField;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
153 triggerEl["on" + params.eventName] = function() {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
154 var dateEl = params.inputField || params.displayArea;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
155 var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
156 var mustCreate = false;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
157 var cal = window.calendar;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
158 if (dateEl)
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
159 params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
160 if (!(cal && params.cache)) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
161 window.calendar = cal = new Calendar(params.firstDay,
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
162 params.date,
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
163 params.onSelect || onSelect,
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
164 params.onClose || function(cal) { cal.hide(); });
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
165 cal.showsTime = params.showsTime;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
166 cal.time24 = (params.timeFormat == "24");
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
167 cal.weekNumbers = params.weekNumbers;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
168 mustCreate = true;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
169 } else {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
170 if (params.date)
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
171 cal.setDate(params.date);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
172 cal.hide();
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
173 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
174 if (params.multiple) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
175 cal.multiple = {};
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
176 for (var i = params.multiple.length; --i >= 0;) {
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
177 var d = params.multiple[i];
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
178 var ds = d.print("%Y%m%d");
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
179 cal.multiple[ds] = d;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
180 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
181 }
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
182 cal.showsOtherMonths = params.showOthers;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
183 cal.yearStep = params.step;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
184 cal.setRange(params.range[0], params.range[1]);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
185 cal.params = params;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
186 cal.setDateStatusHandler(params.dateStatusFunc);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
187 cal.getDateText = params.dateText;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
188 cal.setDateFormat(dateFmt);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
189 if (mustCreate)
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
190 cal.create();
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
191 cal.refresh();
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
192 if (!params.position)
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
193 cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
194 else
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
195 cal.showAt(params.position[0], params.position[1]);
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
196 return false;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
197 };
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
198
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
199 return cal;
9719cbd1a23f Import of MainLayout, Styles, images and Scripts from old System Revision: 3101 Does not compile
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
200 };

http://dive4elements.wald.intevation.org