Commit Graph

752 Commits

Author SHA1 Message Date
Nathan Gray
b2c78d5b6f Apply end date to list view too. Only makes a difference when selected range is used, but now it is pre-set. 2015-10-05 18:27:19 +00:00
Nathan Gray
fa62547d77 Keep user's last choice for weekend in week view 2015-09-29 16:50:49 +00:00
Nathan Gray
815b6bc09a Calendar bugs with multi-day events:
- Fix not properly visible if they span weeks
- Fix end date changes when editing if the event spans DST (daylight savings time) change
2015-09-28 19:31:01 +00:00
Nathan Gray
b7f7c40d28 Always show weekends in month view 2015-09-28 17:31:30 +00:00
Nathan Gray
2806cd06c1 Make planner headers look like links 2015-09-21 15:41:56 +00:00
Nathan Gray
7e9be1ea38 Calendar bugs:
- Fix infinite loop west of GMT
- Sidebox calendar now only changes views in day, week or month.  Other views just change the date
- Fix inconsistant week number in planner
2015-09-14 20:47:25 +00:00
Nathan Gray
7d83c27684 Calendar bugs:
- Fix infinite loop east of GMT
2015-09-14 18:29:22 +00:00
Nathan Gray
50b3c77986 Calendar et2 bugs:
- Add link styling to grid views
- Don't fail if loading without access
2015-09-09 21:35:26 +00:00
Nathan Gray
84b1eafc24 Calendar et2 bugs:
- Clicking a date in sidebox now changes to day view, unless you're in 4 day view
- Today button no longer switches to month view
- Put upper limits on planner by user & category headers to avoid hundreds of day headers
2015-09-09 20:59:23 +00:00
Hadi Nategh
a951366235 Add today button into sidebox navigation calendar 2015-09-07 17:13:20 +00:00
Nathan Gray
ed6948a9f2 - Better granularity calculations using number of weeks & view
- Clicking sidebox calendar no longer changes view
- Fixed header links to different day (broken in some views) & got clickable week numbers working
2015-09-02 22:40:38 +00:00
Ralf Becker
49873b317a only unlock, if we have a lock(-token) 2015-08-31 10:49:58 +00:00
Nathan Gray
75c7d36a31 Some speed optimizations and plugging some leaks. 2015-08-25 23:30:32 +00:00
Nathan Gray
c4758f1679 - Give user names their own line to avoid being hidden by first day of week
- Fix bug showing first user's name when crossing the merge calendar limit
2015-08-25 00:00:45 +00:00
Nathan Gray
f05a777215 Calendar bugs
- Add loading spinner when changing (resize) an event
- If user changes the month using the sidebox calendar, switch to month view for that month
- Mark holidays on the sidebox calendar
- Change cursor over sidebox week number  to match cursor over days
2015-08-24 17:28:19 +00:00
Nathan Gray
8cb0aade18 Calendar bugs
- Fix 'Today' button went to yesterday if timezone was < GMT
- Fix navigation buttons & scrolling in year planner
- Fix sometimes missing data in year planner if timezone was < GMT
2015-08-19 16:17:55 +00:00
Nathan Gray
3cc740d35e Calendar bugs
- Remove tooltip border
- Always show weekends in sidebox & 4 day view
- variable granularity, weekN & month view show less
- Added missing week numbers
- Hide participants if more than one & calendar is combined
2015-08-19 00:08:22 +00:00
Nathan Gray
949ea0c000 Implement app refresh (via observer) to clear all cached data & redraw properly 2015-08-12 17:42:22 +00:00
Nathan Gray
8db7e46aa6 Implement app refresh (via observer) to clear all cached data & redraw 2015-08-12 16:51:03 +00:00
Nathan Gray
5090c767c5 Calendar et2 bugs:
- Fix holiday & timezone admin screens 
- Fix sometimes not shown events when there are more than one on a day
- Fix resource names not always shown in grid labels
2015-08-12 16:37:02 +00:00
Nathan Gray
bf2fff51f6 Calendar et2 bugs:
- Fix daywise cache kept even when changing owner
- Fix filtering for a single participant did not return correct results
- Fix sometimes missing resource name in single calendars
2015-08-11 23:20:24 +00:00
Nathan Gray
57ab5dc678 Calendar et2 bugs:
- Fix drag to re-order calendars
- Keep order in planner view
2015-08-11 22:30:50 +00:00
Nathan Gray
6ad8a5e309 Calendar et2 conversion work in progress.
- Fixes for losing actions
- Drag & drop move & resize for planner view
2015-08-11 15:35:54 +00:00
Nathan Gray
47813048ab Calendar et2 conversion bugs:
- Home favorites were missing data
- View selectbox did not show Planner when you clicked the button
- Weekend toggle did not affect multi-week view
- Refresh lost the event if it changed day
2015-08-06 17:14:20 +00:00
Nathan Gray
68f778f163 Calendar et2 conversion bugs:
- Home favorites were missing data
- View selectbox did not show Planner when you clicked the button
- Weekend toggle did not affect multi-week view
- Refresh lost the event if it changed day
2015-08-06 17:12:34 +00:00
Nathan Gray
9903a5f926 Calendar et2 conversion work in progress.
- Home favorites with context menus
2015-08-05 21:24:07 +00:00
Nathan Gray
1ac7324243 Calendar et2 conversion work in progress.
- Drag & drop reschedule across days/weeks (grid views)
2015-07-21 23:45:38 +00:00
Nathan Gray
f0ebb448a2 Calendar et2 conversion work in progress.
- Client side event caching
- Home fixes
2015-07-15 16:29:10 +00:00
Ralf Becker
7c141d1c65 Fix empty meeting request display in mail, caused by default handling in et2_ready 2015-07-15 13:16:31 +00:00
Nathan Gray
4562b53b1b Calendar et2 conversion work in progress.
- Slightly more efficient event positioning
2015-07-03 17:56:36 +00:00
Nathan Gray
ed1970b1aa Calendar et2 conversion work in progress.
- Drag & drop linking and event creation for other apps (grid views)
- Drag & drop reschedule and resize within the same day (grid views)
2015-07-02 19:31:52 +00:00
Nathan Gray
4032bcb213 Calendar et2 conversion work in progress.
- Event styling
2015-07-01 16:02:20 +00:00
Nathan Gray
3d6e1573bb Calendar et2 conversion work in progress.
- Update after edit
2015-06-30 23:34:38 +00:00
Nathan Gray
925c29ce9d Calendar et2 conversion work in progress.
- Some context menu actions
- Reduce code duplication in views
- Fix views still using iframe
2015-06-30 22:26:59 +00:00
Nathan Gray
dcc69abf9b * Smarter favorite highlighting
Now highlights if the current application state matches a favorite, either by click or manually setting the filters.
2015-06-29 19:16:56 +00:00
Nathan Gray
4648f91bb7 Calendar et2 conversion work in progress.
- Start of planner view
- Scroll moved to app.js so month works better
2015-06-25 17:44:28 +00:00
Nathan Gray
cdc3ad9a10 Fix insert into document from sidebox dropdown 2015-06-15 21:38:03 +00:00
Nathan Gray
920616e37a Calendar et2 conversion work in progress.
Context menu is enabled, but not all actions are fully implemented yet.
2015-06-10 21:51:28 +00:00
Nathan Gray
2f6c66c600 WIP on converting Calendar to etemplate2
- Weekview shows widgets now
2015-05-06 19:03:45 +00:00
Nathan Gray
047ee13253 Fix some missed details and simplifications in resource search options 2015-03-12 16:50:47 +00:00
Nathan Gray
255494fc20 Fix resource participant search conflict checking 2015-03-12 16:24:55 +00:00
Hadi Nategh
343bffd902 No need to submit after the print is triggerd 2015-02-18 09:44:25 +00:00
Ralf Becker
de4d246726 * Calendar: speed improvments for huge calendar databases
by using time-range views instead of whole calendar and dates table
Also got old, much simpler non-union code working again, but union is still slightly quicker for huge databases (not at all for small ones!)
2015-01-19 19:32:26 +00:00
Nathan Gray
daf62789a0 Add observer to home, delegating the update to each portlet if possible. 2015-01-13 17:36:18 +00:00
Nathan Gray
e8821f2497 Use 0 instead of current user ID in calendar state to allow admins to create default calendar favorites useful for all users. 2015-01-08 15:51:36 +00:00
Hadi Nategh
e07c11be85 Fix popup's window close
-Make sure window.close() closing the right egw window
-Make sure the modal popup has the opener
2014-12-12 14:21:04 +00:00
Nathan Gray
d62e9a1b0d More Home progress:
- Hide navigation buttons in non-list calendar views to prevent reloads
 - Fix state / session interference between home views & main calendar view
2014-12-03 00:20:57 +00:00
Ralf Becker
48c8b1de74 do not destroy top-level app object, if we run in popup 2014-11-27 17:37:18 +00:00
Hadi Nategh
6b1addce9f Preset enddate accroding to start date of an event, plus considering duration if it exists 2014-11-14 09:37:49 +00:00
Hadi Nategh
93aa6fb83a * Calendar: Add new feature to the calendar app, in order to be able to sort calendars in day and week views 2014-11-05 16:13:26 +00:00
Ralf Becker
a4389c7cbc fix javascript error when creating an exception 2014-10-30 10:24:11 +00:00
Hadi Nategh
27f13cad92 More performance optimization for calendar tooltip 2014-10-27 13:04:31 +00:00
Hadi Nategh
16e6f807de Performance improvment for calender tooltip 2014-10-23 12:59:19 +00:00
Hadi Nategh
628b1369f7 Make calendar's tooltip scrollable 2014-10-15 12:03:15 +00:00
Hadi Nategh
b88102618b Fix calendar entries mess up after editing an integrated entry (eg. infolog) while the calendar is not the active tab (happens only in F.F.) 2014-10-07 16:21:19 +00:00
Hadi Nategh
9b917407e0 * Calendar: Fix not being able to add calenadr alarm for user with limited access
-Fix javascript error while switching to custom alarm date
2014-09-23 13:49:22 +00:00
Ralf Becker
91ea6f8d9f fixed whole-day checkbox comparison (this should probably be fixed on widget level too), fixes together with r48580 false "startdate changed" message while trying to save a recuring event 2014-09-10 10:24:40 +00:00
Ralf Becker
8c9854daa2 date widget has now api to set or get year, month, date, hours, minutes or time(stamp) and using that in calendar app.js for date manipulation 2014-09-05 10:34:37 +00:00
Ralf Becker
35f63b35d5 * Calendar: fixed freetime search to correctly read and set times from edit window
- fixed et2_date.set_value() to understand nummeric timestamps in usertime used on server-side (needed timezone offset)
- added new parameter-type for et2_date.set_value() string starting with + or - to add or subtract given number of seconds from current time (to not have to code that in applications)
2014-09-04 13:03:48 +00:00
Ralf Becker
ff37c7c3f4 * Calendar/IE11: fixed calendar and other apps were not working, if doing something in the calendar in IE11 2014-08-26 16:29:12 +00:00
Hadi Nategh
16cb288efc * Calendar/all views: Fix recurrent whole day events do not pop up edit series dialog. 2014-08-25 10:30:52 +00:00
Ralf Becker
08abe654ac fixed sometimes (specially day-view) not working drag-n-drop, caused by DOM not ready 2014-08-21 14:12:07 +00:00
Ralf Becker
75feb92950 fix date arithmetic date.getTime() is milisecs not secs 2014-08-21 13:31:10 +00:00
Ralf Becker
cfd28ae9a9 fix not working data arithmetic, after change from timestamps to strings in date widget 2014-08-21 12:43:14 +00:00
Hadi Nategh
6e9215e0ff * Calendar/infolog events: Implement drag,drop and resize for integrated infolog events in all calendar views. 2014-08-21 11:20:37 +00:00
Hadi Nategh
1960c8c7f7 Fix calendar Action->Infolog opens not as popup 2014-07-21 09:38:35 +00:00
Hadi Nategh
dcad41f542 Try to not always refresh calendar via observer for every infolog entry, but only the ones that are integrated in calendar 2014-06-26 12:39:20 +00:00
Hadi Nategh
6849109e2a Add observer method for calendar and fix calendar not being refreshed when an integrated infolog event updates 2014-06-25 15:39:58 +00:00
Hadi Nategh
7f5af09f87 Retrive accidentally removed delete and undelete nm_popup templates from calendar listview temp by commit 45376. Additionally, fix error calling cal_delete for deleting recurrent events from listview 2014-06-17 09:44:15 +00:00
Hadi Nategh
7a9378d0d7 Fix calendar delete series event with exceptions 2014-06-16 16:49:45 +00:00
Ralf Becker
b308b0027d changed default alarms pref to single "date-duration" pref (in minutes), fixed date-duration to have for prefs reasonable default of data_format=m,display_format=mhd,hours_per_day=24,empty_not_0=1 2014-06-06 11:59:20 +00:00
Hadi Nategh
0b109288f4 Set user prefered default alarm for regular and wholeday events 2014-06-05 16:07:59 +00:00
Hadi Nategh
b063901fde Set alarm's default value according to user preferences for both regular and wholeday events 2014-05-28 15:04:06 +00:00
Hadi Nategh
706c69ed90 * Calendar/Alarm: Move calendar Alarm from Alarm tab to Details tab and make it more user friendly to add alarm 2014-05-27 15:02:56 +00:00
Nathan Gray
8954da4956 Another fix for edit series confirm dialog - handle case of recur type = 0 (single event) 2014-03-25 15:04:14 +00:00
Hadi Nategh
227280d03c Complement fix for commit r46319, cover copied entries, or genrally entried with no id cases 2014-03-19 09:53:19 +00:00
Hadi Nategh
5347c8d133 Fix edit series confirm dialog pops up for new entries which are not recurrent event 2014-03-18 16:12:39 +00:00
Hadi Nategh
0024a805c5 A few more changes on calendar edit popup layout 2014-03-11 14:08:12 +00:00
Hadi Nategh
e00ddbaeb3 Arrange calendar edit popup template 2014-03-11 10:45:02 +00:00
Ralf Becker
9be29f5122 set date for "No Filter" (blank) favorite to todays date 2014-02-28 10:51:33 +00:00
Ralf Becker
ba6e9129e7 fix handling for "No filter" (blank) favorite for attributes and views managed on server-side 2014-02-26 13:35:27 +00:00
Nathan Gray
d221a84c29 Fix 'No filters' favorite handling to detect and use internal name 'blank' instead of translated label.
Copied from parent.
2014-02-24 23:50:51 +00:00
Hadi Nategh
68864a0683 Remove another inline-script in calendar dayView which was causing CSP violation 2014-02-24 09:48:22 +00:00
Hadi Nategh
cbae6e5722 Change multiple jquery statements to single jquery with on() method to handle events 2014-02-21 16:37:39 +00:00
Ralf Becker
26e0f079a1 fixed not working move/resize of events in IE (did not understand redirect to empty url) 2014-02-19 17:48:25 +00:00
Ralf Becker
07db88276e fixed or working around javascript errors in IE11 2014-02-19 15:20:19 +00:00
Hadi Nategh
1b14b2ad31 Fix Calendar new event opened with wrong owner 2014-02-18 08:51:53 +00:00
Nathan Gray
b8938e66ff Somehow calendar sidebox does not exist when normal initialization happens, so re-initialize it (again) here. 2014-02-12 17:36:20 +00:00
Nathan Gray
dfb1be231d Fix TypeError: Cannot read property 'view' of undefined when clicking on some calendar favorites 2014-02-12 16:17:58 +00:00
Ralf Becker
7cfdae66b6 fix not working ical export from calendar edit 2014-02-10 12:45:57 +00:00
Hadi Nategh
bf376292f5 Style the d-n-d and resize time indicator 2014-02-10 08:53:42 +00:00
Ralf Becker
3778191a20 fixed add event was opened in to big popup when clicking on calendar background, using not egw.open(...,"add") for it 2014-02-05 14:32:15 +00:00
Ralf Becker
628070da5e fixed today button in navigation-calendar to stay in current-view und just change to todays date 2014-02-03 11:53:19 +00:00
Hadi Nategh
00b040764d Align calendar resizable time indicator at bottom and center 2014-02-03 08:27:56 +00:00
Ralf Becker
968d5d6760 fix permanent reload in idots template, when switching to a listview-favorite 2014-01-30 18:24:24 +00:00
Ralf Becker
ba29a6b94b fixed not working switch from a list-view to a favorite from an old view 2014-01-30 16:55:02 +00:00
Hadi Nategh
526b4ff936 Fix and accuracy for calendar resizable 2014-01-30 16:48:49 +00:00
Hadi Nategh
0cab4a7837 Missing commit from r45429 2014-01-29 18:47:49 +00:00
Hadi Nategh
0d21f70f3f Fix calendar resizable error for entries with start date not fit to interval 2014-01-29 18:44:12 +00:00
Hadi Nategh
888611f531 No need to pass event param as the first argument to edit_series function, if there's no event, since the function controls the arguments by itself 2014-01-27 16:36:49 +00:00
Hadi Nategh
c52c1f7126 Destroy resizable for non resizable entries, and initiate them with normal status 2014-01-27 16:03:08 +00:00
Hadi Nategh
1e726cedac Fix calendar d-n-d not showing forbiden sign when try to drop in not accepted area 2014-01-24 16:04:11 +00:00
Ralf Becker
5d64f040c0 use a linkHandler method to correctly (with ajax=true) handle listview: a) on new logins or b) when app is refreshed via clicking on app-header in jdots 2014-01-24 15:50:17 +00:00
Hadi Nategh
84624be69f Make Series and WholeDay events d-n-d able 2014-01-24 12:50:20 +00:00
Ralf Becker
ca29a87092 fix clicking on monthname in navigation calendar always gave week-view 2014-01-24 12:28:40 +00:00
Ralf Becker
fc18f4d1ab fix framework lost on search in Stylite/Pixelegg template 2014-01-24 11:24:14 +00:00
Ralf Becker
bc0f6950c5 fix calendar favorites by passing state for json requests via apply("app.calendar.set_state", array(state)) and checking on app.calendar.setState() if we need a redirect for listview to set owner, cat_id or filter, also fixed all IDE warnings in app.js 2014-01-24 09:47:33 +00:00
Hadi Nategh
fccd3f8d89 Fix not being able to move a series event. Additionally, brings a confirmation message for moving series event 2014-01-23 17:15:49 +00:00
Hadi Nategh
40b33e6a1d Change old confirm dialogs to new et2_dialog in calendar edit popup 2014-01-23 10:27:18 +00:00
Hadi Nategh
8f29c5a15b Replace onClick inline-script with jQuery for todos in calendar 2014-01-17 10:28:15 +00:00
Hadi Nategh
93ccf400c3 Fix calendar cells click handler for resources 2014-01-14 17:32:01 +00:00
Hadi Nategh
8d4fc1001f Remove inline-script of flat() in calendar and move it to navigation.js, CSP concern 2014-01-10 17:31:24 +00:00
Hadi Nategh
a9c800229c Fix onclick handler for calendar yearly planner and year view 2014-01-09 09:38:55 +00:00
Hadi Nategh
e6ce77b303 Fix tooltip on plannerEvent, replace the handle with jquery tooltip 2014-01-08 16:36:15 +00:00
Hadi Nategh
7218d7be56 Change the cursor to move in calendar d-n-d 2014-01-07 16:09:36 +00:00
Hadi Nategh
08f8b755b1 Fix styling for cal event tooltip in calendar 2014-01-07 10:34:11 +00:00
Hadi Nategh
80c3255260 Remove dragDropFunction.js since it is replaced by jquery d-n-d, so it is depricated 2014-01-06 15:44:58 +00:00
Hadi Nategh
ac64b6afc4 Handle calendar event tooltip and onclick with jquery 2014-01-06 15:36:49 +00:00
Ralf Becker
5b6172c354 fixed app.css loading to work with minifying of css 2013-12-19 03:46:38 +00:00
Hadi Nategh
e10865c133 Display time amount while resizing calendar entry 2013-12-17 14:33:03 +00:00
Hadi Nategh
19f19f940f Consider multiple calendar cases for hieght calculation 2013-12-17 08:55:32 +00:00
Hadi Nategh
acdd076ce7 Fix to get the correct calendar droppable element for height calculation 2013-12-17 08:25:51 +00:00
Hadi Nategh
a014b7ba7c Make calendar entry resizable 2013-12-16 18:10:08 +00:00
Hadi Nategh
f1da90887a Get Calendar d-n-d working again 2013-12-13 18:18:56 +00:00
Ralf Becker
042db5996a use egw_link_handler to stop calendar reload whole framework when switching away from listview 2013-12-13 00:09:40 +00:00
Ralf Becker
c004872068 Load template specific app.css file in top window too as sidebox needs it 2013-12-12 21:59:36 +00:00
Ralf Becker
1dc6964754 get calendar favorites working for list-view (eg. changing owner) 2013-12-12 03:42:08 +00:00
Nathan Gray
80ca81ec43 Get calendar favorites javascript side working 2013-12-11 23:51:35 +00:00
Nathan Gray
0a995cbdef Calendar list get_rows does not filter by anything in its query anyway, so don't bother trying to just change filters. 2013-12-10 23:17:31 +00:00
Nathan Gray
d097a0bfa1 non-et2 Favorites work in progress
New states now added to list immediately, can delete states
2013-12-06 21:26:55 +00:00
Nathan Gray
79498c5ae5 non-et2 Favorites work in progress
Can now save & restore state.  Still some UI needed, not fully integrated with et2 favorites.
2013-12-06 18:24:29 +00:00
Ralf Becker
0290622da1 for nextmatch/list-view always use default implementation, as user might have changed filters, if no view attribute in state, handle it as listview, for listview only use favorite/name get parameter 2013-12-05 00:03:13 +00:00
Ralf Becker
9cba54fb63 calendar state handling via set/getState methods in calendar app.js 2013-12-04 23:28:31 +00:00
Hadi Nategh
3ccfe3fb93 Add app prefix name to calendar css classes 2013-11-11 14:02:08 +00:00
Ralf Becker
c9f1a28702 fix exception parameter was put on wrong case 2013-11-06 08:49:29 +00:00
Ralf Becker
aeb6ebd84c instanciate app.js object from egw.js, so non et2 apps can use it too, get et2_dialog working from app.calendar outside listview 2013-11-05 18:08:07 +00:00
Hadi Nategh
abe0be565d Fix delete calendar entry via context menu from calendar listview 2013-11-05 16:02:21 +00:00
Hadi Nategh
4570588508 Disable "recurrence_exception" row, including date and delete button, when there's no exception 2013-11-05 13:33:32 +00:00
Hadi Nategh
d98b63f8a5 Fix some wrong indentations in calendar app.js 2013-11-05 13:30:41 +00:00
Ralf Becker
6d226a7921 split constructor function and place of instanciation for app.js objects: app[appname] = new app.classes[appname](); 2013-11-04 20:54:23 +00:00
Hadi Nategh
c53b5748a7 Fix ids for integrated apps in calendar list view 2013-11-04 10:23:08 +00:00
Hadi Nategh
7783ec44e0 Calendar app runs by et2 2013-10-31 14:51:19 +00:00
Ralf Becker
43e1bfcc12 switching on Content-Security-Policy: script-src 'self' 'unsafe-eval' for all templates, old non-et2 apps can call egw_framework::csp_script_src_attrs('unsafe-inline') to enable inline scripts in their scope, et2 does it for CK editor which does not support CSP currently and old etemplate does it for all apps using it 2013-10-05 13:33:28 +00:00
Nathan Gray
8ba410eacb If any of the selected events is a series, ask if you want to delete just the one or the whole series 2013-01-09 21:45:55 +00:00
Nathan Gray
e016bcec71 When deleting an event through the list context menu, if it is part of a series ask if you want to delete the single event or the whole series 2013-01-09 21:38:18 +00:00
Nathan Gray
a0a6e14154 Revert changes to delete view - exceptions no longer shown 2012-11-14 16:25:21 +00:00
Nathan Gray
5057d1735e Allow viewing / editing deleted exceptions by editing the series 2012-11-09 17:14:02 +00:00
Nathan Gray
c2ed51de76 Handle global IDs so open / double click works in et2 nextmatch 2012-07-25 18:09:43 +00:00
Ralf Becker
653d4991d7 context menu for calendar list 2011-04-27 16:53:06 +00:00
Klaus Leithoff
15609abbf4 work provided by Chr.Fueller to tackle oversized events in calendar-week-print-pre-view 2010-04-09 14:15:00 +00:00
Ralf Becker
ef700b0061 new class naming schema 2008-06-07 17:45:33 +00:00
Christian Binder
a014327f05 drag and drop for calendar for all those who cannot wait for cooxdoo or dojoproject :o) - it is disabled by default - if you want to use it you have to go to common preferences and enable drag and drop (last entry before template-specific settings) - just for Mozilla based browsers ATM, all other browsers get auto-disabled - it lacks a lot features, e.g. recurring events and whole day events but this will come - HAVE FUN 2006-12-15 20:05:47 +00:00