Tizen release 1.0
authorKim Kibum <kb0929.kim@samsung.com>
Mon, 9 Apr 2012 03:12:19 +0000 (12:12 +0900)
committerKim Kibum <kb0929.kim@samsung.com>
Mon, 9 Apr 2012 03:12:19 +0000 (12:12 +0900)
466 files changed:
CMakeLists.txt [new file with mode: 0755]
NOTICE [new file with mode: 0755]
common/acct-svc.c [new file with mode: 0755]
common/cal-svc.c [new file with mode: 0755]
common/common.c [new file with mode: 0755]
common/external-ug.c [new file with mode: 0755]
common/util-efl.c [new file with mode: 0755]
common/util.c [new file with mode: 0755]
data/CMakeLists.txt [new file with mode: 0755]
data/edc/CMakeLists.txt [new file with mode: 0755]
data/edc/inc/hd-black-inc.edc [new file with mode: 0755]
data/edc/inc/hd-white-inc.edc [new file with mode: 0755]
data/edc/inc/wvga-black-inc.edc [new file with mode: 0755]
data/edc/inc/wvga-white-inc.edc [new file with mode: 0755]
data/edc/layout/efl-calendar-black-theme.edc [new file with mode: 0755]
data/edc/layout/efl-calendar-white-theme.edc [new file with mode: 0755]
data/edc/layout/extended-edc.h [new file with mode: 0755]
data/edc/layout/inc.acct.colorselector.edc [new file with mode: 0755]
data/edc/layout/inc.acct.edc [new file with mode: 0755]
data/edc/layout/inc.edit.edc [new file with mode: 0755]
data/edc/layout/inc.images.edc [new file with mode: 0755]
data/edc/layout/inc.layouts.edc [new file with mode: 0755]
data/edc/layout/inc.main.day.edc [new file with mode: 0755]
data/edc/layout/inc.main.day.tb.edc [new file with mode: 0755]
data/edc/layout/inc.main.edc [new file with mode: 0755]
data/edc/layout/inc.main.month.cal.edc [new file with mode: 0755]
data/edc/layout/inc.main.month.cal.weekly.edc [new file with mode: 0755]
data/edc/layout/inc.main.month.edc [new file with mode: 0755]
data/edc/layout/inc.main.month.weekly.edc [new file with mode: 0755]
data/edc/layout/inc.main.tab.edc [new file with mode: 0755]
data/edc/layout/inc.main.title.edc [new file with mode: 0755]
data/edc/layout/inc.main.week.edc [new file with mode: 0755]
data/edc/layout/inc.main.week.item.edc [new file with mode: 0755]
data/edc/layout/inc.main.year.cal.edc [new file with mode: 0755]
data/edc/layout/inc.main.year.edc [new file with mode: 0755]
data/edc/layout/inc.part.edc [new file with mode: 0755]
data/edc/layout/inc.ring.edc [new file with mode: 0755]
data/edc/layout/inc.ring.image.edc [new file with mode: 0755]
data/edc/layout/org.tizen.efl-calendar.edc [new file with mode: 0755]
data/images/hd/00_list_photo_default.png [new file with mode: 0755]
data/images/hd/01_dialoguegroup_edit_default.png [new file with mode: 0755]
data/images/hd/01_header_icon_add.png [new file with mode: 0755]
data/images/hd/01_header_icon_done.png [new file with mode: 0755]
data/images/hd/01_header_icon_others.png [new file with mode: 0755]
data/images/hd/01_navi_icon_delete.png [new file with mode: 0755]
data/images/hd/01_navi_icon_edit.png [new file with mode: 0755]
data/images/hd/01_navi_icon_new.png [new file with mode: 0755]
data/images/hd/49_memo_noitems.png [new file with mode: 0755]
data/images/hd/57_calendar_bg2.png [new file with mode: 0755]
data/images/hd/57_calendar_event(1)_bg.png [new file with mode: 0755]
data/images/hd/57_calendar_event(2)_bg.png [new file with mode: 0755]
data/images/hd/57_calendar_event(3)_bg.png [new file with mode: 0755]
data/images/hd/57_calendar_event(4)_bg.png [new file with mode: 0755]
data/images/hd/57_calendar_month_view(1)_bg.png [new file with mode: 0755]
data/images/hd/57_calendar_spin_01_icon.png [new file with mode: 0755]
data/images/hd/57_calendar_spin_02_icon.png [new file with mode: 0755]
data/images/hd/57_calendar_tab.png [new file with mode: 0755]
data/images/hd/57_calendar_tab_focus_bg.png [new file with mode: 0755]
data/images/hd/57_calendar_tab_press.png [new file with mode: 0755]
data/images/hd/57_calendar_today_icon.png [new file with mode: 0755]
data/images/hd/57_calendar_today_icon2.png [new file with mode: 0755]
data/images/hd/57_calendar_today_icon_press.png [new file with mode: 0755]
data/images/hd/57_calendar_week_arrow_focus_icon.png [new file with mode: 0755]
data/images/hd/57_calendar_week_arrow_icon.png [new file with mode: 0755]
data/images/hd/57_calendar_week_view_bg.png [new file with mode: 0755]
data/images/hd/57_calendar_week_view_press.png [new file with mode: 0755]
data/images/hd/57_calendar_year_view_bg.png [new file with mode: 0755]
data/images/hd/P01_bg.png [new file with mode: 0755]
data/images/hd/P01_control_top_bg.png [new file with mode: 0755]
data/images/hd/P01_control_top_bg_tmp.png [new file with mode: 0755]
data/images/hd/P01_day_current_time.png [new file with mode: 0755]
data/images/hd/P01_event.png [new file with mode: 0755]
data/images/hd/P01_noschedule.png [new file with mode: 0755]
data/images/hd/P01_tab_bg.png [new file with mode: 0755]
data/images/hd/P01_tab_default.png [new file with mode: 0755]
data/images/hd/P01_tab_focus.png [new file with mode: 0755]
data/images/hd/P01_tab_press.png [new file with mode: 0755]
data/images/hd/P01_title_bg.png [new file with mode: 0755]
data/images/hd/P01_title_bg_tmp.png [new file with mode: 0755]
data/images/hd/all_calendar.png [new file with mode: 0755]
data/images/hd/calendar_selected.png [new file with mode: 0755]
data/images/hd/navibar_item_separator.png [new file with mode: 0755]
data/images/hd/navibar_item_separator_tmp.png [new file with mode: 0755]
data/images/hd/org.tizen.efl-calendar.png [new file with mode: 0755]
data/images/hd/ring/58_alarm_clock_bg_AM.png [new file with mode: 0755]
data/images/hd/ring/58_alarm_clock_bg_PM.png [new file with mode: 0755]
data/images/hd/ring/58_clock_bg.png [new file with mode: 0755]
data/images/hd/ring/58_clock_button_normal.png [new file with mode: 0755]
data/images/hd/ring/58_clock_button_press.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_00.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_01.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_02.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_03.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_04.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_05.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_06.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_07.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_08.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_09.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_10.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_11.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_12.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_13.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_14.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_15.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_16.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_17.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_18.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_19.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_20.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_21.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_22.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_23.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_24.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_25.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_26.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_27.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_28.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_29.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_30.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_31.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_32.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_33.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_34.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_35.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_36.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_37.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_38.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_39.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_40.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_41.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_42.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_43.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_44.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_45.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_46.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_47.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_48.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_49.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_50.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_51.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_52.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_53.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_54.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_55.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_56.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_57.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_58.png [new file with mode: 0755]
data/images/hd/ring/hour/58_alarm_clock_hour_59.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_00.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_01.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_02.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_03.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_04.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_05.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_06.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_07.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_08.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_09.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_10.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_11.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_12.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_13.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_14.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_15.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_16.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_17.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_18.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_19.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_20.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_21.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_22.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_23.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_24.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_25.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_26.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_27.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_28.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_29.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_30.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_31.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_32.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_33.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_34.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_35.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_36.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_37.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_38.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_39.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_40.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_41.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_42.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_43.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_44.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_45.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_46.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_47.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_48.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_49.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_50.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_51.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_52.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_53.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_54.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_55.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_56.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_57.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_58.png [new file with mode: 0755]
data/images/hd/ring/minute/58_alarm_clock_minute_59.png [new file with mode: 0755]
data/images/wvga/00_list_photo_default.png [new file with mode: 0755]
data/images/wvga/01_dialoguegroup_edit_default.png [new file with mode: 0755]
data/images/wvga/01_header_icon_add.png [new file with mode: 0755]
data/images/wvga/01_header_icon_done.png [new file with mode: 0755]
data/images/wvga/01_header_icon_others.png [new file with mode: 0755]
data/images/wvga/01_navi_icon_delete.png [new file with mode: 0755]
data/images/wvga/01_navi_icon_edit.png [new file with mode: 0755]
data/images/wvga/01_navi_icon_new.png [new file with mode: 0755]
data/images/wvga/49_memo_noitems.png [new file with mode: 0755]
data/images/wvga/57_calendar_bg2.png [new file with mode: 0755]
data/images/wvga/57_calendar_event(1)_bg.png [new file with mode: 0755]
data/images/wvga/57_calendar_event(2)_bg.png [new file with mode: 0755]
data/images/wvga/57_calendar_event(3)_bg.png [new file with mode: 0755]
data/images/wvga/57_calendar_event(4)_bg.png [new file with mode: 0755]
data/images/wvga/57_calendar_month_view(1)_bg.png [new file with mode: 0755]
data/images/wvga/57_calendar_spin_01_icon.png [new file with mode: 0755]
data/images/wvga/57_calendar_spin_02_icon.png [new file with mode: 0755]
data/images/wvga/57_calendar_tab.png [new file with mode: 0755]
data/images/wvga/57_calendar_tab_focus_bg.png [new file with mode: 0755]
data/images/wvga/57_calendar_tab_press.png [new file with mode: 0755]
data/images/wvga/57_calendar_today_icon.png [new file with mode: 0755]
data/images/wvga/57_calendar_today_icon2.png [new file with mode: 0755]
data/images/wvga/57_calendar_today_icon_press.png [new file with mode: 0755]
data/images/wvga/57_calendar_week_arrow_focus_icon.png [new file with mode: 0755]
data/images/wvga/57_calendar_week_arrow_icon.png [new file with mode: 0755]
data/images/wvga/57_calendar_week_view_bg.png [new file with mode: 0755]
data/images/wvga/57_calendar_week_view_press.png [new file with mode: 0755]
data/images/wvga/57_calendar_year_view_bg.png [new file with mode: 0755]
data/images/wvga/P01_bg.png [new file with mode: 0755]
data/images/wvga/P01_control_top_bg.png [new file with mode: 0755]
data/images/wvga/P01_control_top_bg_tmp.png [new file with mode: 0755]
data/images/wvga/P01_day_current_time.png [new file with mode: 0755]
data/images/wvga/P01_event.png [new file with mode: 0755]
data/images/wvga/P01_noschedule.png [new file with mode: 0755]
data/images/wvga/P01_tab_bg.png [new file with mode: 0755]
data/images/wvga/P01_tab_default.png [new file with mode: 0755]
data/images/wvga/P01_tab_focus.png [new file with mode: 0755]
data/images/wvga/P01_tab_press.png [new file with mode: 0755]
data/images/wvga/P01_title_bg.png [new file with mode: 0755]
data/images/wvga/P01_title_bg_tmp.png [new file with mode: 0755]
data/images/wvga/all_calendar.png [new file with mode: 0755]
data/images/wvga/calendar_selected.png [new file with mode: 0755]
data/images/wvga/navibar_item_separator.png [new file with mode: 0755]
data/images/wvga/navibar_item_separator_tmp.png [new file with mode: 0755]
data/images/wvga/org.tizen.efl-calendar.png [new file with mode: 0755]
data/images/wvga/ring/58_alarm_clock_bg_AM.png [new file with mode: 0755]
data/images/wvga/ring/58_alarm_clock_bg_PM.png [new file with mode: 0755]
data/images/wvga/ring/58_clock_bg.png [new file with mode: 0755]
data/images/wvga/ring/58_clock_button_normal.png [new file with mode: 0755]
data/images/wvga/ring/58_clock_button_press.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_00.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_01.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_02.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_03.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_04.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_05.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_06.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_07.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_08.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_09.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_10.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_11.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_12.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_13.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_14.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_15.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_16.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_17.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_18.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_19.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_20.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_21.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_22.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_23.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_24.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_25.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_26.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_27.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_28.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_29.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_30.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_31.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_32.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_33.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_34.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_35.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_36.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_37.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_38.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_39.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_40.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_41.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_42.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_43.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_44.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_45.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_46.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_47.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_48.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_49.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_50.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_51.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_52.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_53.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_54.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_55.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_56.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_57.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_58.png [new file with mode: 0755]
data/images/wvga/ring/hour/58_alarm_clock_hour_59.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_00.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_01.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_02.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_03.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_04.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_05.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_06.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_07.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_08.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_09.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_10.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_11.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_12.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_13.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_14.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_15.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_16.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_17.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_18.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_19.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_20.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_21.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_22.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_23.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_24.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_25.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_26.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_27.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_28.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_29.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_30.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_31.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_32.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_33.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_34.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_35.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_36.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_37.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_38.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_39.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_40.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_41.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_42.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_43.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_44.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_45.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_46.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_47.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_48.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_49.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_50.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_51.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_52.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_53.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_54.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_55.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_56.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_57.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_58.png [new file with mode: 0755]
data/images/wvga/ring/minute/58_alarm_clock_minute_59.png [new file with mode: 0755]
data/sounds/On_time.wav [new file with mode: 0755]
debian/changelog [new file with mode: 0755]
debian/compat [new file with mode: 0755]
debian/control [new file with mode: 0755]
debian/copyright [new file with mode: 0755]
debian/dirs [new file with mode: 0755]
debian/docs [new file with mode: 0755]
debian/libug-calendar-efl.install.in [new file with mode: 0755]
debian/libug-calendar-efl.postinst [new file with mode: 0755]
debian/org.tizen.calendar-viewer.install.in [new file with mode: 0755]
debian/org.tizen.efl-calendar.install.in [new file with mode: 0755]
debian/org.tizen.efl-calendar.postinst [new file with mode: 0755]
debian/rules [new file with mode: 0755]
include/acct-svc.h [new file with mode: 0755]
include/cal-svc.h [new file with mode: 0755]
include/cld-log.h [new file with mode: 0755]
include/cld-utils.h [new file with mode: 0755]
include/cld.h [new file with mode: 0755]
include/external-ug.h [new file with mode: 0755]
org.tizen.efl-calendar.desktop.in [new file with mode: 0755]
packaging/org.tizen.efl-calendar.spec [new file with mode: 0755]
po/CMakeLists.txt [new file with mode: 0755]
po/de_DE.po [new file with mode: 0755]
po/el_GR.po [new file with mode: 0755]
po/en.po [new file with mode: 0755]
po/es_ES.po [new file with mode: 0755]
po/fr_FR.po [new file with mode: 0755]
po/it_IT.po [new file with mode: 0755]
po/ja_JP.po [new file with mode: 0755]
po/ko_KR.po [new file with mode: 0755]
po/nl_NL.po [new file with mode: 0755]
po/pt_PT.po [new file with mode: 0755]
po/ru_RU.po [new file with mode: 0755]
po/tr_TR.po [new file with mode: 0755]
po/zh_CN.po [new file with mode: 0755]
po/zh_HK.po [new file with mode: 0755]
po/zh_TW.po [new file with mode: 0755]
src/alm-mgr.c [new file with mode: 0755]
src/alm-mgr.h [new file with mode: 0755]
src/detail.h [new file with mode: 0755]
src/edit-alarm.c [new file with mode: 0755]
src/edit-alarm.h [new file with mode: 0755]
src/edit-repeat.c [new file with mode: 0755]
src/edit-repeat.h [new file with mode: 0755]
src/edit.h [new file with mode: 0755]
src/list-delete.c [new file with mode: 0755]
src/list.c [new file with mode: 0755]
src/list.h [new file with mode: 0755]
src/main.c [new file with mode: 0755]
src/timeblock.c [new file with mode: 0755]
src/timeblock.h [new file with mode: 0755]
src/view-acct.c [new file with mode: 0755]
src/view-detail.c [new file with mode: 0755]
src/view-edit.c [new file with mode: 0755]
src/view-main-day-time.c [new file with mode: 0755]
src/view-main-day.c [new file with mode: 0755]
src/view-main-list.c [new file with mode: 0755]
src/view-main-month-cal.c [new file with mode: 0755]
src/view-main-month.c [new file with mode: 0755]
src/view-main-year.c [new file with mode: 0755]
src/view-main.c [new file with mode: 0755]
src/view-ring.c [new file with mode: 0755]
src/view-ring.h [new file with mode: 0755]
src/view.h [new file with mode: 0755]
ug/CMakeLists.txt [new file with mode: 0755]
ug/detail/CMakeLists.txt [new file with mode: 0755]
ug/detail/readme.txt [new file with mode: 0755]
ug/detail/ug-detail-view.c [new file with mode: 0755]
ug/detail/ug-detail-view.h [new file with mode: 0755]
ug/detail/ug-detail.c [new file with mode: 0755]
ug/detail/ug-detail.h [new file with mode: 0755]
ug/edit/CMakeLists.txt [new file with mode: 0755]
ug/edit/readme.txt [new file with mode: 0755]
ug/edit/ug-edit.c [new file with mode: 0755]
ug/edit/ug-edit.h [new file with mode: 0755]
ug/list/CMakeLists.txt [new file with mode: 0755]
ug/list/ug-list.c [new file with mode: 0755]
ug/list/ug.c [new file with mode: 0755]
ug/list/ug.h [new file with mode: 0755]
ug/settings/CMakeLists.txt [new file with mode: 0755]
ug/settings/ug-settings-view.c [new file with mode: 0755]
ug/settings/ug-settings-view.h [new file with mode: 0755]
ug/settings/ug-settings.c [new file with mode: 0755]
ug/settings/ug-settings.h [new file with mode: 0755]
viewer/CMakeLists.txt [new file with mode: 0755]
viewer/calendar-viewer.desktop.in [new file with mode: 0755]
viewer/viewer.c [new file with mode: 0755]

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..dec0872
--- /dev/null
@@ -0,0 +1,113 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(efl-calendar C)
+
+FILE(GLOB SRCS src/*.c)
+FILE(GLOB COMM_SRCS common/*.c)
+
+SET(VENDOR "tizen")
+SET(CALENDAR_PACKAGE ${PROJECT_NAME})
+SET(PKGNAME "org.${VENDOR}.${CALENDAR_PACKAGE}")
+SET(CALENDAR_PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${CALENDAR_PREFIX}/bin")
+SET(RESDIR "${CALENDAR_PREFIX}/res")
+SET(DATADIR "${CALENDAR_PREFIX}/data")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(ICONDIR "${RESDIR}/icons/default/small")
+SET(EDJDIR "${RESDIR}/edje")
+SET(SELECTED_TARGET "hd")
+SET(UGNAME "ug-calendar-efl")
+SET(UGSETTINGS "ug-calendar-settings-efl")
+SET(UGEDIT "ug-calendar-edit-efl")
+SET(UGDETAIL "ug-calendar-detail-efl")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF()
+MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+               appcore-efl
+               dlog
+               heynoti
+               ui-gadget
+               utilX
+               alarm-service
+               accounts-svc
+               mm-player
+               pmapi
+               calendar
+               ecore-input
+               ecore-imf
+               ecore-x
+               ecore-evas
+               ecore
+               eina
+               evas
+               edje
+               icu-i18n
+               glib-2.0
+               appsvc
+               capi-appfw-application
+               capi-media-sound-manager
+               capi-media-wav-player
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fpie -Wall")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -g")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+       ADD_DEFINITIONS("-DCLD_DEBUG")
+       ADD_DEFINITIONS("-DCLD_FILE_LOGGING")
+ENDIF()
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE(STATUS "add -DTARGET")
+ENDIF()
+
+ADD_DEFINITIONS("-DCALENDAR_PACKAGE=\"${CALENDAR_PACKAGE}\"")
+ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
+ADD_DEFINITIONS("-DCALENDAR_PREFIX=\"${CALENDAR_PREFIX}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-DUGNAME=\"${UGNAME}\"")
+ADD_DEFINITIONS("-DUGSETTINGS=\"${UGSETTINGS}\"")
+ADD_DEFINITIONS("-DUGEDIT=\"${UGEDIT}\"")
+ADD_DEFINITIONS("-DUGDETAIL=\"${UGDETAIL}\"")
+
+SET(COMMON_LIB "common_lib")
+ADD_LIBRARY(${COMMON_LIB} STATIC ${COMM_SRCS})
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${COMMON_LIB} ${pkgs_LDFLAGS} "-pie -lm")
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
+
+# install desktop file
+CONFIGURE_FILE(${PKGNAME}.desktop.in ${CMAKE_BINARY_DIR}/${PKGNAME}.desktop)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.desktop DESTINATION /opt/share/applications)
+
+# ui-gadget
+ADD_SUBDIRECTORY(ug)
+
+# i18n
+ADD_SUBDIRECTORY(po)
+
+# data
+ADD_SUBDIRECTORY(data)
+
+INSTALL(DIRECTORY DESTINATION ${DATADIR})
+
+# vcs viewer
+ADD_SUBDIRECTORY(viewer)
\ No newline at end of file
diff --git a/NOTICE b/NOTICE
new file mode 100755 (executable)
index 0000000..ded3804
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1 @@
+Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
\ No newline at end of file
diff --git a/common/acct-svc.c b/common/acct-svc.c
new file mode 100755 (executable)
index 0000000..ed7679d
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+#include "acct-svc.h"
+
+static bool __cal_account_get_capability_callback(account_capability_type_e capability_type, account_capability_state_e capability_value, void* user_data)
+{
+       c_retvm_if(!user_data, FALSE, "user_data is null");
+
+       bool *has_calendar = user_data;
+
+       if (capability_type == ACCOUNT_CAPABILITY_CALENDAR && capability_value == ACCOUNT_CAPABILITY_ENABLED)
+       {
+               *has_calendar = TRUE;
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+static void __cal_account_free_acct(struct _acct *at)
+{
+       c_retm_if(!at, "at is null");
+
+       free(at->name);
+       free(at->icon);
+       free(at);
+}
+
+static bool __cal_account_get_callback(account_h handle, void* user_data)
+{
+       c_retvm_if(!handle, FALSE, "handle is null");
+       c_retvm_if(!user_data, FALSE, "user_data is null");
+
+       Eina_List** account_list = user_data;
+       struct _acct *at = NULL;
+       char *text;
+       account_error_e ret;
+       bool has_calendar = FALSE;
+
+       ret = account_get_capability(handle, __cal_account_get_capability_callback, &has_calendar);
+       c_retvm_if(ret != ACCOUNT_ERROR_NONE, FALSE, "account_get_capability is failed(%x)", ret);
+
+       if (has_calendar == TRUE)
+       {
+               at = calloc(1, sizeof(struct _acct));
+               c_retvm_if(!at, FALSE,"calloc is failed");
+       }
+       else
+               return FALSE;
+
+       text = NULL;
+       ret = account_get_email_address(handle, &text);
+       if (ret != ACCOUNT_ERROR_NONE)
+       {
+               ERR("account_get_email_address is failed(%x)", ret);
+               __cal_account_free_acct(at);
+               return FALSE;
+       }
+       if (text)
+               at->name = strdup(text);
+
+       text = NULL;
+       ret = account_get_icon_path(handle, &text);
+       if (ret != ACCOUNT_ERROR_NONE)
+       {
+               ERR("account_get_icon_path is failed(%x)", ret);
+               __cal_account_free_acct(at);
+               return FALSE;
+       }
+       if (text)
+               at->icon = strdup(text);
+
+       ret = account_get_account_id(handle, &at->id);
+       if (ret != ACCOUNT_ERROR_NONE)
+       {
+               ERR("account_get_account_id is failed(%x)", ret);
+               __cal_account_free_acct(at);
+               return FALSE;
+       }
+
+       *account_list = eina_list_append(*account_list, at);
+
+       return TRUE;
+}
+
+Eina_List* cal_account_svc_get_account_list(void)
+{
+       CAL_FN_START;
+
+       Eina_List *account_list = NULL;
+       account_error_e ret;
+
+       ret = account_foreach_account_from_db(__cal_account_get_callback, &account_list);
+       if (ret != ACCOUNT_ERROR_NONE)
+       {
+               ERR("account_foreach_account_from_db is failed(%x)", ret);
+
+               CAL_FN_END;
+
+               return NULL;
+       }
+
+       CAL_FN_END;
+
+       return account_list;
+}
+
+void cal_account_svc_free_account_list(Eina_List **h)
+{
+       Eina_List *l;
+       struct _acct *at;
+
+       if (!h || !*h)
+               return;
+
+       EINA_LIST_FOREACH(*h, l, at)
+       {
+               if (at)
+               {
+                       free(at->name);
+                       free(at->icon);
+                       free(at);
+               }
+       }
+
+       *h = eina_list_free(*h);
+}
+
+char* cal_account_svc_get_account_icon_path(int account_id)
+{
+       account_error_e ret;
+       account_h account;
+       char* text = NULL;
+       char* icon_path = NULL;
+
+       ret = account_create(&account);
+       c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_create is failed(%d)", ret);
+
+       ret = account_query_account_by_account_id(account_id, &account);
+       if (ret != ACCOUNT_ERROR_NONE)
+       {
+               ERR("account_query_account_by_account_id is failed(%x)", ret);
+
+               ret = account_destroy(account);
+               c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_destroy is failed(%d)", ret);
+
+               return NULL;
+       }
+
+       ret = account_get_icon_path(account, &text);
+       if (ret != ACCOUNT_ERROR_NONE)
+       {
+               ERR("account_get_icon_path is failed(%x)", ret);
+
+               ret = account_destroy(account);
+               c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_destroy is failed(%d)", ret);
+
+               return NULL;
+       }
+
+       if (text)
+               icon_path = strdup(text);
+
+       ret = account_destroy(account);
+       c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_destroy is failed(%d)", ret);
+
+       return icon_path;
+}
+
diff --git a/common/cal-svc.c b/common/cal-svc.c
new file mode 100755 (executable)
index 0000000..c386bb1
--- /dev/null
@@ -0,0 +1,510 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include "cld.h"
+
+static Calendar_color def_color[] = {
+       {90, 167, 48, 255,},
+       {221, 129, 0, 255,},
+       {0, 182, 252, 255,},
+       {122, 52, 122, 255,},
+       {22, 139, 121, 255,},
+       {40, 81, 163, 255,},
+};
+
+int calendar_svc_get_month_event_check(int account_id, time_t startdate, time_t enddate, int *day_flag);
+API int  calendar_svc_get_month_event_list_by_period (int account_id, time_t startdate, time_t enddate, cal_iter **iter);
+
+static void __cal_calendar_svc_free_cslist(Eina_List **h)
+{
+       cal_struct *cs;
+       Eina_List *l;
+
+       if (!h || !*h)
+               return;
+
+       EINA_LIST_FOREACH(*h, l, cs) {
+               CALENDAR_SVC_STRUCT_FREE(&cs);
+       }
+       *h = eina_list_free(*h);
+}
+
+static void __cal_calendar_svc_free_tmlist(Eina_List **h)
+{
+       struct tmnode *tm;
+       Eina_List *l;
+
+       if (!h || !*h)
+               return;
+
+       EINA_LIST_FOREACH(*h, l, tm)
+       {
+               free(tm);
+       }
+       *h = eina_list_free(*h);
+}
+
+static inline struct tmnode* __cal_calendar_svc_get_tmnode(time_t s, time_t e, int rp, cal_struct *cs)
+{
+       struct tmnode *tm;
+
+       tm = malloc(sizeof(struct tmnode));
+       if (!tm)
+               return NULL;
+
+       tm->st = s;
+       tm->et = e;
+       tm->repeat = rp;
+       tm->cs = cs;
+
+       return tm;
+}
+
+static int __cal_calendar_svc_get_event_list(int acct_id, time_t st, time_t et, Eina_List **csl, Eina_List **tml)
+{
+       int r;
+       cal_iter *it;
+       cal_struct *cs;
+       cal_struct *cur;
+       time_t lst, let; // not real time_t
+       struct tmnode *tm;
+       time_t s, e, tmp;
+       int rp;
+       struct tm lstm={0,};
+       struct tm letm={0,};
+       struct tm stm = {0,};
+       struct tm etm = {0,};
+
+       it = NULL;
+       r = CALENDAR_SVC_GET_EVENT_LIST_BY_PERIOD(acct_id, st, et, &it);
+       if (r != CAL_SUCCESS)
+               return -1;
+
+       cur = NULL;
+       while (CALENDAR_SVC_ITER_NEXT(it) == CAL_SUCCESS) {
+               cs = NULL;
+               r = CALENDAR_SVC_ITER_GET_INFO(it, &cs);
+               if (r != CAL_SUCCESS)
+                       break;
+
+               rp = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM);
+               lst = let = 0;
+               localtime_r(&st,&stm);
+               localtime_r(&et,&etm);
+               memset(&lstm,0x00,sizeof(struct tm));
+               memset(&letm,0x00,sizeof(struct tm));
+
+               while (CALENDAR_SVC_UTIL_NEXT_VAILD_EVENT_TM(cs,
+                                       &stm, &etm, &lstm, &letm) == CAL_SUCCESS) {
+                       s = mktime(&lstm);
+                       e = mktime(&letm);
+
+                       if (s == e)
+                               tmp = e + 1;
+                       else
+                               tmp = e;
+
+                       if( (s <= et) && (tmp >= st)){
+                               if (cs != cur) {
+                                       cur = cs;
+                                       *csl = eina_list_append(*csl, cs);
+                               }
+
+                               tm = __cal_calendar_svc_get_tmnode(s, e, rp, cur);
+                               if (tm)
+                                       *tml = eina_list_append(*tml, tm);
+                       }
+               }
+       }
+       CALENDAR_SVC_ITER_REMOVE(&it);
+
+       return 0;
+}
+
+struct calsvc* _calendar_svc_get_event(int acct_id, time_t st, time_t et)
+{
+       CAL_FN_START;
+
+       int r;
+       struct calsvc *c;
+
+       CAL_CALLOC(c, 1, struct calsvc);
+
+       r = __cal_calendar_svc_get_event_list(acct_id, st, et, &c->cslist, &c->tmlist);
+       if (r)
+       {
+               CALENDAR_SVC_FREE_CS(&c);
+               return NULL;
+       }
+
+       CAL_FN_END;
+
+       return c;
+}
+
+int* _calendar_svc_get_simple_cs(int acct_id, time_t st, time_t et)
+{
+       CAL_FN_START;
+
+       int r;
+       int *month;
+
+       CAL_CALLOC(month, 31, int);
+
+       r = calendar_svc_get_month_event_check ( acct_id, st, et, month);
+
+       CAL_FN_END;
+
+       return month;
+}
+
+void _calendar_svc_free_cs(struct calsvc **csv)
+{
+       struct calsvc *c;
+
+       if (!csv || !*csv)
+               return;
+
+       c = *csv;
+
+       __cal_calendar_svc_free_cslist(&c->cslist);
+       __cal_calendar_svc_free_tmlist(&c->tmlist);
+       free(c);
+
+       *csv = NULL;
+}
+
+void _calendar_svc_free_cslist(Eina_List **h)
+{
+       return __cal_calendar_svc_free_cslist(h);
+}
+
+int _calendar_svc_get_account_visibility(int account_id)
+{
+       cal_struct* cs = NULL;
+       Eina_List* list = NULL;
+       Eina_List* l = NULL;
+       int r = 0;
+
+       list = CALENDAR_SVC_GET_CALENDARS(account_id);
+       EINA_LIST_FOREACH(list,l,cs)
+       {
+               r = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_TABLE_INT_VISIBILITY);
+               if(r == 1)
+                       break;
+       }
+       if(r != 0 && r!=1)
+       {
+               return -1;
+       }
+       return r;
+}
+
+void _calendar_svc_set_account_visibility(int account_id, int value)
+{
+       cal_struct* cs = NULL;
+       Eina_List* list = NULL;
+       Eina_List* l = NULL;
+       int r = 0;
+
+       list = CALENDAR_SVC_GET_CALENDARS(account_id);
+       EINA_LIST_FOREACH(list,l,cs)
+       {
+               r = CALENDAR_SVC_STRUCT_SET_INT(cs, CAL_TABLE_INT_VISIBILITY, value);
+               if(r != 0)
+               {
+                       return;
+               }
+
+               r = CALENDAR_SVC_UPDATE(cs);
+               if(r != 0)
+               {
+                       return;
+               }
+       }
+}
+
+void _calendar_svc_set_calendar_visibility(cal_struct* cs, int value)
+{
+       int r = 0;
+       int account_id = 0;
+       int cal_id = 0;
+
+       r = CALENDAR_SVC_STRUCT_SET_INT(cs, CAL_TABLE_INT_VISIBILITY, value);
+       if(r)
+       {
+               DBG("\n calendar_svc_struct_set_int fail : %d \n", r);
+               return;
+       }
+       account_id = CALENDAR_SVC_STRUCT_GET_INT(cs,CAL_TABLE_INT_ACCOUNT_ID);
+       cal_id = CALENDAR_SVC_STRUCT_GET_INT(cs,CAL_TABLE_INT_INDEX);
+       r = CALENDAR_SVC_UPDATE(cs);
+       if(r != 0)
+       {
+               DBG("\n calendar_svc_update fail : %d \n", r);
+               return;
+       }
+}
+
+int _calendar_svc_get_calendar_visibility(cal_struct* cs)
+{
+       int r = 0;
+       int account_id = 0;
+       int cal_id = 0;
+
+       r = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_TABLE_INT_VISIBILITY);
+       account_id = CALENDAR_SVC_STRUCT_GET_INT(cs,CAL_TABLE_INT_ACCOUNT_ID);
+       cal_id = CALENDAR_SVC_STRUCT_GET_INT(cs,CAL_TABLE_INT_INDEX);
+       return r;
+}
+
+//cal_calendar_svc_find_event is used only in alarm call back
+Eina_List* _calendar_svc_find_event(int acct_id, const char *field, const void *val)
+{
+       Eina_List *csl;
+       int r;
+       cal_struct *cs;
+       cal_iter *it;
+       time_t t = time(NULL);
+
+       struct tm tm;
+       struct tm* tmp;
+
+       tmp = localtime_r((const time_t*)&t, &tm);
+       if(!tmp)
+       {
+               ERR("localtime_r return null");
+               return NULL;
+       }
+
+       it = NULL;
+       r = CALENDAR_SVC_FIND_EVENT_LIST(acct_id, field, val, &it);
+       if (r != CAL_SUCCESS)
+               return NULL;
+
+       csl = NULL;
+       while (CALENDAR_SVC_ITER_NEXT(it) == CAL_SUCCESS) {
+               cs = NULL;
+               r = CALENDAR_SVC_ITER_GET_INFO(it, &cs);
+               if (r != CAL_SUCCESS)
+                       break;
+
+               csl = eina_list_append(csl, cs);
+       }
+
+       CALENDAR_SVC_ITER_REMOVE(&it);
+
+       return csl;
+}
+
+Eina_List* _calendar_svc_get_calendars(int acct_id)
+{
+       Eina_List *csl;
+       int r;
+       cal_iter *it=NULL;
+       cal_struct *cs=NULL;
+
+       it = NULL;
+       r = CALENDAR_SVC_GET_ALL(acct_id, 0, CAL_STRUCT_CALENDAR, &it);
+       if (r != CAL_SUCCESS)
+       {
+               DBG("calendar_svc_get_all fail : %d \n",r);
+               return NULL;
+       }
+
+       csl = NULL;
+       while (CALENDAR_SVC_ITER_NEXT(it) == CAL_SUCCESS) {
+               cs = NULL;
+               r = CALENDAR_SVC_ITER_GET_INFO(it, &cs);
+               if (r != CAL_SUCCESS)
+               {
+                       DBG("calendar_svc_iter_get_info fail : %d \n",r);
+                       break;
+               }
+
+               csl = eina_list_append(csl, cs);
+       }
+
+       CALENDAR_SVC_ITER_REMOVE(&it);
+
+       return csl;
+}
+
+Eina_List* _calendar_svc_get_calendars_with_account(int account_id, void* at)
+{
+       Eina_List *csl;
+       int r;
+       cal_iter *it=NULL;
+       cal_struct *cal=NULL;
+       struct _cs* cs = NULL;
+
+       it = NULL;
+       r = CALENDAR_SVC_GET_ALL(account_id, 0, CAL_STRUCT_CALENDAR, &it);
+       if (r != CAL_SUCCESS)
+               return NULL;
+
+       csl = NULL;
+       while (CALENDAR_SVC_ITER_NEXT(it) == CAL_SUCCESS) {
+               cal = NULL;
+               cs = NULL;
+               r = CALENDAR_SVC_ITER_GET_INFO(it, &cal);
+               if (r != CAL_SUCCESS)
+                       break;
+               CAL_CALLOC(cs, 1, struct _cs);
+               cs->cs = cal;
+               cs->at = at;
+               csl = eina_list_append(csl, cs);
+       }
+
+       CALENDAR_SVC_ITER_REMOVE(&it);
+       return csl;
+}
+
+void _calendar_svc_set_calendar_color(cal_struct* cal, Calendar_color* color )
+{
+       char buf[16] = {0,};
+       int r;
+       snprintf(buf, sizeof(buf), "%d.%d.%d.%d", color->red, color->green, color->blue, color->alpha);
+
+       r = CALENDAR_SVC_STRUCT_SET_STR(cal, CAL_TABLE_TXT_COLOR, buf);
+       if (r != CAL_SUCCESS)
+       {
+               ERR("CALENDAR_SVC_STRUCT_SET_STR return %d", r);
+               return;
+       }
+
+       r = CALENDAR_SVC_UPDATE(cal);
+       if (r != CAL_SUCCESS)
+       {
+               ERR("calendar_svc_update return %d", r);
+               return;
+       }
+}
+
+void _calendar_svc_get_calendar_color(cal_struct* cal, Calendar_color* calendar_color )
+{
+       if(!cal || !calendar_color)
+       {
+               ERR("parameter is NULL");
+               return;
+       }
+
+       char* calendar = NULL;
+       char* color = NULL;
+       char* token = NULL;
+       char* temp = NULL;
+       int index = 0;
+
+       calendar = CALENDAR_SVC_STRUCT_GET_STR(cal, CAL_TABLE_TXT_COLOR);
+       if(calendar)
+               color = strdup(calendar);
+       else
+       {
+               ERR("CALENDAR_SVC_STRUCT_GET_STR return NULL");
+       }
+
+       if(CAL_STRLEN(color) > 8)
+       {
+               token = strtok_r(color, ".", &temp);
+               if(token)
+                       calendar_color->red = atoi(token);
+               else
+               {
+                       calendar_color->red = 0;
+                       ERR("color : %s, token is NULL", calendar);
+               }
+
+               token = strtok_r(NULL, ".", &temp);
+               if(token)
+                       calendar_color->green = atoi(token);
+               else
+               {
+                       calendar_color->green = 0;
+                       ERR("color : %s, token is NULL", calendar);
+               }
+
+               token = strtok_r(NULL, ".", &temp);
+               if(token)
+                       calendar_color->blue = atoi(token);
+               else
+               {
+                       calendar_color->blue = 0;
+                       ERR("color : %s, token is NULL", calendar);
+               }
+
+               token = strtok_r(NULL, ".", &temp);
+               if(token)
+                       calendar_color->alpha = atoi(token);
+               else
+               {
+                       calendar_color->alpha = 255;
+                       ERR("color : %s, token is NULL", calendar);
+               }
+       }
+       else
+       {
+               index = CALENDAR_SVC_STRUCT_GET_INT(cal, CAL_TABLE_INT_INDEX)%6;
+
+               *calendar_color = def_color[index];
+
+               CALENDAR_SVC_SET_CALENDAR_COLOR(cal, def_color+index);
+       }
+
+       free(color);
+}
+
+void _calendar_svc_add_event_changed_callback(void(*callback)(void *), void *user_data)
+{
+       c_retm_if(!callback, "callback is null");
+       c_retm_if(!user_data, "user_data is null");
+
+       int ret = calendar_svc_subscribe_change(callback, user_data);
+       c_retm_if(ret!= CAL_SUCCESS, "calendar_svc_subscribe_change() is failed");
+}
+
+void _calendar_svc_del_event_changed_callback(void(*callback)(void *))
+{
+       c_retm_if(!callback, "callback is null");
+
+       int ret = calendar_svc_unsubscribe_change(callback);
+       c_retm_if(ret!= CAL_SUCCESS, "calendar_svc_unsubscribe_change() is failed");
+}
+
+void _calendar_svc_add_calendar_changed_callback(const char *type, void(*callback)(void *), void *user_data)
+{
+       c_retm_if(!callback, "callback is null");
+       c_retm_if(!user_data, "user_data is null");
+
+       int ret = calendar_svc_subscribe_db_change(type, callback, user_data);
+       c_retm_if(ret!= CAL_SUCCESS, "calendar_svc_subscribe_db_change() is failed");
+}
+
+void _calendar_svc_del_calendar_changed_callback(const char *type, void(*callback)(void *))
+{
+       c_retm_if(!callback, "callback is null");
+
+       int ret = calendar_svc_unsubscribe_db_change(type, callback);
+       c_retm_if(ret!= CAL_SUCCESS, "calendar_svc_unsubscribe_db_change() is failed");
+}
diff --git a/common/common.c b/common/common.c
new file mode 100755 (executable)
index 0000000..1637a51
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+#include "cld.h"
+
+#ifdef CAL_TIMECHECK
+double cal_set_start_time(void)
+{
+       struct timeval tv;
+       double curtime;
+
+       gettimeofday(&tv, NULL);
+       curtime = tv.tv_sec * 1000 + (double)tv.tv_usec/1000;
+       return curtime;
+}
+
+double cal_exec_time(double start, double correction)
+{
+       double end = cal_set_start_time();
+       return (end - start - correction);
+}
+
+double cal_init_time(double correction)
+{
+       double temp_t;
+       temp_t = cal_set_start_time();
+       return cal_exec_time(temp_t, correction);
+}
+#endif//CAL_TIMECHECK
\ No newline at end of file
diff --git a/common/external-ug.c b/common/external-ug.c
new file mode 100755 (executable)
index 0000000..ddd7774
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+
+#include "cld.h"
+#include "external-ug.h"
+
+static void __cal_ug_destroy_callback(struct ui_gadget *ug, void *priv)
+{
+       c_retm_if(!ug, "ug is null");
+
+       ug_destroy(ug);
+}
+
+static void __cal_ug_layout_callback(struct ui_gadget *ug, enum ug_mode mode, void *priv)
+{
+       c_retm_if(!ug, "ug is null");
+       c_retm_if(mode != UG_MODE_FULLVIEW, "mode is invaild");
+
+       Evas_Object *base = ug_get_layout(ug);
+       if (!base) {
+               ERR("ug_get_layout() returned null");
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_win_resize_object_add(ug_get_window(), base);
+               evas_object_show(base);
+               break;
+       default:
+               break;
+       }
+}
+
+static void __cal_ug_result_callback(struct ui_gadget *ug, bundle *res, void *priv)
+{
+       c_retm_if(!ug, "ug is null");
+}
+
+void cal_launch_ug(bundle *bd, char *ug_name, struct ug_cbs *cbs)
+{
+       CAL_FN_START;
+
+       c_retm_if(!bd, "bd is null");
+       c_retm_if(!ug_name, "ug_name is null");
+
+       struct ui_gadget *ug;
+       struct ug_cbs uc;
+
+       if (NULL == cbs) {
+               uc.destroy_cb = __cal_ug_destroy_callback;
+               uc.layout_cb = __cal_ug_layout_callback;
+               uc.result_cb = __cal_ug_result_callback;
+               uc.priv = NULL;
+       } else {
+               if (NULL == cbs->destroy_cb)
+                       uc.destroy_cb = __cal_ug_destroy_callback;
+               else
+                       uc.destroy_cb = cbs->destroy_cb;
+
+               if (NULL == cbs->layout_cb)
+                       uc.layout_cb = __cal_ug_layout_callback;
+               else
+                       uc.layout_cb = cbs->layout_cb;
+
+               if (NULL == cbs->result_cb)
+                       uc.result_cb = __cal_ug_result_callback;
+               else
+                       uc.result_cb = cbs->result_cb;
+
+               if (NULL == cbs->priv)
+                       uc.priv = NULL;
+               else
+                       uc.priv = cbs->priv;
+       }
+
+       ug = ug_create(NULL, ug_name, UG_MODE_FULLVIEW, bd, &uc);
+       if (!ug)
+               ERR("ug create error");
+}
+
+void cal_launch_ug_with_var(char *ug_name, struct ug_cbs *cbs,...)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ug_name, "ug_name is null");
+
+       char *key = NULL;
+       char *val = NULL;
+       bundle *bd = bundle_create();
+       c_retm_if(!bd, "bd is null");
+
+       va_list ap;
+       va_start(ap, cbs);
+       while (CAL_TRUE) {
+               key = va_arg(ap, char *);
+               val = va_arg(ap, char *);
+
+               if (!key || !val) {
+                       break;
+               }
+
+
+               bundle_add(bd, key, val);
+       }
+
+       va_end(ap);
+
+       cal_launch_ug(bd, ug_name, cbs);
+
+       bundle_free(bd);
+}
+
+
diff --git a/common/util-efl.c b/common/util-efl.c
new file mode 100755 (executable)
index 0000000..b495d1b
--- /dev/null
@@ -0,0 +1,813 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <Ecore_X.h>
+#include <unicode/uloc.h>
+#include <unicode/udat.h>
+#include <unicode/udatpg.h>
+
+#include "cld.h"
+
+extern int u_strlen(UChar*);
+extern void u_austrncpy(char*, UChar*, int);
+extern void u_uastrncpy(UChar*, char*, int);
+
+static UDateTimePatternGenerator *pattern_generator = NULL;
+static pthread_mutex_t mutex_lock = PTHREAD_MUTEX_INITIALIZER;
+static UErrorCode status = U_ZERO_ERROR;
+static int pattern_generator_reference_counter = 0;
+
+static const char *_icons[] = {
+       [CI_EDIT] = "01_navi_icon_edit.png",
+       [CI_NEW] = "01_navi_icon_new.png",
+       [CI_DEL] = "01_navi_icon_delete.png",
+       [CI_PHOTO] = "00_list_photo_default.png",
+};
+static char _partbuf[1024];
+static char _textbuf[1024];
+static char _titlebuf[1024];
+static char _sigbuf[1024];
+
+Eina_Bool cal_util_black_theme_check()
+{
+       const char *curr_theme = elm_theme_get(NULL);
+
+       if (curr_theme)
+       {
+               return (strstr(curr_theme,"black")?EINA_TRUE:EINA_FALSE);
+       }
+
+       return EINA_FALSE;
+}
+
+Evas_Object* cal_util_add_bg(Evas_Object *obj, Eina_Bool is_window)
+{
+       CAL_FN_START;
+
+       Evas_Object *bg;
+       CAL_ASSERT(obj);
+       bg = elm_bg_add(obj);
+       if (!bg)
+               return NULL;
+
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if (is_window)
+               elm_win_resize_object_add(obj, bg);
+       else
+               elm_object_style_set(bg, "group_list");
+
+       evas_object_show(bg);
+
+       CAL_FN_END;
+
+       return bg;
+}
+
+Evas_Object* cal_util_add_layout(Evas_Object *win, const char *g)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!win, NULL, "win is null");
+
+       Eina_Bool r;
+       Evas_Object *eo = elm_layout_add(win);
+       c_retvm_if(!eo, NULL, "elm_layout_add returned null");
+
+       if (g) {
+               r = elm_layout_file_set(eo, EDJ_FILE, g);
+               c_warn_if(r == EINA_FALSE, "elm_layout_file_set is failed");
+       }
+       else {
+               r = elm_layout_theme_set(eo, "layout", "application", "default");
+               c_warn_if(r == EINA_FALSE, "elm_layout_theme_set is failed");
+       }
+
+       if (r == EINA_FALSE) {
+               evas_object_del(eo);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(eo);
+
+       CAL_FN_END;
+
+       return eo;
+}
+
+Evas_Object* cal_util_add_rectangle(Evas_Object *p)
+{
+       Evas_Object *r;
+
+       r = evas_object_rectangle_add(evas_object_evas_get(p));
+       CAL_ASSERT(r);
+
+       evas_object_show(r);
+       return r;
+}
+
+static void cal_util_delete_window(void *data, Evas_Object *obj, void *event)
+{
+       elm_exit();
+}
+
+Evas_Object* cal_util_add_window(const char *name, Evas_Coord* w, Evas_Coord* h)
+{
+       CAL_FN_START;
+
+       Evas_Object *eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+       c_retvm_if(!eo, NULL, "elm_win_add returned null");
+
+       Evas_Coord width, height;
+
+       elm_win_title_set(eo, name);
+       elm_win_borderless_set(eo, EINA_TRUE);
+
+       /*For calendar ring, window delete callback is not needed.*/
+       if (strcmp(name, CALENDAR_RING))
+               evas_object_smart_callback_add(eo, "delete,request", cal_util_delete_window, NULL);
+
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &width, &height);
+       evas_object_resize(eo, width, height);
+
+       elm_win_conformant_set(eo, EINA_TRUE);
+       elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW);
+
+       if (w && h) {
+               *w = width;
+               *h = height;
+       }
+
+       CAL_FN_END;
+
+       return eo;
+}
+
+Evas_Object* cal_util_add_icon(Evas_Object *p, enum cld_icon i)
+{
+       Eina_Bool r;
+       Evas_Object *ic;
+
+       CAL_ASSERT(p);
+
+       if (i < 0 || i >= CI_MAX)
+               return NULL;
+
+       ic = elm_icon_add(p);
+       if (!ic)
+               return NULL;
+
+       r = elm_icon_file_set(ic, EDJ_FILE, _icons[i]);
+       if (!r) {
+               evas_object_del(ic);
+               return NULL;
+       }
+
+       evas_object_size_hint_align_set(ic, 0.5, 0.5);
+
+       return ic;
+}
+
+Evas_Object* cal_util_add_icon_button(Evas_Object *p, enum cld_icon i)
+{
+       Evas_Object *ic;
+       Evas_Object *bt;
+
+       CAL_ASSERT(p);
+
+       ic = cal_util_add_icon(p, i);
+       if (!ic)
+               return NULL;
+
+       evas_object_size_hint_min_set(ic, 34, 34);
+
+       bt = elm_button_add(p);
+       if (!bt) {
+               evas_object_del(ic);
+               return NULL;
+       }
+
+       evas_object_size_hint_min_set(bt, 50, 50);
+
+       elm_object_content_set(bt, ic);
+
+       return bt;
+}
+
+char* cal_util_get_part_text(const char *fmt, int pos)
+{
+       snprintf(_partbuf, sizeof(_partbuf), fmt, pos);
+       return _partbuf;
+}
+
+
+void cal_util_set_text(Evas_Object *obj, const char *part, const char *fmt, ...)
+{
+       va_list ap;
+
+       va_start(ap, fmt);
+       vsnprintf(_textbuf, sizeof(_textbuf), fmt, ap);
+       va_end(ap);
+
+       edje_object_part_text_set(obj, part, _textbuf);
+}
+
+int cal_util_connect_pattern_generator()
+{
+       pthread_mutex_lock(&mutex_lock);
+       if(pattern_generator_reference_counter == 0)
+       {
+               uloc_setDefault(getenv("LC_TIME"), &status);
+               if(!pattern_generator)
+                       pattern_generator = udatpg_open(uloc_getDefault(), &status);
+               if(!pattern_generator)
+               {
+                       ERR("udatpg_open fail : %s", u_errorName(status));
+                       pthread_mutex_unlock(&mutex_lock);
+                       return -1;
+               }
+       }
+
+       pattern_generator_reference_counter++;
+       pthread_mutex_unlock(&mutex_lock);
+
+       return 0;
+}
+
+int cal_util_disconnect_pattern_generator()
+{
+       pthread_mutex_lock(&mutex_lock);
+
+       if(pattern_generator_reference_counter == 1)
+       {
+               if(pattern_generator)
+                       udatpg_close(pattern_generator);
+               pattern_generator = NULL;
+       }
+
+       pattern_generator_reference_counter--;
+
+       pthread_mutex_unlock(&mutex_lock);
+
+       return 0;
+}
+
+
+UDate cal_util_get_u_date_from_time_t(time_t time)
+{
+       UDate date;
+       date = (UDate ) time*1000;  /* Equivalent to Date = ucal_getNow() in Milliseconds */
+       return date;
+}
+
+UDate cal_util_get_u_date_from_tm(const struct tm* tm)
+{
+       UDate date;
+       time_t time;
+
+       time = timelocal((struct tm*)tm);
+
+       date = (UDate ) time*1000;  /* Equivalent to Date = ucal_getNow() in Milliseconds */
+       return date;
+}
+
+static void __cal_util_generate_best_pattern(UChar *customSkeleton, const struct tm* tm)
+{
+       UErrorCode status = U_ZERO_ERROR;
+       UDateFormat *formatter;
+       UDate date;
+       UChar bestPattern[64] = {0,};
+       UChar formatted[64] = {0,};
+       char bestPatternString[128]={0,};
+       char formattedString[128] = {0,};
+       int32_t bestPatternCapacity, formattedCapacity;
+       int32_t bestPatternLength, formattedLength;
+       uloc_setDefault(getenv("LC_TIME"), &status);
+       const char* locale = uloc_getDefault();
+
+       bestPatternCapacity = (int32_t)(sizeof(bestPattern)/sizeof((bestPattern)[0]));
+       bestPatternLength = udatpg_getBestPattern(pattern_generator, customSkeleton, u_strlen(customSkeleton), bestPattern,   bestPatternCapacity, &status);
+
+       u_austrncpy(bestPatternString, bestPattern, 128);
+
+       date = cal_util_get_u_date_from_tm(tm);
+       formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, bestPattern, -1, &status);
+
+       formattedCapacity = (int32_t)(sizeof(formatted)/sizeof((formatted)[0]));
+       formattedLength = udat_format(formatter, date, formatted, formattedCapacity, NULL, &status);
+
+       u_austrncpy(formattedString, formatted, 128);
+
+       udat_close(formatter);
+
+       snprintf(_textbuf,1023,"%s",formattedString);
+}
+
+void cal_util_get_time_format_from_skeleton(const char* dateSkeleton, const char* timeSkeleton, const struct tm* tm)
+{
+       char skeleton[128]={'\0'};
+       UChar customSkeleton[64]={'\0'};
+       int dateSkeletonLength=0,timeSkeletonLength=0,skeletonLength=0;
+
+       if(dateSkeleton)
+       {
+               dateSkeletonLength = CAL_STRLEN(dateSkeleton);
+               CAL_STRNCPY(skeleton,dateSkeleton,dateSkeletonLength);
+       }
+
+       if(timeSkeleton)
+       {
+               timeSkeletonLength = CAL_STRLEN(timeSkeleton);
+               CAL_STRNCAT(skeleton,timeSkeleton,timeSkeletonLength);
+       }
+
+       skeletonLength = CAL_STRLEN(skeleton);
+
+       u_uastrncpy(customSkeleton, skeleton,skeletonLength);
+
+       __cal_util_generate_best_pattern(customSkeleton, tm);
+}
+
+void cal_util_set_time_text(Evas_Object *obj, const char *part, const char *date, const char* time,
+               const struct tm *tm)
+{
+       cal_util_get_time_format_from_skeleton(date, time, tm);
+
+       if (!CAL_STRCMP(part,"title/text"))
+       {
+               snprintf(_titlebuf, 1023,"%s",_textbuf);
+               edje_object_part_text_set(obj, part, _titlebuf);
+       }
+       else
+               edje_object_part_text_set(obj, part, _textbuf);
+}
+
+void cal_util_set_time_week_text(Evas_Object *obj, const char *part, const char *date, const char* time,
+               const struct tm *t, int start)
+{
+       c_retm_if(!obj, "obj is null.");
+       c_retm_if(!part, "part is null.");
+       c_retm_if(!t, "t is null.");
+
+       struct tm tm = *t;
+       char week_start[1024] = {0};
+       if (!CAL_STRCMP(part,"title/text")) {
+
+               tm.tm_mday -= CAL_UTIL_GET_WDAY(tm.tm_wday - start);
+               cal_util_get_time_format_from_skeleton(date, time, &tm);
+               snprintf(week_start, 1023, "%s", _textbuf);
+
+               tm.tm_mday += 7;
+               cal_util_get_time_format_from_skeleton(date, time, &tm);
+               snprintf(_titlebuf, 1023,"%s ~ %s", week_start, _textbuf);
+
+               edje_object_part_text_set(obj, part, _titlebuf);
+       }
+       else
+               edje_object_part_text_set(obj, part, _textbuf);
+}
+
+int cal_util_get_time_text(char* buf, int buf_size, const char *date, const char* time, const struct tm *tm)
+{
+       cal_util_get_time_format_from_skeleton(date, time, tm);
+       snprintf(buf, buf_size, "%s", _textbuf);
+       return CAL_STRLEN(_textbuf);
+}
+
+void cal_util_emit_signal(Evas_Object *obj, const char *fmt, ...)
+{
+       va_list ap;
+
+       va_start(ap, fmt);
+       vsnprintf(_sigbuf, sizeof(_sigbuf), fmt, ap);
+       va_end(ap);
+
+       edje_object_signal_emit(obj, _sigbuf, "prog");
+}
+
+Evas_Object* cal_util_add_separator(Evas_Object *box, const char *style)
+{
+       Evas_Object *sp;
+
+       if (!box || CAL_STRCMP(elm_object_widget_type_get(box), "box"))
+               return NULL;
+
+       sp = elm_separator_add(box);
+       if (sp) {
+               elm_separator_horizontal_set(sp, EINA_TRUE);
+               elm_object_style_set(sp, style);
+               evas_object_show(sp);
+               elm_box_pack_end(box, sp);
+       }
+
+       return sp;
+}
+
+Evas_Object* cal_util_add_scroller(Evas_Object *p)
+{
+       Evas_Object *sc;
+
+       sc = elm_scroller_add(p);
+       if (!sc)
+               return NULL;
+
+       elm_scroller_bounce_set(sc, EINA_FALSE, EINA_TRUE);
+       elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+
+       evas_object_show(sc);
+       return sc;
+}
+
+Evas_Object* cal_util_add_box(Evas_Object *p)
+{
+       Evas_Object *bx;
+
+       bx = elm_box_add(p);
+       if (!bx)
+               return NULL;
+
+       evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.0);
+       evas_object_show(bx);
+
+       return bx;
+}
+
+void cal_util_set_controlbar_button(Evas_Object *btn, char *label, char *style, void (*func) (void *data, Evas_Object *obj, void *event_info), void* data)
+{
+       CAL_ASSERT(btn);
+
+       elm_object_style_set(btn, style);
+       evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5);
+       elm_object_text_set(btn, label);
+       evas_object_smart_callback_add(btn, "clicked", func, data);
+       evas_object_show(btn);
+}
+
+static void __cal_util_edit_field_changed_callback(void *data, Evas_Object *obj, void *event_info) // This callback is for showing(hiding) X marked button.
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       if (elm_object_focus_get(data)) {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+               else
+                       elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       }
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void __cal_util_edit_field_focused_callback(void *data, Evas_Object *obj, void *event_info) // Focused callback will show X marked button and hide guidetext.
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void __cal_util_edit_field_unfocused_callback(void *data, Evas_Object *obj, void *event_info) // Unfocused callback will show guidetext and hide X marked button.
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       if (elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+
+       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+
+static void __cal_util_edit_field_eraser_clicked_callback(void *data, Evas_Object *obj, const char *emission, const char *source) // When X marked button is clicked, empty entry's contents.
+{
+       c_retm_if(!data, "data is null");
+
+       elm_entry_entry_set(data, "");
+}
+
+Evas_Object * cal_util_add_edit_field(Evas_Object *parent, const char *title, const char *guide, Eina_Bool single_line, Eina_Bool is_editable)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *layout = elm_layout_add(parent);
+       c_retvm_if(!layout, NULL, "layout is null");
+
+       if (title && title[0] != '\0') {
+               elm_layout_theme_set(layout, "layout", "editfield", "title");
+               elm_object_part_text_set(layout, "elm.text", title);
+       }
+       else
+               elm_layout_theme_set(layout, "layout", "editfield", "default");
+
+       Evas_Object *entry = elm_entry_add(parent);
+       c_retvm_if(!entry, layout, "entry is null");
+
+       elm_object_part_content_set(layout, "elm.swallow.content", entry);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if (guide && guide[0] != '\0')
+               elm_object_part_text_set(layout, "elm.guidetext", guide);
+
+       elm_entry_single_line_set(entry, single_line);
+       elm_entry_scrollable_set(entry, single_line);
+
+       if (is_editable)
+               elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm", __cal_util_edit_field_eraser_clicked_callback, entry);
+       else {
+               elm_entry_editable_set(entry, is_editable);
+               elm_object_signal_emit(layout, "elm,state,eraser,hide", "elm");
+       }
+
+       evas_object_smart_callback_add(entry, "changed", __cal_util_edit_field_changed_callback, layout);
+       evas_object_smart_callback_add(entry, "focused", __cal_util_edit_field_focused_callback, layout);
+       evas_object_smart_callback_add(entry, "unfocused", __cal_util_edit_field_unfocused_callback, layout);
+
+       evas_object_show(layout);
+
+       return layout;
+}
+
+static void __cal_util_searchbar_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       if (elm_object_focus_get(data)) {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+               else
+                       elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       }
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void __cal_util_searchbar_with_cancel_btn_focused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+
+       elm_object_signal_emit(data, "cancel,in", "");
+}
+
+static void __cal_util_searchbar_focused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void __cal_util_searchbar_eraser_clicked_callback(void *data, Evas_Object *obj, const char *emission, const char *source) // When X marked button is clicked, empty entry's contents.
+{
+       c_retm_if(!data, "data is null");
+
+       elm_entry_entry_set(data, "");
+}
+
+static void __cal_util_searchbar_cancel_btn_clicked_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *searchbar_layout = data;
+       Evas_Object *entry = elm_object_part_content_get(searchbar_layout, "elm.swallow.content");
+       c_retm_if(!entry, "entry is null");
+
+       evas_object_hide(obj);
+
+       elm_entry_input_panel_hide(entry);
+
+       elm_entry_entry_set(entry, NULL);
+
+       elm_object_focus_set(entry, EINA_FALSE);
+}
+
+static void __cal_util_searchbar_unfocused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       if (elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+
+       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+
+       elm_object_signal_emit(data, "cancel,out", "");
+}
+
+static void __cal_util_searchbar_symbol_clicked_callback(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       c_retm_if(!data, "data is null");
+
+       elm_object_focus_set(data, EINA_TRUE);
+}
+
+static void __cal_util_searchbar_bg_clicked_callback(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       c_retm_if(!data, "data is null");
+
+       elm_object_focus_set(data, EINA_TRUE);
+}
+
+Evas_Object * cal_util_add_searchbar(Evas_Object *parent, const char *text,  const char *guide, Eina_Bool cancel_button)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *searchbar_layout = elm_layout_add(parent);
+       c_retvm_if(!searchbar_layout, NULL, "searchbar_layout is null");
+
+       if (cancel_button)
+               elm_layout_theme_set(searchbar_layout, "layout", "searchbar", "cancel_button");
+       else
+               elm_layout_theme_set(searchbar_layout, "layout", "searchbar", "default");
+
+       Evas_Object *entry = elm_entry_add(searchbar_layout);
+       c_retvm_if(!entry, searchbar_layout, "entry is null");
+
+       evas_object_show(entry);
+
+       elm_entry_scrollable_set(entry, EINA_TRUE);
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_object_part_content_set(searchbar_layout, "elm.swallow.content", entry);
+
+       if (guide && strlen(guide))
+               elm_object_part_text_set(searchbar_layout, "elm.guidetext", guide);
+       else
+               elm_object_part_text_set(searchbar_layout, "elm.guidetext", S_("IDS_COM_BODY_SEARCH"));
+
+       if (text && strlen(text))
+               elm_object_text_set(entry, text);
+
+       if (cancel_button) {
+               Evas_Object *cancel_btn = elm_button_add(searchbar_layout);
+               c_retvm_if(!cancel_btn, searchbar_layout, "cancel_btn is null");
+
+               elm_object_part_content_set(searchbar_layout, "button_cancel", cancel_btn);
+               elm_object_style_set(cancel_btn, "searchbar/default");
+               elm_object_text_set(cancel_btn, S_("IDS_COM_SK_CANCEL"));
+
+               evas_object_smart_callback_add(entry, "focused", __cal_util_searchbar_with_cancel_btn_focused_callback, searchbar_layout);
+               evas_object_smart_callback_add(cancel_btn, "clicked", __cal_util_searchbar_cancel_btn_clicked_callback, searchbar_layout);
+
+       }
+       else {
+               evas_object_smart_callback_add(entry, "focused", __cal_util_searchbar_focused_callback, searchbar_layout);
+       }
+
+       evas_object_smart_callback_add(entry, "changed", __cal_util_searchbar_changed_callback, searchbar_layout);
+       evas_object_smart_callback_add(entry, "unfocused", __cal_util_searchbar_unfocused_callback, searchbar_layout);
+       elm_object_signal_callback_add(searchbar_layout, "elm,eraser,clicked", "elm", __cal_util_searchbar_eraser_clicked_callback, entry);
+       elm_object_signal_callback_add(searchbar_layout, "elm,bg,clicked", "elm", __cal_util_searchbar_bg_clicked_callback, entry);
+       elm_object_signal_callback_add(searchbar_layout, "elm,action,click", "", __cal_util_searchbar_symbol_clicked_callback, entry);
+
+       return searchbar_layout;
+}
+
+Evas_Object * cal_util_add_nocontents(Evas_Object *parent, const char *label)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *layout = elm_layout_add(parent);
+       c_retvm_if(!layout, NULL, "layout is null");
+
+       elm_layout_theme_set(layout, "layout", "nocontents", "full");
+
+       if (label && strlen(label))
+               elm_object_part_text_set(layout, "elm.text", label);
+
+       return layout;
+}
+
+Evas_Object * cal_util_add_controlbar(Evas_Object * parent)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *toolbar = elm_toolbar_add(parent);
+       c_retvm_if(!toolbar, NULL, "toolbar is null");
+
+       elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+       return toolbar;
+}
+
+static void __cal_util_popup_response_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(data);
+}
+
+Evas_Object * cal_util_add_popup(Evas_Object *parent, const char *title, const char *desc,
+       void (*callback_func)(void *data, Evas_Object *obj, void *ei), void *data, ...)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *popup = elm_popup_add(parent);
+       c_retvm_if(!popup, NULL, "popup is null");
+
+       if (data)
+               evas_object_data_set(popup, "data", data);
+
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if (title && strlen(title))
+               elm_object_part_text_set(popup, "title,text", title);
+
+       if (desc && strlen(desc))
+               elm_object_text_set(popup, desc);
+
+       va_list arg;
+       int i = 0;
+       Evas_Object *btn = NULL;
+       const char *label = NULL;
+       char part[16] = {0};
+
+       if (!callback_func)
+               callback_func = __cal_util_popup_response_callback;
+
+       va_start(arg, data);
+
+       while ((label = va_arg(arg, char*))) {
+               btn = elm_button_add(popup);
+               if (!btn) {
+                       ERR("btn is null");
+                       continue;
+               }
+
+               elm_object_text_set(btn, label);
+               snprintf(part, sizeof(part), "button%d", ++i);
+               elm_object_part_content_set(popup, part, btn);
+               evas_object_smart_callback_add(btn, "clicked", callback_func, popup);
+       }
+
+       va_end(arg);
+
+       if (!i)
+               elm_popup_timeout_set(popup, 3.0);
+
+       evas_object_show(popup);
+
+       return popup;
+}
+
+Evas_Object * cal_util_add_datetime(Evas_Object *parent, const char *title, struct tm *tm)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *layout = elm_layout_add(parent);
+       c_retvm_if(!layout, NULL, "layout is null");
+
+       Eina_Bool r = elm_layout_file_set(layout, EDJ_FILE, "dialoguegroup/datetime");
+       c_retvm_if(!r, NULL, "r is null");
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       Evas_Object *datetime = elm_datetime_add(layout);
+       c_retvm_if(!datetime, NULL, "datetime is null");
+
+       if (CAL_STRLEN(title))
+               elm_object_part_text_set(layout, "elm.text", title);
+
+       if (tm)
+               elm_datetime_value_set(datetime, (const struct tm *)tm);
+
+       elm_object_part_content_set(layout, "elm.icon", datetime);
+
+       return layout;
+}
diff --git a/common/util.c b/common/util.c
new file mode 100755 (executable)
index 0000000..69ed122
--- /dev/null
@@ -0,0 +1,443 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <vconf.h>
+
+#include "cld.h"
+
+#define LINEMAX 256
+#define LOGFILE "/tmp/calendar.log"
+#define SIN_TBL_S (sizeof(SIN_TBL)/sizeof(SIN_TBL[0]) - 1)
+
+static time_t cal_max;
+static time_t cal_min;
+
+static const float const SIN_TBL[] = {
+       0.0000f, 0.0174f, 0.0349f, 0.0523f, 0.0698f,
+       0.0872f, 0.1045f, 0.1219f, 0.1392f, 0.1564f,
+       0.1736f, 0.1908f, 0.2079f, 0.2249f, 0.2419f,
+       0.2588f, 0.2756f, 0.2924f, 0.3090f, 0.3256f,
+       0.3420f, 0.3584f, 0.3746f, 0.3907f, 0.4067f,
+       0.4226f, 0.4384f, 0.4540f, 0.4695f, 0.4848f,
+       0.5000f, 0.5150f, 0.5299f, 0.5446f, 0.5592f,
+       0.5736f, 0.5878f, 0.6018f, 0.6157f, 0.6293f,
+       0.6528f, 0.6561f, 0.6691f, 0.6820f, 0.6947f,
+       0.7071f, 0.7193f, 0.7314f, 0.7431f, 0.7547f,
+       0.7660f, 0.7772f, 0.7880f, 0.7986f, 0.8090f,
+       0.8191f, 0.8290f, 0.8387f, 0.8480f, 0.8571f,
+       0.8660f, 0.8746f, 0.8829f, 0.8910f, 0.8988f,
+       0.9063f, 0.9135f, 0.9205f, 0.9272f, 0.9336f,
+       0.9397f, 0.9455f, 0.9511f, 0.9563f, 0.9613f,
+       0.9659f, 0.9703f, 0.9744f, 0.9781f, 0.9816f,
+       0.9848f, 0.9877f, 0.9903f, 0.9926f, 0.9945f,
+       0.9962f, 0.9976f, 0.9986f, 0.9994f, 0.9998f,
+       1.0f
+};
+
+
+static int __cal_util_max_days[2][12] = {
+       { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
+       { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+};
+int cal_util_get_max_days(int tm_year, int tm_mon)
+{
+       while (tm_mon < 0) {
+               tm_year -= 1;
+               tm_mon += 12;
+       }
+
+       while (tm_mon > 11) {
+               tm_year += 1;
+               tm_mon -= 12;
+       }
+
+       tm_year = tm_year + 1900;
+
+       return __cal_util_max_days[(!(tm_year & 0x3) && (!(tm_year % 400)
+                               || (tm_year % 100)))][tm_mon];
+}
+
+static int __cal_util_get_cal_min(void)
+{
+       struct tm tm;
+       time_t t;
+
+       if (cal_min)
+               return cal_min;
+
+       t = time(NULL);
+       localtime_r(&t, &tm);
+
+       // 1902-1-1 00:00:00
+       tm.tm_year = 2;
+       tm.tm_mon = 0;
+       tm.tm_mday = 1;
+       tm.tm_hour = 0;
+       tm.tm_min = 0;
+       tm.tm_sec = 0;
+
+       cal_min = mktime(&tm);
+       if(cal_min == -1)
+               cal_min = 0;
+       CAL_ASSERT(cal_min);
+
+       return cal_min;
+}
+
+static int __cal_util_get_cal_max(void)
+{
+       struct tm tm;
+       time_t t;
+
+       if (cal_max)
+               return cal_max;
+
+       t = time(NULL);
+       localtime_r(&t, &tm);
+
+       // 2037-12-31 23:59:59
+       tm.tm_year = 137;
+       tm.tm_mon = 11;
+       tm.tm_mday = 31;
+       tm.tm_hour = 23;
+       tm.tm_min = 59;
+       tm.tm_sec = 59;
+
+       cal_max = mktime(&tm);
+       if(cal_max == -1)
+               cal_max = 0;
+       CAL_ASSERT(cal_max);
+
+       return cal_max;
+}
+
+time_t cal_util_get_max_time(void)
+{
+       return __cal_util_get_cal_max();
+}
+
+time_t cal_util_get_min_time(void)
+{
+       return __cal_util_get_cal_min();
+}
+
+int cal_util_update_tm_year(struct tm *t, int delta)
+{
+       time_t r;
+       struct tm tmp;
+
+       tmp = *t;
+
+       tmp.tm_year += delta;
+       if (tmp.tm_mon == 1 && tmp.tm_mday == 29)
+               tmp.tm_mday = cal_util_get_max_days(tmp.tm_year, tmp.tm_mon);
+
+       r = mktime(&tmp);
+       if (r == (time_t)-1)
+               return -1;
+
+       if (r < __cal_util_get_cal_min() || r > __cal_util_get_cal_max())
+               return -1;
+
+       *t = tmp;
+       return 0;
+}
+
+int cal_util_update_tm_month(struct tm *t, int delta)
+{
+       time_t r;
+       int max;
+       struct tm tmp;
+
+       tmp = *t;
+       tmp.tm_mon += delta;
+
+       while (tmp.tm_mon < 0) {
+               tmp.tm_year -= 1;
+               tmp.tm_mon += 12;
+       }
+
+       while (tmp.tm_mon > 11) {
+               tmp.tm_year += 1;
+               tmp.tm_mon -= 12;
+       }
+
+       max = cal_util_get_max_days(tmp.tm_year, tmp.tm_mon);
+       if (max < tmp.tm_mday)
+               tmp.tm_mday = max;
+
+       r = mktime(&tmp);
+       if (r == (time_t)-1)
+               return -1;
+
+       if (r < __cal_util_get_cal_min() || r > __cal_util_get_cal_max())
+               return -1;
+
+       *t = tmp;
+       return 0;
+}
+
+int cal_util_update_tm_day(struct tm *t, int delta)
+{
+       time_t r;
+       struct tm tmp;
+
+       tmp = *t;
+       tmp.tm_mday += delta;
+
+       r = mktime(&tmp);
+       if (r == (time_t)-1)
+               return -1;
+
+       if (r < __cal_util_get_cal_min() || r > __cal_util_get_cal_max())
+               return -1;
+
+       *t = tmp;
+       return 0;
+}
+
+int cal_util_update_tm_hour(struct tm* tm, int delta)
+{
+       struct tm t;
+       struct tm* returned_tm = NULL;
+       time_t time = 0;
+
+       time = mktime(tm);
+       time = time + (delta * 60*60);
+
+       returned_tm = localtime_r(&time, &t);
+       if(!returned_tm)
+       {
+               ERR("localtime is failed.");
+               return -1;
+       }
+       CAL_MEMCPY(tm, &t, struct tm);
+
+       return 0;
+}
+
+int cal_util_get_day_time_t(struct tm *t, time_t *st, time_t *et)
+{
+       c_retvm_if(!t, -1 , "t is null");
+       c_retvm_if(!st, -1 , "st is null");
+       c_retvm_if(!et, -1 , "et is null");
+
+       time_t _t;
+       struct tm tm = *t;
+
+       tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+
+       _t = mktime(&tm);
+       if (_t == (time_t) -1)
+               return -1;
+
+       *st = _t;
+       *et = _t + (24 * 60 * 60) - 1;
+
+       return 0;
+}
+
+int cal_util_get_week_time_t(struct tm *t, time_t *st, time_t *et, int start)
+{
+       c_retvm_if(!t, -1 , "t is null");
+       c_retvm_if(!st, -1 , "st is null");
+       c_retvm_if(!et, -1 , "et is null");
+
+       time_t _t;
+       struct tm tm = *t;
+
+       tm.tm_mday -= CAL_UTIL_GET_WDAY(tm.tm_wday - start);
+
+       tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+
+       _t = mktime(&tm);
+       if (_t == (time_t) -1)
+               return -1;
+
+       *st = _t;
+       *et = _t + (7 * 24 * 60 * 60) - 1;
+
+       return 0;
+}
+
+int cal_util_get_month_time_t(struct tm *t, time_t *st, time_t *et)
+{
+       c_retvm_if(!t, -1 , "t is null");
+       c_retvm_if(!st, -1 , "st is null");
+       c_retvm_if(!et, -1 , "et is null");
+
+       time_t s, e;
+       struct tm tm = *t;
+
+       tm.tm_mday = 1;
+       tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+
+       s = mktime(&tm);
+       if (s == (time_t) -1)
+               return -1;
+
+       tm.tm_mon++;
+       e = mktime(&tm);
+       if (e == (time_t) -1)
+               return -1;
+
+       *st = s;
+       *et = e - 3600;
+       return 0;
+}
+
+int cal_util_get_year_time_t(struct tm *t, time_t *st, time_t *et)
+{
+       c_retvm_if(!t, -1 , "t is null");
+       c_retvm_if(!st, -1 , "st is null");
+       c_retvm_if(!et, -1 , "et is null");
+
+       time_t s, e;
+       struct tm tm = *t;
+
+       tm.tm_mon = 0;
+       tm.tm_mday = 1;
+       tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+
+       s = mktime(&tm);
+       if (s == (time_t) -1)
+               return -1;
+
+       tm.tm_year++;
+       e = mktime(&tm);
+       if (e == (time_t) -1)
+               return -1;
+
+       *st = s;
+       *et = e - 1;
+
+       return 0;
+}
+
+float cal_util_nsin(float f)
+{
+       if(f < 0.0 && f > 1.0)
+               return 0.0;
+
+       return SIN_TBL[(int)(SIN_TBL_S * f)];
+}
+
+int cal_util_get_week_flag(char *week_s)
+{
+       int i;
+       int flag;
+
+       flag = 0;
+       if (6 < CAL_STRLEN(week_s)) {
+               for (i = 0; i < 7; i++) {
+                       if (week_s[i] == '1')
+                               flag |= (1 << i);
+               }
+       }
+
+       return flag;
+}
+
+int cal_util_get_timezone_info(char **timezone_path, char **timezone_city, char **timezone_offset)
+{
+       c_retvm_if(!timezone_path, -1, "timezone_path is null");
+       c_retvm_if(!timezone_city, -1, "timezone_city is null");
+       c_retvm_if(!timezone_offset, -1, "timezone_offset is null");
+
+       int value = 0;
+       char *text = NULL;
+
+       int ret = vconf_get_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, &value);
+       c_warn_if(ret, "vconf_get_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, &value) is failed");
+
+       if (value) {
+
+               text = vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH);
+               c_retvm_if(!text, -1, "vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH) is failed");
+
+               if (*timezone_path)
+                       free(*timezone_path);
+
+               *timezone_path = strdup(text);
+               c_retvm_if(!*timezone_path, -1, "timezone_path is null");
+
+
+               text = vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY);
+               c_retvm_if(!text, -1, "vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY) is failed");
+
+               if (*timezone_city)
+                       free(*timezone_city);
+
+               *timezone_city = strdup(text);
+               c_retvm_if(!*timezone_city, -1, "timezone_city is null");
+
+
+               text = vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET);
+               c_retvm_if(!text, -1, "vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET) is failed");
+
+               if (*timezone_offset)
+                       free(*timezone_offset);
+
+               *timezone_offset = g_strdup_printf("GMT%s",text);
+               c_retvm_if(!*timezone_offset, -1, "timezone_offset is null");
+       }
+       else {
+
+               text = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID);
+               c_retvm_if(!text, -1, "vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID) is failed");
+
+               if (*timezone_path)
+                       free(*timezone_path);
+
+               *timezone_path = strdup(text);
+               c_retvm_if(!*timezone_path, -1, "timezone_path is null");
+
+
+               text = vconf_get_str(VCONFKEY_SETAPPL_CITYNAME_INDEX_INT);
+               c_retvm_if(!text, -1, "vconf_get_str(VCONFKEY_SETAPPL_CITYNAME_INDEX_INT) is failed");
+
+               if (*timezone_city)
+                       free(*timezone_city);
+
+               *timezone_city = strdup(text);
+               c_retvm_if(!*timezone_city, -1, "timezone_city is null");
+
+               text = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_INT);
+               if (!text) {
+                       ERR("vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_INT) is failed");
+                       text = "+9";
+               }
+
+               if (*timezone_offset)
+                       free(*timezone_offset);
+
+               *timezone_offset = g_strdup_printf("GMT%s",text);
+               c_retvm_if(!*timezone_offset, -1, "timezone_offset is null");
+       }
+
+       return 0;
+}
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..64accf8
--- /dev/null
@@ -0,0 +1,9 @@
+SET(IMAGE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/images/${SELECTED_TARGET}")
+
+# Alarm ring tone
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/sounds DESTINATION ${RESDIR} FILES_MATCHING PATTERN "*.wav")
+
+ADD_SUBDIRECTORY(edc)
+
+#SET(IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/images/wvga")
+#ADD_SUBDIRECTORY(wvga)
diff --git a/data/edc/CMakeLists.txt b/data/edc/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..1e04b1d
--- /dev/null
@@ -0,0 +1,84 @@
+SET(INC_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/inc)
+SET(LAYOUT_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/layout)
+
+# Layout for black theme
+ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-black-theme.edj
+       COMMAND edje_cc -id ${IMAGE_DIR}
+       ${LAYOUT_SRC_DIR}/${PROJECT_NAME}-black-theme.edc
+       ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-black-theme.edj
+       DEPENDS
+       ${INC_SRC_DIR}/${SELECTED_TARGET}-black-inc.edc
+       ${LAYOUT_SRC_DIR}/${PROJECT_NAME}-black-theme.edc
+       ${LAYOUT_SRC_DIR}/inc.acct.edc
+       ${LAYOUT_SRC_DIR}/inc.edit.edc
+       ${LAYOUT_SRC_DIR}/inc.images.edc
+       ${LAYOUT_SRC_DIR}/inc.layouts.edc
+       ${LAYOUT_SRC_DIR}/inc.main.day.edc
+       ${LAYOUT_SRC_DIR}/inc.main.day.tb.edc
+       ${LAYOUT_SRC_DIR}/inc.main.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.cal.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.cal.weekly.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.weekly.edc
+       ${LAYOUT_SRC_DIR}/inc.main.tab.edc
+       ${LAYOUT_SRC_DIR}/inc.main.title.edc
+       ${LAYOUT_SRC_DIR}/inc.main.week.edc
+       ${LAYOUT_SRC_DIR}/inc.main.week.item.edc
+       ${LAYOUT_SRC_DIR}/inc.main.year.cal.edc
+       ${LAYOUT_SRC_DIR}/inc.main.year.edc
+       ${LAYOUT_SRC_DIR}/inc.part.edc
+       ${LAYOUT_SRC_DIR}/inc.ring.edc
+       ${LAYOUT_SRC_DIR}/inc.ring.image.edc
+)
+ADD_CUSTOM_TARGET(edj_build-hd DEPENDS ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-black-theme.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} edj_build-hd)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-black-theme.edj DESTINATION ${EDJDIR})
+
+# Layout for white theme
+ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-white-theme.edj
+       COMMAND edje_cc -id ${IMAGE_DIR}
+       ${LAYOUT_SRC_DIR}/${PROJECT_NAME}-white-theme.edc
+       ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-white-theme.edj
+       DEPENDS
+       ${INC_SRC_DIR}/${SELECTED_TARGET}-white-inc.edc
+       ${LAYOUT_SRC_DIR}/${PROJECT_NAME}-white-theme.edc
+       ${LAYOUT_SRC_DIR}/inc.acct.edc
+       ${LAYOUT_SRC_DIR}/inc.edit.edc
+       ${LAYOUT_SRC_DIR}/inc.images.edc
+       ${LAYOUT_SRC_DIR}/inc.layouts.edc
+       ${LAYOUT_SRC_DIR}/inc.main.day.edc
+       ${LAYOUT_SRC_DIR}/inc.main.day.tb.edc
+       ${LAYOUT_SRC_DIR}/inc.main.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.cal.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.cal.weekly.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.weekly.edc
+       ${LAYOUT_SRC_DIR}/inc.main.tab.edc
+       ${LAYOUT_SRC_DIR}/inc.main.title.edc
+       ${LAYOUT_SRC_DIR}/inc.main.week.edc
+       ${LAYOUT_SRC_DIR}/inc.main.week.item.edc
+       ${LAYOUT_SRC_DIR}/inc.main.year.cal.edc
+       ${LAYOUT_SRC_DIR}/inc.main.year.edc
+       ${LAYOUT_SRC_DIR}/inc.part.edc
+       ${LAYOUT_SRC_DIR}/inc.ring.edc
+       ${LAYOUT_SRC_DIR}/inc.ring.image.edc
+)
+ADD_CUSTOM_TARGET(edj_build DEPENDS ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-white-theme.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} edj_build)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-white-theme.edj DESTINATION ${EDJDIR})
+
+# Icon
+SET(ICON_NAME ${PKGNAME})
+ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/${ICON_NAME}.edj
+       COMMAND edje_cc -id ${IMAGE_DIR}
+       ${LAYOUT_SRC_DIR}/${ICON_NAME}.edc
+       ${CMAKE_BINARY_DIR}/${ICON_NAME}.edj
+       DEPENDS ${LAYOUT_SRC_DIR}/${ICON_NAME}.edc
+)
+ADD_CUSTOM_TARGET(icon_build DEPENDS ${CMAKE_BINARY_DIR}/${ICON_NAME}.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} icon_build)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${ICON_NAME}.edj DESTINATION ${ICONDIR})
+
+# Image
+INSTALL(FILES ${IMAGE_DIR}/all_calendar.png DESTINATION ${RESDIR}/icons)
+INSTALL(FILES ${IMAGE_DIR}/${PKGNAME}.png DESTINATION ${RESDIR}/icons/default/small)
\ No newline at end of file
diff --git a/data/edc/inc/hd-black-inc.edc b/data/edc/inc/hd-black-inc.edc
new file mode 100755 (executable)
index 0000000..4c94f6e
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+//retio defined
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define WIDTH_OF_HD (720.0*R_X)
+#define HEIGHT_OF_HD (1280.0*R_Y)
+//size
+
+//color
+#define COLOR_OF_LINE_FOR_ACCT 75 75 75 255
+#define COLOR_OF_BASE_OF_SELECTOR_BUTTON_FOR_ACCT 233 233 233 255
+
+#define COLOR_OF_TOP_LINE_FOR_DAY 195 192 179 255
+
+#define COLOR_OF_BASE_OF_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_HORIZEN_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_MIDDLE_LINE_FOR_TAB 224 219 209 255
+#define COLOR_OF_VERT_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_ON_TIME_LINE_FOR_TAB 212 144 26 255
+
+#define COLOR_OF_LIST_LINE_FOR_MONTH 195 192 179 255
+
+#define COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_TODAY_FOR_MONTH_CAL 255 200 0 40
+#define COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL 195 192 179 255
+#define COLOR_OF_CHECK_BASE_FOR_MONTH_CAL 127 126 126 255
+#define COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_LINE_FOR_MONTH_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_MAIN_TAB 249 249 249 150
+#define COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB 0 0 0 255
+#define COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB 255 255 255 255
+
+#define COLOR_OF_TODAY_FOR_YEAR_CAL 212 146 32 40
+#define COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_LINE_FOR_YEAR_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_RING 255 126 0 255
+#define COLOR_OF_DEFAULT_STOP_FOR_RING 255 74 22 255
+#define COLOR_OF_DEFAULT_PRESSED_FOR_RING 255 255 255 255
+
+//image
+#define LIST_PHOTO_DEFAUT "00_list_photo_default.png"
+#define DIALOG_EDIT_DEFAULT "01_dialoguegroup_edit_default.png"
+#define HEADER_ICON_ADD "01_header_icon_add.png"
+#define HEADER_ICON_DONE "01_header_icon_done.png"
+#define HEADER_ICON_OTHERS "01_header_icon_others.png"
+#define NAVI_ICON_DELETE "01_navi_icon_delete.png"
+#define NAVI_ICON_EDIT "01_navi_icon_edit.png"
+#define NAVI_ICON_NEW "01_navi_icon_new.png"
+#define MEMO_NOITEMS "49_memo_noitems.png"
+#define CALENDAR_BG_2 "57_calendar_bg2.png"
+#define CALENDAR_EVENT_BG_1 "57_calendar_event(1)_bg.png"
+#define CALENDAR_EVENT_BG_2 "57_calendar_event(2)_bg.png"
+#define CALENDAR_EVENT_BG_3 "57_calendar_event(3)_bg.png"
+#define CALENDAR_EVENT_BG_4 "57_calendar_event(4)_bg.png"
+#define CALENDAR_MONTH_VIEW_BG_1 "57_calendar_month_view(1)_bg.png"
+#define CALENDAR_SPIN_ICON_1 "57_calendar_spin_01_icon.png"
+#define CALENDAR_SPIN_ICON_2 "57_calendar_spin_02_icon.png"
+#define CALENDAR_TAB "57_calendar_tab.png"
+#define CALENDAR_TAB_FOCUS_BG "57_calendar_tab_focus_bg.png"
+#define CALENDAR_TAB_PRESS "57_calendar_tab_press.png"
+#define CALENDAR_TODAY_ICON "57_calendar_today_icon.png"
+#define CALENDAR_TODAY_ICON_PRESS "57_calendar_today_icon_press.png"
+#define CALENDAR_TODAY_ICON_2 "57_calendar_today_icon2.png"
+#define CALENDAR_WEEK_ARROW_FOCUS_ICON "57_calendar_week_arrow_focus_icon.png"
+#define CALENDAR_WEEK_ARROW_ICON "57_calendar_week_arrow_icon.png"
+#define CALENDAR_WEEK_VIEW_BG "57_calendar_week_view_bg.png"
+#define CALENDAR_WEEK_VIEW_PRESS "57_calendar_week_view_press.png"
+#define CALENDAR_YEAR_VIEW_BG "57_calendar_year_view_bg.png"
+#define ALL_CALENDAR "all_calendar.png"
+#define CALENDAR_SELSECTED "calendar_selected.png"
+#define NAVIBAR_ITEM_SEPARATOR "navibar_item_separator.png"
+#define NAVIBAR_ITEM_SEPARATOR_TEMP "navibar_item_separator_tmp.png"
+#define BG "P01_bg.png"
+#define CONTROL_TOP_BG "P01_control_top_bg.png"
+#define CONTROL_TOP_BG_TEMP "P01_control_top_bg_tmp.png"
+#define DAY_CURRENT_TIME "P01_day_current_time.png"
+#define EVENT "P01_event.png"
+#define NOSCHEDULE "P01_noschedule.png"
+#define TAB_BG "P01_tab_bg.png"
+#define TAB_DEFAULT "P01_tab_default.png"
+#define TAB_FOCUS "P01_tab_focus.png"
+#define TAB_PRESS "P01_tab_press.png"
+#define TITLE_BG "P01_title_bg.png"
+#define TITLE_BG_TMP "P01_title_bg_tmp.png"
+#define ALARM_CLOCK_BG_AM "58_alarm_clock_bg_AM.png"
+#define ALARM_CLOCK_BG_PM "58_alarm_clock_bg_PM.png"
+#define CLOCK_BG "58_clock_bg.png"
+#define CLOCK_BUTTON_NORMAL "58_clock_button_normal.png"
+#define CLOCK_BUTTON_PRESS "58_clock_button_press.png"
diff --git a/data/edc/inc/hd-white-inc.edc b/data/edc/inc/hd-white-inc.edc
new file mode 100755 (executable)
index 0000000..4c94f6e
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+//retio defined
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define WIDTH_OF_HD (720.0*R_X)
+#define HEIGHT_OF_HD (1280.0*R_Y)
+//size
+
+//color
+#define COLOR_OF_LINE_FOR_ACCT 75 75 75 255
+#define COLOR_OF_BASE_OF_SELECTOR_BUTTON_FOR_ACCT 233 233 233 255
+
+#define COLOR_OF_TOP_LINE_FOR_DAY 195 192 179 255
+
+#define COLOR_OF_BASE_OF_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_HORIZEN_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_MIDDLE_LINE_FOR_TAB 224 219 209 255
+#define COLOR_OF_VERT_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_ON_TIME_LINE_FOR_TAB 212 144 26 255
+
+#define COLOR_OF_LIST_LINE_FOR_MONTH 195 192 179 255
+
+#define COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_TODAY_FOR_MONTH_CAL 255 200 0 40
+#define COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL 195 192 179 255
+#define COLOR_OF_CHECK_BASE_FOR_MONTH_CAL 127 126 126 255
+#define COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_LINE_FOR_MONTH_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_MAIN_TAB 249 249 249 150
+#define COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB 0 0 0 255
+#define COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB 255 255 255 255
+
+#define COLOR_OF_TODAY_FOR_YEAR_CAL 212 146 32 40
+#define COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_LINE_FOR_YEAR_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_RING 255 126 0 255
+#define COLOR_OF_DEFAULT_STOP_FOR_RING 255 74 22 255
+#define COLOR_OF_DEFAULT_PRESSED_FOR_RING 255 255 255 255
+
+//image
+#define LIST_PHOTO_DEFAUT "00_list_photo_default.png"
+#define DIALOG_EDIT_DEFAULT "01_dialoguegroup_edit_default.png"
+#define HEADER_ICON_ADD "01_header_icon_add.png"
+#define HEADER_ICON_DONE "01_header_icon_done.png"
+#define HEADER_ICON_OTHERS "01_header_icon_others.png"
+#define NAVI_ICON_DELETE "01_navi_icon_delete.png"
+#define NAVI_ICON_EDIT "01_navi_icon_edit.png"
+#define NAVI_ICON_NEW "01_navi_icon_new.png"
+#define MEMO_NOITEMS "49_memo_noitems.png"
+#define CALENDAR_BG_2 "57_calendar_bg2.png"
+#define CALENDAR_EVENT_BG_1 "57_calendar_event(1)_bg.png"
+#define CALENDAR_EVENT_BG_2 "57_calendar_event(2)_bg.png"
+#define CALENDAR_EVENT_BG_3 "57_calendar_event(3)_bg.png"
+#define CALENDAR_EVENT_BG_4 "57_calendar_event(4)_bg.png"
+#define CALENDAR_MONTH_VIEW_BG_1 "57_calendar_month_view(1)_bg.png"
+#define CALENDAR_SPIN_ICON_1 "57_calendar_spin_01_icon.png"
+#define CALENDAR_SPIN_ICON_2 "57_calendar_spin_02_icon.png"
+#define CALENDAR_TAB "57_calendar_tab.png"
+#define CALENDAR_TAB_FOCUS_BG "57_calendar_tab_focus_bg.png"
+#define CALENDAR_TAB_PRESS "57_calendar_tab_press.png"
+#define CALENDAR_TODAY_ICON "57_calendar_today_icon.png"
+#define CALENDAR_TODAY_ICON_PRESS "57_calendar_today_icon_press.png"
+#define CALENDAR_TODAY_ICON_2 "57_calendar_today_icon2.png"
+#define CALENDAR_WEEK_ARROW_FOCUS_ICON "57_calendar_week_arrow_focus_icon.png"
+#define CALENDAR_WEEK_ARROW_ICON "57_calendar_week_arrow_icon.png"
+#define CALENDAR_WEEK_VIEW_BG "57_calendar_week_view_bg.png"
+#define CALENDAR_WEEK_VIEW_PRESS "57_calendar_week_view_press.png"
+#define CALENDAR_YEAR_VIEW_BG "57_calendar_year_view_bg.png"
+#define ALL_CALENDAR "all_calendar.png"
+#define CALENDAR_SELSECTED "calendar_selected.png"
+#define NAVIBAR_ITEM_SEPARATOR "navibar_item_separator.png"
+#define NAVIBAR_ITEM_SEPARATOR_TEMP "navibar_item_separator_tmp.png"
+#define BG "P01_bg.png"
+#define CONTROL_TOP_BG "P01_control_top_bg.png"
+#define CONTROL_TOP_BG_TEMP "P01_control_top_bg_tmp.png"
+#define DAY_CURRENT_TIME "P01_day_current_time.png"
+#define EVENT "P01_event.png"
+#define NOSCHEDULE "P01_noschedule.png"
+#define TAB_BG "P01_tab_bg.png"
+#define TAB_DEFAULT "P01_tab_default.png"
+#define TAB_FOCUS "P01_tab_focus.png"
+#define TAB_PRESS "P01_tab_press.png"
+#define TITLE_BG "P01_title_bg.png"
+#define TITLE_BG_TMP "P01_title_bg_tmp.png"
+#define ALARM_CLOCK_BG_AM "58_alarm_clock_bg_AM.png"
+#define ALARM_CLOCK_BG_PM "58_alarm_clock_bg_PM.png"
+#define CLOCK_BG "58_clock_bg.png"
+#define CLOCK_BUTTON_NORMAL "58_clock_button_normal.png"
+#define CLOCK_BUTTON_PRESS "58_clock_button_press.png"
diff --git a/data/edc/inc/wvga-black-inc.edc b/data/edc/inc/wvga-black-inc.edc
new file mode 100755 (executable)
index 0000000..a861d6d
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+//retio defined
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define WIDTH_OF_HD (720.0*R_X)
+#define HEIGHT_OF_HD (1280.0*R_Y)
+
+//size
+//color
+#define COLOR_OF_LINE_FOR_ACCT 75 75 75 255
+#define COLOR_OF_BASE_OF_SELECTOR_BUTTON_FOR_ACCT 233 233 233 255
+
+#define COLOR_OF_TOP_LINE_FOR_DAY 195 192 179 255
+
+#define COLOR_OF_BASE_OF_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_HORIZEN_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_MIDDLE_LINE_FOR_TAB 224 219 209 255
+#define COLOR_OF_VERT_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_ON_TIME_LINE_FOR_TAB 212 144 26 255
+
+#define COLOR_OF_LIST_LINE_FOR_MONTH 195 192 179 255
+
+#define COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_TODAY_FOR_MONTH_CAL 255 200 0 40
+#define COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL 195 192 179 255
+#define COLOR_OF_CHECK_BASE_FOR_MONTH_CAL 127 126 126 255
+#define COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_LINE_FOR_MONTH_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_MAIN_TAB 249 249 249 150
+#define COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB 0 0 0 255
+#define COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB 255 255 255 255
+
+#define COLOR_OF_TODAY_FOR_YEAR_CAL 212 146 32 40
+#define COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_LINE_FOR_YEAR_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_RING 255 126 0 255
+#define COLOR_OF_DEFAULT_STOP_FOR_RING 255 74 22 255
+#define COLOR_OF_DEFAULT_PRESSED_FOR_RING 255 255 255 255
+
+//image
+#define LIST_PHOTO_DEFAUT "00_list_photo_default.png"
+#define DIALOG_EDIT_DEFAULT "01_dialoguegroup_edit_default.png"
+#define HEADER_ICON_ADD "01_header_icon_add.png"
+#define HEADER_ICON_DONE "01_header_icon_done.png"
+#define HEADER_ICON_OTHERS "01_header_icon_others.png"
+#define NAVI_ICON_DELETE "01_navi_icon_delete.png"
+#define NAVI_ICON_EDIT "01_navi_icon_edit.png"
+#define NAVI_ICON_NEW "01_navi_icon_new.png"
+#define MEMO_NOITEMS "49_memo_noitems.png"
+#define CALENDAR_BG_2 "57_calendar_bg2.png"
+#define CALENDAR_EVENT_BG_1 "57_calendar_event(1)_bg.png"
+#define CALENDAR_EVENT_BG_2 "57_calendar_event(2)_bg.png"
+#define CALENDAR_EVENT_BG_3 "57_calendar_event(3)_bg.png"
+#define CALENDAR_EVENT_BG_4 "57_calendar_event(4)_bg.png"
+#define CALENDAR_MONTH_VIEW_BG_1 "57_calendar_month_view(1)_bg.png"
+#define CALENDAR_SPIN_ICON_1 "57_calendar_spin_01_icon.png"
+#define CALENDAR_SPIN_ICON_2 "57_calendar_spin_02_icon.png"
+#define CALENDAR_TAB "57_calendar_tab.png"
+#define CALENDAR_TAB_FOCUS_BG "57_calendar_tab_focus_bg.png"
+#define CALENDAR_TAB_PRESS "57_calendar_tab_press.png"
+#define CALENDAR_TODAY_ICON "57_calendar_today_icon.png"
+#define CALENDAR_TODAY_ICON_PRESS "57_calendar_today_icon_press.png"
+#define CALENDAR_TODAY_ICON_2 "57_calendar_today_icon2.png"
+#define CALENDAR_WEEK_ARROW_FOCUS_ICON "57_calendar_week_arrow_focus_icon.png"
+#define CALENDAR_WEEK_ARROW_ICON "57_calendar_week_arrow_icon.png"
+#define CALENDAR_WEEK_VIEW_BG "57_calendar_week_view_bg.png"
+#define CALENDAR_WEEK_VIEW_PRESS "57_calendar_week_view_press.png"
+#define CALENDAR_YEAR_VIEW_BG "57_calendar_year_view_bg.png"
+#define ALL_CALENDAR "all_calendar.png"
+#define CALENDAR_SELSECTED "calendar_selected.png"
+#define NAVIBAR_ITEM_SEPARATOR "navibar_item_separator.png"
+#define NAVIBAR_ITEM_SEPARATOR_TEMP "navibar_item_separator_tmp.png"
+#define BG "P01_bg.png"
+#define CONTROL_TOP_BG "P01_control_top_bg.png"
+#define CONTROL_TOP_BG_TEMP "P01_control_top_bg_tmp.png"
+#define DAY_CURRENT_TIME "P01_day_current_time.png"
+#define EVENT "P01_event.png"
+#define NOSCHEDULE "P01_noschedule.png"
+#define TAB_BG "P01_tab_bg.png"
+#define TAB_DEFAULT "P01_tab_default.png"
+#define TAB_FOCUS "P01_tab_focus.png"
+#define TAB_PRESS "P01_tab_press.png"
+#define TITLE_BG "P01_title_bg.png"
+#define TITLE_BG_TMP "P01_title_bg_tmp.png"
+#define ALARM_CLOCK_BG_AM "58_alarm_clock_bg_AM.png"
+#define ALARM_CLOCK_BG_PM "58_alarm_clock_bg_PM.png"
+#define CLOCK_BG "58_clock_bg.png"
+#define CLOCK_BUTTON_NORMAL "58_clock_button_normal.png"
+#define CLOCK_BUTTON_PRESS "58_clock_button_press.png"
diff --git a/data/edc/inc/wvga-white-inc.edc b/data/edc/inc/wvga-white-inc.edc
new file mode 100755 (executable)
index 0000000..a861d6d
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+//retio defined
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define WIDTH_OF_HD (720.0*R_X)
+#define HEIGHT_OF_HD (1280.0*R_Y)
+
+//size
+//color
+#define COLOR_OF_LINE_FOR_ACCT 75 75 75 255
+#define COLOR_OF_BASE_OF_SELECTOR_BUTTON_FOR_ACCT 233 233 233 255
+
+#define COLOR_OF_TOP_LINE_FOR_DAY 195 192 179 255
+
+#define COLOR_OF_BASE_OF_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_HORIZEN_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_MIDDLE_LINE_FOR_TAB 224 219 209 255
+#define COLOR_OF_VERT_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_ON_TIME_LINE_FOR_TAB 212 144 26 255
+
+#define COLOR_OF_LIST_LINE_FOR_MONTH 195 192 179 255
+
+#define COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_TODAY_FOR_MONTH_CAL 255 200 0 40
+#define COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL 195 192 179 255
+#define COLOR_OF_CHECK_BASE_FOR_MONTH_CAL 127 126 126 255
+#define COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_LINE_FOR_MONTH_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_MAIN_TAB 249 249 249 150
+#define COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB 0 0 0 255
+#define COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB 255 255 255 255
+
+#define COLOR_OF_TODAY_FOR_YEAR_CAL 212 146 32 40
+#define COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_LINE_FOR_YEAR_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_RING 255 126 0 255
+#define COLOR_OF_DEFAULT_STOP_FOR_RING 255 74 22 255
+#define COLOR_OF_DEFAULT_PRESSED_FOR_RING 255 255 255 255
+
+//image
+#define LIST_PHOTO_DEFAUT "00_list_photo_default.png"
+#define DIALOG_EDIT_DEFAULT "01_dialoguegroup_edit_default.png"
+#define HEADER_ICON_ADD "01_header_icon_add.png"
+#define HEADER_ICON_DONE "01_header_icon_done.png"
+#define HEADER_ICON_OTHERS "01_header_icon_others.png"
+#define NAVI_ICON_DELETE "01_navi_icon_delete.png"
+#define NAVI_ICON_EDIT "01_navi_icon_edit.png"
+#define NAVI_ICON_NEW "01_navi_icon_new.png"
+#define MEMO_NOITEMS "49_memo_noitems.png"
+#define CALENDAR_BG_2 "57_calendar_bg2.png"
+#define CALENDAR_EVENT_BG_1 "57_calendar_event(1)_bg.png"
+#define CALENDAR_EVENT_BG_2 "57_calendar_event(2)_bg.png"
+#define CALENDAR_EVENT_BG_3 "57_calendar_event(3)_bg.png"
+#define CALENDAR_EVENT_BG_4 "57_calendar_event(4)_bg.png"
+#define CALENDAR_MONTH_VIEW_BG_1 "57_calendar_month_view(1)_bg.png"
+#define CALENDAR_SPIN_ICON_1 "57_calendar_spin_01_icon.png"
+#define CALENDAR_SPIN_ICON_2 "57_calendar_spin_02_icon.png"
+#define CALENDAR_TAB "57_calendar_tab.png"
+#define CALENDAR_TAB_FOCUS_BG "57_calendar_tab_focus_bg.png"
+#define CALENDAR_TAB_PRESS "57_calendar_tab_press.png"
+#define CALENDAR_TODAY_ICON "57_calendar_today_icon.png"
+#define CALENDAR_TODAY_ICON_PRESS "57_calendar_today_icon_press.png"
+#define CALENDAR_TODAY_ICON_2 "57_calendar_today_icon2.png"
+#define CALENDAR_WEEK_ARROW_FOCUS_ICON "57_calendar_week_arrow_focus_icon.png"
+#define CALENDAR_WEEK_ARROW_ICON "57_calendar_week_arrow_icon.png"
+#define CALENDAR_WEEK_VIEW_BG "57_calendar_week_view_bg.png"
+#define CALENDAR_WEEK_VIEW_PRESS "57_calendar_week_view_press.png"
+#define CALENDAR_YEAR_VIEW_BG "57_calendar_year_view_bg.png"
+#define ALL_CALENDAR "all_calendar.png"
+#define CALENDAR_SELSECTED "calendar_selected.png"
+#define NAVIBAR_ITEM_SEPARATOR "navibar_item_separator.png"
+#define NAVIBAR_ITEM_SEPARATOR_TEMP "navibar_item_separator_tmp.png"
+#define BG "P01_bg.png"
+#define CONTROL_TOP_BG "P01_control_top_bg.png"
+#define CONTROL_TOP_BG_TEMP "P01_control_top_bg_tmp.png"
+#define DAY_CURRENT_TIME "P01_day_current_time.png"
+#define EVENT "P01_event.png"
+#define NOSCHEDULE "P01_noschedule.png"
+#define TAB_BG "P01_tab_bg.png"
+#define TAB_DEFAULT "P01_tab_default.png"
+#define TAB_FOCUS "P01_tab_focus.png"
+#define TAB_PRESS "P01_tab_press.png"
+#define TITLE_BG "P01_title_bg.png"
+#define TITLE_BG_TMP "P01_title_bg_tmp.png"
+#define ALARM_CLOCK_BG_AM "58_alarm_clock_bg_AM.png"
+#define ALARM_CLOCK_BG_PM "58_alarm_clock_bg_PM.png"
+#define CLOCK_BG "58_clock_bg.png"
+#define CLOCK_BUTTON_NORMAL "58_clock_button_normal.png"
+#define CLOCK_BUTTON_PRESS "58_clock_button_press.png"
diff --git a/data/edc/layout/efl-calendar-black-theme.edc b/data/edc/layout/efl-calendar-black-theme.edc
new file mode 100755 (executable)
index 0000000..43d9454
--- /dev/null
@@ -0,0 +1,37 @@
+//set the theme
+#include "../inc/hd-black-inc.edc"
+
+collections {
+#include "inc.main.edc" // main layout: year, month, week, day, list
+#include "inc.main.title.edc" // title layout: year, month, week, day
+#include "inc.main.tab.edc" // tab layout: year, month, week, day, list
+
+#include "inc.main.month.edc" // month layout
+#include "inc.main.month.cal.edc" // month in month layout
+
+#include "inc.main.month.weekly.edc" // month layout for focuse weekly
+#include "inc.main.month.cal.weekly.edc" // month in month layout for focuse weekly
+
+#include "inc.main.year.edc" // year layout
+#include "inc.main.year.cal.edc" // month in year layout
+
+#include "inc.main.week.edc" // week layout
+#include "inc.main.week.item.edc" // item in box
+
+#include "inc.main.day.edc" // day layout
+#include "inc.main.day.tb.edc" // timeblock layout
+
+#include "inc.images.edc" // image part
+
+#include "inc.layouts.edc"
+
+#include "inc.acct.edc"
+#include "inc.acct.colorselector.edc"
+
+#include "inc.edit.edc"
+
+#include "inc.ring.edc"
+
+#include "inc.part.edc"
+
+}
\ No newline at end of file
diff --git a/data/edc/layout/efl-calendar-white-theme.edc b/data/edc/layout/efl-calendar-white-theme.edc
new file mode 100755 (executable)
index 0000000..0557921
--- /dev/null
@@ -0,0 +1,36 @@
+//set the theme
+#include "../inc/hd-white-inc.edc"
+
+collections {
+#include "inc.main.edc" // main layout: year, month, week, day, list
+#include "inc.main.title.edc" // title layout: year, month, week, day
+#include "inc.main.tab.edc" // tab layout: year, month, week, day, list
+
+#include "inc.main.month.edc" // month layout
+#include "inc.main.month.cal.edc" // month in month layout
+
+#include "inc.main.month.weekly.edc" // month layout for focuse weekly
+#include "inc.main.month.cal.weekly.edc" // month in month layout for focuse weekly
+
+#include "inc.main.year.edc" // year layout
+#include "inc.main.year.cal.edc" // month in year layout
+
+#include "inc.main.week.edc" // week layout
+#include "inc.main.week.item.edc" // item in box
+
+#include "inc.main.day.edc" // day layout
+#include "inc.main.day.tb.edc" // timeblock layout
+
+#include "inc.images.edc" // image part
+
+#include "inc.layouts.edc"
+
+#include "inc.acct.edc"
+#include "inc.acct.colorselector.edc"
+
+#include "inc.edit.edc"
+
+#include "inc.ring.edc"
+
+#include "inc.part.edc"
+}
\ No newline at end of file
diff --git a/data/edc/layout/extended-edc.h b/data/edc/layout/extended-edc.h
new file mode 100755 (executable)
index 0000000..f780995
--- /dev/null
@@ -0,0 +1,375 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_EXTENDED_EDC_H__
+#define __CALENDAR_EXTENDED_EDC_H__
+
+#define PPART PART:
+#define PIMAGE IMAGE:
+
+/***********************************************************************/
+/* size difinition layer */
+#define PART_BG(iName)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_BG_EX(iName, iMinx, iMiny)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        min: iMinx iMiny;\
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_RECT(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: iR1x iR1y; to: iR1t; } \
+        rel2 { relative: iR2x iR2y; to: iR2t; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_V_PIXEL_RECT(iName, size, iTo, iRy, iAy)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        min: 0 size;\
+        align: 0.5 iAy;\
+        fixed: 0 1;\
+        rel1 { relative: 0.0 iRy; to: iTo; } \
+        rel2 { relative: 1.0 iRy; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_H_PIXEL_RECT(iName, size, iTo, iRx, iAx)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        min: size 0;\
+        align: iAx 0.5;\
+        fixed: 1 0;\
+        rel1 { relative: iRx 0.0; to: iTo; } \
+        rel2 { relative: iRx 1.0; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_PIXEL_RECT(iName, iX, iY, iRx, iRy, iTo, iAx, iAy)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        min: iX iY;\
+        align: iAx iAy;\
+        fixed: 1 1;\
+        rel1 { relative: iRx iRy; to: iTo; } \
+        rel2 { relative: iRx iRy; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+
+/* vertical divided rect, index range from 0~N-1
+ * iIndex must be immediate integer and expression like (1+2) is not allowed
+ */
+#define PART_V_DIVID_RECT(iName, iTo, iIndex, iN)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 (iIndex%iN)/iN; to: iTo; } \
+        rel2 { relative: 1.0 (iIndex%iN+1)/iN; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+/* horizontal divided rect, index range from 0~N-1
+ * iIndex must be immediate integer and expression like (1+2) is not allowed
+ */
+#define PART_H_DIVID_RECT(iName, iTo, iIndex, iN)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: (iIndex%iN)/iN 0.0; to: iTo; } \
+        rel2 { relative: (iIndex%iN+1)/iN 1.0; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_CLIPPER_RECT(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: iR1x iR1y; to: iR1t; } \
+        rel2 { relative: iR2x iR2y; to: iR2t; } \
+        color: 255 255 255 255;\
+    } \
+} \
+
+/***********************************************************************/
+/* mouse event filter layer */
+#define PART_EVENT_RECT(iName, iTo)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 1;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+/***********************************************************************/
+/* content layer */
+#define PART_COLOR_RECT(iName, iTo, iCr, iCg, iCb, iCa)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+        color: iCr iCg iCb iCa;\
+    } \
+} \
+
+#define PART_IMAGE(iName, iTo, iImage)\
+part {\
+    name: iName;\
+    type: IMAGE;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+        image.normal : iImage;\
+    } \
+} \
+
+#define PART_IMAGE_REL(iName, iImage, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_RECT("_"iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_IMAGE(iName, "_"iName, iImage)\
+
+#define PART_BORDER_IMAGE(iName, iTo, iImage, iBl, iBr, iBt, iBb)\
+part {\
+    name: iName;\
+    type: IMAGE;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+        image.normal : iImage;\
+        image.border : iBl iBr iBt iBb;\
+    } \
+} \
+
+#define PART_SWALLOW(iName, iTo)\
+part {\
+    name: iName;\
+    type: SWALLOW;\
+    mouse_events: 1;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+    } \
+} \
+
+#define PART_SWALLOW_REL(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_RECT("_"iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_SWALLOW(iName, "_"iName)\
+
+#define PART_UNVISIBLE_SWALLOW(iName, iTo)\
+part {\
+    name: iName;\
+    type: SWALLOW;\
+    mouse_events: 1;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        visible: 0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+    } \
+} \
+
+#define PART_UNVISIBLE_SWALLOW_REL(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_RECT("_"iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_UNVISIBLE_SWALLOW(iName, "_"iName)\
+
+#define PART_CLIPPED_SWALLOW(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t,\
+        iAx, iAy, iCliper)\
+part {\
+    name: iName;\
+    type: SWALLOW;\
+    mouse_events: 0;\
+    scale: 1;\
+    clip_to: iCliper;\
+    description {\
+        state: "default" 0.0;\
+        align: iAx iAy;\
+        fixed: 1 1;\
+        rel1 { relative: iR1x iR1y; to: iR1t; } \
+        rel2 { relative: iR2x iR2y; to: iR2t; } \
+    } \
+} \
+
+#define PART_TEXT(iName, iTo, iText, iFont, iSize,\
+        iAx, iAy, iCr, iCg, iCb, iCa)\
+part {\
+    name: iName;\
+    type: TEXT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+        color: iCr iCg iCb iCa;\
+        text {\
+            text: iText;\
+            font: iFont;\
+            size: iSize;\
+            align: iAx iAy;\
+        } \
+    } \
+} \
+
+#define PART_TEXT_REL(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t,\
+        iText, iFont, iSize, iAx, iAy, iCr, iCg, iCb, iCa)\
+PART_RECT("_"iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_TEXT(iName, "_"iName, iText, iFont, iSize, iAx, iAy, iCr, iCg, iCb, iCa)\
+
+/***********************************************************************/
+/* script */
+#define SCRIPT_CUSTOM_PART(iPart)\
+custom_state(PPART#iPart, "default", 0.0);\
+set_state(PPART#iPart, "custom", 0.0)
+
+#define SCRIPT_SET_REL(iPart, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+set_state_val(PPART#iPart, STATE_REL1, iR1x, iR1y);\
+set_state_val(PPART#iPart, STATE_REL1_TO, PPART#iR1t, PPART#iR1t);\
+set_state_val(PPART#iPart, STATE_REL2, iR2x, iR2y);\
+set_state_val(PPART#iPart, STATE_REL2_TO, PPART#iR2t, PPART#iR2t)\
+
+#define SCRIPT_SET_VISIBLE(iPart, iV)\
+set_state_val(PPART#iPart, STATE_VISIBLE, iV)
+
+#define SCRIPT_SET_IMAGE(iPart, iV)\
+set_state_val(PPART#iPart, STATE_IMAGE, PIMAGE#iV)
+
+/***********************************************************************/
+/* program */
+#define PROGRAM_STATE_SET(isignal, isource, itarget, istate)\
+program {\
+    name: #isource#isignal;\
+    source: #isource;\
+    signal: #isignal;\
+    action: STATE_SET #istate 0.0;\
+    target: #itarget;\
+} \
+
+#define PROGRAM_SET_VISIBLE(isignal, isource, iPart, iV)\
+program {\
+    name: #isource#isignal;\
+    source: #isource;\
+    signal: #isignal;\
+    script {\
+        SCRIPT_SET_VISIBLE(iPart, iV);\
+    } \
+} \
+
+#define PROGRAM_SET_IMAGE(iname, isignal, isource, iPart, image)\
+program {\
+    name: iname;\
+    source: isource;\
+    signal: isignal;\
+    script {\
+        set_state_val(PPART#iPart, STATE_IMAGE, PIMAGE#image);\
+    } \
+} \
+
+#define PROGRAM_SET_INT(iname, isignal, isource, var, value)\
+program {\
+    name: iname;\
+    source: isource;\
+    signal: isignal;\
+    script {\
+        set_int(var, value);\
+    } \
+} \
+
+#endif /* __CALENDAR_EXTENDED_EDC_H__ */
diff --git a/data/edc/layout/inc.acct.colorselector.edc b/data/edc/layout/inc.acct.colorselector.edc
new file mode 100755 (executable)
index 0000000..5dd01e2
--- /dev/null
@@ -0,0 +1,112 @@
+group{
+    name: "color_selector";
+    parts{
+               part {
+                       name: "bg";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "rect.up";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "bg"; }
+                               rel2 { relative: 1.0 0.36; to: "bg"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "border.bg";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 300 90;
+                               align: 0.5 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 0.5 0.5; to: "rect.up"; }
+                               rel2 { relative: 0.5 0.5; to: "rect.up"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "border";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "border.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "border.bg"; }
+                               color: 0 0 0 255;
+                       }
+               }
+
+               part {
+                       name: "color.bg";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: (300-4) (90-4);
+                               align: 0.5 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 0.5 0.5; to: "rect.up"; }
+                               rel2 { relative: 0.5 0.5; to: "rect.up"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.color";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "color.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "color.bg"; }
+                       }
+               }
+
+               part {
+                       name: "event";
+                       type: RECT;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "rect.up"; }
+                               rel2 { relative: 1.0 1.0; to: "rect.up"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.selector";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               rel1 { relative: 4/480 0.36; to: "bg"; }
+                               rel2 { relative: (480-4)/480 1.0; to: "bg"; }
+                               //rel2 { relative: (480-4)/480 0.7; to: "bg"; }
+                       }
+               }
+    }
+}
\ No newline at end of file
diff --git a/data/edc/layout/inc.acct.edc b/data/edc/layout/inc.acct.edc
new file mode 100755 (executable)
index 0000000..37ae544
--- /dev/null
@@ -0,0 +1,56 @@
+#define WIDTH_OF_CALENDAR_VIEW 720
+#define HEIGHT_OF_CALENDAR_VIEW 1280
+
+#define LINE_HIGHT 2
+
+#define HEIGHT_OF_SELECTOR_BASE 765
+#define HEIGHT_OF_SELECTOR_BUTTON_BASE 110
+#define SELECTOR_BUTTON_UP_PADDING 10
+#define SELECTOR_BUTTON_DOWN_PADDING 10
+#define SELECTOR_BUTTON_LEFT_PADDING 550
+#define SELECTOR_BUTTON_RIGHT_PADDING 10
+
+#define HEIGHT_OF_NAVIFRAME 100
+
+group { name, "acct";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               visible, 0;
+                       }
+               }
+
+               part { name, "line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               min:0 1;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative, 0.0 0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 (LINE_HIGHT)/HEIGHT_OF_CALENDAR_VIEW;
+                                       to, "base";
+                               }
+                               color, COLOR_OF_LINE_FOR_ACCT;
+                       }
+               }
+
+               part { name, "sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.0 1.0;
+                                       to, "line";
+                               }
+                               rel2.to, "base";
+                       }
+               }
+       }
+}
\ No newline at end of file
diff --git a/data/edc/layout/inc.edit.edc b/data/edc/layout/inc.edit.edc
new file mode 100755 (executable)
index 0000000..08b587b
--- /dev/null
@@ -0,0 +1,34 @@
+group { name, "edit";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               visible, 0;
+                       }
+               }
+               part { name, "sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                       }
+               }
+               part {
+                               name: "toolbar";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 78;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                               }
+               }
+       }
+}
\ No newline at end of file
diff --git a/data/edc/layout/inc.images.edc b/data/edc/layout/inc.images.edc
new file mode 100755 (executable)
index 0000000..df94497
--- /dev/null
@@ -0,0 +1,34 @@
+#define IMAGE(_name) \
+group { name, _name; \
+       images { \
+               image, _name COMP; \
+       } \
+       parts { \
+               part { name, "base"; \
+                       description { \
+                               state, "default" 0.0; \
+                               image.normal, _name; \
+                       } \
+               } \
+       } \
+}
+
+IMAGE(NAVI_ICON_NEW)
+IMAGE(NAVI_ICON_EDIT)
+IMAGE(NAVI_ICON_DELETE)
+IMAGE(LIST_PHOTO_DEFAUT)
+IMAGE(HEADER_ICON_ADD)
+IMAGE(HEADER_ICON_OTHERS)
+IMAGE(HEADER_ICON_DONE)
+IMAGE(BG)
+IMAGE(TAB_BG)
+IMAGE(TAB_DEFAULT)
+IMAGE(TAB_PRESS)
+IMAGE(NAVIBAR_ITEM_SEPARATOR_TEMP)
+IMAGE(CONTROL_TOP_BG)
+IMAGE(TITLE_BG)
+
+
+
+
+
diff --git a/data/edc/layout/inc.layouts.edc b/data/edc/layout/inc.layouts.edc
new file mode 100755 (executable)
index 0000000..3f41a48
--- /dev/null
@@ -0,0 +1,1843 @@
+group { name, "dialoguegroup/weekly";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 140;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bottom_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 10;
+                               fixed, 0 1;
+                               rel1 { relative, 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 0.5 1.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "text_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.5;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                       }
+               }
+               part { name, "content";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                       }
+               }
+               part { name, "content2";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to_x, "right_padding"; to_y, "bottom_padding";
+                               }
+                               align, 0.5 0.5;
+                       }
+               }
+       }
+}
+
+group { name, "dialoguegroup/radio";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 74;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Roman";
+                                       size, 40;
+                                       min, 0 0;
+                                       align, 0.0 0.5;
+                               }
+                               color, 0 0 0 255;
+                       }
+               }
+
+               part { name, "datefield";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                       }
+               }
+
+               part { name, "content";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                       }
+               }
+
+       }
+}
+
+
+group { name, "dialoguegroup/alarm/custom";
+
+       images {
+               image, DIALOG_EDIT_DEFAULT COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 169;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 15 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bottom_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 16;
+                               fixed, 0 1;
+                               rel1 { relative, 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 0.5 1.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "text_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.5;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Roman";
+                                       size, 32;
+                                       min, 0 0;
+                                       align, 0.0 0.5;
+                               }
+                               color, 0 0 0 255;
+                       }
+               }
+               part { name, "content";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                       }
+               }
+               part { name, "base/custom";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to_x, "right_padding"; to_y, "bottom_padding";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "input_bg";
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 80 0;
+                               fixed, 1 0;
+                               rel1.to, "base/custom";
+                               rel2 { relative, 0.0 1.0; to, "base/custom"; }
+                               image {
+                                       normal, "01_dialoguegroup_edit_default.png";
+                                       border, 13 13 9 14;
+                                       border_scale, 1;
+                               }
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "input_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1.to, "input_bg";
+                               rel2 { relative, 0.0 1.0; to, "input_bg"; }
+                               color, 0 0 0 0;
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "input_sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to, "input_left_padding"; }
+                               rel2.to, "input_bg";
+                       }
+               }
+               part { name, "button_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "input_bg"; }
+                               rel2 { relative, 1.0 1.0; to, "input_bg"; }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "button";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 120 0;
+                               fixed, 1 1;
+                               rel1 { relative, 1.0 0.5; to, "button_left_padding"; }
+                               rel2 { relative, 1.0 0.5; to, "button_left_padding"; }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text_left_padding2";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "button"; }
+                               rel2 { relative, 1.0 1.0; to, "button"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text2";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "text_left_padding2"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Roman";
+                                       size, 32;
+                                       min, 0 0;
+                                       align, 0.0 0.5;
+                               }
+                               color, 0 0 0 255;
+                       }
+               }
+       }
+}
+
+group { name, "dialoguegroup/alarm/custom2";
+
+       images {
+               image, "01_dialoguegroup_edit_default.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 74;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bottom_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 5;
+                               fixed, 0 1;
+                               rel1 { relative, 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 0.5 1.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                min, 200 0;
+                fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                       }
+               }
+        part { name, "text_right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text"; to_y, "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "content";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                align, 0.0 0.5;
+                       }
+               }
+               part { name, "base/custom";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_right_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                               color, 0 0 0 0;
+                align, 0.0 0.5;
+                       }
+               }
+               part { name, "input_bg";
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 80 60;
+                               fixed, 1 0;
+                               rel1.to, "base/custom";
+                               rel2 { relative, 0.0 1.0; to, "base/custom"; }
+                               image {
+                                       normal, "01_dialoguegroup_edit_default.png";
+                                       border, 13 13 9 14;
+                                       border_scale, 1;
+                               }
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "input_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 0.0 0.0; to, "input_bg"; offset, 2 0; }
+                               rel2 { relative, 0.0 1.0; to, "input_bg"; }
+                               color, 0 0 0 0;
+                               align, 0.0 0.5;
+                       }
+               }
+
+               part { name, "input_sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to, "input_left_padding"; }
+                               rel2 { relative, 1.0 1.0; to, "input_bg"; }
+                align, 0.0 0.5;
+                       }
+               }
+               part { name, "button_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "input_bg"; }
+                               rel2 { relative, 1.0 1.0; to, "input_bg"; }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "button";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 120 74;
+                               fixed, 1 1;
+                               rel1 { relative, 1.0 0.5; to, "button_left_padding"; }
+                               rel2 { relative, 1.0 0.5; to, "button_left_padding"; }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text_left_padding2";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "button"; }
+                               rel2 { relative, 1.0 1.0; to, "button"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text2";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_left_padding2"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                       }
+               }
+       }
+}
+
+
+group { name, "dialoguegroup/until";
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 60;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bottom_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 10;
+                               fixed, 0 1;
+                               rel1 { relative, 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 0.5 1.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "content";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                align, 0.0 0.5;
+                       }
+               }
+               part { name, "content2_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to_x, "content"; to_y, "base";}
+                               rel2 { relative, 1.0 1.0; to_x, "content"; to_y, "base";}
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "content2";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               //min, 180 0;
+                       //fixed, 1 1;
+                               rel1 { relative, 1.0 0.0; to_x, "content2_left_padding"; to_y, "base";}
+                               rel2 { relative, 0.0 1.0; to_x, "right_padding"; to_y, "base";}
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+       }
+}
+
+
+
+group { name, "dialoguegroup/repeat/times";
+
+       images {
+               image, "01_dialoguegroup_edit_default.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 50;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "text_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "base/custom";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "input_bg";
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 80 6;
+                               fixed, 1 1;
+                               rel1.to, "base/custom";
+                               rel2 { relative, 0.0 1.0; to, "base/custom"; }
+                               image {
+                                       normal, "01_dialoguegroup_edit_default.png";
+                                       border, 13 13 9 14;
+                                       border_scale, 1;
+                               }
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "input_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1.to, "input_bg";
+                               rel2 { relative, 0.0 1.0; to, "input_bg"; }
+                               color, 0 0 0 0;
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "input_sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to, "input_left_padding"; }
+                               rel2.to, "input_bg";
+                       }
+               }
+               part { name, "content";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                       }
+               }
+
+               part { name, "text_left_padding2";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "input_sw"; }
+                               rel2 { relative, 1.0 1.0; to, "input_sw"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "text";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_left_padding2"; to_y, "content";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "right_padding"; to_y, "content";
+                               }
+                       }
+               }
+
+       }
+}
+
+
+group { name, "dialoguegroup/repeat/date";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 84;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 15 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "content";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                       }
+               }
+               part { name, "content_right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to_x, "content";to_y, "base"; }
+                               rel1 { relative, 1.0 1.0; to_x, "content";to_y, "base"; }
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+       part { name, "content2";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "content_right_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "base"; to_y, "base";
+                               }
+                       }
+               }
+       }
+}
+
+
+
+group { name, "dialoguegroup/swallow";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "pad/top_left";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 15 25;
+                               fixed, 1 1;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "pad/bottom_right";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 15 25;
+                               fixed, 1 1;
+                               rel1 { relative , 1.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 1.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "content";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               align, 1.0 0.5;
+                               rel1 {
+                                       relative, 1.0 1.0;
+                                       to, "pad/top_left";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to, "pad/bottom_right";
+                               }
+                       }
+               }
+       }
+}
+
+group { name, "dialoguegroup/textblock";
+
+       styles {
+               style { name, "dialoguegroup_textblock";
+                       base, "font=SLP:style=Roman font_size=28 color=#000000ff wrap=char";
+                       tag,  "br" "\n";
+                       tag,  "ps" "ps";
+                       tag,  "hilight" "+ font=SLP:style=Bold";
+                       tag,  "b" "+ font=SLP:style=Bold";
+                       tag,  "tab" "\t";
+               }
+               style { name, "dialoguegroup_textblock_white";
+                       base, "font=SLP:style=Roman font_size=28 color=#ffffffff wrap=char";
+                       tag,  "br" "\n";
+                       tag,  "ps" "ps";
+                       tag,  "hilight" "+ font=SLP:style=Bold";
+                       tag,  "b" "+ font=SLP:style=Bold";
+                       tag,  "tab" "\t";
+               }
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               min, 0 80;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 15 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 15 0;
+                               fixed, 1 0;
+                               rel1 { relative , 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "top_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 10;
+                               fixed, 0 1;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 0.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bottom_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 10;
+                               fixed, 0 1;
+                               rel1 { relative , 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 0.0 1.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "text";
+                       type, TEXTBLOCK;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 1.0 0.5;
+                               rel1 {
+                                       relative, 1.0 1.0;
+                                       to_x, "left_padding";
+                                       to_y, "top_padding";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to_x, "right_padding";
+                                       to_y, "bottom_padding";
+                               }
+                               text {
+                                       style, "dialoguegroup_textblock";
+                                       min, 1 0;
+                               }
+                       }
+                       description {
+                               state, "pressed" 0.0;
+                               inherit, "default" 0.0;
+                               text.style, "dialoguegroup_textblock_white";
+                       }
+               }
+
+               part { name, "evt";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+       }
+
+       programs {
+               program { name, "text/down";
+                       signal, "mouse,down,1";
+                       source, "evt";
+                       action, STATE_SET "pressed" 0.0;
+                       target, "text";
+               }
+               program { name, "text/up";
+                       signal, "mouse,up,1";
+                       source, "evt";
+                       action, STATE_SET "default" 0.0;
+                       target, "text";
+               }
+       }
+}
+
+group { name, "dialoguegroup/location";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "pad/right";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 15 0;
+                               fixed, 1 0;
+                               rel1 { relative , 1.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 1.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "editfield/sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               align, 1.0 0.5;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                       }
+               }
+       }
+}
+
+//base 690x850
+//HD size 720x1280
+#define HEIGHT_OF_LIST_VIEW 920
+
+
+group { name, "list/base";
+
+       parts {
+
+               part { name, "base";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part {name, "searchbar";
+                       type, SWALLOW;
+                               mouse_events, 1;
+                               scale, 1;
+                       description {
+                                       state: "default" 0.0;
+                                       min: 460 106;
+                                       fixed: 1 1;
+                               align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "base";}
+                                       rel2 { relative: 1.0 0.0; to: "base";}
+                                       visible, 1;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "base";}
+                               rel2 { relative: 0.0 0.0; to: "base";}
+                               visible: 0;
+                       }
+               }
+
+               part { name, "sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "searchbar"; }
+                               rel2.to, "base";
+                               visible, 1;
+                       }
+               }
+       }
+
+       programs {
+               program {
+                       name: "show";
+                       signal: "searchbar,show";
+                       action: STATE_SET "default" 0.0;
+                       target: "searchbar";
+                       source: "prog";
+               }
+               program {
+                       name: "hide";
+                       signal: "searchbar,hide";
+                       action: STATE_SET "hide" 0.0;
+                       target: "searchbar";
+                       source: "prog";
+               }
+       }
+}
+
+group { name, "rect/empty";
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 20;
+                       }
+               }
+       }
+}
+
+
+group { name, "dialoguegroup/allday";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 100;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+        part { name: "elm.padding.icon.left";
+           type: RECT;
+           scale: 1;
+           description { state: "default" 0.0;
+              min: 10 0;
+              fixed: 1 0;
+              visible: 0;
+              rel1 {
+                 relative: 0.0 0.0;
+                 to_x: "content";
+              }
+              rel2.to_x: "content";
+              align: 1.0 0.0;
+           }
+        }
+        part { name: "content";
+           type: SWALLOW;
+           scale: 1;
+           description { state: "default" 0.0;
+              align: 1.0 0.5;
+              fixed: 1 1;
+              rel1 {
+                 relative: 0.0 0.0;
+                 offset: 0 0;
+                 to_x: "right_padding";
+                 to_y: "base";
+              }
+              rel2 {
+                 relative: 0.0 1.0;
+                 offset: 0 0;
+                 to_x: "right_padding";
+                 to_y: "base";
+              }
+           }
+        }
+        part { name: "text";
+           type: TEXT;
+           mouse_events: 0;
+           scale: 1;
+           description { state: "default" 0.0;
+              align: 0.0 0.0;
+              rel1 {
+                 relative: 1.0 0.0;
+                 offset: 0 0;
+                 to_x: "left_padding";
+                 to_y: "base";
+              }
+              rel2 {
+                 relative: 0.0 1.0;
+                 offset: 0 0;
+                 to_x: "elm.padding.icon.left";
+                 to_y: "base";
+              }
+              color: 0 0 0 255;
+              text {
+                 font: "SLP:style=Roman";
+                 size: 40;
+                 min: 0 1;
+                 align: 0.0 0.5;
+              }
+           }
+        }
+
+
+       }
+}
+
+group {
+       name: "ug_effect_sample";
+       parts {
+               part {
+                       name: "clip";
+                       type: RECT;
+                       description {
+                       state: "default" 0.0;
+                       rel1 { relative: 1 0; }
+                       rel2 { relative: 2 1; }
+                       color: 255 255 255 0;
+               }
+                       description {
+                               state: "show" 0.0;
+                               rel1 { relative: 0 0; }
+                               rel2 { relative: 1 1; }
+                               color: 255 255 255 255;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       clip_to: "clip";
+                       description {
+                               rel1.to: "clip";
+                               rel2.to: "clip";
+                       }
+               }
+               part {
+                       name: "event_blocker";
+                       description {
+                       state: "default" 0.0;
+                       rel1.to: "clip";
+                       rel2.to: "clip";
+                       visible: 1;
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "show";
+                       signal: "elm,state,show";
+                       action: STATE_SET "show" 0.0;
+                       target: "clip";
+                       target: "event_blocker";
+                       transition: "DECELERATE" 1.2;
+                       after: "show_end";
+               }
+
+               program {
+                       name: "hide";
+                       signal: "elm,state,hide";
+                       action: STATE_SET "default" 0.0;
+                       target: "clip";
+                       target: "event_blocker";
+                       transition: "DECELERATE" 1.0;
+                       after: "hide_end";
+               }
+               program {
+                       name: "disable_event_blocker";
+                       signal: "elm,state,blocker,disabled";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "event_blocker";
+               }
+               program {
+                       name: "disable_blocker";
+                       action: SIGNAL_EMIT "elm,state,blocker,disabled" "";
+               }
+               program {
+                       name: "show_end";
+                       action: SIGNAL_EMIT "elm,action,show,finished" "";
+                       after: "disable_blocker";
+               }
+               program {
+                       name: "hide_end";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+                       after: "disable_blocker";
+               }
+       }
+}
+
+group { name: "popup_center_text_progressview";
+       parts{
+               part { name: "pad_t";
+                       scale : 1;
+                       mouse_events: 0;
+                       repeat_events: 1;
+                       description { state: "default" 0.0;
+                               align: 0.5 0.0;
+                               min: 0 14;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to_x: "pad_l";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       to_x: "pad_r";
+                               }
+                       }
+               }
+               part { name: "pad_l";
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min : 10 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                               }
+                               align: 0.0 0.0;
+                       }
+               }
+               part { name: "pad_r";
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min : 10 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                               }
+                               align: 1.0 0.0;
+                       }
+               }
+               part{ name:"elm.swallow.content";
+                       type: SWALLOW;
+                       scale : 1;
+                       description { state: "default" 0.0;
+                               min: 300 0;
+                               align: 0.5 0.5;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.5 1.0;
+                                       to: "pad_t";
+                               }
+                               rel2 {
+                                       relative: 0.5 0.0;
+                                       to: "pad_b";
+                               }
+                       }
+               }
+               part { name: "pad_b";
+                       scale : 1;
+                       mouse_events: 0;
+                       repeat_events: 1;
+                       description { state: "default" 0.0;
+                               align: 0.5 1.0;
+                               min: 0 90;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "pad_l";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "pad_r";
+                               }
+                       }
+               }
+               part { name: "elm.swallow.end";
+                       type: SWALLOW;
+                       scale : 1;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       description { state: "default" 0.0;
+                               align: 0.0 0.0;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "pad_b";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "pad_b";
+                               }
+                       }
+               }
+               part { name: "pad_bm";
+                       scale : 1;
+                       mouse_events: 0;
+                       repeat_events: 1;
+                       description { state: "default" 0.0;
+                               align: 0.0 1.0;
+                               min: 0 52;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to: "pad_b";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "pad_b";
+                               }
+                       }
+               }
+               part { name: "elm.text.subtext1";
+                       type: TEXT;
+                       scale : 1;
+                       description { state: "default" 0.0;
+                               text {
+                                       font: "SLP:style=Medium";
+                                       size: 16;
+                                       min: 0 0;
+                                       align: 0.0 1.0;
+                               }
+                               color: 108 108 108 255;
+                               align: 0.0 0.5;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "pad_bm";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "pad_bm";
+                               }
+                       }
+               }
+               part { name: "elm.text.subtext2";
+                       type: TEXT;
+                       scale : 1;
+                       description { state: "default" 0.0;
+                               text {
+                                       font: "SLP:style=Medium";
+                                       size: 16;
+                                       min: 0 0;
+                                       align: 1.0 1.0;
+                               }
+                               color: 108 108 108 255;
+                               align: 1.0 0.5;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "pad_bm";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "pad_bm";
+                               }
+                       }
+               }
+       }
+}
+
+group { name, "dialoguegroup/datetime";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 100;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 30 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to: "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 30 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to: "base";
+                               }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+        part { name: "elm.text";
+           type: TEXT;
+           scale: 1;
+                  mouse_events: 0;
+           description { state: "default" 0.0;
+                               min: 50 20;
+                               fixed: 1 1;
+                               visible: 1;
+                               rel1 {
+                                       relative: 0.0 0.1;
+                                       to_x: "left_padding";
+                               }
+                               rel2 {
+                                       relative: 1.0 0.1;
+                                       to_y: "left_padding";
+                               }
+                               align: 0.0 0.2;
+                               color: 165 165 165 255;
+                               text {
+                                       font: "SLP:style=Roman";
+                                       size: 33;
+                                       min: 0 1;
+                                       align: 0.0 0.5;
+                               }
+                       }
+               }
+        part { name: "elm.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               align: 1.0 0.5;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       offset: 0 0;
+                                       to_x: "left_padding";
+                                       to_y: "elm.text";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       offset: 0 0;
+                                       to_x: "right_padding";
+                                       to_y: "base";
+                               }
+                       }
+        }
+       }
+}
\ No newline at end of file
diff --git a/data/edc/layout/inc.main.day.edc b/data/edc/layout/inc.main.day.edc
new file mode 100755 (executable)
index 0000000..eeeeb92
--- /dev/null
@@ -0,0 +1,88 @@
+// 480 x 920
+//origin size 480x800
+//HD size 720x1280
+#define HD_SCALE 800/1280
+#define WIDTH_OF_DAY_VIEW 480
+#define HEIGHT_OF_DAY_VIEW 855*HD_SCALE
+
+group { name, "main/day";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "list/sw";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 0.0; to, "base"; }
+                               align, 0.5 0.0;
+                       }
+                       description {
+                               state, "line1" 0.0;
+                               inherit, "default" 0.0;
+                               min, 0 120;
+                               fixed, 0 1;
+                       }
+                       description {
+                               state, "line2" 0.0;
+                               inherit, "default" 0.0;
+                               min, 0 240;
+                               fixed, 0 1;
+                       }
+               }
+               part { name, "cont/sw";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; to_x, "base"; to_y, "list/sw"; }
+                               rel2.to, "base";
+                               align, 0.5 0.0;
+                       }
+               }
+               part { name, "line/top";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 2;
+                               fixed, 0 1;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 0.0; to, "base"; }
+                               color, COLOR_OF_TOP_LINE_FOR_DAY;
+                               align, 0.5 0.5;
+                       }
+               }
+       }
+
+       programs {
+               program { name, "list/line0";
+                       signal, "go,line0";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "list/sw";
+                       transition, SINUSOIDAL 0.5;
+               }
+               program { name, "list/line1";
+                       signal, "go,line1";
+                       source, "prog";
+                       action, STATE_SET "line1" 0.0;
+                       target, "list/sw";
+                       transition, SINUSOIDAL 0.5;
+               }
+               program { name, "list/line2";
+                       signal, "go,line2";
+                       source, "prog";
+                       action, STATE_SET "line2" 0.0;
+                       target, "list/sw";
+                       transition, SINUSOIDAL 0.5;
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.day.tb.edc b/data/edc/layout/inc.main.day.tb.edc
new file mode 100755 (executable)
index 0000000..238b904
--- /dev/null
@@ -0,0 +1,938 @@
+/*
+#define ANI_TIME 0.3
+
+#define TIMEBLOCK(_pos, _prev, _alpha) \
+       part { name, "tb/base/"_pos; \
+               type, RECT; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 140; \
+                       fixed, 0 1; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, "base"; to_y, "tb/base/"_prev; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0; \
+                               to_x, "base"; to_y, "tb/base/"_prev; \
+                       } \
+                       color, 0 0 0 0; \
+                       align, 0.5 0.0; \
+               } \
+               description { \
+                       state, "shrink" 0.0; \
+                       inherit, "default" 0.0; \
+                       min, 0 10; \
+               } \
+       } \
+       part { name, "tb/bg/"_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "tb/base/"_pos; \
+                       rel2.to, "tb/base/"_pos; \
+                       color, 0 0 0 _alpha; \
+               } \
+       } \
+       part { name, "tb/text/base/"_pos; \
+               type, RECT; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 130 0; \
+                       fixed, 1 0; \
+                       rel1.to, "tb/base/"_pos; \
+                       rel2 { relative, 0.0 1.0; to, "tb/base/"_pos; } \
+                       align, 0.0 0.5; \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "tb/text/"_pos; \
+               type, TEXT; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "tb/text/base/"_pos; \
+                       rel2.to, "tb/text/base/"_pos; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 30; \
+                               align, 0.6 0.0; \
+                       } \
+                       color, 0 0 0 255; \
+               } \
+               description { \
+                       state, "shrink" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "tb/line/hori/"_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 1; \
+                       fixed, 0 1; \
+                       rel1 { \
+                               relative, 0.0 1.0; offset, 0 -1; \
+                               to, "tb/base/"_pos; \
+                       } \
+                       rel2.to, "tb/base/"_pos; \
+                       color, COLOR_OF_BASE_OF_LINE_FOR_TAB; \
+                       align, 0.5 0.0; \
+               } \
+       } \
+       part { name, "tb/line/vert/"_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 1 0; \
+                       fixed, 1 0; \
+                       rel1 { \
+                               relative, 1.0 0.0; \
+                               to, "tb/text/base/"_pos; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0; \
+                               to, "tb/text/base/"_pos; \
+                       } \
+                       color, COLOR_OF_BASE_OF_LINE_FOR_TAB; \
+                       align, 1.0 0.5; \
+               } \
+       } \
+       part { name, "tb/sel/"_pos; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 1.0 0.0; \
+                               to_x, "tb/text/base/"_pos; to_y, "tb/base/"_pos; \
+                       } \
+                       rel2.to, "tb/base/"_pos; \
+                       image { \
+                               normal, CALENDAR_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale, 1; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "tb/evtbase/"_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 1.0 0.0; \
+                               to_x, "tb/text/base/"_pos; to_y, "tb/base/"_pos; \
+                       } \
+                       rel2 { relative, 1.0 0.5; to, "tb/base/"_pos; } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "tb/evt/"_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "tb/base/"_pos; \
+                       rel2.to, "tb/base/"_pos; \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "shrink" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 0 0; \
+                       visible, 0; \
+               } \
+       } \
+       programs { \
+               program { name, "base/extend/"_pos; \
+                       signal, "extend,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       transition, SINUSOIDAL ANI_TIME; \
+                       target, "tb/base/"_pos; \
+                       target, "tb/text/"_pos; \
+                       target, "tb/evt/"_pos; \
+               } \
+               program { name, "base/shrink/"_pos; \
+                       signal, "shrink,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "shrink" 0.0; \
+                       transition, SINUSOIDAL ANI_TIME; \
+                       target, "tb/base/"_pos; \
+                       target, "tb/text/"_pos; \
+                       target, "tb/evt/"_pos; \
+               } \
+               program { name, "tb/down/"_pos; \
+                       signal, "mouse,down,1"; \
+                       source, "tb/evt/"_pos; \
+                       action, SIGNAL_EMIT "dn,"#_pos "edj"; \
+               } \
+               program { name, "tb/up/"_pos; \
+                       signal, "mouse,up,1"; \
+                       source, "tb/evt/"_pos; \
+                       action, SIGNAL_EMIT "up,"#_pos "edj"; \
+               } \
+               program { name, "tb/select/"_pos; \
+                       signal, "select,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "tb/sel/"_pos; \
+               } \
+               program { name, "tb/unselect/"_pos; \
+                       signal, "unselect,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "tb/sel/"_pos; \
+               } \
+       }
+
+#define TBASE_DESC(_h) \
+       description { \
+               state, "height/"_h 0.0; \
+               inherit, "default" 0.0; \
+               min, 0 (130 * _h); \
+       }
+
+#define TBASE_PROG(_h) \
+       program { name, "base/"_h; \
+               signal, "go,"_h; \
+               source, "prog"; \
+               action, STATE_SET "height/"_h 0.0; \
+               transition, SINUSOIDAL ANI_TIME; \
+               target, "base"; \
+               after, "base/end"; \
+       }
+
+group { name, "main/day/tb/layout";
+
+       images {
+               image, "calendar_selected.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 (130 * 24);
+                               color, 0 0 0 0;
+                       }
+                       TBASE_DESC( 1) TBASE_DESC( 2) TBASE_DESC( 3) TBASE_DESC( 4)
+                       TBASE_DESC( 5) TBASE_DESC( 6) TBASE_DESC( 7) TBASE_DESC( 8)
+                       TBASE_DESC( 9) TBASE_DESC(10) TBASE_DESC(11) TBASE_DESC(12)
+                       TBASE_DESC(13) TBASE_DESC(14) TBASE_DESC(15) TBASE_DESC(16)
+                       TBASE_DESC(17) TBASE_DESC(18) TBASE_DESC(19) TBASE_DESC(20)
+                       TBASE_DESC(21) TBASE_DESC(22) TBASE_DESC(23) TBASE_DESC(24)
+               }
+               programs {
+                       TBASE_PROG( 1) TBASE_PROG( 2) TBASE_PROG( 3) TBASE_PROG( 4)
+                       TBASE_PROG( 5) TBASE_PROG( 6) TBASE_PROG( 7) TBASE_PROG( 8)
+                       TBASE_PROG( 9) TBASE_PROG(10) TBASE_PROG(11) TBASE_PROG(12)
+                       TBASE_PROG(13) TBASE_PROG(14) TBASE_PROG(15) TBASE_PROG(16)
+                       TBASE_PROG(17) TBASE_PROG(18) TBASE_PROG(19) TBASE_PROG(20)
+                       TBASE_PROG(21) TBASE_PROG(22) TBASE_PROG(23) TBASE_PROG(24)
+
+                       program { name, "base/end";
+                               action, SIGNAL_EMIT "end,animation" "edj";
+                       }
+               }
+
+               part { name, "tb/base/99";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               TIMEBLOCK( 0, 99,  0)
+               TIMEBLOCK( 1,  0,  0)
+               TIMEBLOCK( 2,  1,  0)
+               TIMEBLOCK( 3,  2,  0)
+               TIMEBLOCK( 4,  3,  0)
+               TIMEBLOCK( 5,  4,  0)
+               TIMEBLOCK( 6,  5,  0)
+               TIMEBLOCK( 7,  6,  0)
+               TIMEBLOCK( 8,  7,  0)
+               TIMEBLOCK( 9,  8,  0)
+               TIMEBLOCK(10,  9,  0)
+               TIMEBLOCK(11, 10,  0)
+               TIMEBLOCK(12, 11, 10)
+               TIMEBLOCK(13, 12, 10)
+               TIMEBLOCK(14, 13, 10)
+               TIMEBLOCK(15, 14, 10)
+               TIMEBLOCK(16, 15, 10)
+               TIMEBLOCK(17, 16, 10)
+               TIMEBLOCK(18, 17, 10)
+               TIMEBLOCK(19, 18, 10)
+               TIMEBLOCK(20, 19, 10)
+               TIMEBLOCK(21, 20, 10)
+               TIMEBLOCK(22, 21, 10)
+               TIMEBLOCK(23, 22, 10)
+       }
+}
+*/
+
+group { name, "main/day/tb";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "sw";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                       }
+               }
+               part { name, "clip";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "sw";
+                               rel2.to, "sw";
+                       }
+               }
+       }
+}
+
+
+group { name, "main/day/tb/block";
+
+       images {
+               image, "calendar_selected.png" COMP;
+               image, DAY_CURRENT_TIME COMP;
+               image, NOSCHEDULE COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       repeat_events, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bg/ampm";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "pm" 0.0;
+                               inherit, "default" 0.0;
+                               color, 0 0 0 10;
+                       }
+               }
+               part { name, "bg/sel";
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2.to, "base";
+                               image {
+                                       normal, "calendar_selected.png";
+                                       border, 3 3 3 3;
+                                       border_scale, 1;
+                               }
+                               visible, 0;
+                       }
+                       description {
+                               state, "selected" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "text/base";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 130 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text";
+                       type, TEXT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "text/base";
+                               rel2.to, "text/base";
+                               text {
+                                       font, "SLP:style=Medium";
+                                       size, 30;
+                                       align, 0.6 0.0;
+                               }
+                               color, 0 0 0 255;
+                       }
+                       description {
+                               state, "hide" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 0;
+                       }
+               }
+               part { name, "line/hori";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 1;
+                               fixed, 0 1;
+                               rel1 {
+                                       relative, 1.0 1.0; offset, 0 -1;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2.to, "base";
+                               color, COLOR_OF_HORIZEN_LINE_FOR_TAB;
+                               align, 0.5 0.0;
+                       }
+               }
+               part { name, "line/hori_mid";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 1;
+                               fixed, 0 1;
+                               rel1 {
+                                       relative, 1.0 0.5; offset, 0 -1;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2{
+                                       relative, 1.0 0.5;
+                                       to, "base";
+                               }
+                               color, COLOR_OF_MIDDLE_LINE_FOR_TAB;
+                               align, 0.5 0.0;
+                       }
+               }
+               part { name, "line/vert";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 1 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "text/base"; }
+                               rel2 { relative, 1.0 1.0; to, "text/base"; }
+                               color, COLOR_OF_VERT_LINE_FOR_TAB;
+                               align, 1.0 0.5;
+                       }
+               }
+               part { name, "evtbase/top";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2 { relative, 1.0 0.5; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "evtbase/bottom";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bg/contracted";
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 62;
+                               fixed, 0 1;
+                               rel1 {
+                                       relative, 1.0 0.0; offset, 0 10;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;offset, 0 -12;
+                                       to_x, "base"; to_y, "base";
+                               }
+                               image {
+                                       normal, "P01_noschedule.png";
+                                       border, 3 3 3 3;
+                                       border_scale, 1;
+                               }
+                               align, 0.5 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "contracted" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "line/on_time";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 4;
+                               fixed, 0 1;
+                               rel1 {
+                                       relative, 1.0 0.5; offset, 0 -2;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2{
+                                       relative, 1.0 0.5;
+                                       to, "base";
+                               }
+                               color, COLOR_OF_ON_TIME_LINE_FOR_TAB;
+                               align, 0.5 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "show" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "line/on_time/img";
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 9 18;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2{
+                                       relative, 1.0 0.5;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               align, 1.0 0.5;
+                               image.normal, "P01_day_current_time.png";
+                               visible, 0;
+                       }
+                       description {
+                               state, "show" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+       }
+       programs {
+               program { name, "tb/down";
+                       signal, "mouse,down,1";
+                       source, "base";
+                       action, SIGNAL_EMIT "dn" "edj";
+               }
+               program { name, "tb/up";
+                       signal, "mouse,up,1";
+                       source, "base";
+                       action, SIGNAL_EMIT "up" "edj";
+               }
+               program { name, "tb/select";
+                       signal, "select";
+                       source, "prog";
+                       action, STATE_SET "selected" 0.0;
+                       target, "bg/sel";
+               }
+               program { name, "tb/unselect";
+                       signal, "unselect";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "bg/sel";
+               }
+               program { name, "tb/am";
+                       signal, "am";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "bg/ampm";
+               }
+               program { name, "tb/pm";
+                       signal, "pm";
+                       source, "prog";
+                       action, STATE_SET "pm" 0.0;
+                       target, "bg/ampm";
+               }
+               program { name, "tb/text/show";
+                       signal, "show,text";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "text";
+               }
+               program { name, "tb/text/hide";
+                       signal, "hide,text";
+                       source, "prog";
+                       action, STATE_SET "hide" 0.0;
+                       target, "text";
+               }
+               program { name, "tb/on_time/show";
+                       signal, "show,line";
+                       source, "prog";
+                       action, STATE_SET "show" 0.0;
+                       target, "line/on_time";
+               }
+               program { name, "tb/on_time/show/img";
+                       signal, "show,img";
+                       source, "prog";
+                       action, STATE_SET "show" 0.0;
+                       target, "line/on_time/img";
+               }
+               program { name, "tb/on_time/hide";
+                       signal, "hide,line";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "line/on_time";
+               }
+               program { name, "tb/on_time/hide/img";
+                       signal, "hide,img";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "line/on_time/img";
+               }
+               program { name, "tb/contracted";
+                       signal, "contracted";
+                       source, "prog";
+                       action, STATE_SET "contracted" 0.0;
+                       target, "bg/contracted";
+               }
+               program { name, "tb/uncontracted";
+                       signal, "uncontracted";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "bg/contracted";
+               }
+       }
+}
+
+
+
+group { name, "main/day/tb/event";
+
+       images {
+               image, CALENDAR_EVENT_BG_1 COMP;
+               image, CALENDAR_EVENT_BG_2 COMP;
+               image, CALENDAR_EVENT_BG_3 COMP;
+               image, CALENDAR_EVENT_BG_4 COMP;
+       }
+
+       styles {
+               style { name, "event_textblock";
+                       base, "font=SLP:style=Roman font_size=30 color=#FFFFFFFF wrap=word";
+                       tag,  "br" "\n";
+                       tag,  "ps" "ps";
+                       tag,  "hilight" "+ font=SLP:style=Bold";
+                       tag,  "b" "+ font=SLP:style=Bold";
+                       tag,  "tab" "\t";
+               }
+               style { name, "event_textblock_p";
+                       base, "font=SLP:style=Roman font_size=30 color=#000000FF wrap=word";
+                       tag,  "br" "\n";
+                       tag,  "ps" "ps";
+                       tag,  "hilight" "+ font=SLP:style=Bold";
+                       tag,  "b" "+ font=SLP:style=Bold";
+                       tag,  "tab" "\t";
+               }
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 65;
+                               fixed, 0 1;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bg/top";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 5;
+                               fixed, 0 1;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                               align, 0.5 0.0;
+                       }
+               }
+               part { name, "bg/bottom";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 5;
+                               fixed, 0 1;
+                               rel1 { relative, 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                               align, 0.5 1.0;
+                       }
+               }
+               part { name, "bg/left";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 2 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               color, 0 0 0 0;
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "bg/right";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 2 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                               align, 1.0 0.5;
+                       }
+               }
+               part { name, "bg";
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 1.0;
+                                       to_x, "bg/left"; to_y, "bg/top";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to_x, "bg/right"; to_y, "bg/bottom";
+                               }
+                               image {
+                                       border, 4 4 4 4;
+                                       border_scale, 1;
+                                       normal, "57_calendar_event(1)_bg.png";
+                               }
+                               color, 255 255 255 200;
+                       }
+                       description {
+                               state, "bg2" 0.0;
+                               inherit, "default" 0.0;
+                               image.normal, "57_calendar_event(2)_bg.png";
+                       }
+                       description {
+                               state, "bg3" 0.0;
+                               inherit, "default" 0.0;
+                               image.normal, "57_calendar_event(3)_bg.png";
+                       }
+                       description {
+                               state, "bg4" 0.0;
+                               inherit, "default" 0.0;
+                               image.normal, "57_calendar_event(4)_bg.png";
+                       }
+               }
+               part { name, "text/top";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 10;
+                               fixed, 0 1;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                               align, 0.5 0.0;
+                       }
+               }
+               part { name, "text/bottom";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 10;
+                               fixed, 0 1;
+                               rel1 { relative, 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                               align, 0.5 1.0;
+                       }
+               }
+               part { name, "text/left";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               color, 0 0 0 0;
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "text/right";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                               align, 1.0 0.5;
+                       }
+               }
+               part { name, "text";
+                       type, TEXTBLOCK;
+                       scale, 1;
+                       multiline, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 1.0;
+                                       to_x, "text/left"; to_y, "text/top";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to_x, "text/right"; to_y, "text/bottom";
+                               }
+                               text.style, "event_textblock";
+                       }
+                       description {
+                               state, "down" 0.0;
+                               inherit, "default" 0.0;
+                               text.style, "event_textblock_p";
+                       }
+               }
+               part { name, "evt";
+                       type, RECT;
+                       repeat_events, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "longpressed" 0.0;
+                               inherit, "default" 0.0;
+                               color, 255 0 0 50;
+                       }
+               }
+       }
+
+       programs {
+               program { name, "bg/1";
+                       signal, "bg,color0";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "bg";
+               }
+               program { name, "bg/2";
+                       signal, "bg,color1";
+                       source, "prog";
+                       action, STATE_SET "bg2" 0.0;
+                       target, "bg";
+               }
+               program { name, "bg/3";
+                       signal, "bg,color2";
+                       source, "prog";
+                       action, STATE_SET "bg3" 0.0;
+                       target, "bg";
+               }
+               program { name, "bg/4";
+                       signal, "bg,color3";
+                       source, "prog";
+                       action, STATE_SET "bg4" 0.0;
+                       target, "bg";
+               }
+               program { name, "evt/down";
+                       signal, "mouse,down,1";
+                       source, "evt";
+                       action, SIGNAL_EMIT "dn" "edj";
+               }
+               program { name, "evt/up";
+                       signal, "mouse,up,1";
+                       source, "evt";
+                       action, SIGNAL_EMIT "up" "edj";
+               }
+               program { name, "evt/sel";
+                       signal, "select";
+                       source, "prog";
+                       action, STATE_SET "down" 0.0;
+                       target, "text";
+               }
+               program { name, "evt/unsel";
+                       signal, "unselect";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "text";
+               }
+               program { name, "longpress/on";
+                       signal, "longpress,on";
+                       source, "prog";
+                       action, STATE_SET "longpressed" 0.0;
+                       target, "evt";
+               }
+               program { name, "longpress/off";
+                       signal, "longpress,off";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "evt";
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.edc b/data/edc/layout/inc.main.edc
new file mode 100755 (executable)
index 0000000..bad8c11
--- /dev/null
@@ -0,0 +1,209 @@
+// Main view layout
+#define HEIGHT_OF_MAIN_VIEW 920
+#define WIDTH_OF_MAIN_VIEW 480
+#define HEIGHT_OF_NAVIFRAME 100
+#define HEIGHT_OF_CONTROLBAR 106
+#define HEIGHT_OF_TITLE 55
+#define HEIGHT_OF_TAB 104
+#define WIDTH_OF_TABLBAR 81
+
+group { name, "main";
+
+       images {
+               image, CALENDAR_BG_2 COMP;
+               image, BG COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "bg";
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               image {
+                                       normal, "P01_bg.png";
+                               }
+                       }
+                       description {
+                               state, "left_offset" 0.0;
+                               inherit, "default" 0.0;
+                               rel1 { relative, (-WIDTH_OF_TABLBAR)/WIDTH_OF_MAIN_VIEW 0.0; to, "base";  }
+                               rel2 { relative, (WIDTH_OF_MAIN_VIEW - WIDTH_OF_TABLBAR)/WIDTH_OF_MAIN_VIEW 1.0; to, "base";  }
+                       }
+               }
+
+               part { name, "cont/left";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1 { relative, 0.0 0.0; to, base; }
+                               rel2 { relative, 0.0 1.0; to, base; }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "left_offset" 0.0;
+                               inherit, "default" 0.0;
+                               rel1 { relative, (-WIDTH_OF_TABLBAR)/WIDTH_OF_MAIN_VIEW 0.0; to, "base";  }
+                               rel2 { relative, (-WIDTH_OF_TABLBAR)/WIDTH_OF_MAIN_VIEW 1.0; to, "base";  }
+                       }
+               }
+
+               part { name, "cont/right";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, base; }
+                               rel2 { relative, 1.0 1.0; to, base; }
+                               align, 1.0 0.5;
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "left_offset" 0.0;
+                               inherit, "default" 0.0;
+                               rel1 { relative, (WIDTH_OF_MAIN_VIEW-WIDTH_OF_TABLBAR)/WIDTH_OF_MAIN_VIEW 0.0; to, "base";  }
+                               rel2 { relative, (WIDTH_OF_MAIN_VIEW-WIDTH_OF_TABLBAR)/WIDTH_OF_MAIN_VIEW 1.0; to, "base";  }
+                       }
+               }
+
+               part { name, "cont";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 1.0;
+                                       to_x, "cont/left"; to_y, "title";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "cont/right"; to_y, "base";
+                               }
+                       }
+                       description {
+                               state, "no_title" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "cont/left"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "cont/right"; to_y, "base";
+                               }
+                       }
+               }
+
+               part { name, "title";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, base; }
+                               rel2 { relative, 1.0 HEIGHT_OF_TITLE/HEIGHT_OF_MAIN_VIEW; to, base; }
+                               align, 0.5 0.0;
+                               visible, 1;
+                       }
+                       description {
+                               state, "no_title" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "left_offset" 0.0;
+                               inherit, "default" 0.0;
+                               rel1 { relative, (-WIDTH_OF_TABLBAR)/WIDTH_OF_MAIN_VIEW 0.0; to, "base";  }
+                               rel2 { relative, (WIDTH_OF_MAIN_VIEW-WIDTH_OF_TABLBAR)/WIDTH_OF_MAIN_VIEW HEIGHT_OF_TITLE/HEIGHT_OF_MAIN_VIEW; to, "base";  }
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.tabbar";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 1.0 0.0; to: "base";}
+                               rel2 { relative: (WIDTH_OF_MAIN_VIEW+WIDTH_OF_TABLBAR)/WIDTH_OF_MAIN_VIEW 1.0; to: "base";}
+                       }
+                       description {
+                               state: "left_offset" 0.0;
+                               inherit: "default" 0.0;
+                               rel1 { relative: (WIDTH_OF_MAIN_VIEW-WIDTH_OF_TABLBAR)/WIDTH_OF_MAIN_VIEW 0.0; to: "base";}
+                               rel2 { relative: 1.0 1.0; to: "base";}
+                       }
+               }
+       }
+
+       programs {
+               program { name, "main/title/hide";
+                       signal, "hide,title";
+                       source, "prog";
+                       action, STATE_SET "no_title" 0.0;
+                       target, "title";
+                       target, "cont";
+               }
+
+               program { name, "main/title/show";
+                       signal, "show,title";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "title";
+                       target, "cont";
+                       transition: LINEAR 0.3;
+               }
+
+               program { name, "main/title/show/left";
+                       signal, "show,title,left";
+                       source, "prog";
+                       action, STATE_SET "left_offset" 0.0;
+                       target, "title";
+                       transition: LINEAR 0.3;
+               }
+
+               program { name, "main/title/cont/left";
+                       signal, "show,title,left";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "cont";
+                       transition: LINEAR 0.3;
+               }
+
+               program { name, "main/left/offset";
+                       signal, "left,offset";
+                       source, "prog";
+                       action, STATE_SET "left_offset" 0.0;
+                       target : "cont/right";
+                       target : "cont/left";
+                       target,  "bg";
+                       target : "elm.swallow.tabbar";
+                       transition: LINEAR 0.3;
+               }
+
+               program { name, "main/default";
+                       signal, "right,default";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target : "cont/right";
+                       target : "cont/left";
+                       target, "bg";
+                       target : "elm.swallow.tabbar";
+                       transition: LINEAR 0.3;
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.month.cal.edc b/data/edc/layout/inc.main.month.cal.edc
new file mode 100755 (executable)
index 0000000..099e980
--- /dev/null
@@ -0,0 +1,433 @@
+//base 690x850
+//HD size 720x1280
+
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define HEIGHT_OF_WDAY (47.0*R_Y)
+#define HEIGHT_OF_WDAY_LINE (3.0*R_Y)
+#define HEIGHT_OF_DAY_BLOCK (107.0*R_Y)
+#define WIDTH_OF_DAY_BLOCK (103.0*R_X)
+#define HEIGHT_OF_DAY_CHECK (32.0*R_Y)
+#define WIDTH_OF_DAY_CHECK (32.0*R_X)
+
+#define WD(_pos) \
+       part { name, "wday/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative: (_pos % 7 / 7) 0; \
+                               to, "wday/base"; \
+                       } \
+                       rel2 { \
+                               relative: (_pos % 7 / 7 + 1 / 7) 1; \
+                               to, "wday/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "wday/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wday/"#_pos"/base"; \
+                       rel2.to, "wday/"#_pos"/base"; \
+                       color, COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 26; \
+                       } \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+       } \
+       programs { \
+               program { name, "wday/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+               program { name, "wday/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+               program { name, "wday/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+       }
+
+
+// day block
+#define DB(_pos) \
+       part { name, "db/"#_pos"/base"; \
+               type, RECT; \
+               ignore_flags, ON_HOLD; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 7 / 7) \
+                                       (_pos / 7 / 6 - _pos % 7 / 7 / 6); \
+                               to, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 7 / 7 + 1 / 7) \
+                                       (_pos / 7 / 6 - _pos % 7 / 7 / 6 + 1 / 6); \
+                               to, "day/base"; \
+                               offset, 0 0; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/today"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_TODAY_FOR_MONTH_CAL; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/sel"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "db/"#_pos"/base"; \
+                       } \
+                       image { \
+                               normal, CALENDAR_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/bg"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "db/"#_pos"/base"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_VIEW_PRESS; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 30; \
+                               align, 0.2 0.0; \
+                       } \
+                       color, COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "disabled" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+       } \
+       part { name, "db/"#_pos"/check"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { relative, (WIDTH_OF_DAY_BLOCK-WIDTH_OF_DAY_CHECK)/WIDTH_OF_DAY_BLOCK (HEIGHT_OF_DAY_BLOCK-HEIGHT_OF_DAY_CHECK)/HEIGHT_OF_DAY_BLOCK;      to, "db/"#_pos"/base";  } \
+                       rel2.to, "db/"#_pos"/base"; \
+                       color, COLOR_OF_CHECK_BASE_FOR_MONTH_CAL; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "checked" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text_on_check"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/check"; \
+                       rel2.to, "db/"#_pos"/check"; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "checked" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/block"; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       color, 0 0 0 0; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "disabled" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       programs { \
+               program { name, "db/"#_pos"/go_down"; \
+                       signal, "dn,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "db/"#_pos"/bg"; \
+               } \
+               program { name, "db/"#_pos"/go_up"; \
+                       signal, "up,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/bg"; \
+               } \
+               program { name, "db/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "db/"#_pos"/base"; \
+                       action, SIGNAL_EMIT "dn,"_pos "cal"; \
+               } \
+               program { name, "db/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "db/"#_pos"/base"; \
+                       action, SIGNAL_EMIT "up,"_pos "cal"; \
+               } \
+               program { name, "db/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+               } \
+               program { name, "db/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+               } \
+               program { name, "db/"#_pos"/set_today"; \
+                       signal, "today,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "today" 0.0; \
+                       target, "db/"#_pos"/today"; \
+               } \
+               program { name, "db/"#_pos"/unset_today"; \
+                       signal, "notoday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/today"; \
+               } \
+               program { name, "db/"#_pos"/set_check"; \
+                       signal, "check,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "checked" 0.0; \
+                       target, "db/"#_pos"/check"; \
+                       target, "db/"#_pos"/text_on_check"; \
+               } \
+               program { name, "db/"#_pos"/unset_check"; \
+                       signal, "uncheck,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/check"; \
+                       target, "db/"#_pos"/text_on_check"; \
+               } \
+               program { name, "db/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/disable"; \
+                       signal, "disable,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "disabled" 0.0; \
+                       target, "db/"#_pos"/text"; \
+                       target, "db/"#_pos"/block"; \
+               } \
+               program { name, "db/"#_pos"/enable"; \
+                       signal, "enable,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/block"; \
+               } \
+       }
+
+// vertical line
+#define VL(_pos) \
+       part { name, "vl/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos / 7) 0; \
+                               offset, -1 -1; \
+                               to, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos / 7) 1; \
+                               offset, -1 -1; \
+                               to, "day/base"; \
+                       } \
+                       color, COLOR_OF_LINE_FOR_MONTH_CAL; \
+               } \
+       }
+
+// horizontal line
+#define HL(_pos) \
+       part { name, "hl/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0 (_pos / 6); \
+                               to, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1 (_pos / 6); \
+                               offset, -1 0; \
+                               to, "day/base"; \
+                       } \
+                       color, COLOR_OF_LINE_FOR_MONTH_CAL; \
+               } \
+       }
+
+
+group { name, "main/month/cal";
+
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, EVENT COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 (0/HEIGHT_OF_CALENDAR_SW); to, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               rel2 { relative, 1.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               WD(0) WD(1) WD(2) WD(3) WD(4) WD(5) WD(6)
+
+               DB( 0) DB( 1) DB( 2) DB( 3) DB( 4) DB( 5) DB( 6)
+               DB( 7) DB( 8) DB( 9) DB(10) DB(11) DB(12) DB(13)
+               DB(14) DB(15) DB(16) DB(17) DB(18) DB(19) DB(20)
+               DB(21) DB(22) DB(23) DB(24) DB(25) DB(26) DB(27)
+               DB(28) DB(29) DB(30) DB(31) DB(32) DB(33) DB(34)
+               DB(35) DB(36) DB(37) DB(38) DB(39) DB(40) DB(41)
+
+               VL( 1) VL( 2) VL( 3) VL( 4) VL( 5) VL( 6) VL(7)
+               HL( 0) HL( 1) HL( 2) HL( 3) HL( 4) HL( 5) HL(6)
+       }
+}
diff --git a/data/edc/layout/inc.main.month.cal.weekly.edc b/data/edc/layout/inc.main.month.cal.weekly.edc
new file mode 100755 (executable)
index 0000000..5e51726
--- /dev/null
@@ -0,0 +1,950 @@
+//HD size 720x1280
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define HEIGHT_OF_WEEK_THIS (105.0*R_Y)
+#define HEIGHT_OF_TOP (50.0*R_Y)
+#define HEIGHT_OF_EVENT (34.0*R_Y)
+#define HEIGHT_OF_GAP (2.0*R_Y)
+#define HEIGHT_OF_CHECK (32.0*R_Y)
+#define HEIGHT_OF_HEADER (50.0*R_Y)
+#define HEIGHT_OF_FOCUSE_WEEK (270.0*R_Y)
+#define WIDTH_OF_DAY (720.0/7*R_X)
+#define HEIGHT_OF_LINE_CAL_Y (2.0*R_Y)
+#define HEIGHT_OF_LINE_CAL_X (2.0*R_Y)
+#define HEIGHT_OF_LINE_HEADER_X (3.0*R_Y)
+
+#define WD(_pos) \
+       part { name, "wday/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative: (_pos % 7 / 7) 0; \
+                               to, "wday/base"; \
+                       } \
+                       rel2 { \
+                               relative: (_pos % 7 / 7 + 1 / 7) 1; \
+                               to, "wday/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "wday/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wday/"#_pos"/base"; \
+                       rel2.to, "wday/"#_pos"/base"; \
+                       color, COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 26; \
+                       } \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+       } \
+       programs { \
+               program { name, "wday/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+               program { name, "wday/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+               program { name, "wday/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+       }
+
+
+// day block
+#define WWDB(_line,_pos) \
+       part { name, "db/"#_pos"/base"; \
+               type, RECT; \
+               ignore_flags, ON_HOLD; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 7 / 7) \
+                                       1.0; \
+                               to_x, "base"; \
+                               to_y, "db/"_line"/base"; \
+                               offset, 0 HEIGHT_OF_LINE_CAL_Y; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 7 / 7 + 1 / 7) \
+                                       1.0; \
+                               to_x, "base"; \
+                               to_y, "db/"_line"/base"; \
+                               offset, 0 (HEIGHT_OF_WEEK_THIS+HEIGHT_OF_LINE_CAL_Y); \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "default" 1.0; \
+                       rel1 { \
+                               relative, (_pos % 7 / 7) \
+                                       1.0; \
+                               to_x, "base"; \
+                               to_y, "db/"_line"/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 7 / 7 + 1 / 7) \
+                                       1.0; \
+                               to_x, "base"; \
+                               to_y, "db/"_line"/base"; \
+                               offset, 0 HEIGHT_OF_FOCUSE_WEEK; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/today"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       color, COLOR_OF_TODAY_FOR_MONTH_CAL; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/sel"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "db/"#_pos"/base"; \
+                       } \
+                       image { \
+                               normal, CALENDAR_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/bg"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "db/"#_pos"/base"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_VIEW_PRESS; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 30; \
+                               align, 0.2 0.0; \
+                       } \
+                       color, COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "disabled" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+       } \
+       part { name, "db/"#_pos"/check"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               offset,(WIDTH_OF_DAY-HEIGHT_OF_CHECK) (HEIGHT_OF_WEEK_THIS-HEIGHT_OF_CHECK); \
+                               to, "db/"#_pos"/base"; \
+                       } \
+                       rel2.to, "db/"#_pos"/base"; \
+                       color, COLOR_OF_CHECK_BASE_FOR_MONTH_CAL; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "checked" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text_on_check"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/check"; \
+                       rel2.to, "db/"#_pos"/check"; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "checked" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/block"; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       color, 0 0 0 0; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "disabled" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       programs { \
+               program { name, "db/"#_pos"/go_down"; \
+                       signal, "dn,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "db/"#_pos"/bg"; \
+               } \
+               program { name, "db/"#_pos"/go_up"; \
+                       signal, "up,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/bg"; \
+               } \
+               program { name, "db/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "db/"#_pos"/base"; \
+                       action, SIGNAL_EMIT "dn,"_pos "cal"; \
+               } \
+               program { name, "db/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "db/"#_pos"/base"; \
+                       action, SIGNAL_EMIT "up,"_pos "cal"; \
+               } \
+               program { name, "db/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+               } \
+               program { name, "db/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+               } \
+               program { name, "db/"#_pos"/set_today"; \
+                       signal, "today,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "today" 0.0; \
+                       target, "db/"#_pos"/today"; \
+               } \
+               program { name, "db/"#_pos"/unset_today"; \
+                       signal, "notoday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/today"; \
+               } \
+               program { name, "db/"#_pos"/set_focus_week"; \
+                       signal, "week,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 1.0; \
+                       target, "db/"#_pos"/base"; \
+               } \
+               program { name, "db/"#_pos"/unset_focus_week"; \
+                       signal, "noweek,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/base"; \
+               } \
+               program { name, "db/"#_pos"/set_check"; \
+                       signal, "check,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "checked" 0.0; \
+                       target, "db/"#_pos"/check"; \
+                       target, "db/"#_pos"/text_on_check"; \
+               } \
+               program { name, "db/"#_pos"/unset_check"; \
+                       signal, "uncheck,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/check"; \
+                       target, "db/"#_pos"/text_on_check"; \
+               } \
+               program { name, "db/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/disable"; \
+                       signal, "disable,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "disabled" 0.0; \
+                       target, "db/"#_pos"/text"; \
+                       target, "db/"#_pos"/block"; \
+               } \
+               program { name, "db/"#_pos"/enable"; \
+                       signal, "enable,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/block"; \
+               } \
+       }
+
+// vertical line
+#undef VL
+#define VL(_pos) \
+       part { name, "vl/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos / 7) 0; \
+                               to, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos / 7) 1; \
+                               offset, 0 (-1.0*HEIGHT_OF_LINE_CAL_X); \
+                               to, "day/base"; \
+                       } \
+                       color, COLOR_OF_LINE_FOR_MONTH_CAL; \
+               } \
+       }
+
+// horizontal line
+#define WHL(_line,_pos) \
+       part { name, "hl/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0 1.0; \
+                               offset, 0 -1; \
+                               to_x, "day/base"; \
+                               to_y, "db/"_line"/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1 1.0; \
+                               offset, -1 -1; \
+                               to_x, "day/base"; \
+                               to_y, "db/"_line"/base"; \
+                       } \
+                       color, COLOR_OF_LINE_FOR_MONTH_CAL; \
+               } \
+       }
+
+
+group { name, "main/month/cal/weekly";
+
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, EVENT COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 (0/580); offset, 0 0; to, "base"; }
+                               rel2 { relative, 1.0 (0/580); offset, 0 HEIGHT_OF_HEADER; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 0; to, "wday/base"; }
+                               rel2 { relative, 1.0 1.0; offset, 0 0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "db/100/base";
+                       type, RECT;
+                       ignore_flags, ON_HOLD;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to, "day/base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to, "day/base";
+                                       offset, 0 0;
+                               }
+                       color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_LINE_HEADER_X); to, "wday/base"; }
+                               rel2 { relative, 1.0 1.0; offset, 0 0; to, "wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               WD(0) WD(1) WD(2) WD(3) WD(4) WD(5) WD(6)
+
+               WWDB(100, 0) WWDB(100, 1) WWDB(100, 2) WWDB(100, 3) WWDB(100, 4) WWDB(100, 5) WWDB(100, 6)
+               WWDB(0, 7)   WWDB(0, 8)   WWDB(0, 9)   WWDB(0,10)   WWDB(0,11)   WWDB(0,12)   WWDB(0,13)
+               WWDB(7,14)   WWDB(7,15)   WWDB(7,16)   WWDB(7,17)   WWDB(7,18)   WWDB(7,19)   WWDB(7,20)
+               WWDB(14,21)  WWDB(14,22)  WWDB(14,23)  WWDB(14,24)  WWDB(14,25)  WWDB(14,26)  WWDB(14,27)
+               WWDB(21,28)  WWDB(21,29)  WWDB(21,30)  WWDB(21,31)  WWDB(21,32)  WWDB(21,33)  WWDB(21,34)
+               WWDB(28,35)  WWDB(28,36)  WWDB(28,37)  WWDB(28,38)  WWDB(28,39)  WWDB(28,40)  WWDB(28,41)
+
+               VL( 1) VL( 2) VL( 3) VL( 4) VL( 5) VL( 6)
+               WHL(0,1) WHL(7,2) WHL(14,3) WHL(21,4) WHL(28,5) WHL(35,6)
+
+               part { name, "list/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/0/base";
+                                       offset, 0 HEIGHT_OF_TOP;
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/0/base";
+                                       offset, 0 HEIGHT_OF_FOCUSE_WEEK;
+                               }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/7/base";
+                                       offset, 0 HEIGHT_OF_TOP;
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/7/base";
+                                       offset, 0 HEIGHT_OF_FOCUSE_WEEK;
+                               }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.2;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/14/base";
+                                       offset, 0 HEIGHT_OF_TOP;
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/14/base";
+                                       offset, 0 HEIGHT_OF_FOCUSE_WEEK;
+                               }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.3;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/21/base";
+                                       offset, 0 HEIGHT_OF_TOP;
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/21/base";
+                                       offset, 0 HEIGHT_OF_FOCUSE_WEEK;
+                               }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.4;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/28/base";
+                                       offset, 0 HEIGHT_OF_TOP;
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/28/base";
+                                       offset, 0 HEIGHT_OF_FOCUSE_WEEK;
+                               }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.5;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/35/base";
+                                       offset, 0 HEIGHT_OF_TOP;
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to_x, "base";
+                                       to_y, "db/35/base";
+                                       offset, 0 HEIGHT_OF_FOCUSE_WEEK;
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "list/sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "list/base";
+                               rel2.to, "list/base";
+                       }
+               }
+
+               program { name, "db/set_focus_week/events/line1";
+                       signal, "week,0";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "list/base";
+               }
+               program { name, "db/set_focus_week/events/line2";
+                       signal, "week,7";
+                       source, "prog";
+                       action, STATE_SET "default" 0.1;
+                       target, "list/base";
+               }
+               program { name, "db/set_focus_week/events/line3";
+                       signal, "week,14";
+                       source, "prog";
+                       action, STATE_SET "default" 0.2;
+                       target, "list/base";
+               }
+               program { name, "db/set_focus_week/events/line4";
+                       signal, "week,21";
+                       source, "prog";
+                       action, STATE_SET "default" 0.3;
+                       target, "list/base";
+               }
+               program { name, "db/set_focus_week/events/line5";
+                       signal, "week,28";
+                       source, "prog";
+                       action, STATE_SET "default" 0.4;
+                       target, "list/base";
+               }
+               program { name, "db/set_focus_week/events/line6";
+                       signal, "week,35";
+                       source, "prog";
+                       action, STATE_SET "default" 0.5;
+                       target, "list/base";
+               }
+       }
+}
+
+//week events
+// events block
+#define EB(_last,_line,_pos) \
+       part { name, #_line"/event/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               offset, 0 HEIGHT_OF_GAP; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, _pos/7 1.0; \
+                               offset, 0 HEIGHT_OF_EVENT; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               offset, 0 HEIGHT_OF_GAP; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7 + 1/7) 1.0; \
+                               offset, 0 HEIGHT_OF_EVENT; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.2; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               offset, 0 HEIGHT_OF_GAP; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+2/7) 1.0; \
+                               offset, 0 HEIGHT_OF_EVENT; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.3; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               offset, 0 HEIGHT_OF_GAP; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+3/7) 1.0; \
+                               offset, 0 HEIGHT_OF_EVENT; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.4; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               offset, 0 HEIGHT_OF_GAP; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+4/7) 1.0; \
+                               offset, 0 HEIGHT_OF_EVENT; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.5; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               offset, 0 HEIGHT_OF_GAP; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+5/7) 1.0; \
+                               offset, 0 HEIGHT_OF_EVENT; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.6; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               offset, 0 HEIGHT_OF_GAP; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+6/7) 1.0; \
+                               offset, 0 HEIGHT_OF_EVENT; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.7; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               offset, 0 HEIGHT_OF_GAP; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+7/7) 1.0; \
+                               offset, 0 HEIGHT_OF_EVENT; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+               } \
+       } \
+       part { name, #_line"/bgcolor/"#_pos; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2.to, _line"/event/"_pos; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "green" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 124 167 101 255; \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "blue" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 168 166 229 255; \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "red" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 194 78 62 255; \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "purple" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 127 103 158 255; \
+                       visible, 1; \
+               } \
+       }\
+       programs { \
+               program { name, #_line"/0/"#_pos; \
+                       signal, _line",0,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/1/"#_pos; \
+                       signal, _line",1,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/2/"#_pos; \
+                       signal, _line",2,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.2; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/3/"#_pos; \
+                       signal, _line",3,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.3; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/4/"#_pos; \
+                       signal, _line",4,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.4; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/5/"#_pos; \
+                       signal, _line",5,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.5; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/6/"#_pos; \
+                       signal, _line",6,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.6; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/7/"#_pos; \
+                       signal, _line",7,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.7; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/nocolor/"#_pos; \
+                       signal, _line",nocolor,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, #_line"/bgcolor/"#_pos; \
+               } \
+               program { name, #_line"/green/"#_pos; \
+                       signal, _line",green,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "green" 0.0; \
+                       target, #_line"/bgcolor/"#_pos; \
+               } \
+               program { name, #_line"/blue/"#_pos; \
+                       signal, _line",blue,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "blue" 0.0; \
+                       target, #_line"/bgcolor/"#_pos; \
+               } \
+               program { name, #_line"/red/"#_pos; \
+                       signal, _line",red,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "red" 0.0; \
+                       target, #_line"/bgcolor/"#_pos; \
+               } \
+               program { name, #_line"/purple/"#_pos; \
+                       signal, _line",purple,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "purple" 0.0; \
+                       target, #_line"/bgcolor/"#_pos; \
+               } \
+       }
+
+#define TEXT(_line,_pos) \
+       part { name, #_line"/text/"#_pos; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2.to, _line"/event/"_pos; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, 255 255 255 255; \
+               } \
+       }
+
+
+group { name, "main/month/week/events";
+
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON_2 COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "0/event/0";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0 0.0;
+                                       offset, 0 0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 0 0;
+                                       offset, 0 0;
+                                       to, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               EB(0,1,0) EB(0,1,1) EB(0,1,2) EB(0,1,3) EB(0,1,4) EB(0,1,5) EB(0,1,6) EB(0,1,7)
+               EB(1,2,0) EB(1,2,1) EB(1,2,2) EB(1,2,3) EB(1,2,4) EB(1,2,5) EB(1,2,6) EB(1,2,7)
+               EB(2,3,0) EB(2,3,1) EB(2,3,2) EB(2,3,3) EB(2,3,4) EB(2,3,5) EB(2,3,6) EB(2,3,7)
+               EB(3,4,0) EB(3,4,1) EB(3,4,2) EB(3,4,3) EB(3,4,4) EB(3,4,5) EB(3,4,6) EB(3,4,7)
+               EB(4,5,0) EB(4,5,1) EB(4,5,2) EB(4,5,3) EB(4,5,4) EB(4,5,5) EB(4,5,6) EB(4,5,7)
+
+               TEXT(1,0) TEXT(1,1) TEXT(1,2) TEXT(1,3) TEXT(1,4) TEXT(1,5) TEXT(1,6) TEXT(1,7)
+               TEXT(2,0) TEXT(2,1) TEXT(2,2) TEXT(2,3) TEXT(2,4) TEXT(2,5) TEXT(2,6) TEXT(2,7)
+               TEXT(3,0) TEXT(3,1) TEXT(3,2) TEXT(3,3) TEXT(3,4) TEXT(3,5) TEXT(3,6) TEXT(3,7)
+               TEXT(4,0) TEXT(4,1) TEXT(4,2) TEXT(4,3) TEXT(4,4) TEXT(4,5) TEXT(4,6) TEXT(4,7)
+               TEXT(5,0) TEXT(5,1) TEXT(5,2) TEXT(5,3) TEXT(5,4) TEXT(5,5) TEXT(5,6) TEXT(5,7)
+
+       }
+
+}
diff --git a/data/edc/layout/inc.main.month.edc b/data/edc/layout/inc.main.month.edc
new file mode 100755 (executable)
index 0000000..dfee5c2
--- /dev/null
@@ -0,0 +1,127 @@
+//HD size 720x1280
+#define HEIGHT_OF_MONTH_VIEW (920.0*R_Y)
+#define HEIGHT_OF_CALENDAR_SW (690.0*R_Y)
+#define HEIGHT_OF_WEEK_LINE (2.0*R_Y)
+#define HEIGHT_OF_WEEK (105.0*R_Y)
+#define HEIGHT_OF_VIEW (690.0*R_Y)
+#define HEIGHT_OF_BOTTOM_LINE (3.0*R_Y)
+
+group { name, "main/month";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               rel1 { relative, 0.0 0.0; }
+                               rel2 { relative, 1.0 1.0; }
+                       }
+               }
+
+               part { name, "cal/sw";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_MONTH_VIEW); to, "base"; }
+                       }
+               }
+
+               part { name, "cal/sw/left";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, -1.0 0.0; to_x, "base"; to_y, "cal/sw"; }
+                               rel2 { relative, 0.0 1.0; to_x, "base"; to_y, "cal/sw";}
+                       }
+               }
+
+               part { name, "cal/sw/right";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to_x, "base"; to_y, "cal/sw"; }
+                               rel2 { relative, 2.0 1.0; to_x, "base"; to_y, "cal/sw";}
+                       }
+               }
+
+               part { name, "cal/clip";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 1.0; offset, 0 -2.0; to, "cal/sw"; }
+                       }
+                       description {
+                               state, "default" 1.0;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 ((HEIGHT_OF_VIEW-HEIGHT_OF_WEEK)/HEIGHT_OF_VIEW); offset, 0 -3.0; to, "cal/sw"; }
+                       }
+                       description {
+                               state, "default" 0.5;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 ((HEIGHT_OF_VIEW-2*HEIGHT_OF_WEEK-2*HEIGHT_OF_WEEK_LINE)/HEIGHT_OF_CALENDAR_SW); offset, 0 -2.0; to, "cal/sw"; }
+                       }
+               }
+
+               part { name, "list/base";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.0 1.0;
+                                       to_x, "base"; to_y, "cal/clip";
+                               }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "list/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { to, "list/base"; }
+                               rel2 { relative, 1.0 0.0; offset, 0 HEIGHT_OF_BOTTOM_LINE; to, "list/base"; }
+                               color, COLOR_OF_LIST_LINE_FOR_MONTH;
+                       }
+               }
+
+               part { name, "list/sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1{ relative, 0.0 0.0; offset, 0 2; to, "list/base"; }
+                               rel2.to, "list/base";
+                       }
+               }
+       }
+
+       programs {
+               program { name, "cal/line5";
+                       signal, "go,line5";
+                       source, "prog";
+                       action, STATE_SET "default" 1.0;
+                       target, "cal/clip";
+                       transition, SINUSOIDAL 0.0;
+               }
+               program { name, "cal/line6";
+                       signal, "go,line6";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "cal/clip";
+                       transition, SINUSOIDAL 0.0;
+               }
+               program { name, "cal/line4";
+                       signal, "go,line4";
+                       source, "prog";
+                       action, STATE_SET "default" 0.5;
+                       target, "cal/clip";
+                       transition, SINUSOIDAL 0.0;
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.month.weekly.edc b/data/edc/layout/inc.main.month.weekly.edc
new file mode 100755 (executable)
index 0000000..7a75871
--- /dev/null
@@ -0,0 +1,108 @@
+// 720 x 855
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+//for month view
+#define W (720.0*R_X)
+#define H (855.0*R_Y)
+#define H_WEEK (105.0*R_Y)
+#define H_GAP (2.0*R_Y)
+#define H_LINE (3.0*R_Y)
+
+group { name, "main/month/weekly";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "cal/sw";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; offset, 0 0; to, "base"; }
+                               rel2 { relative, 1.0 0.0; offset, 0 H; to, "base"; }
+                       }
+               }
+
+               part { name, "cal/sw/left";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, -1.0 0.0; to_x, "base"; to_y, "cal/sw"; }
+                               rel2 { relative, 0.0 1.0; to_x, "base"; to_y, "cal/sw";}
+                       }
+               }
+
+               part { name, "cal/sw/right";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to_x, "base"; to_y, "cal/sw"; }
+                               rel2 { relative, 2.0 1.0; to_x, "base"; to_y, "cal/sw";}
+                       }
+               }
+
+               part { name, "cal/clip";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 1.0; offset, 0 0; to, "cal/sw"; }
+                       }
+                       description {
+                               state, "default" 1.0;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 ((H-H_WEEK-H_GAP)/H); offset: 0 0; to, "cal/sw"; }
+                       }
+                       description {
+                               state, "default" 0.5;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 ((H-2*H_WEEK-2*H_GAP)/H); offset: 0 0; to, "cal/sw"; }
+                       }
+               }
+               part { name, "list/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 0; to, "cal/clip";  }
+                               rel2 { relative, 1.0 1.0; offset, 0 H_LINE; to, "cal/clip"; }
+                               color, COLOR_OF_LIST_LINE_FOR_MONTH;
+                       }
+               }
+       }
+
+       programs {
+               program { name, "cal/line5";
+                       signal, "go,line5";
+                       source, "prog";
+                       action, STATE_SET "default" 1.0;
+                       target, "cal/clip";
+                       transition, SINUSOIDAL 0.0;
+               }
+               program { name, "cal/line6";
+                       signal, "go,line6";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "cal/clip";
+                       transition, SINUSOIDAL 0.0;
+               }
+               program { name, "cal/line4";
+                       signal, "go,line4";
+                       source, "prog";
+                       action, STATE_SET "default" 0.5;
+                       target, "cal/clip";
+                       transition, SINUSOIDAL 0.0;
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.tab.edc b/data/edc/layout/inc.main.tab.edc
new file mode 100755 (executable)
index 0000000..78e8eca
--- /dev/null
@@ -0,0 +1,145 @@
+// Main view tab layout
+group { name, "main/tab";
+
+       images {
+               image, CALENDAR_TAB COMP;
+               image, CALENDAR_TAB_FOCUS_BG COMP;
+               image, CALENDAR_TAB_PRESS COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, CALENDAR_TODAY_ICON_PRESS COMP;
+               image, TAB_FOCUS COMP;
+               image, TAB_BG COMP;
+               image, TAB_DEFAULT COMP;
+               image, TAB_PRESS COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "tab/bg";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, base; }
+                               rel2 { relative, 1.0 1.0; offset, 0 0; to, base; }
+                               image.normal, TAB_BG;
+                       }
+               }
+
+#define PART_TAB(_name, x1, x2) \
+               part { name, "tab/"_name"/bg"; \
+                       description { \
+                               state, "default" 0.0; \
+                               rel1 { relative, x1 0.0; to, "tab/bg"; } \
+                               rel2 { relative, x2 1.0; to, "tab/bg"; } \
+                               image.normal, "P01_tab_default.png"; \
+                       } \
+                       description { \
+                               state, "default" 1.0; \
+                               inherit, "default" 0.0; \
+                               image.normal, "P01_tab_press.png"; \
+                       } \
+                       description { \
+                               state, "selected" 0.0; \
+                               inherit, "default" 0.0; \
+                               image.normal, TAB_FOCUS; \
+                       } \
+               } \
+               part { name, "tab/"_name"/text"; \
+                       type, TEXT; \
+                       scale, 1; \
+                       description { \
+                               state, "default" 0.0; \
+                               rel1.to, "tab/"_name"/bg"; \
+                               rel2.to, "tab/"_name"/bg"; \
+                               color, COLOR_OF_TEXT_FOR_MAIN_TAB; \
+                               text { \
+                                       font, "SLP:style=Medium"; \
+                                       size, 30; \
+                                       align, 0.5 0.5; \
+                               } \
+                       } \
+                       description { \
+                               state, "default" 1.0; \
+                               inherit, "default" 0.0; \
+                               color, COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB; \
+                       } \
+                       description { \
+                               state, "selected" 0.0; \
+                               inherit, "default" 0.0; \
+                               color, COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB; \
+                       } \
+               } \
+               part { name, "tab/"_name"/evt"; \
+                       type, RECT; \
+                       description { \
+                               state, "default" 0.0; \
+                               rel1 { to_x, "tab/"_name"/bg"; to_y, "tab/bg"; } \
+                               rel2 { to_x, "tab/"_name"/bg"; to_y, "tab/bg"; } \
+                               color, 0 0 0 0; \
+                       } \
+               }
+
+               PART_TAB("year", (0/4), (1/4))
+               PART_TAB("month", (1/4), (2/4))
+               PART_TAB("day", (2/4), (3/4))
+               PART_TAB("list", (3/4), (4/4))
+       }
+
+       programs {
+               program { name, "tab/reset";
+                       signal, "reset";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "tab/year/bg";
+                       target, "tab/year/text";
+                       target, "tab/month/bg";
+                       target, "tab/month/text";
+                       target, "tab/day/bg";
+                       target, "tab/day/text";
+                       target, "tab/list/bg";
+                       target, "tab/list/text";
+               }
+
+#define PROG_TAB(_name) \
+               program { name, "tab/"_name"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "tab/"_name"/evt"; \
+                       filter, "tab/"_name"/bg" "default"; \
+                       action, STATE_SET "default" 1.0; \
+                       target, "tab/"_name"/bg"; \
+                       target, "tab/"_name"/text"; \
+               } \
+               program { name, "tab/"_name"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "tab/"_name"/evt"; \
+                       filter, "tab/"_name"/bg" "default"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "tab/"_name"/bg"; \
+                       target, "tab/"_name"/text"; \
+               } \
+               program { name, "tab/"_name"/clicked"; \
+                       signal, "mouse,clicked,1"; \
+                       filter, "tab/"_name"/bg" "default"; \
+                       source, "tab/"_name"/evt"; \
+                       action, SIGNAL_EMIT _name "tab"; \
+               } \
+               program { name, "tab/"_name"/select"; \
+                       signal, "select,"_name; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "tab/"_name"/bg"; \
+                       target, "tab/"_name"/text"; \
+               }
+
+               PROG_TAB("year")
+               PROG_TAB("month")
+               PROG_TAB("day")
+               PROG_TAB("list")
+       }
+}
diff --git a/data/edc/layout/inc.main.title.edc b/data/edc/layout/inc.main.title.edc
new file mode 100755 (executable)
index 0000000..2507a00
--- /dev/null
@@ -0,0 +1,133 @@
+// 462 x 632
+group { name, "main/title";
+
+       images {
+               image, CALENDAR_SPIN_ICON_1 COMP;
+               image, CALENDAR_SPIN_ICON_2 COMP;
+       }
+
+       styles {
+               style { name, "main/title";
+                       base, "font=SLP:style=Medium font_size=40 align=center color=#000000ff wrap=none";
+                       tag, "br" "\n";
+                       tag, "hilight" "+ color=#ffff";
+                       tag, "b" "+ color=#ffff";
+                       tag, "g38" "+ color=#879E19 font="FONT_LIG" font_size=38";
+                       tag, "tab" "\t";
+               }
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "title/text";
+                       type, TEXTBLOCK;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               fixed, 0 1;
+                               rel1 { relative, 1.0 0.5; to_x, "title/left"; to_y, "base"; }
+                               rel2 { relative, 0.0 0.5; to_x, "title/right"; to_y, "base"; }
+                               text {
+                                       style, "main/title";
+                                       min, 0 1;
+                               }
+                       }
+               }
+
+               part { name, "title/left";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 58 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to, "base";
+                               }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "title/left/img";
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 12 24;
+                               fixed, 1 1;
+                               rel1 { relative, 0.5 0.5; to, "title/left"; }
+                               rel2 { relative, 0.5 0.5; to, "title/left"; }
+                               align, 0.5 0.5;
+                               image.normal, "57_calendar_spin_01_icon.png";
+                       }
+               }
+
+               part { name, "title/right";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 58 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to, "base";
+                               }
+                               rel2.to, "base";
+                               align, 1.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "title/right/img";
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 12 24;
+                               fixed, 1 1;
+                               rel1 { relative, 0.5 0.5; to, "title/right"; }
+                               rel2 { relative, 0.5 0.5; to, "title/right"; }
+                               align, 0.5 0.5;
+                               image.normal, "57_calendar_spin_02_icon.png";
+                       }
+               }
+       }
+
+       programs {
+               program { name, "title/left/down";
+                       signal, "mouse,down,1";
+                       source, "title/left";
+                       action, SIGNAL_EMIT "start,dec" "title";
+               }
+
+               program { name, "title/left/up";
+                       signal, "mouse,up,1";
+                       source, "title/left";
+                       action, SIGNAL_EMIT "stop,dec" "title";
+               }
+
+               program { name, "title/right/down";
+                       signal, "mouse,down,1";
+                       source, "title/right";
+                       action, SIGNAL_EMIT "start,inc" "title";
+               }
+
+               program { name, "title/right/up";
+                       signal, "mouse,up,1";
+                       source, "title/right";
+                       action, SIGNAL_EMIT "stop,inc" "title";
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.week.edc b/data/edc/layout/inc.main.week.edc
new file mode 100755 (executable)
index 0000000..3208741
--- /dev/null
@@ -0,0 +1,333 @@
+// 462 x 580
+// day block in week view
+#define WDB(_pos) \
+       part { name, "wdb/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 2 / 2) \
+                                       (_pos / 2 / 4 - _pos % 2 / 2 / 4); \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 2 / 2 + 1 / 2) \
+                                       (_pos / 2 / 4 - _pos % 2 / 2 / 4 + 1 / 4); \
+                               to, "wdb/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/sel"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       image { \
+                               normal, CALENDAR_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale, 1; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/bg"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2.to, "wdb/"#_pos"/base"; \
+                       image.normal, CALENDAR_WEEK_VIEW_PRESS; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "down" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 30; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.5 0.0; \
+                       color, 195 192 179 76; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/text"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (72/231) 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 26; \
+                               align, 0.0 0.5; \
+                       } \
+                       color, 105 95 83 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/check"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       rel2 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       min, 44 44; \
+                       fixed, 1 1; \
+                       image.normal, CALENDAR_WEEK_VIEW_BG; \
+                       align, 0.5 0.5; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "checked" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/disable"; \
+               type, SWALLOW; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2.to, "wdb/"#_pos"/base"; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/sw"; \
+               type, SWALLOW; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/base"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2.to, "wdb/"#_pos"/base"; \
+               } \
+               description { \
+                       state, "state_1" 0.0; \
+                       inherit, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/base"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 (1/3); \
+                               offset, 0 30; \
+                               to_x, "wdb/"#_pos"/base"; \
+                               to_y, "wdb/"#_pos"/base"; \
+                       } \
+               } \
+               description { \
+                       state, "state_2" 0.0; \
+                       inherit, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/base"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 (2/3); \
+                               offset, 0 30; \
+                               to_x, "wdb/"#_pos"/base"; \
+                               to_y, "wdb/"#_pos"/base"; \
+                       } \
+               } \
+       } \
+       programs { \
+               program { name, "wdb/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, STATE_SET "down" 0.0; \
+                       target, "wdb/"#_pos"/bg"; \
+               } \
+               program { name, "wdb/"#_pos"/mouse_down"; \
+                       signal, "mouse,down,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "down"; \
+               } \
+               program { name, "wdb/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/bg"; \
+               } \
+               program { name, "wdb/"#_pos"/click"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "cal"; \
+               } \
+               program { name, "wdb/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+               } \
+               program { name, "wdb/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+               } \
+               program { name, "wdb/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+               } \
+               program { name, "wdb/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "wdb/"#_pos"/sel"; \
+               } \
+               program { name, "wdb/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/sel"; \
+               } \
+               program { name, "wdb/"#_pos"/set_check"; \
+                       signal, "check,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "checked" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/unset_check"; \
+                       signal, "uncheck,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/set_sw_1"; \
+                       signal, "set_state_1,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "state_1" 0.0; \
+                       target, "wdb/"#_pos"/sw"; \
+               } \
+               program { name, "wdb/"#_pos"/set_sw_2"; \
+                       signal, "set_state_2,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "state_2" 0.0; \
+                       target, "wdb/"#_pos"/sw"; \
+               } \
+               program { name, "wdb/"#_pos"/set_sw_default"; \
+                       signal, "set_state_default,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/sw"; \
+               } \
+       }
+
+group { name, "main/week";
+
+       images {
+               image, "57_calendar_week_view_press.png" COMP;
+               image, "57_calendar_week_view_bg.png" COMP;
+               image, "calendar_selected.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wdb/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       offset, 0 1;
+                                       to, "base";
+                               }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+
+               WDB( 0) WDB( 1)
+               WDB( 2) WDB( 3)
+               WDB( 4) WDB( 5)
+               WDB( 6) WDB( 7)
+
+               part { name, "wdb/line/top";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       offset, -1 0;
+                                       to, "base";
+                               }
+                               color, 195 192 179 255;
+                       }
+               }
+
+               part { name, "wdb/line/vertical";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.5 0.0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 0.5 1.0;
+                                       offset, 0 -1;
+                                       to, "base";
+                               }
+                               color, 195 192 179 255;
+                       }
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.week.item.edc b/data/edc/layout/inc.main.week.item.edc
new file mode 100755 (executable)
index 0000000..d379c87
--- /dev/null
@@ -0,0 +1,164 @@
+group { name, "main/week/more";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "text";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               text {
+                                       font, "SLP:style=Medium";
+                                       size, 40;
+                                       align, 0.5 0.5;
+                                       text, "...";
+                               }
+                       }
+               }
+       }
+}
+
+group { name, "main/week/1line";
+
+       images {
+               image, CALENDAR_WEEK_ARROW_FOCUS_ICON COMP;
+               image, CALENDAR_WEEK_ARROW_ICON COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               min, 240 20;
+                               fixed, 1 1;
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               visible, 1;
+                       }
+               }
+               part { name, "base/bg";
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               image.normal, CALENDAR_WEEK_VIEW_PRESS;
+                               visible, 0;
+                       }
+                       description {
+                               state, "down" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "icon_bg";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 24;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to, "base";
+                               }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "icon";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 24;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to, "icon_bg";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to, "icon_bg";
+                               }
+                       }
+               }
+
+               part { name, "text_title";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "icon_bg"; to_y, "base";
+                               }
+
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "base"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Medium";
+                                       size, 30;
+                                       align, 0.0 0.5;
+                                       text, "...";
+                               }
+                               color, 255 255 255 255;
+                       }
+               }
+
+               part { name, "text_location";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "icon_bg"; to_y, "base";
+                               }
+
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "base"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Medium";
+                                       size, 22;
+                                       align, 0.0 0.5;
+                                       text, "...";
+                               }
+                               color, 240 240 240 255;
+                       }
+               }
+               programs {
+                       program { name, "base/down";
+                               signal, "mouse,down,1";
+                               source, "base";
+                               action, STATE_SET "down" 0.0;
+                               target, "base/bg";
+                       }
+                       program { name, "base/up";
+                               signal, "mouse,up,1";
+                               source, "base";
+                               action, STATE_SET "default" 0.0;
+                               target, "base/bg";
+                       }
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.year.cal.edc b/data/edc/layout/inc.main.year.cal.edc
new file mode 100755 (executable)
index 0000000..5949db7
--- /dev/null
@@ -0,0 +1,222 @@
+// day block in year
+#define SDB(_pos) \
+       part { name, "sdb/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 7 / 7) \
+                                       (_pos / 7 / 6 - _pos % 7 / 7 / 6); \
+                               to, "sdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 7 / 7 + 1 / 7) \
+                                       (_pos / 7 / 6 - _pos % 7 / 7 / 6 + 1 / 6); \
+                               to, "sdb/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "sdb/"#_pos"/today"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "sdb/"#_pos"/base"; \
+                       rel2.to, "sdb/"#_pos"/base"; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_TODAY_FOR_YEAR_CAL; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "sdb/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "sdb/"#_pos"/base"; \
+                       rel2.to, "sdb/"#_pos"/base"; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 15; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL; \
+               } \
+       } \
+       programs { \
+               program { name, "sdb/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "sdb/"#_pos"/text"; \
+               } \
+               program { name, "sdb/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "sdb/"#_pos"/text"; \
+               } \
+               program { name, "sdb/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "sdb/"#_pos"/text"; \
+               } \
+               program { name, "sdb/"#_pos"/set_today"; \
+                       signal, "today,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "today" 0.0; \
+                       target, "sdb/"#_pos"/today"; \
+               } \
+       }
+
+// day block header in year
+#define SDH(_pos) \
+       part { name, "sdh/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 7 / 7) 0.0; \
+                               to, "sdh/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 7 / 7 + 1 / 7) 1.0; \
+                               to, "sdh/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "sdh/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "sdh/"#_pos"/base"; \
+                       rel2.to, "sdh/"#_pos"/base"; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 12; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL; \
+               } \
+       } \
+       programs { \
+               program { name, "sdh/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "sdh/"#_pos"/text"; \
+               } \
+               program { name, "sdh/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "sdh/"#_pos"/text"; \
+               } \
+               program { name, "sdh/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "sdh/"#_pos"/text"; \
+               } \
+       }
+
+group { name, "main/year/cal";
+
+       images {
+               image, CALENDAR_YEAR_VIEW_BG COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "sdh/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.02 0.02;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 0.98 (0.02 + (1 / 7));
+                                       to, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "sdh/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.0 1.0; offset, 0 -1; to, "sdh/base";
+                               }
+                               rel2.to, "sdh/base";
+                               color, COLOR_OF_LINE_FOR_YEAR_CAL;
+                       }
+               }
+
+               part { name, "sdb/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.02 1.0;
+                                       to_x, "base"; to_y, "sdh/base";
+                               }
+                               rel2 {
+                                       relative, 0.98 0.98;
+                                       to, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               SDH(0) SDH(1) SDH(2) SDH(3) SDH(4) SDH(5) SDH(6)
+
+               SDB( 0) SDB( 1) SDB( 2) SDB( 3) SDB( 4) SDB( 5) SDB( 6)
+               SDB( 7) SDB( 8) SDB( 9) SDB(10) SDB(11) SDB(12) SDB(13)
+               SDB(14) SDB(15) SDB(16) SDB(17) SDB(18) SDB(19) SDB(20)
+               SDB(21) SDB(22) SDB(23) SDB(24) SDB(25) SDB(26) SDB(27)
+               SDB(28) SDB(29) SDB(30) SDB(31) SDB(32) SDB(33) SDB(34)
+               SDB(35) SDB(36) SDB(37) SDB(38) SDB(39) SDB(40) SDB(41)
+       }
+
+}
diff --git a/data/edc/layout/inc.main.year.edc b/data/edc/layout/inc.main.year.edc
new file mode 100755 (executable)
index 0000000..7fa5fa6
--- /dev/null
@@ -0,0 +1,267 @@
+//480 x 620
+//base_real 690x850
+//HD size 720x1280
+#define HD_SCALE 800/1280
+#define WIDTH_OF_YEAR_VIEW (WIDTH_OF_HD-PAD)
+#define PAD 15
+
+#define MB(_pos) \
+       part { name, "mb/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 3 / 3) \
+                                       (_pos / 3 / 4 - _pos % 3 / 3 / 4); \
+                               to, "base_real"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 3 / 3 + 1 / 3) \
+                                       (_pos / 3 / 4 - _pos % 3 / 3 / 4 + 1 / 4); \
+                               to, "base_real"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/sel"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "mb/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "mb/"#_pos"/base"; \
+                       } \
+                       image { \
+                               normal, CALENDAR_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale, 1; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/bg"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "mb/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "mb/"#_pos"/base"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_VIEW_PRESS; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "mb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.15; \
+                               to, "mb/"#_pos"/base"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 22; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, 0 0 0 255; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/sw"; \
+               type, SWALLOW; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 0.15; \
+                               to, "mb/"#_pos"/base"; \
+                       } \
+                       rel2.to, "mb/"#_pos"/base"; \
+               } \
+       } \
+       programs { \
+               program { name, "mb/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "mb/"#_pos"/base"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "mb/"#_pos"/bg"; \
+               } \
+               program { name, "mb/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "mb/"#_pos"/base"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "mb/"#_pos"/bg"; \
+               } \
+               program { name, "mb/"#_pos"/click"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "mb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "cal"; \
+               } \
+               program { name, "mb/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "mb/"#_pos"/sel"; \
+               } \
+               program { name, "mb/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "mb/"#_pos"/sel"; \
+               } \
+       }
+       
+#define HANDLE(_pos) \
+       part { name, "handle/"#_pos"/sw"; \
+               type, SWALLOW; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 3 / 3) \
+                                       (_pos / 3 / 4 - _pos % 3 / 3 / 4); \
+                               to, "base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 3 / 3 + 1 / 3) \
+                                       (_pos / 3 / 4 - _pos % 3 / 3 / 4 + 1 / 4); \
+                               to, "base"; \
+                       } \
+               } \
+       } \
+       
+
+group { name, "year/layout";
+
+       parts {
+
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               rel1 { relative, 0.0 0.0; }
+                               rel2 { relative, 1.0 1.0; }
+                       }
+               }
+
+               part { name, "content";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                       }
+               }
+               
+               part { name, "edje/handle";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                       }
+               }
+               
+               part { name, "content/left";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, -1.0 0.0; to, "content"; }
+                               rel2 { relative, 0.0 1.0; to, "content";}
+                       }
+               }
+
+               part { name, "content/right";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to, "content"; }
+                               rel2 { relative, 2.0 1.0; to, "content";}
+                       }
+               }
+
+               part { name, "clip";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "content";
+                               rel2.to, "content";
+                       }
+               }
+       }
+
+}
+
+group { name, "year/edje/handle";
+
+       parts {
+
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               rel1 { relative, 0.0 0.0; }
+                               rel2 { relative, 1.0 1.0; }
+                       }
+               }
+
+               HANDLE(0) HANDLE(1) HANDLE(2)
+               HANDLE(3) HANDLE(4) HANDLE(5)
+               HANDLE(6) HANDLE(7) HANDLE(8)
+               HANDLE(9) HANDLE(10) HANDLE(11)
+       }
+}
+
+group { name, "main/year/months";
+
+       images {
+               image, "calendar_selected.png" COMP;
+               image, "57_calendar_week_view_press.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 244 240 230 255;
+                       }
+               }
+               part { name, "base_real";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, PAD/WIDTH_OF_HD 0/HEIGHT_OF_HD; }
+                               rel2 { relative, WIDTH_OF_YEAR_VIEW/WIDTH_OF_HD HEIGHT_OF_HD/HEIGHT_OF_HD; }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               MB(0) MB(1) MB(2)
+               MB(3) MB(4) MB(5)
+               MB(6) MB(7) MB(8)
+               MB(9) MB(10) MB(11)
+       }
+}
diff --git a/data/edc/layout/inc.part.edc b/data/edc/layout/inc.part.edc
new file mode 100755 (executable)
index 0000000..8070769
--- /dev/null
@@ -0,0 +1,169 @@
+group { name, "edit/participant";\r
+\r
+       parts {\r
+               part { name, "base";\r
+                       type, RECT;\r
+                       scale,1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               visible, 0;\r
+                       }\r
+               }\r
+               part { name, "mbe/bg";\r
+                       type, RECT;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               rel1.to, "base";\r
+                               rel2.to, "mbe/sw";\r
+                               visible, 0;\r
+                       }\r
+               }\r
+               /*part { name, "label/base";\r
+                       type, RECT;\r
+                       scale, 1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 0 40;\r
+                               fixed, 0 1;\r
+                               rel1.to, "base";\r
+                               rel2 { relative, 1.0 0.0; to, "base"; }\r
+                               color, 0 0 0 0;\r
+                               align, 0.0 0.0;\r
+                       }\r
+               }\r
+               part { name, "label/left";\r
+                       type, RECT;\r
+                       scale, 1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 20 0;\r
+                               fixed, 1 0;\r
+                               rel1.to, "label/base";\r
+                               rel2 { relative, 0.0 0.0; to, "label/base"; }\r
+                               align, 0.0 0.0;\r
+                               color, 0 0 0 0;\r
+                       }\r
+               }\r
+               part { name, "label/text";\r
+                       type, TEXT;\r
+                       scale, 1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               rel1 {\r
+                                       relative, 1.0 0.0;\r
+                                       to_x, "label/left"; to_y, "label/base";\r
+                               }\r
+                               rel2.to, "label/base";\r
+                               text {\r
+                                       font, "SLP:style=Medium";\r
+                                       size, 24;\r
+                                       align, 0.0 1.0;\r
+                               }\r
+                               color, 0 0 0 255;\r
+                       }\r
+               }*/\r
+               part { name, "mbe/sw";\r
+                       type, SWALLOW;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               //rel1 { relative, 0.0 1.0; to, "label/base"; }\r
+                               rel1.to, "base";\r
+                               rel2 { relative, 1.0 0.0; to, "box/base"; }\r
+                               align, 0.0 0.0;\r
+                       }\r
+               }\r
+\r
+               part { name, "box/base";\r
+                       type, RECT;\r
+                       scale, 1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 0 106;\r
+                               fixed, 0 1;\r
+                               rel1 { relative, 0.0 1.0; to, "base"; }\r
+                               rel2.to, "base";\r
+                               visible, 0;\r
+                               align, 0.5 1.0;\r
+                       }\r
+                       description {\r
+                               state, "list" 0.0;\r
+                               inherit, "default" 0.0;\r
+                               min, 0 106;\r
+                       }\r
+               }\r
+               part { name, "box/top_left";\r
+                       type, RECT;\r
+                       scale, 1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 10 10;\r
+                               fixed, 1 1;\r
+                               rel1.to, "box/base";\r
+                               rel2 { relative, 0.0 0.0; to, "box/base"; }\r
+                               align, 0.0 0.0;\r
+                               color, 0 0 0 0;\r
+                       }\r
+               }\r
+               part{ name, "box/bottom_right";\r
+                       type, RECT;\r
+                       scale, 1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 10 10;\r
+                               fixed, 1 1;\r
+                               rel1 { relative, 1.0 1.0; to, "box/base"; }\r
+                               rel2.to, "box/base";\r
+                               color, 0 0 0 0;\r
+                               align, 1.0 1.0;\r
+                       }\r
+               }\r
+               part { name, "box/sw";\r
+                       type, SWALLOW;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               rel1 { relative, 1.0 1.0; to, "box/top_left"; }\r
+                               rel2 { relative, 0.0 0.0; to, "box/bottom_right"; }\r
+                               visible, 1;\r
+                       }\r
+                       description {\r
+                               state, "list" 0.0;\r
+                               inherit, "default" 0.0;\r
+                               visible, 0;\r
+                       }\r
+               }\r
+               part { name, "list/sw";\r
+                       type, SWALLOW;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               rel1.to, "box/base";\r
+                               rel2.to, "box/base";\r
+                               visible, 0;\r
+                       }\r
+                       description {\r
+                               state, "list" 0.0;\r
+                               inherit, "default" 0.0;\r
+                               visible, 1;\r
+                       }\r
+               }\r
+       }\r
+\r
+       programs {\r
+               program { name, "list/show";\r
+                       signal, "show,list";\r
+                       source, "prog";\r
+                       action, STATE_SET "list" 0.0;\r
+                       target, "box/base";\r
+                       target, "box/sw";\r
+                       target, "list/sw";\r
+               }\r
+               program { name, "list/hide";\r
+                       signal, "hide,list";\r
+                       source, "prog";\r
+                       action, STATE_SET "default" 0.0;\r
+                       target, "box/base";\r
+                       target, "box/sw";\r
+                       target, "list/sw";\r
+               }\r
+       }\r
+}\r
+\r
diff --git a/data/edc/layout/inc.ring.edc b/data/edc/layout/inc.ring.edc
new file mode 100755 (executable)
index 0000000..8c754d6
--- /dev/null
@@ -0,0 +1,438 @@
+#define MIN_STATE(_min) \
+       description { \
+               state, _min 0.0; \
+               inherit, "default" 0.0; \
+               image.normal, "ring/minute/58_alarm_clock_minute_"_min".png"; \
+       }
+
+#define MIN_PROG(_min) \
+       program { name, "min/"_min; \
+               signal, "min,"_min; \
+               source, "prog"; \
+               action, STATE_SET _min 0.0; \
+               target, "image/minute"; \
+       }
+
+#define HOUR_STATE(_hour) \
+       description { \
+               state, _hour 0.0; \
+               inherit, "default" 0.0; \
+               image.normal, "ring/hour/58_alarm_clock_hour_"_hour".png"; \
+       }
+
+#define HOUR_PROG(_hour) \
+       program { name, "hour/"_hour; \
+               signal, "hour,"_hour; \
+               source, "prog"; \
+               action, STATE_SET _hour 0.0; \
+               target, "image/hour"; \
+       }
+
+
+group { name, "ring";
+
+       images {
+               image, "ring/"CLOCK_BG COMP;
+               image, "ring/"CLOCK_BUTTON_NORMAL COMP;
+               image, "ring/"CLOCK_BUTTON_PRESS COMP;
+               image, "ring/"ALARM_CLOCK_BG_AM COMP;
+               image, "ring/"ALARM_CLOCK_BG_PM COMP;
+#include "inc.ring.image.edc"
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bg";
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               image.normal, "ring/58_clock_bg.png";
+                       }
+               }
+               part { name, "padding/l";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 9 0;
+                               fixed, 1 0;
+                               align, 0.0 0.0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "padding/r";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 9 0;
+                               fixed, 1 0;
+                               align, 1.0 0.0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "padding/l/clock";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 60 0;
+                               fixed, 1 0;
+                               align, 0.0 0.0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "padding/r/clock";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 60 0;
+                               fixed, 1 0;
+                               align, 1.0 0.0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "divider/currenttime";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, (13/20) 0.0; to, "base"; }
+                               rel2 { relative, (13/20) 1.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "rect/currenttime";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 (78/800);
+                                       to_x, "padding/l"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 (162/800);
+                                       to_x, "padding/r"; to_y, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text/currenttime";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "rect/currenttime";
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "divider/currenttime";
+                                       to_y, "rect/currenttime";
+                               }
+                               text {
+                                       font, "SLP,style=Medium";
+                                       size, 80;
+                                       align, 1.0 1.0;
+                               }
+                               color, 255 255 255 255;
+                       }
+               }
+               part { name, "text/ampm";
+                       type, TEXT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "divider/currenttime";
+                                       to_y, "rect/currenttime";
+                               }
+                               rel2.to, "rect/currenttime";
+                               text {
+                                       font, "SLP,style=Medium";
+                                       size, 26;
+                                       align, 0.0 1.0;
+                               }
+                               color, 255 255 255 255;
+                       }
+               }
+
+               /* title */
+               part { name, "rect/title";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 (162/800);
+                                       to_x, "padding/l";
+                                       to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 (195/800);
+                                       to_x, "padding/r";
+                                       to_y, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text/title";
+                       type, TEXT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.5 0.5;
+                               rel1 { to, "rect/title"; }
+                               rel2 { to, "rect/title"; }
+                               text {
+                                       font, "SLP,style=Medium";
+                                       size, 30;
+                                       align, 0.5 0.5;
+                               }
+                               color, COLOR_OF_TEXT_FOR_RING;
+                       }
+               }
+
+               part { name, "rect/clock";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 (260/1280);
+                                       to, "padding/l/clock";
+                               }
+                               rel2 {
+                                       relative, 0.0 (895/1280);
+                                       to, "padding/r/clock";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "image/clock";
+                       type, IMAGE;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { to, "rect/clock"; }
+                               rel2 { to, "rect/clock"; }
+                               image {
+                                       normal, "ring/58_alarm_clock_bg_AM.png";
+                               }
+                       }
+                       description {
+                               state, "pm" 0.0;
+                               inherit, "default" 0.0;
+                               image {
+                                       normal, "ring/58_alarm_clock_bg_PM.png";
+                               }
+                       }
+                       description {
+                               state, "am" 0.0;
+                               inherit, "default" 0.0;
+                       }
+               }
+
+               part { name, "image/minute";
+                       type, IMAGE;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "rect/clock";
+                               rel2.to, "rect/clock";
+                               image.normal, "ring/minute/58_alarm_clock_minute_00.png";
+                       }
+                       MIN_STATE("00") MIN_STATE("01") MIN_STATE("02") MIN_STATE("03")
+                       MIN_STATE("04") MIN_STATE("05") MIN_STATE("06") MIN_STATE("07")
+                       MIN_STATE("08") MIN_STATE("09") MIN_STATE("10") MIN_STATE("11")
+                       MIN_STATE("12") MIN_STATE("13") MIN_STATE("14") MIN_STATE("15")
+                       MIN_STATE("16") MIN_STATE("17") MIN_STATE("18") MIN_STATE("19")
+                       MIN_STATE("20") MIN_STATE("21") MIN_STATE("22") MIN_STATE("23")
+                       MIN_STATE("24") MIN_STATE("25") MIN_STATE("26") MIN_STATE("27")
+                       MIN_STATE("28") MIN_STATE("29") MIN_STATE("30") MIN_STATE("31")
+                       MIN_STATE("32") MIN_STATE("33") MIN_STATE("34") MIN_STATE("35")
+                       MIN_STATE("36") MIN_STATE("37") MIN_STATE("38") MIN_STATE("39")
+                       MIN_STATE("40") MIN_STATE("41") MIN_STATE("42") MIN_STATE("43")
+                       MIN_STATE("44") MIN_STATE("45") MIN_STATE("46") MIN_STATE("47")
+                       MIN_STATE("48") MIN_STATE("49") MIN_STATE("50") MIN_STATE("51")
+                       MIN_STATE("52") MIN_STATE("53") MIN_STATE("54") MIN_STATE("55")
+                       MIN_STATE("56") MIN_STATE("57") MIN_STATE("58") MIN_STATE("59")
+               }
+               programs {
+                       MIN_PROG("00") MIN_PROG("01") MIN_PROG("02") MIN_PROG("03")
+                       MIN_PROG("04") MIN_PROG("05") MIN_PROG("06") MIN_PROG("07")
+                       MIN_PROG("08") MIN_PROG("09") MIN_PROG("10") MIN_PROG("11")
+                       MIN_PROG("12") MIN_PROG("13") MIN_PROG("14") MIN_PROG("15")
+                       MIN_PROG("16") MIN_PROG("17") MIN_PROG("18") MIN_PROG("19")
+                       MIN_PROG("20") MIN_PROG("21") MIN_PROG("22") MIN_PROG("23")
+                       MIN_PROG("24") MIN_PROG("25") MIN_PROG("26") MIN_PROG("27")
+                       MIN_PROG("28") MIN_PROG("29") MIN_PROG("30") MIN_PROG("31")
+                       MIN_PROG("32") MIN_PROG("33") MIN_PROG("34") MIN_PROG("35")
+                       MIN_PROG("36") MIN_PROG("37") MIN_PROG("38") MIN_PROG("39")
+                       MIN_PROG("40") MIN_PROG("41") MIN_PROG("42") MIN_PROG("43")
+                       MIN_PROG("44") MIN_PROG("45") MIN_PROG("46") MIN_PROG("47")
+                       MIN_PROG("48") MIN_PROG("49") MIN_PROG("50") MIN_PROG("51")
+                       MIN_PROG("52") MIN_PROG("53") MIN_PROG("54") MIN_PROG("55")
+                       MIN_PROG("56") MIN_PROG("57") MIN_PROG("58") MIN_PROG("59")
+               }
+
+               part { name, "image/hour";
+                       type, IMAGE;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "rect/clock";
+                               rel2.to, "rect/clock";
+                               image.normal, "ring/hour/58_alarm_clock_hour_08.png";
+                       }
+                       HOUR_STATE("00") HOUR_STATE("01") HOUR_STATE("02") HOUR_STATE("03")
+                       HOUR_STATE("04") HOUR_STATE("05") HOUR_STATE("06") HOUR_STATE("07")
+                       HOUR_STATE("08") HOUR_STATE("09") HOUR_STATE("10") HOUR_STATE("11")
+                       HOUR_STATE("12") HOUR_STATE("13") HOUR_STATE("14") HOUR_STATE("15")
+                       HOUR_STATE("16") HOUR_STATE("17") HOUR_STATE("18") HOUR_STATE("19")
+                       HOUR_STATE("20") HOUR_STATE("21") HOUR_STATE("22") HOUR_STATE("23")
+                       HOUR_STATE("24") HOUR_STATE("25") HOUR_STATE("26") HOUR_STATE("27")
+                       HOUR_STATE("28") HOUR_STATE("29") HOUR_STATE("30") HOUR_STATE("31")
+                       HOUR_STATE("32") HOUR_STATE("33") HOUR_STATE("34") HOUR_STATE("35")
+                       HOUR_STATE("36") HOUR_STATE("37") HOUR_STATE("38") HOUR_STATE("39")
+                       HOUR_STATE("40") HOUR_STATE("41") HOUR_STATE("42") HOUR_STATE("43")
+                       HOUR_STATE("44") HOUR_STATE("45") HOUR_STATE("46") HOUR_STATE("47")
+                       HOUR_STATE("48") HOUR_STATE("49") HOUR_STATE("50") HOUR_STATE("51")
+                       HOUR_STATE("52") HOUR_STATE("53") HOUR_STATE("54") HOUR_STATE("55")
+                       HOUR_STATE("56") HOUR_STATE("57") HOUR_STATE("58") HOUR_STATE("59")
+               }
+               programs {
+                       HOUR_PROG("00") HOUR_PROG("01") HOUR_PROG("02") HOUR_PROG("03")
+                       HOUR_PROG("04") HOUR_PROG("05") HOUR_PROG("06") HOUR_PROG("07")
+                       HOUR_PROG("08") HOUR_PROG("09") HOUR_PROG("10") HOUR_PROG("11")
+                       HOUR_PROG("12") HOUR_PROG("13") HOUR_PROG("14") HOUR_PROG("15")
+                       HOUR_PROG("16") HOUR_PROG("17") HOUR_PROG("18") HOUR_PROG("19")
+                       HOUR_PROG("20") HOUR_PROG("21") HOUR_PROG("22") HOUR_PROG("23")
+                       HOUR_PROG("24") HOUR_PROG("25") HOUR_PROG("26") HOUR_PROG("27")
+                       HOUR_PROG("28") HOUR_PROG("29") HOUR_PROG("30") HOUR_PROG("31")
+                       HOUR_PROG("32") HOUR_PROG("33") HOUR_PROG("34") HOUR_PROG("35")
+                       HOUR_PROG("36") HOUR_PROG("37") HOUR_PROG("38") HOUR_PROG("39")
+                       HOUR_PROG("40") HOUR_PROG("41") HOUR_PROG("42") HOUR_PROG("43")
+                       HOUR_PROG("44") HOUR_PROG("45") HOUR_PROG("46") HOUR_PROG("47")
+                       HOUR_PROG("48") HOUR_PROG("49") HOUR_PROG("50") HOUR_PROG("51")
+                       HOUR_PROG("52") HOUR_PROG("53") HOUR_PROG("54") HOUR_PROG("55")
+                       HOUR_PROG("56") HOUR_PROG("57") HOUR_PROG("58") HOUR_PROG("59")
+               }
+
+               part { name, "image/stop";
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "rect/stop";
+                               rel2.to, "rect/stop";
+                               image {
+                                       normal, "ring/58_clock_button_normal.png";
+                                       border, 13 13 13 13;
+                                       border_scale, 1;
+                               }
+                       }
+                       description {
+                               state, "pressed" 0.0;
+                               inherit, "default" 0.0;
+                               image {
+                                       normal, "ring/58_clock_button_press.png";
+                                       border, 13 13 13 13;
+                                       border_scale, 1;
+                               }
+                       }
+               }
+               part { name, "text/stop";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "image/stop";
+                               rel2.to, "image/stop";
+                               text {
+                                       font, "SLP,style=Medium";
+                                       size, 35;
+                                       align, 0.5 0.5;
+                               }
+                               color, COLOR_OF_DEFAULT_STOP_FOR_RING;
+                       }
+                       description {
+                               state, "pressed" 0.0;
+                               inherit, "default" 0.0;
+                               color, 255 255 255 255;
+                       }
+               }
+               part { name, "rect/stop";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 (630/800);
+                                       to_x, "padding/l";
+                                       to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 (722/800);
+                                       to_x, "padding/r";
+                                       to_y, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+       }
+
+       programs {
+               program { name, "go/am";
+                       signal, "go,am";
+                       source, "prog";
+                       action, STATE_SET "am" 0.0;
+                       target, "image/clock";
+               }
+               program { name, "go/pm";
+                       signal, "go,pm";
+                       source, "prog";
+                       action, STATE_SET "pm" 0.0;
+                       target, "image/clock";
+               }
+               program { name, "down/stop";
+                       signal, "mouse,down,1";
+                       source, "rect/stop";
+                       action, STATE_SET "pressed" 0.0;
+                       target, "image/stop";
+                       target, "text/stop";
+               }
+               program { name, "up/stop";
+                       signal, "mouse,up,1";
+                       source, "rect/stop";
+                       action, STATE_SET "default" 0.0;
+                       target, "image/stop";
+                       target, "text/stop";
+               }
+               program { name, "clicked/stop";
+                       signal, "mouse,clicked,1";
+                       source, "rect/stop";
+                       action, SIGNAL_EMIT "stop" "edj";
+               }
+       }
+}
+
diff --git a/data/edc/layout/inc.ring.image.edc b/data/edc/layout/inc.ring.image.edc
new file mode 100755 (executable)
index 0000000..efd013b
--- /dev/null
@@ -0,0 +1,120 @@
+image, "ring/hour/58_alarm_clock_hour_00.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_01.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_02.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_03.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_04.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_05.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_06.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_07.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_08.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_09.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_10.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_11.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_12.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_13.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_14.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_15.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_16.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_17.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_18.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_19.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_20.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_21.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_22.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_23.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_24.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_25.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_26.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_27.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_28.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_29.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_30.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_31.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_32.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_33.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_34.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_35.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_36.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_37.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_38.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_39.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_40.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_41.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_42.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_43.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_44.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_45.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_46.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_47.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_48.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_49.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_50.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_51.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_52.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_53.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_54.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_55.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_56.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_57.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_58.png" COMP;
+image, "ring/hour/58_alarm_clock_hour_59.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_00.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_01.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_02.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_03.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_04.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_05.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_06.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_07.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_08.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_09.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_10.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_11.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_12.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_13.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_14.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_15.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_16.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_17.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_18.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_19.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_20.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_21.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_22.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_23.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_24.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_25.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_26.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_27.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_28.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_29.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_30.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_31.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_32.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_33.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_34.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_35.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_36.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_37.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_38.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_39.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_40.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_41.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_42.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_43.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_44.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_45.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_46.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_47.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_48.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_49.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_50.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_51.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_52.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_53.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_54.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_55.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_56.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_57.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_58.png" COMP;
+image, "ring/minute/58_alarm_clock_minute_59.png" COMP;
diff --git a/data/edc/layout/org.tizen.efl-calendar.edc b/data/edc/layout/org.tizen.efl-calendar.edc
new file mode 100755 (executable)
index 0000000..4014864
--- /dev/null
@@ -0,0 +1,17 @@
+collections {
+       group { name, "icon";
+               externals {
+                       external, "icon_calendar";
+               }
+
+               parts {
+                       part { name, "icon";
+                               type, EXTERNAL;
+                               source, "icon_calendar";
+                               description {
+                                       state, "default" 0.0;
+                               }
+                       }
+               }
+       }
+}
diff --git a/data/images/hd/00_list_photo_default.png b/data/images/hd/00_list_photo_default.png
new file mode 100755 (executable)
index 0000000..2d15281
Binary files /dev/null and b/data/images/hd/00_list_photo_default.png differ
diff --git a/data/images/hd/01_dialoguegroup_edit_default.png b/data/images/hd/01_dialoguegroup_edit_default.png
new file mode 100755 (executable)
index 0000000..1de7666
Binary files /dev/null and b/data/images/hd/01_dialoguegroup_edit_default.png differ
diff --git a/data/images/hd/01_header_icon_add.png b/data/images/hd/01_header_icon_add.png
new file mode 100755 (executable)
index 0000000..43c4984
Binary files /dev/null and b/data/images/hd/01_header_icon_add.png differ
diff --git a/data/images/hd/01_header_icon_done.png b/data/images/hd/01_header_icon_done.png
new file mode 100755 (executable)
index 0000000..d771640
Binary files /dev/null and b/data/images/hd/01_header_icon_done.png differ
diff --git a/data/images/hd/01_header_icon_others.png b/data/images/hd/01_header_icon_others.png
new file mode 100755 (executable)
index 0000000..4fc9dfa
Binary files /dev/null and b/data/images/hd/01_header_icon_others.png differ
diff --git a/data/images/hd/01_navi_icon_delete.png b/data/images/hd/01_navi_icon_delete.png
new file mode 100755 (executable)
index 0000000..4f0f16e
Binary files /dev/null and b/data/images/hd/01_navi_icon_delete.png differ
diff --git a/data/images/hd/01_navi_icon_edit.png b/data/images/hd/01_navi_icon_edit.png
new file mode 100755 (executable)
index 0000000..19e577a
Binary files /dev/null and b/data/images/hd/01_navi_icon_edit.png differ
diff --git a/data/images/hd/01_navi_icon_new.png b/data/images/hd/01_navi_icon_new.png
new file mode 100755 (executable)
index 0000000..290e2a5
Binary files /dev/null and b/data/images/hd/01_navi_icon_new.png differ
diff --git a/data/images/hd/49_memo_noitems.png b/data/images/hd/49_memo_noitems.png
new file mode 100755 (executable)
index 0000000..5ce0a82
Binary files /dev/null and b/data/images/hd/49_memo_noitems.png differ
diff --git a/data/images/hd/57_calendar_bg2.png b/data/images/hd/57_calendar_bg2.png
new file mode 100755 (executable)
index 0000000..3d3d899
Binary files /dev/null and b/data/images/hd/57_calendar_bg2.png differ
diff --git a/data/images/hd/57_calendar_event(1)_bg.png b/data/images/hd/57_calendar_event(1)_bg.png
new file mode 100755 (executable)
index 0000000..2494550
Binary files /dev/null and b/data/images/hd/57_calendar_event(1)_bg.png differ
diff --git a/data/images/hd/57_calendar_event(2)_bg.png b/data/images/hd/57_calendar_event(2)_bg.png
new file mode 100755 (executable)
index 0000000..66015cf
Binary files /dev/null and b/data/images/hd/57_calendar_event(2)_bg.png differ
diff --git a/data/images/hd/57_calendar_event(3)_bg.png b/data/images/hd/57_calendar_event(3)_bg.png
new file mode 100755 (executable)
index 0000000..b2a8c74
Binary files /dev/null and b/data/images/hd/57_calendar_event(3)_bg.png differ
diff --git a/data/images/hd/57_calendar_event(4)_bg.png b/data/images/hd/57_calendar_event(4)_bg.png
new file mode 100755 (executable)
index 0000000..85e658d
Binary files /dev/null and b/data/images/hd/57_calendar_event(4)_bg.png differ
diff --git a/data/images/hd/57_calendar_month_view(1)_bg.png b/data/images/hd/57_calendar_month_view(1)_bg.png
new file mode 100755 (executable)
index 0000000..f6a766b
Binary files /dev/null and b/data/images/hd/57_calendar_month_view(1)_bg.png differ
diff --git a/data/images/hd/57_calendar_spin_01_icon.png b/data/images/hd/57_calendar_spin_01_icon.png
new file mode 100755 (executable)
index 0000000..baa0c2c
Binary files /dev/null and b/data/images/hd/57_calendar_spin_01_icon.png differ
diff --git a/data/images/hd/57_calendar_spin_02_icon.png b/data/images/hd/57_calendar_spin_02_icon.png
new file mode 100755 (executable)
index 0000000..7aa0439
Binary files /dev/null and b/data/images/hd/57_calendar_spin_02_icon.png differ
diff --git a/data/images/hd/57_calendar_tab.png b/data/images/hd/57_calendar_tab.png
new file mode 100755 (executable)
index 0000000..bc99de5
Binary files /dev/null and b/data/images/hd/57_calendar_tab.png differ
diff --git a/data/images/hd/57_calendar_tab_focus_bg.png b/data/images/hd/57_calendar_tab_focus_bg.png
new file mode 100755 (executable)
index 0000000..1396f00
Binary files /dev/null and b/data/images/hd/57_calendar_tab_focus_bg.png differ
diff --git a/data/images/hd/57_calendar_tab_press.png b/data/images/hd/57_calendar_tab_press.png
new file mode 100755 (executable)
index 0000000..71f0019
Binary files /dev/null and b/data/images/hd/57_calendar_tab_press.png differ
diff --git a/data/images/hd/57_calendar_today_icon.png b/data/images/hd/57_calendar_today_icon.png
new file mode 100755 (executable)
index 0000000..6c37aed
Binary files /dev/null and b/data/images/hd/57_calendar_today_icon.png differ
diff --git a/data/images/hd/57_calendar_today_icon2.png b/data/images/hd/57_calendar_today_icon2.png
new file mode 100755 (executable)
index 0000000..32121d9
Binary files /dev/null and b/data/images/hd/57_calendar_today_icon2.png differ
diff --git a/data/images/hd/57_calendar_today_icon_press.png b/data/images/hd/57_calendar_today_icon_press.png
new file mode 100755 (executable)
index 0000000..fc81fc5
Binary files /dev/null and b/data/images/hd/57_calendar_today_icon_press.png differ
diff --git a/data/images/hd/57_calendar_week_arrow_focus_icon.png b/data/images/hd/57_calendar_week_arrow_focus_icon.png
new file mode 100755 (executable)
index 0000000..273436c
Binary files /dev/null and b/data/images/hd/57_calendar_week_arrow_focus_icon.png differ
diff --git a/data/images/hd/57_calendar_week_arrow_icon.png b/data/images/hd/57_calendar_week_arrow_icon.png
new file mode 100755 (executable)
index 0000000..c9299d2
Binary files /dev/null and b/data/images/hd/57_calendar_week_arrow_icon.png differ
diff --git a/data/images/hd/57_calendar_week_view_bg.png b/data/images/hd/57_calendar_week_view_bg.png
new file mode 100755 (executable)
index 0000000..85e56d8
Binary files /dev/null and b/data/images/hd/57_calendar_week_view_bg.png differ
diff --git a/data/images/hd/57_calendar_week_view_press.png b/data/images/hd/57_calendar_week_view_press.png
new file mode 100755 (executable)
index 0000000..a400965
Binary files /dev/null and b/data/images/hd/57_calendar_week_view_press.png differ
diff --git a/data/images/hd/57_calendar_year_view_bg.png b/data/images/hd/57_calendar_year_view_bg.png
new file mode 100755 (executable)
index 0000000..5fce79a
Binary files /dev/null and b/data/images/hd/57_calendar_year_view_bg.png differ
diff --git a/data/images/hd/P01_bg.png b/data/images/hd/P01_bg.png
new file mode 100755 (executable)
index 0000000..2157db9
Binary files /dev/null and b/data/images/hd/P01_bg.png differ
diff --git a/data/images/hd/P01_control_top_bg.png b/data/images/hd/P01_control_top_bg.png
new file mode 100755 (executable)
index 0000000..5c99fbc
Binary files /dev/null and b/data/images/hd/P01_control_top_bg.png differ
diff --git a/data/images/hd/P01_control_top_bg_tmp.png b/data/images/hd/P01_control_top_bg_tmp.png
new file mode 100755 (executable)
index 0000000..c66b5b8
Binary files /dev/null and b/data/images/hd/P01_control_top_bg_tmp.png differ
diff --git a/data/images/hd/P01_day_current_time.png b/data/images/hd/P01_day_current_time.png
new file mode 100755 (executable)
index 0000000..ad94c21
Binary files /dev/null and b/data/images/hd/P01_day_current_time.png differ
diff --git a/data/images/hd/P01_event.png b/data/images/hd/P01_event.png
new file mode 100755 (executable)
index 0000000..9beb806
Binary files /dev/null and b/data/images/hd/P01_event.png differ
diff --git a/data/images/hd/P01_noschedule.png b/data/images/hd/P01_noschedule.png
new file mode 100755 (executable)
index 0000000..102f9bb
Binary files /dev/null and b/data/images/hd/P01_noschedule.png differ
diff --git a/data/images/hd/P01_tab_bg.png b/data/images/hd/P01_tab_bg.png
new file mode 100755 (executable)
index 0000000..33371ff
Binary files /dev/null and b/data/images/hd/P01_tab_bg.png differ
diff --git a/data/images/hd/P01_tab_default.png b/data/images/hd/P01_tab_default.png
new file mode 100755 (executable)
index 0000000..3c791c0
Binary files /dev/null and b/data/images/hd/P01_tab_default.png differ
diff --git a/data/images/hd/P01_tab_focus.png b/data/images/hd/P01_tab_focus.png
new file mode 100755 (executable)
index 0000000..61d0fc9
Binary files /dev/null and b/data/images/hd/P01_tab_focus.png differ
diff --git a/data/images/hd/P01_tab_press.png b/data/images/hd/P01_tab_press.png
new file mode 100755 (executable)
index 0000000..8eaa853
Binary files /dev/null and b/data/images/hd/P01_tab_press.png differ
diff --git a/data/images/hd/P01_title_bg.png b/data/images/hd/P01_title_bg.png
new file mode 100755 (executable)
index 0000000..1666b3b
Binary files /dev/null and b/data/images/hd/P01_title_bg.png differ
diff --git a/data/images/hd/P01_title_bg_tmp.png b/data/images/hd/P01_title_bg_tmp.png
new file mode 100755 (executable)
index 0000000..434e03f
Binary files /dev/null and b/data/images/hd/P01_title_bg_tmp.png differ
diff --git a/data/images/hd/all_calendar.png b/data/images/hd/all_calendar.png
new file mode 100755 (executable)
index 0000000..a89d387
Binary files /dev/null and b/data/images/hd/all_calendar.png differ
diff --git a/data/images/hd/calendar_selected.png b/data/images/hd/calendar_selected.png
new file mode 100755 (executable)
index 0000000..e0c19d4
Binary files /dev/null and b/data/images/hd/calendar_selected.png differ
diff --git a/data/images/hd/navibar_item_separator.png b/data/images/hd/navibar_item_separator.png
new file mode 100755 (executable)
index 0000000..cf080bb
Binary files /dev/null and b/data/images/hd/navibar_item_separator.png differ
diff --git a/data/images/hd/navibar_item_separator_tmp.png b/data/images/hd/navibar_item_separator_tmp.png
new file mode 100755 (executable)
index 0000000..4bbde83
Binary files /dev/null and b/data/images/hd/navibar_item_separator_tmp.png differ
diff --git a/data/images/hd/org.tizen.efl-calendar.png b/data/images/hd/org.tizen.efl-calendar.png
new file mode 100755 (executable)
index 0000000..a0878ca
Binary files /dev/null and b/data/images/hd/org.tizen.efl-calendar.png differ
diff --git a/data/images/hd/ring/58_alarm_clock_bg_AM.png b/data/images/hd/ring/58_alarm_clock_bg_AM.png
new file mode 100755 (executable)
index 0000000..735999c
Binary files /dev/null and b/data/images/hd/ring/58_alarm_clock_bg_AM.png differ
diff --git a/data/images/hd/ring/58_alarm_clock_bg_PM.png b/data/images/hd/ring/58_alarm_clock_bg_PM.png
new file mode 100755 (executable)
index 0000000..075f3ea
Binary files /dev/null and b/data/images/hd/ring/58_alarm_clock_bg_PM.png differ
diff --git a/data/images/hd/ring/58_clock_bg.png b/data/images/hd/ring/58_clock_bg.png
new file mode 100755 (executable)
index 0000000..5ef85ee
Binary files /dev/null and b/data/images/hd/ring/58_clock_bg.png differ
diff --git a/data/images/hd/ring/58_clock_button_normal.png b/data/images/hd/ring/58_clock_button_normal.png
new file mode 100755 (executable)
index 0000000..75f6cbd
Binary files /dev/null and b/data/images/hd/ring/58_clock_button_normal.png differ
diff --git a/data/images/hd/ring/58_clock_button_press.png b/data/images/hd/ring/58_clock_button_press.png
new file mode 100755 (executable)
index 0000000..1ef3af7
Binary files /dev/null and b/data/images/hd/ring/58_clock_button_press.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_00.png b/data/images/hd/ring/hour/58_alarm_clock_hour_00.png
new file mode 100755 (executable)
index 0000000..b6918d2
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_00.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_01.png b/data/images/hd/ring/hour/58_alarm_clock_hour_01.png
new file mode 100755 (executable)
index 0000000..b226638
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_01.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_02.png b/data/images/hd/ring/hour/58_alarm_clock_hour_02.png
new file mode 100755 (executable)
index 0000000..79ac76e
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_02.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_03.png b/data/images/hd/ring/hour/58_alarm_clock_hour_03.png
new file mode 100755 (executable)
index 0000000..cfe7fd5
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_03.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_04.png b/data/images/hd/ring/hour/58_alarm_clock_hour_04.png
new file mode 100755 (executable)
index 0000000..770f442
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_04.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_05.png b/data/images/hd/ring/hour/58_alarm_clock_hour_05.png
new file mode 100755 (executable)
index 0000000..36acefd
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_05.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_06.png b/data/images/hd/ring/hour/58_alarm_clock_hour_06.png
new file mode 100755 (executable)
index 0000000..c32adfa
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_06.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_07.png b/data/images/hd/ring/hour/58_alarm_clock_hour_07.png
new file mode 100755 (executable)
index 0000000..2b15133
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_07.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_08.png b/data/images/hd/ring/hour/58_alarm_clock_hour_08.png
new file mode 100755 (executable)
index 0000000..8bcfc5d
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_08.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_09.png b/data/images/hd/ring/hour/58_alarm_clock_hour_09.png
new file mode 100755 (executable)
index 0000000..f9f339a
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_09.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_10.png b/data/images/hd/ring/hour/58_alarm_clock_hour_10.png
new file mode 100755 (executable)
index 0000000..47eaead
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_10.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_11.png b/data/images/hd/ring/hour/58_alarm_clock_hour_11.png
new file mode 100755 (executable)
index 0000000..c46601d
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_11.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_12.png b/data/images/hd/ring/hour/58_alarm_clock_hour_12.png
new file mode 100755 (executable)
index 0000000..c81b317
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_12.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_13.png b/data/images/hd/ring/hour/58_alarm_clock_hour_13.png
new file mode 100755 (executable)
index 0000000..88e8e13
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_13.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_14.png b/data/images/hd/ring/hour/58_alarm_clock_hour_14.png
new file mode 100755 (executable)
index 0000000..20ad260
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_14.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_15.png b/data/images/hd/ring/hour/58_alarm_clock_hour_15.png
new file mode 100755 (executable)
index 0000000..d2908e7
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_15.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_16.png b/data/images/hd/ring/hour/58_alarm_clock_hour_16.png
new file mode 100755 (executable)
index 0000000..53ee47e
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_16.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_17.png b/data/images/hd/ring/hour/58_alarm_clock_hour_17.png
new file mode 100755 (executable)
index 0000000..1ef1318
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_17.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_18.png b/data/images/hd/ring/hour/58_alarm_clock_hour_18.png
new file mode 100755 (executable)
index 0000000..d4d074c
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_18.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_19.png b/data/images/hd/ring/hour/58_alarm_clock_hour_19.png
new file mode 100755 (executable)
index 0000000..e269e77
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_19.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_20.png b/data/images/hd/ring/hour/58_alarm_clock_hour_20.png
new file mode 100755 (executable)
index 0000000..a508e5f
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_20.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_21.png b/data/images/hd/ring/hour/58_alarm_clock_hour_21.png
new file mode 100755 (executable)
index 0000000..20c3868
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_21.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_22.png b/data/images/hd/ring/hour/58_alarm_clock_hour_22.png
new file mode 100755 (executable)
index 0000000..57f076d
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_22.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_23.png b/data/images/hd/ring/hour/58_alarm_clock_hour_23.png
new file mode 100755 (executable)
index 0000000..47d7c45
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_23.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_24.png b/data/images/hd/ring/hour/58_alarm_clock_hour_24.png
new file mode 100755 (executable)
index 0000000..1c551f9
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_24.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_25.png b/data/images/hd/ring/hour/58_alarm_clock_hour_25.png
new file mode 100755 (executable)
index 0000000..ff6deee
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_25.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_26.png b/data/images/hd/ring/hour/58_alarm_clock_hour_26.png
new file mode 100755 (executable)
index 0000000..d518078
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_26.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_27.png b/data/images/hd/ring/hour/58_alarm_clock_hour_27.png
new file mode 100755 (executable)
index 0000000..ed7a34e
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_27.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_28.png b/data/images/hd/ring/hour/58_alarm_clock_hour_28.png
new file mode 100755 (executable)
index 0000000..88e4cb2
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_28.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_29.png b/data/images/hd/ring/hour/58_alarm_clock_hour_29.png
new file mode 100755 (executable)
index 0000000..1908caf
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_29.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_30.png b/data/images/hd/ring/hour/58_alarm_clock_hour_30.png
new file mode 100755 (executable)
index 0000000..9b00929
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_30.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_31.png b/data/images/hd/ring/hour/58_alarm_clock_hour_31.png
new file mode 100755 (executable)
index 0000000..89e41cc
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_31.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_32.png b/data/images/hd/ring/hour/58_alarm_clock_hour_32.png
new file mode 100755 (executable)
index 0000000..0ce9ee2
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_32.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_33.png b/data/images/hd/ring/hour/58_alarm_clock_hour_33.png
new file mode 100755 (executable)
index 0000000..823350d
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_33.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_34.png b/data/images/hd/ring/hour/58_alarm_clock_hour_34.png
new file mode 100755 (executable)
index 0000000..7c8e5b3
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_34.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_35.png b/data/images/hd/ring/hour/58_alarm_clock_hour_35.png
new file mode 100755 (executable)
index 0000000..578262a
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_35.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_36.png b/data/images/hd/ring/hour/58_alarm_clock_hour_36.png
new file mode 100755 (executable)
index 0000000..1ebd8e9
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_36.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_37.png b/data/images/hd/ring/hour/58_alarm_clock_hour_37.png
new file mode 100755 (executable)
index 0000000..b6ad209
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_37.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_38.png b/data/images/hd/ring/hour/58_alarm_clock_hour_38.png
new file mode 100755 (executable)
index 0000000..f349025
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_38.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_39.png b/data/images/hd/ring/hour/58_alarm_clock_hour_39.png
new file mode 100755 (executable)
index 0000000..224b2a3
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_39.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_40.png b/data/images/hd/ring/hour/58_alarm_clock_hour_40.png
new file mode 100755 (executable)
index 0000000..105e146
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_40.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_41.png b/data/images/hd/ring/hour/58_alarm_clock_hour_41.png
new file mode 100755 (executable)
index 0000000..c4f08ea
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_41.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_42.png b/data/images/hd/ring/hour/58_alarm_clock_hour_42.png
new file mode 100755 (executable)
index 0000000..9c3a969
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_42.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_43.png b/data/images/hd/ring/hour/58_alarm_clock_hour_43.png
new file mode 100755 (executable)
index 0000000..7380006
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_43.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_44.png b/data/images/hd/ring/hour/58_alarm_clock_hour_44.png
new file mode 100755 (executable)
index 0000000..abccb5f
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_44.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_45.png b/data/images/hd/ring/hour/58_alarm_clock_hour_45.png
new file mode 100755 (executable)
index 0000000..14b03cc
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_45.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_46.png b/data/images/hd/ring/hour/58_alarm_clock_hour_46.png
new file mode 100755 (executable)
index 0000000..43fa947
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_46.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_47.png b/data/images/hd/ring/hour/58_alarm_clock_hour_47.png
new file mode 100755 (executable)
index 0000000..82faf78
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_47.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_48.png b/data/images/hd/ring/hour/58_alarm_clock_hour_48.png
new file mode 100755 (executable)
index 0000000..5c8f0ba
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_48.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_49.png b/data/images/hd/ring/hour/58_alarm_clock_hour_49.png
new file mode 100755 (executable)
index 0000000..30c237d
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_49.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_50.png b/data/images/hd/ring/hour/58_alarm_clock_hour_50.png
new file mode 100755 (executable)
index 0000000..6009c5a
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_50.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_51.png b/data/images/hd/ring/hour/58_alarm_clock_hour_51.png
new file mode 100755 (executable)
index 0000000..1565e69
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_51.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_52.png b/data/images/hd/ring/hour/58_alarm_clock_hour_52.png
new file mode 100755 (executable)
index 0000000..69d0573
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_52.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_53.png b/data/images/hd/ring/hour/58_alarm_clock_hour_53.png
new file mode 100755 (executable)
index 0000000..99d3f63
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_53.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_54.png b/data/images/hd/ring/hour/58_alarm_clock_hour_54.png
new file mode 100755 (executable)
index 0000000..edf7bfa
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_54.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_55.png b/data/images/hd/ring/hour/58_alarm_clock_hour_55.png
new file mode 100755 (executable)
index 0000000..ef75df7
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_55.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_56.png b/data/images/hd/ring/hour/58_alarm_clock_hour_56.png
new file mode 100755 (executable)
index 0000000..0df7b73
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_56.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_57.png b/data/images/hd/ring/hour/58_alarm_clock_hour_57.png
new file mode 100755 (executable)
index 0000000..50bcd4c
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_57.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_58.png b/data/images/hd/ring/hour/58_alarm_clock_hour_58.png
new file mode 100755 (executable)
index 0000000..1ca2d51
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_58.png differ
diff --git a/data/images/hd/ring/hour/58_alarm_clock_hour_59.png b/data/images/hd/ring/hour/58_alarm_clock_hour_59.png
new file mode 100755 (executable)
index 0000000..b63bfe2
Binary files /dev/null and b/data/images/hd/ring/hour/58_alarm_clock_hour_59.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_00.png b/data/images/hd/ring/minute/58_alarm_clock_minute_00.png
new file mode 100755 (executable)
index 0000000..1e730f3
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_00.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_01.png b/data/images/hd/ring/minute/58_alarm_clock_minute_01.png
new file mode 100755 (executable)
index 0000000..51ef6ba
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_01.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_02.png b/data/images/hd/ring/minute/58_alarm_clock_minute_02.png
new file mode 100755 (executable)
index 0000000..67cbf7f
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_02.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_03.png b/data/images/hd/ring/minute/58_alarm_clock_minute_03.png
new file mode 100755 (executable)
index 0000000..8349f3d
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_03.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_04.png b/data/images/hd/ring/minute/58_alarm_clock_minute_04.png
new file mode 100755 (executable)
index 0000000..1107378
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_04.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_05.png b/data/images/hd/ring/minute/58_alarm_clock_minute_05.png
new file mode 100755 (executable)
index 0000000..a9bbf08
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_05.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_06.png b/data/images/hd/ring/minute/58_alarm_clock_minute_06.png
new file mode 100755 (executable)
index 0000000..def04fd
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_06.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_07.png b/data/images/hd/ring/minute/58_alarm_clock_minute_07.png
new file mode 100755 (executable)
index 0000000..67e08c8
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_07.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_08.png b/data/images/hd/ring/minute/58_alarm_clock_minute_08.png
new file mode 100755 (executable)
index 0000000..1eff35f
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_08.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_09.png b/data/images/hd/ring/minute/58_alarm_clock_minute_09.png
new file mode 100755 (executable)
index 0000000..732c9c5
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_09.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_10.png b/data/images/hd/ring/minute/58_alarm_clock_minute_10.png
new file mode 100755 (executable)
index 0000000..f6c2b80
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_10.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_11.png b/data/images/hd/ring/minute/58_alarm_clock_minute_11.png
new file mode 100755 (executable)
index 0000000..5a6d7a9
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_11.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_12.png b/data/images/hd/ring/minute/58_alarm_clock_minute_12.png
new file mode 100755 (executable)
index 0000000..468051f
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_12.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_13.png b/data/images/hd/ring/minute/58_alarm_clock_minute_13.png
new file mode 100755 (executable)
index 0000000..67f8f5a
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_13.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_14.png b/data/images/hd/ring/minute/58_alarm_clock_minute_14.png
new file mode 100755 (executable)
index 0000000..4941435
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_14.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_15.png b/data/images/hd/ring/minute/58_alarm_clock_minute_15.png
new file mode 100755 (executable)
index 0000000..74e6eed
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_15.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_16.png b/data/images/hd/ring/minute/58_alarm_clock_minute_16.png
new file mode 100755 (executable)
index 0000000..6652e6f
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_16.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_17.png b/data/images/hd/ring/minute/58_alarm_clock_minute_17.png
new file mode 100755 (executable)
index 0000000..faf8aa9
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_17.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_18.png b/data/images/hd/ring/minute/58_alarm_clock_minute_18.png
new file mode 100755 (executable)
index 0000000..52940d1
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_18.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_19.png b/data/images/hd/ring/minute/58_alarm_clock_minute_19.png
new file mode 100755 (executable)
index 0000000..ea74a82
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_19.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_20.png b/data/images/hd/ring/minute/58_alarm_clock_minute_20.png
new file mode 100755 (executable)
index 0000000..c5a5252
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_20.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_21.png b/data/images/hd/ring/minute/58_alarm_clock_minute_21.png
new file mode 100755 (executable)
index 0000000..4c29eb9
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_21.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_22.png b/data/images/hd/ring/minute/58_alarm_clock_minute_22.png
new file mode 100755 (executable)
index 0000000..72e284b
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_22.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_23.png b/data/images/hd/ring/minute/58_alarm_clock_minute_23.png
new file mode 100755 (executable)
index 0000000..a5b2330
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_23.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_24.png b/data/images/hd/ring/minute/58_alarm_clock_minute_24.png
new file mode 100755 (executable)
index 0000000..3a2c4e4
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_24.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_25.png b/data/images/hd/ring/minute/58_alarm_clock_minute_25.png
new file mode 100755 (executable)
index 0000000..7733321
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_25.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_26.png b/data/images/hd/ring/minute/58_alarm_clock_minute_26.png
new file mode 100755 (executable)
index 0000000..dc295f1
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_26.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_27.png b/data/images/hd/ring/minute/58_alarm_clock_minute_27.png
new file mode 100755 (executable)
index 0000000..dbb820f
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_27.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_28.png b/data/images/hd/ring/minute/58_alarm_clock_minute_28.png
new file mode 100755 (executable)
index 0000000..d6153cd
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_28.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_29.png b/data/images/hd/ring/minute/58_alarm_clock_minute_29.png
new file mode 100755 (executable)
index 0000000..1a013d4
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_29.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_30.png b/data/images/hd/ring/minute/58_alarm_clock_minute_30.png
new file mode 100755 (executable)
index 0000000..0234ad9
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_30.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_31.png b/data/images/hd/ring/minute/58_alarm_clock_minute_31.png
new file mode 100755 (executable)
index 0000000..b77f64c
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_31.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_32.png b/data/images/hd/ring/minute/58_alarm_clock_minute_32.png
new file mode 100755 (executable)
index 0000000..a7e4d2a
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_32.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_33.png b/data/images/hd/ring/minute/58_alarm_clock_minute_33.png
new file mode 100755 (executable)
index 0000000..1b16201
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_33.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_34.png b/data/images/hd/ring/minute/58_alarm_clock_minute_34.png
new file mode 100755 (executable)
index 0000000..fc36584
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_34.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_35.png b/data/images/hd/ring/minute/58_alarm_clock_minute_35.png
new file mode 100755 (executable)
index 0000000..8462070
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_35.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_36.png b/data/images/hd/ring/minute/58_alarm_clock_minute_36.png
new file mode 100755 (executable)
index 0000000..aa945e9
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_36.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_37.png b/data/images/hd/ring/minute/58_alarm_clock_minute_37.png
new file mode 100755 (executable)
index 0000000..9ce6307
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_37.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_38.png b/data/images/hd/ring/minute/58_alarm_clock_minute_38.png
new file mode 100755 (executable)
index 0000000..72943f7
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_38.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_39.png b/data/images/hd/ring/minute/58_alarm_clock_minute_39.png
new file mode 100755 (executable)
index 0000000..ecdd2a6
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_39.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_40.png b/data/images/hd/ring/minute/58_alarm_clock_minute_40.png
new file mode 100755 (executable)
index 0000000..e2ce094
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_40.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_41.png b/data/images/hd/ring/minute/58_alarm_clock_minute_41.png
new file mode 100755 (executable)
index 0000000..abefcf3
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_41.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_42.png b/data/images/hd/ring/minute/58_alarm_clock_minute_42.png
new file mode 100755 (executable)
index 0000000..d6a8ef0
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_42.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_43.png b/data/images/hd/ring/minute/58_alarm_clock_minute_43.png
new file mode 100755 (executable)
index 0000000..1efedc3
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_43.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_44.png b/data/images/hd/ring/minute/58_alarm_clock_minute_44.png
new file mode 100755 (executable)
index 0000000..e893222
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_44.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_45.png b/data/images/hd/ring/minute/58_alarm_clock_minute_45.png
new file mode 100755 (executable)
index 0000000..8ade918
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_45.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_46.png b/data/images/hd/ring/minute/58_alarm_clock_minute_46.png
new file mode 100755 (executable)
index 0000000..fa195d8
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_46.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_47.png b/data/images/hd/ring/minute/58_alarm_clock_minute_47.png
new file mode 100755 (executable)
index 0000000..b09698a
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_47.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_48.png b/data/images/hd/ring/minute/58_alarm_clock_minute_48.png
new file mode 100755 (executable)
index 0000000..de6895f
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_48.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_49.png b/data/images/hd/ring/minute/58_alarm_clock_minute_49.png
new file mode 100755 (executable)
index 0000000..a3d7b84
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_49.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_50.png b/data/images/hd/ring/minute/58_alarm_clock_minute_50.png
new file mode 100755 (executable)
index 0000000..9cdb17f
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_50.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_51.png b/data/images/hd/ring/minute/58_alarm_clock_minute_51.png
new file mode 100755 (executable)
index 0000000..0bd8f03
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_51.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_52.png b/data/images/hd/ring/minute/58_alarm_clock_minute_52.png
new file mode 100755 (executable)
index 0000000..24a49c9
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_52.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_53.png b/data/images/hd/ring/minute/58_alarm_clock_minute_53.png
new file mode 100755 (executable)
index 0000000..422afc6
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_53.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_54.png b/data/images/hd/ring/minute/58_alarm_clock_minute_54.png
new file mode 100755 (executable)
index 0000000..c24cc9d
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_54.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_55.png b/data/images/hd/ring/minute/58_alarm_clock_minute_55.png
new file mode 100755 (executable)
index 0000000..2f755ca
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_55.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_56.png b/data/images/hd/ring/minute/58_alarm_clock_minute_56.png
new file mode 100755 (executable)
index 0000000..36cfc3c
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_56.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_57.png b/data/images/hd/ring/minute/58_alarm_clock_minute_57.png
new file mode 100755 (executable)
index 0000000..fa6ed55
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_57.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_58.png b/data/images/hd/ring/minute/58_alarm_clock_minute_58.png
new file mode 100755 (executable)
index 0000000..ac53e5d
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_58.png differ
diff --git a/data/images/hd/ring/minute/58_alarm_clock_minute_59.png b/data/images/hd/ring/minute/58_alarm_clock_minute_59.png
new file mode 100755 (executable)
index 0000000..e978562
Binary files /dev/null and b/data/images/hd/ring/minute/58_alarm_clock_minute_59.png differ
diff --git a/data/images/wvga/00_list_photo_default.png b/data/images/wvga/00_list_photo_default.png
new file mode 100755 (executable)
index 0000000..2d15281
Binary files /dev/null and b/data/images/wvga/00_list_photo_default.png differ
diff --git a/data/images/wvga/01_dialoguegroup_edit_default.png b/data/images/wvga/01_dialoguegroup_edit_default.png
new file mode 100755 (executable)
index 0000000..1de7666
Binary files /dev/null and b/data/images/wvga/01_dialoguegroup_edit_default.png differ
diff --git a/data/images/wvga/01_header_icon_add.png b/data/images/wvga/01_header_icon_add.png
new file mode 100755 (executable)
index 0000000..43c4984
Binary files /dev/null and b/data/images/wvga/01_header_icon_add.png differ
diff --git a/data/images/wvga/01_header_icon_done.png b/data/images/wvga/01_header_icon_done.png
new file mode 100755 (executable)
index 0000000..d771640
Binary files /dev/null and b/data/images/wvga/01_header_icon_done.png differ
diff --git a/data/images/wvga/01_header_icon_others.png b/data/images/wvga/01_header_icon_others.png
new file mode 100755 (executable)
index 0000000..4fc9dfa
Binary files /dev/null and b/data/images/wvga/01_header_icon_others.png differ
diff --git a/data/images/wvga/01_navi_icon_delete.png b/data/images/wvga/01_navi_icon_delete.png
new file mode 100755 (executable)
index 0000000..4f0f16e
Binary files /dev/null and b/data/images/wvga/01_navi_icon_delete.png differ
diff --git a/data/images/wvga/01_navi_icon_edit.png b/data/images/wvga/01_navi_icon_edit.png
new file mode 100755 (executable)
index 0000000..19e577a
Binary files /dev/null and b/data/images/wvga/01_navi_icon_edit.png differ
diff --git a/data/images/wvga/01_navi_icon_new.png b/data/images/wvga/01_navi_icon_new.png
new file mode 100755 (executable)
index 0000000..290e2a5
Binary files /dev/null and b/data/images/wvga/01_navi_icon_new.png differ
diff --git a/data/images/wvga/49_memo_noitems.png b/data/images/wvga/49_memo_noitems.png
new file mode 100755 (executable)
index 0000000..5ce0a82
Binary files /dev/null and b/data/images/wvga/49_memo_noitems.png differ
diff --git a/data/images/wvga/57_calendar_bg2.png b/data/images/wvga/57_calendar_bg2.png
new file mode 100755 (executable)
index 0000000..3d3d899
Binary files /dev/null and b/data/images/wvga/57_calendar_bg2.png differ
diff --git a/data/images/wvga/57_calendar_event(1)_bg.png b/data/images/wvga/57_calendar_event(1)_bg.png
new file mode 100755 (executable)
index 0000000..2494550
Binary files /dev/null and b/data/images/wvga/57_calendar_event(1)_bg.png differ
diff --git a/data/images/wvga/57_calendar_event(2)_bg.png b/data/images/wvga/57_calendar_event(2)_bg.png
new file mode 100755 (executable)
index 0000000..66015cf
Binary files /dev/null and b/data/images/wvga/57_calendar_event(2)_bg.png differ
diff --git a/data/images/wvga/57_calendar_event(3)_bg.png b/data/images/wvga/57_calendar_event(3)_bg.png
new file mode 100755 (executable)
index 0000000..b2a8c74
Binary files /dev/null and b/data/images/wvga/57_calendar_event(3)_bg.png differ
diff --git a/data/images/wvga/57_calendar_event(4)_bg.png b/data/images/wvga/57_calendar_event(4)_bg.png
new file mode 100755 (executable)
index 0000000..85e658d
Binary files /dev/null and b/data/images/wvga/57_calendar_event(4)_bg.png differ
diff --git a/data/images/wvga/57_calendar_month_view(1)_bg.png b/data/images/wvga/57_calendar_month_view(1)_bg.png
new file mode 100755 (executable)
index 0000000..f6a766b
Binary files /dev/null and b/data/images/wvga/57_calendar_month_view(1)_bg.png differ
diff --git a/data/images/wvga/57_calendar_spin_01_icon.png b/data/images/wvga/57_calendar_spin_01_icon.png
new file mode 100755 (executable)
index 0000000..baa0c2c
Binary files /dev/null and b/data/images/wvga/57_calendar_spin_01_icon.png differ
diff --git a/data/images/wvga/57_calendar_spin_02_icon.png b/data/images/wvga/57_calendar_spin_02_icon.png
new file mode 100755 (executable)
index 0000000..7aa0439
Binary files /dev/null and b/data/images/wvga/57_calendar_spin_02_icon.png differ
diff --git a/data/images/wvga/57_calendar_tab.png b/data/images/wvga/57_calendar_tab.png
new file mode 100755 (executable)
index 0000000..bc99de5
Binary files /dev/null and b/data/images/wvga/57_calendar_tab.png differ
diff --git a/data/images/wvga/57_calendar_tab_focus_bg.png b/data/images/wvga/57_calendar_tab_focus_bg.png
new file mode 100755 (executable)
index 0000000..1396f00
Binary files /dev/null and b/data/images/wvga/57_calendar_tab_focus_bg.png differ
diff --git a/data/images/wvga/57_calendar_tab_press.png b/data/images/wvga/57_calendar_tab_press.png
new file mode 100755 (executable)
index 0000000..71f0019
Binary files /dev/null and b/data/images/wvga/57_calendar_tab_press.png differ
diff --git a/data/images/wvga/57_calendar_today_icon.png b/data/images/wvga/57_calendar_today_icon.png
new file mode 100755 (executable)
index 0000000..6c37aed
Binary files /dev/null and b/data/images/wvga/57_calendar_today_icon.png differ
diff --git a/data/images/wvga/57_calendar_today_icon2.png b/data/images/wvga/57_calendar_today_icon2.png
new file mode 100755 (executable)
index 0000000..32121d9
Binary files /dev/null and b/data/images/wvga/57_calendar_today_icon2.png differ
diff --git a/data/images/wvga/57_calendar_today_icon_press.png b/data/images/wvga/57_calendar_today_icon_press.png
new file mode 100755 (executable)
index 0000000..fc81fc5
Binary files /dev/null and b/data/images/wvga/57_calendar_today_icon_press.png differ
diff --git a/data/images/wvga/57_calendar_week_arrow_focus_icon.png b/data/images/wvga/57_calendar_week_arrow_focus_icon.png
new file mode 100755 (executable)
index 0000000..273436c
Binary files /dev/null and b/data/images/wvga/57_calendar_week_arrow_focus_icon.png differ
diff --git a/data/images/wvga/57_calendar_week_arrow_icon.png b/data/images/wvga/57_calendar_week_arrow_icon.png
new file mode 100755 (executable)
index 0000000..c9299d2
Binary files /dev/null and b/data/images/wvga/57_calendar_week_arrow_icon.png differ
diff --git a/data/images/wvga/57_calendar_week_view_bg.png b/data/images/wvga/57_calendar_week_view_bg.png
new file mode 100755 (executable)
index 0000000..85e56d8
Binary files /dev/null and b/data/images/wvga/57_calendar_week_view_bg.png differ
diff --git a/data/images/wvga/57_calendar_week_view_press.png b/data/images/wvga/57_calendar_week_view_press.png
new file mode 100755 (executable)
index 0000000..a400965
Binary files /dev/null and b/data/images/wvga/57_calendar_week_view_press.png differ
diff --git a/data/images/wvga/57_calendar_year_view_bg.png b/data/images/wvga/57_calendar_year_view_bg.png
new file mode 100755 (executable)
index 0000000..5fce79a
Binary files /dev/null and b/data/images/wvga/57_calendar_year_view_bg.png differ
diff --git a/data/images/wvga/P01_bg.png b/data/images/wvga/P01_bg.png
new file mode 100755 (executable)
index 0000000..2157db9
Binary files /dev/null and b/data/images/wvga/P01_bg.png differ
diff --git a/data/images/wvga/P01_control_top_bg.png b/data/images/wvga/P01_control_top_bg.png
new file mode 100755 (executable)
index 0000000..5c99fbc
Binary files /dev/null and b/data/images/wvga/P01_control_top_bg.png differ
diff --git a/data/images/wvga/P01_control_top_bg_tmp.png b/data/images/wvga/P01_control_top_bg_tmp.png
new file mode 100755 (executable)
index 0000000..c66b5b8
Binary files /dev/null and b/data/images/wvga/P01_control_top_bg_tmp.png differ
diff --git a/data/images/wvga/P01_day_current_time.png b/data/images/wvga/P01_day_current_time.png
new file mode 100755 (executable)
index 0000000..ad94c21
Binary files /dev/null and b/data/images/wvga/P01_day_current_time.png differ
diff --git a/data/images/wvga/P01_event.png b/data/images/wvga/P01_event.png
new file mode 100755 (executable)
index 0000000..9beb806
Binary files /dev/null and b/data/images/wvga/P01_event.png differ
diff --git a/data/images/wvga/P01_noschedule.png b/data/images/wvga/P01_noschedule.png
new file mode 100755 (executable)
index 0000000..102f9bb
Binary files /dev/null and b/data/images/wvga/P01_noschedule.png differ
diff --git a/data/images/wvga/P01_tab_bg.png b/data/images/wvga/P01_tab_bg.png
new file mode 100755 (executable)
index 0000000..33371ff
Binary files /dev/null and b/data/images/wvga/P01_tab_bg.png differ
diff --git a/data/images/wvga/P01_tab_default.png b/data/images/wvga/P01_tab_default.png
new file mode 100755 (executable)
index 0000000..3c791c0
Binary files /dev/null and b/data/images/wvga/P01_tab_default.png differ
diff --git a/data/images/wvga/P01_tab_focus.png b/data/images/wvga/P01_tab_focus.png
new file mode 100755 (executable)
index 0000000..61d0fc9
Binary files /dev/null and b/data/images/wvga/P01_tab_focus.png differ
diff --git a/data/images/wvga/P01_tab_press.png b/data/images/wvga/P01_tab_press.png
new file mode 100755 (executable)
index 0000000..8eaa853
Binary files /dev/null and b/data/images/wvga/P01_tab_press.png differ
diff --git a/data/images/wvga/P01_title_bg.png b/data/images/wvga/P01_title_bg.png
new file mode 100755 (executable)
index 0000000..1666b3b
Binary files /dev/null and b/data/images/wvga/P01_title_bg.png differ
diff --git a/data/images/wvga/P01_title_bg_tmp.png b/data/images/wvga/P01_title_bg_tmp.png
new file mode 100755 (executable)
index 0000000..434e03f
Binary files /dev/null and b/data/images/wvga/P01_title_bg_tmp.png differ
diff --git a/data/images/wvga/all_calendar.png b/data/images/wvga/all_calendar.png
new file mode 100755 (executable)
index 0000000..a89d387
Binary files /dev/null and b/data/images/wvga/all_calendar.png differ
diff --git a/data/images/wvga/calendar_selected.png b/data/images/wvga/calendar_selected.png
new file mode 100755 (executable)
index 0000000..e0c19d4
Binary files /dev/null and b/data/images/wvga/calendar_selected.png differ
diff --git a/data/images/wvga/navibar_item_separator.png b/data/images/wvga/navibar_item_separator.png
new file mode 100755 (executable)
index 0000000..cf080bb
Binary files /dev/null and b/data/images/wvga/navibar_item_separator.png differ
diff --git a/data/images/wvga/navibar_item_separator_tmp.png b/data/images/wvga/navibar_item_separator_tmp.png
new file mode 100755 (executable)
index 0000000..4bbde83
Binary files /dev/null and b/data/images/wvga/navibar_item_separator_tmp.png differ
diff --git a/data/images/wvga/org.tizen.efl-calendar.png b/data/images/wvga/org.tizen.efl-calendar.png
new file mode 100755 (executable)
index 0000000..a0878ca
Binary files /dev/null and b/data/images/wvga/org.tizen.efl-calendar.png differ
diff --git a/data/images/wvga/ring/58_alarm_clock_bg_AM.png b/data/images/wvga/ring/58_alarm_clock_bg_AM.png
new file mode 100755 (executable)
index 0000000..735999c
Binary files /dev/null and b/data/images/wvga/ring/58_alarm_clock_bg_AM.png differ
diff --git a/data/images/wvga/ring/58_alarm_clock_bg_PM.png b/data/images/wvga/ring/58_alarm_clock_bg_PM.png
new file mode 100755 (executable)
index 0000000..075f3ea
Binary files /dev/null and b/data/images/wvga/ring/58_alarm_clock_bg_PM.png differ
diff --git a/data/images/wvga/ring/58_clock_bg.png b/data/images/wvga/ring/58_clock_bg.png
new file mode 100755 (executable)
index 0000000..5ef85ee
Binary files /dev/null and b/data/images/wvga/ring/58_clock_bg.png differ
diff --git a/data/images/wvga/ring/58_clock_button_normal.png b/data/images/wvga/ring/58_clock_button_normal.png
new file mode 100755 (executable)
index 0000000..75f6cbd
Binary files /dev/null and b/data/images/wvga/ring/58_clock_button_normal.png differ
diff --git a/data/images/wvga/ring/58_clock_button_press.png b/data/images/wvga/ring/58_clock_button_press.png
new file mode 100755 (executable)
index 0000000..1ef3af7
Binary files /dev/null and b/data/images/wvga/ring/58_clock_button_press.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_00.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_00.png
new file mode 100755 (executable)
index 0000000..b6918d2
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_00.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_01.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_01.png
new file mode 100755 (executable)
index 0000000..b226638
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_01.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_02.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_02.png
new file mode 100755 (executable)
index 0000000..79ac76e
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_02.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_03.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_03.png
new file mode 100755 (executable)
index 0000000..cfe7fd5
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_03.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_04.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_04.png
new file mode 100755 (executable)
index 0000000..770f442
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_04.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_05.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_05.png
new file mode 100755 (executable)
index 0000000..36acefd
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_05.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_06.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_06.png
new file mode 100755 (executable)
index 0000000..c32adfa
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_06.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_07.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_07.png
new file mode 100755 (executable)
index 0000000..2b15133
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_07.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_08.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_08.png
new file mode 100755 (executable)
index 0000000..8bcfc5d
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_08.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_09.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_09.png
new file mode 100755 (executable)
index 0000000..f9f339a
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_09.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_10.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_10.png
new file mode 100755 (executable)
index 0000000..47eaead
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_10.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_11.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_11.png
new file mode 100755 (executable)
index 0000000..c46601d
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_11.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_12.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_12.png
new file mode 100755 (executable)
index 0000000..c81b317
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_12.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_13.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_13.png
new file mode 100755 (executable)
index 0000000..88e8e13
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_13.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_14.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_14.png
new file mode 100755 (executable)
index 0000000..20ad260
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_14.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_15.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_15.png
new file mode 100755 (executable)
index 0000000..d2908e7
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_15.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_16.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_16.png
new file mode 100755 (executable)
index 0000000..53ee47e
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_16.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_17.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_17.png
new file mode 100755 (executable)
index 0000000..1ef1318
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_17.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_18.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_18.png
new file mode 100755 (executable)
index 0000000..d4d074c
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_18.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_19.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_19.png
new file mode 100755 (executable)
index 0000000..e269e77
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_19.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_20.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_20.png
new file mode 100755 (executable)
index 0000000..a508e5f
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_20.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_21.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_21.png
new file mode 100755 (executable)
index 0000000..20c3868
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_21.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_22.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_22.png
new file mode 100755 (executable)
index 0000000..57f076d
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_22.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_23.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_23.png
new file mode 100755 (executable)
index 0000000..47d7c45
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_23.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_24.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_24.png
new file mode 100755 (executable)
index 0000000..1c551f9
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_24.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_25.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_25.png
new file mode 100755 (executable)
index 0000000..ff6deee
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_25.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_26.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_26.png
new file mode 100755 (executable)
index 0000000..d518078
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_26.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_27.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_27.png
new file mode 100755 (executable)
index 0000000..ed7a34e
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_27.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_28.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_28.png
new file mode 100755 (executable)
index 0000000..88e4cb2
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_28.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_29.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_29.png
new file mode 100755 (executable)
index 0000000..1908caf
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_29.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_30.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_30.png
new file mode 100755 (executable)
index 0000000..9b00929
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_30.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_31.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_31.png
new file mode 100755 (executable)
index 0000000..89e41cc
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_31.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_32.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_32.png
new file mode 100755 (executable)
index 0000000..0ce9ee2
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_32.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_33.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_33.png
new file mode 100755 (executable)
index 0000000..823350d
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_33.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_34.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_34.png
new file mode 100755 (executable)
index 0000000..7c8e5b3
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_34.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_35.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_35.png
new file mode 100755 (executable)
index 0000000..578262a
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_35.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_36.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_36.png
new file mode 100755 (executable)
index 0000000..1ebd8e9
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_36.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_37.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_37.png
new file mode 100755 (executable)
index 0000000..b6ad209
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_37.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_38.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_38.png
new file mode 100755 (executable)
index 0000000..f349025
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_38.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_39.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_39.png
new file mode 100755 (executable)
index 0000000..224b2a3
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_39.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_40.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_40.png
new file mode 100755 (executable)
index 0000000..105e146
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_40.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_41.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_41.png
new file mode 100755 (executable)
index 0000000..c4f08ea
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_41.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_42.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_42.png
new file mode 100755 (executable)
index 0000000..9c3a969
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_42.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_43.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_43.png
new file mode 100755 (executable)
index 0000000..7380006
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_43.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_44.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_44.png
new file mode 100755 (executable)
index 0000000..abccb5f
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_44.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_45.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_45.png
new file mode 100755 (executable)
index 0000000..14b03cc
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_45.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_46.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_46.png
new file mode 100755 (executable)
index 0000000..43fa947
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_46.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_47.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_47.png
new file mode 100755 (executable)
index 0000000..82faf78
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_47.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_48.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_48.png
new file mode 100755 (executable)
index 0000000..5c8f0ba
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_48.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_49.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_49.png
new file mode 100755 (executable)
index 0000000..30c237d
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_49.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_50.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_50.png
new file mode 100755 (executable)
index 0000000..6009c5a
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_50.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_51.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_51.png
new file mode 100755 (executable)
index 0000000..1565e69
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_51.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_52.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_52.png
new file mode 100755 (executable)
index 0000000..69d0573
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_52.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_53.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_53.png
new file mode 100755 (executable)
index 0000000..99d3f63
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_53.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_54.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_54.png
new file mode 100755 (executable)
index 0000000..edf7bfa
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_54.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_55.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_55.png
new file mode 100755 (executable)
index 0000000..ef75df7
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_55.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_56.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_56.png
new file mode 100755 (executable)
index 0000000..0df7b73
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_56.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_57.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_57.png
new file mode 100755 (executable)
index 0000000..50bcd4c
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_57.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_58.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_58.png
new file mode 100755 (executable)
index 0000000..1ca2d51
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_58.png differ
diff --git a/data/images/wvga/ring/hour/58_alarm_clock_hour_59.png b/data/images/wvga/ring/hour/58_alarm_clock_hour_59.png
new file mode 100755 (executable)
index 0000000..b63bfe2
Binary files /dev/null and b/data/images/wvga/ring/hour/58_alarm_clock_hour_59.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_00.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_00.png
new file mode 100755 (executable)
index 0000000..1e730f3
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_00.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_01.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_01.png
new file mode 100755 (executable)
index 0000000..51ef6ba
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_01.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_02.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_02.png
new file mode 100755 (executable)
index 0000000..67cbf7f
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_02.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_03.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_03.png
new file mode 100755 (executable)
index 0000000..8349f3d
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_03.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_04.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_04.png
new file mode 100755 (executable)
index 0000000..1107378
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_04.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_05.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_05.png
new file mode 100755 (executable)
index 0000000..a9bbf08
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_05.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_06.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_06.png
new file mode 100755 (executable)
index 0000000..def04fd
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_06.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_07.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_07.png
new file mode 100755 (executable)
index 0000000..67e08c8
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_07.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_08.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_08.png
new file mode 100755 (executable)
index 0000000..1eff35f
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_08.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_09.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_09.png
new file mode 100755 (executable)
index 0000000..732c9c5
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_09.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_10.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_10.png
new file mode 100755 (executable)
index 0000000..f6c2b80
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_10.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_11.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_11.png
new file mode 100755 (executable)
index 0000000..5a6d7a9
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_11.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_12.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_12.png
new file mode 100755 (executable)
index 0000000..468051f
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_12.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_13.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_13.png
new file mode 100755 (executable)
index 0000000..67f8f5a
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_13.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_14.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_14.png
new file mode 100755 (executable)
index 0000000..4941435
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_14.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_15.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_15.png
new file mode 100755 (executable)
index 0000000..74e6eed
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_15.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_16.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_16.png
new file mode 100755 (executable)
index 0000000..6652e6f
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_16.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_17.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_17.png
new file mode 100755 (executable)
index 0000000..faf8aa9
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_17.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_18.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_18.png
new file mode 100755 (executable)
index 0000000..52940d1
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_18.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_19.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_19.png
new file mode 100755 (executable)
index 0000000..ea74a82
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_19.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_20.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_20.png
new file mode 100755 (executable)
index 0000000..c5a5252
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_20.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_21.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_21.png
new file mode 100755 (executable)
index 0000000..4c29eb9
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_21.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_22.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_22.png
new file mode 100755 (executable)
index 0000000..72e284b
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_22.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_23.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_23.png
new file mode 100755 (executable)
index 0000000..a5b2330
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_23.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_24.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_24.png
new file mode 100755 (executable)
index 0000000..3a2c4e4
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_24.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_25.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_25.png
new file mode 100755 (executable)
index 0000000..7733321
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_25.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_26.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_26.png
new file mode 100755 (executable)
index 0000000..dc295f1
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_26.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_27.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_27.png
new file mode 100755 (executable)
index 0000000..dbb820f
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_27.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_28.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_28.png
new file mode 100755 (executable)
index 0000000..d6153cd
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_28.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_29.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_29.png
new file mode 100755 (executable)
index 0000000..1a013d4
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_29.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_30.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_30.png
new file mode 100755 (executable)
index 0000000..0234ad9
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_30.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_31.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_31.png
new file mode 100755 (executable)
index 0000000..b77f64c
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_31.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_32.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_32.png
new file mode 100755 (executable)
index 0000000..a7e4d2a
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_32.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_33.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_33.png
new file mode 100755 (executable)
index 0000000..1b16201
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_33.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_34.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_34.png
new file mode 100755 (executable)
index 0000000..fc36584
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_34.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_35.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_35.png
new file mode 100755 (executable)
index 0000000..8462070
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_35.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_36.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_36.png
new file mode 100755 (executable)
index 0000000..aa945e9
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_36.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_37.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_37.png
new file mode 100755 (executable)
index 0000000..9ce6307
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_37.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_38.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_38.png
new file mode 100755 (executable)
index 0000000..72943f7
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_38.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_39.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_39.png
new file mode 100755 (executable)
index 0000000..ecdd2a6
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_39.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_40.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_40.png
new file mode 100755 (executable)
index 0000000..e2ce094
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_40.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_41.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_41.png
new file mode 100755 (executable)
index 0000000..abefcf3
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_41.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_42.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_42.png
new file mode 100755 (executable)
index 0000000..d6a8ef0
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_42.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_43.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_43.png
new file mode 100755 (executable)
index 0000000..1efedc3
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_43.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_44.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_44.png
new file mode 100755 (executable)
index 0000000..e893222
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_44.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_45.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_45.png
new file mode 100755 (executable)
index 0000000..8ade918
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_45.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_46.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_46.png
new file mode 100755 (executable)
index 0000000..fa195d8
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_46.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_47.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_47.png
new file mode 100755 (executable)
index 0000000..b09698a
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_47.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_48.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_48.png
new file mode 100755 (executable)
index 0000000..de6895f
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_48.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_49.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_49.png
new file mode 100755 (executable)
index 0000000..a3d7b84
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_49.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_50.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_50.png
new file mode 100755 (executable)
index 0000000..9cdb17f
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_50.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_51.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_51.png
new file mode 100755 (executable)
index 0000000..0bd8f03
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_51.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_52.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_52.png
new file mode 100755 (executable)
index 0000000..24a49c9
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_52.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_53.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_53.png
new file mode 100755 (executable)
index 0000000..422afc6
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_53.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_54.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_54.png
new file mode 100755 (executable)
index 0000000..c24cc9d
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_54.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_55.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_55.png
new file mode 100755 (executable)
index 0000000..2f755ca
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_55.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_56.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_56.png
new file mode 100755 (executable)
index 0000000..36cfc3c
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_56.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_57.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_57.png
new file mode 100755 (executable)
index 0000000..fa6ed55
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_57.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_58.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_58.png
new file mode 100755 (executable)
index 0000000..ac53e5d
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_58.png differ
diff --git a/data/images/wvga/ring/minute/58_alarm_clock_minute_59.png b/data/images/wvga/ring/minute/58_alarm_clock_minute_59.png
new file mode 100755 (executable)
index 0000000..e978562
Binary files /dev/null and b/data/images/wvga/ring/minute/58_alarm_clock_minute_59.png differ
diff --git a/data/sounds/On_time.wav b/data/sounds/On_time.wav
new file mode 100755 (executable)
index 0000000..393d76d
Binary files /dev/null and b/data/sounds/On_time.wav differ
diff --git a/debian/changelog b/debian/changelog
new file mode 100755 (executable)
index 0000000..13cc482
--- /dev/null
@@ -0,0 +1,235 @@
+efl-calendar (0.5.58) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.58
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Sat, 7 Apr 2012 13:55:04 +0900
+
+efl-calendar (0.5.57) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.57
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Fri, 6 Apr 2012 20:55:04 +0900
+
+efl-calendar (0.5.56) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.56
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Thu, 5 Apr 2012 17:55:04 +0900
+
+efl-calendar (0.5.55) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.55
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Thu, 5 Apr 2012 14:55:04 +0900
+
+efl-calendar (0.5.54) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.54
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Wed, 4 Apr 2012 14:55:04 +0900
+
+efl-calendar (0.5.53) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.53
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Mon, 3 Apr 2012 14:55:04 +0900
+
+efl-calendar (0.5.52) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.52
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Wed, 28 Mar 2012 22:55:04 +0900
+
+efl-calendar (0.5.51) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.51
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Tue, 27 Mar 2012 23:55:04 +0900
+
+efl-calendar (0.5.50) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.50
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Mon, 26 Mar 2012 22:41:04 +0900
+
+efl-calendar (0.5.49) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.49
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Sat, 24 Mar 2012 11:41:04 +0900
+
+efl-calendar (0.5.48) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.48
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Wed, 21 Mar 2012 20:41:04 +0900
+
+efl-calendar (0.5.47) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.47
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Wed, 21 Mar 2012 14:41:04 +0900
+
+efl-calendar (0.5.46) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.46
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Fri, 16 Mar 2012 20:41:04 +0900
+
+efl-calendar (0.5.45) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.45
+
+ -- Yin Shouchen <shouchen.yin@samsung.com>  Sat, 25 Feb 2012 19:45:04 +0900
+efl-calendar (0.5.44) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.44
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Thu, 23 Feb 2012 10:41:04 +0900
+
+efl-calendar (0.5.43) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.43
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Wed, 22 Feb 2012 22:41:04 +0900
+
+efl-calendar (0.5.42) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.42
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Thu, 16 Feb 2012 15:41:04 +0900
+
+efl-calendar (0.5.41) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.41
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Fri, 30 Dec 2011 18:41:04 +0900
+
+efl-calendar (0.5.40) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.40
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Fri, 30 Dec 2011 18:41:04 +0900
+
+efl-calendar (0.5.39) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.39
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Fri, 30 Dec 2011 18:41:04 +0900
+
+efl-calendar (0.5.38) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.38
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Thu, 29 Dec 2011 22:31:14 +0900
+
+efl-calendar (0.5.37) unstable; urgency=low
+
+  * Release pkg.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.37
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Wed, 28 Dec 2011 15:35:19 +0900
+
+efl-calendar (0.5.36) unstable; urgency=low
+
+  * Add accounts-svc dependency for ug.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.36
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Tue, 27 Dec 2011 14:57:39 +0900
+
+efl-calendar (0.5.35) unstable; urgency=low
+
+  * Update code.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.35
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Fri, 23 Dec 2011 11:15:58 +0900
+
+efl-calendar (0.5.34) unstable; urgency=low
+
+  * Change name.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.34
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Thu, 22 Dec 2011 18:54:32 +0900
+
+efl-calendar (0.5.33) unstable; urgency=low
+
+  * Change name.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.33
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Thu, 22 Dec 2011 18:02:39 +0900
+
+efl-calendar (0.5.32) unstable; urgency=low
+
+  * Fix auto scrolling issue.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.32
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Thu, 22 Dec 2011 16:53:06 +0900
+
+efl-calendar (0.5.31) unstable; urgency=low
+
+  * Remove map, share option.
+  * Git: pkgs/e/efl-calendar
+  * Tag: efl-calendar_0.5.31
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Wed, 21 Dec 2011 20:20:40 +0900
+
+efl-calendar (0.5.30) unstable; urgency=low
+
+  * Release pkg.
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Tue, 20 Dec 2011 08:22:42 +0900
+
+efl-calendar (0.5.29) unstable; urgency=low
+
+  * Initial release.
+
+ -- Taeho Kang <taeho84.kang@samsung.com>  Wed, 07 Dec 2011 12:00:00 +0900
diff --git a/debian/compat b/debian/compat
new file mode 100755 (executable)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100755 (executable)
index 0000000..68565f1
--- /dev/null
@@ -0,0 +1,30 @@
+Source: efl-calendar
+Section: devel
+Priority: extra
+Maintainer: Youngjae Shin <yj99.shin@samsung.com>, Taeho Kang <taeho84.kang@samsung.com>
+Uploaders: Taeho Kang <taeho84.kang@samsung.com>
+Build-Depends: debhelper (>= 5), libappcore-efl-dev, libslp-utilx-dev, libslp-calendar-dev, dlog-dev, libalarm-dev, libslp-utilx-dev, libmm-player-dev, libaccounts-svc-dev, libui-gadget-dev, libheynoti-dev, libui-gadget-dev, libslp-pm-dev, libicu-dev, capi-appfw-application-dev, capi-media-wav-player-dev, capi-media-sound-manager-dev 
+Standards-Version: 3.7.2
+
+Package: org.tizen.efl-calendar
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Calendar application
+ Beat UI Calendar application
+
+Package: org.tizen.calendar-viewer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Calendar viewer application
+
+Package: org.tizen.efl-calendar-dbg
+Section: debug
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Calendar application (debug package)
+ Beat UI Calendar application (debug package)
+
+Package: libug-calendar-efl
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, org.tizen.efl-calendar, org.tizen.calendar-viewer
+Description: Calendar UI gadget (EFL)
diff --git a/debian/copyright b/debian/copyright
new file mode 100755 (executable)
index 0000000..a298a26
--- /dev/null
@@ -0,0 +1,19 @@
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
\ No newline at end of file
diff --git a/debian/dirs b/debian/dirs
new file mode 100755 (executable)
index 0000000..e772481
--- /dev/null
@@ -0,0 +1 @@
+usr/bin
diff --git a/debian/docs b/debian/docs
new file mode 100755 (executable)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
diff --git a/debian/libug-calendar-efl.install.in b/debian/libug-calendar-efl.install.in
new file mode 100755 (executable)
index 0000000..8893e2e
--- /dev/null
@@ -0,0 +1 @@
+/opt/ug/lib/*.so
diff --git a/debian/libug-calendar-efl.postinst b/debian/libug-calendar-efl.postinst
new file mode 100755 (executable)
index 0000000..7813c43
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+mkdir -p /opt/data/ug-calendar
+
+if [ ${USER} = "root" ]
+then
+       chgrp 6003 /opt/data/ug-calendar
+       chmod 770 /opt/data/ug-calendar
+fi
\ No newline at end of file
diff --git a/debian/org.tizen.calendar-viewer.install.in b/debian/org.tizen.calendar-viewer.install.in
new file mode 100755 (executable)
index 0000000..d59b35b
--- /dev/null
@@ -0,0 +1,2 @@
+/opt/apps/org.tizen.calendar-viewer/*
+/opt/share/applications/org.tizen.calendar-viewer.desktop
diff --git a/debian/org.tizen.efl-calendar.install.in b/debian/org.tizen.efl-calendar.install.in
new file mode 100755 (executable)
index 0000000..19a4b50
--- /dev/null
@@ -0,0 +1,6 @@
+@PREFIX@/bin/efl-calendar
+@RESDIR@/locale/*
+@RESDIR@/icons/*
+@RESDIR@/edje/*.edj
+@RESDIR@/sounds/*
+/opt/share/applications/org.tizen.efl-calendar.desktop
diff --git a/debian/org.tizen.efl-calendar.postinst b/debian/org.tizen.efl-calendar.postinst
new file mode 100755 (executable)
index 0000000..6514625
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+       ldconfig
+fi
+# End automatically added section
+
+#if [ ${USER} = "root" ]
+if [ "`id -u`" = "0" ]
+then
+       # 5000 is inhouse user id
+       # do not use relative path
+       vconftool set -t int db/calendar/focusview 0 -u 5000
+       vconftool set -t int db/calendar/send 0 -u 5000
+       vconftool set -t int db/calendar/timezone_on_off 0 -u 5000
+       vconftool set -t string db/calendar/timezone_path "Asia/Seoul" -u 5000
+       vconftool set -t string db/calendar/timezone_city "IDS_WCL_BODY_CITYNAME_SEOUL" -u 5000
+       vconftool set -t string db/calendar/timezone_offset "GMT+9" -u 5000
+fi
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..219f33e
--- /dev/null
@@ -0,0 +1,114 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+CFLAGS = -Wall -g
+LDFLAGS ?=
+PREFIX ?= /opt/apps/org.tizen.efl-calendar
+RESDIR ?= /opt/apps/org.tizen.efl-calendar/res
+DATADIR ?= /opt/apps/org.tizen.efl-calendar/data
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+       CFLAGS += -O0
+else
+       CFLAGS += -O2
+endif
+
+LDFLAGS += -Wl,--rpath=$(PREFIX)/lib -Wl,--as-needed
+
+CMAKE_BUILD_DIR ?= $(CURDIR)/cmake_build_tmp
+
+configure: configure-stamp
+configure-stamp:
+       dh_testdir
+       # Add here commands to configure the package.
+       mkdir -p $(CMAKE_BUILD_DIR) && cd $(CMAKE_BUILD_DIR) && \
+       CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" cmake .. -DCMAKE_INSTALL_PREFIX="$(PREFIX)"
+
+       touch configure-stamp
+
+build: build-stamp
+
+build-stamp: configure-stamp 
+       dh_testdir
+
+       # Add here commands to compile the package.
+       cd $(CMAKE_BUILD_DIR) && $(MAKE)
+
+       for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
+               cat $$f > $${f%.in}; \
+               sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \
+               sed -i -e "s#@RESDIR@#$(RESDIR)#g" $${f%.in}; \
+               sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \
+       done
+
+       touch $@
+
+clean:
+       dh_testdir
+       dh_testroot
+       rm -f build-stamp configure-stamp
+
+       # Add here commands to clean up after the build process.
+       rm -rf $(CMAKE_BUILD_DIR)
+
+       for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
+               rm -f $${f%.in}; \
+       done
+
+       dh_clean 
+
+install: build
+       dh_testdir
+       dh_testroot
+       dh_clean -k 
+#      dh_installdirs
+
+       # Add here commands to install the package into debian/wavplayer.
+       cd $(CMAKE_BUILD_DIR) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+       dh_testdir
+       dh_testroot
+#      dh_installchangelogs 
+#      dh_installdocs
+#      dh_installexamples
+       dh_install --sourcedir=debian/tmp
+#      dh_installmenu
+#      dh_installdebconf       
+#      dh_installlogrotate
+#      dh_installemacsen
+#      dh_installpam
+#      dh_installmime
+#      dh_python
+#      dh_installinit
+#      dh_installcron
+#      dh_installinfo
+#      dh_installman
+       dh_link
+       dh_strip --dbg-package=org.tizen.efl-calendar-dbg
+       dh_compress
+       dh_fixperms
+#      dh_perl
+       dh_makeshlibs
+       dh_installdeb
+       dh_shlibdeps
+       dh_gencontrol
+       dh_md5sums
+       dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/include/acct-svc.h b/include/acct-svc.h
new file mode 100755 (executable)
index 0000000..cc2710e
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+#ifndef __CALENDAR_ACCOUNT_SVC_H__
+#define __CALENDAR_ACCOUNT_SVC_H__
+
+#include <account.h>
+#include <account-types.h>
+
+#include "cld.h"
+
+struct _acct {
+       int id;
+       char *name;
+       char *icon;
+       void *data;
+       Evas_Object* check;
+};
+
+#define CAL_ACCOUNT_SVC_STRUCT_GET_INT(acct, field, r) account_svc_get_value_int(acct, field, r);
+#define CAL_ACCOUNT_SVC_STRUCT_GET_STR(acct, field, r) account_svc_get_value_str(acct, field, r);
+
+Eina_List* cal_account_svc_get_account_list(void);
+void cal_account_svc_free_account_list(Eina_List **); // don't care about "data"
+char* cal_account_svc_get_account_icon_path(int account_id);
+
+#endif /* __CALENDAR_ACCOUNT_SVC_H__ */
+
diff --git a/include/cal-svc.h b/include/cal-svc.h
new file mode 100755 (executable)
index 0000000..1a73a67
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_CAL_SVC_H__
+#define __CALENDAR_CAL_SVC_H__
+
+#include <time.h>
+#include <Elementary.h>
+#include <calendar-svc-provider.h>
+
+struct tmnode {
+       time_t st;
+       time_t et;
+       int repeat;
+       cal_struct *cs;
+};
+
+struct calsvc {
+       Eina_List *cslist;
+       Eina_List *tmlist;
+};
+
+struct _cs {
+       cal_struct* cs;
+       Evas_Object* check;
+       void* at;
+};
+
+typedef struct __cal_account_calendar_color Calendar_color;
+struct __cal_account_calendar_color
+{
+       int red;
+       int green;
+       int blue;
+       int alpha;
+};
+
+struct calsvc* _calendar_svc_get_event(int acct_id, time_t st, time_t et);
+void _calendar_svc_free_cs(struct calsvc **csv);
+void _calendar_svc_free_cslist(Eina_List **h);
+int _calendar_svc_get_account_visibility(int account_id);
+void _calendar_svc_set_account_visibility(int account_id, int value);
+void _calendar_svc_set_calendar_visibility(cal_struct* cs, int value);
+int _calendar_svc_get_calendar_visibility(cal_struct* cs);
+Eina_List* _calendar_svc_find_event(int acct_id, const char *field, const void *val);
+Eina_List *_calendar_svc_get_calendars(int acct_id);
+Eina_List *_calendar_svc_get_calendars_with_account(int account_id, void* at);
+int* _calendar_svc_get_simple_cs(int acct_id, time_t st, time_t et);
+void _calendar_svc_set_calendar_color(cal_struct* cs, Calendar_color* color );
+void _calendar_svc_get_calendar_color(cal_struct* cs, Calendar_color* calendar_color );
+void _calendar_svc_add_event_changed_callback(void(*callback)(void *), void *user_data);
+void _calendar_svc_del_event_changed_callback(void(*callback)(void *));
+void _calendar_svc_add_calendar_changed_callback(const char *type, void(*callback)(void *), void *user_data);
+void _calendar_svc_del_calendar_changed_callback(const char *type, void(*callback)(void *));
+
+
+#define CALENDAR_SVC_CONNECT() calendar_svc_connect()
+#define CALENDAR_SVC_DISCONNECT() calendar_svc_close()
+
+#define CALENDAR_SVC_STRUCT_GET_STR(cs, field) calendar_svc_struct_get_str(cs, field)
+#define CALENDAR_SVC_STRUCT_GET_INT(cs, field) calendar_svc_struct_get_int(cs, field)
+#define CALENDAR_SVC_STRUCT_GET_DOUBLE(cs, field) calendar_svc_struct_get_double(cs, field)
+#define CALENDAR_SVC_STRUCT_GET_TIME(cs, field, flag) calendar_svc_struct_get_time(cs, field, flag)
+#define CALENDAR_SVC_STRUCT_GET_TM(cs, field, flag) calendar_svc_struct_get_tm(cs, field, flag)
+#define CALENDAR_SVC_STRUCT_GET_LIST(cs, field, list) calendar_svc_struct_get_list(cs, field, list)
+
+#define CALENDAR_SVC_STRUCT_SET_STR(cs, field, val) calendar_svc_struct_set_str(cs, field, val)
+#define CALENDAR_SVC_STRUCT_SET_INT(cs, field, val) calendar_svc_struct_set_int(cs, field, val)
+#define CALENDAR_SVC_STRUCT_SET_DOUBLE(cs, field, val) calendar_svc_struct_set_double(cs, field, val)
+#define CALENDAR_SVC_STRUCT_SET_TIME(cs, field, flag, val) calendar_svc_struct_set_time(cs, field, flag, val)
+#define CALENDAR_SVC_STRUCT_SET_TM(cs, field, flag, val) calendar_svc_struct_set_tm(cs, field, flag, val)
+#define CALENDAR_SVC_STRUCT_SET_LIST(cs, field, list) calendar_svc_struct_store_list(cs, field, list)
+
+#define CALENDAR_SVC_STRUCT_FREE(cs) calendar_svc_struct_free(cs)
+#define CALENDAR_SVC_STRUCT_NEW(type) calendar_svc_struct_new(type)
+
+#define CALENDAR_SVC_VALUE_GET_STR(cs, field) calendar_svc_value_get_str(cs, field)
+#define CALENDAR_SVC_VALUE_GET_INT(cs, field) calendar_svc_value_get_int(cs, field)
+#define CALENDAR_SVC_VALUE_GET_TIME(cs, field, flag) calendar_svc_value_get_time(cs, field, flag)
+#define CALENDAR_SVC_VALUE_GET_TM(cs, field, flag) calendar_svc_value_get_tm(cs, field, flag)
+
+#define CALENDAR_SVC_VALUE_SET_STR(cs, field, val) calendar_svc_value_set_str(cs, field, val)
+#define CALENDAR_SVC_VALUE_SET_INT(cs, field, val) calendar_svc_value_set_int(cs, field, val)
+#define CALENDAR_SVC_VALUE_SET_TIME(cs, field, flag, val) calendar_svc_value_set_time(cs, field, flag, val)
+#define CALENDAR_SVC_VALUE_SET_TM(cs, field, flag, val) calendar_svc_value_set_tm(cs, field, flag, val)
+
+#define CALENDAR_SVC_VALUE_NEW(field) calendar_svc_value_new(field)
+#define CALENDAR_SVC_VALUE_FREE(value) calendar_svc_value_free(value)
+
+#define CALENDAR_SVC_FREE_CS(csv) _calendar_svc_free_cs(csv)
+#define CALENDAR_SVC_FREE_CS_LIST(list) _calendar_svc_free_cslist(list)
+
+#define CALENDAR_SVC_GET_ACCOUNT_VISIBILITY(account_id) _calendar_svc_get_account_visibility(account_id)
+#define CALENDAR_SVC_SET_ACCOUNT_VISIBILITY(account_id, visible)_calendar_svc_set_account_visibility(account_id, visible)
+#define CALENDAR_SVC_SET_CALENDAR_VISIBILITY(cs, visible) _calendar_svc_set_calendar_visibility(cs, visible)
+#define CALENDAR_SVC_GET_CALENDAR_VIGIBILITY(cs) _calendar_svc_get_calendar_visibility(cs)
+
+#define CALENDAR_SVC_GET_CALENDARS(account_id) _calendar_svc_get_calendars(account_id)
+#define CALENDAR_SVC_GET_CALENDARS_WITH_ACCOUNT(account_id, at) _calendar_svc_get_calendars_with_account(account_id, at)
+#define CALENDAR_SVC_SET_CALENDAR_COLOR(cs, color) _calendar_svc_set_calendar_color(cs, color)
+#define CALENDAR_SVC_GET_CALENDAR_COLOR(cs, color) _calendar_svc_get_calendar_color(cs, color)
+
+#define CALENDAR_SVC_ADD_EVENT_CHANGED_CALLBACK(callback, data)_calendar_svc_add_event_changed_callback(callback, data)
+#define CALENDAR_SVC_ADD_CALENDAR_CHANGED_CALLBACK(type, callback, data) _calendar_svc_add_calendar_changed_callback(type, callback, data)
+
+#define CALENDAR_SVC_DEL_EVENT_CHANGED_CALLBACK(callback) _calendar_svc_del_event_changed_callback(callback)
+#define CALENDAR_SVC_DEL_CALENDAR_CHANGED_CALLBACK(type, callback) _calendar_svc_del_calendar_changed_callback(type, callback)
+
+#define CALENDAR_SVC_INSERT(cs) calendar_svc_insert(cs)
+#define CALENDAR_SVC_UPDATE(cs) calendar_svc_update(cs)
+#define CALENDAR_SVC_DELETE(type, index) calendar_svc_delete(type, index)
+#define CALENDAR_SVC_DELETE_ALL(account_id, type) calendar_svc_delete_all(account_id, type)
+
+#define CALENDAR_SVC_GET(type, index, field, cs) calendar_svc_get(type, index, field, cs)
+#define CALENDAR_SVC_GET_ALL(account_id, calendar_id, type, iter) calendar_svc_get_all(account_id, calendar_id, type, iter)
+#define CALENDAR_SVC_GET_LIST(account_id, calendar_id, data_type, field_type, offset, count, iter) calendar_svc_get_list(account_id, calendar_id, data_type, field_type, offset, count, iter)
+#define CALENDAR_SVC_GET_EVENT(account_id, start, end)  _calendar_svc_get_event(account_id, start, end)
+#define CALENDAR_SVC_GET_EVENT_LIST_BY_PERIOD(account_id, start, end, iter) calendar_svc_get_event_list_by_period(account_id, start, end, iter)
+#define CALENDAR_SVC_GET_COUNT(account_id, calendar_id, type) calendar_svc_get_count(account_id, calendar_id, type)
+#define CALENDAR_SVC_GET_SIMPLE_CS(account_id, start, end) _calendar_svc_get_simple_cs(account_id, start, end)
+
+#define CALENDAR_SVC_FIND(account_id, calendar_id, data_type, search_type, search_value, iter) calendar_svc_find(account_id, calendar_id, data_type, search_type, search_value, iter)
+#define CALENDAR_SVC_FIND_EVENT(account_id, field, value) _calendar_svc_find_event(account_id, field, value)
+#define CALENDAR_SVC_FIND_EVENT_LIST(account_id, search_type, search_value, iter) calendar_svc_find_event_list(account_id, search_type, search_value, iter)
+
+#define CALENDAR_SVC_ITER_NEXT(iter) calendar_svc_iter_next(iter)
+#define CALENDAR_SVC_ITER_GET_INFO(iter, cs) calendar_svc_iter_get_info(iter, cs)
+#define CALENDAR_SVC_ITER_REMOVE(iter) calendar_svc_iter_remove(iter)
+
+#define CALENDAR_SVC_UTIL_NEXT_VAILD_EVENT_TM(cs, start, end, next_vaild_start, next_valid_end) calendar_svc_util_next_valid_event_tm(cs, start, end, next_vaild_start, next_valid_end)
+#define CALENDAR_SVC_UTIL_CONVERT_DB_TIME(from_time, from_tz, to_time, to_tz) calendar_svc_util_convert_db_time(from_time, from_tz, to_time, to_tz)
+#define CALENDAR_SVC_UTIL_SAVE_VCS_BY_INDEX(index, file) calendar_svc_util_save_vcs_by_index(index, file)
+#define CALENDAR_SVC_UTIL_CONVERT_VCS_TO_EVENT(data, size, cs) calendar_svc_util_convert_vcs_to_event(data, size, cs)
+
+#endif /* __CALENDAR_CAL_SVC_H__ */
+
diff --git a/include/cld-log.h b/include/cld-log.h
new file mode 100755 (executable)
index 0000000..bcb0a9c
--- /dev/null
@@ -0,0 +1,152 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+
+#ifndef __CALENDAR_LOG_H__
+#define __CALENDAR_LOG_H__
+
+#define CAL_DEBUGGING
+#define CAL_DLOG_OUT
+
+//#define CAL_TIMECHECK
+//#define CAL_USE_OWN_TIME
+
+#ifdef CAL_DLOG_OUT
+#define LOG_TAG "CALENDAR"
+#include <dlog.h>
+#define DLOG(prio, fmt, arg...) \
+       do { SLOG(prio, LOG_TAG, fmt, ##arg); } while (0)
+#define INFO(fmt, arg...) SLOGI(fmt, ##arg)
+#define ERR(fmt, arg...) SLOGE("%s(%d) " fmt, __FUNCTION__, __LINE__, ##arg)
+#define DBG(fmt, arg...) SLOGD("%s(%d) " fmt, __FUNCTION__, __LINE__, ##arg)
+#else //CAL_DLOG_OUT
+#define PRT(prio, fmt, arg...) \
+       do { fprintf((prio?stderr:stdout),"[Calendar]" fmt"\n", ##arg); } while (0)
+#define INFO(fmt, arg...) PRT(0, fmt, ##arg)
+#define ERR(fmt, arg...) PRT(1,"%s(%d) " fmt, __FUNCTION__, __LINE__, ##arg)
+#define DBG(fmt, arg...) \
+       do { \
+               printf("\x1b[105;37m[Calendar]\x1b[0m(%s)" fmt "\n", __FUNCTION__, ##arg); \
+       } while (0)
+#endif //CAL_DLOG_OUT
+
+#ifdef CAL_DEBUGGING
+
+#ifdef CAL_USE_OWN_TIME
+#define CAL_FN_START CAL_TIME_CHECK_START
+#define CAL_FN_END CAL_TIME_CHECK_END
+#else//CAL_USE_OWN_TIME
+#ifdef CAL_TIMECHECK
+#define CAL_FN_START DBG("START")
+#define CAL_FN_END DBG("END")
+#else//CAL_TIMECHECK
+#define CAL_FN_START DBG("")
+#define CAL_FN_END
+#endif//CAL_TIMECHECK
+#endif//CAL_USE_OWN_TIME
+
+#define c_warn_if(expr, fmt, arg...) do { \
+       if (expr) { \
+               ERR("(%s) -> "fmt, #expr, ##arg); \
+       } \
+} while (0)
+#define c_ret_if(expr) do { \
+       if (expr) { \
+               DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return; \
+       } \
+} while (0)
+#define c_retv_if(expr, val) do { \
+       if (expr) { \
+               DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return (val); \
+       } \
+} while (0)
+#define c_retm_if(expr, fmt, arg...) do { \
+       if (expr) { \
+               ERR(fmt, ##arg); \
+               DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return; \
+       } \
+} while (0)
+#define c_retvm_if(expr, val, fmt, arg...) do { \
+       if (expr) { \
+               ERR(fmt, ##arg); \
+               DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return (val); \
+       } \
+} while (0)
+#else //CAL_DEBUGGING
+#define CAL_FN_START
+#define CAL_FN_END
+#define DBG(...)
+
+#define c_warn_if(expr, fmt, arg...) do { \
+       if (expr) { \
+               ERR(fmt, ##arg); \
+       } \
+} while (0)
+#define c_ret_if(expr) do { \
+       if (expr) { \
+               return; \
+       } \
+} while (0)
+#define c_retv_if(expr, val) do { \
+       if (expr) { \
+               return (val); \
+       } \
+} while (0)
+#define c_retm_if(expr, fmt, arg...) do { \
+       if (expr) { \
+               ERR(fmt, ##arg); \
+               return; \
+       } \
+} while (0)
+#define c_retvm_if(expr, val, fmt, arg...) do { \
+       if (expr) { \
+               ERR(fmt, ##arg); \
+               return (val); \
+       } \
+} while (0)
+
+#endif //CAL_DEBUGGING
+
+#ifdef CAL_TIMECHECK
+double cal_correction, cal_startT;
+double cal_set_start_time(void);
+double cal_exec_time(double start, double correction);
+double cal_init_time(double correction);
+#define CAL_TIME_CHECK_START   \
+       double cal_startT = 0, cal_correction = 0; \
+       cal_correction = cal_init_time(cal_correction);\
+       cal_startT = cal_set_start_time();
+#define CAL_TIME_CHECK_END DBG("time = %f ms\n", cal_exec_time(cal_startT, cal_correction));
+#else //CAL_TIMECHECK
+#define CAL_TIME_CHECK_START
+#define CAL_TIME_CHECK_END
+#endif //CAL_TIMECHECK
+
+
+#endif /* __CALENDAR_LOG_H__ */
diff --git a/include/cld-utils.h b/include/cld-utils.h
new file mode 100755 (executable)
index 0000000..61b0de8
--- /dev/null
@@ -0,0 +1,263 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_UTILS_H__
+#define __CALENDAR_UTILS_H__
+
+#include <assert.h>
+#include <Elementary.h>
+
+#ifndef _
+#  define _(str) gettext(str)
+#endif
+
+#ifndef N_
+#  define gettext_noop(str) (str)
+#  define N_(str) gettext_noop(str)
+#endif
+
+#ifndef S_
+#  define S_(str) dgettext("sys_string", str)
+#endif
+
+#ifndef C_
+#  define C_(str) dgettext(CALENDAR_PACKAGE, str)
+#endif
+
+#ifndef U_
+#  define U_(str) dgettext(UGNAME, str)
+#endif
+
+#if !defined(EDJDIR)
+#  define EDJDIR "/opt/apps/org.tizen.efl-calendar/res/edje"
+#endif
+
+#if !defined(CAL_VCONF_LAST_LONGITUDE)
+#define CAL_VCONFKEY_SEND_EVENT_METHOD "db/calendar/send"
+#define CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF "db/calendar/timezone_on_off"
+#define CAL_VCONFKEY_LOCK_TIMEZONE_PATH "db/calendar/timezone_path"
+#define CAL_VCONFKEY_LOCK_TIMEZONE_CITY "db/calendar/timezone_city"
+#define CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET "db/calendar/timezone_offset"
+#define CAL_VCONFKEY_FOCUS_VIEW "db/calendar/focusview"
+#endif
+
+#define EDJ_FILE EDJDIR "/" CALENDAR_PACKAGE "-black-theme.edj"
+#define EDJ_FILE_WHITE EDJDIR "/" CALENDAR_PACKAGE "-white-theme.edj"
+
+
+#define CAL_UTIL_GET_PRIV_DATA(obj) evas_object_data_get(obj, "priv")
+#define CAL_UTIL_GET_EDJ_DATA(layout) elm_layout_edje_get(layout)
+
+#define CAL_MAX_HEAP_SIZE      5*1024*1024  /*Malloc more than this will not be allowd*/
+
+
+/*     void *memcpy(size_t nelements, size_t bfbes);
+ *     which will allocate a memory and copy the data to the allocated memory
+ *
+ */
+#define CAL_MEMCPY(dest,src,type) \
+       do{ \
+               if(src != NULL) \
+               { \
+                       assert(dest); \
+                       memcpy(dest,src,sizeof(type)); \
+               } \
+       } while(0);
+
+/*     void *calloc(size_t nelements, size_t bfbes);           */
+/*     which allocates a region of memory large enough to hold nelements of size bfbes each.
+       The allocated region is initialized to zero.    */
+#define CAL_CALLOC(ptr, no_elements, type)      \
+       do { \
+               if ((int)(no_elements) <= 0) \
+               { \
+                       ptr = NULL; \
+               } \
+               else if(CAL_MAX_HEAP_SIZE < no_elements* sizeof (type)) \
+               { \
+                       assert(0); \
+               } \
+               else \
+               { \
+                       ptr = (type *) calloc (no_elements , sizeof (type));    \
+                       assert(ptr);             \
+               }\
+       }while(0);
+
+/*
+ * Returns string length of src and 0 if it is NULL
+ */
+#define CAL_STRLEN(src)         ((src != NULL)? strlen(src): 0)
+
+/*
+ * Gives comparison result of two strings and returns -1 if any of two is NULL
+ */
+#define CAL_STRCMP(str1, str2) g_strcmp0(str1, str2)
+
+/*     This assert will log an err on stderr and abort,  if assertion failed,  */
+/*     Use this only if the now service needs to be exited, if asertion fails          */
+
+#define CAL_ASSERT(scalar_exp) \
+       do { \
+               if (!scalar_exp)        \
+               {       \
+                       ERR("CAL_ASSERT()");\
+                       assert(scalar_exp);     \
+               }       \
+       }while(0);
+
+#define CAL_STRDUP(str) (str && *str && strlen(str))?strdup(str):NULL
+
+#define CAL_STRNCPY(dest,src,size)     \
+       do { \
+               if(src != NULL && dest != NULL && size > 0) \
+               {       \
+                       strncpy(dest,src,size); \
+               }       \
+       }while(0);
+
+#define CAL_STRNCAT(dest,src,size)     \
+       do { \
+               if(src != NULL && dest != NULL && size > 0) \
+               {       \
+                       strncat(dest,src,size); \
+               }       \
+       }while(0);
+
+
+/*
+       Date & Time Format
+http://userguide.icu-project.org/formatparse/datetime
+*/
+#define CAL_UTIL_DATE_FORMAT_1 "EEMMMddyyyy" // Thu Aug 23 2001
+#define CAL_UTIL_DATE_FORMAT_2 "EE" // Thu
+#define CAL_UTIL_DATE_FORMAT_3 "ddEE" // 27 Thu
+#define CAL_UTIL_DATE_FORMAT_4 "MMMM" // August
+#define CAL_UTIL_DATE_FORMAT_5 "yyyy" // 2011
+#define CAL_UTIL_DATE_FORMAT_6 "MMMMyyyy" // August 2011
+#define CAL_UTIL_DATE_FORMAT_7 "EEEEMMMdd" // Thursday Aug 23
+#define CAL_UTIL_DATE_FORMAT_8 "dMMMMyyyy" // 23 August 2011
+#define CAL_UTIL_DATE_FORMAT_9 "d" // 27
+#define CAL_UTIL_DATE_FORMAT_10 "MMMd" // Aug 27
+#define CAL_UTIL_DATE_FORMAT_11 "MMMMdyyyy" // August 23 2011
+#define CAL_UTIL_DATE_FORMAT_12 "MMMdyyyy" // Aug 23 2011
+#define CAL_UTIL_DATE_FORMAT_13 "EEMMMMddyyyy" // Thu August 23 2001
+#define CAL_UTIL_DATE_FORMAT_14 "EEEE" // Thursday
+#define CAL_UTIL_DATE_FORMAT_15 "EEdMMMMyyyy" // Thu August 23 2001
+
+
+#define CAL_UTIL_TIME_FORMAT_1 "hhmma" // 07:58 AM
+#define CAL_UTIL_TIME_FORMAT_2 "hhmm" // 07:58
+#define CAL_UTIL_TIME_FORMAT_3 "hha" // 07 AM
+#define CAL_UTIL_TIME_FORMAT_4 "a" // AM
+#define CAL_UTIL_TIME_FORMAT_5 "hma" // 7:58 AM
+#define CAL_UTIL_TIME_FORMAT_6 "HHmm" // 19:58
+#define CAL_UTIL_TIME_FORMAT_7 "HH" // 19
+#define CAL_UTIL_TIME_FORMAT_8 "Hm" // 7:58 AM
+
+
+enum cld_icon {
+       CI_EDIT = 0,
+       CI_NEW,
+       CI_DEL,
+       CI_PHOTO,
+       CI_MAX
+};
+
+static inline int CAL_UTIL_GET_WDAY(int w)
+{
+       while (w > 6) w -= 7;
+       while (w < 0) w += 7;
+       return w;
+}
+
+int cal_util_get_max_days(int tm_year, int tm_mon);
+time_t cal_util_get_max_time(void);
+time_t cal_util_get_min_time(void);
+
+int cal_util_update_tm_year(struct tm *t, int delta);
+int cal_util_update_tm_month(struct tm *t, int delta);
+int cal_util_update_tm_day(struct tm *t, int delta);
+int cal_util_update_tm_hour(struct tm *tm, int delta);
+
+int cal_util_get_day_time_t(struct tm *t, time_t *st, time_t *et);
+int cal_util_get_week_time_t(struct tm *t, time_t *st, time_t *et, int start);
+int cal_util_get_month_time_t(struct tm *t, time_t *st, time_t *et);
+int cal_util_get_year_time_t(struct tm *t, time_t *st, time_t *et);
+
+float cal_util_nsin(float f);
+int cal_util_get_week_flag(char *week_s);
+
+int cal_util_get_time_text(char *buf, int buf_size, const char *date, const char *time, const struct tm *tm);
+
+int cal_util_connect_pattern_generator(void);
+int cal_util_disconnect_pattern_generator(void);
+
+//void cal_util_elm_theme_extension(Elm_Theme *theme);
+Evas_Object* cal_util_add_bg(Evas_Object *obj, Eina_Bool is_window);
+Evas_Object* cal_util_add_layout(Evas_Object *win, const char *group);
+Evas_Object* cal_util_add_window(const char *name, Evas_Coord *w, Evas_Coord *h);
+Evas_Object* cal_util_add_icon_button(Evas_Object *p, enum cld_icon i);
+Evas_Object* cal_util_add_icon(Evas_Object *p, enum cld_icon i);
+Evas_Object* cal_util_add_rectangle(Evas_Object *p);
+Evas_Object* cal_util_add_separator(Evas_Object *box, const char *style);
+Evas_Object* cal_util_add_scroller(Evas_Object *p);
+Evas_Object* cal_util_add_box(Evas_Object *p);
+Evas_Object* cal_util_add_edit_field(Evas_Object *parent, const char *title, const char *guide, Eina_Bool single_line, Eina_Bool is_editable);
+Evas_Object * cal_util_add_searchbar(Evas_Object *parent, const char *text,  const char *guide, Eina_Bool cancel_button);
+Evas_Object * cal_util_add_nocontents(Evas_Object *parent, const char *label);
+Evas_Object * cal_util_add_controlbar(Evas_Object * parent);
+Evas_Object * cal_util_add_popup(Evas_Object *parent, const char *title, const char *desc,
+       void (*callback_func)(void *data, Evas_Object *obj, void *ei), void *data, ...);
+Evas_Object * cal_util_add_datetime(Evas_Object *parent, const char *title, struct tm *tm);
+
+static inline void cal_util_get_geometry(Evas_Coord_Rectangle *r, const Evas_Object *obj)
+{
+       evas_object_geometry_get(obj, &r->x, &r->y, &r->w, &r->h);
+}
+
+static inline void cal_util_delete_evas_object(Evas_Object **p)
+{
+       if (p && *p) {
+               evas_object_del(*p);
+               *p = NULL;
+       }
+}
+
+char* cal_util_get_part_text(const char *fmt, int i);
+void cal_util_set_text(Evas_Object *obj, const char *part, const char *fmt, ...);
+void cal_util_set_time_text(Evas_Object *obj, const char *part, const char *date, const char* time, const struct tm *tm);
+void cal_util_set_time_week_text(Evas_Object *obj, const char *part, const char *date, const char* time, const struct tm *t, int start);
+
+void cal_util_emit_signal(Evas_Object *obj, const char *fmt, ...);
+
+void cal_util_set_controlbar_button(Evas_Object *btn, char *label, char *style, void (*func) (void *data, Evas_Object *obj, void *event_info), void* data);
+Eina_Bool cal_util_black_theme_check();
+
+int cal_util_get_timezone_info(char **timezone_path, char **city_string_id, char **offset);
+
+
+#endif /* __CALENDAR_UTILS_H__ */
+
diff --git a/include/cld.h b/include/cld.h
new file mode 100755 (executable)
index 0000000..6c495a1
--- /dev/null
@@ -0,0 +1,136 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_H__
+#define __CALENDAR_H__
+
+#include <Elementary.h>
+#include "cld-log.h"
+#include "cld-utils.h"
+#include "cal-svc.h"
+#include "acct-svc.h"
+
+#if !defined(CALENDAR_RING)
+#define CALENDAR_RING "calendar-ring"
+#endif
+
+#ifndef API
+#define API __attribute__ ((visibility("default")))
+#endif
+
+#if !defined(CALENDAR_PACKAGE)
+#  define CALENDAR_PACKAGE "efl-calendar"
+#endif
+
+#if !defined(LOCALEDIR)
+#  define LOCALEDIR "/opt/apps/org.tizen.efl-calendar/res/locale"
+#endif
+
+#if !defined(VCALENDAR_DATA_LEN)
+#define VCALENDAR_DATA_LEN 3000
+#endif
+
+enum cld_view {
+       CV_UNKNOWN = 0,
+       CV_YEAR,
+       CV_MONTH,
+       CV_DAY,
+       CV_LIST,
+       CV_EDIT,
+       CV_DETAIL,
+};
+
+typedef enum ug_type {
+       UG_UNKNOWN = 0,
+       UG_DETAIL,
+       UG_EDIT,
+       UG_MAX,
+}ug_type;
+
+typedef struct appdata
+{
+       Evas_Object *win;                       //window
+       Evas_Coord win_w;                               //width of window
+       Evas_Coord win_h;                                       //height of window
+       Evas_Object *base;                      //base layout
+       Evas_Object *nv;                                //naviframe
+       Evas_Object *title;                     //title
+       Evas_Object *main;                      //main view( has year, month, day, list tabs)
+       Evas_Object *bg;                                //background
+       Evas_Object *cbar;              //coontrol bar(calendar,today,delete,create)
+
+       Elm_Object_Item* main_navi_item;        //Naviframe item for main layout.
+
+       enum cld_view request_view;     //initial or requested view to show, when app is relaunched,
+
+       Eina_Bool is_update_view;       //only update when it is needed
+       Eina_Bool is_pause;                     //prevent updating view during app pause state
+
+       struct tm base_tm;              //base time
+       int base_hour;                  // This can be replace to base_tm.tm_hour
+       struct tm today_tm;             //today time
+       Ecore_Timer *today_tmr;         //to update today when day is changed.
+       Evas_Object *today_edj;         //edj for content of month tab, Need to change name to calendar_edj.
+
+       int wday_start;                 //0~6, since sunday
+
+       int cid;                                        //calendar id. for detail, edit view
+       struct tmnode* tm;              //for repeat event
+       int acct_id;                            //this variable always have ALL_VISIBLE_ACCOUT == -2
+
+       Elm_Object_Item *bt_new;        //button for "Create event" in controlbar
+       Elm_Object_Item *bt_delete; //button for "Delete" in controlbar
+       Elm_Object_Item *today_item;    // scroll to top item of today in list view.
+
+       int notifd;                             //for heynoti
+       cal_struct* ical;                               //for vcard raw data used in calendar viewer.
+       Eina_Bool is_aul;                       //to check wheather launching with AUL
+       Elm_Object_Item* content;               //pop all aul content & jump to calendar content.
+
+       Eina_Bool edit_special_one;     //to remove this, cal_edit_create_view should have 1 more parameter.
+       Eina_Bool is_weekly;                    //check whethere monthly tab is for weekly or not.
+
+       struct ui_gadget *ug;           //can access to ui_gadget* from ug_data
+       ug_type u_type;                 //ug type
+
+       int tm_year;                            //It would be better, if these are changed to struct tm. to save event with specific time
+       int tm_mon;                             //It would be better, if these are changed to struct tm. to save event with specific time
+       int tm_mday;                            //It would be better, if these are changed to struct tm. to save event with specific time
+
+       char *strnote;                  //to save str  from memo
+       Eina_Bool show_save_popup;      //to show save popup when edit UG is destroyed
+       int is_hour24;                  //to show time as 12 or 24 format
+
+       Elm_Theme *theme;               //theme customization
+
+       int account_id;                 //for email sharing feature
+       int mail_id;                            //for email sharing feature
+       char *src_box;                  //for email sharing feature
+
+       Evas_Object *tabbar;
+}ug_data;
+
+#endif /* __CALENDAR_H__ */
+
diff --git a/include/external-ug.h b/include/external-ug.h
new file mode 100755 (executable)
index 0000000..2e74cfa
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+
+#ifndef __CALENDAR_EXTERNAL_UG_H__
+#define __CALENDAR_EXTERNAL_UG_H__
+
+#include <ui-gadget.h>
+#include <ui-gadget-module.h>
+
+#include "cld.h"
+
+#if !defined(MESSAGE_COMPOSER)
+       #define MESSAGE_COMPOSER "msg-composer-efl"
+#endif
+
+#if !defined(EMAIL_COMPOSER)
+       #define EMAIL_COMPOSER "email-composer-efl"
+#endif
+
+#if !defined(UG_BT)
+       #define UG_BT "setting-bluetooth-efl"
+#endif
+
+#if !defined(MSG_FILE_NAME)
+       #define MSG_FILE_NAME "/opt/data/ug-calendar/[Calendar]message.vcs"
+#endif
+
+#if !defined(EMAIL_FILE_NAME)
+       #define EMAIL_FILE_NAME "/opt/data/ug-calendar/[Calendar]email.vcs"
+#endif
+
+#if !defined(BLUETOOTH_FILE_NAME)
+       #define BLUETOOTH_FILE_NAME "/opt/data/ug-calendar/[Calendar]bluetooth.vcs"
+#endif
+
+void cal_launch_ug(bundle *bd, char *ug_name, struct ug_cbs *cbs);
+void cal_launch_ug_with_var(char *ug_name, struct ug_cbs *cbs,...);
+
+#endif /* __CALENDAR_EXTERNAL_UG_H__ */
+
diff --git a/org.tizen.efl-calendar.desktop.in b/org.tizen.efl-calendar.desktop.in
new file mode 100755 (executable)
index 0000000..d4764e6
--- /dev/null
@@ -0,0 +1,26 @@
+Name=Calendar
+Name[en_US]=Calendar
+Name[ko_KR]=일정
+Name[nl_NL]=Agenda
+Name[de_DE]=Kalender
+Name[zh_HK]=日曆
+Name[zh_CN]=日历
+Name[ru_RU]=Календарь
+Name[zh_TW]=日曆
+Name[ja_JP]=カレンダー
+Name[es_ES]=Calendario
+Name[el_GR]=Ημερολόγιο
+Name[it_IT]=Agenda
+Name[tr_TR]=Takvim
+Name[pt_PT]=Calendário
+Name[fr_FR]=Calendrier
+Type=Application
+Exec=${BINDIR}/efl-calendar
+Icon=${PKGNAME}.png
+NoDisplay=FALSE
+Version=0.1.0
+X-TIZEN-TaskManage=True
+X-TIZEN-Multiple=False
+X-TIZEN-Service=create_event,view_event
+X-TIZEN-Removable=False
+Comment=Calendar application
diff --git a/packaging/org.tizen.efl-calendar.spec b/packaging/org.tizen.efl-calendar.spec
new file mode 100755 (executable)
index 0000000..5595d16
--- /dev/null
@@ -0,0 +1,113 @@
+Name:       org.tizen.efl-calendar
+Summary:    Calendar application
+Version:    0.5.58
+Release:    1
+Group:      devel
+License:    Samsung Proprietary License
+Source0:    %{name}-%{version}.tar.gz
+BuildRequires:  pkgconfig(appcore-efl)
+BuildRequires:  pkgconfig(appsvc)
+BuildRequires:  pkgconfig(utilX)
+BuildRequires:  pkgconfig(calendar)
+BuildRequires:  pkgconfig(dlog)
+BuildRequires:  pkgconfig(alarm-service)
+BuildRequires:  pkgconfig(utilX)
+BuildRequires:  pkgconfig(mm-player)
+BuildRequires:  pkgconfig(accounts-svc)
+BuildRequires:  pkgconfig(ui-gadget)
+BuildRequires:  pkgconfig(heynoti)
+BuildRequires:  pkgconfig(ui-gadget)
+BuildRequires:  pkgconfig(pmapi)
+BuildRequires:  pkgconfig(icu-i18n)
+BuildRequires:  pkgconfig(capi-appfw-application)
+BuildRequires:  pkgconfig(capi-media-sound-manager)
+BuildRequires:  pkgconfig(capi-media-wav-player)
+
+BuildRequires:  cmake
+BuildRequires:  edje-bin
+BuildRequires:  embryo-bin
+BuildRequires:  gettext-devel
+
+%description -n org.tizen.efl-calendar
+Calendar application
+
+
+%package -n org.tizen.calendar-viewer
+Summary:    Calendar viewer (EFL)
+Group:      TO_BE/FILLED_IN
+Requires:   org.tizen.efl-calendar = %{version}-%{release}
+
+%description -n org.tizen.calendar-viewer
+Calendar viewer
+
+%package -n libug-calendar-efl
+Summary:    Calendar UI gadget (EFL)
+Group:      devel
+Requires:   %{name} = %{version}-%{release}
+Requires:   org.tizen.efl-calendar
+
+%description -n libug-calendar-efl
+Calendar UI gadget
+
+
+%prep
+%setup -q
+
+
+%build
+%define PREFIX    "/opt/apps/org.tizen.efl-calendar"
+%define RESDIR    "/opt/apps/org.tizen.efl-calendar/res"
+%define DATADIR   "/opt/apps/org.tizen.efl-calendar/data"
+
+cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX}
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+
+
+
+%post
+
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+       ldconfig
+fi
+# End automatically added section
+
+# 5000 is inhouse user id
+# do not use relative path
+vconftool set -t int db/calendar/focusview 0 -u 5000
+vconftool set -t int db/calendar/send 0 -u 5000
+vconftool set -t int db/calendar/timezone_on_off 0 -u 5000
+vconftool set -t string db/calendar/timezone_path "Asia/Seoul" -u 5000
+vconftool set -t string db/calendar/timezone_city "IDS_WCL_BODY_CITYNAME_SEOUL" -u 5000
+vconftool set -t string db/calendar/timezone_offset "GMT+9" -u 5000
+
+mkdir -p /opt/data/ug-calendar
+chgrp 6003 /opt/data/ug-calendar
+chmod 770 /opt/data/ug-calendar
+
+%postun
+
+%files -n org.tizen.efl-calendar
+
+%defattr(-,root,root,-)
+/opt/apps/org.tizen.efl-calendar/bin/efl-calendar
+/opt/apps/org.tizen.efl-calendar/data/
+/opt/apps/org.tizen.efl-calendar/res/locale/*
+/opt/apps/org.tizen.efl-calendar/res/icons/*
+/opt/apps/org.tizen.efl-calendar/res/edje/*.edj
+/opt/apps/org.tizen.efl-calendar/res/sounds/*
+/opt/share/applications/org.tizen.efl-calendar.desktop
+
+%files -n org.tizen.calendar-viewer
+%defattr(-,root,root,-)
+/opt/apps/org.tizen.calendar-viewer/bin/calendar-viewer
+/opt/share/applications/org.tizen.calendar-viewer.desktop
+
+%files -n libug-calendar-efl
+%defattr(-,root,root,-)
+/opt/ug/lib/*.so
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..dd58135
--- /dev/null
@@ -0,0 +1,24 @@
+# for i18n
+
+SET(POFILES de_DE.po el_GR.po en.po es_ES.po fr_FR.po it_IT.po ja_JP.po ko_KR.po nl_NL.po pt_PT.po ru_RU.po tr_TR.po zh_CN.po zh_HK.po zh_TW.po)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+MESSAGE(STATUS "po files ---")
+FOREACH(pofile ${POFILES})
+       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+       MESSAGE(STATUS "  ${pofile}")
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+                       OUTPUT ${moFile}
+                       COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+                       DEPENDS ${absPofile}
+       )
+       INSTALL(FILES ${moFile}
+                       DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/po/de_DE.po b/po/de_DE.po
new file mode 100755 (executable)
index 0000000..71afc6e
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "Anhängen"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "Memo"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "Details"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Keine Ergebnisse gefunden"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Monatlich"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Alle Kalender"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Vorher"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "vorher"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Täglich"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Tag"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Endzeit"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Monatlich"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Monat"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Startzeit"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Ort eingeben"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Hinweis eingeben"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Titel eingeben"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Monat"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Woche"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Wöchentlich"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Jährlich"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Teilnehmer eingeben"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "W"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Ganzen Tag"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "Woche"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Standardkonto"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sendeoptionen"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Karte"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "Titel"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportieren"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Kalender synchronisieren"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Ereignisse"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Sonntag"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Montag"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Erster Tag der Woche"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Kein Ort ausgewählt"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Ereignis löschen"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Nachrichten an Empfänger senden?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Teilnehmer"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Pünktlich"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalender"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Keine Kalender"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Liste"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Nur dieses Ereignis"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Alle sich wiederholenden Ereignisse"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Kein Titel"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Zeitzone festlegen"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Zeitzone"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "Stunde"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Wiederholen bis"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "mal"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Teilnehmer"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Verknüpfter Kalender"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefonkalender"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Ansicht nach Tagen"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Ansicht “Woche”"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Jahr"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Wiederholen"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Standort kann nicht gefunden werden"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Ort"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "Tag"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "Woche"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "Abidjan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "Abu Dhabi"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "Vae"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "Accra"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "Ghana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "Addis Ababa"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "Äthiopien"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "Adelaide"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "Australien"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "Alaska"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "USA"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "Elfenbeinküste"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "Algier"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "Algerien"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "Almaty"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "Kasachstan"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "Ambon"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "Indonesien"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "Amman"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "Jordanien"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "Amsterdam"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "Niederlande"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "Anadyr"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "Russland"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "Anchorage"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "Ankara"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "Türkei"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "Antananarivo"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "Madagaskar"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "Ashgabat"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "Turkmenistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "Asmera"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "Eritrea"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "Astana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "Asuncion"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "Paraguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "Athen"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "Griechenland"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "Auckland"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "Neuseeland"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "Austin"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "Azoren"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "Portugal"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "Baghdad"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "Irak"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "Baku"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "Aserbaidschan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "Baltimore"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "Bamako"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "Mali"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "Bangkok"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "Thailand"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "Bangui"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "Zentralafrikanische Republik"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "Barcelona"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "Spanien"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "Bari"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "Italien"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "Basse-Terre"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "Guadeloupe"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "Peking"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "China"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "Beirut"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "Libanon"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "Belgrad"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "Serbien"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "Belize City"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "Belize"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "Berlin"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "Deutschland"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "Bern"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "Schweiz"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "Bishkek"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "Kirgisistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "Guinea-Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "Bogota"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "Kolumbien"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "Bologna"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "Boston"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "Brasilia"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "Brasilien"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "Bratislava"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "Slovakei"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "Bridgetown"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "Barbados"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "Brisbane"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "Brüssel"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "Belgien"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "Bukarest"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "Rumänien"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "Budapest"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "Ungarn"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "Buenos Aires"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "Argentinien"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "Kairo"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "Ägypten"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "Calgary"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "Kanada"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "Kanarische Inseln"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "Canberra"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "Kanton"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "Kapstadt"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "Republik Südafrika"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "Caracas"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "Venezuela"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "Cardiff"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "Wales"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "Casablanca"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "Marokko"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "Catanzaro"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Speichern in"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Keine Ereignisse"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Anpassen"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Speichern?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "Neu sortieren"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "Cayenne"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "Französisch-Guayana"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "Charlotte"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "Charlotte Amalie"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "Amerikanische Jungferninseln"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "Tscheljabinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "Chennai"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "Indien"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "Chicago"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "Chişinău"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "Moldavien"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "Chita"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "Cleveland"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "Colombo"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "Sri Lanka"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "Columbus"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "Conakry"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "Guinea"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "Kopenhagen"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "Dänemark"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "Cork"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "Irland"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "Crotone"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "Dakar"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "Senegal"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "Dallas"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "Damaskus"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "Syrien"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "Daressalam"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "Tansania"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "Darwin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "Denpasar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "Denver"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "Detroit"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "Dhakar"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "Bangladesch"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "Diego Garcia"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "Großbritannien"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "Djibouti"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "Djibouti"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "Doha"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "Katar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "Duala"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "Kamerun"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "Dubai"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "Dublin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "Dushanbe"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "Tadschikistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "Osterinsel"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "Chile"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "Edinburgh"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "Schottland"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "El Paso"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "Florenz"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "Fort-de-France"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "Martinique"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "Freetown"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "Sierra Leone"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "Gaborone"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "Botswana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "Galápagos-Inseln"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "Ecuador"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "Genf"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "Genua"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "Georgetown"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "Guyana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "Grytviken"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "Südgeorgien"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "Guam"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "Guatemala-Stadt"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "Guatemala"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "Gustavia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "Saint Barthélemy"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "Halifax"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "Hamburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "Hanoi"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "Vietnam"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "Harare"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "Zimbabwe"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "Havanna"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "Cuba"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "Hawaii"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "Helsinki"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "Finnland"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "Hobart"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Ereignisse nach Woche anzeigen"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout in der Monatsansicht"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Ereignisse nach Tagen anzeigen"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "Hongkong"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "Honolulu"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "Houston"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "Chowd"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "Mongolei"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "Indianapolis"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "Irkutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "Islamabad"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "Pakistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "Istanbul"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "Ischewsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "Jakarta"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "Dschidda"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "Saudi-Arabien"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "Jerusalem"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "Israel"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "Johannesburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "Kabul"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "Afghanistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "Kaliningrad"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "Kamtschatka"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "Kampala"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "Uganda"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "Karatschi"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "Kathmandu"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "Nepal"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "Chabarowsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "Charkiw"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "Ukraine"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "Khartum"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "Sudan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "Kiew"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "Kingston"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "Jamaika"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "Kinshasa"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "Demokratische Republik Kongo"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "Kolkata"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "Krasnojarsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "Kuala Lumpur"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "Malaysia"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "Kuwait"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "Los Angeles"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "La Paz"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "Bolivien"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "Lagos"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "Nigeria"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "Las Vegas"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "Lima"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "Peru"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "Lissabon"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "Ljubljana"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "London"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "Longhua"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "Louisville"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "Luanda"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "Angola"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "Lubumbashi"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "Lusaka"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "Sambia"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "Luxemburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "Lemberg"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "Macao"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "Madrid"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "Magadan"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "Malabo"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "Äquatorialguinea"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "Male"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "Malediven"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "Managua"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "Nicaragua"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "Manama"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "Bahrain"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "Manila"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "Philippinen"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "Maputo"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "Mosambik"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "Marigot"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "Saint-Martin"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "Mazatlán"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "Mexiko"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "Riadh"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "Melbourne"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "Memphis"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "Messina"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "Mexico City"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "Miami"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "Mittelatlantik"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "Midway Atoll"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "Mailand"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "Milwaukee"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "Minsk"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "Weißrussland"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "Mogadishu"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "Somalia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "Monrovia"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "Liberia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "Montevideo"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "Uruguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "Montreal"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "Moskau"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "Mumbai"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "München"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "Maskat"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "Oman"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "Nairobi"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "Kenia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "Rom"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "Naters"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "Ndjamena"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "Naples"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "Chad"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "Mekka"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "Neu Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "New York"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "Neufundland"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "Niamey"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "Niger"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "Nouakchott"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "MAURETANIEN"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "Nouméa"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "Neukaledonien"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "Nowokusnezk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "Nowosibirsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "Nuku’alofa"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "Tonga"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "Nuuk"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "Grönland"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "Omsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "Osaka"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "Japan"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "Ottawa"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "Ouagadougou"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "Burkina Faso"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "Pago Pago"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "Samoa"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "Palermo"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "Panama City"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "Panama"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "Paramaribo"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "Surinam"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "Paris"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "Frankreich"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "Perm"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "Perth"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "Petropawlowsk-Kamtschatski"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "Philadelphia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "Phnom Penh"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "Kambodscha"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "Phoenix"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "Podgorica"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "Montenegro"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "Ponta Delgada"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "Port Louis"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "Mauritius"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "Port-au-Prince"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "Haiti"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "Portland"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "Prag"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "Tschechische Republik"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "Pjöngjang"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "Nordkorea"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "Quito"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "Rabat"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "Yangon"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "Burma"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "Recife"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "Regina"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "Reykjavik"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "Island"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "Riga"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "Lettland"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "Rio De Janeiro"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "Saint-Denis"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "Reunion"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "Samara"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "San Antonio"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "San Diego"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "San Francisco"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "San Jose"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "Costa Rica"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "San Juan"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "Puerto Rico"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "San Marino"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "San Salvador"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "El Salvador"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "Sana'a"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "Jemen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "Santiago"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "Santo Domingo"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "Dominikanische Republik"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "Sao Paulo"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "Seattle"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "Seoul"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "Südkorea"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "Shanghai"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "Shenzhen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "Singapur"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "Republik Singapur"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "Skopje"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "Mazedonien"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "Sofia"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "Bulgarien"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "St.John's"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "Antigua und Barbuda"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "Stockholm"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "Schweden"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "Suva"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "Fidschi"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "Republik Fidschi-Inseln"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "Sydney"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "Tahiti"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "Französisch-Polynesien"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "Taipeh"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "Taiwan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "Tallinn"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "Estland"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "Tarawa"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "Kiribati"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "Taschkent"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "Usbekistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "Tbilisi"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "Georgia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "Tegucigalpa"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "Honduras"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "Teheran"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "Iran"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "Ho-Chi-Minh-Stadt"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "Heimatort"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "Britische Jungferninseln"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "Tientsin"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "Tijuana"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "Tokio"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "Toronto"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "Tréhet"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "Tripoli"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "Libyen"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "Tunis"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "Tunesien"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "Turin"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "Ufa"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "Bashkiriya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "Ulaanbaatar"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "Vaduz"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "Liechtenstein"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "Valletta"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "Malta"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "Vancouver"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "Verona"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "Viktoria"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "Seychellen"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "Wien"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "Österreich"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "Wilna"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "Litauen"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "Wladiwostok"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "Wolgograd"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "St. Petersburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "Warschau"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "Polen"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "Washington DC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "Wellington"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "Winnipeg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "Jakutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "Yamusoukro"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "Yaounde"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "Jekaterinburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "Yerevan"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "Armenien"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "Yuzhno-Sakhalinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "Zagreb"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "Kroatien"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "Zürich"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Wird exportiert..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importieren..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importiert"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportiert"
+
diff --git a/po/el_GR.po b/po/el_GR.po
new file mode 100755 (executable)
index 0000000..259a753
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "Επισύναψη"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "Σημείωση"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "Λεπτομέρειες"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Δεν βρέθηκαν αποτελέσματα"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Κάθε μήνα"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Όλα τα ημερολόγια"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Πριν"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "πριν"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Καθημερινά"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Ημέρα"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Ώρα λήξης"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Κάθε μήνα"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Μήνας"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Ώρα έναρξης"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Πατήστε για να εισάγετε τοποθεσία"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Πατήστε για να εισάγετε σημείωση"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Πατήστε για να εισάγετε τίτλο"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Μήνας"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Εβδομάδα"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Κάθε εβδομάδα"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Κάθε έτος"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Πατήστε για να εισάγετε συμμετέχοντα"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "Β"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Ολοήμερο"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "εβδομάδα"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Προεπ. λογαριασμός"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Επιλογές αποστολής"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Χάρτης"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "Τίτλος"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Εξαγωγή"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Συγχρονισμός ημερολογίου"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Συμβάντα"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Κυριακή"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Δευτέρα"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Πρώτη ημέρα της εβδομάδας"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Δεν έχει επιλεγεί τοποθεσία"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Διαγραφή συμβάντος"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Αποστολή μηνυμάτων στους συμμετέχοντες;"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Συμμετέχοντες"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Έγκαιρα"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Ημερολόγια"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Δεν βρέθηκαν ημερολόγια"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Λίστα"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Μόνο αυτό το συμβάν"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Όλα τα επαναλαμβανόμενα συμβάντα"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Χωρίς τίτλο"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Κλείδωμα ζώνης ώρας"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Ζώνη ώρας"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "ώρα"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Επανάληψη μέχρι"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "φορές"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Συμμετέχων"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Συνδεδεμένο ημερολόγιο"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Ημερολόγιο τηλεφώνου"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Προβολή ημέρας"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Προβολή εβδομάδας"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Έτος"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Επανάληψη"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Δεν είναι δυνατή η εύρεση τοποθεσίας"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Θέση"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "ημέρα"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "εβδομάδα"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "Αμπιτζάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "Άμπου Ντάμπι"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "Ηνωμένα Αραβικά Εμιράτα"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "Άκρα"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "Γκάνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "Αντίς Αμπέμπα"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "Αιθιοπία"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "Αδελαΐδα"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "Αυστραλία"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "Αλάσκα"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "Η.Π.Α."
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "Ακτή Ελεφαντοστού"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "Αλγέρι"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "Αλγερία"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "Άλμα Άτα"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "Καζακστάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "Άμπον"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "Ινδονησία"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "Αμάν"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "Ιορδανία"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "Άμστερνταμ"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "Ολλανδία"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "Ανάντιρ"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "Ρωσία"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "Άνκορατζ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "Άγκυρα"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "Τουρκία"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "Ανταναναρίβο"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "ΜΑΔΑΓΑΣΚΑΡΗ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "Ασγκαμπάτ"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "Τουρκμενιστάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "Ασμάρα"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "Ερυθραία"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "Αστάνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "Ασουνσιόν"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "Παραγουάη"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "Αθήνα"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "Ελλάδα"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "Όκλαντ"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "Νέα Ζηλανδία"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "Ώστιν"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "Αζόρες"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "Πορτογαλία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "Βαγδάτη"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "Ιράκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "Μπακού"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "Αζερμπαϊτζάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "Βαλτιμόρη"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "Μπαμάκο"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "Μάλι"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "Μπανγκόγκ"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "Ταϊλάνδη"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "Μπανγκούι"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "Κεντροαφρικανική Δημοκρατία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "Βαρκελώνη"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "Ισπανία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "Μπάρι"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "Ιταλία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "Μπας-Τερ"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "Γουαδελούπη"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "Πεκίνο"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "Κίνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "Βηρυτός"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "Λίβανος"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "Βελιγράδι"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "Σερβία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "Πόλη Μπελίζε"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "Μπελίζ"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "Βερολίνο"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "Γερμανία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "Βέρνη"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "Ελβετία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "Μπισκέκ"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "Κιργκιστάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "Μπισσάου"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "Γουινέα Μπισσάου"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "Μπογκοτά"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "Κολομβία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "Μπολόνια"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "Boston                      "
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "Μπραζίλια"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "Βραζιλία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "Μπρατισλάβα"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "Σλοβακία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "Μπρίτζταουν"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "Μπαρμπέιντος"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "Μπρίσμπεϊν"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "Βρυξέλλες"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "Βέλγιο"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "Βουκουρέστι"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "Ρουμανία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "Βουδαπέστη"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "Ουγγαρία"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "Μπουένος Άϊρες"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "Αργεντινή"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "Κάιρο"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "Αίγυπτος"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "Κάλγκαρι"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "Καναδάς"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "Κανάρια Νησιά"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "Καμπέρα"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "Καντόν"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "Κέιπ Τάουν"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "Δημοκρατία της Νότιας Αφρικής"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "Καράκας"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "Βενεζουέλα"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "Κάρντιφ"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "Ουαλία"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "Κασαμπλάνκα"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "Μαρόκο"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "Καταντζάρο"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Αποθήκευση σε"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Κανένα συμβάν"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Προσαρμογή"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Αποθήκευση;"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "Επανάληψη παραγγελίας"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "Καγιέν"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "Γαλλική Γουιάνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "Σαρλότ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "Σαρλότ Αμαλί"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "Ηνωμένες Πολιτείες Παρθένοι νήσοι"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "Τσελιάμπινσκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "Chennai"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "Ινδία"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "Σικάγο"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "Κισινάου"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "Μολδαβία"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "Τσιτά"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "Κλήβελαντ"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "Κολόμπο"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "Σρι Λάνκα"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "Κολόμπους"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "Κονακρί"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "Γουϊνέα"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "Κοπεγχάγη"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "Δανία"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "Κορκ"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "Ιρλανδία"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "Κρότωνας"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "Ντακάρ"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "Σενεγάλη"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "Ντάλλας"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "Δαμασκός"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "Συρία"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "Νταρ Ες Σαλάμ"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "Τανζανία"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "Ντάργουιν"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "Δελχί"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "Ντενπασάρ"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "Ντένβερ"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "Ντιτρόιτ"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "Ντάκα"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "Μπανγκλαντές"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "Ντιέγκο Γκαρσία"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "Ηνωμένο Βασίλειο"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "Τζιμπουτί"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "Τζιμπουτί"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "Ντόχα"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "Κατάρ"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "Ντουάλα"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "Καμερούν"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "Ντουμπάι"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "Δουβλίνο"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "Ντουσανμπέ"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "Τατζικιστάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "Νησί του Πάσχα"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "Χιλή"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "Εδιμβούργο"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "Σκωτία"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "Ελ Πάσο"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "Φλωρεντία"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "Φορ ντε Φρανς"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "Μαρτινίκα"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "Φριτάουν"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "Σιέρρα Λεόνε"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "Καμπορόνε"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "Μποτσουάνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "Νησιά Γκαλαπάγκος"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "Εκουαδόρ"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "Γενεύη"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "Γένοβα"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "Τζορτζτάουν"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "Γουιάνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "Γκρυτβίκεν"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "Νότια Γεωργία"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "Γκουάμ"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "Πόλη της Γουατεμάλας"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "Γουατεμάλα"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "Γουστάβια"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "Άγιος Βαρθολομαίος"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "Χάλιφαξ"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "Αμβούργο"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "Ανόι"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "Βιετνάμ"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "Χαράρε"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "Ζιμπάμπουε"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "Αβάνα"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "Κούβα"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "Χαβάη"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "Ελσίνκι"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "Φινλανδία"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "GMT+10(Χόμπαρτ)"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Εμφάνιση συμβάντων ανά εβδομάδα"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Διάταξη προβολής μήνα"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Εμφάνιση συμβάντων ανά ημέρα"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "Χονγκ Κονγκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "Χονολουλού"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "Χιούστον"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "Χοβντ"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "Μογγολία"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "Ιντιανάπολις"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "Ιρκούτσκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "Ισλαμαμπάντ"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "Πακιστάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "Κωνσταντινούπολη"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "Ιζέβσκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "Τζακάρτα"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "Τζέντα"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "Σαουδική Αραβία"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "Ιερουσαλήμ"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "Ισραήλ"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "Γιοχάνεσμπουργκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "Καμπούλ"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "Αφγανιστάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "Καλίνινγκραντ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "Καμτσάτκα"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "Καμπάλα"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "Ουγκάντα"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "Καράτσι"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "Κατμαντού"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "Νεπάλ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "Κχαμπαρόβσκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "Καρκίβ"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "Ουκρανία"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "Χαρτούμ"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "Σουδάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "Κίεβο"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "Κίνγκστον"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "Τζαμάικα"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "Κινσάσα"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "Λαϊκή Δημοκρατία του Κονγκό"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "Καλκούτα"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "Κρασνογιάρσκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "Κουάλα Λουμπούρ"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "Μαλαισία"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "Κουβέιτ"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "Λος Άντζελες"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "Λα Παζ"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "Βολιβία"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "Λάγος"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "Νιγηρία"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "Λας Βέγκας"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "Λίμα"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "Περού"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "Λισσαβόνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "Λουμπλιάνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "Λονδίνο"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "Λονγκχουά"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "Λούισβιλ"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "Λουάντα"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "Αγκόλα"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "Λουμπουμπάσι"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "Λουσάκα"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "Ζάμπια"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "Λουξεμβούργο"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "Λβιβ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "Μακάο"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "Madrid"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "Μάγκανταν"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "Μαλάμπο"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "Ισημερινή Γουινέα"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "Μαλέ"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "Μαλβίδες"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "Μανάγκουα"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "Νικαράγουα"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "Μανάμα"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "Μπαχρέιν"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "Μανίλα"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "Φιλιππίνες"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "Μαπούτο"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "Μοζαμβίκη"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "Μαριγκότ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "Άγιος Μαρτίνος"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "Μαζατλάν"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "Μεξικό"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "Ριάντ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "Μελβούρνη"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "Μέμφις"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "Μεσίνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "Πόλη του Μεξικό"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "Μαϊάμι"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "Μεσ..Ατλαντ."
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "Μιντγουέι Ατόλη"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "Μιλάνο"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "Μιλγουόκι"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "Μίνσκ"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "Λευκορωσία"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "Μογκαντίσου"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "Σομαλία"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "Μονρόβια"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "Λιβερία"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "Μοντεβιδέο"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "Ουρουγουάη"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "Μόντρεαλ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "Μόσχα"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "Μουμπάι"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "Μόναχο"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "Μουσκάτ"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "Ομάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "Ναϊρόμπι"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "Κένυα"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "Ρώμη"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "Νάτερς"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "Ντζαμένα"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "Νάπολη"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "ΤΣΑΝΤ"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "Μέκκα"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "Νέο Δελχί"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "Νέα Υόρκη"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "Newfoundland"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "Νιαμέι"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "ΝΙΓΗΡΑΣ"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "Νουακτσότ"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "ΜΑΥΡΙΤΑΝΙΑ"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "Νουμέα"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "Νέα Καληδονία"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "Νοβοκουζνέτσκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "Νοβοσιμπίρσκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "Νουκουαλόφα"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "Τόνγκα"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "Νουούκ"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "Γροιλανδία"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "Ομσκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "Οσάκα"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "Ιαπωνία"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "Οτάβα"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "Ουαγκαντουγκού"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "Μπουργκίνα Φάσο"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "Πάγκο Πάγκο"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "Ανεξάρτητο κράτος των Σαμόα"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "Παλέρμο"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "Πόλη του Παναμά"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "Παναμάς"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "Παραμαρίμπο"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "Σουρινάμ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "Παρίσι"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "Γαλλία"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "Περμ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "Περθ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "Πετροπαβλόσκ-Καμτσατσκί"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "Φιλαδέλφεια"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "Phnom Penh"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "Καμπότζη"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "Φοίνιξ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "Ποντγκόριτσα"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "Μαυροβούνιο"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "Πόντα Ντελγάδα"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "Πορ Λουί"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "ΜΑΥΡΙΚΙΟΣ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "Πορτ-ο-Πρενς"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "Αϊτή"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "Πόρτλαντ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "Πράγα"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "Δημοκρατία της Τσεχίας"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "Πιονγκγιάνγκ"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "Βόρεια Κορέα"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "Κουίτο"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "Ραμπάτ"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "Γιανγκόν"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "Βιρμανία"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "Ρεσίφε"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "Ρετζίνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "Ρέικιαβικ"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "Ισλανδία"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "Ρίγα"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "Λετονία"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "Ρίο ντε Τζανέιρο"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "Σαιν Ντενί"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "Ρεϊνιόν"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "Σαμάρα"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "Σαν Αντόνιο"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "Σαν Ντιέγκο"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "Σαν Φρανσίσκο"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "Σαν Χοσέ"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "Κόστα Ρίκα"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "Σαν Χουάν"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "Πουέρτο Ρίκο"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "Άγιος Μαρίνος"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "Σαν Σαλβαδόρ"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "Ελ Σαλβαδόρ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "Σανάα"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "Υεμένη"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "Σαντιάγο"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "Άγιος Δομίνικος"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "Δομινικανή Δημοκρατία"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "Σάο Πάολο"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "Σιάτλ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "Σεούλ"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "Δημοκρατία της Κορέας"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "Σαγκάη"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "Σεντσέν"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "Σιγκαπούρη"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "Δημοκρατία της Σιγκαπούρης"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "Σκόπια"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "ΠΓΔΜ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "Σόφια"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "Βουλγαρία"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "Σεντ Τζον"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "Αντίγκουα και Μπαρμπούντα"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "Στοκχόλμη"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "Σουηδία"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "Σούβα"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "Φίτζι"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "Δημοκρατία των νησιών Φίτζι"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "Σίδνεϋ"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "Ταϊτή"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "Γαλλική Πολυνησία"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "Ταϊπέι"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "Ταϊβάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "ΤΑΛΙΝ"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "Εσθονία"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "Ταράουα"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "Κιριμπάτι"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "Τασκένδη"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "Ουζμπεκιστάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "Τιφλίδα"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "Γεωργία"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "Τεγκουσιγκάλπα"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "Ονδούρα"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "Τεχεράνη"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "Ιράν"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "Πόλη Χο Τσι Μινχ"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "The settlement"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "Βρετανικές Παρθένοι νήσοι"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "Τιανζίν"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "Τιχουάνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "Τόκυο"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "Τορόντο"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "Τρεέ"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "Τρίπολη"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "Λιβύη"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "Τύνιδα"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "Τυνησία"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "Τορίνο"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "Ούφα"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "Μπασκορτοστάν"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "Ουλάν Μπατόρ"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "Βαντούζ"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "Λιχτενστάιν"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "Βαλέτα"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "Μάλτα"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "Βανκούβερ"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "Βερόνα"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "Βικτόρια"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "Σεϋχέλλες"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "Βιέννη"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "Αυστρία"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "Βίλνιους"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "Λιθουανία"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "Βλαδιβοστόκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "Βολγκογκράντ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "Αγία Πετρούπολη"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "Βαρσοβία"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "Πολωνία"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "Ουάσινγκτον DC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "Ουέλιγκτον"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "Γουίνιπεγκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "Γιακούτσκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "Γιαμουσσούκρο"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "Γιαουντέ"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "Εκατέρινμπουργκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "Ερεβάν"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "Αρμενία"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "Γιούζνο-Σάκαλινσκ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "Ζάγκρεμπ"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "Κροατία"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "Ζυρίχη"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Εξαγωγή..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Εισαγωγή..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Έγινε εισαγωγή"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Έγινε εξαγωγή"
+
diff --git a/po/en.po b/po/en.po
new file mode 100755 (executable)
index 0000000..e112530
--- /dev/null
+++ b/po/en.po
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "Attach"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "Note"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "Details"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "No results found"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Monthly"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "All calendar"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Before"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "before"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Daily"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Day"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "End time"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Monthly"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Start time"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Tap to enter location"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Tap to enter note"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Tap to enter title"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Week"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Weekly"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Yearly"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tap to enter participant"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "W"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "All day"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Default account"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sending options"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Map"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "Title"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Export"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Calendar sync"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Events"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Sunday"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Monday"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "First day of week"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "No location selected"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Delete event"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Send messages to participants?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participants"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "On time"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendars"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "No calendars"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "List"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Only this event"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "All repetitive events"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "No title"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Lock time zone"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Time zone"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hour"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repeat until"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "times"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participant"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Linked calendar"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Phone calendar"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Daily view"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Weekly view"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Year"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repeat"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Unable to find location"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Location"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "day"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "Abidjan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "Abu Dhabi"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "United Arab Emirates"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "Accra"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "Ghana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "Addis Ababa"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "Ethiopia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "Adelaide"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "Australia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "Alaska"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "USA"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "Cote d’Ivoire"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "Algiers"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "Algeria"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "Almaty"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "Kazakhstan"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "Ambon"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "Indonesia"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "Amman"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "Jordan"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "Amsterdam"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "Netherlands"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "Anadyr"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "Russia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "Anchorage"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "Ankara"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "Turkey"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "Antananarivo"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "Madagascar"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "Ashgabat"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "Turkmenistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "Asmara"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "Eritrea"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "Astana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "Asuncion"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "Paraguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "Athens"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "Greece"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "Auckland"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "New Zealand"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "Austin"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "Azores"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "Portugal"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "Baghdad"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "Iraq"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "Baku"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "Azerbaijan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "Baltimore"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "Bamako"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "Mali"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "Bangkok"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "Thailand"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "Bangui"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "Central African Republic"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "Barcelona"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "Spain"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "Bari"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "Italy"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "Basse-Terre"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "Guadeloupe"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "Beijing"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "China"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "Beirut"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "Lebanon"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "Belgrade"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "Serbia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "Belize City"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "Belize"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "Berlin"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "Germany"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "Bern"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "Switzerland"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "Bishkek"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "Kyrgyzstan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "Guinea Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "Bogota"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "Colombia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "Bologna"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "Boston "
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "Brasilia"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "Brazil"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "Bratislava"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "Slovakia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "Bridgetown"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "Barbados"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "Brisbane"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "Brussels"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "Belgium"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "Bucharest"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "Romania"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "Budapest"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "Hungary"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "Buenos Aires"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "Argentina"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "Cairo"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "Egypt"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "Calgary"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "Canada"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "Canary Islands"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "Canberra"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "Canton"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "Cape Town"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "South Africa"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "Caracas"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "Venezuela"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "Cardiff"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "Wales"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "Casablanca"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "Morocco"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "Catanzaro"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Save to"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "No events"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Customise"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Save?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "Reorder"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "Cayenne"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "French Guiana"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "Charlotte"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "Charlotte Amalie"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "United States Virgin Islands"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "Chelyabinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "Chennai"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "India"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "Chicago"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "Chisinau"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "Moldova"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "Chita"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "Cleveland"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "Colombo"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "Sri Lanka"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "Columbus"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "Conakry"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "Guinea"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "Copenhagen"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "Denmark"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "Cork"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "Ireland"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "Crotone"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "Dakar"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "Senegal"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "Dallas"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "Damascus"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "Syria"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "Dar es Salaam"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "Tanzania"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "Darwin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "Denpasar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "Denver"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "Detroit"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "Dhaka"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "Bangladesh"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "Diego Garcia"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "United Kingdom"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "Djibouti"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "Djibouti"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "Doha"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "Qatar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "Douala"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "Cameroon"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "Dubai"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "Dublin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "Dushanbe"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "Tajikistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "Easter Island"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "Chile"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "Edinburgh"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "Scotland"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "El Paso"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "Florence"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "Fort-de-France"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "Martinique"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "Freetown"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "Sierra Leone"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "Gaborone"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "Botswana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "Galapagos Islands"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "Ecuador"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "Geneva"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "Genoa"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "Georgetown"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "Guyana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "Grytviken"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "South Georgia"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "Guam"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "Guatemala City"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "Guatemala"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "Gustavia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "Saint Barthelemy"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "Halifax"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "Hamburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "Hanoi"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "Vietnam"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "Harare"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "Zimbabwe"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "Havana"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "Cuba"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "Hawaii"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "Helsinki"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "Finland"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "Hobart"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Show events by week"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout in month view"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Show events by day"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "Hong Kong"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "Honolulu"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "Houston"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "Khovd"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "Mongolia"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "Indianapolis"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "Irkutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "Islamabad"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "Pakistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "Istanbul"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "Izhevsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "Jakarta"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "Jeddah"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "Saudi Arabia"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "Jerusalem"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "Israel"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "Johannesburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "Kabul"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "Afghanistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "Kaliningrad"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "Kamchatka"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "Kampala"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "Uganda"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "Karachi"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "Kathmandu"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "Nepal"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "Khabarovsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "Kharkiv"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "Ukraine"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "Khartoum"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "Sudan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "Kiev"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "Kingston"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "Jamaica"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "Kinshasa"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "Democratic Republic of the Congo"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "Kolkata"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "Krasnoyarsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "Kuala Lumpur"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "Malaysia"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "Kuwait"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "Los Angeles"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "La Paz"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "Bolivia"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "Lagos"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "Nigeria"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "Las Vegas"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "Lima"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "Peru"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "Lisbon"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "Ljubljana"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "London"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "Longhua"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "Louisville"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "Luanda"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "Angola"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "Lubumbashi"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "Lusaka"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "Zambia"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "Luxembourg"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "Lviv"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "Macau"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "Madrid"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "Magadan"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "Malabo"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "Equaorial Guinea"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "Male"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "Maldives"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "Managua"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "Nicaragua"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "Manama"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "Bahrain"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "Manila"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "Philippines"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "Maputo"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "Mozambique"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "Marigot"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "Saint Martin"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "Mazatlan"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "Mexico"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "Riyadh"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "Melbourne"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "Memphis"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "Messina"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "Mexico City"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "Miami"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "Mid-Atlantic"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "Midway Atoll"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "Milano"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "Milwaukee"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "Minsk"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "Belarus"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "Mogadishu"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "Somalia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "Monrovia"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "Liberia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "Montevideo"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "Uruguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "Montreal"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "Moscow"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "Mumbai"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "Munich"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "Muscat"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "Oman"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "Nairobi"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "Kenya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "Rome"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "Naters"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "N'Djamena"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "Napoli"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "Chad"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "Makkah"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "New Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "New York"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "Newfoundland"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "Niamey"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "Niger"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "Nouakchott"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "Mauritania"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "Noumea"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "New Caledonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "Novokuznetsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "Novosibirsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "Nuku'alofa"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "Tonga"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "Nuuk"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "Greenland"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "Omsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "Osaka"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "Japan"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "Ottawa"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "Ouagadougou"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "Burkina Faso"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "Pago Pago"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "Samoa"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "Palermo"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "Panama City"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "Panama"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "Paramaribo"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "Suriname"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "Paris"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "France"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "Perm"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "Perth"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "Petropavlovsk-Kamchatskiy"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "Philadelphia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "Phnom Penh"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "Cambodia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "Phoenix"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "Podgorica"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "Montenegro"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "Ponta Delgada"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "Port Louis"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "Mauritius"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "Port-au-Prince"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "Haiti"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "Portland"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "Prague"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "Czech Republic"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "Pyongyang"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "North Korea"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "Quito"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "Rabat"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "Yangon"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "Myanmar"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "Recife"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "Regina"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "Reykjavik"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "Iceland"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "Riga"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "Latvia"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "Rio de Janeiro"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "Saint-Denis"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "Reunion Island"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "Samara"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "San Antonio"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "San Diego"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "San Francisco"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "San Jose"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "Costa Rica"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "San Juan"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "Puerto Rico"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "San Marino"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "San Salvador"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "El Salvador"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "Sana’a"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "Yemen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "Santiago"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "Santo Domingo"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "Dominican Republic"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "Sao Paulo"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "Seattle"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "Seoul"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "Republic of Korea"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "Shanghai"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "Shenzhen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "Singapore"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "Republic of Singapore"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "Skopje"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "Macedonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "Sofia"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "Bulgaria"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "St John's"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "Antigua and Barbuda"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "Stockholm"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "Sweden"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "Suva"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "Fiji"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "Republic of Fiji"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "Sydney"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "Tahiti"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "French Polynesia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "Taipei"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "Taiwan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "Tallinn"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "Estonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "Tarawa"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "Kiribati"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "Tashkent"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "Uzbekistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "Tbilisi"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "Georgia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "Tegucigalpa"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "Honduras"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "Tehran"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "Iran"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "Ho Chi Minh City"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "The Settlement"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "British Virgin Islands"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "Tianjin"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "Tijuana"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "Tokyo"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "Toronto"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "Trehet"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "Tripoli"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "Libya"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "Tunis"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "Tunisia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "Torino"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "Ufa"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "Bashkiriya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "Ulaanbaatar"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "Vaduz"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "Liechtenstein"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "Valletta"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "Malta"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "Vancouver"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "Verona"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "Victoria"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "Seychelles"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "Vienna"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "Austria"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "Vilnius"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "Lithuania"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "Vladivostok"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "Volgograd"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "St Petersburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "Warszawa "
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "Poland"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "Washington DC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "Wellington"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "Winnipeg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "Yakutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "Yamoussoukro"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "Yaounde"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "Yekaterinburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "Yerevan"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "Armenia"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "Yuzhno-Sakhalinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "Zagreb"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "Croatia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "Zurich"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exporting..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importing..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Imported"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exported"
+
diff --git a/po/es_ES.po b/po/es_ES.po
new file mode 100755 (executable)
index 0000000..3cdd385
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "Adjuntar"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "Nota"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "No se han encontrado resultados"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensual"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Todos los calendarios"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Antes"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "antes"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Personalizar"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "A diario"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Día"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Hora de finalización"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensual"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Hora de inicio"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Toque para introducir ubicación"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Toque para introducir nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Toque para escribir título"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semana"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Semanal"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Anual"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Toque para introducir participante"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Todo el día"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Cuenta predetermin"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opciones de envío"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "Título"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportar"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincr. de calendario"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Eventos"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Lunes"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primer día de la semana"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "No se ha seleccionado ninguna ubicación"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Eliminar evento"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "¿Enviar mensajes a participantes?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participantes"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "En hora"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendarios"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Sin calendarios"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Sólo este evento"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Todos los eventos repetitivos"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sin título"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Bloquear zona horaria"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Zona horaria"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hora"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repetir hasta"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "veces"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participante"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendario vinculado"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendario del teléfono"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vista diaria"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vista semanal"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Año"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repetir"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "No se puede encontrar ubicación"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "día"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "Abidján"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "Abu Dhabi"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "Emiratos Árabes Unidos"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "Accra"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "Ghana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "Addis Ababa"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "Etiopía"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "Adelaide"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "Australia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "Alaska"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "EE. UU."
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "Costa de Marfil"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "Argelia"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "Algeria"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "Almaty"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "Kazajistán"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "Ambon"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "Indonesia"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "Ammán"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "Jordania"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "Ámsterdam"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "Países Bajos"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "Anadyr"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "Rusia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "Anchorage"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "Ankara"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "Turquía"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "Antananarivo"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "Madagascar"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "Asjabad"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "Turkmenistán"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "Asmara"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "Eritrea"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "Astana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "Asunción"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "Paraguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "Atenas"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "Grecia"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "Auckland"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "Nueva Zelanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "Austin"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "Azores"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "Portugal"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "Bagdad"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "Irak"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "Bakú"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "Azerbaiyán"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "Baltimore"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "Bamako"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "Mali"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "Bangkok"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "Tailandia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "Bangui"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "República Centroafricana"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "Barcelona"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "España"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "Bari"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "Italia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "Basse-Terre"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "Guadalupe"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "Pekín"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "China"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "Beirut"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "Líbano"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "Belgrado"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "Serbia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "Ciudad de Belice"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "Belice"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "Berlín"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "Alemania"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "Berna"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "Suiza"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "Bishkek"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "Kirguistán"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "Guinea Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "Bogotá"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "Colombia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "Bolonia"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "Boston                      "
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "Brasilia"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "Brasil"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "Bratislava"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "Eslovaquia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "Bridgetown"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "Barbados"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "Brisbane"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "Bruselas"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "Bélgica"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "Bucarest"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "Rumanía"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "Budapest"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "Hungría"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "Buenos Aires"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "Argentina"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "El Cairo"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "Egipto"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "Calgary"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "Canadá"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "Islas Canarias"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "Canberra"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "Cantón"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "Ciudad del Cabo"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "República de Sudáfrica"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "Caracas"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "Venezuela"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "Cardiff"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "Gales"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "Casablanca"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "Marruecos"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "Catanzaro"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Guardar en"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "No hay eventos"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalizar"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "¿Guardar?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "Reordenar"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "Cayena"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "Guayana Francesa"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "Charlotte"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "Charlotte Amalie"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "Islas Vírgenes de los Estados Unidos"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "Chelyabinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "Chennai"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "India"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "Chicago"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "Chisinau"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "Moldavia"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "Chita"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "Cleveland"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "Colombo"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "Sri Lanka"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "Columbus"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "Conakry"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "Guinea"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "Copenhague"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "Dinamarca"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "Cork"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "Irlanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "Crotona"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "Dakar"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "Senegal"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "Dallas"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "Damasco"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "Siria"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "Dar es Salaam"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "Tanzania"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "Darwin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "Denpasar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "Denver"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "Detroit"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "Dhaka"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "Bangladesh"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "Diego Garcia"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "Reino Unido"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "Yibuti"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "Yibuti"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "Doha"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "Qatar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "Douala"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "Camerún"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "Dubai"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "Dublín"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "Dusambé"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "Tayikistán"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "Isla de Pascua"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "Chile"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "Edimburgo"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "Escocia"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "El Paso"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "Florencia"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "Fort-de-France"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "Martinica"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "Freetown"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "Sierra Leona"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "Gaborone"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "Botswana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "Islas Galápagos"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "Ecuador"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "Génova"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "Génova"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "Georgetown"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "Guyana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "Grytviken"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "Georgia del Sur"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "Guam"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "Ciudad de Guatemala"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "Guatemala"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "Gustavia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "Saint Barthélemy"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "Halifax"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "Hamburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "Hanoi"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "Vietnam"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "Harare"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "Zimbabue"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "La Habana"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "Cuba"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "Hawai"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "Helsinki"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "Finlandia"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "Hobart"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Mostrar eventos por semana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Diseño en vista por mes"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Mostrar eventos por día"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "Hong Kong"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "Honolulu"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "Houston"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "Hovd"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "Mongolia"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "Indianápolis"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "Irkutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "Islamabad"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "Paquistán"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "Estambul"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "Izhevsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "Yakarta"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "Jidda"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "Arabia Saudí"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "Jerusalén"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "Israel"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "Johannesburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "Kabul"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "Afganistán"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "Kaliningrado"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "Kamchatka"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "Kampala"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "Uganda"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "Karachi"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "Kathmandú"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "Nepal"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "Khabarovsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "Kharkiv"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "Ucrania"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "Jartum"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "Sudán"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "Kiev"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "Kingston"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "Jamaica"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "Kinshasa"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "República Democrática del Congo"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "Kolkata"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "Krasnoyarsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "Kuala Lumpur"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "Malasia"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "Kuwait"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "Los Ángeles"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "La Paz"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "Bolivia"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "Lagos"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "Nigeria"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "Las Vegas"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "Lima"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "Perú"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "Lisboa"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "Liubliana"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "Londres"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "Longhua"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "Louisville"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "Luanda"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "Angola"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "Lubumbashi"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "Lusaka"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "Zambia"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "Luxemburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "Lviv"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "Macao"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "Madrid"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "Magadán"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "Malabo"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "Guinea Ecuatorial"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "Malé"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "Maldivas"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "Managua"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "Nicaragua"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "Manama"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "Bahréin"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "Manila"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "Filipinas"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "Maputo"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "Mozambique"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "Marigot"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "San Martín"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "Mazatlán"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "México"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "Riad"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "Melbourne"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "Memphis"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "Mesina"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "Ciudad de México"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "Miami"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "Atlántico Central"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "Midway Atoll"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "Milán"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "Milwaukee"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "Minsk"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "Bielorrusia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "Mogadishu"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "Somalia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "Monrovia"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "Liberia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "Montevideo"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "Uruguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "Montreal"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "Moscú"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "Mumbai"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "Múnich"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "Mascate"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "Omán"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "Nairobi"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "Kenia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "Roma"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "Naters"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "Ndjamena"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "Nápoles"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "Chad"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "La Meca"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "Nueva Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "Nueva York"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "Terranova"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "Niamey"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "Níger"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "Nouakchott"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "Mauritania"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "Numea"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "Nueva Caledonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "Novokuznetsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "Novosibirsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "Nuku’alofa"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "Tonga"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "Nuuk"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "Groenlandia"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "Omsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "Osaka"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "Japón"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "Ottawa"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "Ouagadougou"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "Burkina Faso"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "Pago Pago"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "Estado Independiente de Samoa"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "Palermo"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "Ciudad de Panamá"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "Panamá"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "Paramaribo"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "Suriname"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "París"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "Francia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "Perm"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "Perth"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "Petropavlovsk-Kamchatskiy"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "Filadelfia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "Phnom Penh"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "Camboya"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "Phoenix"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "Podgorica"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "Montenegro"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "Ponta Delgada"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "Port Louis"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "Mauricio"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "Puerto Príncipe"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "Haití"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "Portland"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "Praga"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "República Checa"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "Pyongyang"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "Corea del Norte"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "Quito"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "Rabat"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "Rangún"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "Birmania"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "Recife"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "Regina"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "Reikiavik"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "Islandia"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "Riga"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "Letonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "Rio De Janeiro"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "Saint-Denis"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "Isla Reunión"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "Samara"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "San Antonio"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "San Diego"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "San Francisco"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "San José"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "Costa Rica"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "San Juan"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "Puerto Rico"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "San Marino"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "San Salvador"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "El Salvador"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "Saná"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "Yemen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "Santiago"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "Santo Domingo"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "República Dominicana"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "Sao Paulo"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "Seattle"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "Seúl"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "República de Corea"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "Shanghái"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "Shenzhen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "Singapur"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "República de Singapur"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "Skopje"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "MACEDONIA"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "Sofía"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "Bulgaria"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "St.Johns"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "Antigua y Barbuda"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "Estocolmo"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "Suecia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "Suva"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "Fiyi"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "República de las Islas Fiji"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "Sydney"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "Tahití"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "Polinesia Francesa"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "Taipéi"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "Taiwán"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "Tallin"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "Estonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "Tarawa"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "Kiribati"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "Tashkent"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "Uzbekistán"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "Tiflis"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "Georgia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "Tegucigalpa"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "Honduras"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "Teherán"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "Irán"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "Ciudad Ho Chi Minh"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "The Settlement"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "Islas Vírgenes Británicas"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "Tianjin"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "Tijuana"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "Tokio"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "Toronto"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "Tréhet"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "Trípoli"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "Libia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "Túnez"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "Túnez"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "Turín"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "Ufa"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "Bashkiriya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "Ulan Bator"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "Vaduz"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "Liechtenstein"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "La Valeta"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "Malta"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "Vancúver"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "Verona"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "Victoria"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "Seychelles"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "Viena"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "Austria"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "Vilnius"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "Lituania"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "Vladivostok"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "Volgogrado"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "San Petersburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "Varsovia"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "Polonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "Washington DC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "Wellington"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "Winnipeg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "Yakutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "Yamusukro"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "Yaounde"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "Yekaterimburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "Ereván"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "Armenia"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "Yuzhno-Sakhalinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "Zagreb"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "Croacia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "Zúrich"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportando..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importando..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importadas"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportado"
+
diff --git a/po/fr_FR.po b/po/fr_FR.po
new file mode 100755 (executable)
index 0000000..12551e9
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "Joindre"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "Note"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Aucun résultat trouvé"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensuel"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Tout le calendrier"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Avant"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "avant"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Personnaliser"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Tous les jours"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Jour"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Heure de fin"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensuel"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mois"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Heure de début"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Appuyez pour entrer une localisation"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Appuyez pour entrer une note"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Appuyez pour entrer un titre"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mois"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semaine"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Toutes les semaines"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Chaque année"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Appuyez pour entrer un participant"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Quotidien"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semaine"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Compte par défaut"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Options d'envoi"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Carte"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "Titre"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exporter"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Synchro. des calendriers"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Evénements"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Dimanche"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Lundi"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Premier jour de la semaine"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Aucun endroit sélectionné"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Supprimer l'événement"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Envoyer les messages aux participants ?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participants"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "A l'heure"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendriers"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Aucun calendrier"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Liste"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Uniquement cet événement"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Tous les événements récurrents"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sans titre"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Verrouiller fuseau horaire"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Fuseau horaire"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "heure"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Répéter jusqu'à"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "fois"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participant"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendrier associé"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendrier du téléphone"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Affichage Jour"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vue Semaine"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Année"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Nombre de répétitions"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Localisation introuvable"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Emplacement"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "jour"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semaine"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "Abidjan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "Abu Dhabi"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "Émirats arabes unis"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "Accra"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "Ghana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "Addis-Abeba"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "Éthiopie"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "Adélaïde"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "Australie"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "Alaska"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "Etats-Unis"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "Côte d’Ivoire"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "Alger"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "Algérie"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "Almaty"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "Kazakhstan"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "Ambon"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "Indonésie"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "Amman"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "Jordanie"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "Amsterdam"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "Pays-Bas"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "Anadyr"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "Russie"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "Anchorage"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "Ankara"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "Turquie"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "Antananarivo"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "Madagascar"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "Ashgabat"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "Turkmenistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "Asmara"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "Érythrée"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "Astana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "Asuncion"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "Paraguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "Athènes"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "Grèce"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "Auckland"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "Nouvelle-Zélande"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "Austin"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "Açores"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "Portugal"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "Baghdad"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "Iraq"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "Baku"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "Azerbaïdjan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "Baltimore"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "Bamako"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "Mali"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "Bangkok"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "Thaïlande"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "Bangui"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "République centrafricaine"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "Barcelone"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "Espagne"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "Bari"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "Italie"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "Basse-Terre"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "Guadeloupe"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "Pékin"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "Chine"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "Beyrouth"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "Liban"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "Belgrade"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "Serbie"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "Belize City"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "Belize"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "Berlin"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "Allemagne"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "Berne"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "Suisse"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "Bichkek"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "Kirghizistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "Guinée-Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "Bogotá"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "Colombie"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "Bologne"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "Boston                      "
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "Brasilia"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "Brésil"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "Bratislava"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "Slovaquie"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "Bridgetown"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "Barbade"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "Brisbane"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "Bruxelles"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "Belgique"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "Bucarest"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "Roumanie"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "Budapest"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "Hongrie"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "Buenos Aires"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "Argentine"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "Le Caire"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "Egypte"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "Calgary"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "Canada"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "Iles Canaries"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "Canberra"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "Canton"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "Le Cap"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "Afrique du Sud"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "Caracas"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "Venezuela"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "Cardiff"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "Pays de Galles"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "Casablanca"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "Maroc"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "Catanzaro"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Enregistrer sur"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Aucun événement"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personnaliser"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Enregistrer ?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "Réorganiser"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "Cayenne"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "Guinée française"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "Charlotte"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "Charlotte Amalie"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "Iles Vierges des Etats-Unis"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "Chelyabinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "Chennai"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "Inde"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "Chicago"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "Chişinău"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "Moldavie"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "Chita"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "Cleveland"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "Colombo"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "Sri Lanka"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "Columbus"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "Conakry"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "Guinée"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "Copenhague"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "Danemark"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "Cork"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "Irlande"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "Crotone"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "Dakar"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "Sénégal"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "Dallas"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "Damas"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "Syrie"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "Dar es Salaam"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "Tanzanie"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "Darwin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "Denpasar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "Denver"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "Detroit"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "Dhaka"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "Bangladesh"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "Diego Garcia"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "Royaume-Uni"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "Djibouti"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "Djibouti"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "Doha"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "Qatar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "Douala"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "Cameroun"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "Dubaï"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "Dublin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "Douchanbé"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "Tajikistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "Ile de Pâques"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "Chili"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "Édimbourg"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "Ecosse"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "El Paso"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "Florence"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "Fort-de-France"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "Martinique"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "Freetown"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "Sierra Leone"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "Gaborone"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "Botswana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "Iles Galápagos"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "Équateur"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "Genève"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "Gênes"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "Georgetown"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "Guyane"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "Grytviken"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "Géorgie du Sud"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "Guam"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "Guatemala (ville)"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "Guatemala"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "Gustavia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "Saint-Barthélemy"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "Halifax"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "Hambourg"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "Hanoï"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "Viêtnam"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "Harare"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "Zimbabwe"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "La Havane"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "Cuba"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "Hawaï"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "Helsinki"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "Finlande"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "Hobart"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Afficher événements hebdomadaires"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Affichage mensuel"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Afficher événements quotidiens"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "Hong Kong"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "Honolulu"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "Houston"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "Hovd"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "Mongolie"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "Indianapolis"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "Irkoutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "Islamabad"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "Pakistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "Istanbul"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "Izhevsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "Jakarta"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "Jeddah"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "Arabie Saoudite"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "Jérusalem"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "Israël"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "Johannesburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "Kaboul"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "Afghanistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "Kaliningrad"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "Kamtchatka"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "Kampala"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "Ouganda"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "Karachi"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "Katmandou"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "Népal"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "Khabarovsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "Kharkiv"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "Ukraine"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "Khartoum"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "Soudan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "Kiev"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "Kingston"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "Jamaïque"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "Kinshasa"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "République démocratique du Congo"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "Kolkata"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "Krasnoïarsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "Kuala Lumpur"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "Malaisie"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "Koweït"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "Los Angeles"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "La Paz"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "Bolivie"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "Lagos"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "Nigeria"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "Las Vegas"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "Lima"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "Pérou"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "Lisbonne"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "Ljubljana"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "Londres"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "Longhua"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "Louisville"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "Luanda"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "Angola"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "Lubumbashi"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "Lusaka"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "Zambie"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "Luxembourg"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "Lviv"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "Macao"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "Madrid"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "Magadan"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "Malabo"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "Guinée équatoriale"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "Malé"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "Les Maldives"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "Managua"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "Nicaragua"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "Manama"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "Bahrain"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "Manille"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "Les Philippines"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "Maputo"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "Mozambique"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "Marigot"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "Saint-Martin"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "Mazatlan"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "Mexique"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "Riyad"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "Melbourne"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "Memphis"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "Messine"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "Mexico"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "Miami"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "Atlantique central"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "Atoll de Midway"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "Milan"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "Milwaukee"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "Minsk"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "Bélarus"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "Mogadishu"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "Somalie"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "Monrovia"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "Libéria"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "Montevideo"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "Uruguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "Montréal"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "Moscou"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "Mumbai"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "Munich"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "Mascate"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "Oman"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "Nairobi"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "Kenya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "Rome"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "Naters"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "Ndjamena"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "Naples"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "TCHAD"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "Mecca"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "New Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "New York"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "Terre-Neuve"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "Niamey"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "Niger"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "Nouakchott"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "MAURITANIE"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "Nouméa"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "Nouvelle Calédonie"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "Novokuznetsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "Novosibirsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "Nuku'alofa"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "Tonga"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "Nuuk"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "Groenland"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "Omsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "Osaka"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "Japon"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "Ottawa"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "Ouagadougou"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "Burkina Faso"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "Pago Pago"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "Samoa"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "Palerme"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "Panama City"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "Panama"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "Paramaribo"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "Suriname"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "Paris"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "France"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "Perm"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "Perth"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "Petropavlovsk-Kamchatskiy"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "Philadelphie"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "Phnom Penh"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "Cambodge"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "Phoenix"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "Podgorica"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "Monténégro"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "Ponta Delgada"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "Port-Louis"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "Maurice"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "Port-au-Prince"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "Haïti"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "Portland"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "Prague"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "République Tchèque"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "Pyongyang"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "Corée du Nord"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "QUITO"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "Rabat"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "Yangon"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "Burma"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "Recife"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "Régina"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "Reykjavík"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "Islande"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "Riga"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "Lettonie"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "Rio De Janeiro"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "Saint-Denis"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "Ile de la Réunion"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "Samara"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "San Antonio"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "San Diego"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "San Francisco"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "San José"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "Costa Rica"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "San Juan"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "Porto Rico"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "Saint-Marin"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "San Salvador"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "Salvador"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "Sana’a"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "Yémen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "Santiago"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "Saint-Domingue"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "République dominicaine"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "Sao Paulo"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "Seattle"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "Séoul"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "République de Corée"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "Shanghai"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "Shenzhen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "Singapour"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "République de Singapour"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "Skopje"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "Macédoine"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "Sofia"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "Bulgarie"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "St. John's"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "Antigua et Barbuda"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "Stockholm"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "Suède"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "Suva"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "Fiji"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "République des îles Fidji"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "Sydney"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "Tahiti"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "Polynésie française"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "Taipei"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "Taïwan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "Tallinn"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "Estonie"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "Tarawa"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "Kiribati"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "Tachkent"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "Ouzbékistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "Tbilisi"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "Géorgie"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "Tegucigalpa"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "Honduras"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "Téhéran"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "Iran"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "Hô-Chi-Minh-Ville"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "The Settlement"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "Iles Vierges Britanniques"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "Tianjin"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "Tijuana"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "Tokyo"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "Toronto"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "Tréhet"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "Tripoli"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "Libye"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "Tunis"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "Tunisie"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "Turin"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "Ufa"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "Bachkirie"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "Ulan Bator"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "Vaduz"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "Liechtenstein"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "La Valette"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "Malte"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "Vancouver"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "Vérone"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "Victoria"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "Seychelles"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "Vienne"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "Autriche"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "Vilnius"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "Lituanie"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "Vladivostok"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "Volgograd"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "Saint-Pétersbourg"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "Varsovie"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "Pologne"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "Washington DC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "Wellington"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "Winnipeg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "Lakoutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "Yamoussoukro"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "Yaoundé"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "Lekaterinbourg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "Yerevan"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "Arménie"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "Ioujno-Sakhalinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "Zagreb"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "Croatie"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "Zurich"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportation..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importation en cours..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importé"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exporté"
+
diff --git a/po/it_IT.po b/po/it_IT.po
new file mode 100755 (executable)
index 0000000..3c7091a
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "Allega"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "Nota"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "Dettagli"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nessun risultato trovato"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Ogni mese"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Tutto il calendario"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Prima"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "prima"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Ogni giorno"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Giorno"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Ora fine"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Ogni mese"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mese"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Ora inizio"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Tocca per inserire un luogo"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Tocca per inserire una nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Tocca per inserire il titolo"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mese"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Settimana"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Ogni settimana"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Ogni anno"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tocca per inserire un partecipante"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Tutto il giorno"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "settimana"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Account predefinito"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opzioni di invio"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mappa"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "Titolo"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Esporta"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincronizza agenda"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Eventi"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Domenica"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Lunedì"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primo giorno della settimana"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nessuna posizione selezionata"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Elimina evento"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Inviare messaggi ai partecipanti?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Partecipanti"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "All'ora esatta"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendari"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Nessun calendario"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Elenco"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Solo questo evento"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Tutti gli eventi ripetuti"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Nessun titolo"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Blocca fuso orario"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Fuso orario"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "ora"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Ripeti fino a"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "volte"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Partecipante"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendario collegato"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendario telefono"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vista giorno"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vista settimana"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Anno"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Ripeti"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Impossibile trovare posizione"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Posizione"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "giorno"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "settimana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "Abidjan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "Abu Dhabi"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "Emirati Arabi Uniti"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "Accra"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "Ghana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "Addis Abeba"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "Etiopia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "Adelaide"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "Australia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "Alaska"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "Stati Uniti d'America"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "Costa d'Avorio"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "Algeri"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "Algeria"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "Almaty"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "Kazakhstan"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "Ambon"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "Indonesia"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "Amman"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "Giordania"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "Amsterdam"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "Paesi Bassi"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "Anadyr"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "Russia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "Anchorage"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "Ankara"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "Turchia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "Antananarivo"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "Madagascar"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "Ashgabat"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "Turkmenistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "Asmara"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "Eritrea"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "Astana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "Asuncion"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "Paraguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "Atene"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "Grecia"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "Auckland"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "Nuova Zelanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "Austin"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "Azzorre"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "Portogallo"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "Baghdad"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "Iraq"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "Baku"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "Azerbaijan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "Baltimora"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "Bamako"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "Mali"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "Bangkok"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "Tailandia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "Bangui"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "Repubblica Centrafricana"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "Barcellona"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "Spagna"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "Bari"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "Italia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "Basse-Terre"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "Guadalupa"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "Pechino"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "Cina"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "Beirut"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "Libano"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "Belgrado"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "Serbia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "Belize City"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "Belize"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "Berlino"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "Germania"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "Berna"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "Svizzera"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "Bishkek"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "Kyrgyzstan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "Guinea Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "Bogota"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "Colombia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "Bologna"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "Boston                      "
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "Brasilia"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "Brasile"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "Bratislava"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "Slovacchia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "Bridgetown"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "Barbados"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "Brisbane"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "Bruxelles"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "Belgio"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "Bucarest"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "Romania"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "Budapest"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "Ungheria"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "Buenos Aires"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "Argentina"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "Cairo"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "Egitto"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "Calgary"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "Canada"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "Isole Canarie"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "Canberra"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "Canton"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "Città del Capo"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "Repubblica Sudafricana"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "Caracas"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "Venezuela"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "Cardiff"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "Galles"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "Casablanca"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "Marocco"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "Catanzaro"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Salva in"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nessun evento"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalizza"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Salvare?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "Riordina"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "Caienna"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "Guyana francese"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "Charlotte"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "Charlotte Amalie"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "Isole Vergini Statunitensi"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "Chelyabinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "Chennai"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "India"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "Chicago"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "Chişinău"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "Moldavia"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "Chita"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "Cleveland"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "Colombo"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "Sri Lanka"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "Columbus"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "Conakry"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "Guinea"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "Copenhagen"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "Danimarca"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "Cork"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "Irlanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "Crotone"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "Dakar"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "Senegal"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "Dallas"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "Damasco"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "Siria"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "Dar es Salaam"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "Tanzania"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "Darwin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "Denpasar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "Denver"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "Detroit"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "Dhaka"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "Bangladesh"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "Diego Garcia"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "Regno Unito"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "Djibouti"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "Djibouti"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "Doha"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "Qatar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "Douala"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "Camerun"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "Dubai"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "Dublino"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "Dushanbe"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "Tajikistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "Isola di Pasqua"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "Cile"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "Edinburgo"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "Scozia"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "El Paso"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "Firenze"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "Fort-de-France"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "Martinica"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "Freetown"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "Sierra Leone"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "Gaborone"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "Botswana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "Isole Galapagos"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "Ecuador"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "Ginevra"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "Genova"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "Georgetown"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "Guyana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "Grytviken"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "Georgia del Sud"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "Guam"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "Città del Guatemala"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "Guatemala"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "Gustavia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "Saint Barthélemy"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "Halifax"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "Amburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "Hanoi"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "Vietnam"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "Harare"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "Zimbabwe"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "Havana"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "Cuba"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "Hawaii"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "Helsinki"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "Finlandia"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "Hobart"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Mostra eventi per settimana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout vista mese"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Mostra eventi per giorno"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "Hong Kong"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "Honolulu"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "Houston"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "Hovd"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "Mongolia"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "Indianapolis"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "Irkutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "Islamabad"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "Pakistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "Istanbul"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "Izhevsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "Jakarta"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "Jeddah"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "Arabia Saudita"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "Gerusalemme"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "Israele"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "Johannesburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "Kabul"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "Afghanistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "Kaliningrad"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "Kamchatka"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "Kampala"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "Uganda"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "Karachi"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "Katmandu"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "Nepal"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "Khabarovsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "Kharkiv"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "Ucraina"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "Khartoum"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "Sudan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "Kiev"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "Kingston"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "Giamaica"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "Kinshasa"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "Repubblica Democratica del Congo"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "Calcutta"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "Krasnoyarsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "Kuala Lumpur"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "Malesia"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "Kuwait"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "Los Angeles"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "La Paz"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "Bolivia"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "Lagos"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "Nigeria"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "Las Vegas"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "Lima"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "Perù"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "Lisbona"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "Lubiana"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "Londra"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "Longhua"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "Louisville"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "Luanda"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "Angola"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "Lubumbashi"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "Lusaka"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "Zambia"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "Lussemburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "Leopoli"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "Macau"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "Madrid"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "Magadan"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "Malabo"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "Guinea Equatoriale"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "Male"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "Maldive"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "Managua"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "Nicaragua"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "Manama"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "Bahrain"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "Manila"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "Filippine"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "Maputo"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "Mozambico"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "Marigot"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "Saint-Martin"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "Mazatlan"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "Messico"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "Riyadh"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "Melbourne"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "Memphis"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "Messina"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "Città del Messico"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "Miami"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "Atlantico centrale"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "Atollo di Midway"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "Milano"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "Milwaukee"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "Minsk"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "Bielorussia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "Mogadiscio"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "Somalia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "Monrovia"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "Liberia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "Montevideo"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "Uruguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "Montreal"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "Mosca"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "Mumbai"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "Monaco di Baviera"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "Muscat"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "Oman"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "Nairobi"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "Kenya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "Roma"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "Naters"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "Ndjamena"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "Napoli"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "Chad"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "Mecca"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "Nuova Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "New York"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "Terranova"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "Niamey"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "Niger"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "Nouakchott"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "Mauritania"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "Nouméa"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "Nuova Caledonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "Novokuznetsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "Novosibirsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "Nuku’alofa"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "Tonga"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "Nuuk"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "Groenlandia"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "Omsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "Osaka"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "Giappone"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "Ottawa"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "Ouagadougou"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "Burkina Faso"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "Pago Pago"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "Stato Indipendente di Samoa"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "Palermo"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "Panama City"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "Panama"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "Paramaribo"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "Suriname"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "Parigi"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "Francia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "Perm"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "Perth"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "Petropavlovsk-Kamchatskiy"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "Filadelfia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "Phnom Penh"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "Cambogia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "Phoenix"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "Podgorica"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "Montenegro"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "Ponta Delgada"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "Port Louis"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "Mauritius"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "Port-au-Prince"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "Haiti"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "Portland"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "Praga"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "Repubblica Ceca"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "Pyongyang"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "Corea del Nord"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "QUITO"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "Rabat"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "Yangon"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "Burma"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "Recife"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "Regina"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "Reykjavík"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "Islanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "Riga"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "Lettonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "Rio De Janeiro"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "Saint-Denis"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "Isola di Reunion"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "Samara"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "San Antonio"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "San Diego"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "San Francisco"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "San Jose"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "Costa Rica"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "San Juan"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "Porto Rico"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "San Marino"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "San Salvador"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "El Salvador"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "Sana'a"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "Yemen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "Santiago"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "Santo Domingo"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "Repubblica Dominicana"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "San Paolo"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "Seattle"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "Seul"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "Repubblica di Corea"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "Shanghai"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "Shenzhen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "Singapore"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "Repubblica di Singapore"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "Skopje"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "Macedonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "Sofia"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "Bulgaria"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "St.John's"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "Antigua e Barbuda"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "Stoccolma"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "Svezia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "Suva"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "Fiji"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "Repubblica delle Isole Fiji"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "Sydney"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "Tahiti"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "Polinesia francese"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "Taipei"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "Taiwan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "Tallinn"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "Estonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "Tarawa"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "Kiribati"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "Tashkent"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "Uzbekistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "Tbilisi"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "Georgia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "Tegucigalpa"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "Honduras"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "Teheran"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "Iran"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "Ho Chi Minh"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "The Settlement"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "Isole Vergini Britanniche"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "Tientsin"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "Tijuana"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "Tokyo"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "Toronto"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "Tréhet"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "Tripoli"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "Libia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "Tunisi"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "Tunisia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "Torino"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "Ufa"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "Bashkiriya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "Ulan Bator"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "Vaduz"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "Liechtenstein"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "La Valletta"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "Malta"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "Vancouver"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "Verona"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "Victoria"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "Seychelles"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "Vienna"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "Austria"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "Vilnius"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "Lituania"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "Vladivostok"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "Volgograd"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "San Pietroburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "Varsavia"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "Polonia"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "Washington DC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "Wellington"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "Winnipeg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "Yakutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "Yamoussoukro"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "Yaounde"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "Ekaterinburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "Yerevan"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "Armenia"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "Yuzhno-Sakhalinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "Zagabria"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "Croazia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "Zurigo"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Esportazione..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importazione..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importati"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Esportazione eseguita"
+
diff --git a/po/ja_JP.po b/po/ja_JP.po
new file mode 100755 (executable)
index 0000000..08a0934
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "添付ファイル"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "説明"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "詳細"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "検索結果がありません。"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "毎月"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "全てのカレンダー"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "前"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "前"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "毎日"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "日表示"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "終了時刻"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "毎月"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "月表示"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "開始時刻"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "場所を入力"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "メモを入力"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "タイトルを入力"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "月表示"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "週"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "毎週"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "毎年"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "参加者を入力"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "週"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "終日"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "週"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "メインアカウント"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "送信オプション"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "地図"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "タイトル"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "エクスポート"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "カレンダー​同期"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "イベント"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "日曜日"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "月曜日"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "週の​始まり"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "場所が選択されていません。"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "イベントを​削除"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "メッセージ​を​参加者​に​送信​しますか?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "参加者"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "開始時刻"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "カレンダー"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "カレンダーがありません。"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "リスト表示"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "この​イベント​のみ"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "全てのイベント"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "件名​なし"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "タイムゾーン​を​固定"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "タイムゾーン"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "時間"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "繰り返し​期間"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "回"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "参加者"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "リンク​した​カレンダー"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "本体​カレンダー"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "日常​表示"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "週表示"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "年"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "繰り返し期間"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "現在地を検索できません。"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "日付"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "週"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "アビジャン"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "アブダビ"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "アラブ​首長国​連邦"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "アクラ"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "ガーナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "アジスアベバ"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "エチオピア"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "アデレード"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "オーストラリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "アラスカ"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "アメリカ(米国)"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "コートジボワール"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "アルジェ"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "アルジェリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "アルマトイ"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "カザフスタン"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "アンボン"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "インドネシア"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "アンマン"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "ヨルダン"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "アムステルダム"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "オランダ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "アナジル"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "ロシア"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "アンカレッジ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "アンカラ"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "トルコ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "アンタナナリボ"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "マダガスカル"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "アシガバート"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "トルクメニスタン"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "アスマラ"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "エリトリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "アスタナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "アスンシオン"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "パラグアイ"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "アテネ"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "ギリシャ"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "オークランド"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "ニュージーランド"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "オースティン"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "アゾレス諸島"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "ポルトガル"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "バグダード"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "イラク"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "バクー"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "アゼルバイジャン"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "ボルティモア"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "バマコ"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "マリ"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "バンコク"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "タイ"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "バンギ"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "中央アフリカ共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "バルセロナ"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "スペイン"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "バーリ"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "イタリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "バステール"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "グアドループ"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "北京"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "中国"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "ベイルート"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "レバノン"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "ベオグラード"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "セルビア"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "ベリーズ​シティー"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "ベリーズ"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "ベルリン"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "ドイツ"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "ベルン"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "スイス"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "ビシュケク"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "キルギスタン"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "ビサウ"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "ギニアビサウ"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "ボゴタ"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "コロンビア"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "ボローニャ"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "ボストン"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "ブラジリア"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "ブラジル"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "ブラティスラヴァ"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "スロバキア"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "ブリッジ​タウン"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "バルバドス"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "ブリスベン"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "ブリュッセル"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "ベルギー"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "ブカレスト"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "ルーマニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "ブダペスト"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "ハンガリー"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "ブエノスアイレス"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "アルゼンチン"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "カイロ"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "エジプト"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "カルガリー"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "カナダ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "カナリア​諸島"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "キャンベラ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "広東"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "ケープタウン"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "南​アフリカ​共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "カラカス"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "ベネズエラ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "カーディフ"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "ウェールズ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "カサブランカ"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "モロッコ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "カタンザーロ"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "保存先設定"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "イベントはありません。"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "カスタマイズ"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "保存しますか?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "並べ替え"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "カイエンヌ"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "仏領ギアナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "シャーロット"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "シャーロット​アマリー"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "米領ヴァージン諸島"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "チェリャビンスク"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "チェンナイ"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "インド"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "シカゴ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "キシナウ"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "モルドバ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "チタ"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "クリーブランド"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "コロンボ"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "スリランカ"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "コロンバス"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "コナクリ"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "ギニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "コペンハーゲン"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "デンマーク"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "コーク"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "アイルランド"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "クロトーネ"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "ダカール"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "セネガル"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "ダラス"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "ダマスカス"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "シリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "ダル​エス​サラーム"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "タンザニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "ダーウィン"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "デリー"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "デンパサール"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "デンバー"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "デトロイト"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "ダッカ"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "バングラデシュ"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "ディエゴ​ガルシア島"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "英国"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "ジブチ"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "ジブチ"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "ドーハ"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "カタール"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "ドゥアラ"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "カメルーン"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "ドバイ"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "ダブリン"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "ドゥシャンベ"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "タジキスタン"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "イースター​島"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "チリ"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "エディンバラ"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "スコットランド"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "エル​パソ"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "フィレンツェ"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "フォールド​フランス"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "マルティニーク島"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "フリータウン"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "シエラレオネ"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "ハボローネ"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "ボツワナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "ガラパゴス​諸島"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "エクアドル"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "ジュネーブ"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "ジェノヴァ"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "ジョージ​タウン"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "ガイアナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "グリトビケン"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "サウス​ジョージア"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "グアム"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "グアテマラ​シティー"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "グアテマラ"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "グスタビア"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "サンバルテルミー島"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "ハリファックス"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "ハンブルク"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "ハノイ"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "ベトナム"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "ハラレ"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "ジンバブエ"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "ハバナ"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "キューバ"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "ハワイ"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "ヘルシンキ"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "フィンランド"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "ホバート"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "週単位でイベント表示"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "月単位表示のレイアウト"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "日単位でイベント表示"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "香港"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "ホノルル"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "ヒューストン"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "ホブト"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "モンゴル"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "インディアナポリス"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "イルクーツク"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "イスラマバード"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "パキスタン"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "イスタンブール"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "イジェフスク"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "ジャカルタ"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "ジッダ"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "サウジアラビア"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "エルサレム"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "イスラエル"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "ヨハネスブルグ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "カブール"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "アフガニスタン"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "カリーニングラード"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "カムチャッカ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "カンパラ"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "ウガンダ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "カラチ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "カトマンズ"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "ネパール"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "ハバロフスク"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "ハリコフ"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "ウクライナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "ハルツーム"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "スーダン"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "キエフ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "キングストン"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "ジャマイカ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "キンシャサ"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "コンゴ​民主​共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "コルカタ"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "クラスノヤルスク"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "クアラルンプール"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "マレーシア"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "クウェート"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "ロサンゼルス"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "ラパス"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "ボリビア"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "ラゴス"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "ナイジェリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "ラス​ベガス"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "リマ"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "ペルー"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "リスボン"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "リュブリャナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "ロンドン"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "龍華"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "ルイビル"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "ルアンダ"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "アンゴラ"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "ルブンバシ"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "ルサカ"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "ザンビア"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "ルクセンブルグ"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "リヴィウ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "マカオ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "マドリード"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "マガダン"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "マラボ"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "赤道​ギニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "マレ"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "モルディブ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "マナグア"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "ニカラグア"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "マナーマ"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "バーレーン"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "マニラ"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "フィリピン"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "マプト"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "モザンビーク"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "マリゴ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "サンマルタン"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "マサトラン"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "メキシコ"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "リヤド"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "メルボルン"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "メンフィス"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "メッシーナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "メキシコシティ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "マイアミ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "中央大西洋"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "ミッドウェー​環礁"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "ミラノ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "ミルウォーキー"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "ミンスク"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "ベラルーシ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "モガディシュ"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "ソマリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "モンロビア"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "リベリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "モンテビデオ"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "ウルグアイ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "モントリオール"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "モスクワ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "ムンバイ"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "ミュンヘン"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "マスカット"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "オマーン"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "ナイロビ"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "ケニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "ローマ"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "ナテー"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "ヌジャメナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "ナポリ"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "チャド"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "メッカ"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "ニューデリー"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "ニューヨーク"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "ニューファンドランド"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "ニアメー"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "ニジェール"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "ヌアクショット"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "モーリタニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "ヌーメア"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "ニューカレドニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "ノヴォクズネツク"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "ノヴォシビルスク"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "ヌクアロファ"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "トンガ"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "ヌーク"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "グリーンランド"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "オムスク"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "大阪"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "日本"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "オタワ"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "ワガドゥグー"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "ブルキナファソ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "パゴパゴ"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "サモア独立国"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "パレルモ"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "パナマ市"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "パナマ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "パラマリボ"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "スリナム"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "パリ"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "フランス"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "ペルミ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "パース"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "ペトロパブロフスク-カムチャツキー"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "フィラデルフィア"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "プノンペン"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "カンボジア"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "フェニックス"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "ポドゴリツァ"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "モンテネグロ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "ポンタデルガダ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "ポート​ルイス"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "モーリシャス"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "ポルトー​プランス"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "ハイチ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "ポートランド"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "プラハ"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "チェコ共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "平壌"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "北​朝鮮"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "キト"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "ラバト"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "ヤンゴン"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "ミャンマー"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "レシフェ"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "レジャイナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "レイキャビーク"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "アイスランド"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "リガ"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "ラトビア"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "リオデジャネイロ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "サンドニ"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "レユニオン島"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "サマラ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "サンアントニオ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "サンディエゴ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "サンフランシスコ"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "サンノゼ"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "コスタ​リカ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "サンファン"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "プエルトリコ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "サンマリノ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "サンサルバドル"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "エル​サルバドル"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "サヌア"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "イエメン"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "サンティエゴ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "サント​ドミンゴ"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "ドミニカ共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "サンパウロ"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "シアトル"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "ソウル"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "韓国"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "上海"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "深セン市"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "シンガポール"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "シンガポール"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "スコピエ"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "マケドニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "ソフィア"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "ブルガリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "セントジョンズ"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "アンティグアバーブーダ"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "ストックホルム"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "スウェーデン"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "スバ"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "フィジー"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "フィジー​諸島​共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "シドニー"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "タヒチ"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "仏領ポリネシア"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "台北"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "台湾"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "タリン"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "エストニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "タラワ"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "キリバス"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "タシケント"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "ウズベキスタン"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "トビリシ"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "グルジア"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "テグシガルパ"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "ホンジュラス"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "テヘラン"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "イラン"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "ホーチミン市"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "ザ・セトルメント"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "英領​バージン​諸島"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "天津"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "ティフアナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "東京"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "トロント"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "トレエ"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "トリポリ"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "リビア"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "チュニス"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "チュニジア"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "トリノ"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "ウファ"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "バシキリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "ウランバートル"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "ファドゥーツ"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "リヒテンシュタイン"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "バレッタ"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "マルタ"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "バンクーバー"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "ベロナ"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "ビクトリア"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "セーシェル"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "ウィーン"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "オーストリア"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "ヴィリニュス"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "リトアニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "ウラジオストック"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "ボルゴグラード"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "サンクトペテルブルク"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "ワルシャワ"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "ポーランド"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "ワシントンDC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "ウェリントン"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "ウィニペグ"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "ヤクーツク"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "ヤムスクロ"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "ヤウンデ"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "エカテリンブルグ"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "エレバン"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "アルメニア"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "ユジノサハリンスク"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "ザグレブ"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "クロアチア"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "チューリッヒ"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "エクスポート中..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "インポート中..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "インポートしました。"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "エクスポート​しました"
+
diff --git a/po/ko_KR.po b/po/ko_KR.po
new file mode 100755 (executable)
index 0000000..4733f8d
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "첨부"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "메모"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "상세 정보"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "검색 결과가 없습니다"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "매월"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "모든 일정"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "전"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "전"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "매일"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "일"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "종료 시간"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "매월"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "월"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "시작 시간"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "위치를 입력하려면 누르세요"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "설명을 입력하려면 누르세요"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "제목을 입력하려면 누르세요"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "월"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "주"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "매주"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "매년"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "참석자를 입력하려면 누르세요"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "주"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "하루종일"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "주"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "기본 계정"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "전송 옵션"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "지도"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "제목"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "내보내기"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "일정 동기화"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "일정"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "일요일"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "월요일"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "주 시작 요일"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "선택된 위치가 없습니다"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "일정 삭제"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "참석자에게 메시지를 전송할까요?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "참석자"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "정각"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "일정 보기 설정"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "일정이 없습니다"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "목록"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "선택한 일정만"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "반복 일정"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "제목이 없습니다"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "시간대 고정"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "표준 시간대"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "시간"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "반복 종료일"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "회"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "참석자"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "링크된 캘린더"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "휴대폰 캘린더"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "일간 보기"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "주간 보기"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "년"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "반복"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "위치를 찾을 수 없습니다"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "위치"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "일"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "주"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "아비장"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "아부다비"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "아랍에미리트"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "아크라"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "가나"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "아디스아바바"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "에티오피아"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "애들레이드"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "오스트레일리아"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "알래스카"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "미국"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "코트디부아르"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "알제"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "알제리"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "알마티"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "카자흐스탄"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "암본"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "인도네시아"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "암만"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "요르단"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "암스테르담"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "네덜란드"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "아나디리"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "러시아"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "앵커리지"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "앙카라"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "터키"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "안타나나리보"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "마다가스카르"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "아시가바트"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "투르크메니스탄"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "아스마라"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "에리트레아"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "아스타나"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "아순시온"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "파라과이"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "아테네"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "그리스"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "오클랜드"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "뉴질랜드"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "오스틴"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "아조레스"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "포르투갈"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "바그다드"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "이라크"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "바쿠"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "아제르바이잔"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "볼티모어"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "바마코"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "말리"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "방콕"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "태국"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "방기"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "중앙아프리카 공화국"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "바르셀로나"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "스페인"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "바리"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "이탈리아"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "바스테르"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "과들루프"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "베이징"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "중국"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "베이루트"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "레바논"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "베오그라드"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "세르비아"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "벨리즈시티"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "벨리즈"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "베를린"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "독일"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "베른"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "스위스"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "비슈케크"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "키르기스스탄"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "비사우"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "기니비사우"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "보고타"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "콜롬비아"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "볼로냐"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "보스턴"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "브라질리아"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "브라질"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "브라티슬라바"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "슬로바키아"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "브리지타운"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "바베이도스"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "브리즈번"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "브뤼셀"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "벨기에"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "부쿠레슈티"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "루마니아"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "부다페스트"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "헝가리"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "부에노스아이레스"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "아르헨티나"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "카이로"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "이집트"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "캘거리"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "캐나다"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "카나리아 제도"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "캔버라"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "캔턴"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "케이프타운"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "남아프리카 공화국"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "카라카스"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "베네수엘라"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "카디프"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "웨일즈"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "카사블랑카"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "모로코"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "카탄차로"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "저장"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "일정이 없습니다"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "직접 입력"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "저장할까요?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "순서 변경"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "카옌"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "프랑스령 기아나"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "샬럿"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "샬럿아말리에"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "미국령 버진아일랜드"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "첼랴빈스크"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "첸나이"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "인도"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "시카고"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "키시너우"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "몰도바"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "치타"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "클리블랜드"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "콜롬보"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "스리랑카"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "콜럼버스"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "코나크리"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "기니"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "코펜하겐"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "덴마크"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "코크"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "아일랜드"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "크로토네"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "다카르"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "세네갈"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "댈러스"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "다마스쿠스"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "시리아"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "다르에스살람"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "탄자니아"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "다윈"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "델리"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "덴파사르"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "덴버"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "디트로이트"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "다카"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "방글라데시"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "디에고가르시아"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "영국"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "지부티"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "지부티"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "도하"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "카타르"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "두알라"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "카메룬"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "두바이"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "더블린"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "두샨베"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "타지키스탄"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "이스터 섬"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "칠레"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "에든버러"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "스코틀랜드"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "엘패소"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "피렌체"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "포르 드 프랑스"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "마르티니크"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "프리타운"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "시에라리온"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "가보로네"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "보츠와나"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "갈라파고스 제도"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "에콰도르"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "제네바"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "제노바"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "조지타운"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "가이아나"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "그리트비켄"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "사우스 조지아"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "괌"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "과테말라시티"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "과테말라"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "구스타비아"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "생 바르텔레미"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "핼리팩스"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "함부르크"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "하노이"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "베트남"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "하라레"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "짐바브웨"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "아바나"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "쿠바"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "하와이"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "헬싱키"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "핀란드"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "호바트"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "주간 단위로 일정 표시"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "월간 보기 레이아웃"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "요일 단위로 일정 표시"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "홍콩"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "호놀룰루"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "휴스턴"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "호브드"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "몽골"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "인디애나폴리스"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "이르쿠츠크"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "이슬라마바드"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "파키스탄"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "이스탄불"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "이젭스크"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "자카르타"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "제다"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "사우디아라비아"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "예루살렘"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "이스라엘"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "요하네스버그"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "카불"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "아프가니스탄"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "칼리닌그라드"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "캄차카"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "캄팔라"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "우간다"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "카라치"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "카트만두"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "네팔"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "하바롭스크"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "카르키프"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "우크라이나"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "카르툼"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "수단"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "키예프"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "킹스턴"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "자메이카"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "킨샤사"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "콩고 민주공화국"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "콜카타"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "크라스노야르스크"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "쿠알라룸푸르"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "말레이시아"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "쿠웨이트"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "로스앤젤레스"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "라파스"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "볼리비아"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "라고스"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "나이지리아"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "라스베이거스"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "리마"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "페루"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "리스본"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "류블랴나"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "런던"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "룽화"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "루이즈빌"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "루안다"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "앙골라"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "루붐바시"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "루사카"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "잠비아"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "룩셈부르크"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "리비브"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "마카오"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "마드리드"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "마가단"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "말라보"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "적도 기니"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "말레"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "몰디브"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "마나과"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "니카라과"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "마나마"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "바레인"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "마닐라"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "필리핀"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "마푸토"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "모잠비크"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "마리갓"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "생 마르텡"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "마사틀란"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "멕시코"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "리야드"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "멜버른"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "멤피스"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "메시나"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "멕시코시티"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "마이애미"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "대서양 연안 중부"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "미드웨이 아톨"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "밀라노"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "밀워키"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "민스크"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "벨라루스"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "모가디슈"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "소말리아"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "몬로비아"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "라이베리아"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "몬테비데오"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "우루과이"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "몬트리올"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "모스크바"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "뭄바이"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "뮌헨"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "무스카트"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "오만"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "나이로비"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "케냐"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "로마"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "네이터스"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "엔자메나"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "나폴리"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "차드"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "메카"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "뉴델리"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "뉴욕"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "뉴펀들랜드"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "니아메"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "니제르"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "누악쇼트"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "모리타니아"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "누메아"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "뉴칼레도니아"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "노보쿠즈네츠크"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "노보시비르스크"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "누쿠알로파"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "통가"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "누크"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "그린란드"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "옴스크"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "오사카"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "일본"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "오타와"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "와가두구"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "부르키나파소"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "파고파고"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "사모아독립국"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "팔레르모"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "파나마시티"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "파나마"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "파라마리보"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "수리남"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "파리"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "프랑스"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "페름"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "퍼스"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "페트로파블로프스크-캄차스키"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "필라델피아"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "프놈펜"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "캄보디아"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "피닉스"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "포드고리차"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "몬테네그로"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "폰타델가다"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "포트루이스"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "모리셔스"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "포르토프랭스"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "아이티"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "포틀랜드"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "프라하"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "체코"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "평양"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "북한"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "키토"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "라바트"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "양곤"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "미얀마"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "헤시피"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "리자이나"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "레이캬비크"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "아이슬란드"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "리가"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "라트비아"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "리우데자네이루"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "생드니"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "레위니옹 섬"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "사마라"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "샌안토니오"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "샌디에이고"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "샌프란시스코"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "산호세"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "코스타리카"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "산후안"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "푸에르토리코"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "산마리노"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "산살바도르"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "엘살바도르"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "사나"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "예멘"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "산티아고"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "산토도밍고"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "도미니카 공화국"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "상파울루"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "시애틀"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "서울"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "대한민국"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "상하이"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "선전"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "싱가포르"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "싱가포르"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "스코페"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "마케도니아"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "소피아"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "불가리아"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "세인트존스"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "앤티가 바부다"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "스톡홀름"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "스웨덴"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "수바"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "피지"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "피지"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "시드니"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "타히티"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "프랑스령 폴리네시아"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "타이베이"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "타이완"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "탈린"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "에스토니아"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "타라와"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "키리바시"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "타슈켄트"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "우즈베키스탄"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "트빌리시"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "그루지아"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "테구시갈파"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "온두라스"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "테헤란"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "이란"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "호치민 시"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "세틀먼트"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "영국령 버진 제도"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "톈진"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "티후아나"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "도쿄"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "토론토"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "트레"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "트리폴리"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "리비아"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "튀니스"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "튀니지"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "투린"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "우파"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "바시키리야"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "울란바토르"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "파두츠"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "리히텐슈타인"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "발레타"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "말타"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "밴쿠버"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "베로나"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "빅토리아"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "세이셸"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "비엔나"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "오스트리아"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "빌니우스"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "리투아니아"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "블라디보스토크"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "볼고그라드"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "세인트피터즈버그"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "바르샤바"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "폴란드"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "워싱턴 DC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "웰링턴"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "위니펙"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "야쿠트"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "야무수크로"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "야운데"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "예카테린부르크"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "예레반"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "아르메니아"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "유즈노사할린스크"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "자그레브"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "크로아티아"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "취리히"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "내보내는 중..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "가져오는 중..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "가져오기가 완료되었습니다"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "내보냈습니다"
+
diff --git a/po/nl_NL.po b/po/nl_NL.po
new file mode 100755 (executable)
index 0000000..7ede349
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "Bijvoegen"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "Notitie"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "Gegevens"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Geen resultaten gevonden"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Maandelijks"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Alle agenda-items"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Voor"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "voor"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Dagelijks"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dag"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Eindtijd"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Maandelijks"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Maand"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Begintijd"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Tik om locatie in te geven"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Tik om opmerking in te geven"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Tik om titel in te voeren"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Maand"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Week"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Wekelijks"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Jaarlijks"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tik om deelnemer in te geven"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "W"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Hele dag"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Standaard account"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Verzendopties"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Kaart"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "Titel"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exporteren"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Agenda synchroniseren"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Gebeurtenissen"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Zondag"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Maandag"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Eerste dag van de week"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Geen locatie geselecteerd"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Gebeurtenis verwijderen"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Berichten verzenden aan deelnemers?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Deelnemers"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Op tijd"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Agenda's"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Geen agenda's"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lijst"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Alleen deze gebeurtenis"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Alle terugkerende agenda-items"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Geen titel"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Tijdzone vergrendelen"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Tijdzone"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "uur"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Herhalen tot"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "keer"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Deelnemer"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Gekoppelde agenda"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefoonagenda"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Dagoverzicht"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Weekweergave"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "jaar"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Herhalen"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Kan locatie niet vinden"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Locatie"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dag"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "Abidjan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "Abu Dhabi"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "Verenigde Arabische Emiraten"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "Accra"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "Ghana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "Addis Ababa"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "Ethiopië"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "Adelaide"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "Australië"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "Alaska"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "VS"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "Ivoorkust"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "Algiers"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "Algerije"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "Alma Ata"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "Kazachstan"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "Ambon"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "Indonesië"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "Amman"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "Jordanië"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "Amsterdam"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "Nederland"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "Anadyr"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "Rusland"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "Anchorage"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "Ankara"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "Turkije"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "Antananarivo"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "MADAGASCAR"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "Ashgabat"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "Turkmenistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "Asmera"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "Eritrea"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "Astana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "Asuncion"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "Paraguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "Athene"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "Griekenland"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "Auckland"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "Nieuw-Zeeland"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "Austin"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "Azoren"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "Portugal"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "Bagdad"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "Irak"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "Baku"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "Azerbeidzjan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "Baltimore"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "Bamako"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "Mali"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "Bangkok"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "Thailand"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "Bangui"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "Centraal Afrikaanse Republiek"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "Barcelona"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "Spanje"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "Bari"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "Italië"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "Basse-Terre"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "Guadeloupe"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "Peking"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "China"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "Beirut"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "Libanon"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "Belgrado"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "Servië"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "Belize City"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "Belize"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "Berlijn"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "Duitsland"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "Bern"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "Zwitserland"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "Bishkek"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "Kirgizië"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "Guinee-Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "Bogota"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "Colombia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "Bologna"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "Boston                      "
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "Brasilia"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "Brazilië"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "Bratislava"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "Slowakije"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "Bridgetown"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "Barbados"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "Brisbane"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "Brussel"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "België"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "Boekarest"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "Roemenië"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "Boedapest"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "Hongarije"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "Buenos Aires"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "Argentinië"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "Caïro"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "Egypte"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "Calgary"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "Canada"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "Canarische eilanden"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "Canberra"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "Canton"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "Kaapstad"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "Republiek Zuid-Afrika"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "Caracas"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "Venezuela"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "Cardiff"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "Wales"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "Casablanca"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "Marokko"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "Catanzaro"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Opslaan in"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Geen gebeurtenissen"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Aanpassen"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Opslaan?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "Indeling wijzigen"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "Cayenne"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "Frans-Guyana"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "Charlotte"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "Charlotte Amalie"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "Verenigde Staten Maagdeneilanden"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "Chelyabinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "Chennai"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "India"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "Chicago"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "Chişinău"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "Moldavië"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "Chita"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "Cleveland"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "Colombo"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "Sri Lanka"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "Columbus"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "Conakry"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "Guinea"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "Kopenhagen"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "Denemarken"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "Cork"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "Ierland"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "Crotone"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "Dakar"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "Senegal"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "Dallas"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "Damascus"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "Syrië"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "Dar es Salaam"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "Tanzania"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "Darwin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "Denpasar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "Denver"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "Detroit"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "Dhaka"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "Bangladesh"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "Diego Garcia"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "Verenigd Koninkrijk"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "Djibouti"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "Djibouti"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "Doha"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "Qatar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "Douala"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "Kameroen"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "Dubai"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "Dublin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "Dushanbe"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "Tadzjikistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "Paaseiland"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "Chili"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "Edinburgh"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "Schotland"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "El Jadida"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "Florence"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "Fort-de-France"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "Martinique"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "Freetown"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "Sierra Leone"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "Gaborone"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "Botswana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "Galápagos eilanden"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "Ecuador"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "Genève"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "Genua"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "Georgetown"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "Guyana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "Grytviken"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "South Georgia"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "Guam"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "Guatemala City"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "Guatemala"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "Gustavia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "Sint-Bartholomeus"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "Halifax"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "Hamburger"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "Hanoi"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "Vietnam"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "Harare"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "Zimbabwe"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "Havana"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "Cuba"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "Hawaii"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "Helsinki"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "Finland"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "Hobart"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Agenda-items per week tonen"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Lay-out in maandweergave"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Agenda-items per dag tonen"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "Hong Kong"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "Honolulu"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "Houston"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "Hovd"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "Mongolië"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "Indianapolis"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "Irkoetsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "Islamabad"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "Pakistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "Istanboel"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "Izhevsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "Jakarta"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "Djedda"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "Saudi-Arabië"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "Jeruzalem"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "Israël"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "Johannesburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "Kabul"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "Afghanistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "Kaliningrad"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "Kamtsjatka"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "Kampala"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "Oeganda"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "Karachi"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "Kathmandu"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "Nepal"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "Chabarovsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "Kharkiv"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "Oekraïne"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "Khartoem"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "Soedan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "Kiev"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "Kingston"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "Jamaica"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "Kinshasa"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "Democratische Republiek Congo"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "Kolkata"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "Krasnojarsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "Kuala Lumpur"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "Maleisië"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "Koeweit"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "Los Angeles"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "La Paz"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "Bolivia"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "Lagos"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "Nigeria"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "Las Vegas"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "Lima"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "Peru"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "Lissabon"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "Ljubljana"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "Londen"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "Longhua"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "Louisville"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "Luanda"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "Angola"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "Lubumbashi"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "Lusaka"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "Zambia"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "Luxemburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "Lviv"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "Macau"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "Madrid"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "Magadan"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "Malabo"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "Equatoriaal Guinea"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "Male"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "Maldiven"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "Managua"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "Nicaragua"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "Manama"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "Bahrein"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "Manilla"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "Filipijnen"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "Maputo"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "Mozambique"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "Marigot"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "Saint Martin"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "Mazatlan"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "Mexico"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "Riyadh"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "Melbourne"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "Memphis"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "Messina"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "Mexico-stad"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "Miami"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "Mid-Atlantic"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "Midway Atoll"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "Milaan"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "Milwaukee"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "Minsk"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "Wit-Rusland"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "Mogadishu"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "Somalië"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "Monrovia"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "Liberia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "Montevideo"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "Uruguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "Montreal"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "Moskou"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "Mumbai"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "München"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "Muscat"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "Oman"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "Nairobi"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "Kenya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "Rome"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "Naters"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "Ndjamena"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "Napels"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "TSJAAD"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "Mecca"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "New Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "New York"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "Newfoundland"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "Niamey"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "NIGER"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "Nouakchott"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "MAURITANIË"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "Nouméa"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "Nieuw-Caledonië"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "Novokuznetsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "Novosibirsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "Nuku'alofa"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "Tonga"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "Nuuk"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "Groenland"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "Omsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "Osaka"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "Japan"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "Ottawa"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "Ouagadougou"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "Burkina Faso"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "Pago Pago"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "Onafhankelijke Staat Samoa"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "Palermo"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "Panama City"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "Panama"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "Paramaribo"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "Suriname"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "Parijs"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "Frankrijk"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "Perm"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "Perth"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "Petropavlovsk-Kamchatskiy"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "Philadelphia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "Phnom Penh"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "Cambodja"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "Phoenix"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "Podgorica"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "Montenegro"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "Ponta Delgada"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "Port Louis"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "MAURITIUS"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "Port-au-Prince"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "Haïti"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "Portland"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "Praag"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "Tsjechische Republiek"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "Pyongyang"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "Noord-Korea"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "QUITO"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "Rabat"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "Yangon"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "Burma"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "Recife"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "Regina"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "Reykjavík"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "IJsland"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "Riga"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "Letland"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "Rio de Janeiro"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "Saint-Denis"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "Reunion Island"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "Samara"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "San Antonio"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "San Diego"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "San Francisco"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "San Jose"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "Costa Rica"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "San Juan"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "Puerto Rico"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "San Marino"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "San Salvador"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "El Jadida"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "Sana'a"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "Jemen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "Santiago"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "Santo Domingo"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "Dominicaanse Republiek"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "Sao Paulo"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "Seattle"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "Seoel"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "Republiek Korea"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "Sjanghai"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "Shenzhen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "Singapore"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "Republiek Singapore"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "Skopje"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "MACEDONIË"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "Sofia"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "Bulgarije"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "St John's"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "Antigua en Barbuda"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "Stockholm"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "Zweden"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "Suva"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "Fiji"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "Republiek Fiji-eilanden"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "Sydney"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "Tahiti"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "Frans-Polynesië"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "Taipei"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "Taiwan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "Tallinn"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "Estland"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "Tarawa"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "Kiribati"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "Tasjkent"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "Oezbekistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "Tbilisi"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "Georgië"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "Tegucigalpa"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "Honduras"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "Teheran"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "Iran"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "Ho Chi Minhstad"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "The Settlement"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "Maagdeneilanden (Brits)"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "Tianjin"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "Tijuana"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "Tokio"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "Toronto"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "Tréhet"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "Tripoli"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "Libië"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "Tunis"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "Tunesië"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "Turin"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "Ufa"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "Bashkiriya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "Ulan Bator"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "Vaduz"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "Liechtenstein"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "Valletta"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "Malta"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "Vancouver"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "Verona"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "Victoria"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "Seychellen"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "Wenen"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "Oostenrijk"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "Vilnius"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "Litouwen"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "Vladivostok"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "Volgograd"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "St. Petersburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "Warschau"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "Polen"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "Washington DC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "Wellington"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "Winnipeg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "Jakoetsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "Yamusoukro"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "Yaounde"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "Jekaterinenburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "Yerevan"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "Armenië"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "Yuzhno-Sakhalinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "Zagreb"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "Kroatië"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "Zürich"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exporteren..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importeren..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Geïmporteerd"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Geëxporteerd"
+
diff --git a/po/pt_PT.po b/po/pt_PT.po
new file mode 100755 (executable)
index 0000000..c99aab4
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "Anexar"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "Nota"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nenhuns resultados encontrados"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensalmente"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Todas as agendas"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Antes"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "antes"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Diariamente"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dia"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Hora de fim"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensalmente"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mês"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Hora de início"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Toque para introduzir localização"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Toque para introduzir nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Toque para introduzir título"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mês"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semana"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Semanalmente"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Anualmente"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tocar para introduzir participante"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Todo o dia"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Conta padrão"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opções de envio"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "Título"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportar"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincronização da agenda"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Eventos"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Segunda-feira"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primeiro dia da semana"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Sem localização seleccionada"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Eliminar evento"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Enviar mensagens aos participantes?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participantes"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Na hora"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Agendas"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Nenhumas agendas"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Apenas este evento"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Todos os eventos de repetição"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sem título"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Bloquear fuso horário"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Fuso horário"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hora"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repetir até"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "vezes"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participante"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Agenda ligada"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Agenda do telefone"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vista diária"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vista semanal"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Ano"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repetir"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Impossível encontrar localização"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Localização"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dia"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "Abidjan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "Abu Dhabi"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "Emiratos Árabes Unidos"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "Accra"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "Gana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "Adis Abeba"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "Etiópia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "Adelaide"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "Austrália"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "Alasca"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "EUA"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "Costa do Marfim"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "Argel"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "Argélia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "Almaty"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "Cazaquistão"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "Ambon"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "Indonésia"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "Amã"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "Jordânia"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "Amesterdão"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "Holanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "Anadyr"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "Rússia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "Âncora"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "Ancara"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "Turquia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "Antananarivo"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "MADAGÁSCAR"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "Ashkhabad"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "Turquemenistão"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "Asmera"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "Eritreia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "Astana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "Asunción"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "Paraguai"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "Atenas"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "Greece"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "Auckland"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "Nova Zelândia"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "Austin"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "Açores"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "Portugal"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "Bagdad"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "Iraque"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "Baku"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "Azerbaijão"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "Baltimore"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "Bamako"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "Mali"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "Banguecoque"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "Tailândia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "Bangui"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "República Central Africana"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "Barcelona"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "Espanha"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "Bari"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "Italy"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "Basse-Terre"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "Guadalupe"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "Pequim"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "China"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "Beirute"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "Líbano"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "Belgrado"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "Sérvia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "Cidade de Belize"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "Belize"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "Berlim"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "Alemanha"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "Berna"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "Suíça"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "Bishkek"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "Quirguizistão"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "Guiné-Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "Bogotá"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "Colômbia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "Bolonha"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "Boston"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "Brasília"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "Brasil"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "Bratislava"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "Eslováquia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "Bridgetown"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "Barbados"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "Brisbane"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "Bruxelas"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "Bélgica"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "Bucareste"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "Roménia"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "Budapeste"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "Hungria"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "Buenos Aires"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "Argentina"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "Cairo"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "Egipto"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "Calgary"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "Canadá"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "Ilhas Canárias"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "Camberra"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "Cantão"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "Cidade do Cabo"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "República da África do Sul"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "Caracas"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "Venezuela"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "Cardiff"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "País de Gales"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "Casablanca"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "Marrocos"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "Catanzaro"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Guardar em"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nenhuns eventos"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalizar"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Guardar?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "Reordenar"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "Caiena"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "Guiana Francesa"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "Charlotte"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "Charlotte Amalie"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "Ilhas Virgens dos Estados Unidos"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "Chelyabinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "Chennai"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "Índia"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "Chicago"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "Chisinau"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "Moldova"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "Chita"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "Cleveland"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "Colombo"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "Sri Lanka"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "Columbus"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "Conakry"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "Guiné"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "Copenhaga"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "Dinamarca"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "Cork"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "Irlanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "Crotone"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "Dakar"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "Senegal"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "Dallas"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "Damasco"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "Síria"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "Dar es Salaam"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "Tanzânia"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "Darwin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "Deli"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "Denpasar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "Denver"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "Detroit"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "Dacca"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "Bangladesh"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "Diego Garcia"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "Reino Unido"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "Jibuti"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "Jibuti"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "Doha"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "Qatar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "Douala"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "Camarões"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "Dubai"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "Dublin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "Dushanbe"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "Tajiquistão"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "Ilha da Páscoa"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "Chile"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "Edimburgo"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "Escócia"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "El Paso"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "Florença"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "Fort-de-France"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "Martinica"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "Freetown"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "Serra Leoa"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "Gaborone"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "Botswana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "Ilhas Galápagos"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "Equador"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "Genebra"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "Génova"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "Georgetown"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "Guiana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "Grytviken"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "Geórgia do Sul"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "Guam"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "Cidade da Guatemala"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "Guatemala"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "Gustavia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "Saint Barthélemy"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "Halifax"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "Hamburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "Hanoi"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "Vietname"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "Harare"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "Zimbabué"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "Havana"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "Cuba"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "Havai"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "Helsínquia"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "Finlândia"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "Hobart"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Mostrar eventos por semana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Disposição em vista mensal"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Mostrar eventos por dia"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "Hong Kong"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "Honolulu"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "Houston"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "Hovd"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "Mongólia"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "Indianapolis"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "Irkutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "Islamabad"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "Paquistão"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "Istambul"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "Izhevsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "Jacarta"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "Jeddah"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "Arábia Saudita"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "Jerusalém"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "Israel"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "Joanesburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "Kabul"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "Afeganistão"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "Kaliningrado"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "Kamtchatka"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "Kampala"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "Uganda"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "Carachi"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "Kathmandu"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "Nepal"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "Khabarovsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "Kharkiv"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "Ucrânia"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "Cartum"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "Sudão"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "Kiev"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "Kingston"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "Jamaica"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "Kinshasa"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "República Democrática do Congo"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "Calcutá"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "Krasnoyarsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "Kuala Lumpur"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "Malásia"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "Kuwait"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "Los Angeles"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "La Paz"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "Bolívia"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "Lagos"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "Nigéria"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "Las Vegas"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "Lima"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "Peru"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "Lisboa"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "Liubliana"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "Londres"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "Longhua"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "Louisville"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "Luanda"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "Angola"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "Lubumbashi"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "Lusaka"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "Zâmbia"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "Luxemburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "Lviv"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "Macau"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "Madrid"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "Magadã"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "Malabo"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "Guiné Equatorial"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "Malé"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "Maldivas"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "Manágua"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "Nicarágua"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "Manama"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "Bahrain"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "Manila"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "Filipinas"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "Maputo"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "Moçambique"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "Marigot"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "Saint-Martin"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "Mazatlan"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "México"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "Riade"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "Melbourne"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "Memphis"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "Messina"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "Cidade do México"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "Miami"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "Centro-Atlântico"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "Atol de Midway"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "Milão"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "Milwaukee"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "Minsk"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "Bielorrússia"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "Mogadishu"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "Somália"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "Monróvia"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "Libéria"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "Montevideu"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "Uruguai"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "Montreal"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "Moscovo"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "Mumbai"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "Munique"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "Mascate"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "Omã"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "Nairobi"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "Quénia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "Roma"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "Naters"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "N'Djamena"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "Nápoles"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "TCHADE"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "Meca"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "Nova Deli"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "Nova Iorque"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "Terra Nova"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "Niamey"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "NÍGER"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "Nouakchott"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "MAURITÂNIA"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "Nouméa"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "Nova Caledónia"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "Novokuznetsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "Novosibirsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "Nuku'alofa"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "Tonga"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "Nuuk"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "Gronelândia"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "Omsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "Osaka"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "Japão"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "Ottawa"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "Ouagadougou"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "Burkina Faso"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "Pago Pago"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "Estado Independente de Samoa"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "Palermo"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "Cidade do Panamá"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "Panamá"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "Paramaribo"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "Suriname"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "Paris"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "France"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "Perm"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "Perth"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "Petropavlovsk-Kamchatskiy"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "Filadélfia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "Phnom Penh"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "Camboja"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "Phoenix"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "Podgorica"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "Montenegro"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "Ponta Delgada"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "Port Louis"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "MAURÍCIAS"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "Port-au-Prince"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "Haiti"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "Portland"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "Praga"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "República Checa"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "Pyongyang"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "Coreia do Norte"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "Quito"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "Rabat"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "Yangon"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "Burma"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "Recife"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "Regina"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "Reiquiavique"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "Islândia"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "Riga"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "Letónia"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "Rio De Janeiro"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "Saint-Denis"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "Ilha Reunião"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "Samara"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "San Antonio"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "San Diego"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "São Francisco"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "San José"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "Costa Rica"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "San Juan"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "Porto Rico"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "São Marinho"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "São Salvador"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "El Salvador"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "Sana"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "Iémen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "Santiago"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "Santo Domingo"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "República Dominicana"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "São Paulo"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "Seattle"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "Seul"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "República da Coreia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "Xangai"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "Shenzhen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "Singapura"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "República de Singapura"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "Skopje"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "MACEDÓNIA"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "Sofia"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "Bulgária"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "St. John's"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "Antígua e Barbuda"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "Estocolmo"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "Suécia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "Suva"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "Fiji"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "República das Ilhas Fiji"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "Sydney"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "Taiti"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "Polinésia Francesa"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "Taipei"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "Taiwan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "Talin"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "Estónia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "Tarawa"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "Quiribati"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "Tashkent"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "Uzbequistão"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "Tbilissi"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "Geórgia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "Tegucigalpa"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "Honduras"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "Teerão"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "Irão"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "Ho Chi Minh City"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "The Settlement"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "Ilhas Virgens Britânicas"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "Tientsin"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "Tijuana"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "Tóquio"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "Toronto"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "Tréhet"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "Tripoli"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "Líbia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "Tunis"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "Tunísia"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "Turim"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "Ufa"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "Bashkiriya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "Ulan Bator"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "Vaduz"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "Liechtenstein"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "La Valeta"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "Malta"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "Vancouver"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "Verona"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "Victória"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "Seicheles"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "Viena"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "Áustria"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "Vilnius"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "Lituânia"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "Vladivostoque"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "Volgogrado"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "São Petersburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "Varsóvia"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "Polónia"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "Washington DC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "Wellington"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "Winnipeg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "Yakutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "Yamusoukro"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "Yaounde"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "Yekaterinburgo"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "Ierevan"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "Arménia"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "Yuzhno-Sakhalinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "Zagreb"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "Croácia"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "Zurique"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "A exportar..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "A importar..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importados"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportado"
+
diff --git a/po/ru_RU.po b/po/ru_RU.po
new file mode 100755 (executable)
index 0000000..176f500
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "Вложить"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "Заметка"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "Свойства"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Ничего не найдено"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Ежемесячно"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Весь календарь"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "За"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "за"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Ежедневно"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "День"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Время окончания"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Ежемесячно"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Месяц"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Время начала"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Нажмите для ввода места"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Нажмите для ввода заметки"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Нажмите для ввода названия"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Месяц"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Неделя"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Еженедельно"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Ежегодно"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Нажмите для ввода участника"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "Н"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Весь день"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "неделя"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Уч. зап. по умолч."
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Параметры отправки"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Карта"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "Название"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Экспорт"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Синхронизация календаря"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "События"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Воскресенье"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Понедельник"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Первый день недели"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Местоположение не выбрано"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Удалить событие"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Отправить сообщения участникам?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Участники"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Время включения"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Календари"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Нет календарей"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Список файлов"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Только это событие"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Все повторяющиеся события"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Нет названия"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Фикс. часовой пояс"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Часовой пояс"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "час"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Повторять до"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "раз(а)"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Участник"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Связанный календарь"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Календарь телефона"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "День"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Неделя"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Год"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Повтор"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Невозможно найти местоположение"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Расположение"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "день"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "неделя"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "Абиджан"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "Абу-Даби"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "Объединенные Арабские Эмираты"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "Аккра"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "Гана"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "Аддис-Абеба"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "Эфиопия"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "Аделаида"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "Австралия"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "Аляска"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "США"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "Кот-д'Ивуар"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "Алжир"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "Алжир"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "Алматы"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "Казахстан"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "Амбон"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "Индонезия"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "Амман"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "Иордан"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "Амстердам"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "Нидерланды"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "Анадырь"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "Россия"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "Анкоридж"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "Анкара"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "Турция"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "Антананариву"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "Мадагаскар"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "Ашхабад"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "Туркменистан"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "Асмара"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "Эритрея"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "Астана"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "Асунсьон"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "Парагвай"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "Афины"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "Греция"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "Окленд"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "Новая Зеландия"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "Остин"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "Азорские острова"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "Португалия"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "Багдад"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "Ирак"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "Баку"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "Азербайджан"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "Балтимор"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "Бамако"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "Мали"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "Бангкок"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "Таиланд"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "Банги"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "Центрально-Африканская Республика"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "Барселона"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "Испания"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "Бари"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "Италия"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "Бас-Тер"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "Гваделупа"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "Пекин"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "Китай"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "Бейрут"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "Ливан"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "Белград"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "Сербия"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "Белиз (город)"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "Белиз"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "Берлин"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "Германия"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "Берн"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "Швейцария"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "Бишкек"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "Киргизия"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "Бисау"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "Гвинея-Бисау"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "Богота"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "Колумбия"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "Болонья"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "Бостон"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "Бразилиа"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "Бразилия"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "Братислава"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "Словакия"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "Бриджтаун"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "Барбадос"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "Брисбен"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "Брюссель"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "Бельгия"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "Бухарест"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "Румыния"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "Будапешт"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "Венгрия"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "Буэнос-Айрес"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "Аргентина"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "Каир"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "Египет"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "Калгари"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "Канада"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "Канарские острова"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "Канберра"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "Кантон"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "Кейптаун"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "Южно-Африканская Республика"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "Каракас"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "Венесуэла"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "Кардифф"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "Уэльс"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "Касабланка"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "Марокко"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "Катандзаро"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Сохранить в"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Нет событий"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Настроить"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Сохранить?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "Изменить порядок"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "Кайенна"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "Французская Гвиана"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "Шарлотт"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "Шарлотта-Амалия"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "Виргинские острова (США)"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "Челябинск"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "Ченнай"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "Индия"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "Чикаго"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "Кишинёв"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "Молдова"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "Чита"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "Кливленд"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "Коломбо"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "Шри-Ланка"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "Колумбус"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "Конакри"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "Гвинея"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "Копенгаген"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "Дания"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "Корк"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "Ирландия"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "Кротоне"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "Дакар"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "Сенегал"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "Даллас"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "Дамаск"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "Сирия"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "Дар-эс-Салам"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "Танзания"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "Дарвин"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "Дели"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "Дэнпасар"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "Денвер"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "Детройт"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "Дакка"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "Бангладеш"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "Диего-Гарсия"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "Великобритания"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "Джибути"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "Джибути"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "Доха"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "Катар"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "Дуала"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "Камерун"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "Дубай"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "Дублин"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "Душанбе"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "Таджикистан"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "Остров Пасхи"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "Чили"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "Эдинбург"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "Шотландия"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "Эль-Пасо"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "Флоренция"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "Фор-де-Франс"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "Мартиника"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "Фритаун"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "Сьерра-Леоне"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "Габороне"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "Ботсвана"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "Галапагосские острова"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "Эквадор"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "Женева"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "Генуя"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "Джорджтаун"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "Гайана"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "Грютвикен"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "Южная Георгия"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "Гуам"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "Гватемала"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "Гватемала"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "Густавия"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "Сен-Бартельми"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "Галифакс"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "Гамбург"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "Ханой"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "Вьетнам"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "Хараре"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "Зимбабве"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "Гавана"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "Куба"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "Гавайи"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "Хельсинки"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "Финляндия"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "Хобарт"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Показать события по неделям"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Макет для просмотра по месяцам"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Показать события по дням"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "Гонконг"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "Гонолулу"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "Хьюстон"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "Ховд"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "Монголия"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "Индианаполис"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "Иркутск"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "Исламабад"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "Пакистан"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "Стамбул"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "Ижевск"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "Джакарта"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "Джедда"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "Саудовская Аравия"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "Иерусалим"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "Израиль"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "Йоханнесбург"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "Кабул"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "Афганистан"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "Калининград"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "Камчатка"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "Кампала"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "Уганда"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "Карачи"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "Катманду"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "Непал"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "Хабаровск"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "Харьков"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "Украина"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "Хартум"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "Судан"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "Киев"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "Кингстон"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "Ямайка"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "Киншаса"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "Демократическая Республика Конго"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "Калькутта"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "Красноярск"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "Куала-Лумпур"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "Малайзия"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "Кувейт"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "Лос-Анджелес"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "Ла-Пас"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "Боливия"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "Лагос"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "Нигерия"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "Лас-Вегас"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "Лима"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "Перу"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "Лиссабон"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "Любляна"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "Лондон"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "Лунхуа"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "Луисвилл"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "Луанда"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "Ангола"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "Лубумбаши"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "Лусака"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "Замбия"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "Люксембург"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "Львов"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "Макао"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "Мадрид"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "Магадан"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "Малабо"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "Экваториальная Гвинея"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "Мале"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "Мальдивы"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "Манагуа"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "Никарагуа"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "Манама"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "Бахрейн"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "Манила"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "Филиппины"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "Мапуто"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "Мозамбик"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "Мариго"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "Сен-Мартен"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "Мазатлан"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "Мексика"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "Эр-Рияд"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "Мельбурн"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "Мемфис"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "Мессина"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "Мехико"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "Майами"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "Средняя Атлантика"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "Острова Мидуэй"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "Милан"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "Милуоки"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "Минск"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "Беларусь"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "Могадишо"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "Сомали"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "Монровия"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "Либерия"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "Монтевидео"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "Уругвай"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "Монреаль"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "Москва"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "Мумбай"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "Мюнхен"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "Маскат"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "Оман"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "Найроби"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "Кения"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "Рим"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "Натерс"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "Нджамена"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "Неаполь"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "Чад"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "Мекка"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "Нью-Дели"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "Нью-Йорк"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "Ньюфаундленд"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "Ниамей"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "Нигер"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "Нуакшот"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "Мавритания"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "Нумеа"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "Новая Каледония"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "Новокузнецк"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "Новосибирск"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "Нукуалофа"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "Тонга"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "Нук"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "Гренландия"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "Омск"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "Осака"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "Япония"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "Оттава"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "Уагадугу"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "Буркина-Фасо"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "Паго-Паго"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "Независимое Государство Самоа"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "Палермо"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "Панама-Сити"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "Панама"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "Парамарибо"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "Суринам"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "Париж"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "Франция"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "Пермь"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "Перт"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "Петропавловск-Камчатский"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "Филадельфия"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "Пномпень"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "Камбоджа"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "Финикс"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "Подгорица"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "Черногория"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "Понта-Делгада"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "Порт-Луи"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "Маврикий"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "Порт-о-Пренс"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "Гаити"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "Портленд"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "Прага"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "Чешская Республика"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "Пхеньян"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "Северная Корея"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "Кито"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "Рабат"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "Янгон"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "Бирма"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "Ресифи"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "Регина"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "Рейкьявик"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "Исландия"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "Рига"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "Латвия"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "Рио-де-Жанейро"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "Сен-Дени"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "Реюньон"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "Самара"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "Сан-Антонио"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "Сан-Диего"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "Сан-Франциско"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "Сан-Хосе"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "Коста-Рика"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "Сан-Хуан"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "Пуэрто-Рико"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "Сан-Марино"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "Сан-Сальвадор"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "Сальвадор"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "Сана"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "Йемен"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "Сантьяго"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "Санто-Доминго"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "Доминиканская Республика"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "Сан-Паулу"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "Сиэтл"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "Сеул"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "Республика Корея"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "Шанхай"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "Шэньчжэнь"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "Сингапур"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "Республика Сингапур"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "Скопье"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "Македония"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "София"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "Болгария"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "Сент-Джонс"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "Антигуа и Барбуда"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "Стокгольм"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "Швеция"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "Сува"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "Фиджи"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "Республика Островов Фиджи"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "Сидней"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "Таити"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "Французская Полинезия"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "Тайбэй"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "Тайвань"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "Таллин"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "Эстония"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "Тарава"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "Кирибати"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "Ташкент"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "Узбекистан"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "Тбилиси"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "Грузия"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "Тегусигальпа"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "Гондурас"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "Тегеран"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "Иран"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "Хошимин"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "Сетлмент"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "Британские Виргинские острова"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "Тяньцзинь"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "Тиуана"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "Токио"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "Торонто"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "Трее"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "Триполи"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "Ливия"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "Тунис"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "Тунис"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "Турин"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "Уфа"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "Башкирия"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "Улан-Батор"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "Вадуц"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "Лихтенштейн"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "Валлетта"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "Мальта"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "Ванкувер"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "Верона"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "Виктория"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "Сейшельские острова"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "Вена"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "Австрия"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "Вильнюс"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "Литва"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "Владивосток"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "Волгоград"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "Санкт-Петербург"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "Варшава"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "Польша"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "Вашингтон"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "Веллингтон"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "Виннипег"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "Якутск"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "Ямусукро"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "Яунде"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "Екатеринбург"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "Ереван"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "Армения"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "Южно-Сахалинск"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "Загреб"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "Хорватия"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "Цюрих"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Экспорт..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Импорт..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Импортировано"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Экспортировано"
+
diff --git a/po/tr_TR.po b/po/tr_TR.po
new file mode 100755 (executable)
index 0000000..f50d092
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "Ekle"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "Not"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "Ayrıntılar"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Sonuç bulunamadı"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Aylık"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Tüm takvimler"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Önce"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "Önce"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Günlük"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Gün"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Bitiş saati"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Aylık"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Ay"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Başlangıç saati"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Konum girmek için dokun"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Not girmek için dokun"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Başlık girmek için dokun"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Ay"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Hafta"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Haftalık"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Yıllık"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Katılımcı girmek için dokun"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "H"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Gün boyu"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "Hafta"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Varsayılan hesap"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Gönderme seçenekleri"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Harita"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "Başlık"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Dışarı aktar"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Takvim senkr"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Olaylar"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Pazar"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Pazartesi"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Haftanın ilk günü"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Konum seçilmedi"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Olayı sil"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Mesajlar katılımcılara gönderilsin mi?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Katılımcılar"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Zamanında"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Takvimler"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Takvim yok"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Listele"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Sadece bu olay"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Tüm tekrarlanan olaylar"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Başlık yok"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Saat dilimini kilitle"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Saat dilimi"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "Saat"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Son tekrarlama"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "defa"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Katılımcı"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Bağlı takvim"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefon takvimi"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Günlük görünüm"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Haftalık görünüm"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Yıl"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Tekrar"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Konum bulunamadı"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Konum"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "Gün"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "Hafta"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "Abidjan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "Abu Dabi"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "Birleşik Arap Emirlikleri"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "Accra"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "Gana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "Addis Ababa"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "Etiyopya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "Adelaide"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "Avustralya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "Alaska"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "ABD"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "Fildişi Sahili"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "Cezayir"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "Cezayir"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "Alma Ata"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "Kazakistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "Ambon"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "Endonezya"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "Amman"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "Ürdün"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "Amsterdam"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "Hollanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "Anadyr"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "Rusya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "Anchorage"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "Ankara"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "Türkiye"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "Antananarivo"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "Madagaskar"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "Aşkabat"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "Türkmenistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "Asmara"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "Eritre"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "Astana"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "Asuncion"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "Paraguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "Atina"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "Yunanistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "Auckland"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "Yeni Zelanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "Austin"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "Azores"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "Portekiz"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "Bağdat"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "Irak"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "Bakü"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "Azerbaycan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "Baltimore"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "Bamako"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "Mali"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "Bangkok"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "Tayland"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "Bangui"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "Merkezi Afrika Cumhuriyeti"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "Barcelona"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "İspanya"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "Bari"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "İtalya"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "Basse-Terre"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "Guadeloupe"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "Pekin"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "Çin"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "Beyrut"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "Lübnan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "Belgrat"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "Sırbistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "Belize City"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "Belize"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "Berlin"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "Almanya"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "Bern"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "İsviçre"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "Bişkek"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "Kırgızistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "Bissau"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "Gine Bisav"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "Bogota"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "Kolombiya"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "Bologna"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "Boston                      "
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "Brezilya"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "Brezilya"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "Bratislava"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "Slovakya"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "Bridgetown"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "Barbados"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "Brisbane"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "Brüksel"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "Belçika"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "Bükreş"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "Romanya"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "Budapeşte"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "Macaristan"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "Buenos Aires"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "Arjantin"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "Kahire"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "Mısır"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "Calgary"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "Kanada"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "Kanarya Adaları"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "Canberra"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "Canton"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "Cape Town"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "Güney Afrika Cumhuriyeti"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "Venezuela"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "Venezuella"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "Cardiff"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "Galler"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "Casablanca"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "Morocco"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "Catanzaro"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Kayıt yeri"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Olay yok"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Kişiselleştir"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Kaydet?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "Yeniden düzenle"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "Cayenne"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "Fransız Guyanası"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "Charlotte"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "Charlotte Amalie"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "ABD Virgin Adaları"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "Chelyabinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "Chennai"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "Hindistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "Chicago"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "Chisinau"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "Moldova"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "Çita"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "Cleveland"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "Kolombo"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "Sri Lanka"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "Columbus"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "Conakry"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "Gine"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "Kopenhag"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "Danimarka"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "Cork"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "İrlanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "Crotone"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "Dakar"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "Senegal"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "Dallas"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "Damascus"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "Suriye"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "Dar üs Selam"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "Tanzanya"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "Darwin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "Denpasar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "Denver"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "Detroit"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "Dakka"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "Bangladeş"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "Diego Garcia"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "İngiltere"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "Cibuti"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "Cibuti"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "Doha"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "Katar"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "Douala"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "Kamerun"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "Dubai"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "Dublin"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "Duşanbe"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "Tacikistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "Easter Adası"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "Şili"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "Edinburgh"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "İskoçya"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "El Paso"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "Floransa"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "Fort-de-France"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "Martinique"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "Freetown"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "Sierra Leone"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "Gaborone"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "Botswana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "Galapagos Adaları"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "Ekvador"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "Cenevre"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "Genoa"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "Georgetown"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "Guyana"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "Grytviken"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "Güney Georgia"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "Guam"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "Guatemala"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "Guatemala"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "Gustavia"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "Saint Barthelemy"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "Halifax"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "Hamburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "Hanoi"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "Vietnam"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "Harare"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "Zimbabwe"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "Havana"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "Küba"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "Hawaii"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "Helsinki"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "Finlandiya"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "Hobart"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Etkinlikleri haftalara göre göster"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Ay görünümü düzeni"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Etkinlikleri günlere göre göster"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "Hong Kong"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "Honolulu"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "Houston"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "Hovd"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "Moğolistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "İndianapolis"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "Irkutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "Islamabad"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "Pakistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "İstanbul"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "Izhevsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "Jakarta"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "Cidde"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "Suudi Arabistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "Kudüs"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "İsrail"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "Johannesburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "Kabil"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "Afganistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "Kaliningrad"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "Kamchatka"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "Kampala"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "Uganda"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "Karaçi"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "Kathmandu"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "Nepal"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "Khabarovsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "Kharkiv"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "Ukrayna"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "Khartoum"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "Sudan"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "Kiev"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "Kingston"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "Jamaika"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "Kinshasa"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "Kongo Demokratik Cumhuriyeti"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "Kalküta"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "Krasnoyarsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "Kuala Lumpur"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "Malezya"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "Kuveyt"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "Los Angeles"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "La Paz"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "Bolivya"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "Lagos"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "Nijerya"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "Las Vegas"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "Lima"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "Peru"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "Lizbon"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "Ljubljana"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "Londra"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "Longhua"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "Louisville"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "Luanda"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "Angola"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "Lubumbashi"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "Lusaka"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "Zambiya"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "Lüksemburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "Lviv"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "Macau"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "Madrid"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "Magadan"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "Malabo"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "Ekvator Ginesi"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "Male"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "Maldivler"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "Managua"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "Nikaragua"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "Manama"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "Bahreyn"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "Manila"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "Filipinler"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "Maputo"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "Mozambik"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "Marigot"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "Saint Martin"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "Mazatlan"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "Meksika"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "Riyad"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "Melbourne"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "Memphis"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "Messina"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "Mexico City"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "Miami"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "Orta-Atlantic"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "Midway Atolü"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "Milano"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "Milwaukee"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "Minsk"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "Belarus"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "Mogadishu"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "Somali"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "Monrovia"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "Liberya"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "Montevideo"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "Uruguay"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "Montreal"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "Moskova"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "Mumbai"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "Münih"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "muscat"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "Oman"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "Nairobi"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "Kenya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "Roma"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "Naters"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "N'Djamena"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "Napoli"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "Chad"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "Mekke"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "Yeni Delhi"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "New York"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "Newfoundland"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "Niamey"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "Nijerya"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "Nouakchott"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "Moritanya"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "Noumea"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "New Kaledonya"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "Novokuznetsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "Novosibirsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "Nuku’alofa"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "Tonga"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "Nuuk"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "Grönland"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "Omsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "Osaka"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "Japonya"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "Ottawa"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "Ouagadougou"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "Burkina Faso"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "Pago Pago"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "Bağımsız Samoa Devleti"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "Palermo"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "Panama"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "Panama"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "Paramaribo"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "Surinam"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "Paris"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "Fransa"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "Perm"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "Perth"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "Petropavlovsk-Kamchatskiy"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "Philadelphia"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "Phnom Penh"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "Kamboçya"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "Phoenix"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "Podgorica"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "Karadağ"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "Ponta Delgada"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "Port Louis"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "Marityus"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "Port-au-Prince"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "Haiti"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "Portland"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "Prag"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "Çek Cumhuriyeti"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "Pyongyang"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "Kuzey Kore"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "Quito"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "Rabat"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "Yangon"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "Burma"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "Recife"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "Regina"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "Reykjavik"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "İzlanda"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "Riga"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "Letonya"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "Rio de Janeiro"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "Saint-Denis"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "Reunion Adası"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "Samara"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "San Antonio"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "San Diego"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "San Francisco"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "San Jose"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "Kosta Rika"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "San Juan"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "Porto Riko"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "San Marino"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "San Salvador"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "El Salvador"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "Sana’a"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "Yemen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "Santiago"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "Santo Domingo"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "Dominik Cumhuriyeti"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "Sao Paulo"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "Seattle"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "Seul"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "Kore Cumhuriyeti"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "Şangay"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "Shenzhen"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "Singapur"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "Singapur Cumhuriyeti"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "Üsküp"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "Makedonya"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "Sofya"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "Bulgaristan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "St. John's"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "Antigua ve Barbuda"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "Stockholm"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "İsveç"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "Suva"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "Fiji"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "Fiji Adaları Cumhuriyeti"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "Sidney"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "Tahiti"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "Fransız Polinezyası"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "Taipei"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "Tayvan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "Talin"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "Estonya"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "Tarawa"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "Kiribati"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "Taşkent"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "Özbekistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "Tiflis"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "Gürcistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "Tegucigalpa"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "Honduras"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "Tahran"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "İran"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "Ho Şi Min Kenti"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "The Settlement"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "İngiliz Virgin Adaları"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "Tianjin"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "Tijuana"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "Tokyo"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "Toronto"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "Tréhet"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "Tripoli"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "Libya"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "Tunus"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "Tunus"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "Turin"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "Ufa"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "Bashkiriya"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "Ulan Bator"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "Vaduz"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "Liechtenstein"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "Valletta"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "Malta"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "Vancouver"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "Verona"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "Victoria"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "Seyşel Adaları"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "Viyana"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "Avusturya"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "Vilnius"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "Litvanya"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "Vladivostok"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "Volgograd"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "St. Petersburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "Varşova"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "Polonya"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "Washington DC"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "Wellington"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "Winnipeg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "Yakutsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "Yamoussoukro"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "Yaounde"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "Yekaterinburg"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "Erivan"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "Ermenistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "Yuzhno-Sakhalinsk"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "Zagreb"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "Hırvatistan"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "Zürih"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Dışarı veriliyor..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Dışarıdan alınıyor..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Alındı"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Dışarı verildi"
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100755 (executable)
index 0000000..ced3590
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "附加"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "注释"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "详情"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "未找到结果"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "全部日历"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "提前"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "提前"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "每日"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "结束时间"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "开始时间"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "点击输入地点"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "点击输入说明"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "点击添加标题"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "周"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "每周"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "每年"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "点击输入参与者"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "周"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "全天"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "周"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "预置帐户"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "发送选项"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "地图"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "题目"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "输出"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "日历同步"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "事件"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "星期日"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "星期一"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "每周的第一天"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "未选择位置"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "删除事件"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "发送信息给参与者?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "参与者"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "准时"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "日历"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "无日历"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "列表"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "仅此事件"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "全部重复性事件"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "无标题"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "锁定时区"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "时区"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "小时"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "重复直到"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "次"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "参与人"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "链接的日历"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "手机日历"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "按日查看"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "按周查看"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "年"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "重复"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "无法找到位置"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "周"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "阿比让"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "阿布扎比"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "阿拉伯联合酋长国"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "阿克拉"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "加纳"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "亚的斯亚贝巴"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "埃塞俄比亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "阿德莱德"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "澳大利亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "阿拉斯加"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "美国"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "科特迪瓦"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "阿尔及尔"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "阿尔及利亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "阿拉木图"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "哈萨克斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "安汶"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "印度尼西亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "安曼"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "约旦"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "阿姆斯特丹"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "荷兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "阿纳德尔河"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "俄罗斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "安克雷奇"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "安卡拉"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "土耳其"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "安塔那利佛"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "马达加斯加"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "阿什哈巴德"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "土库曼斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "阿斯马拉"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "厄立特里亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "阿斯坦纳"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "亚松森"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "巴拉圭"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "雅典"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "希腊"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "奥克兰"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "新西兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "奥斯汀"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "亚述尔群岛"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "葡萄牙"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "巴格达"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "伊拉克"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "巴库"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "阿塞拜疆"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "巴尔的摩"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "巴马科"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "马里"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "曼谷"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "泰国"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "班吉"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "中非共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "巴塞罗那"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "西班牙"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "巴里"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "意大利"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "巴斯特尔"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "瓜德罗普岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "北京"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "中国"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "贝鲁特"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "黎巴嫩"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "贝尔格莱德"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "塞尔维亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "伯利兹城"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "伯利兹"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "柏林"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "德国"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "伯尔尼"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "瑞士"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "比什凯克"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "吉尔吉斯斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "比绍"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "几内亚比绍"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "波哥大"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "哥伦比亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "博洛尼亚"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "波士顿"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "巴西利亚"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "巴西"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "布拉迪斯拉发"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "斯洛伐克"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "布里奇顿"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "巴巴多斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "布里斯班"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "布鲁塞尔"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "比利时"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "布加勒斯特"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "罗马尼亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "布达佩斯"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "匈牙利"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "布宜诺斯艾利斯"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "阿根廷"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "开罗"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "埃及"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "卡尔加里"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "加拿大"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "加那利群岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "堪培拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "广州"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "开普敦"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "南非共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "加拉加斯"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "委内瑞拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "加的夫"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "威尔士"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "卡萨布兰卡"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "摩洛哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "卡坦扎罗"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "保存至"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "没有事件"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "自定义"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "存储?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "重新排序"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "卡宴"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "法属圭亚那"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "夏洛特市"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "夏洛特阿马利亚"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "美属维尔京群岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "车里雅宾斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "陈奈"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "印度"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "芝加哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "基希讷乌"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "摩尔多瓦"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "赤塔"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "克里夫兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "科伦坡"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "斯里兰卡"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "哥伦布"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "科纳克里"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "几内亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "哥本哈根"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "丹麦"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "科克"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "爱尔兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "克努托内意大利"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "达喀尔"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "塞内加尔"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "达拉斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "大马士革"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "叙利亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "达累斯萨拉姆"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "坦桑尼亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "达尔文"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "德里"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "登巴萨"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "丹佛"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "底特律"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "达卡"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "孟加拉国"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "迪戈加西亚岛"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "英国"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "吉布提"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "吉布提"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "多哈"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "卡塔尔"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "杜阿拉"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "喀麦隆"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "迪拜"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "都柏林"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "杜尚别"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "塔吉克斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "复活节岛"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "智利"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "爱丁堡"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "苏格兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "艾尔帕索"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "佛罗伦萨"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "法兰西堡"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "马提尼克"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "弗里敦"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "塞拉利昂"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "哈博罗内"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "博茨瓦那"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "加拉帕戈斯群岛"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "厄瓜多尔"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "日内瓦"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "热那亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "乔治敦"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "圭亚那"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "格雷特维根"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "南佐治亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "关岛"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "危地马拉市"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "危地马拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "古斯塔维亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "圣巴泰勒米岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "哈利法克斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "汉堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "河内"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "越南"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "哈拉雷"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "津巴布韦"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "哈瓦那"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "古巴"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "夏威夷"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "赫尔辛基芬"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "芬兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "霍巴特"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "按周显示事件"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "月视图布局"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "按日显示事件"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "香港"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "檀香山"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "休斯顿"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "科布"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "蒙古"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "印第安纳波利斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "伊尔库次克"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "伊斯兰堡"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "巴基斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "伊斯坦布尔"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "伊热夫斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "雅加达"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "吉达"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "沙特阿拉伯"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "耶路撒冷"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "以色列"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "约翰内斯堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "喀布尔"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "阿富汗"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "加里宁格勒"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "堪察加半岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "坎帕拉"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "乌干达"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "卡拉奇"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "加德满都"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "尼泊尔"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "哈巴罗夫斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "哈格岛"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "乌克兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "喀土穆"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "苏丹"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "基辅"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "金斯敦"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "牙买加"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "金沙萨"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "刚果民主共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "加尔各答"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "克拉斯诺亚尔斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "吉隆坡"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "马来西亚"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "科威特"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "洛杉矶"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "拉巴斯"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "玻利维亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "拉多斯"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "尼日利亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "拉斯维加斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "利马"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "秘鲁"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "里斯本"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "卢布尔雅那"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "伦敦"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "汕头市龙华"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "路易斯维尔"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "罗安达"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "安哥拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "卢本巴希"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "卢萨卡"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "赞比亚"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "卢森堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "利沃夫"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "澳门特别行政区"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "马德里"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "马加丹"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "马拉博"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "赤道几内亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "马累"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "马尔代夫"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "马那瓜"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "尼加拉瓜"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "麦纳麦"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "巴林"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "马尼拉"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "菲律宾"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "马普托"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "莫桑比克"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "马里戈特"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "圣马丁"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "马萨特兰"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "墨西哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "利雅得"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "墨尔本"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "孟菲斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "墨西拿"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "墨西哥城"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "迈阿密"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "中大西洋"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "中途岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "米兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "密尔沃基"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "明斯克"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "白俄罗斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "摩加迪沙"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "索马里"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "蒙罗维亚"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "利比里亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "蒙得维的亚"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "乌拉圭"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "蒙特利尔"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "莫斯科"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "孟买"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "慕尼黑"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "马斯喀特"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "阿曼"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "奈洛比"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "肯尼亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "罗马"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "那特斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "恩贾梅纳"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "那不勒斯"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "乍得"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "麦加"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "新德里"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "纽约"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "纽芬兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "尼亚美"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "尼日尔"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "努瓦克肖特"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "毛里塔尼亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "努美阿"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "新喀里多尼亚岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "新库兹涅茨克"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "新西伯利亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "努库阿洛法"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "汤加"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "努克"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "格陵兰岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "鄂木斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "大阪"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "日本"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "渥太华"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "瓦加杜古"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "布基纳法索"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "帕果-帕果"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "萨摩亚独立国"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "巴勒莫"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "巴拿马城"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "巴拿马"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "帕拉马里博"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "苏里南"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "巴黎"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "法国"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "彼尔姆"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "珀斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "彼得罗巴甫洛夫斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "费城"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "金边"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "柬埔寨"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "菲尼克斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "波德戈里察"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "黑山共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "蓬塔德尔加达"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "路易港"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "毛里求斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "太子港"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "海地"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "波特兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "布拉格"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "捷克共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "平壤"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "朝鲜"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "基多"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "拉巴特"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "仰光"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "缅甸"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "累西腓"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "里贾纳"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "雷克雅维克"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "冰岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "里加"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "拉脱维亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "里约热内卢"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "圣但尼"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "留尼汪岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "萨马拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "圣安东尼奥"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "圣迭戈"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "旧金山"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "圣何塞"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "哥斯达黎加"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "圣胡安"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "波多黎各"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "圣马力诺"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "圣萨尔瓦多"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "萨尔瓦多"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "萨拉"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "也门"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "圣地亚哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "圣多明各"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "多米尼加共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "圣保罗"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "西雅图"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "首尔"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "韩国"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "上海"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "深圳"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "新加坡"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "新加坡共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "斯科普里"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "马其顿"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "索非亚"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "保加利亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "圣约翰斯"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "安提瓜和巴布达"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "斯德哥尔摩"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "瑞典"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "苏瓦"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "斐济"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "斐济群岛共和国"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "悉尼"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "大溪地"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "法属波利尼西亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "台北"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "台湾"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "塔林"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "爱沙尼亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "塔拉瓦岛"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "基里巴斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "塔什干"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "乌兹别克斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "第比利斯"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "格鲁吉亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "特古西加尔巴"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "洪都拉斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "德黑兰"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "伊朗"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "胡志明市"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "塞特尔门特"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "英属维尔京群岛"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "天津"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "提华纳"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "东京"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "多伦多"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "特雷埃"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "的黎波里"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "利比亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "突尼斯"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "突尼斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "都灵"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "乌法"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "巴什噶尔"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "乌兰巴托"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "瓦杜兹"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "列支敦士登"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "瓦莱塔"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "马耳他"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "温哥华"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "维罗纳"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "维多利亚"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "塞舌尔"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "维也纳"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "奥地利"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "维尔纽斯"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "立陶宛"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "符拉迪斯托克"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "伏尔加格勒"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "圣彼得斯堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "华沙"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "波兰"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "华盛顿哥伦比亚特区"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "惠灵顿"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "温尼伯湖"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "雅库茨克"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "亚穆苏克罗"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "雅温德"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "叶卡特琳堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "埃里温"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "亚美尼亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "南萨哈林斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "萨格勒布"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "克罗地亚"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "苏黎世"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "导出中..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "导入中…"
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "已导入"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "已导出"
+
diff --git a/po/zh_HK.po b/po/zh_HK.po
new file mode 100755 (executable)
index 0000000..d959cae
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "附加"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "記事本"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "找不到結果"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "所有日曆"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "前"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "提前"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "每日"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "結束時間"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "開始時間"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "輕觸以輸入位置"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "輕觸以輸入備註"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "輕觸輸入主題"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "週"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "每週"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "每年"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "輕觸以輸入參與者"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "週"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "整天"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "週"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "預設帳戶"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "發送選項"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "地圖"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "標題"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "匯出"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "日曆同步"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "事件"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "星期日"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "星期一"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "星期的第一天"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "未選擇位置"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "刪除事件"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "發送訊息到參加者嗎?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "參與者"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "準時"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "日曆"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "無日曆"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "清單"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "只此事件"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "所有重複事件"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "無標題"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "鎖定時區"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "時區"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "小時"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "重複直至"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "時間"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "參與者"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "連結的日曆"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "手機日曆"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "按日檢視"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "按週檢視"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "年"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "重複"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "無法找到位置"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "週"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "阿比讓"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "阿布扎比"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "阿拉伯聯合酋長國"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "阿克拉"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "加納"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "阿迪斯阿貝巴"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "埃塞俄比亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "阿得萊德"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "澳洲"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "阿拉斯加"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "美國"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "科特迪瓦"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "阿爾及爾"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "阿爾及利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "阿拉木圖"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "哈薩克斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "安汶"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "印度尼西亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "安曼"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "約旦"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "阿姆斯特丹"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "荷蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "阿納德爾"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "俄羅斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "安克拉治"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "安卡拉"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "土耳其"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "安塔那那利佛"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "馬達加斯加"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "阿什哈巴德"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "土庫曼斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "阿斯馬拉"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "厄立特里亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "阿斯塔納"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "亞松森"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "巴拉圭"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "雅典"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "希臘"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "奧克蘭"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "新西蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "奧斯丁"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "亞述爾群島"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "葡萄牙"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "巴格達"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "伊拉克"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "巴庫"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "阿塞拜疆"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "巴爾的摩"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "巴馬科"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "馬里"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "曼谷"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "泰國"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "班基"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "中非共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "巴塞羅那"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "西班牙"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "巴里"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "意大利"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "巴斯特爾"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "哥德普洛"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "北京"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "中國"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "貝魯特"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "黎巴嫩"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "貝爾格萊德"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "塞爾維亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "伯利茲市"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "伯利茲"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "柏林"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "德國"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "伯爾尼"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "瑞士"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "比什凱克"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "吉爾吉斯斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "比紹"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "幾內亞比紹"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "波哥大"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "哥倫比亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "博洛尼亞"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "波士頓"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "巴西利亞"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "巴西"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "布拉迪斯拉發"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "斯洛伐克"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "布列治敦"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "巴巴多斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "布里斯班"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "布魯塞爾"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "比利時"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "布加勒斯特"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "羅馬尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "布達佩斯"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "匈牙利"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "布宜諾斯艾利斯"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "阿根廷"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "開羅"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "埃及"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "卡爾加里"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "加拿大"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "加那利群島"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "坎培拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "廣州"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "開普敦"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "南非"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "加拉加斯"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "委內瑞拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "加地夫"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "威爾斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "卡薩布蘭卡"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "摩洛哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "卡坦扎羅"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "儲存至"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "無事件"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "自訂"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "要儲存嗎?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "重新排序"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "開雲"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "法屬圭亞那"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "夏洛特"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "夏洛特阿馬利亞"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "美屬維爾京群島"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "車里雅賓斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "欽奈"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "印度"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "芝加哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "基希訥烏"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "摩爾多瓦"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "赤塔"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "克利夫蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "科倫坡"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "斯里蘭卡"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "哥倫布"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "科納克里"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "幾內亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "哥本哈根"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "丹麥"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "科克"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "愛爾蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "克羅托內"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "達喀爾"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "塞內加爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "達拉斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "大馬士革"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "敘利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "達累斯薩拉姆"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "坦桑尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "達爾文"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "德里"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "登巴薩"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "丹佛"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "底特律"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "達卡"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "孟加拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "迪戈加西亞島"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "英國"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "吉布提"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "吉布提"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "多哈"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "卡塔爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "杜阿拉"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "喀麥隆"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "迪拜"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "都柏林"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "杜尚别"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "塔吉克斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "伊斯特島"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "智利"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "愛丁堡"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "蘇格爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "埃爾帕索"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "佛羅倫薩"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "法蘭西堡"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "馬提尼克"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "自由城"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "塞拉利昂"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "哈博羅內"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "博茨瓦納"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "加拉帕戈斯群島"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "厄瓜多爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "日內瓦"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "熱那亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "喬治城"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "圭亞那"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "格力維肯"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "南喬治亞島"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "關島"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "危地馬拉市"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "危地馬拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "古斯塔維亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "聖巴泰勒米島"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "哈利法克斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "漢堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "河內"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "越南"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "哈拉雷"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "津巴布韋"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "哈瓦那"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "古巴"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "夏威夷"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "赫爾辛基"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "芬蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "霍巴特"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "按週顯示事件"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "按月份檢視配置"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "按日顯示事件"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "香港"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "檀香山"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "休斯頓"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "科布多"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "蒙古"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "印第安納波利斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "伊爾庫次克"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "伊斯蘭堡"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "巴基斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "伊斯坦布爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "伊熱夫斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "雅加達"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "吉達"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "沙特阿拉伯"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "耶路撒冷"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "以色列"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "約翰內斯堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "喀布爾"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "阿富汗"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "加里寧格勒"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "堪察加"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "坎帕拉"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "烏干達"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "卡拉奇"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "加德滿都"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "尼泊爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "哈巴羅夫斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "哈爾科夫"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "烏克蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "喀土穆"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "蘇丹"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "基輔"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "金斯頓"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "牙買加"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "金沙薩"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "剛果民主共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "加爾各答"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "克拉斯諾亞爾斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "吉隆坡"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "馬來西亞"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "科威特"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "洛杉磯"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "拉巴斯"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "玻利維亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "拉哥斯"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "尼日利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "拉斯維加斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "利馬"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "秘魯"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "里斯本"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "盧布爾雅那"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "倫敦"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "龍華"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "路易斯維爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "羅安達"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "安哥拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "盧本巴希"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "盧薩卡"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "贊比亞"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "盧森堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "利沃夫"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "澳門"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "馬德里"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "馬加丹"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "馬拉博"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "赤道畿內亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "馬累"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "馬爾代夫"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "馬拿瓜"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "尼加拉瓜"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "麥納瑪"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "巴林"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "馬尼拉"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "菲律賓"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "馬普托"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "莫桑比克"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "馬里戈特"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "聖馬爾坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "馬薩特蘭"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "墨西哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "利雅德"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "墨爾本"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "孟菲斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "墨西拿"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "墨西哥城"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "邁阿密"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "中大西洋"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "中途島"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "米蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "密爾沃基"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "明斯克"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "白俄羅斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "摩加迪休"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "索馬里"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "蒙羅維亞"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "利比里亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "蒙得維的亞"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "烏拉圭"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "蒙特利爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "莫斯科"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "孟買"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "慕尼黑"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "馬斯喀特"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "阿曼"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "奈洛比"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "肯尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "羅馬"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "納特斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "恩賈梅納"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "那不勒斯"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "乍得"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "麥加"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "新德里"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "紐約"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "紐芬蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "尼亞美"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "尼日爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "努瓦克肖特"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "毛里塔尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "努美阿"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "新喀里多尼亞群島"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "新庫茲涅茨克"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "新西伯利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "努庫阿洛法"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "湯加"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "努克"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "格陵蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "鄂木斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "大阪"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "日本"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "渥太華"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "瓦加杜古"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "布基納法索"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "帕果帕果"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "薩摩亞獨立國"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "巴勒莫"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "巴拿馬城"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "巴拿馬"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "巴拉馬利波"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "蘇利南"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "巴黎"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "法國"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "彼爾姆"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "珀斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "堪察加彼得羅巴甫洛夫斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "費城"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "金邊"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "柬埔寨"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "鳳凰城"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "波德戈里察"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "黑山共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "蓬塔德爾加達"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "路易港"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "毛里裘斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "太子港"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "海地"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "波特蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "布拉格"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "捷克共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "平壤"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "北韓"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "基多"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "拉巴特"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "仰光"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "緬甸"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "累西腓"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "里賈納"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "雷克雅未克"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "冰島"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "里加"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "拉脫維亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "里約熱內盧"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "聖但尼"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "留尼汪島"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "薩馬拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "聖安東尼奧"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "聖地牙哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "三藩市"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "聖何塞"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "哥斯達黎加"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "聖胡安"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "波多黎各"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "聖馬力諾"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "聖薩爾瓦多"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "薩爾瓦多"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "薩那"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "也門"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "聖地牙哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "聖多明各"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "多米尼加共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "聖保羅"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "西雅圖"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "首爾"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "韓國"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "上海"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "深圳"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "新加坡"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "新加坡共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "斯科普里"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "馬其頓"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "索非亞"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "保加利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "聖約翰斯"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "安地卡及巴布達"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "斯德哥爾摩"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "瑞典"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "蘇瓦"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "斐濟"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "斐濟"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "悉尼"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "大溪地"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "法屬玻利尼西亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "台北"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "台灣"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "塔林"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "愛沙尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "塔拉瓦"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "基里巴斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "塔什干"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "烏茲別克斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "第比利斯"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "格魯吉亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "特古西加爾巴"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "洪都拉斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "德黑蘭"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "伊朗"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "胡志明市"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "塞特爾門特"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "英屬維爾京群島"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "天津"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "蒂華納"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "東京"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "多倫多"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "特雷"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "的黎波里"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "利比亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "突尼斯"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "突尼西亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "都靈"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "烏法"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "巴什噶爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "烏蘭巴托"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "瓦杜茲"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "列支敦士登"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "瓦萊塔"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "馬耳他"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "溫哥華"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "維羅納"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "維多利亞"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "塞席爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "維也納"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "奧地利"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "維爾紐斯"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "立陶宛"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "海參崴"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "伏爾加格勒"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "聖彼德堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "華沙"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "波蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "華盛頓特區"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "威靈頓"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "溫尼伯"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "雅庫茨克"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "亞穆蘇克羅"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "雅溫得"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "葉卡捷琳堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "埃里溫"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "亞美尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "南薩哈林斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "薩格勒布"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "克羅地亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "蘇黎世"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "正在匯出..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "正在匯入..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "已匯入"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "已匯出"
+
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100755 (executable)
index 0000000..0e92a3b
--- /dev/null
@@ -0,0 +1,1632 @@
+msgid "IDS_COM_POP_ATTACH"
+msgstr "附件"
+
+msgid "IDS_COM_BODY_NOTE"
+msgstr "備註"
+
+msgid "IDS_COM_BODY_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "找不到結果"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "所有日曆"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "之前"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "之前"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "每日"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "結束時間"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "開始時間"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "輕觸輸入位置"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "輕觸輸入說明"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "輕觸輸入標題"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "週"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "每週"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "每年"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "輕觸輸入參與者"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "週"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "整天"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "週"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "預設帳號"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "傳送選項"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "地圖"
+
+msgid "IDS_COM_BODY_DETAILS_TITLE"
+msgstr "標題"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "匯出"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "日曆同步"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "活動"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "週日"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "週一"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "一週的第一天"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "沒有選擇地區"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "刪除活動"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "發送訊息到收件者?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "參與者"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "準時"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "日曆"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "無日曆"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "清單"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "僅此活動"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "所有重複事件"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "無標題"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "鎖定時區"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "時區"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "小時"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "重複到"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "時間"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "參與者"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "日曆已連結"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "手機日曆"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "按日檢視"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "按週檢視"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "年"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "重覆"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "找不到位置"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "天"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "週"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABIDJAN"
+msgstr "阿必尚"
+
+msgid "IDS_WCL_BODY_CITYNAME_ABUDHABI"
+msgstr "阿布達比"
+
+msgid "IDS_WCL_BODY_UNITED_ARAB_EMIRATES"
+msgstr "阿拉伯聯合大公國"
+
+msgid "IDS_WCL_BODY_CITYNAME_ACCRA"
+msgstr "阿克拉"
+
+msgid "IDS_WCL_BODY_GHANA"
+msgstr "迦納"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADDIS_ABABA"
+msgstr "阿地斯阿貝巴"
+
+msgid "IDS_WCL_BODY_ETHIOPIA"
+msgstr "衣索比亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ADELAIDE"
+msgstr "阿德雷得"
+
+msgid "IDS_WCL_BODY_AUSTRALIA"
+msgstr "澳大利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALASKA"
+msgstr "阿拉斯加"
+
+msgid "IDS_WCL_BODY_USA_M_COUNTRYNAME"
+msgstr "美國"
+
+msgid "IDS_WCL_BODY_COTE_DIVOIRE"
+msgstr "象牙海岸"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALGIERS"
+msgstr "阿爾及爾"
+
+msgid "IDS_WCL_BODY_ALGERIA"
+msgstr "阿爾及利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ALMATY"
+msgstr "阿拉木圖"
+
+msgid "IDS_WCL_BODY_KAZAKHSTAN"
+msgstr "哈薩克"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMBON"
+msgstr "安汶"
+
+msgid "IDS_WCL_BODY_INDONESIA"
+msgstr "印尼"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMMAN"
+msgstr "阿曼"
+
+msgid "IDS_WCL_BODY_JORDAN"
+msgstr "約旦"
+
+msgid "IDS_WCL_BODY_CITYNAME_AMSTERDAME"
+msgstr "阿姆斯特丹"
+
+msgid "IDS_WCL_BODY_NETHERLANDS"
+msgstr "荷蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANADYR"
+msgstr "阿納德爾"
+
+msgid "IDS_WCL_BODY_RUSSIA"
+msgstr "俄羅斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANCHORAGE"
+msgstr "安克拉治"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANKARA"
+msgstr "安卡拉"
+
+msgid "IDS_WCL_BODY_TURKEY"
+msgstr "土耳其"
+
+msgid "IDS_WCL_BODY_CITYNAME_ANTANANARIVO"
+msgstr "安塔那那利佛"
+
+msgid "IDS_WCL_BODY_MADAGASCAR"
+msgstr "馬達加斯加"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASHGABAT"
+msgstr "阿什哈巴德"
+
+msgid "IDS_WCL_BODY_TURKMENISTAN"
+msgstr "土庫曼"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASMARA"
+msgstr "阿斯馬拉"
+
+msgid "IDS_WCL_BODY_ERITREA"
+msgstr "厄立特里亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASTANA"
+msgstr "阿斯塔納"
+
+msgid "IDS_WCL_BODY_CITYNAME_ASUNCION"
+msgstr "亞松森"
+
+msgid "IDS_WCL_BODY_PARAGUAY"
+msgstr "巴拉圭"
+
+msgid "IDS_WCL_BODY_CITYNAME_ATHENS"
+msgstr "雅典"
+
+msgid "IDS_WCL_BODY_GREECE"
+msgstr "希臘"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUCKLAND"
+msgstr "奧克蘭"
+
+msgid "IDS_WCL_BODY_NEW_ZEALAND"
+msgstr "紐西蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_AUSTIN"
+msgstr "奧斯丁"
+
+msgid "IDS_WCL_BODY_CITYNAME_AZORES"
+msgstr "亞述爾群島"
+
+msgid "IDS_WCL_BODY_PORTUGAL"
+msgstr "葡萄牙"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAGHDAD"
+msgstr "巴格達"
+
+msgid "IDS_WCL_BODY_IRAQ"
+msgstr "伊拉克"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAKU"
+msgstr "巴庫"
+
+msgid "IDS_WCL_BODY_AZERBAIJAN"
+msgstr "亞塞拜然"
+
+msgid "IDS_WCL_BODY_CITYNAME_BALTIMORE"
+msgstr "巴爾的摩"
+
+msgid "IDS_WCL_BODY_CITYNAME_BAMAKO"
+msgstr "巴馬科"
+
+msgid "IDS_WCL_BODY_MALI"
+msgstr "馬利"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGKOK"
+msgstr "曼谷"
+
+msgid "IDS_WCL_BODY_THAILAND"
+msgstr "泰國"
+
+msgid "IDS_WCL_BODY_CITYNAME_BANGUI"
+msgstr "班基"
+
+msgid "IDS_WCL_BODY_CENTRAL_AFRICAN_REPUBLIC"
+msgstr "中非共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARCELONA"
+msgstr "巴塞隆納"
+
+msgid "IDS_WCL_BODY_SPAIN"
+msgstr "西班牙"
+
+msgid "IDS_WCL_BODY_CITYNAME_BARI"
+msgstr "巴里"
+
+msgid "IDS_WCL_BODY_ITALY"
+msgstr "義大利"
+
+msgid "IDS_WCL_BODY_CITYNAME_BASSE_TERRE"
+msgstr "巴斯特爾"
+
+msgid "IDS_WCL_BODY_GUADELOUPE"
+msgstr "瓜德羅普"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIJING"
+msgstr "北京"
+
+msgid "IDS_WCL_BODY_CHINA"
+msgstr "中國"
+
+msgid "IDS_WCL_BODY_CITYNAME_BEIRUT"
+msgstr "貝魯特"
+
+msgid "IDS_WCL_BODY_LEBANON"
+msgstr "黎巴嫩"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELGRADE"
+msgstr "貝爾格勒"
+
+msgid "IDS_WCL_BODY_SERBIA"
+msgstr "塞爾維亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_BELIZE_CITY"
+msgstr "貝里斯"
+
+msgid "IDS_WCL_BODY_BELIZE"
+msgstr "貝里斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERLIN"
+msgstr "柏林"
+
+msgid "IDS_WCL_BODY_GERMANY"
+msgstr "德國"
+
+msgid "IDS_WCL_BODY_CITYNAME_BERN"
+msgstr "伯恩"
+
+msgid "IDS_WCL_BODY_SWITZERLAND"
+msgstr "瑞士"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISHKEK"
+msgstr "比斯凱克"
+
+msgid "IDS_WCL_BODY_KYRGYZSTAN"
+msgstr "吉爾吉斯斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_BISSAU"
+msgstr "比索"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUINEA_BISSAU"
+msgstr "幾內亞比索"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOGOTA"
+msgstr "波哥大"
+
+msgid "IDS_WCL_BODY_COLOMBIA"
+msgstr "哥倫比亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_BOLOGNA"
+msgstr "波羅納"
+
+msgid "IDS_WCL_BODY_BOSTON"
+msgstr "波士頓"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRASILIA"
+msgstr "巴西利亞"
+
+msgid "IDS_WCL_BODY_BRAZIL"
+msgstr "巴西"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRATISLAVA"
+msgstr "伯拉第斯拉瓦"
+
+msgid "IDS_WCL_BODY_SLOVAKIA"
+msgstr "斯洛伐克"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRIDGETOWN"
+msgstr "橋鎮"
+
+msgid "IDS_WCL_BODY_BARBADOS"
+msgstr "巴貝多"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRISBANE"
+msgstr "布里斯班"
+
+msgid "IDS_WCL_BODY_CITYNAME_BRUSSELS"
+msgstr "布魯塞爾"
+
+msgid "IDS_WCL_BODY_BELGIUM"
+msgstr "比利時"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUCHAREST"
+msgstr "布加勒斯特"
+
+msgid "IDS_WCL_BODY_ROMANIA"
+msgstr "羅馬尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUDAPEST"
+msgstr "布達佩斯"
+
+msgid "IDS_WCL_BODY_HUNGARY_M_COUNTRY"
+msgstr "匈牙利"
+
+msgid "IDS_WCL_BODY_CITYNAME_BUENOSAIRES"
+msgstr "布宜諾斯艾利斯"
+
+msgid "IDS_WCL_BODY_ARGENTINA"
+msgstr "阿根廷"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAIRO"
+msgstr "開羅"
+
+msgid "IDS_WCL_BODY_EGYPT"
+msgstr "埃及"
+
+msgid "IDS_WCL_BODY_CITYNAME_CALGARY"
+msgstr "卡加立"
+
+msgid "IDS_WCL_BODY_CANADA"
+msgstr "加拿大"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANARY_ISLANDS"
+msgstr "金絲雀群島"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANBERRA"
+msgstr "坎培拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_CANTON"
+msgstr "廣州"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAPE_TOWN"
+msgstr "開普敦"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SOUTH_AFRICA"
+msgstr "南非"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARACAS"
+msgstr "卡拉卡斯"
+
+msgid "IDS_WCL_BODY_VENEZUELA"
+msgstr "委內瑞拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_CARDIFF"
+msgstr "加地夫"
+
+msgid "IDS_WCL_BODY_WALES_M_COUNTRYNAME"
+msgstr "威爾斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_CASABLANCA"
+msgstr "卡薩布蘭卡"
+
+msgid "IDS_WCL_BODY_MOROCCO"
+msgstr "摩洛哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_CATANZARO"
+msgstr "卡坦扎羅"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "儲存至"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "沒有活動"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "自訂"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "儲存?"
+
+msgid "IDS_WCL_OPT_REORDER"
+msgstr "重新排序"
+
+msgid "IDS_WCL_BODY_CITYNAME_CAYENNE"
+msgstr "卡宴"
+
+msgid "IDS_WCL_BODY_FRENCH_GUIANA"
+msgstr "法屬圭亞那"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE"
+msgstr "夏洛特"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHARLOTTE_AMALIE"
+msgstr "夏洛特阿馬利亞"
+
+msgid "IDS_WCL_BODY_UNITED_STATES_VIRGIN_ISLANDS_M_COUNTRYNAME"
+msgstr "美屬維爾京群島"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHELYABINSK"
+msgstr "車里雅賓斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHENNAI"
+msgstr "金奈"
+
+msgid "IDS_WCL_BODY_INDIA"
+msgstr "印度"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHICAGO"
+msgstr "芝加哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHISINAU"
+msgstr "基希訥烏"
+
+msgid "IDS_WCL_BODY_MOLDOVA"
+msgstr "摩爾多瓦"
+
+msgid "IDS_WCL_BODY_CITYNAME_CHITA"
+msgstr "赤塔"
+
+msgid "IDS_WCL_BODY_CITYNAME_CLEVELAND"
+msgstr "克里夫蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLOMBO"
+msgstr "可倫坡"
+
+msgid "IDS_WCL_BODY_SRI_LANKA"
+msgstr "斯里蘭卡"
+
+msgid "IDS_WCL_BODY_CITYNAME_COLUMBUS"
+msgstr "哥倫布"
+
+msgid "IDS_WCL_BODY_CITYNAME_CONAKRY"
+msgstr "柯那克里"
+
+msgid "IDS_WCL_BODY_GUINEA"
+msgstr "幾內亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_COPENHAGEN"
+msgstr "哥本哈根"
+
+msgid "IDS_WCL_BODY_DENMARK"
+msgstr "丹麥"
+
+msgid "IDS_WCL_BODY_CITYNAME_CORK"
+msgstr "科克"
+
+msgid "IDS_WCL_BODY_IRELAND"
+msgstr "愛爾蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_CROTONE"
+msgstr "克羅托內"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAKAR"
+msgstr "達喀爾"
+
+msgid "IDS_WCL_BODY_SENEGAL"
+msgstr "塞內加爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_DALLAS"
+msgstr "達拉斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAMASCUS"
+msgstr "大馬士革"
+
+msgid "IDS_WCL_BODY_SYRIA"
+msgstr "敘利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_DAR_ES_SALAAM"
+msgstr "達累斯薩拉姆"
+
+msgid "IDS_WCL_BODY_TANZANIA"
+msgstr "坦尚尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_DARWIN"
+msgstr "達爾文"
+
+msgid "IDS_WCL_BODY_CITYNAME_DELHI"
+msgstr "德里"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENPASAR"
+msgstr "登巴薩"
+
+msgid "IDS_WCL_BODY_CITYNAME_DENVER"
+msgstr "丹佛"
+
+msgid "IDS_WCL_BODY_CITYNAME_DETROIT"
+msgstr "底特律"
+
+msgid "IDS_WCL_BODY_CITYNAME_DHAKA"
+msgstr "達卡"
+
+msgid "IDS_WCL_BODY_BANGLADESH"
+msgstr "孟加拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_DIEGO_GARCIA"
+msgstr "地牙哥加西亞"
+
+msgid "IDS_WCL_BODY_UNITED_KINGDOM"
+msgstr "英國"
+
+msgid "IDS_WCL_BODY_CITYNAME_DJIBOUTI"
+msgstr "吉布地"
+
+msgid "IDS_WCL_BODY_DJIBOUTI"
+msgstr "吉布地"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOHA"
+msgstr "多哈"
+
+msgid "IDS_WCL_BODY_QATAR"
+msgstr "卡達"
+
+msgid "IDS_WCL_BODY_CITYNAME_DOUALA"
+msgstr "杜阿拉"
+
+msgid "IDS_WCL_BODY_CAMEROON"
+msgstr "喀麥隆"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBAI"
+msgstr "杜拜"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUBLIN"
+msgstr "都柏林"
+
+msgid "IDS_WCL_BODY_CITYNAME_DUSHANBE"
+msgstr "杜尚別"
+
+msgid "IDS_WCL_BODY_TAJIKISTAN"
+msgstr "塔吉克"
+
+msgid "IDS_WCL_BODY_CITYNAME_EASTER_ISLAND"
+msgstr "復活島"
+
+msgid "IDS_WCL_BODY_CHILE"
+msgstr "智利"
+
+msgid "IDS_WCL_BODY_CITYNAME_EDINBURGH"
+msgstr "愛丁堡"
+
+msgid "IDS_WCL_BODY_SCOTLAND_M_COUNTRYNAME"
+msgstr "蘇格蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_EL_PASO"
+msgstr "厄爾巴索"
+
+msgid "IDS_WCL_BODY_CITYNAME_FLORENCE"
+msgstr "佛羅倫斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_FORT_DE_FRANCE"
+msgstr "法蘭西堡"
+
+msgid "IDS_WCL_BODY_MARTINIQUE"
+msgstr "馬堤尼克"
+
+msgid "IDS_WCL_BODY_CITYNAME_FREETOWN"
+msgstr "自由城"
+
+msgid "IDS_WCL_BODY_SIERRA_LEONE"
+msgstr "獅子山"
+
+msgid "IDS_WCL_BODY_CITYNAME_GABORONE"
+msgstr "嘉柏隆"
+
+msgid "IDS_WCL_BODY_BOTSWANA"
+msgstr "波札那"
+
+msgid "IDS_WCL_BODY_CITYNAME_GALAPAGOS_ISLANDS"
+msgstr "加拉巴哥群島"
+
+msgid "IDS_WCL_BODY_ECUADOR"
+msgstr "厄瓜多爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENEVA"
+msgstr "日內瓦"
+
+msgid "IDS_WCL_BODY_CITYNAME_GENOA"
+msgstr "熱那亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_GEORGETOWN"
+msgstr "喬治城"
+
+msgid "IDS_WCL_BODY_GUYANA"
+msgstr "蓋亞那"
+
+msgid "IDS_WCL_BODY_CITYNAME_GRYTVIKEN"
+msgstr "格里特維肯"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOUTH_GEORGIA"
+msgstr "南喬治亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUAM"
+msgstr "關島"
+
+msgid "IDS_WCL_BODY_GUATEMALA_CITY"
+msgstr "瓜地馬拉市"
+
+msgid "IDS_WCL_BODY_GUATEMALA"
+msgstr "瓜地馬拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_GUSTAVIA"
+msgstr "古斯塔維亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_BARTHELEMY"
+msgstr "聖巴泰勒米島"
+
+msgid "IDS_WCL_BODY_CITYNAME_HALIFAX"
+msgstr "哈利法克斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAMBURG"
+msgstr "漢堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_HANOI"
+msgstr "河內"
+
+msgid "IDS_WCL_BODY_VIETNAM"
+msgstr "越南"
+
+msgid "IDS_WCL_BODY_CITYNAME_HARARE"
+msgstr "哈拉雷"
+
+msgid "IDS_WCL_BODY_ZIMBABWE"
+msgstr "辛巴威"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAVANA"
+msgstr "哈瓦那"
+
+msgid "IDS_WCL_BODY_CUBA"
+msgstr "古巴"
+
+msgid "IDS_WCL_BODY_CITYNAME_HAWAII"
+msgstr "夏威夷"
+
+msgid "IDS_WCL_BODY_CITYNAME_HELSINKI"
+msgstr "赫爾辛基"
+
+msgid "IDS_WCL_BODY_FINLAND"
+msgstr "芬蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOBART"
+msgstr "霍巴特"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "依週顯示活動"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "依月份檢視配置"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "依日顯示活動"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONGKONG"
+msgstr "香港"
+
+msgid "IDS_WCL_BODY_CITYNAME_HONOLULU"
+msgstr "檀香山"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOUSTON"
+msgstr "休斯敦"
+
+msgid "IDS_WCL_BODY_CITYNAME_HOVD"
+msgstr "科布多"
+
+msgid "IDS_WCL_BODY_MONGOLIA"
+msgstr "蒙古"
+
+msgid "IDS_WCL_BODY_CITYNAME_INDIANAPOLIS"
+msgstr "印第安納波里"
+
+msgid "IDS_WCL_BODY_CITYNAME_IRKUTSK"
+msgstr "伊爾庫茨克"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISLAMABAD"
+msgstr "伊斯蘭堡"
+
+msgid "IDS_WCL_BODY_PAKISTAN"
+msgstr "巴基斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_ISTANBUL"
+msgstr "伊斯坦堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_IZHEVSK"
+msgstr "伊熱夫斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_JAKARTA"
+msgstr "雅加達"
+
+msgid "IDS_WCL_BODY_CITYNAME_JEDDAH"
+msgstr "吉達"
+
+msgid "IDS_WCL_BODY_SAUDI_ARABIA"
+msgstr "沙烏地阿拉伯"
+
+msgid "IDS_WCL_BODY_CITYNAME_JERUSALEM"
+msgstr "耶路撒冷"
+
+msgid "IDS_WCL_BODY_ISRAEL"
+msgstr "以色列"
+
+msgid "IDS_WCL_BODY_CITYNAME_JOHANNESBURG"
+msgstr "約翰尼斯堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_KABUL"
+msgstr "喀布爾"
+
+msgid "IDS_WCL_BODY_AFGHANISTAN"
+msgstr "阿富汗"
+
+msgid "IDS_WCL_BODY_CITYNAME_KALININGRAD"
+msgstr "加里寧格勒"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMCHATKA"
+msgstr "堪察加"
+
+msgid "IDS_WCL_BODY_CITYNAME_KAMPALA"
+msgstr "坎培拉"
+
+msgid "IDS_WCL_BODY_UGANDA"
+msgstr "烏干達"
+
+msgid "IDS_WCL_BODY_CITYNAME_KARACHI"
+msgstr "克洛奇"
+
+msgid "IDS_WCL_BODY_CITYNAME_KATHMANDU"
+msgstr "加德滿都"
+
+msgid "IDS_WCL_BODY_NEPAL"
+msgstr "尼泊爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHABAROVSK"
+msgstr "伯力"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARKIV"
+msgstr "哈爾科夫"
+
+msgid "IDS_WCL_BODY_UKRAINE"
+msgstr "烏克蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_KHARTOUM"
+msgstr "喀土穆"
+
+msgid "IDS_WCL_BODY_SUDAN"
+msgstr "蘇丹"
+
+msgid "IDS_WCL_BODY_CITYNAME_KIEV"
+msgstr "基輔"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINGSTON"
+msgstr "金斯頓"
+
+msgid "IDS_WCL_BODY_JAMAICA"
+msgstr "牙買加"
+
+msgid "IDS_WCL_BODY_CITYNAME_KINSHASA"
+msgstr "金夏沙"
+
+msgid "IDS_WCL_BODY_DEMOCRATIC_REPUBLIC_OF_THE_CONGO"
+msgstr "剛果民主共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_KOLKATA"
+msgstr "加爾各答"
+
+msgid "IDS_WCL_BODY_CITYNAME_KRASNOYARSK"
+msgstr "克拉斯諾亞爾斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_KUALA_LUMPUR"
+msgstr "吉隆坡"
+
+msgid "IDS_WCL_BODY_MALAYSIA"
+msgstr "馬來西亞"
+
+msgid "IDS_WCL_BODY_KUWAIT"
+msgstr "科威特"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOS_ANGELES"
+msgstr "洛杉磯"
+
+msgid "IDS_WCL_BODY_CITYNAME_LA_PAZ"
+msgstr "拉巴斯"
+
+msgid "IDS_WCL_BODY_BOLIVIA"
+msgstr "玻利維亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAGOS"
+msgstr "拉哥斯"
+
+msgid "IDS_WCL_BODY_NIGERIA"
+msgstr "奈及利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_LAS_VEGAS"
+msgstr "拉斯維加斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_LIMA"
+msgstr "利馬"
+
+msgid "IDS_WCL_BODY_PERU"
+msgstr "秘魯"
+
+msgid "IDS_WCL_BODY_CITYNAME_LISBON"
+msgstr "里斯本"
+
+msgid "IDS_WCL_BODY_CITYNAME_LJUBLJANA"
+msgstr "盧布爾雅那"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONDON"
+msgstr "倫敦"
+
+msgid "IDS_WCL_BODY_CITYNAME_LONGHUA"
+msgstr "龍華"
+
+msgid "IDS_WCL_BODY_CITYNAME_LOUISVILLE"
+msgstr "路易斯維爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUANDA"
+msgstr "羅安達"
+
+msgid "IDS_WCL_BODY_ANGOLA"
+msgstr "安哥拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUBUMBASHI"
+msgstr "盧本巴希"
+
+msgid "IDS_WCL_BODY_CITYNAME_LUSAKA"
+msgstr "路沙卡"
+
+msgid "IDS_WCL_BODY_ZAMBIA"
+msgstr "尚比亞"
+
+msgid "IDS_WCL_BODY_LUXEMBOURG"
+msgstr "盧森堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_LVIV"
+msgstr "利沃夫"
+
+msgid "IDS_WCL_BODY_CITYNAME_MACAU"
+msgstr "澳門"
+
+msgid "IDS_WCL_BODY_CITYNAME_MADRID"
+msgstr "馬德里"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAGADAN"
+msgstr "馬加丹"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALABO"
+msgstr "馬拉波"
+
+msgid "IDS_WCL_BODY_CITYNAME_EQUAORIAL_GUINEA"
+msgstr "赤道幾內亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_MALE"
+msgstr "馬列"
+
+msgid "IDS_WCL_BODY_MALDIVES"
+msgstr "馬爾地夫"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAGUA"
+msgstr "馬納瓜"
+
+msgid "IDS_WCL_BODY_NICARAGUA"
+msgstr "尼加拉瓜"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANAMA"
+msgstr "麥納瑪"
+
+msgid "IDS_WCL_BODY_BAHRAIN"
+msgstr "巴林"
+
+msgid "IDS_WCL_BODY_CITYNAME_MANILA"
+msgstr "馬尼拉"
+
+msgid "IDS_WCL_BODY_PHILIPPINES"
+msgstr "菲律賓"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAPUTO"
+msgstr "馬普托"
+
+msgid "IDS_WCL_BODY_MOZAMBIQUE"
+msgstr "莫三比克"
+
+msgid "IDS_WCL_BODY_CITYNAME_MARIGOT"
+msgstr "馬利戈特"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_MARTIN"
+msgstr "聖馬丁島"
+
+msgid "IDS_WCL_BODY_CITYNAME_MAZATLAN"
+msgstr "馬薩特蘭"
+
+msgid "IDS_WCL_BODY_MEXICO"
+msgstr "墨西哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIYADH"
+msgstr "利雅德"
+
+msgid "IDS_WCL_BODY_CITYNAME_MELBOURNE"
+msgstr "墨爾本"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEMPHIS"
+msgstr "孟菲斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_MESSINA"
+msgstr "梅西那"
+
+msgid "IDS_WCL_BODY_CITYNAME_MEXICO_CITY"
+msgstr "墨西哥市"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIAMI"
+msgstr "邁阿密"
+
+msgid "IDS_WCL_BODY_CITYNAME_MID_ATLANTIC"
+msgstr "中大西洋"
+
+msgid "IDS_WCL_BODY_CITYNAME_MIDWAY_ATOLL"
+msgstr "中途島"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILAN"
+msgstr "米蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_MILWAUKEE"
+msgstr "密爾瓦基"
+
+msgid "IDS_WCL_BODY_CITYNAME_MINSK"
+msgstr "明斯克"
+
+msgid "IDS_WCL_BODY_BELARUS"
+msgstr "白俄羅斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOGADISHU"
+msgstr "摩加迪休"
+
+msgid "IDS_WCL_BODY_SOMALIA"
+msgstr "索馬利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONROVIA"
+msgstr "蒙羅維亞"
+
+msgid "IDS_WCL_BODY_LIBERIA"
+msgstr "賴比瑞亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTEVIDEO"
+msgstr "蒙特維多"
+
+msgid "IDS_WCL_BODY_URUGUAY"
+msgstr "烏拉圭"
+
+msgid "IDS_WCL_BODY_CITYNAME_MONTREAL"
+msgstr "蒙特婁"
+
+msgid "IDS_WCL_BODY_CITYNAME_MOSCOW"
+msgstr "莫斯科"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUMBAI"
+msgstr "孟買"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUNICH"
+msgstr "慕尼黑"
+
+msgid "IDS_WCL_BODY_CITYNAME_MUSCAT"
+msgstr "馬斯喀特"
+
+msgid "IDS_WCL_BODY_OMAN"
+msgstr "阿曼"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAIROBI"
+msgstr "奈洛比"
+
+msgid "IDS_WCL_BODY_KENYA"
+msgstr "肯亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ROME"
+msgstr "羅馬"
+
+msgid "IDS_WCL_BODY_CITYNAME_NATERS"
+msgstr "納特斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_NDJAMENA"
+msgstr "恩賈梅納"
+
+msgid "IDS_WCL_BODY_CITYNAME_NAPLES"
+msgstr "那布勒斯"
+
+msgid "IDS_WCL_BODY_CHAD"
+msgstr "查德"
+
+msgid "IDS_WCL_BODY_MECCA"
+msgstr "麥加"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWDELHI"
+msgstr "新德里"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWYORK"
+msgstr "紐約"
+
+msgid "IDS_WCL_BODY_CITYNAME_NEWFOUNDLAND"
+msgstr "紐芬蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_NIAMEY"
+msgstr "尼阿美"
+
+msgid "IDS_WCL_BODY_NIGER"
+msgstr "尼日"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUAKCHOTT"
+msgstr "諾克少"
+
+msgid "IDS_WCL_BODY_MAURITANIA"
+msgstr "茅利塔尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOUMEA"
+msgstr "努美亞"
+
+msgid "IDS_WCL_BODY_NEW_CALEDONIA"
+msgstr "新喀里多尼亞群島"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOKUZNETSK"
+msgstr "新庫茲涅茨克"
+
+msgid "IDS_WCL_BODY_CITYNAME_NOVOSIBIRSK"
+msgstr "新西伯利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUKUALOFA"
+msgstr "奴瓜婁發"
+
+msgid "IDS_WCL_BODY_TONGA"
+msgstr "東加"
+
+msgid "IDS_WCL_BODY_CITYNAME_NUUK"
+msgstr "努克"
+
+msgid "IDS_WCL_BODY_GREENLAND_M_COUNTRYNAME"
+msgstr "格陵蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_OMSK"
+msgstr "鄂木斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_OSAKA"
+msgstr "大阪"
+
+msgid "IDS_WCL_BODY_JAPAN"
+msgstr "日本"
+
+msgid "IDS_WCL_BODY_CITYNAME_OTTAWA"
+msgstr "渥太華"
+
+msgid "IDS_WCL_BODY_CITYNAME_OUAGADOUGOU"
+msgstr "瓦加杜古"
+
+msgid "IDS_WCL_BODY_BURKINA_FASO"
+msgstr "布吉納法索"
+
+msgid "IDS_WCL_BODY_CITYNAME_PAGO_PAGO"
+msgstr "帕哥帕哥"
+
+msgid "IDS_WCL_BODY_INDEPENDENT_STATE_OF_SAMOA"
+msgstr "薩摩亞獨立國"
+
+msgid "IDS_WCL_BODY_CITYNAME_PALERMO"
+msgstr "巴勒莫"
+
+msgid "IDS_WCL_BODY_PANAMA_CITY"
+msgstr "巴拿馬市"
+
+msgid "IDS_WCL_BODY_PANAMA"
+msgstr "巴拿馬"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARAMARIBO"
+msgstr "巴拉馬利波"
+
+msgid "IDS_WCL_BODY_SURINAME"
+msgstr "蘇利南"
+
+msgid "IDS_WCL_BODY_CITYNAME_PARIS"
+msgstr "巴黎"
+
+msgid "IDS_WCL_BODY_FRANCE"
+msgstr "法國"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERM"
+msgstr "波恩"
+
+msgid "IDS_WCL_BODY_CITYNAME_PERTH"
+msgstr "伯斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_PETROPAVLOVSK_KAMCHATSKIY"
+msgstr "堪察加彼得巴甫洛夫斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHILADELPHIA"
+msgstr "費城"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHNOM_PENH"
+msgstr "金邊"
+
+msgid "IDS_WCL_BODY_CAMBODIA"
+msgstr "柬埔寨"
+
+msgid "IDS_WCL_BODY_CITYNAME_PHOENIX"
+msgstr "鳳凰城"
+
+msgid "IDS_WCL_BODY_CITYNAME_PODGORICA"
+msgstr "波德戈里察"
+
+msgid "IDS_WCL_BODY_MONTENEGRO"
+msgstr "蒙特內科羅共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_PONTA_DELGADA"
+msgstr "蓬塔德爾加達港"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_LOUIS"
+msgstr "路易士港"
+
+msgid "IDS_WCL_BODY_MAURITIUS"
+msgstr "模里西斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORT_AU_PRINCE"
+msgstr "太子港"
+
+msgid "IDS_WCL_BODY_HAITI"
+msgstr "海地"
+
+msgid "IDS_WCL_BODY_CITYNAME_PORTLAND"
+msgstr "波特蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_PRAGUE"
+msgstr "布拉格"
+
+msgid "IDS_WCL_BODY_CZECH_REPUBLIC"
+msgstr "捷克共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_PYONGYANG"
+msgstr "平壤"
+
+msgid "IDS_WCL_BODY_NORTH_KOREA"
+msgstr "北韓"
+
+msgid "IDS_WCL_BODY_CITYNAME_QUITO"
+msgstr "基多"
+
+msgid "IDS_WCL_BODY_CITYNAME_RABAT"
+msgstr "拉巴特"
+
+msgid "IDS_WCL_BODY_CITYNAME_YANGON"
+msgstr "仰光"
+
+msgid "IDS_WCL_BODY_BURMA"
+msgstr "緬甸"
+
+msgid "IDS_WCL_BODY_CITYNAME_RECIFE"
+msgstr "勒希非"
+
+msgid "IDS_WCL_BODY_CITYNAME_REGINA"
+msgstr "里賈納"
+
+msgid "IDS_WCL_BODY_CITYNAME_REYKJAVIK"
+msgstr "雷克雅維克"
+
+msgid "IDS_WCL_BODY_ICELAND"
+msgstr "冰島"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIGA"
+msgstr "里加"
+
+msgid "IDS_WCL_BODY_LATVIA"
+msgstr "拉脫維亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_RIO_DE_JANEIRO"
+msgstr "里約熱內盧"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAINT_DENIS"
+msgstr "聖德尼"
+
+msgid "IDS_WCL_BODY_REUNION_ISLAND_M_COUNTRYNAME"
+msgstr "留尼旺島"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAMARA"
+msgstr "薩瑪拉"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_ANTONIO"
+msgstr "聖安東尼奧"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_DIEGO"
+msgstr "聖地牙哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_FRANCISCO"
+msgstr "舊金山"
+
+msgid "IDS_WCL_BODY_SAN_JOSE"
+msgstr "聖荷西"
+
+msgid "IDS_WCL_BODY_COSTA_RICA"
+msgstr "哥斯大黎加"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_JUAN"
+msgstr "聖胡安"
+
+msgid "IDS_WCL_BODY_PUERTO_RICO"
+msgstr "波多黎各"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_MARINO"
+msgstr "聖馬利諾"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAN_SALVADOR"
+msgstr "聖薩爾瓦多"
+
+msgid "IDS_WCL_BODY_EL_SALVADOR"
+msgstr "薩爾瓦多"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANAA"
+msgstr "薩那"
+
+msgid "IDS_WCL_BODY_YEMEN"
+msgstr "葉門"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTIAGO"
+msgstr "聖地牙哥"
+
+msgid "IDS_WCL_BODY_CITYNAME_SANTO_DOMINGO"
+msgstr "聖多明哥"
+
+msgid "IDS_WCL_BODY_DOMINICAN_REPUBLIC"
+msgstr "多明尼加共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_SAO_PAULO"
+msgstr "聖保羅"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEATTLE"
+msgstr "西雅圖"
+
+msgid "IDS_WCL_BODY_CITYNAME_SEOUL"
+msgstr "首爾"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_KOREA"
+msgstr "韓國"
+
+msgid "IDS_WCL_BODY_CITYNAME_SHANGHAI"
+msgstr "上海"
+
+msgid "IDS_WCL_BODY_SHENZHEN"
+msgstr "深圳"
+
+msgid "IDS_WCL_BODY_CITYNAME_SINGAPORE"
+msgstr "新加坡"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_SINGAPORE_M_COUNTRY"
+msgstr "新加坡共和國"
+
+msgid "IDS_WCL_BODY_CITYNAME_SKOPJE"
+msgstr "斯科普里"
+
+msgid "IDS_WCL_BODY_MACEDONIA"
+msgstr "馬其頓"
+
+msgid "IDS_WCL_BODY_CITYNAME_SOFIA"
+msgstr "索非亞"
+
+msgid "IDS_WCL_BODY_BULGARIA"
+msgstr "保加利亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_JOHNS"
+msgstr "聖約翰"
+
+msgid "IDS_WCL_BODY_ANTIGUA_AND_BARBUDA"
+msgstr "安地卡及巴布達"
+
+msgid "IDS_WCL_BODY_CITYNAME_STOCKHOLM"
+msgstr "斯德哥爾摩"
+
+msgid "IDS_WCL_BODY_SWEDEN"
+msgstr "瑞典"
+
+msgid "IDS_WCL_BODY_CITYNAME_SUVA"
+msgstr "蘇瓦"
+
+msgid "IDS_WCL_BODY_FIJI_M_COUNTRYNAME"
+msgstr "斐濟"
+
+msgid "IDS_WCL_BODY_REPUBLIC_OF_THE_FIJI_ISLANDS"
+msgstr "斐濟"
+
+msgid "IDS_WCL_BODY_CITYNAME_SYDNEY"
+msgstr "雪梨"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAHITI"
+msgstr "大溪地"
+
+msgid "IDS_WCL_BODY_FRENCH_POLYNESIA"
+msgstr "法屬玻里尼西亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_TAIPEI"
+msgstr "台北"
+
+msgid "IDS_WCL_BODY_TAIWAN"
+msgstr "台灣"
+
+msgid "IDS_WCL_BODY_CITYNAME_TALLINN"
+msgstr "塔林"
+
+msgid "IDS_WCL_BODY_ESTONIA"
+msgstr "愛沙尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_TARAWA"
+msgstr "塔拉瓦"
+
+msgid "IDS_WCL_BODY_KIRIBATI"
+msgstr "吉里巴斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_TASHKENT"
+msgstr "塔什干"
+
+msgid "IDS_WCL_BODY_UZBEKISTAN"
+msgstr "烏茲別克斯坦"
+
+msgid "IDS_WCL_BODY_CITYNAME_TBILISI"
+msgstr "第比利斯"
+
+msgid "IDS_WCL_BODY_GEORGIA"
+msgstr "喬治亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEGUCIGALPA"
+msgstr "德古斯加巴"
+
+msgid "IDS_WCL_BODY_HONDURAS"
+msgstr "宏都拉斯"
+
+msgid "IDS_WCL_BODY_CITYNAME_TEHRAN"
+msgstr "德黑蘭"
+
+msgid "IDS_WCL_BODY_IRAN_M_COUNTRYNAME"
+msgstr "伊朗"
+
+msgid "IDS_WCL_BODY_CITYNAME_HO_CHI_MINH_CITY"
+msgstr "青坡胡志明"
+
+msgid "IDS_WCL_BODY_CITYNAME_THE_SETTLEMENT"
+msgstr "塞特爾門特"
+
+msgid "IDS_WCL_BODY_BRITISH_VIRGIN_ISLANDS"
+msgstr "英屬維爾京群島"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIANJIN"
+msgstr "天津"
+
+msgid "IDS_WCL_BODY_CITYNAME_TIJUANA"
+msgstr "提華納"
+
+msgid "IDS_WCL_BODY_CITYNAME_TOKYO"
+msgstr "東京"
+
+msgid "IDS_WCL_BODY_CITYNAME_TORONTO"
+msgstr "多倫多"
+
+msgid "IDS_WCL_BODY_CITYNAME_TREHET"
+msgstr "特雷埃"
+
+msgid "IDS_WCL_BODY_CITYNAME_TRIPOLI"
+msgstr "的黎波里"
+
+msgid "IDS_WCL_BODY_LIBYA"
+msgstr "利比亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_TUNIS"
+msgstr "突尼斯"
+
+msgid "IDS_WCL_BODY_TUNISIA"
+msgstr "突尼西亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_TURIN"
+msgstr "杜林"
+
+msgid "IDS_WCL_BODY_CITYNAME_UFA"
+msgstr "烏法"
+
+msgid "IDS_WCL_BODY_BASHKIRIYA_M_COUNTRYNAME"
+msgstr "巴什噶爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_ULAN_BATOR"
+msgstr "烏蘭巴托"
+
+msgid "IDS_WCL_BODY_CITYNAME_VADUZ"
+msgstr "瓦都茲"
+
+msgid "IDS_WCL_BODY_LIECHTENSTEIN"
+msgstr "列支敦斯登"
+
+msgid "IDS_WCL_BODY_CITYNAME_VALLETTA"
+msgstr "瓦勒他"
+
+msgid "IDS_WCL_BODY_MALTA"
+msgstr "馬爾他"
+
+msgid "IDS_WCL_BODY_CITYNAME_VANCOUVER"
+msgstr "溫哥華"
+
+msgid "IDS_WCL_BODY_CITYNAME_VERONA"
+msgstr "維諾那"
+
+msgid "IDS_WCL_BODY_CITYNAME_VICTORIA"
+msgstr "維多利亞"
+
+msgid "IDS_WCL_BODY_SEYCHELLES"
+msgstr "塞席爾"
+
+msgid "IDS_WCL_BODY_CITYNAME_VIENNA"
+msgstr "維也納"
+
+msgid "IDS_WCL_BODY_AUSTRIA"
+msgstr "奧地利"
+
+msgid "IDS_WCL_BODY_CITYNAME_VILNIUS"
+msgstr "維爾紐斯"
+
+msgid "IDS_WCL_BODY_LITHUANIA"
+msgstr "立陶宛"
+
+msgid "IDS_WCL_BODY_CITYNAME_VLADIVOSTOK"
+msgstr "海參崴"
+
+msgid "IDS_WCL_BODY_CITYNAME_VOLGOGRAD"
+msgstr "伏爾加格勒"
+
+msgid "IDS_WCL_BODY_CITYNAME_ST_PETERSBURG"
+msgstr "聖彼得堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_WARSAW"
+msgstr "華沙"
+
+msgid "IDS_WCL_BODY_POLAND"
+msgstr "波蘭"
+
+msgid "IDS_WCL_BODY_CITYNAME_WASHINGTON_DC"
+msgstr "華盛頓特區"
+
+msgid "IDS_WCL_BODY_CITYNAME_WELLINGTON"
+msgstr "威靈頓"
+
+msgid "IDS_WCL_BODY_CITYNAME_WINNIPEG"
+msgstr "溫尼伯"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAKUTSK"
+msgstr "亞庫次克"
+
+msgid "IDS_WCL_BODY_CITYNAME_YAMOUSSOUKRO"
+msgstr "雅穆索戈"
+
+msgid "IDS_WCL_BODY_YAOUNDE"
+msgstr "雅恩德"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEKATERINBURG"
+msgstr "葉卡捷琳堡"
+
+msgid "IDS_WCL_BODY_CITYNAME_YEREVAN"
+msgstr "葉里溫"
+
+msgid "IDS_WCL_BODY_ARMENIA"
+msgstr "亞美尼亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_YUZHNO_SAKHALINSK"
+msgstr "南薩哈林斯克"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZAGREB"
+msgstr "札格拉布"
+
+msgid "IDS_WCL_BODY_CROATIA"
+msgstr "克羅埃西亞"
+
+msgid "IDS_WCL_BODY_CITYNAME_ZURICH"
+msgstr "蘇黎世"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "正在匯出..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "正在匯入..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "已匯入"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "已匯出"
+
diff --git a/src/alm-mgr.c b/src/alm-mgr.c
new file mode 100755 (executable)
index 0000000..c6e0e51
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <alarm.h>
+
+#include "alm-mgr.h"
+#include "view-ring.h"
+
+static int __cal_alarm_manager_alarm_callback(alarm_id_t id, void *data)
+{
+       int r;
+       struct appdata *ad = data;
+       Eina_List *csl;
+
+       DBG("Alarm callback: %d", id);
+
+       CAL_ASSERT(ad);
+
+       csl = CALENDAR_SVC_FIND_EVENT(ad->acct_id, CAL_VALUE_INT_ALARMS_ID, (const void *)id);
+       if (!csl) {
+               ERR("Unregistered alarm ID: %d", id);
+               return 0;
+       }
+
+       r = cal_ring_add_alarm(data, csl);
+       if (r) {
+               ERR("ring add error");
+               CALENDAR_SVC_FREE_CS_LIST(&csl);
+       }
+
+       return 0;
+}
+
+int cal_alarm_manager_initialize(struct appdata *ad)
+{
+       int r;
+
+       r = alarmmgr_init(PACKAGE_NAME);
+       if (r != ALARMMGR_RESULT_SUCCESS)
+       {
+               ERR("Alarm manager init failed: %d", r);
+               return -1;
+       }
+
+       r = alarmmgr_set_cb(__cal_alarm_manager_alarm_callback, (void *)ad);
+       if (r != ALARMMGR_RESULT_SUCCESS)
+       {
+               ERR("Alarm manage set callback failed: %d", r);
+               return -1;
+       }
+
+       return 0;
+}
+
+void cal_alarm_manager_finish()
+{
+       alarmmgr_fini();
+
+       return;
+}
diff --git a/src/alm-mgr.h b/src/alm-mgr.h
new file mode 100755 (executable)
index 0000000..d7fd710
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_ALARM_H__
+#define __CALENDAR_ALARM_H__
+
+#include <alarm.h>
+#include "cld.h"
+
+int cal_alarm_manager_initialize(struct appdata *ad);
+void cal_alarm_manager_finish(void);
+
+#endif /* __CALENDAR_ALARM_H__ */
diff --git a/src/detail.h b/src/detail.h
new file mode 100755 (executable)
index 0000000..e20644b
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_DETAIL_H__
+#define __CALENDAR_DETAIL_H__
+
+#include "cld.h"
+
+void cal_detail_create_view(struct appdata *ad, Evas_Object *parent);
+void cal_viewer_create_view(struct appdata *ad, Evas_Object *parent, char* raw_data);
+
+
+#endif /* __CALENDAR_DETAIL_H__ */
+
diff --git a/src/edit-alarm.c b/src/edit-alarm.c
new file mode 100755 (executable)
index 0000000..97e612b
--- /dev/null
@@ -0,0 +1,934 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <calendar-svc-provider.h>
+
+#include "edit-alarm.h"
+
+#define _HOUR (60)
+#define _DAY (60 * 24)
+#define _WEEK (60 * 24 * 7)
+
+#define _OFF -1
+#define _CUSTOM -2
+
+static const char *_name = "calendar/edit/alarm";
+
+struct _priv {
+       const char *name;
+       struct appdata* ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+
+       Evas_Object *sc; // scroller
+       Evas_Object *bx; // box
+
+       Evas_Object *r_grp; // radio
+       Evas_Object *r_grp_member[8];
+
+       Evas_Object *e_custom;
+       Evas_Object *b_custom;
+       int bt_idx;
+
+       Evas_Object *rect; // for scrolling
+
+       int selected;
+
+       Elm_Object_Item *pre_selected_it;
+
+       int min;
+
+       Elm_Theme *theme;
+
+       Evas_Object *ctx;
+
+       Evas_Coord_Rectangle ctx_r;
+
+       Eina_Bool is_imf_show;
+};
+
+struct __cal_edit_alarm_button {
+       const char *label;
+       int unit;
+};
+static struct __cal_edit_alarm_button cal_edit_alarm_button[] = {
+       { NULL, 1, },
+       { NULL, _HOUR, },
+       { NULL, _DAY, },
+       { NULL, _WEEK, },
+};
+
+static Elm_Entry_Filter_Limit_Size _limit_2char = {
+       .max_char_count = 2,
+};
+static Elm_Entry_Filter_Accept_Set _digit_only = {
+       .accepted = "0123456789",
+};
+
+static Elm_Genlist_Item_Class itc_seperator, itc_1text_1icon, itc_1icon, itc_2text_3icon;
+
+typedef struct __cal_edit_alarm_item_data cal_edit_alarm_item_data;
+struct __cal_edit_alarm_item_data
+{
+       struct _priv *p;
+       int type;
+       int data;
+       Elm_Object_Item *it;
+       Evas_Object *item_radio;
+};
+
+enum cal_edit_alarm_genlist_item_type{
+       _GTYPE_SPEA = -1,
+       _GTYPE_OFF,
+       _GTYPE_ON_TIME,
+       _GTYPE_5_MIN,
+       _GTYPE_15_MIN,
+       _GTYPE_1_HOUR,
+       _GTYPE_1_DAY,
+       _GTYPE_1_WEEK,
+       _GTYPE_CUSTOMIZE,
+       _GTYPE_MAX
+};
+
+
+static cal_edit_alarm_item_data cal_edit_alarm_item_datas[] =
+{
+       {NULL,_GTYPE_SPEA, 0, NULL, NULL},
+       {NULL,_GTYPE_OFF, _OFF, NULL, NULL},
+       {NULL,_GTYPE_ON_TIME, 0, NULL, NULL},
+       {NULL,_GTYPE_5_MIN, 5, NULL, NULL},
+       {NULL,_GTYPE_15_MIN, 15, NULL, NULL},
+       {NULL,_GTYPE_1_HOUR, _HOUR, NULL, NULL},
+       {NULL,_GTYPE_1_DAY, _DAY, NULL, NULL},
+       {NULL,_GTYPE_1_WEEK, _WEEK, NULL, NULL},
+       {NULL,_GTYPE_CUSTOMIZE, _CUSTOM, NULL, NULL},
+};
+
+
+static void __cal_edit_alarm_custom_ctx_selected_callback(void *data, Evas_Object *obj, void *ei);
+
+static void __cal_edit_alarm_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       struct _priv *p = data;
+
+       if (!p)
+               return;
+
+       if (p->rect)
+               evas_object_del(p->rect);
+
+       if (p->ctx) {
+               evas_object_del(p->ctx);
+       }
+
+       free(p);
+}
+
+static void __cal_edit_alarm_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct _priv *p;
+       Evas_Event_Mouse_Up *ev = ei;
+       int val = (int)data;
+
+       if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+
+
+       elm_radio_value_set(p->r_grp, val);
+       evas_object_size_hint_min_set(p->rect, 0, 0);
+       p->selected = val;
+}
+
+static void __cal_edit_alarm_set_custom(struct _priv *p)
+{
+       elm_radio_value_set(p->r_grp, _GTYPE_CUSTOMIZE);
+
+       elm_object_focus_set(p->e_custom, EINA_TRUE);
+       elm_entry_cursor_end_set(p->e_custom);
+}
+
+static void __cal_edit_alarm_custom_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct _priv *p = data;
+       Evas_Event_Mouse_Up *ev = ei;
+
+       if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       __cal_edit_alarm_set_custom(p);
+}
+
+static inline void __cal_edit_alarm_set_button_label(struct _priv *p)
+{
+       elm_object_text_set(p->b_custom, _(cal_edit_alarm_button[p->bt_idx].label));
+}
+
+static void __cal_edit_alarm_custom_popup_hide_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj,  "obj is null");
+
+       struct _priv* p = data;
+       p->ctx = NULL;
+       evas_object_del(obj);
+}
+
+static void __cal_edit_create_ctx_popup(struct _priv* p)
+{
+       c_retm_if(!p, "p is NULL.");
+
+       Evas_Object *ctx = p->ctx;
+
+       if (ctx)
+               evas_object_del(ctx);
+
+       p->ctx = elm_ctxpopup_add(p->ad->nv);
+       c_retm_if(!p->ctx, "elm_ctxpopup_add(p->ad->nv) returned null");
+
+       ctx = p->ctx;
+       evas_object_data_set(ctx, "priv", p);
+
+       evas_object_smart_callback_add(ctx, "dismissed", __cal_edit_alarm_custom_popup_hide_callback, p);
+       elm_ctxpopup_item_append(ctx, S_("IDS_COM_BODY_MINUTE_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)0);
+       elm_ctxpopup_item_append(ctx, S_("IDS_COM_POP_HOUR_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)1);
+       elm_ctxpopup_item_append(ctx, C_("IDS_COM_POP_DAY_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)2);
+       elm_ctxpopup_item_append(ctx, C_("IDS_COM_POP_WEEK_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)3);
+}
+
+static void __cal_edit_alarm_custom_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       struct _priv* p = data;
+       c_retm_if(!p, "p is null");
+
+       __cal_edit_create_ctx_popup(p);
+       c_retm_if(!p->ctx, "p is NULL.");
+       if (!p->is_imf_show) {
+               Evas_Coord x , y, w, h;
+               evas_object_geometry_get(p->b_custom, &x, &y, &w, &h);
+               evas_object_move(p->ctx, x+w, y);
+       } else {
+               evas_object_move(p->ctx, p->ctx_r.x+p->ctx_r.w, p->ctx_r.y);
+       }
+       evas_object_show(p->ctx);
+}
+
+static void __cal_edit_alarm_custom_ctx_selected_callback(void *data, Evas_Object *obj, void *ei)
+{
+       struct _priv* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is NULL.");
+
+       int index = (int)data;
+       p->bt_idx = index;
+       __cal_edit_alarm_set_button_label(p);
+
+       __cal_edit_alarm_set_custom(p);
+       p->selected = _GTYPE_CUSTOMIZE;
+       __cal_edit_alarm_custom_popup_hide_callback(p,p->ctx,ei);
+}
+
+static Evas_Object* __cal_edit_alarm_add_button(Evas_Object *parent, struct _priv *p)
+{
+       Evas_Object *bt;
+
+       bt = elm_button_add(parent);
+       if (!bt)
+               return NULL;
+
+       elm_object_focus_allow_set(bt, EINA_FALSE);
+       evas_object_propagate_events_set(bt, EINA_FALSE);
+       evas_object_smart_callback_add(bt, "clicked", __cal_edit_alarm_custom_button_callback, p);
+
+       return bt;
+}
+
+static inline void __cal_edit_alarm_get_week_str(int week, char *buf, int sz)
+{
+       snprintf(buf, sz, "%d %s %s", week,C_("IDS_COM_POP_WEEK_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
+}
+
+static inline void __cal_edit_alarm_get_day_str(int day, char *buf, int sz)
+{
+       snprintf(buf, sz, "%d %s %s", day, C_("IDS_COM_POP_DAY_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
+}
+
+static inline void __cal_edit_alarm_get_hour_str(int hour, char *buf, int sz)
+{
+       snprintf(buf, sz, "%d %s %s", hour, S_("IDS_COM_POP_HOUR_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
+}
+
+static inline void __cal_edit_alarm_get_min_str(int min, char *buf, int sz)
+{
+       snprintf(buf, sz, "%d %s %s", min, S_("IDS_COM_BODY_MINUTE_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
+}
+
+static inline void __cal_edit_alarm_get_str(int min, char *buf, int sz)
+{
+       if ((min % _WEEK) == 0) {
+               __cal_edit_alarm_get_week_str(min / _WEEK, buf, sz);
+               return;
+       }
+
+       if ((min % _DAY) == 0) {
+               __cal_edit_alarm_get_day_str(min / _DAY, buf, sz);
+               return;
+       }
+
+       if ((min % _HOUR) == 0) {
+               __cal_edit_alarm_get_hour_str(min / _HOUR, buf, sz);
+               return;
+       }
+
+       __cal_edit_alarm_get_min_str(min, buf, sz);
+}
+
+void cal_edit_alarm_get_alarm_str(int min, char *buf, int sz)
+{
+       if (!buf || sz < 0)
+               return;
+
+       if (min < 0) {
+               g_snprintf(buf,sz,"%s",S_("IDS_COM_BODY_OFF"));
+               return;
+       }
+
+       if (min == 0) {
+               g_snprintf(buf,sz,"%s", C_("IDS_CLD_BODY_ON_TIME"));
+               return;
+       }
+
+       __cal_edit_alarm_get_str(min, buf, sz);
+}
+
+int cal_edit_alarm_get_min(int tick, cal_sch_remind_tick_unit_t unit)
+{
+       int min;
+
+       min = tick;
+
+       switch (unit) {
+       case CAL_SCH_TIME_UNIT_MONTH:
+               min = min * _DAY * 30; // TODO: BUG!! not used!!
+               break;
+       case CAL_SCH_TIME_UNIT_WEEK:
+               min = min * _WEEK;
+               break;
+       case CAL_SCH_TIME_UNIT_DAY:
+               min = min * _DAY;
+               break;
+       case CAL_SCH_TIME_UNIT_HOUR:
+               min = min * _HOUR;
+               break;
+       default:  // CAL_SCH_TIME_UNIT_MIN
+               break;
+       }
+
+       return min;
+}
+
+void cal_edit_alarm_get_tick(int min, int *tick, cal_sch_remind_tick_unit_t *unit)
+{
+       if (!tick || !unit)
+               return;
+
+       if (min == -1) {
+               *tick = -1;
+               *unit = CAL_SCH_TIME_UNIT_MIN;
+               return;
+       }
+
+       if ((min % _WEEK) == 0) {
+               *tick = min / _WEEK;
+               *unit = CAL_SCH_TIME_UNIT_WEEK;
+               return;
+       }
+
+       if ((min % _DAY) == 0) {
+               *tick = min / _DAY;
+               *unit = CAL_SCH_TIME_UNIT_DAY;
+               return;
+       }
+
+       if ((min % _HOUR) == 0) {
+               *tick = min / _HOUR;
+               *unit = CAL_SCH_TIME_UNIT_HOUR;
+               return;
+       }
+
+       *tick = min;
+       *unit = CAL_SCH_TIME_UNIT_MIN;
+}
+
+static char *__cal_edit_alarm_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       cal_edit_alarm_item_data *item_data = (cal_edit_alarm_item_data*)data;
+       int type = (int)item_data->type;
+       char buf[1024] = {0};
+
+       if (!CAL_STRCMP(part, "elm.text"))
+       {
+               switch ( type)
+               {
+               case _GTYPE_OFF:
+               case _GTYPE_ON_TIME:
+               case _GTYPE_5_MIN:
+               case _GTYPE_15_MIN:
+               case _GTYPE_1_HOUR:
+               case _GTYPE_1_DAY:
+               case _GTYPE_1_WEEK:
+                       cal_edit_alarm_get_alarm_str(item_data->data, buf, sizeof(buf));
+                       break;
+               case _GTYPE_CUSTOMIZE:
+                       //return strdup(C_("IDS_CLD_BODY_CUSTOMIZE_ATNT"));
+                       break;
+               default:
+                       break;
+               }
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.2"))
+       {
+               if(type == _GTYPE_CUSTOMIZE)
+               {
+                       return strdup(C_("IDS_CLD_BODY_BEFORE_LC"));
+               }
+       }
+
+       return strdup(buf);
+}
+
+static void __cal_edit_alarm_genlist_item_delete_callback(void *data, Evas_Object *obj)
+{
+       CAL_ASSERT(data);
+       cal_edit_alarm_item_data*item_data = (cal_edit_alarm_item_data*)data;
+
+       CAL_ASSERT(item_data->p);
+       struct _priv* p = item_data->p;
+
+       CAL_ASSERT(p->r_grp_member);
+       p->r_grp_member[item_data->type] = NULL;
+
+       free(item_data);
+}
+
+static Eina_Bool __cal_edit_alarm_get_genlist_item_state(void *data, Evas_Object *obj, const char *part)
+{
+       return EINA_FALSE;
+}
+
+static void  __cal_edit_alarm_set_radio_group(struct _priv *p, Evas_Object *rd, int val)
+{
+       if(!val)
+       {
+               p->r_grp = rd;
+               elm_radio_group_add(p->r_grp_member[1], p->r_grp);
+               elm_radio_group_add(p->r_grp_member[2], p->r_grp);
+               elm_radio_group_add(p->r_grp_member[3], p->r_grp);
+               elm_radio_group_add(p->r_grp_member[4], p->r_grp);
+               elm_radio_group_add(p->r_grp_member[5], p->r_grp);
+               elm_radio_group_add(p->r_grp_member[6], p->r_grp);
+               elm_radio_group_add(p->r_grp_member[7], p->r_grp);
+       }
+
+       elm_radio_group_add(rd, p->r_grp);
+
+}
+
+static Evas_Object* __cal_edit_alarm_add_radio(Evas_Object *dg, int val, struct _priv *p, cal_edit_alarm_item_data *item_data)
+{
+       Evas_Object *ly;
+       Evas_Object *rd;
+
+       ly = cal_util_add_layout(dg, "dialoguegroup/radio");
+       if (!ly)
+               return NULL;
+
+       char buf[1024] = {0};
+
+       cal_edit_alarm_get_alarm_str(item_data->data, buf, sizeof(buf));
+
+       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly), "text", buf);
+       evas_object_show(ly);
+       evas_object_data_set(ly, "priv", p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_edit_alarm_clicked_callback, (void *)val);
+
+       rd = elm_radio_add(dg);
+       if (!rd) {
+               evas_object_del(ly);
+               return NULL;
+       }
+
+       elm_radio_state_value_set(rd, val);
+       elm_object_part_content_set(ly, "content", rd);
+       item_data->item_radio = rd;
+       *(p->r_grp_member + val) = rd;
+
+       __cal_edit_alarm_set_radio_group(p, rd, val);
+
+       return ly;
+}
+
+static void __cal_edit_alarm_entry_unfocused(void *data, Evas_Object *obj, void *event_info)
+{
+       struct _priv *p = (struct _priv *)data;
+
+       char min[8] = {0,};
+       snprintf(min, 7, "%d", p->min);
+       elm_entry_entry_set(p->e_custom, min);
+}
+
+static void __cal_edit_alarm_title_object_visible_changed(void *data, Evas_Object *obj, void *event_info)
+{
+       struct _priv *p = (struct _priv *)data;
+       elm_object_focus_set(p->e_custom, EINA_FALSE);
+}
+
+static void __cal_edit_input_panel_event_callback(void *data, Ecore_IMF_Context *imf_context, int value)
+{
+       c_retm_if(!data, "data is null");
+       struct _priv *p = data;
+
+       switch (value) {
+       case ECORE_IMF_INPUT_PANEL_STATE_SHOW:
+               c_retm_if(!p->b_custom, "p->b_custom is null");
+               cal_util_get_geometry(&p->ctx_r, p->b_custom);
+               p->is_imf_show = EINA_TRUE;
+               break;
+       case ECORE_IMF_INPUT_PANEL_STATE_HIDE:
+               p->is_imf_show = EINA_FALSE;
+               break;
+       }
+}
+
+static Evas_Object* __cal_edit_alarm_add_entry(Evas_Object *parent, struct _priv *p, cal_edit_alarm_item_data *item_data)
+{
+       Evas_Object *e;
+       Ecore_IMF_Context *ic;
+
+       e = elm_entry_add(parent);
+       if (!e)
+               return NULL;
+
+       elm_object_style_set(e, "font_color_black");
+       elm_entry_single_line_set(e, EINA_TRUE);
+       elm_entry_markup_filter_append(e, elm_entry_filter_limit_size, &_limit_2char);
+       elm_entry_markup_filter_append(e, elm_entry_filter_accept_set, &_digit_only);
+       elm_entry_input_panel_layout_set(e, ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
+       elm_entry_context_menu_disabled_set(e, EINA_TRUE);
+
+       ic = elm_entry_imf_context_get(e);
+       if (!ic)
+               return NULL;
+
+       ecore_imf_context_input_panel_event_callback_add(ic, ECORE_IMF_INPUT_PANEL_STATE_EVENT, __cal_edit_input_panel_event_callback, p);
+
+       evas_object_smart_callback_add(e, "unfocused", __cal_edit_alarm_entry_unfocused, p);
+       evas_object_smart_callback_add(p->parent,  "titleobj,visible,changed", __cal_edit_alarm_title_object_visible_changed, p);
+       return e;
+}
+
+static void __cal_edit_alarm_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       cal_edit_alarm_item_data *item_data = (cal_edit_alarm_item_data *)data;
+       struct _priv *p = item_data->p;
+       const char *s = elm_entry_entry_get(p->e_custom);
+       p->min = atoi(s);
+}
+
+static Evas_Object* __cal_edit_alarm_add_custom_text_object(struct _priv *p, Evas_Object *dg, const char *text)
+{
+       Evas_Object *entry = NULL;
+
+       if (!text || text[0] == '\0')
+               return entry;
+
+       entry = elm_entry_add(dg);
+       CAL_ASSERT(entry);
+
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_context_menu_disabled_set(entry, EINA_TRUE);
+       evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_EXPAND);
+       elm_entry_editable_set(entry, EINA_FALSE);
+       elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
+       elm_entry_autocapital_type_set(entry, EINA_TRUE);
+
+       elm_entry_entry_set(entry, text);
+
+       return entry;
+}
+
+static Evas_Object* __cal_edit_alarm_add_custom_layout(Evas_Object *dg, const char *text, int val, struct _priv *p, cal_edit_alarm_item_data *item_data)
+{
+       Evas_Object *ly;
+       Evas_Object *rd;
+       Evas_Object *entry;
+       Evas_Object *bt;
+       Evas_Object *entry_custom;
+       Evas_Object *entry_before;
+
+       ly = cal_util_add_layout(dg, "dialoguegroup/alarm/custom2");
+       if (!ly)
+               return NULL;
+
+       entry_custom = __cal_edit_alarm_add_custom_text_object(p, dg, text);
+       if (!entry_custom)
+       {
+               evas_object_del(ly);
+               return NULL;
+       }
+       elm_object_part_content_set(ly, "text", entry_custom);
+
+       entry_before = __cal_edit_alarm_add_custom_text_object(p, dg, C_("IDS_CLD_BODY_BEFORE_LC"));
+       if (!entry_before)
+       {
+               evas_object_del(ly);
+               return NULL;
+       }
+       elm_object_part_content_set(ly, "text2", entry_before);
+
+       evas_object_show(ly);
+       evas_object_data_set(ly, "priv", p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_edit_alarm_custom_clicked_callback, p);
+
+       rd = elm_radio_add(dg);
+       if (!rd)
+       {
+               evas_object_del(ly);
+               return NULL;
+       }
+
+       elm_radio_state_value_set(rd, val);
+       elm_object_part_content_set(ly, "content", rd);
+       item_data->item_radio = rd;
+       *(p->r_grp_member + val) = rd;
+
+       __cal_edit_alarm_set_radio_group(p, rd, val);
+
+       bt = __cal_edit_alarm_add_button(ly, p);
+       if (!bt)
+       {
+               evas_object_del(ly);
+               return NULL;
+       }
+
+       elm_object_style_set(bt, "sweep");
+       elm_object_part_content_set(ly, "button", bt);
+       p->b_custom = bt;
+       __cal_edit_alarm_set_button_label(p);
+
+       entry = __cal_edit_alarm_add_entry(ly, p, item_data);
+       if (!entry)
+       {
+               evas_object_del(ly);
+               return NULL;
+       }
+       elm_object_part_content_set(ly, "input_sw", entry);
+       evas_object_smart_callback_add(entry, "changed", __cal_edit_alarm_entry_changed_callback, item_data);
+       p->e_custom = entry;
+
+       return ly;
+}
+
+
+static void __cal_edit_alarm_set_selected_state(cal_edit_alarm_item_data *item_data)
+{
+       struct _priv *p = item_data->p;
+       elm_radio_value_set(p->r_grp, p->selected);
+}
+
+static Evas_Object *__cal_edit_alarm_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       Evas_Object *e_obj = NULL;
+       char buf[16];
+       cal_edit_alarm_item_data *item_data = (cal_edit_alarm_item_data*)data;
+       struct _priv *p = item_data->p;
+
+       if (!CAL_STRCMP(part, "elm.icon"))
+       {
+               switch ( item_data->type )
+               {
+               case _GTYPE_OFF:
+               case _GTYPE_ON_TIME:
+               case _GTYPE_5_MIN:
+               case _GTYPE_15_MIN:
+               case _GTYPE_1_HOUR:
+               case _GTYPE_1_DAY:
+               case _GTYPE_1_WEEK:
+                       e_obj = __cal_edit_alarm_add_radio(obj, item_data->type, p, item_data);
+                       __cal_edit_alarm_set_selected_state(item_data);
+                       break;
+               case _GTYPE_CUSTOMIZE:
+                       e_obj =__cal_edit_alarm_add_custom_layout(obj, C_("IDS_COM_BODY_CUSTOMISE"), item_data->type, p, item_data);
+                       __cal_edit_alarm_set_selected_state(item_data);
+                       __cal_edit_alarm_set_button_label(p);
+                       snprintf(buf, sizeof(buf), "%d", p->min);
+                       elm_entry_entry_set(p->e_custom, buf);
+                       break;
+               default:
+                       break;
+               }
+       }
+       return e_obj;
+}
+
+static void __cal_edit_alarm_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       cal_edit_alarm_item_data *item_data;
+       Elm_Object_Item *it = elm_genlist_selected_item_get(obj);
+
+       if (it)
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       item_data = (cal_edit_alarm_item_data *)elm_object_item_data_get(it);
+
+       int type = item_data->type;
+       struct _priv *p = item_data->p;
+
+       switch ( type )
+       {
+       case _GTYPE_OFF:
+       case _GTYPE_ON_TIME:
+       case _GTYPE_5_MIN:
+       case _GTYPE_15_MIN:
+       case _GTYPE_1_HOUR:
+       case _GTYPE_1_DAY:
+       case _GTYPE_1_WEEK:
+       case _GTYPE_CUSTOMIZE:
+               if(_GTYPE_CUSTOMIZE != type)
+                       elm_object_focus_set(p->e_custom, EINA_FALSE);
+               elm_radio_value_set(p->r_grp, type);
+               p->selected = type;
+               break;
+       default:
+               break;
+       }
+
+       return;
+}
+
+static void __cal_edit_alarm_append_genlist_item(Evas_Object *genlist, struct _priv *p)
+{
+       int i;
+       cal_edit_alarm_item_data *item_data;
+       for(i = 0; i < sizeof(cal_edit_alarm_item_datas)/sizeof(cal_edit_alarm_item_datas[0]); i++)
+       {
+               CAL_CALLOC(item_data, 1, cal_edit_alarm_item_data);
+
+               item_data->p = p;
+               item_data->type = cal_edit_alarm_item_datas[i].type;
+               item_data->data = cal_edit_alarm_item_datas[i].data;
+
+               if(_GTYPE_SPEA == item_data->type)
+               {
+                       item_data->it = elm_genlist_item_append(genlist, &itc_seperator, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
+                       elm_genlist_item_select_mode_set(item_data->it, ELM_OBJECT_SELECT_MODE_NONE);
+               }
+               else
+               {
+                       if(_GTYPE_CUSTOMIZE == item_data->type)
+                       {
+                               item_data->it = elm_genlist_item_append(genlist, &itc_1icon, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
+                       }
+                       else
+                       {
+                               item_data->it = elm_genlist_item_append(genlist, &itc_1text_1icon, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
+                       }
+               }
+       }
+}
+
+static int __cal_edit_alarm_add_alarm_content(struct _priv *p)
+{
+       CAL_ASSERT(p);
+
+       p->sc = elm_genlist_add(p->ly);
+       CAL_ASSERT(p->sc);
+
+       Evas_Object* cf;
+
+       if(NULL != p->theme)
+               elm_object_theme_set(p->sc, p->theme);
+
+       itc_seperator.item_style = "dialogue/seperator";
+       itc_seperator.func.text_get = NULL;
+       itc_seperator.func.state_get = __cal_edit_alarm_get_genlist_item_state;
+       itc_seperator.func.del = __cal_edit_alarm_genlist_item_delete_callback;
+
+       itc_1text_1icon.item_style = "dialogue/1text.1icon.2";
+       itc_1text_1icon.func.del = __cal_edit_alarm_genlist_item_delete_callback;
+       itc_1text_1icon.func.content_get = __cal_edit_alarm_get_genlist_item_icon;
+       itc_1text_1icon.func.text_get = __cal_edit_alarm_get_genlist_item_label;
+
+       itc_1icon.item_style = "dialogue/1icon";
+       itc_1icon.func.del = __cal_edit_alarm_genlist_item_delete_callback;
+       itc_1icon.func.content_get = __cal_edit_alarm_get_genlist_item_icon;
+       itc_1icon.func.text_get = __cal_edit_alarm_get_genlist_item_label;
+
+       itc_2text_3icon.item_style = "dialogue.2text.3icon.2";
+       itc_2text_3icon.func.text_get = __cal_edit_alarm_get_genlist_item_label;
+       itc_2text_3icon.func.del = __cal_edit_alarm_genlist_item_delete_callback;
+       itc_2text_3icon.func.content_get = __cal_edit_alarm_get_genlist_item_icon;
+
+       __cal_edit_alarm_append_genlist_item(p->sc, p);
+
+       cf = elm_conformant_add(p->ad->win);
+       CAL_ASSERT(cf);
+
+       evas_object_size_hint_weight_set(cf, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(cf);
+       elm_object_content_set(cf, p->sc);
+       elm_object_style_set(cf, "internal_layout");
+       elm_object_part_content_set(p->ly, "sw", cf);
+
+       return 0;
+}
+
+static void __cal_edit_alarm_set_radio(struct _priv *p, int min)
+{
+       CAL_ASSERT(p);
+
+       switch(min)
+       {
+       case _OFF:
+               p->selected = cal_edit_alarm_item_datas[1].type;
+               return;
+       case 0:
+               p->selected = cal_edit_alarm_item_datas[2].type;
+               return;
+       case 5:
+               p->selected = cal_edit_alarm_item_datas[3].type;
+               return;
+       case 15:
+               p->selected = cal_edit_alarm_item_datas[4].type;
+               return;
+       case _HOUR:
+               p->selected = cal_edit_alarm_item_datas[5].type;
+               return;
+       case _DAY:
+               p->selected = cal_edit_alarm_item_datas[6].type;
+               return;
+       case _WEEK:
+               p->selected = cal_edit_alarm_item_datas[7].type;
+               return;
+       default:
+               p->selected = cal_edit_alarm_item_datas[8].type;
+               break;
+       }
+
+       if ((min % _WEEK) == 0)
+       {
+               p->bt_idx = 3;
+               min = min / _WEEK;
+       }
+       else if ((min % _DAY) == 0)
+       {
+               p->bt_idx = 2;
+               min = min / _DAY;
+       }
+       else if ((min % _HOUR) == 0)
+       {
+               p->bt_idx = 1;
+               min = min / _HOUR;
+       }
+       else
+               p->bt_idx = 0;
+
+       p->min = min;
+}
+
+int cal_edit_alarm_get_alarm(Evas_Object *ly)
+{
+       struct _priv *p;
+       int r;
+
+       CAL_ASSERT(ly);
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name))
+       {
+               ERR("Invalid object");
+               return -1;
+       }
+
+       if (p->selected == _GTYPE_CUSTOMIZE )
+       {
+               const char *s = elm_entry_entry_get(p->e_custom);
+               r = atoi(s);
+               r = r * cal_edit_alarm_button[p->bt_idx].unit;
+       }
+       else
+               r = cal_edit_alarm_item_datas[p->selected+1].data;
+
+       return r;
+}
+
+Evas_Object *cal_edit_alarm_create_view(Evas_Object *parent, int min, struct appdata* ad)
+{
+       struct _priv *p;
+       Evas_Object *ly;
+       int r;
+
+       CAL_ASSERT(parent);
+
+       CAL_CALLOC(p, 1, struct _priv);
+
+       p->name = _name;
+       p->parent = parent;
+       p->ad = ad;
+       p->r_grp = NULL;
+       p->theme = ad->theme;
+
+       ly = cal_util_add_layout(parent, "edit");
+       if (!ly)
+       {
+               free(p);
+               return NULL;
+       }
+       p->ly = ly;
+
+       evas_object_data_set(ly, "priv", p);
+
+       cal_edit_alarm_button[0].label = S_("IDS_COM_BODY_MINUTE_LC");
+       cal_edit_alarm_button[1].label = S_("IDS_COM_POP_HOUR_LC");
+       cal_edit_alarm_button[2].label = C_("IDS_COM_POP_DAY_LC");
+       cal_edit_alarm_button[3].label = C_("IDS_COM_POP_WEEK_LC");
+
+       __cal_edit_alarm_set_radio(p, min);
+
+       r = __cal_edit_alarm_add_alarm_content(p);
+       if (r)
+       {
+               evas_object_del(ly);
+               free(p);
+               return NULL;
+       }
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_edit_alarm_delete_layout, p);
+       return ly;
+}
diff --git a/src/edit-alarm.h b/src/edit-alarm.h
new file mode 100755 (executable)
index 0000000..69c868b
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_EDIT_ALARM_H__
+#define __CALENDAR_EDIT_ALARM_H__
+
+#include "cld.h"
+
+/* return minutes: -1 = off, 0 = on time, ... */
+int cal_edit_alarm_get_alarm(Evas_Object *ly);
+
+void cal_edit_alarm_get_alarm_str(int min, char *buf, int sz);
+int cal_edit_alarm_get_min(int tick, cal_sch_remind_tick_unit_t unit);
+void cal_edit_alarm_get_tick(int min, int *tick, cal_sch_remind_tick_unit_t *unit);
+
+/* BEGIN: Added by Zhong Yuan, 2011/3/25 */
+Evas_Object *cal_edit_alarm_create_view(Evas_Object *parent, int min, struct appdata* ad);
+int cal_edit_alarm_get_alarm(Evas_Object *ly);
+
+
+/* END:   Added by Zhong Yuan, 2011/3/25   PN: */
+
+
+// TODO: add more...
+
+#endif /* __CALENDAR_EDIT_ALARM_H__ */
+
diff --git a/src/edit-repeat.c b/src/edit-repeat.c
new file mode 100755 (executable)
index 0000000..9e66b02
--- /dev/null
@@ -0,0 +1,1142 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include "edit-repeat.h"
+
+static const char *_name = "calendar/edit/repeat";
+
+struct _priv {
+       const char *name;
+       struct appdata* ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+
+       Evas_Object *win;
+
+       Evas_Object *end_date_ly[3];
+       Evas_Object *nv;
+       Evas_Object *ly_date;
+
+       int *occurrency;
+       struct tm *start_date_time;
+       struct tm *repeat_end_date_time;
+       int *is_all_day;
+
+       Evas_Object *box;
+
+       Evas_Object *repeat_radio_group;
+       Evas_Object *repeat_radio_group_member[5];
+       Evas_Object *repeat_until_radio_group;
+       Evas_Object *day_sel;
+
+       Evas_Object *times;
+       Evas_Object *end_date;
+
+       Evas_Object *scroll_win;
+       Evas_Object *rect;
+
+       Eina_Bool is_repeat_type;
+
+       int enter;
+       int selected_repeat_radio;
+       int prev_selected_repeat_radio;
+       int selected_repeat_until_radio;
+       int flag;
+       int time;
+
+       Elm_Theme *theme;
+
+       cal_repeat_term_t repeat;
+};
+
+static int __cal_edit_repeat_dayselector_index[] = {
+       ELM_DAYSELECTOR_SUN,
+       ELM_DAYSELECTOR_MON,
+       ELM_DAYSELECTOR_TUE,
+       ELM_DAYSELECTOR_WED,
+       ELM_DAYSELECTOR_THU,
+       ELM_DAYSELECTOR_FRI,
+       ELM_DAYSELECTOR_SAT,
+};
+
+static char *__cal_edit_repeat_repeat_str[] = {
+       [CAL_REPEAT_NONE] = NULL,
+       [CAL_REPEAT_EVERY_DAY] = NULL,
+       [CAL_REPEAT_EVERY_WEEK] = NULL,
+       [CAL_REPEAT_EVERY_MONTH] = NULL,
+       [CAL_REPEAT_EVERY_YEAR] = NULL,
+};
+
+static int __cal_edit_repeat_repeat_index[] = {
+       CAL_REPEAT_NONE,
+       CAL_REPEAT_EVERY_DAY,
+       CAL_REPEAT_EVERY_WEEK,
+       CAL_REPEAT_EVERY_MONTH,
+       CAL_REPEAT_EVERY_YEAR,
+};
+
+static const char *__cal_edit_repeat_repeat_until_str[] = {
+       [CAL_REPEAT_NONE] = NULL,
+       [CAL_REPEAT_EVERY_DAY] = NULL,
+       [CAL_REPEAT_EVERY_WEEK] = "",
+};
+
+static int __cal_edit_repeat_repeat_until_index[] = {
+       CAL_REPEAT_NONE,
+       CAL_REPEAT_EVERY_DAY,
+       CAL_REPEAT_EVERY_WEEK,
+};
+
+static Elm_Entry_Filter_Limit_Size _limit_2char = {
+       .max_char_count = 2,
+};
+static Elm_Entry_Filter_Accept_Set _digit_only = {
+       .accepted = "0123456789",
+};
+
+static Elm_Genlist_Item_Class itc_seperator, itc_1icon_1text, itc_1icon;
+
+typedef struct __cal_edit_repeat_item_data cal_edit_repeat_item_data;
+struct __cal_edit_repeat_item_data
+{
+       struct _priv *p;
+       int repeat_index;
+       int repeat_type;
+       Elm_Object_Item *it;
+       Evas_Object *item_radio;
+};
+
+static unsigned short days_table[12] = {
+       0,
+       31,
+       31 + 28,
+       31 + 28 + 31,
+       31 + 28 + 31 + 30,
+       31 + 28 + 31 + 30 + 31,
+       31 + 28 + 31 + 30 + 31 + 30,
+       31 + 28 + 31 + 30 + 31 + 30 + 31,
+       31 + 28 + 31 + 30 + 31 + 30 + 31 + 31,
+       31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30,
+       31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31,
+       31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30,
+};
+
+#define is_leap_year_tm(y)  (((y+1900)%4 == 0 && ((y+1900)%100 != 0 || (y+1900)%400 == 0))? 1 : 0)
+
+static int __cal_edit_repeat_get_day_of_week(struct tm* tm)
+{
+       CAL_ASSERT(tm);
+       int days = 0;
+       int year = 0;
+       int month = 0;
+
+       days = tm->tm_mday;
+       year = tm->tm_year+1900;
+       month = tm->tm_mon;
+
+       days=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400 + days_table[month] + tm->tm_mday + ( (month>1) ? is_leap_year_tm(year) : 0 ) ;
+       return days%7;
+}
+
+static void __cal_edit_repeat_set_weekly_selected_days(struct _priv *p, int val)
+{
+       int i, j;
+       int nds = 0;
+       Eina_Bool b;
+       if(NULL == p)
+       {
+               return;
+       }
+       if(val != CAL_REPEAT_EVERY_WEEK)
+       {
+               for (i = 0; i < sizeof(__cal_edit_repeat_dayselector_index)/sizeof(__cal_edit_repeat_dayselector_index[0]); i++)
+               {
+                       b = elm_dayselector_day_selected_get(p->day_sel, __cal_edit_repeat_dayselector_index[i]);
+                       if (b == EINA_TRUE)
+                       {
+                               elm_dayselector_day_selected_set(p->day_sel, __cal_edit_repeat_dayselector_index[i], EINA_FALSE);
+                       }
+               }
+       }
+       else
+       {
+               for (j = 0; j < sizeof(__cal_edit_repeat_dayselector_index)/sizeof(__cal_edit_repeat_dayselector_index[0]); j++)
+               {
+                       b = elm_dayselector_day_selected_get(p->day_sel, __cal_edit_repeat_dayselector_index[j]);
+                       if (b == EINA_TRUE)
+                       {
+                               nds++;
+                       }
+               }
+               if(0 == nds)
+               {
+                       elm_dayselector_day_selected_set(p->day_sel, __cal_edit_repeat_get_day_of_week(p->start_date_time), EINA_TRUE);
+               }
+       }
+}
+
+static void __cal_edit_repeat_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       struct _priv *p = data;
+
+       free(p);
+}
+
+static void __cal_edit_repeat_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct _priv *p;
+       Evas_Event_Mouse_Up *ev = ei;
+       int val = (int)data;
+
+       if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+       elm_radio_value_set(p->repeat_radio_group, val);
+       p->prev_selected_repeat_radio = p->selected_repeat_radio;
+       p->selected_repeat_radio = val;
+
+       __cal_edit_repeat_set_weekly_selected_days(p ,val);//added by zhongyuan
+}
+
+static void __cal_edit_repeat_entry_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct _priv *p;
+       Evas_Event_Mouse_Up *ev = ei;
+       int val = (int)data;
+       const char* str = NULL;
+
+       if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+       elm_radio_value_set(p->repeat_until_radio_group, val);
+       if(1 == val)
+       {
+               elm_object_focus_set(p->times, EINA_TRUE);
+               elm_entry_cursor_end_set(p->times);
+       }
+       if(!elm_radio_value_get(p->repeat_radio_group))
+       {
+               elm_radio_value_set(p->repeat_radio_group, 1);
+               p->selected_repeat_radio = 1;
+       }
+       p->selected_repeat_until_radio = val;
+
+       str = elm_entry_entry_get(p->times);
+       if (!str || str[0] == '\0')
+               return;
+
+       *(p->occurrency) = atoi(str);
+}
+
+
+static inline Evas_Object* __cal_edit_repeat_add_layout(Evas_Object *dg, int val)
+{
+       Evas_Object *ly;
+
+       if (val == CAL_REPEAT_EVERY_WEEK)
+               return cal_util_add_layout(dg, "dialoguegroup/weekly");
+
+       ly = elm_layout_add(dg);
+       if (ly)
+               elm_layout_theme_set(ly, "dialogueitem", "base", "button_with_text");
+       return ly;
+}
+
+static void __cal_edit_repeat_unset_day_selector(struct _priv *p)
+{
+       c_retm_if(!p, "p is null");
+
+       int j;
+       int nds = 0;
+       Eina_Bool b;
+
+       for (j = 0; j < sizeof(__cal_edit_repeat_dayselector_index)/sizeof(__cal_edit_repeat_dayselector_index[0]); j++) {
+               b = elm_dayselector_day_selected_get(p->day_sel, __cal_edit_repeat_dayselector_index[j]);
+               if (b)
+                       nds++;
+       }
+       if (nds == 0) {
+               elm_radio_value_set(p->repeat_radio_group, CAL_REPEAT_NONE);
+               p->prev_selected_repeat_radio = p->selected_repeat_radio;
+               p->selected_repeat_radio = CAL_REPEAT_NONE;
+       }
+}
+
+static void __cal_edit_repeat_day_selector_changed_callback(void *data, Evas_Object *obj, void *ei)
+{
+       struct _priv *p = data;
+       int  j;
+       int nds = 0;
+       Eina_Bool b;
+
+       elm_radio_value_set(p->repeat_radio_group, CAL_REPEAT_EVERY_WEEK);
+
+       if (p->prev_selected_repeat_radio != CAL_REPEAT_EVERY_WEEK
+               && p->selected_repeat_radio == CAL_REPEAT_EVERY_WEEK) {
+               for (j = 0; j < sizeof(__cal_edit_repeat_dayselector_index)/sizeof(__cal_edit_repeat_dayselector_index[0]); j++) {
+
+                       b = elm_dayselector_day_selected_get(p->day_sel, __cal_edit_repeat_dayselector_index[j]);
+
+                       if (b)
+                               nds++;
+
+                       if (1 < nds)
+                               elm_dayselector_day_selected_set(p->day_sel, __cal_edit_repeat_dayselector_index[0], EINA_FALSE);
+                       else if(nds == 0)
+                               elm_dayselector_day_selected_set(p->day_sel, __cal_edit_repeat_dayselector_index[0], EINA_TRUE);
+               }
+       }
+
+       __cal_edit_repeat_unset_day_selector(p);
+}
+
+static Evas_Object* __cal_edit_repeat_add_day_selector(Evas_Object *dg, struct _priv *p)
+{
+       c_retvm_if(!dg, NULL, "dg is null");
+       c_retvm_if(!p, NULL, "p is null");
+
+       Evas_Object *ds = elm_dayselector_add(dg);
+       c_retvm_if(!ds, NULL, "ds is null");
+
+       evas_object_smart_callback_add(ds, "dayselector,changed", __cal_edit_repeat_day_selector_changed_callback, p);
+
+       evas_object_propagate_events_set(ds, EINA_FALSE);
+
+       return ds;
+}
+
+static cal_repeat_term_t __cal_edit_repeat_set_week(cal_repeat_term_t r, Evas_Object *ds, int *flag)
+{
+       int f;
+       int i;
+       Eina_Bool b;
+
+       if (r != CAL_REPEAT_EVERY_WEEK)
+               return r;
+
+       if (!ds || !flag)
+               return CAL_REPEAT_NONE;
+
+       f = 0;
+       for (i = 0; i < sizeof(__cal_edit_repeat_dayselector_index)/sizeof(__cal_edit_repeat_dayselector_index[0]); i++)
+       {
+               b = elm_dayselector_day_selected_get(ds, __cal_edit_repeat_dayselector_index[i]);
+               if (b == EINA_TRUE)
+                       f |= (1 << i);
+       }
+       *flag = f;
+
+       if (f == 0)
+               return CAL_REPEAT_NONE;
+
+       if (f == 0x7f)
+               return CAL_REPEAT_EVERY_DAY;
+
+       return r;
+}
+
+cal_repeat_term_t cal_edit_repeat_get_repeat(Evas_Object *ly, int *flag, int *num, struct tm *repeat_end_date_time, int *occurrency)
+{
+       struct _priv *p;
+       cal_repeat_term_t r;
+       char* entry = NULL;
+
+       CAL_ASSERT(ly);
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name))
+       {
+               ERR("Invalid object");
+               return -1;
+       }
+
+
+       if (p->repeat_until_radio_group)
+       {
+               r = p->selected_repeat_until_radio;
+               *num = r;
+
+               switch(r)
+               {
+               case 0:
+                       repeat_end_date_time->tm_year = 2037 - 1900;
+                       repeat_end_date_time->tm_mon = 12 - 1;
+                       repeat_end_date_time->tm_mday = 31;
+                       repeat_end_date_time->tm_hour = 23;
+                       repeat_end_date_time->tm_min = 59;
+                       repeat_end_date_time->tm_sec = 59;
+                       break;
+
+               case 1:
+                       entry = (char*)elm_entry_entry_get(p->times);
+                       if(entry)
+                               *occurrency = atoi(entry);
+                       break;
+
+               default:
+                       break;
+               }
+       }
+
+       r = CAL_REPEAT_NONE;
+       if (p->repeat_radio_group)
+               r = p->selected_repeat_radio;
+
+       r = __cal_edit_repeat_set_week(r, p->day_sel, flag);
+       return r;
+}
+
+static inline void __cal_edit_repeat_get_week_str(cal_repeat_term_t term, int flag, char *buf, int sz)
+{
+       int i;
+       int idx;
+       time_t t = time(NULL);
+       struct tm tm;
+       struct tm *returned_tm = localtime_r(&t, &tm);
+       if(!returned_tm)
+       {
+               ERR("localtime return null");
+               return;
+       }
+
+       if (flag == 0x41)
+       {
+               CAL_STRNCPY(buf, _("Every weekends"), sz);
+               buf[sz-1] = '\0';
+               return;
+       }
+
+       if (flag == 0x3e)
+       {
+               CAL_STRNCPY(buf, _("Every weekdays"), sz);
+               buf[sz-1] = '\0';
+               return;
+       }
+
+       idx = 0;
+       cal_util_update_tm_day(&tm,(-1)*tm.tm_wday);
+
+       for (i = 0; i < 7; i++)
+       {
+               if ((flag >> i) & 1)
+               {
+                       if (idx != 0)
+                       {
+                               CAL_STRNCAT(&buf[idx], ", ", sz - idx);
+                               idx += sizeof(", ") - 1;
+                       }
+                       idx += cal_util_get_time_text(&buf[idx], sz - idx, CAL_UTIL_DATE_FORMAT_2, NULL, &tm);
+               }
+               cal_util_update_tm_day(&tm,1);
+       }
+}
+
+void cal_edit_repeat_get_repeat_str(cal_repeat_term_t term, int flag, char *buf, int sz)
+{
+       const char *s;
+
+       if (term == CAL_REPEAT_EVERY_WEEK && flag != 0) {
+               __cal_edit_repeat_get_week_str(term, flag, buf, sz);
+               return;
+       }
+
+       s = __cal_edit_repeat_repeat_str[term];
+       if (CAL_REPEAT_NONE == term || !s)
+       {
+               s = S_("IDS_COM_BODY_OFF");
+       }
+
+       CAL_STRNCPY(buf, _(s), sz);
+       buf[sz-1] = '\0';
+}
+
+static char *__cal_edit_repeat_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       CAL_ASSERT(data);
+       cal_edit_repeat_item_data *item_data = (cal_edit_repeat_item_data *)data;
+       int repeat_type = item_data->repeat_type;
+       int repeat_index = item_data->repeat_index;
+
+       if (!CAL_STRCMP(part, "elm.text"))
+       {
+               switch (repeat_type)
+               {
+               case -1:
+                       return strdup(C_("IDS_CLD_BODY_REPEAT"));
+               case -2:
+                       return strdup(C_("IDS_CLD_BODY_REPEAT_UNTIL"));
+               case 0:
+                       return strdup(__cal_edit_repeat_repeat_until_str[__cal_edit_repeat_repeat_until_index[repeat_index]]);
+               case 1:
+                       return strdup(__cal_edit_repeat_repeat_str[__cal_edit_repeat_repeat_index[repeat_index]]);
+               default:
+                       return NULL;
+               }
+       }
+       return NULL;
+}
+
+static void __cal_edit_repeat_genlist_item_delete_callback(void *data, Evas_Object *obj)
+{
+       CAL_ASSERT(data);
+       cal_edit_repeat_item_data *item_data = (cal_edit_repeat_item_data*)data;
+
+       if (item_data->repeat_type)
+       {
+               CAL_ASSERT(item_data->p);
+               struct _priv* p = item_data->p;
+
+               CAL_ASSERT(p->repeat_radio_group_member);
+               p->repeat_radio_group_member[item_data->repeat_index] = NULL;
+       }
+
+       free(item_data);
+       return;
+}
+
+static Eina_Bool __cal_edit_repeat_get_genlist_item_state(void *data, Evas_Object *obj, const char *part)
+{
+       return EINA_FALSE;
+}
+
+static void __cal_edit_repeat_set_radio_group(struct _priv *p, Evas_Object *rd, int val)
+{
+       if (p->is_repeat_type)
+       {
+               if (!val)
+               {
+                       p->repeat_radio_group = rd;
+                       elm_radio_group_add(p->repeat_radio_group_member[1], p->repeat_radio_group);
+                       elm_radio_group_add(p->repeat_radio_group_member[2], p->repeat_radio_group);
+                       elm_radio_group_add(p->repeat_radio_group_member[3], p->repeat_radio_group);
+                       elm_radio_group_add(p->repeat_radio_group_member[4], p->repeat_radio_group);
+               }
+
+               elm_radio_group_add(rd, p->repeat_radio_group);
+       }
+       else
+       {
+               if (!val)
+                       p->repeat_until_radio_group = rd;
+
+               elm_radio_group_add(rd, p->repeat_until_radio_group);
+       }
+}
+
+static Evas_Object* __cal_edit_repeat_add_custom_text_object(struct _priv *p, Evas_Object *dg, const char *text)
+{
+       Evas_Object *entry = NULL;
+
+       if (!text || text[0] == '\0')
+               return entry;
+
+       entry = elm_entry_add(dg);
+       CAL_ASSERT(entry);
+
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_context_menu_disabled_set(entry, EINA_TRUE);
+       evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_EXPAND);
+       elm_entry_editable_set(entry, EINA_FALSE);
+       elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
+       elm_entry_autocapital_type_set(entry, EINA_TRUE);
+
+       elm_entry_entry_set(entry,text);
+
+       return entry;
+}
+
+static Evas_Object* __cal_edit_repeat_add_week_radio(Evas_Object *dg, const char *text, int val, struct _priv *p, cal_edit_repeat_item_data *item_data)
+{
+       Evas_Object *ly;
+       Evas_Object *rd;
+       Evas_Object *ds;
+       Evas_Object *entry_weekly;
+
+       ly = cal_util_add_layout(dg, "dialoguegroup/weekly");
+       if (!ly)
+               return NULL;
+
+       entry_weekly = __cal_edit_repeat_add_custom_text_object(p, dg, text);
+       if (!entry_weekly)
+       {
+               evas_object_del(ly);
+               return NULL;
+       }
+       elm_object_part_content_set(ly, "text", entry_weekly);
+       evas_object_show(ly);
+
+       rd = elm_radio_add(dg);
+       if (!rd) {
+               evas_object_del(ly);
+               return NULL;
+       }
+
+       elm_radio_state_value_set(rd, val);
+       item_data->item_radio = rd;
+       *(p->repeat_radio_group_member + val) = rd;
+       __cal_edit_repeat_set_radio_group(p, rd, val);
+
+       ds = __cal_edit_repeat_add_day_selector(dg, p);
+       if (!ds)
+       {
+               evas_object_del(rd);
+               evas_object_del(ly);
+               return NULL;
+       }
+       p->day_sel = ds;
+       elm_object_part_content_set(ly, "content2", ds);
+       elm_object_part_content_set(ly, "content", rd);
+
+       return ly;
+}
+
+static Evas_Object* __cal_edit_repeat_add_radio(Evas_Object *dg, const char *text, int val, struct _priv *p, cal_edit_repeat_item_data *item_data)
+{
+       Evas_Object *ly;
+       Evas_Object *rd;
+
+       ly = cal_util_add_layout(dg, "dialoguegroup/radio");
+       if (!ly)
+               return NULL;
+
+       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly), "text", _(text));
+       evas_object_show(ly);
+       evas_object_data_set(ly, "priv", p);
+       if(p->is_repeat_type)
+       {
+               evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_edit_repeat_clicked_callback, (void *)val);
+       }
+       else
+       {
+               if(0 == val || 1 == val)
+               {
+                       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_edit_repeat_entry_clicked_callback, (void *)val);
+               }
+       }
+
+       rd = elm_radio_add(dg);
+       if (!rd) {
+               evas_object_del(ly);
+               return NULL;
+       }
+       evas_object_propagate_events_set(rd, EINA_TRUE);
+
+       elm_radio_state_value_set(rd, val);
+
+       if (val == 2)
+               elm_genlist_item_bring_in(elm_genlist_last_item_get(p->scroll_win), ELM_GENLIST_ITEM_SCROLLTO_TOP);
+
+       elm_object_part_content_set(ly, "content", rd);
+       item_data->item_radio = rd;
+
+       if (item_data->repeat_type)
+               *(p->repeat_radio_group_member + val) = rd;
+
+       __cal_edit_repeat_set_radio_group(p, rd, val);
+
+       if (!p->is_repeat_type)
+               p->end_date_ly[val] = ly;
+
+       return ly;
+}
+
+static void __cal_edit_repeat_entry_unfocused(void *data, Evas_Object *obj, void *event_info)
+{
+       struct _priv *p = (struct _priv *)data;
+
+       char times[8] = {0,};
+       snprintf(times, 7, "%d", p->time);
+       elm_entry_entry_set(p->times, times);
+
+}
+
+static void __cal_edit_repeat_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_ASSERT(data);
+       struct _priv *p = data;
+
+       const char *s = elm_entry_entry_get(p->times);
+       p->time = atoi(s);
+}
+
+static Evas_Object* __cal_edit_repeat_add_entry(Evas_Object *parent, struct _priv *p)
+{
+       Evas_Object *e;
+       Ecore_IMF_Context *ic;
+
+       e = elm_entry_add(parent);
+       if (!e)
+               return NULL;
+
+       elm_object_style_set(e, "font_color_black");
+       elm_entry_single_line_set(e, EINA_TRUE);
+       elm_entry_markup_filter_append(e, elm_entry_filter_limit_size, &_limit_2char);
+       elm_entry_markup_filter_append(e, elm_entry_filter_accept_set, &_digit_only);
+       elm_entry_input_panel_layout_set(e, ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
+       elm_entry_context_menu_disabled_set(e, EINA_TRUE);
+
+       ic = elm_entry_imf_context_get(e);
+       if (!ic)
+               return NULL;
+
+       evas_object_smart_callback_add(e, "unfocused", __cal_edit_repeat_entry_unfocused, p);
+       evas_object_smart_callback_add(e, "changed", __cal_edit_repeat_entry_changed_callback, p);
+
+       return e;
+}
+
+
+static Evas_Object* __cal_edit_repeat_add_times(Evas_Object *dg, const char *text, int val,    struct _priv *p,  cal_edit_repeat_item_data *item_data)
+{
+       Evas_Object *ly;
+       Evas_Object *rd;
+       Evas_Object *entry;
+       Evas_Object *entry_times;
+       char times[8] = {0,};
+
+       ly = cal_util_add_layout(dg, "dialoguegroup/repeat/times");
+       if (!ly)
+               return NULL;
+
+       entry_times = __cal_edit_repeat_add_custom_text_object(p, dg, text);
+       if (!entry_times)
+       {
+               evas_object_del(ly);
+               return NULL;
+       }
+       elm_object_part_content_set(ly, "text", entry_times);
+
+       evas_object_show(ly);
+       evas_object_data_set(ly, "priv", p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_edit_repeat_entry_clicked_callback, (void *)val);
+
+       rd = elm_radio_add(dg);
+       if (!rd) {
+               evas_object_del(ly);
+               return NULL;
+       }
+
+       elm_radio_state_value_set(rd, val);
+       elm_object_part_content_set(ly, "content", rd);
+       item_data->item_radio = rd;
+       __cal_edit_repeat_set_radio_group(p, rd, val);
+
+       entry = __cal_edit_repeat_add_entry(ly, p);
+       if (!entry)
+       {
+               evas_object_del(ly);
+               return NULL;
+       }
+       elm_object_part_content_set(ly, "input_sw", entry);
+
+       //elm_entry_entry_set(entry,"10");
+       p->times = entry;
+       snprintf(times, 7, "%d", p->time);
+       elm_entry_entry_set(p->times, times);
+
+       return ly;
+}
+
+static void __cal_edit_repeat_end_date_changed_callback(void *data, Evas_Object *obj, void *ei)
+{
+       struct _priv *p = data;
+
+       elm_datetime_value_get(obj, p->repeat_end_date_time);
+}
+
+static Evas_Object* __cal_edit_repeat_add_radio_tm(Evas_Object *dg, struct tm* repeat_end_date, int val, struct _priv *p, cal_edit_repeat_item_data *item_data)
+{
+       Evas_Object *ly;
+       Evas_Object *rd;
+       Evas_Object *df;
+
+       ly = cal_util_add_layout(dg, "dialoguegroup/radio");
+       if (!ly)
+               return NULL;
+
+       evas_object_show(ly);
+       evas_object_data_set(ly, "priv", p);
+
+       rd = elm_radio_add(dg);
+       if (!rd) {
+               evas_object_del(ly);
+               return NULL;
+       }
+
+       evas_object_propagate_events_set(rd, EINA_TRUE);
+
+       elm_radio_state_value_set(rd, val);
+
+       if (val == 2)
+               elm_genlist_item_bring_in(elm_genlist_last_item_get(p->scroll_win), ELM_GENLIST_ITEM_SCROLLTO_TOP);
+
+       elm_object_part_content_set(ly, "content", rd);
+       item_data->item_radio = rd;
+
+       if (item_data->repeat_type)
+               *(p->repeat_radio_group_member + val) = rd;
+
+       __cal_edit_repeat_set_radio_group(p, rd, val);
+
+       if (!p->is_repeat_type)
+               p->end_date_ly[val] = ly;
+
+       df = cal_util_add_datetime(dg, NULL, NULL);
+       c_retvm_if(!df, NULL, "df is null");
+
+       Evas_Object *datetime = elm_object_part_content_get(df, "elm.icon");
+       c_retvm_if(!datetime, NULL, "datetime is null");
+
+       elm_datetime_field_visible_set(datetime, ELM_DATETIME_HOUR, EINA_FALSE);
+       elm_datetime_field_visible_set(datetime, ELM_DATETIME_MINUTE, EINA_FALSE);
+       elm_datetime_field_visible_set(datetime, ELM_DATETIME_AMPM, EINA_FALSE);
+
+       elm_datetime_field_limit_set(datetime, ELM_DATETIME_YEAR, 70, 137);
+
+       if (repeat_end_date)
+               elm_datetime_value_set(datetime, repeat_end_date);
+
+       evas_object_smart_callback_add(datetime,"changed", __cal_edit_repeat_end_date_changed_callback, p);
+
+       evas_object_show(df);
+
+       elm_object_part_content_set(ly, "datefield", df);
+
+       return ly;
+}
+
+static Evas_Object* __cal_edit_repeat_add_radio_group(Evas_Object *dg, const char *text, int val, struct _priv *p, cal_edit_repeat_item_data *item_data)
+{
+       if (p->is_repeat_type)
+       {
+               if (val == CAL_REPEAT_EVERY_WEEK)
+                       return __cal_edit_repeat_add_week_radio(dg, text, val, p, item_data);
+
+               return __cal_edit_repeat_add_radio(dg, text, val, p, item_data);
+       }
+       else
+       {
+               switch(val)
+               {
+               case 0:
+                       return __cal_edit_repeat_add_radio(dg, S_("IDS_COM_BODY_NONE"), val, p, item_data);
+               case 1:
+                       return __cal_edit_repeat_add_times(dg, text, val, p, item_data);
+               case 2:
+                       return __cal_edit_repeat_add_radio_tm(dg, p->repeat_end_date_time, val, p, item_data);
+
+               default:
+                       return NULL;
+               }
+       }
+}
+
+static void __cal_edit_repeat_set_selected_repeat_state(struct _priv *p)
+{
+       int i = 0;
+       Eina_Bool b;
+       elm_radio_value_set(p->repeat_radio_group, p->selected_repeat_radio);
+
+       if (p->selected_repeat_radio == CAL_REPEAT_EVERY_WEEK)
+       {
+               for (i = 0; i < sizeof(__cal_edit_repeat_dayselector_index)/sizeof(__cal_edit_repeat_dayselector_index[0]); i++)
+               {
+                       b = ( (p->flag) >> i) & 1;
+                       elm_dayselector_day_selected_set(p->day_sel, __cal_edit_repeat_dayselector_index[i], b);
+               }
+       }
+}
+
+static void __cal_edit_repeat_set_selected_repeat_until_state(struct _priv *p)
+{
+       char times[10] = {0};
+       elm_radio_value_set(p->repeat_until_radio_group, p->selected_repeat_until_radio);
+       switch (p->selected_repeat_until_radio)
+       {
+       case 1:
+               elm_radio_value_set(p->repeat_until_radio_group, 1);
+               snprintf(times,sizeof(times),"%d", p->time);
+               elm_entry_entry_set(p->times,times);
+               break;
+
+       case 2:
+               snprintf(times,sizeof(times),"%d", p->time);
+               elm_entry_entry_set(p->times,times);
+               elm_radio_value_set(p->repeat_until_radio_group, 2);
+
+               break;
+
+       default:
+               elm_radio_value_set(p->repeat_until_radio_group, 0);
+               snprintf(times,sizeof(times),"%d", p->time);
+               elm_entry_entry_set(p->times,times);
+
+               break;
+       }
+}
+
+static Evas_Object *__cal_edit_repeat_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       Evas_Object *e_obj = NULL;
+
+       if (!CAL_STRCMP(part, "elm.icon"))
+       {
+               cal_edit_repeat_item_data *item_data = (cal_edit_repeat_item_data *)data;
+               struct _priv *p = item_data->p;
+               int repeat_type = item_data->repeat_type;
+               int repeat_index = item_data->repeat_index;
+               if (repeat_type)
+               {
+                       p->is_repeat_type = repeat_type;
+                       e_obj = __cal_edit_repeat_add_radio_group(obj, __cal_edit_repeat_repeat_str[__cal_edit_repeat_repeat_index[repeat_index]], __cal_edit_repeat_repeat_index[repeat_index], p, item_data);
+                       __cal_edit_repeat_set_selected_repeat_state(p);
+               }
+               else
+               {
+                       p->is_repeat_type = false;
+                       e_obj = __cal_edit_repeat_add_radio_group(obj, __cal_edit_repeat_repeat_until_str[__cal_edit_repeat_repeat_until_index[repeat_index]], __cal_edit_repeat_repeat_until_index[repeat_index], p, item_data);
+                       __cal_edit_repeat_set_selected_repeat_until_state(p);
+               }
+       }
+
+       return e_obj;
+
+}
+
+static void __cal_edit_repeat_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       cal_edit_repeat_item_data *item_data;
+       Elm_Object_Item *it = elm_genlist_selected_item_get(obj);
+       if (it)
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       item_data = (cal_edit_repeat_item_data *)elm_object_item_data_get(it);
+       struct _priv *p = item_data->p;
+       int type = item_data->repeat_type;
+       int index = item_data->repeat_index;
+       if (type)
+       {
+               if (CAL_REPEAT_EVERY_WEEK == __cal_edit_repeat_repeat_index[index])
+               {
+                       __cal_edit_repeat_set_weekly_selected_days(p, CAL_REPEAT_EVERY_WEEK);
+
+                       p->prev_selected_repeat_radio = p->selected_repeat_radio;
+               }
+               else if (CAL_REPEAT_NONE == __cal_edit_repeat_repeat_index[index])
+                       p->selected_repeat_until_radio = CAL_REPEAT_NONE;
+
+               p->selected_repeat_radio = __cal_edit_repeat_repeat_index[index];
+               elm_radio_value_set(p->repeat_radio_group, __cal_edit_repeat_repeat_index[index]);
+               elm_object_focus_set(p->times, EINA_FALSE);
+       }
+       else
+       {
+               elm_radio_value_set(p->repeat_until_radio_group, __cal_edit_repeat_repeat_until_index[index]);
+               p->selected_repeat_until_radio = __cal_edit_repeat_repeat_until_index[index];
+
+               if (CAL_REPEAT_EVERY_DAY != __cal_edit_repeat_repeat_until_index[index])
+                       elm_object_focus_set(p->times, EINA_FALSE);
+       }
+}
+
+static void __cal_edit_repeat_add_separator(Evas_Object *genlist, struct _priv *p, int index)
+{
+       cal_edit_repeat_item_data *item_data = NULL;
+       CAL_CALLOC(item_data, 1, cal_edit_repeat_item_data);
+
+       item_data->repeat_index = index;
+       item_data->repeat_type = index;
+       item_data->p = p;
+       item_data->it = elm_genlist_item_append(genlist, &itc_seperator, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_repeat_genlist_item_select_callback, NULL);
+
+       elm_genlist_item_select_mode_set(item_data->it, ELM_OBJECT_SELECT_MODE_NONE);
+}
+
+static void __cal_edit_repeat_add_repeat(Evas_Object *genlist, struct _priv *p)
+{
+       int i;
+       for (i = 0; i < sizeof(__cal_edit_repeat_repeat_index)/sizeof(__cal_edit_repeat_repeat_index[0]); i++)
+       {
+               cal_edit_repeat_item_data *item_data = NULL;
+               CAL_CALLOC(item_data, 1, cal_edit_repeat_item_data);
+
+               item_data->p = p;
+               item_data->repeat_index = i;
+               item_data->repeat_type = EINA_TRUE;
+               if (CAL_REPEAT_EVERY_WEEK == __cal_edit_repeat_repeat_index[i])
+               {
+                       item_data->it = elm_genlist_item_append(genlist, &itc_1icon, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_repeat_genlist_item_select_callback, NULL);
+               }
+               else
+               {
+                       item_data->it = elm_genlist_item_append(genlist, &itc_1icon_1text, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_repeat_genlist_item_select_callback, NULL);
+               }
+       }
+}
+
+static void __cal_edit_repeat_add_repeat_until(Evas_Object *genlist, struct _priv *p)
+{
+       int i;
+       for (i = 0; i < sizeof(__cal_edit_repeat_repeat_until_index)/sizeof(__cal_edit_repeat_repeat_until_index[0]); i++)
+       {
+               cal_edit_repeat_item_data *item_data = NULL;
+               CAL_CALLOC(item_data, 1, cal_edit_repeat_item_data);
+
+               item_data->p = p;
+               item_data->repeat_index = i;
+               item_data->repeat_type = EINA_FALSE;
+               if (CAL_REPEAT_NONE != __cal_edit_repeat_repeat_until_index[i])
+               {
+                       item_data->it = elm_genlist_item_append(genlist, &itc_1icon, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_repeat_genlist_item_select_callback, NULL);
+               }
+               else
+               {
+                       item_data->it = elm_genlist_item_append(genlist, &itc_1icon_1text, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_repeat_genlist_item_select_callback, NULL);
+               }
+       }
+}
+
+static void __cal_edit_repeat_add_genlist_item(Evas_Object *genlist, struct _priv *p)
+{
+       __cal_edit_repeat_add_separator(genlist, p, -1);
+       __cal_edit_repeat_add_repeat(genlist, p);
+       __cal_edit_repeat_add_separator(genlist, p, -2);
+       __cal_edit_repeat_add_repeat_until(genlist, p);
+
+}
+
+static int __cal_edit_repeat_add_content(struct _priv *p)
+{
+       p->scroll_win = elm_genlist_add(p->ly);
+       CAL_ASSERT(p->scroll_win);
+
+       Evas_Object* cf;
+
+       if (NULL != p->theme)
+               elm_object_theme_set(p->scroll_win, p->theme);
+
+       itc_seperator.item_style = "dialogue/title";
+       itc_seperator.func.text_get = __cal_edit_repeat_get_genlist_item_label;
+       itc_seperator.func.state_get = __cal_edit_repeat_get_genlist_item_state;
+       itc_seperator.func.del = __cal_edit_repeat_genlist_item_delete_callback;
+
+       itc_1icon_1text.item_style = "dialogue/1text.1icon.2";
+       itc_1icon_1text.func.text_get = __cal_edit_repeat_get_genlist_item_label;
+       itc_1icon_1text.func.del = __cal_edit_repeat_genlist_item_delete_callback;
+       itc_1icon_1text.func.content_get = __cal_edit_repeat_get_genlist_item_icon;
+
+       itc_1icon.item_style = "dialogue/1icon";
+       itc_1icon.func.text_get = __cal_edit_repeat_get_genlist_item_label;
+       itc_1icon.func.del = __cal_edit_repeat_genlist_item_delete_callback;
+       itc_1icon.func.content_get = __cal_edit_repeat_get_genlist_item_icon;
+
+       __cal_edit_repeat_add_genlist_item(p->scroll_win, p);
+
+       cf = elm_conformant_add(p->ad->win);
+       CAL_ASSERT(cf);
+
+       evas_object_size_hint_weight_set(cf, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(cf);
+       elm_object_content_set(cf, p->scroll_win);
+       elm_object_style_set(cf, "internal_layout");
+       elm_object_part_content_set(p->ly, "sw", cf);
+
+       return 0;
+}
+
+static void __cal_edit_repeat_set_state(struct _priv *p, cal_repeat_term_t term, int num, struct tm* repeat_end_date_time, int* occurrency, int flag)
+{
+       p->selected_repeat_radio = term;
+       p->prev_selected_repeat_radio = term;
+       p->selected_repeat_until_radio = num;
+       p->flag = flag;
+}
+
+Evas_Object *cal_edit_repeat_create_view(Evas_Object *parent, struct appdata* ad, cal_repeat_term_t term, int num, struct tm* start_date_time, struct tm* repeat_end_date_time, int* occurrency, int* is_all_day, int flag)
+{
+       CAL_FN_START;
+
+       struct _priv *p;
+       Evas_Object *ly;
+       int r;
+
+       CAL_ASSERT(parent);
+
+       CAL_CALLOC(p, 1, struct _priv);
+
+       p->name = _name;
+       p->parent = parent;
+       p->repeat_radio_group = NULL;
+       p->repeat_until_radio_group = NULL;
+       p->ad = ad;
+       p->win = ad->win;
+       p->nv = ad->nv;
+       p->repeat = term;
+       p->ly_date = NULL;
+
+       ly = cal_util_add_layout(p->nv, "edit");
+       if (!ly)
+       {
+               free(p);
+               return NULL;
+       }
+
+       p->ly = ly;
+
+       p->occurrency = occurrency;
+       p->start_date_time = start_date_time;
+       p->repeat_end_date_time = repeat_end_date_time;
+       p->is_all_day = is_all_day;
+       p->theme = ad->theme;
+       p->time = *(p->occurrency);
+       evas_object_data_set(ly, "priv", p);
+
+       __cal_edit_repeat_repeat_str[CAL_REPEAT_NONE] = S_("IDS_COM_BODY_OFF");
+       __cal_edit_repeat_repeat_str[CAL_REPEAT_EVERY_DAY] = C_("IDS_CLD_BODY_DAILY");
+       __cal_edit_repeat_repeat_str[CAL_REPEAT_EVERY_WEEK] = C_("IDS_CLD_BODY_WEEKLY");
+       __cal_edit_repeat_repeat_str[CAL_REPEAT_EVERY_MONTH] = C_("IDS_CLD_BODY_MONTHLY");
+       __cal_edit_repeat_repeat_str[CAL_REPEAT_EVERY_YEAR] = C_("IDS_CLD_BODY_YEARLY");
+       __cal_edit_repeat_repeat_until_str[CAL_REPEAT_NONE] = S_("IDS_COM_BODY_NONE");
+       __cal_edit_repeat_repeat_until_str[CAL_REPEAT_EVERY_DAY] = C_("IDS_COM_POP_TIMES_LC");
+
+       __cal_edit_repeat_set_state(p, term, num, repeat_end_date_time, occurrency, flag);
+
+       r = __cal_edit_repeat_add_content(p);
+       if (r)
+       {
+               evas_object_del(ly);
+               free(p);
+               return NULL;
+       }
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_edit_repeat_delete_layout, p);
+
+       return ly;
+}
diff --git a/src/edit-repeat.h b/src/edit-repeat.h
new file mode 100755 (executable)
index 0000000..a80ac09
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_EDIT_REPEAT_H__
+#define __CALENDAR_EDIT_REPEAT_H__
+
+#include "cld.h"
+
+/* Return layout */
+Evas_Object *edit_repeat_create(Evas_Object *parent, Evas_Object *nv, cal_repeat_term_t term, int num, struct tm* repeat_end_date_time, int* occurrency, int* is_all_day, int flag, Evas_Object *win);
+Evas_Object *cal_edit_repeat_create_view(Evas_Object *parent, struct appdata* ad, cal_repeat_term_t term, int num, struct tm* start_date_time, struct tm* repeat_end_date_time, int* occurrency, int* is_all_day, int flag);
+
+/* return term: cal_repeat_term_t, flag is for weekly */
+cal_repeat_term_t cal_edit_repeat_get_repeat(Evas_Object *ly, int *flag, int *num, struct tm *repeat_end_date_time, int *occurrency);
+
+void cal_edit_repeat_get_repeat_str(cal_repeat_term_t term, int flag, char *buf, int sz);
+
+#endif /* __CALENDAR_EDIT_REPEAT_H__ */
+
diff --git a/src/edit.h b/src/edit.h
new file mode 100755 (executable)
index 0000000..c40140e
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_EDIT_H__
+#define __CALENDAR_EDIT_H__
+
+#include "cld.h"
+
+int cal_edit_save(Evas_Object *sc);
+
+struct appdata;
+Evas_Object* cal_edit_create_content(Evas_Object *parent, struct appdata *ad, Evas_Object *nv,
+               Evas_Object *win, int cid);
+
+int cal_edit_save(Evas_Object *sc);
+
+void cal_edit_show_location_error_popup(void* data, int error_code);
+
+
+#endif /* __CALENDAR_EDIT_H__ */
+
diff --git a/src/list-delete.c b/src/list-delete.c
new file mode 100755 (executable)
index 0000000..05d06a6
--- /dev/null
@@ -0,0 +1,1212 @@
+/*\r
+\r
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved\r
+\r
+This file is part of org.tizen.efl-calendar\r
+Written by Taeho Kang <taeho84.kang@samsung.com>\r
+\r
+PROPRIETARY/CONFIDENTIAL\r
+\r
+This software is the confidential and proprietary information of\r
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not\r
+disclose such Confidential Information and shall use it only in\r
+accordance with the terms of the license agreement you entered\r
+into with SAMSUNG ELECTRONICS.\r
+\r
+SAMSUNG make no representations or warranties about the suitability\r
+of the software, either express or implied, including but not limited\r
+to the implied warranties of merchantability, fitness for a particular\r
+purpose, or non-infringement. SAMSUNG shall not be liable for any\r
+damages suffered by licensee as a result of using, modifying or\r
+distributing this software or its derivatives.\r
+\r
+*/\r
+\r
+#include "cld.h"\r
+#include <glib.h>\r
+\r
+#define THIRTY_MIN (30 * 60)\r
+#define HH_IN_DAY (24 * 2)\r
+\r
+static const char *_name = "list/base";\r
+\r
+///TODO: get full path from caller\r
+#define VFILE_PATH "/opt/data/ug-calendar"\r
+\r
+static Elm_Entry_Filter_Limit_Size _limit_20char = {\r
+       .max_char_count = 20,\r
+};\r
+\r
+#define MAX_FETCH_COUNT 10\r
+\r
+#define ACCOUNT_LABLE_STRING_LENGTH 128\r
+\r
+struct _priv {\r
+       const char *name;\r
+       struct appdata *ad;\r
+       Evas_Object *parent;\r
+       Evas_Object *ly;\r
+       Evas_Object *no_content;\r
+       Evas_Object *bg;\r
+\r
+       Elm_Object_Item *bt_delete;\r
+       Evas_Object *gl;\r
+       Eina_List *evtlist;\r
+       Evas_Object *select_all_layout;\r
+       Evas_Object *select_all_check;\r
+       Evas_Object *box;\r
+\r
+       int totalcnt;\r
+       int offset;\r
+       Ecore_Idler* idler;\r
+       int num_check;\r
+       Evas_Object * notify;\r
+       Evas_Object * notify_layout;\r
+\r
+       int genlist_count;\r
+       Evas_Object *searchbar;\r
+       const char *searchtext;\r
+       Elm_Object_Item* navi_item;\r
+};\r
+\r
+typedef struct {\r
+       Elm_Object_Item *it;  // Genlist Item pointer\r
+       Eina_Bool checked;     // Check status\r
+       char *label;\r
+       cal_struct *cs;\r
+       struct tm* tm;\r
+       Elm_Genlist_Item_Type it_flag;\r
+}cal_list_delete_item_data;\r
+\r
+static Eina_Bool is_list_delete_destory;\r
+static int is_hour24;\r
+\r
+static void __cal_list_delete_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info);\r
+static void __cal_list_delete_event_update_noti_received_cb (void *user_data);\r
+static char* __cal_list_delete_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);\r
+static Evas_Object *__cal_list_delete_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);\r
+static void __cal_list_delete_update_all_check(struct _priv* p);\r
+static void __cal_list_delete_searchbar_entry_changed_callback(void *data, Evas_Object *obj, void *event_info);\r
+static void __cal_list_delete_cancel_button_callback(void *data, Evas_Object *obj, void *event_info);\r
+static void __cal_list_delete_searchbar_entry_unfocused_callback(void *data, Evas_Object *obj, void *event_info);\r
+static void __cal_list_delete_searchbar_clicked_callback(void *data, Evas_Object *obj, void *event_info);\r
+static void __cal_list_delete_create_searchbar(struct _priv *p);\r
+static void __cal_list_delete_append_with_idler(void* data);\r
+static void __cal_list_delete_create_searchbar(struct _priv *p);\r
+\r
+\r
+\r
+\r
+static Elm_Genlist_Item_Class itc_list = {\r
+       .item_style = "3text.5icon",\r
+       .func.text_get = __cal_list_delete_get_genlist_item_label,\r
+       .func.content_get = __cal_list_delete_get_genlist_item_icon,\r
+       .decorate_all_item_style = "edit_default",\r
+};\r
+\r
+static Calendar_color calendar_color;\r
+\r
+//TODO\r
+#define ELM_GENLIST_ITEM_GROUP (1<<1)\r
+\r
+static void __cal_list_delete_add_small_info(struct _priv *p, int count)\r
+{\r
+       c_retm_if(!p, "p is null");\r
+       struct appdata *ad = p->ad;\r
+\r
+       c_retm_if(!ad, "ug data is null");\r
+\r
+       Evas_Object *nv = ad->nv;\r
+       c_retm_if(!nv, "nv is null");\r
+\r
+       Evas_Object *notify = NULL;\r
+       Evas_Object *notify_layout = NULL;\r
+\r
+       char lable_str[ACCOUNT_LABLE_STRING_LENGTH] = { '\0'};\r
+       c_ret_if(count < 0);\r
+\r
+       if (!p->notify) {\r
+               notify = elm_notify_add(nv);\r
+               c_retm_if(!notify, "notify is null");\r
+\r
+               elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM);\r
+               p->notify = notify;\r
+\r
+               notify_layout = elm_layout_add(notify);\r
+               if (!notify_layout) {\r
+               evas_object_del(p->notify);\r
+               p->notify = NULL;\r
+               return;\r
+               }\r
+\r
+               p->notify_layout = notify_layout;\r
+               elm_layout_theme_set(notify_layout, "standard", "selectioninfo", "vertical/bottom_64");\r
+               elm_object_content_set(notify, notify_layout);\r
+       }\r
+\r
+       snprintf(lable_str, sizeof(lable_str), "%s (%d)", S_("IDS_COM_POP_SELECTED"), count);\r
+       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(p->notify_layout), "elm.text", lable_str);\r
+\r
+       if (0 < count) {\r
+               evas_object_show(p->notify);\r
+       } else {\r
+               evas_object_hide(p->notify);\r
+       }\r
+}\r
+\r
+static void __cal_list_delete_genlist_item_check_changed_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+       cal_list_delete_item_data *item_data = data;\r
+\r
+       Elm_Object_Item *it;\r
+       Eina_List* realized_list, *l;\r
+\r
+       struct _priv* p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_retm_if(!p, "p is null");\r
+\r
+       if (p->genlist_count <= 0) {\r
+               return;\r
+       }\r
+       item_data->checked = elm_check_state_get(obj);\r
+       if (item_data->checked)\r
+               p->num_check++;\r
+       else\r
+               p->num_check--;\r
+\r
+       if (item_data->checked || 0 < p->num_check)\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_FALSE);\r
+       else\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+\r
+       realized_list = elm_genlist_realized_items_get(p->gl);\r
+       EINA_LIST_FOREACH(realized_list, l, it) {\r
+               if (it)\r
+                       elm_genlist_item_update(it);\r
+       }\r
+\r
+       if (p->num_check == p->genlist_count) {\r
+               elm_check_state_set(p->select_all_check,EINA_TRUE);\r
+               __cal_list_delete_update_all_check(p);\r
+       } else {\r
+               elm_check_state_set(p->select_all_check,EINA_FALSE);\r
+               __cal_list_delete_add_small_info(p, p->num_check);\r
+       }\r
+}\r
+\r
+static Evas_Object *__cal_list_delete_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       c_retvm_if(!part, NULL, "part is null");\r
+       c_retvm_if(!obj, NULL, "obj is null");\r
+       c_retvm_if(!data, NULL, "data is null");\r
+\r
+       Evas_Object *icon = NULL;\r
+       cal_struct *calendar = NULL;\r
+\r
+       struct _priv* p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_retvm_if(!p, NULL, "p is null");\r
+\r
+       cal_list_delete_item_data *item_data = (cal_list_delete_item_data *)data;\r
+\r
+       int r;\r
+       cal_struct *cs = item_data->cs;\r
+       c_retvm_if(!cs, NULL, "cs is null");\r
+\r
+\r
+       if (!CAL_STRCMP(part, "elm.edit.icon.1") ) {\r
+               icon = elm_check_add(obj);\r
+               c_retvm_if(!icon, NULL, "elm_check_add returned null");\r
+\r
+               elm_check_state_pointer_set(icon, &item_data->checked);\r
+               evas_object_smart_callback_add(icon, "changed", __cal_list_delete_genlist_item_check_changed_callback, item_data);\r
+               evas_object_propagate_events_set(icon, EINA_FALSE);\r
+               evas_object_data_set(icon, "priv", p);\r
+               return icon;\r
+       } else if (!CAL_STRCMP(part, "elm.swallow.colorbar")) {\r
+               r = calendar_svc_get(CAL_STRUCT_CALENDAR, CALENDAR_SVC_STRUCT_GET_INT(cs,CAL_VALUE_INT_CALENDAR_ID), NULL, &calendar);\r
+               if (r != CAL_SUCCESS)\r
+               c_retvm_if(r != CAL_SUCCESS, NULL, "calendar_svc_get is failed(%d)", r);\r
+\r
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));\r
+               c_retvm_if(!icon, NULL, "evas_object_rectangle_add returned null");\r
+\r
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+               CALENDAR_SVC_GET_CALENDAR_COLOR(calendar, &calendar_color);\r
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);\r
+               calendar_svc_struct_free(&calendar);\r
+               return icon;\r
+       }\r
+\r
+       return NULL;\r
+}\r
+\r
+static void __cal_list_delete_clear_event_list(struct _priv *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!p, "p is null");\r
+       cal_list_delete_item_data *item;\r
+       Eina_List *l = NULL;\r
+\r
+       EINA_LIST_FOREACH(p->evtlist, l, item) {\r
+               if (item) {\r
+                       calendar_svc_struct_free(&item->cs);\r
+                       item->cs = NULL;\r
+                       free(item);\r
+                       item=NULL;\r
+               }\r
+       }\r
+\r
+       if (p->evtlist) {\r
+               eina_list_free(p->evtlist);\r
+               p->evtlist = NULL;\r
+       }\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_delete_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!data, "data is null");\r
+\r
+       struct _priv *p = data;\r
+       is_list_delete_destory = TRUE;\r
+\r
+       if (p->idler) {\r
+               ecore_idler_del(p->idler);\r
+               p->idler = NULL;\r
+       }\r
+\r
+       __cal_list_delete_clear_event_list(p);\r
+       calendar_svc_unsubscribe_change(__cal_list_delete_event_update_noti_received_cb);\r
+\r
+       if (p->notify) {\r
+               evas_object_del(p->notify);\r
+       }\r
+\r
+       if (p->searchbar) {\r
+               evas_object_smart_callback_del(elm_object_part_content_get(p->searchbar, "elm.swallow.content"), "changed", __cal_list_delete_searchbar_entry_changed_callback);\r
+               evas_object_smart_callback_del(p->searchbar, "cancel,clicked", __cal_list_delete_cancel_button_callback);\r
+               evas_object_del(p->searchbar);\r
+               p->searchbar = NULL;\r
+       }\r
+\r
+       if (p->box) {\r
+               elm_box_clear(p->box);\r
+       }\r
+\r
+       if (p->no_content) {\r
+               evas_object_del(p->no_content);\r
+       }\r
+\r
+       free(p);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static char* __cal_list_delete_get_cs(cal_struct *cs)\r
+{\r
+       char buf[512];\r
+       char stime[512];\r
+       time_t st;\r
+       struct tm tm;\r
+       int repeat;\r
+       const char* time;\r
+\r
+       if (is_hour24)\r
+               time = CAL_UTIL_TIME_FORMAT_6;\r
+       else\r
+               time = CAL_UTIL_TIME_FORMAT_1;\r
+\r
+\r
+       st = CALENDAR_SVC_STRUCT_GET_TIME(cs, CAL_VALUE_GMT_START_DATE_TIME, CAL_TZ_FLAG_GMT);\r
+       localtime_r(&st, &tm);\r
+\r
+       repeat = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM);\r
+\r
+       if (repeat == CAL_REPEAT_NONE)\r
+       {\r
+               cal_util_get_time_text(stime, sizeof(stime), NULL, time, &tm);\r
+               snprintf(buf, sizeof(buf), "%s", stime);\r
+       } else {\r
+               cal_util_get_time_text(stime, sizeof(stime), NULL, time, &tm);\r
+               snprintf(buf, sizeof(buf), "%s", stime);\r
+       }\r
+       return strdup(buf);\r
+}\r
+\r
+static char* __cal_list_delete_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       c_retvm_if(!part, NULL, "part is null");\r
+       c_retvm_if(!data, NULL, "data is null");\r
+\r
+       const char *str = NULL;\r
+       cal_list_delete_item_data *item = data;\r
+       cal_struct *cs = item->cs;\r
+       c_retvm_if(!cs, NULL, "cs is null");\r
+\r
+       if (!CAL_STRCMP(part, "elm.text.1")) {\r
+               str = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_SUMMARY);\r
+               if (str)\r
+                       return strdup(str);\r
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));\r
+       }\r
+\r
+       if (!CAL_STRCMP(part, "elm.text.2")) {\r
+               str = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_LOCATION);\r
+               if (str)\r
+                       return strdup(str);\r
+               return strdup(C_("IDS_CLD_BODY_NO_LOCATION_SELECTED"));\r
+       }\r
+\r
+       if (!CAL_STRCMP(part, "elm.text.3"))\r
+               return __cal_list_delete_get_cs(cs);\r
+\r
+       return NULL;\r
+}\r
+\r
+static void __cal_list_delete_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+       c_retm_if(!obj, "obj is null");\r
+\r
+       Eina_List* realized_list, *l;\r
+       Elm_Object_Item* it;\r
+       cal_list_delete_item_data* item = data;\r
+\r
+       struct _priv *p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_retm_if(!p, "p is null");\r
+\r
+       if (p->genlist_count <= 0) {\r
+               return;\r
+       }\r
+       item->checked = !(item->checked);\r
+       if (item->checked) {\r
+               p->num_check++;\r
+       } else {\r
+               p->num_check--;\r
+       }\r
+\r
+       if (item->checked || 0 < p->num_check) {\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_FALSE);\r
+       }\r
+       else if (0 >= p->num_check) {\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+       }\r
+\r
+       it = elm_genlist_selected_item_get(obj);\r
+       if (it)\r
+               elm_genlist_item_selected_set(it, EINA_FALSE);\r
+\r
+       realized_list = elm_genlist_realized_items_get(obj);\r
+       EINA_LIST_FOREACH(realized_list, l, it) {\r
+               if (it)\r
+               elm_genlist_item_update(it);\r
+       }\r
+\r
+       if (p->num_check == p->genlist_count) {\r
+               elm_check_state_set(p->select_all_check,EINA_TRUE);\r
+               __cal_list_delete_update_all_check(p);\r
+       } else {\r
+               elm_check_state_set(p->select_all_check,EINA_FALSE);\r
+               __cal_list_delete_add_small_info(p, p->num_check);\r
+       }\r
+}\r
+\r
+static void __cal_list_delete_update_no_item(struct _priv *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!p, "priv is null.");\r
+\r
+       Elm_Object_Item *it = elm_genlist_first_item_get(p->gl);\r
+\r
+       if (!it)\r
+       {\r
+               if (p->box) {\r
+                       elm_box_clear(p->box);\r
+               }\r
+               p->no_content = cal_util_add_nocontents(p->ly, C_("IDS_CLD_BODY_NO_EVENTS"));\r
+               c_retm_if(!p->no_content, "p->no_content is null.");\r
+\r
+               elm_object_part_content_set(p->ly, "sw", p->no_content);\r
+               evas_object_show(p->ly);\r
+\r
+               p->gl = NULL;\r
+       }\r
+       else\r
+       {\r
+               p->no_content = NULL;\r
+       }\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+Eina_Bool __cal_list_delete_update_fetch_list_idler(void* data)\r
+{\r
+       CAL_FN_START;\r
+\r
+       struct _priv *p = (struct _priv *)data;\r
+\r
+       c_retvm_if(!p, ECORE_CALLBACK_CANCEL, "priv is null.");\r
+\r
+       int r;\r
+       cal_iter *it=NULL;\r
+       int cal_id;\r
+       cal_id = 0;\r
+       it = NULL;\r
+       cal_list_delete_item_data *item;\r
+       Eina_Bool is_finished = EINA_FALSE;\r
+\r
+       if(is_list_delete_destory == EINA_TRUE)\r
+               return ECORE_CALLBACK_CANCEL;\r
+\r
+       if(p->idler == NULL)\r
+               return ECORE_CALLBACK_CANCEL;\r
+\r
+       r = calendar_svc_get_list(ALL_VISIBILITY_ACCOUNT, ALL_CALENDAR_ID,CAL_STRUCT_SCHEDULE,CAL_VALUE_LIST_FILED, p->offset,MAX_FETCH_COUNT,&it);\r
+\r
+       if (r != CAL_SUCCESS)\r
+               return ECORE_CALLBACK_CANCEL;\r
+\r
+       while (calendar_svc_iter_next(it) == CAL_SUCCESS)\r
+       {\r
+               item = calloc(1, sizeof(cal_list_delete_item_data));\r
+               c_retvm_if(!item, EINA_FALSE, "calloc is failed");\r
+\r
+               r = calendar_svc_iter_get_info(it, &item->cs);\r
+               if (r != CAL_SUCCESS)\r
+                       break;\r
+\r
+               p->evtlist = eina_list_append(p->evtlist, item);\r
+       }\r
+\r
+       calendar_svc_iter_remove(&it);\r
+\r
+       if(eina_list_count(p->evtlist) < MAX_FETCH_COUNT)\r
+               is_finished = EINA_TRUE;\r
+\r
+       __cal_list_delete_append_with_idler(p);\r
+\r
+       if(is_finished || (p->offset== p->totalcnt))\r
+       {\r
+               if (p->idler)\r
+               {\r
+                       ecore_idler_del(p->idler);\r
+                       p->idler = NULL;\r
+               }\r
+\r
+               p->offset= 0;\r
+\r
+               CAL_FN_END;\r
+\r
+               return ECORE_CALLBACK_CANCEL;\r
+       }\r
+       else\r
+       {\r
+               CAL_FN_END;\r
+\r
+               return ECORE_CALLBACK_RENEW;\r
+       }\r
+\r
+       CAL_FN_END;\r
+\r
+       return ECORE_CALLBACK_CANCEL;\r
+}\r
+\r
+static void __cal_list_delete_get_event_list(struct _priv *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!p, "p is null");\r
+\r
+       int r;\r
+       cal_iter *it = NULL;\r
+       cal_list_delete_item_data *item;\r
+\r
+       p->totalcnt = calendar_svc_get_count(ALL_ACCOUNT_ID,ALL_CALENDAR_ID,CAL_STRUCT_SCHEDULE);\r
+\r
+\r
+       p->offset = 0;\r
+\r
+       r = calendar_svc_get_list(ALL_ACCOUNT_ID, ALL_CALENDAR_ID, CAL_STRUCT_SCHEDULE, CAL_VALUE_LIST_FILED, 0, MAX_FETCH_COUNT, &it);\r
+       c_retm_if(r != CAL_SUCCESS, "calendar_svc_get_list is failed(%d)", r);\r
+\r
+       while ((r = calendar_svc_iter_next(it)) == CAL_SUCCESS) {\r
+               item = calloc(1, sizeof(cal_list_delete_item_data));\r
+               c_retm_if(!item, "calloc is failed");\r
+\r
+               r = calendar_svc_iter_get_info(it, &item->cs);\r
+               if (r != CAL_SUCCESS) {\r
+                       ERR("calendar_svc_iter_get_info is failed(%d)", r);\r
+                       free(item);\r
+                       break;\r
+               }\r
+               p->evtlist = eina_list_append(p->evtlist, item);\r
+       }\r
+\r
+       calendar_svc_iter_remove(&it);\r
+\r
+       if (eina_list_count(p->evtlist) < p->totalcnt) {\r
+               if (!p->idler) {\r
+                       p->idler = ecore_idler_add(__cal_list_delete_update_fetch_list_idler,p);\r
+               }\r
+       }\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static bool __cal_list_delete_strstr(const char *pszParent, const char * pszChild)\r
+{\r
+       bool bRst = false;\r
+       if (!pszParent || !pszChild) {\r
+               return false;\r
+       }\r
+\r
+       GString * gSrc = g_string_new(pszParent);\r
+       if (!gSrc) {\r
+               return false;\r
+       }\r
+\r
+       GString * gDes = g_string_new(pszChild);\r
+       if (!gDes) {\r
+               g_string_free(gSrc,true);\r
+               return false;\r
+       }\r
+\r
+       gSrc = g_string_ascii_up(gSrc);\r
+       if (!gSrc) {\r
+               g_string_free(gDes,true);\r
+               return false;\r
+       }\r
+\r
+       gDes = g_string_ascii_up(gDes);\r
+       if (!gDes) {\r
+               g_string_free(gSrc,true);\r
+               return false;\r
+       }\r
+\r
+       if (g_strrstr(gSrc->str,gDes->str)) {\r
+               bRst = true;\r
+       } else {\r
+               bRst = false;\r
+       }\r
+\r
+       g_string_free(gSrc,true);\r
+       g_string_free(gDes,true);\r
+       return bRst;\r
+}\r
+\r
+\r
+static void __cal_list_delete_append_with_idler(void* data)\r
+{\r
+\r
+       c_retm_if(!data, "data is null");\r
+\r
+       struct _priv* p = data;\r
+       Eina_List *event_list, *l = NULL;\r
+       cal_list_delete_item_data *item = NULL;\r
+       Elm_Object_Item *it = NULL;\r
+       const char* summary = NULL;\r
+\r
+       event_list = eina_list_nth_list(p->evtlist, p->offset-1);;\r
+       if (event_list) {\r
+               event_list = eina_list_next(event_list);\r
+               c_retm_if(NULL == event_list, "eina_list_nth_list(append_list, 1) is null");\r
+       }\r
+       c_retm_if(!event_list, "eina_list_nth(list, %d) returned null", p->offset);\r
+\r
+\r
+       EINA_LIST_FOREACH(event_list, l, item)\r
+       {\r
+\r
+               if (item && item->cs)\r
+               {\r
+                       if (p->searchtext && 0 < strlen(p->searchtext)) {\r
+                               summary = CALENDAR_SVC_STRUCT_GET_STR(item->cs, CAL_VALUE_TXT_SUMMARY);\r
+                               if (summary && __cal_list_delete_strstr(summary, p->searchtext))\r
+                               {\r
+                                       it = elm_genlist_item_append(p->gl, &itc_list, item, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_delete_genlist_item_select_callback, item);\r
+                                       c_retm_if(!it, "elm_genlist_item_append is failed");\r
+                                       if (item && item->checked) {\r
+                                               p->num_check++;\r
+                                       }\r
+                                       p->genlist_count++;\r
+                               }\r
+                       } else {\r
+                               if (item && item->checked) {\r
+                                       p->num_check++;\r
+                               }\r
+\r
+                               it = elm_genlist_item_append(p->gl, &itc_list, item, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_delete_genlist_item_select_callback, item);\r
+\r
+                               c_retm_if(!it, "elm_genlist_item_append is failed");\r
+                               p->genlist_count++;\r
+                       }\r
+               }\r
+\r
+               p->offset++;\r
+       }\r
+}\r
+\r
+static void __cal_list_delete_append_genlist(struct _priv *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!p, "p is null");\r
+\r
+       Eina_List *l = NULL;\r
+       Elm_Object_Item *it = NULL;\r
+       struct appdata * ad = p->ad;\r
+       c_retm_if(!ad, "ad is null.");\r
+\r
+       cal_list_delete_item_data *item = NULL;\r
+       const char* summary = NULL;\r
+       p->genlist_count = 0;\r
+\r
+       EINA_LIST_FOREACH(p->evtlist, l, item)\r
+       {\r
+\r
+               if (item && item->cs)\r
+               {\r
+                       if (p->searchtext && 0 < strlen(p->searchtext))\r
+                       {\r
+                               summary = CALENDAR_SVC_STRUCT_GET_STR(item->cs, CAL_VALUE_TXT_SUMMARY);\r
+                               if (summary && __cal_list_delete_strstr(summary, p->searchtext)) {\r
+                                       it = elm_genlist_item_append(p->gl, &itc_list, item, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_delete_genlist_item_select_callback, item);\r
+                                       c_retm_if(!it, "elm_genlist_item_append is failed");\r
+                                       if (item && item->checked) {\r
+                                               p->num_check++;\r
+                                       }\r
+                                       p->genlist_count++;\r
+                               }\r
+                       } else {\r
+                               if (item && item->checked) {\r
+                                       p->num_check++;\r
+                               }\r
+                               it = elm_genlist_item_append(p->gl, &itc_list, item, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_delete_genlist_item_select_callback, item);\r
+                               c_retm_if(!it, "elm_genlist_item_append is failed");\r
+                               p->genlist_count++;\r
+                       }\r
+               }\r
+\r
+               p->offset++;\r
+       }\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_delete_update_list(struct _priv *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!p, "p is null");\r
+\r
+       if (p->idler)\r
+       {\r
+               ecore_idler_del(p->idler);\r
+               p->idler = NULL;\r
+       }\r
+\r
+       if (!p->gl)\r
+       {\r
+               p->gl = elm_genlist_add(p->ly);\r
+               c_retm_if(!p->gl, "p->gl is null");\r
+               elm_genlist_decorate_mode_set(p->gl, EINA_TRUE);\r
+               evas_object_data_set(p->gl, "priv", p);\r
+               elm_genlist_scroller_policy_set(p->gl, ELM_SCROLLER_POLICY_OFF,ELM_SCROLLER_POLICY_OFF);\r
+               elm_genlist_block_count_set(p->gl, 20);\r
+               elm_genlist_homogeneous_set(p->gl, EINA_TRUE);\r
+               evas_object_size_hint_weight_set(p->gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+               evas_object_size_hint_align_set(p->gl, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+               evas_object_show(p->gl);\r
+               elm_object_focus_set(p->gl, EINA_TRUE);\r
+               elm_box_pack_end(p->box, p->gl);\r
+       }\r
+\r
+       __cal_list_delete_clear_event_list(p);\r
+       p->num_check = 0;\r
+       p->offset = 0;\r
+\r
+       __cal_list_delete_get_event_list(p);\r
+\r
+       elm_genlist_clear(p->gl);\r
+       __cal_list_delete_append_genlist(p);\r
+\r
+       if (p->genlist_count == p->num_check) {\r
+               elm_check_state_set(p->select_all_check,EINA_TRUE);\r
+       } else {\r
+               elm_check_state_set(p->select_all_check,EINA_FALSE);\r
+       }\r
+       __cal_list_delete_update_no_item(p);\r
+\r
+       if (p->num_check <= 0) {\r
+               evas_object_hide(p->notify);\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+       } else {\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_FALSE);\r
+       }\r
+\r
+       if (eina_list_count(p->evtlist) <= 0 ) {\r
+               evas_object_hide(p->searchbar);\r
+       }\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_delete_event_update_noti_received_cb (void *user_data)\r
+{\r
+       c_retm_if(!user_data, "user_data is null");\r
+       struct _priv *p = (struct _priv *)user_data;\r
+       __cal_list_delete_update_list(p);\r
+}\r
+\r
+static void __cal_list_delete_update_all_check(struct _priv* p)\r
+{\r
+       c_retm_if(!p, "p is null");\r
+       c_retm_if(!p->gl, "p is null");\r
+\r
+       Elm_Object_Item *it;\r
+       Eina_List* realized_list, *l;\r
+       cal_list_delete_item_data* item_data;\r
+\r
+       if (elm_check_state_get(p->select_all_check)) {\r
+               p->num_check = p->genlist_count;\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_FALSE);\r
+               __cal_list_delete_add_small_info(p, p->genlist_count);\r
+       } else {\r
+               p->num_check = 0;\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+               evas_object_hide(p->notify);\r
+       }\r
+\r
+       it = elm_genlist_first_item_get(p->gl);\r
+       while (it) {\r
+               item_data = elm_object_item_data_get(it);\r
+               if (item_data) {\r
+                       item_data->checked = elm_check_state_get(p->select_all_check);\r
+               }\r
+               it = elm_genlist_item_next_get(it);\r
+       }\r
+\r
+       realized_list = elm_genlist_realized_items_get(p->gl);\r
+       EINA_LIST_FOREACH(realized_list, l, it)\r
+       {\r
+               if (it) {\r
+                       elm_genlist_item_update(it);\r
+               }\r
+       }\r
+}\r
+\r
+static void __cal_list_delete_select_all_mouse_up_callback(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+       struct _priv *p = data;\r
+\r
+       Evas_Event_Mouse_Up *ev = event_info;\r
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)\r
+               return;\r
+\r
+       if (p->genlist_count <= 0) {\r
+               return;\r
+       }\r
+       elm_check_state_set(p->select_all_check, !elm_check_state_get(p->select_all_check));\r
+\r
+       __cal_list_delete_update_all_check(p);\r
+}\r
+\r
+static void __cal_list_delete_select_all_changed_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!obj, "obj is null");\r
+\r
+       struct _priv* p = data;\r
+       c_retm_if(!p, "p is null");\r
+       if (p->genlist_count <= 0) {\r
+               return;\r
+       }\r
+\r
+       __cal_list_delete_update_all_check(p);\r
+}\r
+\r
+static void __cal_list_delete_create_select_all(struct _priv* p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!p, "p is null");\r
+       c_retm_if(!p->ly, "p->ly is null");\r
+       c_retm_if(!p->box, "p->box is null");\r
+\r
+       Evas_Object* layout = p->select_all_layout = elm_layout_add(p->box);\r
+       c_retm_if(!layout, "elm_layout_add returned null");\r
+       elm_layout_theme_set(layout, "genlist", "item", "select_all/default");\r
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);\r
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_UP, __cal_list_delete_select_all_mouse_up_callback, p);\r
+\r
+       Evas_Object* check = p->select_all_check = elm_check_add(p->select_all_layout);\r
+       c_retm_if(!check, "elm_check_add returned null");\r
+       evas_object_smart_callback_add(check, "changed", __cal_list_delete_select_all_changed_callback, p);\r
+       evas_object_propagate_events_set(check, EINA_FALSE);\r
+\r
+       elm_object_part_content_set(layout, "elm.icon", check);\r
+       evas_object_data_set(p->select_all_layout, "layout", p->select_all_layout);\r
+       elm_object_part_text_set(p->select_all_layout, "elm.text", S_("IDS_COM_BODY_SELECT_ALL"));\r
+       elm_box_pack_start(p->box, p->select_all_layout);\r
+       evas_object_show(p->select_all_layout);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static Evas_Object* __cal_list_delete_create_layout(Evas_Object *parent, struct appdata *ad)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retvm_if(!parent, NULL, "parent is null");\r
+       c_retvm_if(!ad, NULL, "ad is null");\r
+\r
+       struct _priv *p = NULL;\r
+       Evas_Object *ly;\r
+       Evas_Object *conform;\r
+       int r;\r
+\r
+       p = calloc(1, sizeof(struct _priv));\r
+       c_retvm_if(!p, NULL, "p is null");\r
+\r
+       p->name = _name;\r
+       p->ad = ad;\r
+       p->parent = parent;\r
+       p->searchtext = NULL;\r
+       p->notify_layout = NULL;\r
+       p->notify = NULL;\r
+       p->navi_item = NULL;\r
+       p->genlist_count = 0;\r
+       p->bg = NULL;\r
+       is_list_delete_destory = EINA_FALSE;\r
+\r
+       ly = cal_util_add_layout(parent, p->name);\r
+       if (!ly) {\r
+               ERR("cal_util_add_layout returned null");\r
+               free(p);\r
+               return NULL;\r
+       }\r
+       p->ly = ly;\r
+       evas_object_data_set(ly, "priv", p);\r
+\r
+       p->bg = cal_util_add_bg(ly,EINA_FALSE);\r
+       if (!p->bg) {\r
+               ERR("cal_util_add_bg returned null");\r
+               evas_object_del(ly);\r
+               free(p);\r
+               return NULL;\r
+       }\r
+       elm_object_part_content_set(ly, "base", p->bg);\r
+\r
+       conform = elm_conformant_add(ly);\r
+       if (NULL == conform) {\r
+               ERR("elm_conformant_add() return NULL");\r
+               evas_object_del(ly);\r
+               free(p);\r
+               p = NULL;\r
+               return NULL;\r
+       }\r
+\r
+       elm_object_style_set(conform, "internal_layout");\r
+       evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+       elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+\r
+       p->box = elm_box_add(p->ly);\r
+       if (!p->box) {\r
+               ERR("elm_box_add returned null");\r
+               evas_object_del(ly);\r
+               free(p);\r
+               ERR("box is null");\r
+               return NULL;\r
+       }\r
+       evas_object_size_hint_weight_set(p->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+       elm_object_content_set(conform, p->box);\r
+\r
+       __cal_list_delete_create_select_all(p);\r
+\r
+       elm_object_part_content_set(ly, "sw", conform);\r
+       evas_object_show(ly);\r
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_list_delete_delete_layout, p);\r
+       r = calendar_svc_subscribe_change(__cal_list_delete_event_update_noti_received_cb, (void*)p);\r
+       if (r != CAL_SUCCESS) {\r
+               ERR("calendar service subscribe failed");\r
+               evas_object_del(ly);\r
+               free(p);\r
+               p = NULL;\r
+               return NULL;\r
+       }\r
+\r
+       CAL_FN_END;\r
+\r
+       return ly;\r
+}\r
+\r
+static void __cal_list_delete_cancel_callback(void *data, Evas_Object *obj, void *ei)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!data, "data is null");\r
+       struct _priv *p = data;\r
+\r
+       elm_naviframe_prev_btn_auto_pushed_set(p->ad->nv, EINA_TRUE);\r
+       elm_naviframe_item_pop(p->ad->nv);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_delete_delete_button_callback(void *data, Evas_Object *obj, void *ei)\r
+{\r
+       CAL_FN_START;\r
+\r
+       Evas_Object *ly = data;\r
+       cal_list_delete_item_data *item;\r
+       Elm_Object_Item *it;\r
+       Elm_Object_Item *temp;\r
+       int cid;\r
+       int r;\r
+\r
+       struct _priv *p = CAL_UTIL_GET_PRIV_DATA(ly);\r
+       c_retm_if(!p, "p is null");\r
+       c_retm_if(!p->evtlist, "p->evtlist is null");\r
+\r
+       it = elm_genlist_first_item_get(p->gl);\r
+       while(it) {\r
+               item = elm_object_item_data_get(it);\r
+               temp = elm_genlist_item_next_get(it);\r
+\r
+\r
+               if (item && item->cs != NULL && item->checked == EINA_TRUE) {\r
+\r
+                       cid = CALENDAR_SVC_STRUCT_GET_INT(item->cs, CAL_VALUE_INT_INDEX);\r
+                       r = calendar_svc_delete(CAL_STRUCT_SCHEDULE, cid);\r
+                       if (r != CAL_SUCCESS) {\r
+                               ERR("Calendar service delete failed: %d", r);\r
+                       }\r
+                       elm_object_item_del(it);\r
+               }\r
+               it = temp;\r
+       }\r
+\r
+       elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+       p->searchtext = NULL;\r
+}\r
+\r
+\r
+Evas_Object *cal_list_delete_view_create(Evas_Object *parent, struct appdata *ad)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retvm_if(!ad || !parent, NULL, "Input parameter is null");\r
+\r
+       Evas_Object *ly;\r
+       Evas_Object *controlbar;\r
+\r
+       ly = __cal_list_delete_create_layout(parent,ad);\r
+       c_retvm_if(!ly, NULL, "__cal_list_delete_create_layout(parent,ad) is failed");\r
+       struct _priv * p = (struct _priv *)CAL_UTIL_GET_PRIV_DATA(ly);\r
+       c_retvm_if(!p, NULL, "p is null");\r
+\r
+       elm_naviframe_prev_btn_auto_pushed_set(ad->nv, EINA_FALSE);\r
+\r
+       p->navi_item = elm_naviframe_item_push(ad->nv, S_("IDS_COM_BODY_DELETE"), NULL, NULL, ly, NULL);\r
+       if (!p->navi_item)\r
+       {\r
+               ERR("elm_naviframe_item_push is failed");\r
+               evas_object_del(ly);\r
+               return NULL;\r
+       }\r
+\r
+       controlbar = cal_util_add_controlbar(ad->nv);\r
+       if (!controlbar)\r
+       {\r
+               ERR("cal_util_add_controlbar(ad->nv) is failed");\r
+               elm_naviframe_prev_btn_auto_pushed_set(ad->nv, EINA_TRUE);\r
+               elm_naviframe_item_pop(ad->nv);\r
+               return NULL;\r
+       }\r
+\r
+       p->bt_delete = elm_toolbar_item_append(controlbar, NULL, S_("IDS_COM_BODY_DELETE"), __cal_list_delete_delete_button_callback, ly);\r
+       elm_toolbar_item_append(controlbar, NULL, S_("IDS_COM_SK_CANCEL"), __cal_list_delete_cancel_callback, p);\r
+       elm_object_item_part_content_set(p->navi_item, "controlbar", controlbar);\r
+       elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+\r
+       CAL_FN_END;\r
+\r
+       return ly;\r
+}\r
+\r
+static void __cal_list_delete_searchbar_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       CAL_FN_START;\r
+\r
+       struct _priv *p = (struct _priv *)data;\r
+       c_retm_if(!p, "priv is null.");\r
+\r
+       p->searchtext = elm_object_text_get(elm_object_part_content_get(p->searchbar, "elm.swallow.content"));\r
+       DBG("%s %d", p->searchtext, strlen(p->searchtext));\r
+\r
+       elm_genlist_clear(p->gl);\r
+\r
+       if (!p->gl) {\r
+               p->gl = elm_genlist_add(p->parent);\r
+               c_retm_if(!p->gl, "p->gl is null");\r
+               elm_genlist_decorate_mode_set(p->gl, EINA_TRUE);\r
+               evas_object_data_set(p->gl, "priv", p);\r
+       }\r
+\r
+       evas_object_del(p->select_all_layout);\r
+       __cal_list_delete_create_select_all(p);\r
+\r
+       p->num_check = 0;\r
+       p->offset = 0;\r
+       __cal_list_delete_append_genlist(p);\r
+\r
+       Evas_Object *conform = elm_object_part_content_get(p->ly, "sw");\r
+       c_retm_if(!conform, "conform is null");\r
+\r
+       if (p->genlist_count)\r
+               elm_object_content_set(conform, p->box);\r
+       else {\r
+               elm_object_content_unset(conform);\r
+               evas_object_hide(p->box);\r
+       }\r
+\r
+       if (p->genlist_count == p->num_check) {\r
+               if (p->num_check == 0) {\r
+                       elm_check_state_set(p->select_all_check,EINA_FALSE);\r
+                       elm_object_disabled_set(p->select_all_check, EINA_TRUE);\r
+               } else {\r
+                       elm_check_state_set(p->select_all_check,EINA_TRUE);\r
+               }\r
+       } else {\r
+               elm_check_state_set(p->select_all_check,EINA_FALSE);\r
+       }\r
+\r
+       if (p->genlist_count > 0) {\r
+               elm_object_disabled_set(p->select_all_check, EINA_FALSE);\r
+       }\r
+\r
+       if (0 < p->num_check)\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_FALSE);\r
+       else\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+\r
+       __cal_list_delete_add_small_info(p,p->num_check);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_delete_cancel_button_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!data, "data is null");\r
+       struct _priv *p = (struct _priv *)data;\r
+       Eina_List *l = NULL;\r
+       cal_list_delete_item_data *item = NULL;\r
+\r
+       Evas_Object *en = elm_object_part_content_get(p->searchbar, "elm.swallow.content");\r
+       c_retm_if(!en, "elm_object_part_content_get returned null");\r
+\r
+       Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);\r
+       c_retm_if(!imf_context, "elm_entry_imf_context_get returned null");\r
+\r
+       if (imf_context)\r
+               ecore_imf_context_input_panel_hide(imf_context);\r
+\r
+       if (0 < p->num_check)\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_FALSE);\r
+       else\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+\r
+       p->num_check = 0;\r
+\r
+       EINA_LIST_FOREACH(p->evtlist, l, item) {\r
+               if (item != NULL && item->checked) {\r
+                       p->num_check++;\r
+               }\r
+       }\r
+\r
+       if (p->genlist_count== p->num_check && p->num_check != 0) {\r
+               elm_check_state_set(p->select_all_check,EINA_TRUE);\r
+       } else {\r
+               elm_check_state_set(p->select_all_check,EINA_FALSE);\r
+       }\r
+       elm_object_disabled_set(p->select_all_check, EINA_FALSE);\r
+       __cal_list_delete_add_small_info(p,p->num_check);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_delete_searchbar_entry_unfocused_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!data, "data is null.");\r
+       struct _priv *p = data;\r
+\r
+       if (p->num_check <= 0) {\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+       } else {\r
+               elm_object_item_disabled_set(p->bt_delete, EINA_FALSE);\r
+       }\r
+       __cal_list_delete_add_small_info(p,p->num_check);\r
+}\r
+\r
+static void __cal_list_delete_searchbar_clicked_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!data, "data is null.");\r
+       struct _priv *p = data;\r
+\r
+       elm_object_item_disabled_set(p->bt_delete, EINA_TRUE);\r
+}\r
+\r
+static void __cal_list_delete_create_searchbar(struct _priv *p)\r
+{\r
+       c_retm_if(!p, "priv is null.");\r
+       c_retm_if(!p->ly, "p->ly is null.");\r
+       c_retm_if(!p->box, "p->box is null.");\r
+\r
+       p->searchbar = cal_util_add_searchbar(p->ly, NULL, NULL, EINA_TRUE);\r
+       c_retm_if(!p->searchbar, "cal_util_add_searchbar() returned null.");\r
+\r
+       Evas_Object *en = elm_object_part_content_get(p->searchbar, "elm.swallow.content");\r
+       c_retm_if(!en, "elm_object_part_content_get returned null.");\r
+\r
+       elm_entry_input_panel_layout_set(en, ELM_INPUT_PANEL_LAYOUT_NORMAL);\r
+       elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &_limit_20char);\r
+\r
+       evas_object_size_hint_weight_set(p->searchbar, EVAS_HINT_EXPAND, 0);\r
+       evas_object_size_hint_align_set(p->searchbar, EVAS_HINT_FILL, 0.0);\r
+\r
+       evas_object_smart_callback_add(en, "changed", __cal_list_delete_searchbar_entry_changed_callback, p);\r
+       evas_object_smart_callback_add(en, "unfocused", __cal_list_delete_searchbar_entry_unfocused_callback, p);\r
+       evas_object_smart_callback_add(p->searchbar, "clicked", __cal_list_delete_searchbar_clicked_callback, p);\r
+       evas_object_smart_callback_add(p->searchbar, "cancel,clicked", __cal_list_delete_cancel_button_callback, p);\r
+\r
+       evas_object_show(p->searchbar);\r
+       elm_object_part_content_set(p->ly, "searchbar", p->searchbar);\r
+}\r
+\r
+void cal_list_delete_update_view(Evas_Object *ly)\r
+{\r
+       CAL_FN_START;\r
+\r
+       struct _priv *p;\r
+\r
+       c_retm_if(!ly, "ly is null.");\r
+\r
+       p = CAL_UTIL_GET_PRIV_DATA(ly);\r
+       if (!p || CAL_STRCMP(p->name, _name)) {\r
+               ERR("Invalid object");\r
+               return;\r
+       }\r
+\r
+       __cal_list_delete_create_searchbar(p);\r
+\r
+       __cal_list_delete_update_list(p);\r
+\r
+}\r
diff --git a/src/list.c b/src/list.c
new file mode 100755 (executable)
index 0000000..9443101
--- /dev/null
@@ -0,0 +1,1017 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <Elementary.h>
+
+#include "detail.h"
+#include "alm-mgr.h"
+#include "edit-repeat.h"
+#include "list.h"
+#include "external-ug.h"
+#include "view.h"
+
+static const char *_name = "list/base";
+static Elm_Entry_Filter_Limit_Size _limit_20char = {
+       .max_char_count = 20,
+};
+
+#define MAX_FETCH_SETS 10
+
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+
+       Evas_Object *box;
+       Evas_Object *searchbar;
+       Evas_Object *genlist;
+       Evas_Object *no_contents;
+
+       Eina_Bool is_repeat_mode;
+
+       Eina_List *event_list; // cal_struct list
+
+       struct calsvc *csv;
+
+       time_t from;
+       time_t to;
+
+       const char *searchtext;
+
+       int totalcnt;
+       int event_offset;
+       int cur_position;
+       Ecore_Idler* idler; // To append list
+
+       struct tm last_itc_h; // To prevent duplicated cal_list_itc_h, in add events & add events idler
+
+       Eina_Bool is_today_added; //To check real today item is added.
+
+       Evas_Object *popup;
+
+       Elm_Object_Item* navi_item;
+       Elm_Object_Item *bt_new;
+       Elm_Object_Item *bt_delete;
+
+}cal_list_data;
+
+typedef struct {
+       Eina_Bool is_header;
+       int mode;
+       Eina_Bool checked;     // Check status
+       void *data;
+}cal_list_genlist_item_data;
+
+static int is_hour24;
+static Calendar_color calendar_color;
+static Eina_Bool is_view_destory = EINA_FALSE;
+
+static void __cal_list_delete_genlist_header_item(void *data, Evas_Object *obj);
+static void __cal_list_delete_genlist_item(void *data, Evas_Object *obj);
+static char* __cal_list_get_genlist_header_item_label(void *data, Evas_Object *obj, const char *part);
+static char* __cal_list_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__cal_list_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);
+
+
+static Elm_Genlist_Item_Class cal_list_itc_h = {
+       .item_style = "grouptitle",
+       .func.text_get = __cal_list_get_genlist_header_item_label,
+       .func.del = __cal_list_delete_genlist_header_item,
+};
+
+static Elm_Genlist_Item_Class cal_list_itc = {
+       .item_style = "3text.5icon",
+       .func.text_get = __cal_list_get_genlist_item_label,
+       .func.del = __cal_list_delete_genlist_item,
+       .func.content_get = __cal_list_get_genlist_item_icon,
+};
+
+static inline cal_list_genlist_item_data* __cal_list_add_item(Eina_Bool is_header, const void *data)
+{
+       cal_list_genlist_item_data *i = calloc(1, sizeof(cal_list_genlist_item_data));
+       c_retvm_if(!i, NULL, "i is null");
+
+       i->is_header= is_header;
+       i->data = (void*)data;
+
+       return i;
+}
+
+static inline Elm_Object_Item *__cal_list_append_genlist_item(Evas_Object *obj,
+               const Elm_Genlist_Item_Class *itc, const void *data,
+               Elm_Object_Item *parent, Elm_Genlist_Item_Type flags,
+               Evas_Smart_Cb func, const void *func_data)
+{
+       Eina_Bool is_header;
+
+       if (!strcmp(itc->item_style, "grouptitle"))
+               is_header = EINA_TRUE;
+       else
+               is_header = EINA_FALSE;
+
+       cal_list_genlist_item_data *i = __cal_list_add_item(is_header, data);
+
+       return elm_genlist_item_append(obj, itc, i, parent, flags, func, func_data);
+}
+static inline Elm_Object_Item* __cal_list_add_group_item(Evas_Object *gl,
+               const Elm_Genlist_Item_Class *itc, struct tm *tm)
+{
+       c_retvm_if(!gl, NULL, "gl is null");
+
+       cal_list_data *p = (cal_list_data *)CAL_UTIL_GET_PRIV_DATA(gl);
+       c_retvm_if(!p, NULL, "p is null.");
+
+       struct tm *t;
+
+       t = malloc(sizeof(struct tm));
+       if (!t)
+               return NULL;
+
+       *t = *tm;
+
+       Elm_Object_Item *item = __cal_list_append_genlist_item(gl, itc, t, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       c_retvm_if(!item, NULL, "item is null");
+
+       elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       return item;
+}
+
+static Evas_Object *__cal_list_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null.");
+
+       cal_list_genlist_item_data *item_data = data;
+       struct tmnode* tm = NULL;
+       cal_struct *cs = NULL;
+       cal_struct *calendar = NULL;
+       Evas_Object *icon = NULL;
+       int r;
+       cal_list_data *p = NULL;
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retvm_if(!p, NULL, "priv is null.");
+
+       if (p->is_repeat_mode)
+       {
+               tm = (struct tmnode *)item_data->data;
+               cs = tm->cs;
+       }
+       else
+       {
+               tm = NULL;
+               cs = (cal_struct *)item_data->data;
+       }
+
+       if (!CAL_STRCMP(part, "elm.swallow.colorbar"))
+       {
+               r = CALENDAR_SVC_GET(CAL_STRUCT_CALENDAR, CALENDAR_SVC_STRUCT_GET_INT(cs,CAL_VALUE_INT_CALENDAR_ID), NULL, &calendar);
+               if (r != CAL_SUCCESS)
+               {
+                       ERR("CALENDAR_SVC_GET fail. %d", r);
+                       return NULL;
+               }
+
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               CALENDAR_SVC_GET_CALENDAR_COLOR(calendar, &calendar_color);
+
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+
+               CALENDAR_SVC_STRUCT_FREE(&calendar);
+
+               return icon;
+       }
+
+       return NULL;
+}
+
+static void __cal_list_delete_genlist_header_item(void *data, Evas_Object *obj)
+{
+       c_retm_if(!data, "data is null.");
+
+       cal_list_genlist_item_data *i = data;
+
+       free(i->data);
+       free(i);
+}
+
+static void __cal_list_delete_genlist_item(void *data, Evas_Object *obj)
+{
+       c_retm_if(!data, "data is null.");
+       cal_list_genlist_item_data *i = data;
+
+       free(i);
+}
+
+static void __cal_list_get_search_list(cal_list_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "priv is null.");
+
+       int r = 0;
+       cal_iter *it;
+       cal_struct *cs;
+       int cal_id;
+
+       cal_id = 0;
+
+       it = NULL;
+
+       CALENDAR_SVC_FIND(p->ad->acct_id, cal_id, CAL_STRUCT_SCHEDULE, CAL_VALUE_TXT_SUMMARY, p->searchtext , &it);
+
+       while (CALENDAR_SVC_ITER_NEXT(it) == CAL_SUCCESS)
+       {
+               cs = NULL;
+               r = CALENDAR_SVC_ITER_GET_INFO(it, &cs);
+               if (r != CAL_SUCCESS)
+                       break;
+
+               p->event_list = eina_list_append(p->event_list, cs);
+       }
+
+       CALENDAR_SVC_ITER_REMOVE(&it);
+
+       CAL_FN_END;
+}
+
+static void __cal_list_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       Elm_Object_Item *it;
+       int idx;
+       cal_struct *cs = data;
+       cal_list_data *p;
+       int repeat;
+
+       it = elm_genlist_selected_item_get(obj);
+       if (it)
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       idx = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_INDEX);
+       repeat = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM);
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "priv is null.");
+
+       if (repeat)
+       {
+               p->ad->tm->st = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_START_DATE_TIME, CAL_TZ_FLAG_LOCAL));
+               p->ad->tm->et = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_END_DATE_TIME, CAL_TZ_FLAG_LOCAL));
+       }
+       p->ad->cid = idx;
+       cal_detail_create_view(p->ad, p->parent);
+}
+
+static void __cal_list_add_events_with_idler(cal_list_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "priv is null.");
+       c_retm_if(!p->event_list, "p->event_list is null.");
+       c_retm_if(p->event_offset < 1, "p->event_offset is smaller than 1");
+
+       struct appdata* ad = p->ad;
+       c_retm_if(!ad, "ad is null.");
+
+       Eina_List *l;
+       cal_struct *cs;
+       Elm_Object_Item *it;
+       time_t t;
+       struct tm cur;
+       int t_old, t_cur, t_today;
+       Eina_List *append_list=NULL;
+
+       it = NULL;
+       t_old = 0;
+       t_today = (p->ad->today_tm.tm_year << 9) | (p->ad->today_tm.tm_mon << 5) | p->ad->today_tm.tm_mday;
+       append_list = eina_list_nth_list(p->event_list, p->event_offset -1);
+       c_retm_if(!append_list, "append_list is null");
+
+       cs = eina_list_data_get(append_list);
+       t = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_START_DATE_TIME, CAL_TZ_FLAG_LOCAL));
+       localtime_r(&t, &cur);
+       t_old = (cur.tm_year << 9) | (cur.tm_mon << 5) | cur.tm_mday;
+
+       append_list = eina_list_next(append_list);
+       c_retm_if(!append_list, "eina_list_nth_list(append_list, 1) is null");
+
+       EINA_LIST_FOREACH(append_list, l, cs) {
+
+               if (!cs) {
+                       ERR("cs is null");
+                       continue;
+               }
+
+               t = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_END_DATE_TIME, CAL_TZ_FLAG_LOCAL));
+               localtime_r(&t, &cur);
+               t_cur = (cur.tm_year << 9) | (cur.tm_mon << 5) | cur.tm_mday;
+
+               if (t_old != t_cur) {
+
+                       it = __cal_list_add_group_item(p->genlist, &cal_list_itc_h, &cur);
+                       t_old = t_cur;
+
+                       if (t_today == t_cur) {
+                               ad->today_item = it;
+                               p->is_today_added = EINA_TRUE;
+                       }
+
+                       if (!p->is_today_added) {
+                               if (t_cur > t_today) {
+                                       ad->today_item = it;
+                                       p->is_today_added = EINA_TRUE;
+                               }
+                               else
+                                       ad->today_item = it;
+                       }
+
+                       p->last_itc_h = cur;
+               }
+
+               __cal_list_append_genlist_item(p->genlist, &cal_list_itc, cs, it,
+                               ELM_GENLIST_ITEM_NONE, __cal_list_genlist_item_select_callback, cs);
+
+               p->event_offset++;
+       }
+
+       CAL_FN_END;
+}
+
+Eina_Bool __cal_list_update_fetch_list_idler(void* data)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "data is null.");
+
+       cal_list_data *p = data;
+       int r;
+       cal_iter *it=NULL;
+       cal_struct *cs=NULL;
+       int cal_id;
+       cal_id = 0;
+       it = NULL;
+       Eina_Bool is_finished = EINA_FALSE;
+
+       c_retvm_if(is_view_destory, ECORE_CALLBACK_CANCEL, "view is destroyed");
+       c_retvm_if(!p->idler, ECORE_CALLBACK_CANCEL, "p->idler is null");
+
+       r = CALENDAR_SVC_GET_LIST(ALL_VISIBILITY_ACCOUNT, ALL_CALENDAR_ID,CAL_STRUCT_SCHEDULE,
+               CAL_VALUE_LIST_FILED, p->event_offset,MAX_FETCH_SETS,&it);
+       c_retvm_if(r!=CAL_SUCCESS, ECORE_CALLBACK_CANCEL,
+               "CALENDAR_SVC_GET_LIST(ALL_VISIBILITY_ACCOUNT, ALL_CALENDAR_ID, CAL_STRUCT_SCHEDULE, CAL_VALUE_LIST_FILED, %d, %d) is failed(%d)",
+               CAL_VALUE_LIST_FILED, p->event_offset, r);
+
+       while (CALENDAR_SVC_ITER_NEXT(it) == CAL_SUCCESS)       {
+
+               cs = NULL;
+               r = CALENDAR_SVC_ITER_GET_INFO(it, &cs);
+               if (r != CAL_SUCCESS) {
+                       ERR("CALENDAR_SVC_ITER_GET_INFO() is failed(%d)", r);
+                       break;
+               }
+
+               p->event_list = eina_list_append(p->event_list, cs);
+       }
+
+       CALENDAR_SVC_ITER_REMOVE(&it);
+
+       if (eina_list_count(p->event_list) < MAX_FETCH_SETS)
+               is_finished = EINA_TRUE;
+
+       __cal_list_add_events_with_idler(p);
+
+       if (is_finished || (p->event_offset == p->totalcnt)) {
+               if (p->idler)
+               {
+                       ecore_idler_del(p->idler);
+                       p->idler = NULL;
+               }
+
+               p->event_offset = 0;
+
+               DBG("Update genlist is done");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       CAL_FN_END;
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+static void __cal_list_get_events(cal_list_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "priv is null.");
+
+       int r;
+       cal_iter *it = NULL;
+       cal_struct *cs;
+       int cal_id = 0;
+
+       p->totalcnt = CALENDAR_SVC_GET_COUNT(p->ad->acct_id, cal_id, CAL_STRUCT_SCHEDULE);
+
+       r = CALENDAR_SVC_GET_LIST(p->ad->acct_id, cal_id, CAL_STRUCT_SCHEDULE,
+               CAL_VALUE_LIST_FILED, 0, MAX_FETCH_SETS, &it);
+       c_retm_if(r!=CAL_SUCCESS,
+               "CALENDAR_SVC_GET_LIST(%d, %d, CAL_STRUCT_SCHEDULE, CAL_VALUE_LIST_FILED,0, MAX_FETCH_SETS) is failed(%d)",
+               p->ad->acct_id, cal_id, r);
+
+       while (CALENDAR_SVC_ITER_NEXT(it) == CAL_SUCCESS) {
+               cs = NULL;
+               r = CALENDAR_SVC_ITER_GET_INFO(it, &cs);
+               if (r != CAL_SUCCESS) {
+                       ERR("CALENDAR_SVC_ITER_GET_INFO() is failed(%d)", r);
+                       break;
+               }
+
+               p->event_list = eina_list_append(p->event_list, cs);
+       }
+
+       CALENDAR_SVC_ITER_REMOVE(&it);
+
+       if (eina_list_count(p->event_list) < p->totalcnt)
+               p->idler = ecore_idler_add(__cal_list_update_fetch_list_idler,p);
+
+       CAL_FN_END;
+}
+
+static void __cal_list_add_event_to_genlist(cal_list_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "priv is null.");
+       Eina_List *l;
+       cal_struct *cs;
+       Elm_Object_Item *it;
+       time_t t;
+       struct tm cur;
+       int t_old, t_cur, t_today;
+       struct appdata* ad = p->ad;
+       c_retm_if(!ad, "ad is null.");
+
+       it = NULL;
+       t_old = 0;
+       t_today = (p->ad->today_tm.tm_year << 9) |
+               (p->ad->today_tm.tm_mon << 5) | p->ad->today_tm.tm_mday;
+
+       EINA_LIST_FOREACH(p->event_list, l, cs)
+       {
+               t = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_START_DATE_TIME, CAL_TZ_FLAG_LOCAL));
+               localtime_r(&t, &cur);
+               t_cur = (cur.tm_year << 9) | (cur.tm_mon << 5) | cur.tm_mday;
+
+               if (t_old != t_cur)
+               {
+                       it = __cal_list_add_group_item(p->genlist, &cal_list_itc_h, &cur);
+                       t_old = t_cur;
+
+                       if (t_today == t_cur)
+                       {
+                               ad->today_item = it;
+                               p->is_today_added = EINA_TRUE;
+                       }
+
+                       if (!p->is_today_added)
+                       {
+                               if (t_cur > t_today)
+                               {
+                                       ad->today_item = it;
+                                       p->is_today_added = EINA_TRUE;
+                               }
+                               else
+                                       ad->today_item = it;
+                       }
+
+                       p->last_itc_h = cur;
+               }
+
+               __cal_list_append_genlist_item(p->genlist, &cal_list_itc, cs, it,
+                               ELM_GENLIST_ITEM_NONE, __cal_list_genlist_item_select_callback, cs);
+
+               p->event_offset++;
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_list_add_csv(cal_list_data *p)
+{
+       c_retm_if(!p, "priv is null.");
+       c_retm_if(!p->csv, "p->csv is null.");
+
+       Eina_List *l;
+       struct tmnode *tm;
+       Elm_Object_Item *it;
+       struct tm cur;
+       int t_old, t_cur, t_today;
+
+       it = NULL;
+       t_old = 0;
+       t_today = (p->ad->today_tm.tm_year << 9) |
+               (p->ad->today_tm.tm_mon << 5) | p->ad->today_tm.tm_mday;
+
+       EINA_LIST_FOREACH(p->csv->tmlist, l, tm) {
+               if(!tm)
+                       continue;
+
+               localtime_r(&tm->st, &cur);
+               t_cur = (cur.tm_year << 9) | (cur.tm_mon << 5) | cur.tm_mday;
+
+               if (t_today && t_today <= t_cur)
+               {
+                       it = __cal_list_add_group_item(p->genlist, &cal_list_itc_h, &p->ad->today_tm);
+                       t_old = t_today;
+                       t_today = 0;
+               }
+
+               if (t_old != t_cur)
+               {
+                       it = __cal_list_add_group_item(p->genlist, &cal_list_itc_h, &cur);
+                       t_old = t_cur;
+               }
+
+               __cal_list_append_genlist_item(p->genlist, &cal_list_itc, tm, it,
+                               ELM_GENLIST_ITEM_NONE, __cal_list_genlist_item_select_callback, tm->cs);
+       }
+
+       if (p->csv->tmlist && t_today)
+               __cal_list_add_group_item(p->genlist, &cal_list_itc_h, &p->ad->today_tm);
+}
+
+static int __cal_list_sort_tm(const void *d1, const void *d2)
+{
+       const struct tmnode *t1 = d1;
+       const struct tmnode *t2 = d2;
+
+       if (!t1)
+               return 1;
+       if (!t2)
+               return -1;
+
+       return t1->st > t2->st ? 1 : -1;
+}
+
+static inline void __cal_list_sort_csv(struct calsvc *csv)
+{
+       if (!csv)
+               return;
+
+       int sz = eina_list_count(csv->tmlist);
+       csv->tmlist = eina_list_sort(csv->tmlist, sz, __cal_list_sort_tm);
+}
+
+static void __cal_list_update_genlist(cal_list_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "priv is null.");
+
+       struct appdata* ad = p->ad;
+       c_retm_if(!ad, "ad is null.");
+
+       if (p->idler)
+       {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       if (!p->genlist)
+       {
+               p->genlist = elm_genlist_add(p->parent);
+               c_retm_if(!p->genlist, "p->genlist is null.");
+               evas_object_data_set(p->genlist, "priv", p);
+       }
+
+       elm_genlist_clear(p->genlist);
+       ad->today_item = NULL;
+       CALENDAR_SVC_FREE_CS_LIST(&p->event_list);
+       CALENDAR_SVC_FREE_CS(&p->csv);
+       p->event_offset = 0;
+
+       if (p->is_repeat_mode) {
+               p->csv = CALENDAR_SVC_GET_EVENT(p->ad->acct_id, p->from, p->to);
+               __cal_list_sort_csv(p->csv);
+               __cal_list_add_csv(p);
+               p->totalcnt = eina_list_count(p->csv->tmlist);
+       }
+       else {
+               if (CAL_STRLEN(p->searchtext))
+                       __cal_list_get_search_list(p);
+               else
+                       __cal_list_get_events(p);
+
+               __cal_list_add_event_to_genlist(p);
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_list_update_no_item(cal_list_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "priv is null.");
+
+       Elm_Object_Item *it = elm_genlist_first_item_get(p->genlist);
+
+       if (!CAL_STRLEN(p->searchtext) && !it)
+       {
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->ly), "searchbar,hide", "prog");
+
+               if (!p->no_contents)
+                       p->no_contents = cal_util_add_nocontents(p->ly, C_("IDS_CLD_BODY_NO_EVENTS"));
+
+               evas_object_hide(p->genlist);
+               evas_object_show(p->no_contents);
+               elm_object_part_content_set(p->ly, "sw", p->no_contents);
+               p->genlist = NULL;
+       }
+       else
+       {
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->ly), "searchbar,show", "prog");
+
+               evas_object_hide(p->no_contents);
+               evas_object_show(p->genlist);
+               elm_object_part_content_set(p->ly, "sw", p->genlist);
+               p->no_contents = NULL;
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_list_update_list(cal_list_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "priv is null.");
+
+       __cal_list_update_genlist(p);
+       __cal_list_update_no_item(p);
+
+       CAL_FN_END;
+}
+
+static void __cal_list_searchbar_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       cal_list_data *p = (cal_list_data *)data;
+       c_retm_if(!p, "priv is null.");
+
+       p->searchtext = elm_object_text_get(elm_object_part_content_get(p->searchbar, "elm.swallow.content"));
+
+       __cal_list_update_list(p);
+
+       CAL_FN_END;
+}
+
+static void __cal_list_cancel_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       cal_list_data *p = (cal_list_data *)data;
+       c_retm_if(!p, "priv is null.");
+
+       Evas_Object *en = elm_object_part_content_get(p->searchbar, "elm.swallow.content");
+
+       Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
+
+       if (imf_context)
+               ecore_imf_context_input_panel_hide(imf_context);
+
+       elm_object_item_disabled_set(p->ad->bt_new, EINA_FALSE);
+
+       CAL_FN_END;
+}
+
+static void __cal_list_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       cal_list_data *p = data;
+       c_retm_if(!p, "priv is null.");
+
+       is_view_destory = EINA_TRUE;
+       if (p->idler) {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       CALENDAR_SVC_FREE_CS_LIST(&p->event_list);
+       CALENDAR_SVC_FREE_CS(&p->csv);
+
+       free(p);
+
+       CAL_FN_END;
+}
+
+static char* __cal_list_get_genlist_header_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "datais null.");
+
+       char buf[128];
+       cal_list_genlist_item_data *i = data;
+       const struct tm *t;
+
+       t = i->data;
+       if (!CAL_STRCMP(part, "elm.text"))
+       {
+               if (t == NULL)
+                       return strdup(_("Repeat events"));
+
+               cal_util_get_time_text(buf, sizeof(buf), CAL_UTIL_DATE_FORMAT_1, NULL, t);
+               return strdup(buf);
+       }
+
+       return NULL;
+}
+
+static char* __cal_list_get_genlist_item_cs_label(cal_struct *cs)
+{
+       c_retvm_if(!cs, NULL, "cs is null.");
+
+       char buf[512];
+       char stime[512];
+       time_t st;
+       struct tm tm;
+       const char* time;
+
+       if (is_hour24)
+               time = CAL_UTIL_TIME_FORMAT_6;
+       else
+               time = CAL_UTIL_TIME_FORMAT_1;
+
+       st = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_START_DATE_TIME,       CAL_TZ_FLAG_LOCAL));
+       localtime_r(&st, &tm);
+
+       cal_util_get_time_text(stime, sizeof(stime), NULL, time, &tm);
+
+       snprintf(buf, sizeof(buf), "%s", stime);
+
+       return strdup(buf);
+}
+
+static char* __cal_list_get_genlist_item_tm_label(struct tmnode *tm)
+{
+       c_retvm_if(!tm, NULL, "tm is null.");
+
+       char buf[512];
+       char stime[512];
+       struct tm t;
+
+       localtime_r(&tm->st, &t);
+
+       if (is_hour24)
+               cal_util_get_time_text(stime, sizeof(stime), NULL, CAL_UTIL_TIME_FORMAT_6, &t);
+       else
+               cal_util_get_time_text(stime, sizeof(stime), NULL, CAL_UTIL_TIME_FORMAT_1, &t);
+
+       snprintf(buf, sizeof(buf), "%s", stime);
+
+       return strdup(buf);
+}
+
+static char* __cal_list_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+
+       struct tmnode *tm = NULL;
+       cal_struct *cs = NULL;
+       const char *str = NULL;
+       cal_list_data *p = NULL;
+       cal_list_genlist_item_data *i = data;
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retvm_if(!p, NULL, "p is null");
+
+       if (!i || !i->data || i->is_header)
+               return NULL;
+
+       if (p->is_repeat_mode)
+       {
+               tm = i->data;
+               cs = tm->cs;
+       }
+       else
+       {
+               tm = NULL;
+               cs = i->data;
+       }
+
+       c_retvm_if(!cs, NULL, "cs is null.");
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               str = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_SUMMARY);
+               if (str)
+                       return strdup(str);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+       }
+       else if (!CAL_STRCMP(part, "elm.text.2"))
+       {
+               str = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_LOCATION);
+               if (CAL_STRLEN(str))
+                       return strdup(str);
+
+               return strdup(C_("IDS_CLD_BODY_NO_LOCATION_SELECTED"));
+       }
+       else if (!CAL_STRCMP(part, "elm.text.3"))
+       {
+               if (p->is_repeat_mode)
+                       return __cal_list_get_genlist_item_tm_label(tm);
+               else
+                       return __cal_list_get_genlist_item_cs_label(cs);
+       } else if (!CAL_STRCMP(part, "elm.slide.text.1")) {
+               str = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_SUMMARY);
+               if (str)
+                       return strdup(str);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+       }
+
+       return NULL;
+}
+
+static void __cal_list_searchbar_entry_unfocused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       cal_list_data *p = (cal_list_data *)data;
+       elm_object_item_disabled_set(p->ad->bt_new, EINA_FALSE);
+}
+
+static void __cal_list_searchbar_clicked_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       cal_list_data *p = (cal_list_data *)data;
+
+       elm_object_item_disabled_set(p->ad->bt_new, EINA_TRUE);
+}
+
+static void __cal_list_create_searchbar(cal_list_data *p)
+{
+       c_retm_if(!p, "priv is null.");
+       c_retm_if(!p->ly, "p->ly is null.");
+
+       Evas_Object *searchbar = cal_util_add_searchbar(p->ly, NULL, NULL, EINA_TRUE);
+       c_retm_if(!searchbar, "cal_util_add_searchbar() returned null.");
+
+       Evas_Object *en = elm_object_part_content_get(searchbar, "elm.swallow.content");
+       c_retm_if(!en, "elm_object_part_content_get returned null.");
+
+       elm_entry_input_panel_layout_set(en, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &_limit_20char);
+
+       evas_object_size_hint_weight_set(searchbar, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(searchbar, EVAS_HINT_FILL, 0.0);
+
+       evas_object_smart_callback_add(en, "changed", __cal_list_searchbar_entry_changed_callback, p);
+       evas_object_smart_callback_add(en, "unfocused", __cal_list_searchbar_entry_unfocused_callback, p);
+       evas_object_smart_callback_add(searchbar, "clicked", __cal_list_searchbar_clicked_callback, p);
+       evas_object_smart_callback_add(searchbar, "cancel,clicked", __cal_list_cancel_button_callback, p);
+
+       evas_object_show(searchbar);
+       elm_object_part_content_set(p->ly, "searchbar", searchbar);
+
+       p->searchbar = searchbar;
+}
+
+Evas_Object* cal_list_create_list(struct appdata *ad, Evas_Object *parent)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!ad, NULL, "ad is null.");
+       c_retvm_if(!parent, NULL, "parent is null.");
+
+       cal_list_data *p;
+       Evas_Object *ly;
+       Evas_Object *gl;
+       Evas_Object *bg;
+       time_t st = 0;
+       time_t et = 0;
+
+       CAL_CALLOC(p, 1, cal_list_data);
+
+       p->name = _name;
+       p->ad = ad;
+       p->parent = parent;
+       p->popup = NULL;
+       is_hour24 = p->ad->is_hour24;
+
+       ly = cal_util_add_layout(parent, p->name);
+       if (!ly)
+       {
+               free(p);
+               ERR("ly is null.");
+               return NULL;
+       }
+
+       evas_object_data_set(ly, "priv", p);
+       p->ly = ly;
+       p->from = st;
+       p->to = et;
+       p->is_repeat_mode= EINA_FALSE;
+       p->idler = NULL;
+       is_view_destory = EINA_FALSE;
+
+       elm_object_item_disabled_set(p->ad->bt_new, EINA_FALSE);
+
+       bg = cal_util_add_bg(ly, EINA_FALSE);
+       if (!bg)
+       {
+               free(p);
+               free(ly);
+               ERR("bg is null.");
+               return NULL;
+       }
+       elm_object_part_content_set(ly, "base", bg);
+
+       gl = elm_genlist_add(parent);
+       if (!gl)
+       {
+               free(p);
+               free(ly);
+               ERR("gl is null.");
+               return NULL;
+       }
+
+       p->genlist = gl;
+       evas_object_data_set(gl, "priv", p);
+       elm_object_part_content_set(ly, "sw", gl);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_list_delete_layout, p);
+
+       return ly;
+}
+
+void cal_list_scroll_today(struct appdata* ad)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad, "ad is null.");
+
+       Elm_Object_Item* it = ad->today_item;
+       if (it)
+       {
+               elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+               DBG("scroll to : %p", it);
+       }
+
+       CAL_FN_END;
+}
+
+void cal_list_update_list(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ly, "ly is null.");
+
+       cal_list_data *p;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name))
+       {
+               ERR("Invalid object");
+               return;
+       }
+
+       c_retm_if(!p->ad, "p->ad is null.");
+
+       __cal_list_create_searchbar(p);
+
+       __cal_list_update_genlist(p);
+       __cal_list_update_no_item(p);
+
+       if (!p->totalcnt)
+               elm_object_item_disabled_set(p->ad->bt_delete, EINA_TRUE);
+       else
+               elm_object_item_disabled_set(p->ad->bt_delete, EINA_FALSE);
+
+       p->ad->base_tm = p->ad->today_tm;
+
+       CAL_FN_END;
+}
diff --git a/src/list.h b/src/list.h
new file mode 100755 (executable)
index 0000000..e359c95
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_LIST_H__
+#define __CALENDAR_LIST_H__
+
+#include <time.h>
+#include "cld.h"
+
+/* return layout */
+Evas_Object *cal_list_create_list(struct appdata *ad, Evas_Object *parent);
+
+void cal_list_update_list(Evas_Object *ly);
+
+#endif /* __CALENDAR_LIST_H__ */
+
diff --git a/src/main.c b/src/main.c
new file mode 100755 (executable)
index 0000000..d1457e0
--- /dev/null
@@ -0,0 +1,618 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <appcore-efl.h>
+#include <utilX.h>
+#include <Ecore_X.h>
+#include <ui-gadget.h>
+#include <heynoti.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+#include <aul.h>
+
+#include "view.h"
+#include "detail.h"
+#include "alm-mgr.h"
+
+#define NOTI_TIME_CHANGED "setting_time_changed"
+
+static void __cal_main_setup_data(struct appdata *ad);
+static Eina_Bool __cal_main_update_today(void *data);
+
+Eina_Bool noti_handle = 0;
+Ecore_Idler *idler=NULL;
+int totalcnt = 0;
+int realcnt = 0;
+struct appdata ad;
+
+static Evas_Object* __cal_main_add_base_layout(Evas_Object *win)
+{
+       Evas_Object *ly;
+       ly = cal_util_add_layout(win, NULL);
+       if (ly) {
+               elm_win_resize_object_add(win, ly);
+       }
+       return ly;
+}
+
+static void __cal_main_changed_callback(void *data)
+{
+       DBG("");
+
+       __cal_main_setup_data(&ad);
+
+       if(ad.is_pause)
+       {
+               ad.is_update_view = EINA_TRUE;
+               return;
+       }
+
+       cal_main_update_view(&ad);
+
+       return;
+}
+
+static void __cal_main_set_today_tm(struct appdata *ad)
+{
+       struct tm tm;
+       time_t t;
+       time_t now;
+
+       now = time(NULL);
+       localtime_r(&now, &tm);
+       tm.tm_min = 0; // min, sec reset for mktime()
+       tm.tm_sec = 0;
+
+       ad->today_tm = tm;
+
+       tm.tm_hour = 0;
+       t = mktime(&tm);
+       if (t == (time_t)-1)
+       {
+               ad->today_tmr = NULL;
+               return;
+       }
+
+       t = t + (24 * 60 * 60) - time(NULL);
+       ad->today_tmr = ecore_timer_add((double)t, __cal_main_update_today, ad);
+}
+
+static Eina_Bool __cal_main_update_today(void *data)
+{
+       struct appdata *ad = data;
+
+       __cal_main_set_today_tm(ad);
+
+       if (ad->today_edj)
+               edje_object_signal_emit(ad->today_edj, "update_today", "prog");
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_main_setup_data(struct appdata *ad)
+{
+       __cal_main_set_today_tm(ad);
+
+       if(ad->base_tm.tm_year == 0)
+               ad->base_tm = ad->today_tm;
+
+       int r,val;
+
+       r = vconf_get_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT,&val);
+       if(0 > r)
+       {
+               ad->wday_start = 0;
+       }
+       else
+       {
+               ad->wday_start = val;
+       }
+
+       if(!ad->tm)
+               ad->tm = malloc(sizeof(struct tmnode));
+
+       r = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &val);
+       if(0 > r)
+       {
+               ad->is_hour24 = 0;
+       }
+       else if( val == 1 || val == 2)
+       {
+               ad->is_hour24 = val -1;
+       }
+       else
+               ERR("vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &val); error");
+
+       ad->is_update_view = EINA_TRUE;
+
+       ad->acct_id = ALL_VISIBILITY_ACCOUNT;
+}
+
+static void __cal_main_time_changed_callback(void *data)
+{
+       struct appdata *ad = data;
+
+       DBG("");
+
+       __cal_main_update_today(ad);
+}
+
+static int __cal_main_initialize_notification(struct appdata *ad)
+{
+       int r;
+       int fd;
+
+       fd = heynoti_init();
+       if (fd < 0)
+               return -1;
+
+       r = heynoti_subscribe(fd, NOTI_TIME_CHANGED, __cal_main_time_changed_callback, ad);
+       if (r) {
+               heynoti_close(fd);
+               return -1;
+       }
+
+       r = heynoti_attach_handler(fd);
+       if (r) {
+               heynoti_close(fd);
+               return -1;
+       }
+
+       return fd;
+}
+
+static void __cal_main_timezone_vconf_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(NULL == node, "node is null");
+       c_retm_if(NULL == user_data, "user_data is null");
+
+       cal_main_update_view(user_data);
+
+       return;
+}
+
+static void __cal_main_week_of_day_format_vconf_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(NULL == node, "node is null");
+       c_retm_if(NULL == user_data, "user_data is null");
+
+       struct appdata* ad = user_data;
+       int r = vconf_keynode_get_int(node);
+       c_retm_if(r < 0, "vconf_keynode_get_int is failed");
+
+       ad->wday_start = r;
+
+       cal_main_update_view(ad);
+}
+
+static void __cal_main_view_of_month_format_vconf_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(NULL == node, "node is null");
+       c_retm_if(NULL == user_data, "user_data is null");
+
+       struct appdata* ad = user_data;
+       int r = vconf_keynode_get_int(node);
+       c_retm_if(r < 0, "vconf_keynode_get_int is failed");
+
+       ad->is_weekly = r;
+
+       cal_main_update_view(ad);
+}
+
+
+static void __cal_main_time_format_vconf_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!node, "node is null");
+       c_retm_if(!user_data, "user_data is null");
+
+       struct appdata* ad = user_data;
+
+       int r = vconf_keynode_get_int(node);
+       c_retm_if(r < 0, "vconf_keynode_get_int is failed");
+
+       ad->is_hour24 = r -1;
+
+       cal_main_update_view(ad);
+}
+
+static Eina_Bool __cal_main_initialize_with_idler(void* data)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "data is null");
+
+       struct appdata* ad = data;
+       int r = 0;
+
+       r = vconf_notify_key_changed(CAL_VCONFKEY_FOCUS_VIEW,__cal_main_view_of_month_format_vconf_changed_callback,ad);
+       if (r!= CAL_SUCCESS)
+               ERR("vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT , __cal_main_week_of_day_format_vconf_changed_callback, ad);
+       if (r != CAL_SUCCESS)
+               ERR("vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT_TIME1224 , __cal_main_time_format_vconf_changed_callback, ad);
+       if (r != CAL_SUCCESS)
+               ERR("vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT , __cal_main_timezone_vconf_changed_callback, ad);
+       if (r != CAL_SUCCESS)
+               ERR("vconf_notify_key_changed failed");
+
+       r = cal_alarm_manager_initialize(ad);
+       c_warn_if(r, "cal_alarm_manager_initialize is failed(%d)", r);
+
+       ad->notifd = __cal_main_initialize_notification(ad);
+       c_warn_if(ad->notifd < 0, "__cal_main_initialize_notification is failed(%d)", ad->notifd);
+
+       r = account_connect();
+       c_warn_if(r != ACCOUNT_ERROR_NONE, "account_connect is failed(%x)", r);
+
+       UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
+
+       cal_main_add_changed_callback(ad);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static int __cal_main_initialize(struct appdata *ad)
+{
+       c_retvm_if(!ad, -1, "ad is null");
+
+       int r;
+
+       __cal_main_setup_data(ad);
+
+       r = CALENDAR_SVC_CONNECT();
+       c_retvm_if(r != CAL_SUCCESS, -1, "CALENDAR_SVC_CONNECT is failed(%d)", r);
+
+       cal_util_connect_pattern_generator();
+
+       return 0;
+}
+
+static void __cal_main_finish(struct appdata *ad)
+{
+       int r;
+
+       ug_destroy_all();
+
+       if (ad->notifd >= 0)
+               heynoti_close(ad->notifd);
+
+       cal_util_disconnect_pattern_generator();
+
+       r = account_disconnect();
+       c_warn_if(r != ACCOUNT_ERROR_NONE, "account_connect is failed(%x)", r);
+
+       cal_alarm_manager_finish();
+
+       r = vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT, __cal_main_timezone_vconf_changed_callback);
+       if (r)
+               ERR("vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT) failed");
+
+       r = vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, __cal_main_time_format_vconf_changed_callback);
+       if (r)
+               ERR("vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT_TIME1224) failed");
+
+       r = vconf_ignore_key_changed(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, __cal_main_week_of_day_format_vconf_changed_callback);
+       if (r)
+               ERR("vconf_ignore_key_changed(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT) failed");
+
+       CALENDAR_SVC_DISCONNECT();
+}
+
+static void __cal_main_rendering_flush_callback(void *data, Evas *e, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       evas_event_callback_del(e, EVAS_CALLBACK_RENDER_FLUSH_POST, __cal_main_rendering_flush_callback);
+
+       ecore_idler_add(__cal_main_initialize_with_idler, data);
+}
+
+static int __cal_main_add_naviframe(struct appdata *ad)
+{
+       c_retvm_if(!ad, -1, "ad is null");
+
+       ad->nv = elm_naviframe_add(ad->base);
+       c_retvm_if(!ad->nv, -1, "elm_naviframe_add returned null");
+
+       Evas *e = evas_object_evas_get(ad->nv);
+       c_retvm_if(!e, -1, "evas_object_evas_get returned null");
+
+       evas_event_callback_add(e, EVAS_CALLBACK_RENDER_FLUSH_POST, __cal_main_rendering_flush_callback, ad);
+
+       elm_object_theme_set(ad->nv, ad->theme);
+       elm_object_part_content_set(ad->base, "elm.swallow.content", ad->nv);
+
+       return 0;
+}
+
+static int cal_create(void *data)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!data, -1, "data is null");
+
+       struct appdata *ad = data;
+       int r;
+
+       ad->win = cal_util_add_window(CALENDAR_PACKAGE, &ad->win_w, &ad->win_h);
+       c_retvm_if(!ad->win, -1, "ad->win is null");
+
+       ad->bg = cal_util_add_bg(ad->win, EINA_TRUE);
+       c_retvm_if(!ad->bg, -1, "ad->bg is null");
+
+       ad->base = __cal_main_add_base_layout(ad->win);
+       c_retvm_if(!ad->base, -1, "ad->base is null");
+
+       r = __cal_main_initialize(ad);
+       c_retvm_if(r, -1, "__cal_main_initialize is failed(%d)", r);
+
+       ad->theme = elm_theme_new();
+       c_retvm_if(!ad->theme, -1, "ad->theme is null");
+       elm_theme_ref_set(ad->theme, NULL);
+
+       r = __cal_main_add_naviframe(ad);
+       c_retvm_if(r, -1, "__cal_main_add_naviframe is failed(%d)", r);
+
+       return 0;
+}
+
+static int cal_terminate(void *data)
+{
+       DBG("");
+       CAL_ASSERT(data);
+
+       struct appdata *ad = data;
+
+       ug_destroy_all();
+
+       __cal_main_finish(ad);
+
+       if (ad->win)
+               evas_object_del(ad->win);
+
+       return 0;
+}
+
+static void __cal_main_raise_main_view(struct appdata *ad)
+{
+       DBG("");
+
+       CAL_ASSERT(ad);
+
+       Elm_Object_Item* bottom = elm_naviframe_bottom_item_get(ad->nv);
+       if(!bottom)
+               return;
+
+       elm_naviframe_item_pop_to(bottom);
+
+       if(ad->main_navi_item == bottom)
+               elm_naviframe_item_pop(ad->nv);
+}
+
+static inline void __cal_main_add_naviframe_content(struct appdata *ad)
+{
+       DBG("");
+
+       switch (ad->request_view)
+       {
+       case CV_YEAR:
+       case CV_MONTH:
+       case CV_DAY:
+       case CV_LIST:
+               __cal_main_raise_main_view(ad);
+               cal_main_create_view(ad);
+               break;
+       case CV_DETAIL:
+               cal_detail_create_view(ad,ad->base);
+               break;
+       case CV_EDIT:
+               cal_edit_create_view(ad,ad->base);
+               break;
+       default:
+               /* TODO: add more */
+               break;
+       }
+
+       Evas_Object *back_button = elm_object_item_part_content_get(elm_naviframe_bottom_item_get(ad->nv), "prev_btn");
+       c_ret_if(!back_button);
+
+       elm_object_focus_allow_set(back_button, EINA_FALSE);
+
+}
+
+static int cal_resume(void *data)
+{
+       DBG("");
+       CAL_ASSERT(data);
+
+       struct appdata* ad = (struct appdata*)data;
+
+       ug_resume();
+
+       ad->is_pause = EINA_FALSE;
+
+       if (ad->is_update_view)
+               __cal_main_changed_callback(ad);
+
+       return 0;
+}
+
+static int __cal_main_select_view(bundle *b, struct appdata* ad)
+{
+       CAL_ASSERT(b);
+       CAL_ASSERT(ad);
+
+       const char* val = NULL;
+       int r = 0;
+
+       if (b)
+               val = bundle_get_val(b,AUL_K_SERVICE_NAME);
+
+       if (val)/*AUL SERVICE*/
+       {
+               if(!CAL_STRCMP(val,"create_event"))
+               {
+                       ad->request_view = CV_MONTH;
+                       ad->is_aul = EINA_TRUE;
+                       ad->content = elm_naviframe_top_item_get(ad->nv);
+
+                       return 0;
+               }
+               else if(!CAL_STRCMP(val,"view_event"))
+               {
+                       ad->request_view = CV_DETAIL;
+                       val = bundle_get_val(b, "index");
+
+                       if(val)
+                       {
+                               ad->cid = atoi(val);
+                               ad->is_aul = EINA_TRUE;
+                               ad->content = elm_naviframe_top_item_get(ad->nv);
+                       }
+                       else
+                               ad->request_view = CV_MONTH;
+
+                       return 0;
+               }
+       }
+
+
+       if (b)
+               val = bundle_get_val(b, "caller");
+
+       if ( val &&  !CAL_STRCMP(val, "live"))/*LIVE MAGAZINE*/
+       {
+               val = bundle_get_val(b, "count");
+
+               if(val)
+               {
+                       r = atoi(val);
+                       if(r)
+                               ad->request_view = CV_LIST;
+                       else
+                       {
+                               ad->request_view = CV_EDIT;
+                               ad->cid = 0;
+                       }
+
+                       return 0;
+               }
+               else
+               {
+                       ad->request_view = CV_LIST;
+                       ERR("bundle parsing error");
+                       return 0;
+               }
+       }
+
+       ad->request_view = CV_MONTH;
+       return 0;
+}
+
+static int cal_reset(bundle *b, void *data)
+{
+       DBG("");
+
+       CAL_ASSERT(b);
+       CAL_ASSERT(data);
+
+       struct appdata *ad = data;
+
+       ug_destroy_all();
+
+       int r = __cal_main_select_view(b, ad);
+       if(r < 0)
+       {
+               ERR("__cal_main_select_view return error");
+               return -1;
+       }
+
+       if (ad->win)
+               elm_win_activate(ad->win);
+
+       evas_object_show(ad->win);
+
+       __cal_main_add_naviframe_content(ad);
+
+       return 0;
+}
+
+static int cal_pause(void *data)
+{
+       DBG("");
+
+       CAL_ASSERT(data);
+
+       struct appdata* ad = data;
+
+       CAL_ASSERT(ad->nv);
+
+       ug_pause();
+
+       if (ad->is_aul)
+       {
+               ad->is_aul = EINA_FALSE;                                                                        //unset flag
+
+               if(ad->content && elm_naviframe_top_item_get(ad->nv) != elm_naviframe_bottom_item_get(ad->nv))
+                       elm_naviframe_item_pop_to(ad->content); //pop to calendar app's content
+               else
+                       elm_exit();                                                                                     //if there is no calendar app's contents, exit.
+
+               ad->request_view = CV_UNKNOWN;
+       }
+
+       ad->is_pause = EINA_TRUE;
+
+       return 0;
+}
+
+int main(int argc, char *argv[])
+{
+       struct appcore_ops ops = {
+               .create = cal_create,
+               .reset = cal_reset,
+               .pause = cal_pause,
+               .resume = cal_resume,
+               .terminate = cal_terminate,
+       };
+
+       memset(&ad, 0x0, sizeof(struct appdata));
+       ops.data = &ad;
+
+       return appcore_efl_main(CALENDAR_PACKAGE, &argc, &argv, &ops);
+}
diff --git a/src/timeblock.c b/src/timeblock.c
new file mode 100755 (executable)
index 0000000..e12635d
--- /dev/null
@@ -0,0 +1,1067 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <Ecore_X.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+
+#include "timeblock.h"
+
+#define CAL_TIMEBLOCK_CONTENT_HEIGHT 16
+#define CAL_TIMEBLOCK_CONTRACT_HEIGHT 102
+#define CAL_TIMEBLOCK_NORMAL_HEIGHT 130
+#define CAL_TIMEBLOCK_TEXT_HEIGHT 30
+
+static void __cal_time_block_restack_time_block(struct timeblock *tb);
+
+void cal_time_block_show_current_time_line(struct timeblock *tb, int hour)
+{
+       int i;
+       struct timeblock_slice *t;
+
+       if (!tb)
+               return;
+
+       if(0 > hour || 23 < hour)
+               return;
+
+       for(i = 0; i < sizeof(tb->tbs)/sizeof(tb->tbs[0]); i++)
+       {
+               t = &tb->tbs[i];
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(t->ly), "hide,line", "prog");
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(t->ly), "hide,img", "prog");
+       }
+
+       if(NULL != tb->tbs[hour].ly)
+       {
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(tb->tbs[hour].ly), "show,line", "prog");
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(tb->tbs[hour].ly), "show,img", "prog");
+       }
+}
+
+void cal_time_block_hide_current_time_line(struct timeblock *tb)
+{
+       int i;
+       struct timeblock_slice *t;
+
+       if (!tb)
+               return;
+
+       for(i = 0; i < sizeof(tb->tbs)/sizeof(tb->tbs[0]); i++)
+       {
+               t = &tb->tbs[i];
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(t->ly), "hide,line", "prog");
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(t->ly), "hide,img", "prog");
+       }
+}
+
+static void _cal_time_block_show_contracted_bg(struct timeblock *tb)
+{
+       int i;
+       struct timeblock_slice *t;
+
+       if(NULL == tb)
+               return;
+
+       for(i = 0; i < sizeof(tb->tbs)/sizeof(tb->tbs[0]); i++)
+       {
+               t = &tb->tbs[i];
+               if(t->is_contracted)
+                       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(t->ly), "contracted", "prog");
+       }
+}
+
+static void _cal_time_block_hide_contracted_bg(struct timeblock *tb)
+{
+       int i;
+       struct timeblock_slice *t;
+
+       if(NULL == tb)
+               return;
+
+       for(i = 0; i < sizeof(tb->tbs)/sizeof(tb->tbs[0]); i++)
+       {
+               t = &tb->tbs[i];
+               if(!t->is_contracted)
+                       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(t->ly), "uncontracted", "prog");
+       }
+}
+
+
+static int __cal_time_block_sort_ev(const void *d1, const void *d2)
+{
+       const struct timeblock_event  *t1 = d1;
+       const struct timeblock_event  *t2 = d2;
+
+       if (!t1)
+               return 1;
+       if (!t2)
+               return -1;
+
+       return t1->sz < t2->sz ? 1 : -1;
+}
+
+static void __cal_time_block_delete_event_block_slice_overlap(struct timeblock *tb)
+{
+       struct eventblock_overlap *ebv = NULL;
+       Eina_List *l;
+       if(NULL == tb)
+       {
+               return;
+       }
+       EINA_LIST_FOREACH(tb->ebs_list, l, ebv)
+       {
+               if(NULL != ebv)
+               {
+                       free(ebv);
+               }
+       }
+       tb->ebs_list = eina_list_free(tb->ebs_list);
+}
+
+static void _cal_time_block_clear_start_index(struct timeblock *tb)
+{
+       int i = 0;
+       struct eventblock_slice *eb = NULL;
+       if(NULL == tb)
+       {
+               return;
+       }
+       for(i = 0; i<sizeof(tb->ebs)/sizeof(tb->ebs[0]); i++)
+       {
+               eb = &tb->ebs[i];
+               eb->start_index = 0;
+               eb->real_sz = 0;
+       }
+}
+static void __cal_time_block_set_start_index(struct timeblock *tb)
+{
+       int i = 0;
+       int j = 0;
+       int k = 0;
+       int e = 0;
+       int sz = 0;
+       struct eventblock_slice *eb = NULL;
+       struct eventblock_slice *eb_tmp = NULL;
+       Eina_List *l;
+       const struct timeblock_event *ev = NULL;
+       if(NULL == tb)
+       {
+               return;
+       }
+       _cal_time_block_clear_start_index(tb);
+       for(i = 0; i<sizeof(tb->ebs)/sizeof(tb->ebs[0]); i++)
+       {
+               eb = &tb->ebs[i];
+               if(NULL != eb->list)
+               {
+                       k = 0;
+                       EINA_LIST_FOREACH(eb->list, l, ev)
+                       {
+                               if(NULL != ev)
+                               {
+                                       e = ev->idx + ev->sz;
+                                       for(j = ev->idx; (j<e && j<sizeof(tb->ebs)/sizeof(tb->ebs[0])); j++)
+                                       {
+                                               eb_tmp = &tb->ebs[j];
+                                               if(j > ev->idx)
+                                               {
+                                                       if(0 == k)
+                                                               eb_tmp->start_index =  eb->start_index + 1;
+                                                       else
+                                                               eb_tmp->start_index =  eb_tmp->start_index + 1;
+                                               }
+                                               sz = eina_list_count(eb_tmp->list);
+                                               eb_tmp->real_sz = eb_tmp->start_index + sz;
+                                       }
+                                       k = 1;
+                               }
+
+                       }
+               }
+       }
+}
+
+static void __cal_time_block_set_event_block_slice_overlap_ranged(struct timeblock *tb)
+{
+       int i = 0;
+       int j = 0;
+       struct eventblock_slice *eb = NULL;
+       struct eventblock_overlap *ebv = NULL;
+       int nebs = 0;
+       if(NULL == tb)
+       {
+               return;
+       }
+       __cal_time_block_set_start_index(tb);
+       nebs = sizeof(tb->ebs)/sizeof(tb->ebs[0]);
+       __cal_time_block_delete_event_block_slice_overlap(tb);
+       while(i < nebs)
+       {
+
+               eb = &tb->ebs[i];
+               if(0 == eb->start_index)
+               {
+                       if(0 == eb->real_sz)
+                       {
+                               i++;
+                               continue;
+                       }
+                       CAL_CALLOC(ebv, 1, struct eventblock_overlap);
+                       if(NULL == ebv)
+                       {
+                               return;
+                       }
+                       ebv->start_idx = i;
+                       ebv->end_idx = i;
+                       ebv->size = eb->real_sz;
+
+                       if(nebs == i+1)
+                       {
+                               tb->ebs_list = eina_list_append(tb->ebs_list, ebv);
+                       }
+                       for(j = i+1; j < nebs; j++)
+                       {
+
+                               eb = &tb->ebs[j];
+                               if((j == nebs-1) && (0 != eb->start_index))
+                               {
+                                       if(eb->real_sz > ebv->size)
+                                       {
+                                               ebv->size = eb->real_sz;
+                                       }
+                                       ebv->end_idx = j;
+                                       tb->ebs_list = eina_list_append(tb->ebs_list, ebv);
+                               }
+                               else if(0 == eb->start_index)
+                               {
+                                       ebv->end_idx = j - 1;
+                                       tb->ebs_list = eina_list_append(tb->ebs_list, ebv);
+                                       i = j;
+                                       break;
+                               }
+                               else
+                               {
+                                       if(eb->real_sz > ebv->size)
+                                       {
+                                               ebv->size = eb->real_sz;
+                                       }
+                               }
+                       }
+
+                       if(j >= nebs)
+                       {
+                               break;
+                       }
+               }
+       }
+
+}
+
+static void __cal_time_block_move_event(struct timeblock_event *ev, Evas_Coord_Rectangle *base,
+               int idx, Evas_Coord w)
+{
+       c_retm_if(!ev, "ev is null");
+       c_retm_if(!ev->tb, "ev->tb is null");
+       c_retm_if(!ev->ly, "ev->ly is null");
+
+       evas_object_move(ev->ly, base->x + (idx * w), base->y);
+       evas_object_resize(ev->ly, w, base->h * ev->sz);
+}
+
+static void __cal_time_block_move_event_block_slice(struct timeblock *tb)
+{
+       c_retm_if(!tb, "tb is null");
+
+       struct eventblock_overlap *ebv = NULL;
+       Eina_List *l;
+       Eina_List *l2;
+       struct eventblock_slice *eb = NULL;
+       Evas_Coord_Rectangle base = {0};
+       struct timeblock_event *ev = NULL;
+       int count = 0;
+       int width = 0;
+       int i = 0;
+
+       __cal_time_block_set_event_block_slice_overlap_ranged(tb);
+
+       EINA_LIST_FOREACH(tb->ebs_list, l, ebv) {
+               if (ebv) {
+                       if (0 < ebv->size) {
+                               for ( i = ebv->start_idx; i <= ebv->end_idx; i++) {
+
+                                       eb = &tb->ebs[i];
+                                       cal_util_get_geometry(&base, eb->base);
+                                       width = base.w / ebv->size;
+                                       count = eb->start_index;
+
+                                       EINA_LIST_FOREACH(eb->list, l2, ev) {
+                                               if (ev) {
+                                                       __cal_time_block_move_event(ev, &base, count, width);
+                                                       count ++;
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+void cal_time_block_move(struct timeblock *time_block, Evas_Coord x, Evas_Coord y)
+{
+       c_retm_if(!time_block, "time_block is null");
+
+       int i;
+       struct timeblock_slice *t;
+
+       time_block->x = x;
+       time_block->y = y;
+
+       for (i = 0; i < sizeof(time_block->tbs)/sizeof(time_block->tbs[0]); i++) {
+               t = &time_block->tbs[i];
+               if (!t->ly)
+                       continue;
+
+               evas_object_move(t->ly, x, y);
+               t->x = x;
+               t->y = y;
+
+               y += t->h;
+       }
+
+       __cal_time_block_move_event_block_slice(time_block);
+}
+
+static void __cal_time_block_resize_time_block(struct timeblock *time_block)
+{
+       int i;
+       Evas_Coord sum;
+
+       sum = 0;
+       for (i = 0; i < sizeof(time_block->tbs)/sizeof(time_block->tbs[0]); i++) {
+               struct timeblock_slice *t = &time_block->tbs[i];
+
+               if (!t->ly)
+                       continue;
+
+               if (t->h > CAL_TIMEBLOCK_TEXT_HEIGHT) {
+                       if (t->hide_text) {
+                               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(t->ly), "show,text", "prog");
+                               t->hide_text = EINA_FALSE;
+                       }
+               }
+               else    {
+                       if (!t->hide_text) {
+                               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(t->ly), "hide,text", "prog");
+                               t->hide_text = EINA_TRUE;
+                       }
+               }
+
+               evas_object_resize(t->ly, time_block->w, t->h);
+               sum += t->h;
+       }
+
+       time_block->h = sum;
+}
+
+static inline void __cal_time_block_set_size(struct timeblock *tb, Evas_Coord h)
+{
+       int i;
+
+       if (h > tb->normal_height)
+               h = tb->normal_height;
+       else if (h < tb->contract_height)
+               h = tb->contract_height;
+
+       for (i = 0; i < sizeof(tb->tbs)/sizeof(tb->tbs[0]); i++)
+       {
+               struct timeblock_slice *t = &tb->tbs[i];
+               t->is_contracted = EINA_FALSE;
+
+               if (t->cnt == 0)
+                       t->h = h;
+               else
+                       t->h = tb->normal_height;
+       }
+
+       tb->h_cur = h;
+}
+
+static int __cal_time_block_find_time_block(struct timeblock *tb, Evas_Coord y)
+{
+       int i;
+       struct timeblock_slice *t;
+
+       for (i = 1; i < sizeof(tb->tbs)/sizeof(tb->tbs[0]); i++) {
+               t = &tb->tbs[i];
+
+               if (t->y > y)
+                       return i - 1;
+       }
+
+       return i - 1;
+}
+
+static void __cal_time_block_rearrange_time_block_after(struct timeblock *tb, int idx)
+{
+       int i;
+       struct timeblock_slice *prev;
+       struct timeblock_slice *t;
+
+       for (i = idx + 1; i < sizeof(tb->tbs)/sizeof(tb->tbs[0]); i++) {
+               t = &tb->tbs[i];
+               prev = &tb->tbs[i - 1];
+
+               t->y = prev->y + prev->h;
+               evas_object_move(t->ly, t->x, t->y);
+       }
+}
+
+static inline void __cal_time_block_rearrange_time_block(struct timeblock *tb, int idx)
+{
+       struct timeblock_slice *t;
+       struct timeblock_slice *next;
+       int i;
+
+       __cal_time_block_rearrange_time_block_after(tb, idx);
+
+       for (i = idx - 1; i >= 0; i--) {
+               t = &tb->tbs[i];
+               next = &tb->tbs[i + 1];
+
+               t->y = next->y - t->h;
+               evas_object_move(t->ly, t->x, t->y);
+       }
+
+       tb->y = tb->tbs[0].y;
+}
+
+
+static inline void __cal_time_block_set_size_contract(struct timeblock *tb, Evas_Coord h, int hour)
+{
+       int i = 0;
+       int j = 0;
+       int k = 0;
+       for(k = 0; k<sizeof(tb->tbs)/sizeof(tb->tbs[0]); k++)
+       {
+               struct timeblock_slice *t = &tb->tbs[k];
+               t->is_contracted = EINA_FALSE;
+       }
+
+       while(i < sizeof(tb->tbs)/sizeof(tb->tbs[0]))
+       {
+               struct timeblock_slice *t = &tb->tbs[i];
+               if (t->cnt == 0)
+               {
+                       if(hour == i)
+                       {
+                               i += 1;
+                               t->h = tb->normal_height;
+                               continue;
+                       }
+                       else
+                       {
+                               t->is_contracted = EINA_TRUE;
+                               t->h = tb->h_contract;
+                       }
+                       for(j = i+1; j<sizeof(tb->tbs)/sizeof(tb->tbs[0]); j++)
+                       {
+                               struct timeblock_slice *t_n = &tb->tbs[j];
+                               if (t_n->cnt == 0)
+                               {
+                                       if(hour == j)
+                                       {
+                                               i = j;
+                                               break;
+                                       }
+                                       else
+                                       {
+                                               t_n->h = h;
+                                       }
+                               }
+                               else
+                               {
+                                       i = j;
+                                       break;
+                               }
+                       }
+
+                       i = j;
+
+               }
+               else
+               {
+                       i++;
+               }
+       }
+
+       tb->h_cur = tb->h_contract;
+
+}
+
+
+void cal_time_block_resize_contract(struct timeblock *tb, Evas_Coord y, Evas_Coord h,  int hour)
+{
+       int idx;
+
+       idx = __cal_time_block_find_time_block(tb, y);
+
+       __cal_time_block_set_size_contract(tb, h, hour);
+
+       __cal_time_block_resize_time_block(tb);
+       __cal_time_block_rearrange_time_block(tb, idx);
+       __cal_time_block_move_event_block_slice(tb);
+       _cal_time_block_show_contracted_bg(tb);
+}
+
+void cal_time_block_resize(struct timeblock *tb, Evas_Coord y, Evas_Coord h)
+{
+       int idx;
+       if(h < 30)
+       {
+               return;
+       }
+       idx = __cal_time_block_find_time_block(tb, y);
+
+       __cal_time_block_set_size(tb, h);
+       __cal_time_block_resize_time_block(tb);
+       __cal_time_block_rearrange_time_block(tb, idx);
+       __cal_time_block_move_event_block_slice(tb);
+       _cal_time_block_hide_contracted_bg(tb);
+}
+
+static inline int __cal_time_block_get_color(struct timeblock *tb)
+{
+       int r;
+
+       r = tb->color;
+       tb->color = (tb->color + 1) & 0x3;
+
+       return r;
+}
+
+static Evas_Object* __cal_time_block_add_event_layout(struct timeblock *tb, const char *text)
+{
+       Evas_Object *ly;
+
+       ly = cal_util_add_layout(tb->parent, "main/day/tb/event");
+       CAL_ASSERT(ly);
+
+       evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       if (text)
+               edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly), "text", text);
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "bg,color%d", __cal_time_block_get_color(tb));
+
+       evas_object_clip_set(ly, (Evas_Object*)tb->clip);
+
+       return ly;
+}
+
+static void __cal_time_event_mouse_down_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!ei, "ei is null");
+
+       Evas_Event_Mouse_Down *ev = ei;
+       struct timeblock_event *event = data;
+
+       event->mouse_down_y = ev->canvas.y;
+}
+
+static struct timeblock_event* __cal_time_block_add_event(struct timeblock *time_block, int cid, int hh, int sz, const char *text, struct tmnode* tm)
+{
+       CAL_ASSERT(time_block);
+       CAL_ASSERT(tm);
+
+       struct timeblock_event *e;
+       Evas_Object *ly;
+
+       CAL_CALLOC(e, 1, struct timeblock_event);
+
+       ly = __cal_time_block_add_event_layout(time_block, text);
+       CAL_ASSERT(ly);
+
+       e->cid = cid;
+       e->idx = hh;
+       e->sz = sz;
+       e->tb = time_block;
+       e->ly = ly;
+       e->tm = tm;
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_DOWN, __cal_time_event_mouse_down_callback, e);
+
+       return e;
+}
+
+static void __cal_time_block_event_callback(void *data, Evas_Object *obj, const char *e, const char *s)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       struct timeblock_event *ev = data;
+       struct timeblock *tb = ev->tb;
+       c_retm_if(!tb, "tb is null");
+
+       if (tb->lock)
+               return;
+
+       if (!CAL_STRCMP(e, "dn")) {
+               if (!tb->dn) {
+                       tb->dn = obj;
+                       edje_object_signal_emit(obj, "select", "prog");
+               }
+               return;
+       }
+
+       if (!CAL_STRCMP(e, "up")) {
+
+               if (tb->dn == obj) {
+                       if (tb->cb) {
+                               tb->cb(tb->cb_d, tb, EVENT_CLICKED, ev);
+                       }
+
+                       tb->dn = NULL;
+                       edje_object_signal_emit(obj, "unselect", "prog");
+               }
+
+               return;
+       }
+}
+
+static int __cal_time_block_insert_event(struct timeblock *time_block, struct timeblock_event *ev)
+{
+       CAL_ASSERT(time_block);
+       CAL_ASSERT(ev);
+
+       int idx;
+       int i;
+       int e;
+       struct eventblock_slice *eb;
+
+       idx = ev->idx >> 1;
+       e = (ev->idx + ev->sz + 1) >> 1;
+
+       for (i = idx; i < e && i < sizeof(time_block->tbs)/sizeof(time_block->tbs[0]); i++)
+               time_block->tbs[i].cnt++;
+
+       eb = &time_block->ebs[ev->idx];
+       eb->list = eina_list_sorted_insert(eb->list, __cal_time_block_sort_ev, ev);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(ev->ly), "*", "edj", __cal_time_block_event_callback, ev);
+
+       return idx;
+}
+
+static struct timeblock_event* __cal_time_block_find_event(struct timeblock *time_block, int cid)
+{
+       CAL_ASSERT(time_block);
+       int i;
+       struct eventblock_slice *eb;
+       struct timeblock_event *ev;
+       Eina_List *l;
+
+       for (i = 0; i < sizeof(time_block->ebs)/sizeof(time_block->ebs[0]); i++)
+       {
+               eb = &time_block->ebs[i];
+
+               EINA_LIST_FOREACH(eb->list, l, ev)
+               {
+                       if (ev && ev->cid == cid)
+                               return ev;
+               }
+       }
+
+       return NULL;
+}
+
+static void __cal_time_block_restack_time_block(struct timeblock *tb)
+{
+       int i;
+       Evas_Object *prev;
+       struct eventblock_slice *eb;
+       struct timeblock_event *ev;
+       Eina_List *l;
+
+       prev = NULL;
+       for (i = 0; i < sizeof(tb->ebs)/sizeof(tb->ebs[0]); i++)
+       {
+               eb = &tb->ebs[i];
+
+               EINA_LIST_FOREACH(eb->list, l, ev)
+               {
+                       if (prev && NULL != ev)
+                               evas_object_stack_above(ev->ly, prev);
+
+                       if(ev)
+                               prev = ev->ly;
+               }
+       }
+}
+
+void cal_time_block_add_event(struct timeblock *time_block, int cid, int hh, int sz, const char *text, struct tmnode* tm)
+{
+       CAL_ASSERT(time_block);
+       CAL_ASSERT(tm);
+
+       struct timeblock_event *e;
+       int idx;
+
+       e = __cal_time_block_find_event(time_block, cid);
+       if (e)
+       {
+               // TODO: update
+               e->tm = tm;
+               return;
+       }
+
+       e = __cal_time_block_add_event(time_block, cid, hh, sz, text, tm);
+       CAL_ASSERT(e);
+
+       idx = __cal_time_block_insert_event(time_block, e);
+
+       __cal_time_block_restack_time_block(time_block);
+       __cal_time_block_rearrange_time_block_after(time_block, idx);
+       __cal_time_block_move_event_block_slice(time_block);
+}
+
+void cal_time_block_get_geometry(struct timeblock *time_block, Evas_Coord_Rectangle *r)
+{
+       CAL_ASSERT(time_block);
+       CAL_ASSERT(r);
+
+       r->x = time_block->x;
+       r->y = time_block->y;
+       r->w = time_block->w;
+       r->h = time_block->h;
+}
+
+static void __cal_time_block_time_block_callback(void *data, Evas_Object *obj, const char *e, const char *s)
+{
+       struct timeblock_slice *t = data;
+       struct timeblock *tb = t->tb;
+
+       if (tb->lock)
+               return;
+
+       if (!CAL_STRCMP(e, "dn")) {
+               if (!tb->dn && t->h == tb->normal_height && !t->is_contracted) {
+                       tb->dn = obj;
+                       edje_object_signal_emit(obj, "select", "prog");
+               }
+               return;
+       }
+
+       if (!CAL_STRCMP(e, "up")) {
+               if (tb->dn == obj) {
+                       if (tb->cb)
+                               tb->cb(tb->cb_d, tb, TIMEBLOCK_CLICKED, (void *)t->idx);
+                       tb->dn = NULL;
+                       edje_object_signal_emit(obj, "unselect", "prog");
+               }
+               return;
+       }
+}
+
+static void __cal_time_block_add_time_block(struct timeblock *time_block)
+{
+       int i;
+       struct timeblock_slice *t;
+       struct eventblock_slice *e;
+       Evas_Object *ly;
+       Evas_Coord sum;
+       struct tm tm;
+       int is_hour24;
+       int r;
+
+       memset(&tm, 0, sizeof(struct tm));
+       cal_util_update_tm_hour(&tm, 0);
+       tm.tm_hour = 0;
+       tm.tm_min = 0;
+
+       r = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &is_hour24);
+       if(0 > r)
+       {
+               is_hour24 = 0;
+       }
+       else if(is_hour24 ==1 || is_hour24 == 2)
+       {
+               is_hour24--;
+       }
+       else
+       {
+               ERR("vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &is_hour24) is failed");
+       }
+
+       sum = 0;
+       for (i = 0; i < sizeof(time_block->tbs)/sizeof(time_block->tbs[0]); i++)
+       {
+               ly = cal_util_add_layout(time_block->parent, "main/day/tb/block");
+               CAL_ASSERT(ly);
+
+               if(is_hour24)
+                       cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(ly), "text", NULL, CAL_UTIL_TIME_FORMAT_7, &tm);
+               else
+                       cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(ly), "text", NULL, CAL_UTIL_TIME_FORMAT_3, &tm);
+
+               cal_util_update_tm_hour(&tm, 1);
+
+               if (i > 11)
+                       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), "pm", "prog");
+
+               evas_object_clip_set(ly, (Evas_Object*)time_block->clip);
+               evas_object_show(ly);
+
+               t = &time_block->tbs[i];
+               t->ly = ly;
+               t->h = time_block->normal_height;
+               t->tb = time_block;
+               t->idx = i;
+               t->is_contracted = EINA_FALSE;
+
+               edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(ly), "*", "edj", __cal_time_block_time_block_callback, t);
+
+               e = &time_block->ebs[i << 1];
+               e->tb = time_block;
+               e->base = edje_object_part_object_get(CAL_UTIL_GET_EDJ_DATA(ly), "evtbase/top");
+               e->real_sz = 0;
+               e->start_index = 0;
+
+               e = &time_block->ebs[(i << 1) + 1];
+               e->tb = time_block;
+               e->base = edje_object_part_object_get(CAL_UTIL_GET_EDJ_DATA(ly), "evtbase/bottom");
+               e->real_sz = 0;
+               e->start_index = 0;
+
+               sum += t->h;
+       }
+
+       time_block->h = sum;
+}
+
+static void __cal_time_resize_time_block(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct timeblock *time_block = data;
+       Evas_Coord w;
+
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, NULL);
+       time_block->w = w;
+
+       __cal_time_block_resize_time_block(time_block);
+       __cal_time_block_rearrange_time_block_after(time_block, 0);
+       __cal_time_block_move_event_block_slice(time_block);
+}
+
+struct timeblock* cal_time_block_create_time_block(Evas_Object *parent, Evas_Object *clip)
+{
+       CAL_FN_START;
+
+       struct timeblock *time_block;
+
+       CAL_ASSERT(parent);
+       CAL_ASSERT(clip);
+
+       CAL_CALLOC(time_block, 1, struct timeblock);
+
+       double scale = elm_config_scale_get();
+
+       time_block->parent = parent;
+       time_block->clip = clip;
+       time_block->normal_height = CAL_TIMEBLOCK_NORMAL_HEIGHT * scale;
+       time_block->contract_height = CAL_TIMEBLOCK_CONTENT_HEIGHT * scale;
+       time_block->h_contract = CAL_TIMEBLOCK_CONTRACT_HEIGHT * scale;
+
+       __cal_time_block_add_time_block(time_block);
+
+       time_block->h_cur = time_block->normal_height;
+
+       __cal_time_resize_time_block(time_block, NULL, parent, NULL);
+
+       return time_block;
+}
+
+static inline void __cal_time_block_clear_time_block(struct timeblock *time_block)
+{
+       CAL_ASSERT(time_block);
+
+       struct timeblock_event *ev;
+       struct eventblock_slice *eb;
+       int i;
+       Eina_List *l;
+
+       __cal_time_block_delete_event_block_slice_overlap(time_block);
+
+       for (i = 0; i < sizeof(time_block->ebs)/sizeof(time_block->ebs[0]); i++)
+       {
+               eb = &time_block->ebs[i];
+               if(NULL == eb)
+                       return;
+
+               EINA_LIST_FOREACH(eb->list, l, ev)
+               {
+                       if(NULL == ev)
+                               return;
+
+                       if (ev->ly)
+                               evas_object_del(ev->ly);
+
+                       free(ev);
+               }
+               eb->list = eina_list_free(eb->list);
+       }
+}
+
+static void __cal_time_block_delete_time_block_slice(struct timeblock *time_block)
+{
+       CAL_ASSERT(time_block);
+
+       struct timeblock_slice *tbs;
+       int i;
+
+       for(i = 0; i < sizeof(time_block->tbs)/sizeof(time_block->tbs[0]); i++)
+       {
+               tbs = &time_block->tbs[i];
+               if(NULL == tbs)
+                       return;
+
+               if(tbs->ly)
+               {
+                       evas_object_clip_unset(tbs->ly);
+
+                       edje_object_signal_callback_del(CAL_UTIL_GET_EDJ_DATA(tbs->ly), "*", "edj", __cal_time_block_time_block_callback);
+
+                       evas_object_del(tbs->ly);
+               }
+       }
+}
+
+void cal_time_block_delete_time_block(struct timeblock **tb)
+{
+       CAL_FN_START;
+
+       CAL_ASSERT(tb);
+       CAL_ASSERT(*tb);
+
+       __cal_time_block_clear_time_block(*tb);
+       __cal_time_block_delete_time_block_slice(*tb);
+
+       free(*tb);
+       *tb = NULL;
+}
+
+Evas_Coord cal_time_block_get_min(struct timeblock *tb)
+{
+       if (!tb)
+               return 0;
+
+       return tb->contract_height;
+}
+
+Evas_Coord cal_time_block_get_max(struct timeblock *tb)
+{
+       if (!tb)
+               return 0;
+
+       return tb->normal_height;
+}
+
+Evas_Coord cal_time_block_get_current(struct timeblock *tb)
+{
+       if (!tb)
+               return 0;
+
+       return tb->h_cur;
+}
+
+void cal_time_block_set_event_lock(struct timeblock *tb, Eina_Bool lock)
+{
+       if (!tb)
+               return;
+
+       tb->lock = lock;
+       if (tb->lock && tb->dn) {
+               edje_object_signal_emit(tb->dn, "unselect", "prog");
+               tb->dn = NULL;
+       }
+}
+
+void cal_time_block_unset_callback(struct timeblock *tb)
+{
+       if (!tb)
+               return;
+
+       tb->cb = NULL;
+       tb->cb_d = NULL;
+}
+
+
+void cal_time_block_set_callback(struct timeblock *tb, void (*cb)(void *data,
+                       struct timeblock *tb ,enum timeblock_event_type e, void *event_info),
+               void *data)
+{
+       if (!tb)
+               return;
+
+       tb->cb = cb;
+       tb->cb_d = data;
+}
+
+void cal_time_block_clear_event(struct timeblock *time_block)
+{
+       CAL_FN_START;
+
+       int i;
+
+       if (!time_block)
+               return;
+
+       __cal_time_block_clear_time_block(time_block);
+
+       for (i = 0; i < sizeof(time_block->tbs)/sizeof(time_block->tbs[0]); i++)
+               time_block->tbs[i].cnt = 0;
+
+       time_block->color = 0;
+}
+
+Evas_Coord cal_time_block_get_first_event_y(struct timeblock *tb)
+{
+       int i;
+       Evas_Coord h;
+
+       if (!tb)
+               return 0;
+
+       h = 0;
+       for (i = 0; i < sizeof(tb->tbs)/sizeof(tb->tbs[0]); i++) {
+               if (tb->tbs[i].cnt > 0)
+                       return h;
+               h += tb->tbs[i].h;
+       }
+
+       return 0;
+}
diff --git a/src/timeblock.h b/src/timeblock.h
new file mode 100755 (executable)
index 0000000..492f4d0
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_TIMEBLOCK_H__
+#define __CALENDAR_TIMEBLOCK_H__
+
+#include "cld.h"
+
+#define TIMEBLOCK_INDEX 24
+#define EVENTBLOCK_INDEX 48
+
+enum timeblock_event_type {
+       TIMEBLOCK_CLICKED,
+       EVENT_CLICKED,
+};
+
+struct timeblock_slice {
+       struct timeblock *tb;
+       int idx;
+
+       Evas_Object *ly;
+       Evas_Coord x;
+       Evas_Coord y;
+       Evas_Coord h;
+
+       Eina_Bool hide_text;
+
+       Eina_Bool is_contracted;
+
+       int cnt;
+};
+
+struct eventblock_slice {
+       struct timeblock *tb;
+       const Evas_Object *base;
+       Eina_List *list; // evt list
+       int maxsize;
+       int real_sz;
+       int start_index;
+};
+
+struct timeblock_event {
+       int cid;
+       Evas_Object *ly;
+       int idx;
+       int sz;
+       struct timeblock *tb;
+       struct tmnode* tm;
+
+       Evas_Coord initial_coord_x;
+       Evas_Coord initial_coord_y;
+       Evas_Coord mouse_down_y;
+
+       int origin_ebs_idx;
+};
+
+struct eventblock_overlap
+{
+       int start_idx;
+       int end_idx;
+       int size;
+};
+
+struct timeblock {
+       Evas_Object *parent;
+       Evas_Object *clip;
+
+       struct timeblock_slice tbs[TIMEBLOCK_INDEX];
+       Evas_Coord x;
+       Evas_Coord y;
+       Evas_Coord w;
+       Evas_Coord h;
+
+       Evas_Coord normal_height;
+       Evas_Coord contract_height;
+       Evas_Coord h_cur;
+       Evas_Coord h_contract;
+
+       struct eventblock_slice ebs[EVENTBLOCK_INDEX];
+       int color;
+
+       Evas_Object *dn;
+       Eina_Bool lock;
+
+       void (*cb)(void *data, struct timeblock *tb, enum timeblock_event_type e, void *event_info);
+       void *cb_d;
+
+       Eina_List *ebs_list;
+};
+
+struct timeblock* cal_time_block_create_time_block(Evas_Object *parent, Evas_Object *clip);
+void cal_time_block_delete_time_block(struct timeblock **tb);
+
+void cal_time_block_move(struct timeblock *tb, Evas_Coord x, Evas_Coord y);
+void cal_time_block_resize(struct timeblock *tb, Evas_Coord y, Evas_Coord h);
+void cal_time_block_get_geometry(struct timeblock *tb, Evas_Coord_Rectangle *r);
+Evas_Coord cal_time_block_get_first_event_y(struct timeblock *tb);
+
+void cal_time_block_add_event(struct timeblock *tb, int cid, int hh, int sz, const char *text, struct tmnode *tm);
+void cal_time_block_set_event_lock(struct timeblock *tb, Eina_Bool lock);
+void cal_time_block_clear_event(struct timeblock *tb);
+
+Evas_Coord cal_time_block_get_min(struct timeblock *tb);
+Evas_Coord cal_time_block_get_max(struct timeblock *tb);
+Evas_Coord cal_time_block_get_current(struct timeblock *tb);
+
+void cal_time_block_set_callback(struct timeblock *tb, void (*cb)(void *data, struct timeblock *tb, enum timeblock_event_type e, void *event_info), void *data);
+void cal_time_block_unset_callback(struct timeblock *tb);
+
+void cal_time_block_show_current_time_line(struct timeblock *tb, int hour);
+void cal_time_block_hide_current_time_line(struct timeblock *tb);
+
+void cal_time_block_resize_contract(struct timeblock *tb, Evas_Coord y, Evas_Coord h,  int hour);
+
+
+#endif /* __CALENDAR_TIMEBLOCK_H__ */
+
diff --git a/src/view-acct.c b/src/view-acct.c
new file mode 100755 (executable)
index 0000000..6180916
--- /dev/null
@@ -0,0 +1,713 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <Elementary.h>
+#include <ui-gadget.h>
+
+#include "view.h"
+#include "acct-svc.h"
+
+#define DEFAULT_LOCAL_CALENDAR_COLOR "95.190.0.255"
+
+#define ACCOUNT_LABLE_STRING_LENGTH 128
+
+
+static const char *_name = "acct";
+
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly;
+       Evas_Object *ly_phone;
+
+       Evas_Object *gl;
+
+       Eina_List *acctlist;
+
+       Evas_Object* color_selector;
+       Evas_Object* color;
+       Evas_Object* rect;
+       struct _cs* cs;
+
+       Evas_Object* notify;
+
+       int selected_count;
+} cal_account_data;
+
+static char* __cal_account_get_genlist_item_label(void *, Evas_Object *, const char *);
+static Evas_Object* __cal_account_get_genlist_item_icon(void *, Evas_Object *, const char *);
+static void __cal_account_update_genlist(void* data);
+static void __cal_account_popup_response_callback(void *data, Evas_Object *obj, void *event_info);
+
+static Elm_Genlist_Item_Class itc = {
+       .item_style = "2text.3icon.3",
+       .func.text_get = __cal_account_get_genlist_item_label,
+       .func.content_get = __cal_account_get_genlist_item_icon,
+       .decorate_all_item_style = "edit_default",
+};
+
+static struct _acct def_at = { LOCAL_ACCOUNT_ID, "Local account", "/opt/apps/org.tizen.efl-calendar/res/icons/all_calendar.png", NULL, NULL, };
+
+static Calendar_color calendar_color;
+
+static void __cal_account_set_selected_count_label(void *data)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_account_data *account_data = data;
+
+       if (account_data->selected_count <= 0)
+       {
+               if (account_data->notify)
+                       evas_object_hide(account_data->notify);
+
+               return;
+       }
+
+       struct appdata *ad = account_data->ad;
+       c_retm_if(!ad, "appdata is null");
+
+       Evas_Object *nv = ad->nv;
+       c_retm_if(!nv, "nv is null");
+
+       Evas_Object *notify = NULL;
+       Evas_Object *selectioninfo_layout = NULL;
+       char lable_str[ACCOUNT_LABLE_STRING_LENGTH] = {'\0'};
+
+       if (!account_data->notify) {
+               notify = elm_notify_add(nv);
+               c_retm_if(!notify, "elm_notify_add returned null");
+
+               account_data->notify = notify;
+               elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM);
+
+               selectioninfo_layout = elm_layout_add(notify);
+               if (!selectioninfo_layout)
+               {
+                       evas_object_del(notify);
+                       account_data->notify = NULL;
+                       return;
+               }
+
+               elm_layout_theme_set(selectioninfo_layout, "standard", "selectioninfo", "vertical/bottom_64");
+               elm_object_content_set(notify, selectioninfo_layout);
+       }
+       snprintf(lable_str, sizeof(lable_str), "%s(%d)", S_("IDS_COM_POP_SELECTED"), account_data->selected_count);
+       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(selectioninfo_layout), "elm.text", lable_str);
+
+       if (0 < account_data->selected_count) {
+               evas_object_show(account_data->notify);
+       } else {
+               evas_object_hide(account_data->notify);
+       }
+}
+
+static void __cal_account_clear_list(cal_account_data *account_data)
+{
+       c_retm_if(account_data == NULL, "account_data is null");
+
+       struct _acct *at;
+       Eina_List *l;
+
+       if(def_at.data)
+       {
+               CALENDAR_SVC_FREE_CS_LIST((Eina_List **)&def_at.data);
+               def_at.data = NULL;
+       }
+
+       if (account_data->acctlist)
+       {
+               EINA_LIST_FOREACH(account_data->acctlist, l, at)
+               {
+                       if (NULL != at && at->data)
+                               CALENDAR_SVC_FREE_CS_LIST((Eina_List **)&at->data);
+               }
+               cal_account_svc_free_account_list(&account_data->acctlist);
+       }
+}
+
+static char* __cal_account_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+       c_retvm_if(!obj, NULL, "obj is null");
+
+       struct _cs *cs = data;
+       const char* name = NULL;
+       struct _acct* at = NULL;
+
+       c_retvm_if(!cs->cs, NULL, "cs->cs is null");
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               if (CALENDAR_SVC_STRUCT_GET_INT(cs->cs, CAL_TABLE_INT_INDEX) == DEFAULT_CALENDAR_ID)
+                       return strdup(C_("IDS_CLD_OPT_PHONE_CALENDAR"));
+
+               name = CALENDAR_SVC_STRUCT_GET_STR(cs->cs, CAL_TABLE_TXT_NAME);
+               if (name)
+                       return strdup(name);
+       }
+       else if (!CAL_STRCMP(part, "elm.text.2"))
+       {
+               if (CALENDAR_SVC_STRUCT_GET_INT(cs->cs, CAL_TABLE_INT_INDEX) == DEFAULT_CALENDAR_ID)
+                       return strdup(C_("IDS_EMAIL_BODY_DEFAULT_ACCOUNT"));
+
+               at = cs->at;
+               if (at && at->name)
+                       return strdup(at->name);
+       }
+
+       return NULL;
+}
+
+static void __cal_account_check_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(data == NULL, "data is null");
+       c_retm_if(obj == NULL, "obj is null");
+
+       Eina_List * realized_list;
+       Elm_Object_Item *it;
+       Eina_List *l;
+       Evas_Object* check = obj;
+       Eina_Bool is_checked = EINA_FALSE;
+
+       cal_account_data* account_data = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(account_data == NULL, "account_data is null");
+
+       struct _cs *cs = data;
+
+       CALENDAR_SVC_SET_CALENDAR_VISIBILITY(cs->cs,elm_check_state_get(obj));
+
+       realized_list = elm_genlist_realized_items_get(account_data->gl);
+       EINA_LIST_FOREACH(realized_list, l, it) {
+               elm_genlist_item_update(it);
+       }
+
+       account_data->ad->is_update_view = EINA_TRUE;
+
+       is_checked = elm_check_state_get(check);
+       if (is_checked) {
+
+               account_data->selected_count++;
+       } else {
+
+               if (0 < account_data->selected_count) {
+                       account_data->selected_count--;
+               }
+       }
+
+       __cal_account_set_selected_count_label(account_data);
+}
+
+static void __cal_account_color_selector_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(data == NULL, "data is null");
+       c_retm_if(obj == NULL, "obj is null");
+
+       Evas_Object *rect = data;
+       elm_colorselector_color_get(obj, &calendar_color.red, &calendar_color.green, &calendar_color.blue, &calendar_color.alpha);
+       evas_object_color_set(rect, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+}
+
+static Evas_Object* __cal_account_create_colorselector(Evas_Object* parent, cal_account_data* account_data)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+       c_retvm_if(!account_data, NULL, "account_data is null");
+
+       Evas_Object *selector;
+       Evas_Object *rect;
+       Evas_Object *selector_layout;
+
+       selector_layout = cal_util_add_layout(parent, "color_selector");
+       c_retvm_if(!selector_layout, NULL, "layout is null");
+
+       selector = elm_colorselector_add(parent);
+       if (!selector)
+       {
+               ERR("elm_colorselector_add returned null");
+               evas_object_del(selector_layout);
+               return NULL;
+       }
+
+       elm_colorselector_mode_set(selector, ELM_COLORSELECTOR_COMPONENTS);
+       elm_object_part_content_set(selector_layout, "elm.swallow.selector", selector);
+       account_data->color = selector;
+
+       rect = evas_object_rectangle_add(evas_object_evas_get(parent));
+       if (!selector)
+       {
+               ERR("evas_object_rectangle_add returned null");
+               evas_object_del(selector_layout);
+               return NULL;
+       }
+
+       elm_object_part_content_set(selector_layout, "elm.swallow.color", rect);
+       account_data->rect = rect;
+
+       evas_object_smart_callback_add(selector, "changed", __cal_account_color_selector_changed_callback, rect);
+
+       return selector_layout;
+}
+
+static void __cal_account_popup_response_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       Eina_List * realized_list;
+       Elm_Object_Item *it;
+       Eina_List *l;
+
+       cal_account_data* account_data = evas_object_data_get(popup, "data");
+       c_retm_if(!account_data, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       struct _cs *cs = account_data->cs;
+       c_retm_if(!cs, "cs is null");
+
+       if (!strcmp(elm_object_text_get(button), S_("IDS_COM_OPT_SAVE")))
+               CALENDAR_SVC_SET_CALENDAR_COLOR(cs->cs, &calendar_color);
+
+       realized_list = elm_genlist_realized_items_get(account_data->gl);
+       c_retm_if(!realized_list, "elm_genlist_realized_items_get returned null");
+
+       EINA_LIST_FOREACH(realized_list, l, it) {
+               elm_genlist_item_update(it);
+       }
+
+       evas_object_del(popup);
+}
+
+static Evas_Object* __cal_account_color_create_popup(cal_account_data* account_data)
+{
+       c_retvm_if(!account_data, NULL, "account_data is null");
+
+       Evas_Object *popup = NULL;
+       popup = cal_util_add_popup(account_data->ad->win, NULL, NULL,
+               __cal_account_popup_response_callback, account_data,
+               S_("IDS_COM_OPT_SAVE"), S_("IDS_IDLE_BUTTON_CANCEL"), NULL);
+       c_retvm_if(!popup, NULL, "cal_util_add_popup returned null");
+
+       evas_object_propagate_events_set(popup, EINA_FALSE);
+
+       account_data->color_selector = __cal_account_create_colorselector(popup, account_data);
+
+       if (!account_data->color_selector) {
+               ERR("__cal_account_create_colorselector returned null");
+               evas_object_del(popup);
+               return NULL;
+       }
+
+       elm_object_content_set(popup, account_data->color_selector);
+
+       return popup;
+}
+
+static void __cal_account_color_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_retm_if(data == NULL, "data is null");
+       c_retm_if(obj == NULL, "obj is null");
+       cal_account_data* account_data = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(account_data == NULL, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       Evas_Object *popup = NULL;
+
+       struct _cs* cs = data;
+
+       account_data->cs = cs;
+
+       popup = __cal_account_color_create_popup(account_data);
+       c_retm_if(popup == NULL, "popup is null");
+
+       CALENDAR_SVC_GET_CALENDAR_COLOR(cs->cs, &calendar_color);
+       elm_colorselector_color_set(account_data->color, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+       evas_object_color_set(account_data->rect,calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+}
+
+static Evas_Object* __cal_account_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(data == NULL, NULL, "data is null");
+       c_retvm_if(obj == NULL, NULL, "obj is null");
+
+       struct _cs *cs = data;
+
+       cal_account_data* account_data = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retvm_if(account_data == NULL, NULL, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       Evas_Object* icon = NULL;
+       Evas_Object* check = NULL;
+       Eina_Bool checked;
+       Calendar_color color = {0,};
+       char* icon_path = NULL;
+
+       if (elm_genlist_decorate_mode_get(obj) && !strcmp(part, "elm.edit.icon.1"))
+       {
+               check = elm_check_add(obj);
+               c_retvm_if(check == NULL, NULL, "elm_check_add returned null");
+
+               evas_object_data_set(check, "priv", account_data);
+               evas_object_propagate_events_set(check, EINA_FALSE);
+
+               checked = CALENDAR_SVC_STRUCT_GET_INT(cs->cs,CAL_TABLE_INT_VISIBILITY);
+               elm_check_state_set(check, checked);
+
+               evas_object_smart_callback_add(check, "changed", __cal_account_check_changed_callback, cs);
+               cs->check = check;
+
+               return check;
+       }
+       else if (!strcmp(part, "elm.icon.1"))
+       {
+               icon = elm_icon_add(obj);
+               c_retvm_if(icon == NULL, NULL, "elm_icon_add returned null");
+
+               if ( CALENDAR_SVC_STRUCT_GET_INT( cs->cs, CAL_TABLE_INT_INDEX) == DEFAULT_CALENDAR_ID)
+                       elm_icon_file_set(icon, "/opt/apps/org.tizen.efl-calendar/res/icons/all_calendar.png", NULL);
+               else
+               {
+                       icon_path = cal_account_svc_get_account_icon_path(CALENDAR_SVC_STRUCT_GET_INT( cs->cs, CAL_TABLE_INT_ACCOUNT_ID));
+                       if (icon_path)
+                       {
+                               elm_icon_file_set(icon, icon_path, NULL);
+                               free(icon_path);
+                       }
+                       else
+                       {
+                               ERR("cal_account_svc_get_account_icon_path returned null");
+                               elm_icon_file_set(icon, "/opt/apps/org.tizen.efl-calendar/res/icons/all_calendar.png", NULL);
+                       }
+               }
+
+               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+
+               return icon;
+       }
+       else if(!strcmp(part, "elm.icon.2"))
+       {
+               CALENDAR_SVC_GET_CALENDAR_COLOR(cs->cs, &color);
+
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));
+               c_retvm_if(icon == NULL, NULL, "evas_object_rectangle_add returned null");
+
+               evas_object_data_set(icon, "priv", account_data);
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_propagate_events_set(icon, EINA_FALSE);
+               evas_object_color_set(icon, color.red, color.green, color.blue, color.alpha);
+
+               evas_object_event_callback_add(icon, EVAS_CALLBACK_MOUSE_UP, __cal_account_color_clicked_callback, cs);
+
+               return icon;
+       }
+       else if(!strcmp(part, "elm.swallow.colorbar"))
+       {
+               CALENDAR_SVC_GET_CALENDAR_COLOR(cs->cs, &color);
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));
+               c_retvm_if(icon == NULL, NULL, "evas_object_rectangle_add returned null");
+
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_color_set(icon, color.red, color.green, color.blue, color.alpha);
+
+               return icon;
+       }
+       return NULL;
+}
+
+static void __cal_account_add_list(cal_account_data *account_data)
+{
+       c_retm_if(account_data == NULL, "account_data is null");
+
+       Evas_Object *gl;
+
+       gl = elm_genlist_add(account_data->ly);
+       c_retm_if(gl == NULL, "elm_genlist_add returned null");
+
+       elm_genlist_tree_effect_enabled_set(gl, EINA_TRUE);
+       elm_genlist_decorate_mode_set(gl, EINA_TRUE);
+
+       evas_object_data_set(gl, "priv", account_data);
+
+       elm_object_part_content_set(account_data->ly, "sw", gl);
+       account_data->gl = gl;
+}
+
+static void __cal_account_get_calendars(cal_account_data *account_data, struct _acct *at)
+{
+       c_retm_if(account_data == NULL, "account_data is null");
+       c_retm_if(at == NULL, "at is null");
+       c_retm_if(at->id < 1 , "at->id(%d) is less then 0", at->id);
+
+       Eina_List *csl = NULL;
+
+       csl = CALENDAR_SVC_GET_CALENDARS_WITH_ACCOUNT(at->id, at);
+
+       if (csl)
+               at->data = eina_list_merge(at->data, csl);
+}
+
+static void __cal_account_get_list(cal_account_data *account_data)
+{
+       c_retm_if(account_data == NULL, "account_data is null");
+
+       Eina_List *l;
+       struct _acct *at;
+
+       l = cal_account_svc_get_account_list();
+       if (l)
+               account_data->acctlist = eina_list_merge(account_data->acctlist, l);
+
+       EINA_LIST_FOREACH(account_data->acctlist, l, at)
+               __cal_account_get_calendars(account_data, at);
+}
+
+static inline void __cal_account_set_default_account(cal_account_data *account_data)
+{
+       c_retm_if(account_data == NULL, "account_data is null");
+
+       Eina_List *csl = NULL;
+
+       csl = CALENDAR_SVC_GET_CALENDARS_WITH_ACCOUNT(LOCAL_ACCOUNT_ID, &def_at);
+       if (csl)
+               def_at.data = eina_list_merge(def_at.data, csl);
+}
+
+static void __cal_account_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(data == NULL, "data is null");
+       c_retm_if(obj == NULL, "obj is null");
+
+       Elm_Object_Item *it;
+       cal_account_data *account_data = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(account_data == NULL, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       struct _cs *cs = data;
+
+
+       Eina_Bool is_checked = EINA_FALSE;
+
+       it = elm_genlist_selected_item_get(obj);
+       c_retm_if(it == NULL, "elm_genlist_selected_item_get returned null");
+
+       elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       is_checked = elm_check_state_get(cs->check);
+       elm_check_state_set(cs->check, !is_checked);
+
+       if (!is_checked) {
+               account_data->selected_count++;
+       } else {
+               if (0 < account_data->selected_count)
+               account_data->selected_count--;
+       }
+
+
+       CALENDAR_SVC_SET_CALENDAR_VISIBILITY(cs->cs, !is_checked);
+
+       account_data->ad->is_update_view = EINA_TRUE;
+
+       __cal_account_set_selected_count_label(account_data);
+}
+
+static void __cal_account_update_genlist(void* data)
+{
+       CAL_FN_START;
+
+       c_retm_if(data == NULL, "data is null");
+
+       Eina_List* l, *ll;
+       struct _acct *at;
+       struct _cs* cs;
+       cal_account_data* account_data = data;
+       Eina_Bool checked = EINA_FALSE;
+
+       __cal_account_clear_list(account_data);
+       elm_genlist_clear(account_data->gl);
+
+       __cal_account_get_list(account_data);
+
+       __cal_account_set_default_account(account_data);
+       EINA_LIST_FOREACH(def_at.data, l, cs)
+       {
+               if (cs) {
+                       checked = CALENDAR_SVC_STRUCT_GET_INT(cs->cs,CAL_TABLE_INT_VISIBILITY);
+                       if (checked) {
+                               account_data->selected_count ++;
+                       }
+                       elm_genlist_item_append(account_data->gl, &itc, cs, NULL, ELM_GENLIST_ITEM_NONE, __cal_account_genlist_item_select_callback, cs);
+               }
+       }
+
+       EINA_LIST_FOREACH(account_data->acctlist, l, at)
+       {
+               if (at)
+               {
+                       EINA_LIST_FOREACH(at->data, ll, cs)
+                       {
+                               if (cs) {
+                                       checked = CALENDAR_SVC_STRUCT_GET_INT(cs->cs,CAL_TABLE_INT_VISIBILITY);
+                                       if (checked) {
+                                               account_data->selected_count ++;
+                                       }
+                                       elm_genlist_item_append(account_data->gl, &itc, cs, NULL, ELM_GENLIST_ITEM_NONE, __cal_account_genlist_item_select_callback, cs);
+                               }
+                       }
+               }
+       }
+}
+
+static void __cal_account_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(data == NULL, "data is null");
+
+       cal_account_data *account_data = data;
+
+       __cal_account_clear_list(account_data);
+
+    if (account_data->notify)
+               evas_object_del(account_data->notify);
+
+       free(account_data);
+
+       CALENDAR_SVC_DEL_EVENT_CHANGED_CALLBACK(__cal_account_update_genlist);
+}
+
+static void __cal_account_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(data == NULL, "data is null");
+
+       cal_account_data *account_data = data;
+       Evas_Object *popup = cal_util_add_popup(account_data->ad->win, C_("IDS_COM_POP_ERRORMSG_SAVE_Q"), NULL,
+               __cal_account_popup_response_callback, account_data,
+               S_("IDS_COM_OPT_SAVE"), S_("IDS_IDLE_BUTTON_CANCEL"), NULL);
+       c_retm_if(!popup, "cal_util_add_popup returned null");
+
+       elm_popup_orient_set(popup, ELM_POPUP_ORIENT_CENTER);
+}
+
+static Evas_Object* __cal_account_create_layout(struct appdata *ad, Evas_Object *parent)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!ad || !parent, NULL, "Input parameter is null");
+
+       Evas_Object *ly;
+       Evas_Object *bg;
+       Evas_Object *close_button;
+       cal_account_data *account_data;
+
+       account_data = calloc(1, sizeof(cal_account_data));
+       c_retvm_if(account_data == NULL, NULL, "calloc(1, sizeof(cal_account_data)) is failed");
+
+       account_data->name = _name;
+       account_data->parent = parent;
+       account_data->ad = ad;
+       account_data->selected_count = 0;
+       account_data->notify = NULL;
+
+
+       ly = cal_util_add_layout(ad->nv, account_data->name);
+       if (!ly)
+       {
+               ERR("cal_util_add_layout returned null");
+               free(account_data);
+               return NULL;
+       }
+       account_data->ly = ly;
+       evas_object_data_set(ly, "priv", account_data);
+
+       bg = cal_util_add_bg(ly, EINA_FALSE);
+       if (!bg)
+       {
+               ERR("cal_util_add_bg returned null");
+               evas_object_del(ly);
+               free(account_data);
+               return NULL;
+       }
+       elm_object_part_content_set(ly, "base", bg);
+
+       __cal_account_add_list(account_data);
+       __cal_account_update_genlist(account_data);
+
+       close_button = elm_button_add(account_data->ly);
+       elm_object_part_content_set(account_data->ly, "selector_button", close_button);
+       elm_object_text_set(close_button,S_("IDS_COM_BODY_CLOSE"));
+
+       evas_object_smart_callback_add(close_button, "clicked", __cal_account_button_callback, account_data);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_account_delete_layout, account_data);
+
+       CALENDAR_SVC_ADD_EVENT_CHANGED_CALLBACK(__cal_account_update_genlist, account_data);
+
+       return ly;
+}
+
+void cal_account_create_view(struct appdata *ad, Evas_Object *parent)
+{
+       CAL_FN_START;
+
+       c_retm_if(ad == NULL, "ad is null");
+       c_retm_if(ad->nv == NULL, "ad->nv is null");
+       c_retm_if(parent == NULL, "parent is null");
+
+       Evas_Object *ly;
+       Evas_Object *add;
+       Evas_Object *back;
+       Elm_Object_Item* navi_item;
+
+       ly = __cal_account_create_layout(ad, parent);
+       c_retm_if(ly == NULL, "__cal_account_create_layout returned null");
+
+       add = elm_button_add(ad->nv);
+       if (!add)
+       {
+               ERR("elm_button_add returned null");
+               evas_object_del(ly);
+               return;
+       }
+
+       navi_item = elm_naviframe_item_push(ad->nv, C_("IDS_CLD_BODY_CALENDARS"), NULL, NULL, ly, NULL);
+       if (!navi_item)
+       {
+               ERR("elm_naviframe_item_push returned null");
+               evas_object_del(add);
+               evas_object_del(ly);
+               return;
+       }
+
+       back = elm_object_item_part_content_get(navi_item, "prev_btn");
+       if (!navi_item)
+       {
+               ERR("elm_object_item_part_content_get returned null");
+               elm_naviframe_item_pop(ad->nv);
+               evas_object_del(add);
+               evas_object_del(ly);
+               return;
+       }
+
+       elm_object_style_set(back, "naviframe/back_btn/default");
+}
diff --git a/src/view-detail.c b/src/view-detail.c
new file mode 100755 (executable)
index 0000000..cec243d
--- /dev/null
@@ -0,0 +1,1211 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <aul.h>
+#include <appsvc.h>
+
+#include "view.h"
+#include "edit-repeat.h"
+#include "edit-alarm.h"
+#include "detail.h"
+#include "alm-mgr.h"
+#include "external-ug.h"
+
+
+static const char *_name = "view/detail";
+
+#define ARRAY_SIZE(array) \
+       ((int)(sizeof(array) / sizeof(array[0])))
+
+static int is_hour24;
+
+static void __cal_detail_update_view(void *data);
+static void __cal_detail_edit_button_callback(void *data, Evas_Object *obj, void *ei);
+
+enum genlist_item_type{
+       _GTYPE_TITLE_LOC = 1,
+       _GTYPE_START,
+       _GTYPE_END,
+       _GTYPE_ALARM,
+       _GTYPE_REPEAT,
+       _GTYPE_NOTE,
+       _GTYPE_LINKED_CAL,
+       _GTYPE_MAX
+};
+
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+
+       const char *text;
+       Evas_Object *entry;
+       Evas_Object *genlist;
+       Evas_Object *bt_one;
+       Evas_Object *bt_all;
+       Evas_Object *popup;
+
+       cal_struct *cs;
+
+       int cid;
+
+       Eina_Bool is_deleted; //When event is deleted, updating view is not needed.
+       GList   *alarm_list;
+}cal_detail_data;
+
+typedef struct {
+       cal_detail_data *p;
+       int type;
+       Elm_Object_Item *it;
+       int alarm_value;
+}cal_detail_genlist_item_data;
+
+static Elm_Genlist_Item_Class itc_seperator, itc_title_loc, itc_4_text, itc_mutilline, itc_parts, itc_linked_cal;
+
+static void __cal_detail_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "Input parameter is null");
+
+       cal_detail_data *p = data;
+
+       if (p->cs)
+               CALENDAR_SVC_STRUCT_FREE(&(p->cs));
+
+       free(p);
+
+       CALENDAR_SVC_DEL_EVENT_CHANGED_CALLBACK(__cal_detail_update_view);
+
+}
+
+static cal_struct* __cal_detail_get_event(int idx)
+{
+       int r;
+       cal_struct *cs = NULL;
+       r = CALENDAR_SVC_GET(CAL_STRUCT_SCHEDULE, idx, NULL, &cs);
+       if (r != CAL_SUCCESS || CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_DELETED) ==1)
+       {
+               if(cs)
+                       CALENDAR_SVC_STRUCT_FREE(&cs);
+               ERR("CALENDAR_SVC_GET is failed");
+               return NULL;
+       }
+
+       return cs;
+}
+
+static void __cal_detail_get_time_text(time_t t, int allday, char *buf, int sz)
+{
+       struct tm tm;
+       const char* time;
+
+       localtime_r(&t, &tm);
+
+       if (is_hour24)
+               time = CAL_UTIL_TIME_FORMAT_6;
+       else
+               time = CAL_UTIL_TIME_FORMAT_1;
+
+       if (allday)
+               cal_util_get_time_text(buf, sz, CAL_UTIL_DATE_FORMAT_1, NULL, &tm);
+       else
+               cal_util_get_time_text(buf, sz, CAL_UTIL_DATE_FORMAT_1, time, &tm);
+}
+
+static void __cal_detail_get_start_time(cal_struct *cs, char *buf, int sz, cal_detail_data* p)
+{
+       CAL_ASSERT(p);
+       CAL_ASSERT(p->ad);
+
+       int allday;
+       time_t t;
+       int repeat;
+
+       allday = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+       repeat = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM);
+
+       if (repeat && !p->ad->is_aul)
+               t = p->ad->tm->st;
+       else
+               t = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_START_DATE_TIME, CAL_TZ_FLAG_LOCAL));
+
+       __cal_detail_get_time_text(t, allday, buf, sz);
+}
+
+static void __cal_detail_get_end_time(cal_struct *cs, char *buf, int sz, cal_detail_data* p)
+{
+       CAL_ASSERT(p);
+       CAL_ASSERT(p->ad);
+
+       int allday;
+       time_t t;
+       int repeat;
+
+       allday = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+       repeat = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM);
+
+       if (repeat && !p->ad->is_aul)
+               t = p->ad->tm->et;
+       else
+               t = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_END_DATE_TIME,  CAL_TZ_FLAG_LOCAL));
+
+       __cal_detail_get_time_text(t, allday, buf, sz);
+}
+
+static void __cal_detail_get_alarm(cal_detail_data * p,cal_struct *cs)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!cs, "cs is null");
+
+       GList *al = NULL;
+
+       g_list_free(p->alarm_list);
+       p->alarm_list = NULL;
+
+       int r = CALENDAR_SVC_STRUCT_GET_LIST(cs, CAL_VALUE_LST_ALARM, &al);
+       c_retm_if(r!=CAL_SUCCESS, "CALENDAR_SVC_STRUCT_GET_LIST(CAL_VALUE_LST_ALARM) is failed(%d)", r);
+       if (!al)
+               return;
+
+       while (al) {
+               cal_value *val = al->data;
+               c_retm_if(!val, "val is null");
+
+               int tick = CALENDAR_SVC_VALUE_GET_INT(val, CAL_VALUE_INT_ALARMS_TICK);
+               cal_sch_remind_tick_unit_t unit = CALENDAR_SVC_VALUE_GET_INT(val, CAL_VALUE_INT_ALARMS_TICK_UNIT);
+               int min = cal_edit_alarm_get_min(tick, unit);
+               p->alarm_list = g_list_append(p->alarm_list,(void *)min);
+               al = g_list_next(al);
+       }
+
+       p->alarm_list = g_list_first(p->alarm_list);
+}
+
+static void __cal_detail_get_repeat(cal_struct *cs, char *buf, int sz)
+{
+       c_retm_if(!cs, "cs is null");
+
+       cal_repeat_term_t term;
+       int flag;
+
+       flag = 0;
+       term = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM);
+       if (term == CAL_REPEAT_EVERY_WEEK)
+       {
+               char *sflag;
+               sflag = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_WEEK_FLAG);
+               flag = cal_util_get_week_flag(sflag);
+       }
+
+       cal_edit_repeat_get_repeat_str(term, flag, buf, sz);
+}
+
+static void __cal_detail_get_save_to_str(int calid, char *buf, int sz)
+{
+       cal_struct *cs = NULL;
+       const char *str = NULL;
+       int r;
+
+       r = CALENDAR_SVC_GET(CAL_STRUCT_CALENDAR, calid, NULL, &cs);
+       if (r != CAL_SUCCESS)
+       {
+               snprintf(buf, sz, "%s", _("Phone"));
+               if (cs)
+                       CALENDAR_SVC_STRUCT_FREE(&cs);
+
+               return;
+       }
+
+       if (calid == DEFAULT_CALENDAR_ID)
+               str = C_("IDS_CLD_OPT_PHONE_CALENDAR");
+       else
+       {
+               str = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_TABLE_TXT_NAME);
+               if (!str)
+                       str = C_("IDS_CLD_OPT_PHONE_CALENDAR");
+       }
+
+       snprintf(buf, sz, "%s", str);
+
+       CALENDAR_SVC_STRUCT_FREE(&cs);
+}
+
+static void __cal_detail_get_save_to(cal_struct *cs, char *buf, int sz)
+{
+       int idx;
+
+       idx = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_CALENDAR_ID);
+       if (idx == -1)
+       {
+               snprintf(buf, sz, "%s", C_("IDS_CLD_OPT_PHONE_CALENDAR"));
+               return;
+       }
+
+       __cal_detail_get_save_to_str(idx, buf, sz);
+}
+
+static inline const char* __cal_detail_get_note(cal_struct *cs)
+{
+       c_retvm_if(!cs, NULL, "cs is null");
+
+       return CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_DESCRIPTION);
+}
+
+static void __cal_detail_back_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       cal_detail_data *p = data;
+
+       if((NULL != p->ad->ug) && (UG_DETAIL == p->ad->u_type))
+       {
+               ug_destroy_me(p->ad->ug);
+       }
+       else
+       {
+               if(p->ad->request_view == CV_DETAIL)
+               {
+                       if(elm_naviframe_top_item_get(p->ad->nv) != elm_naviframe_bottom_item_get(p->ad->nv))
+                       {
+                               p->ad->request_view = CV_UNKNOWN;
+                               p->ad->is_aul = EINA_FALSE;
+
+                               elm_win_lower(p->ad->win);
+                       }
+                       else
+                               elm_exit();
+               }
+
+               if(p->ad->is_update_view)
+                       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->parent), "update", "prog");
+       }
+}
+
+static void __cal_viewer_back_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       elm_exit();
+}
+
+static void __cal_detail_error_popup_response_event_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       Evas_Object *popup = data;
+       struct appdata *ad = evas_object_data_get(popup, "data");
+
+       c_retm_if(!ad, "ad is null");
+       c_retm_if(!ad->win, "p->ad->win is null");
+
+       if (!elm_naviframe_top_item_get(ad->nv))
+               elm_exit();
+       else
+               elm_win_lower(ad->win);
+
+       evas_object_del(popup);
+}
+
+static void __cal_detail_delete_event(cal_detail_data* p, Eina_Bool is_delete_all)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+
+       GList* list = NULL;
+       cal_value* value = NULL;
+       time_t t = 0;
+       int r = 0;
+
+       if (!is_delete_all) {
+               cal_struct *cs = __cal_detail_get_event(p->cid);
+               c_retm_if(!cs, "cs is null");
+
+               t = p->ad->tm->st;
+               value = CALENDAR_SVC_VALUE_NEW(CAL_VALUE_LST_EXCEPTION_DATE);
+               CALENDAR_SVC_VALUE_SET_TIME(value,CAL_VALUE_GMT_EXCEPTION_DATE_TIME,CAL_TZ_FLAG_GMT,t);
+               CALENDAR_SVC_STRUCT_GET_LIST(cs,CAL_VALUE_LST_EXCEPTION_DATE,&list);
+               list = g_list_append(list,value);
+
+               CALENDAR_SVC_STRUCT_SET_LIST(cs,CAL_VALUE_LST_EXCEPTION_DATE,list);
+               r = CALENDAR_SVC_UPDATE(cs);
+               if (r != CAL_SUCCESS)
+                       ERR("CALENDAR_SVC_UPDATE is failed %d", r);
+               else
+                       p->is_deleted = EINA_TRUE;
+
+               CALENDAR_SVC_STRUCT_FREE(&cs);
+       }
+       else    {
+               r = CALENDAR_SVC_DELETE(CAL_STRUCT_SCHEDULE, p->cid);
+               c_retm_if(r!=CAL_SUCCESS, "CALENDAR_SVC_DELETE(CAL_STRUCT_SCHEDULE, %d) is failed(%d)", p->cid, r);
+
+               p->is_deleted = EINA_TRUE;
+       }
+
+       evas_object_del(p->popup);
+
+       if ((p->ad->ug) && (UG_DETAIL == p->ad->u_type))
+               ug_destroy_me(p->ad->ug);
+       else {
+               if (elm_naviframe_top_item_get(p->ad->nv) == elm_naviframe_bottom_item_get(p->ad->nv))
+                       elm_exit();
+               else
+                       elm_naviframe_item_pop(p->ad->nv);
+       }
+}
+
+static void __cal_detail_delete_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       cal_detail_data* p = evas_object_data_get(popup, "data");
+       c_retm_if(!p, "p is null");
+
+       if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_BODY_ONLY_THIS_EVENT")))
+               __cal_detail_delete_event(p, EINA_FALSE);
+       else if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"))
+               || !strcmp(elm_object_text_get(button), S_("IDS_COM_SK_OK")))
+               __cal_detail_delete_event(p, EINA_TRUE);
+
+       evas_object_del(popup);
+       p->popup = NULL;
+}
+
+static void __cal_detail_edit_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       cal_detail_data* p = evas_object_data_get(popup, "data");
+       c_retm_if(!p, "p is null");
+
+       struct appdata* ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_BODY_ONLY_THIS_EVENT")))
+               ad->edit_special_one = EINA_TRUE;
+       else    if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS")))
+               ad->edit_special_one = EINA_FALSE;
+       else {
+               evas_object_del(popup);
+               p->popup = NULL;
+               return;
+       }
+
+       cal_edit_create_view(ad, p->ly);
+
+       evas_object_del(popup);
+       p->popup = NULL;
+}
+
+static void __cal_detail_show_popup(cal_detail_data *p, const char *tit, Eina_Bool is_edit)
+{
+       void (*callback_func)(void *data, Evas_Object *obj, void *ei) = NULL;
+
+       if (is_edit)
+                       callback_func = __cal_detail_edit_popup_response_event_callback;
+               else
+                       callback_func = __cal_detail_delete_popup_response_event_callback;
+
+       cal_struct *cs = __cal_detail_get_event(p->cid);
+       c_retm_if(!cs, "__cal_detail_get_event(%d) is failed", p->cid);
+
+       if (CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM)) {
+               p->popup = cal_util_add_popup(p->ad->win, NULL, tit, callback_func, p,
+                       C_("IDS_CLD_BODY_ONLY_THIS_EVENT"), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"),
+                       S_("IDS_COM_SK_CANCEL"), NULL);
+
+               elm_object_style_set(p->popup, "verticalbuttonstyle");
+       }
+       else {
+               p->popup = cal_util_add_popup(p->ad->win, NULL, tit, callback_func, p,
+                       S_("IDS_COM_SK_OK"),S_("IDS_COM_SK_CANCEL"), NULL);
+       }
+
+       c_retm_if(!p->popup, "elm_popup_add(p->ad->win) returned null");
+}
+
+static void __cal_detail_delete_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       Evas_Object *ly = data;
+       cal_detail_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       cal_struct *cs = NULL;
+
+       // TODO: add
+
+
+       if (p->cid) {
+               cs = __cal_detail_get_event(p->cid);
+
+               __cal_detail_show_popup(p, C_("IDS_CLD_OPT_DELETE_EVENT"), EINA_FALSE);
+       }
+
+       if(cs)
+               CALENDAR_SVC_STRUCT_FREE(&cs);
+}
+
+static void __cal_detail_edit_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       Evas_Object *ly = data;
+       cal_detail_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       cal_struct *cs = NULL;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       CAL_ASSERT(p);
+
+       cs = __cal_detail_get_event(p->cid);
+
+       if (0 != CALENDAR_SVC_STRUCT_GET_INT(cs,CAL_VALUE_INT_REPEAT_TERM))
+               __cal_detail_show_popup(p,_("Edit event?"), EINA_TRUE);
+       else
+               cal_edit_create_view(p->ad, ly);
+
+       if (cs)
+               CALENDAR_SVC_STRUCT_FREE(&cs);
+
+}
+
+static char* __cal_detail_get_title_location_text(Evas_Object *obj, const char *part, cal_detail_genlist_item_data *item_data)
+{
+       c_retvm_if(!item_data, NULL, "item_data is null");
+
+       const char *title;
+       const char *loc;
+       cal_detail_data *p = item_data->p;
+       c_retvm_if(!p, NULL, "p is null");
+
+       cal_struct *cs = p->cs;
+       c_retvm_if(!cs, NULL, "cs is null");
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               title = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_SUMMARY);
+               if (title)
+                       return strdup(title);
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.2"))
+       {
+               loc = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_LOCATION);
+               if (loc)
+                       return strdup(loc);
+       }
+
+       return NULL;
+}
+
+static  char* __cal_detail_get_save_to_text(Evas_Object *obj, const char *part, cal_detail_genlist_item_data *item_data)
+{
+       cal_detail_data *p = item_data->p;
+       char buf[1024];
+       cal_struct *cs;
+       cs = p->cs;
+       if(NULL == cs)
+       {
+               return NULL;
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(C_("IDS_ST_BODY_SAVE_TO"));
+       }
+
+       if(!CAL_STRCMP(part, "elm.text.2"))
+       {
+               __cal_detail_get_save_to(cs, buf, sizeof(buf));
+               return strdup(buf);
+       }
+
+       return NULL;
+}
+
+static char* __cal_detail_get_start_time_text(Evas_Object *obj, const char *part, cal_detail_genlist_item_data *item_data)
+{
+       cal_struct *cs;
+       char buf[1024];
+       cal_detail_data *p = item_data->p;
+       cs = p->cs;
+       if(NULL == cs)
+       {
+               return NULL;
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(S_("IDS_COM_BODY_START"));
+       }
+
+       if(!CAL_STRCMP(part, "elm.text.2"))
+       {
+               __cal_detail_get_start_time(cs, buf, sizeof(buf), p);
+               return strdup(buf);
+       }
+
+       return NULL;
+}
+
+static char* __cal_detail_get_end_time_text(Evas_Object *obj, const char *part, cal_detail_genlist_item_data *item_data)
+{
+       cal_struct *cs;
+       char buf[1024];
+       cal_detail_data *p = item_data->p;
+       cs = p->cs;
+       if(NULL == cs)
+       {
+               return NULL;
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(S_("IDS_COM_BODY_END"));
+       }
+
+       if(!CAL_STRCMP(part, "elm.text.2"))
+       {
+               __cal_detail_get_end_time(cs, buf, sizeof(buf), p);
+               return strdup(buf);
+       }
+
+       return NULL;
+}
+
+static void __cal_detail_get_alarm_text(cal_detail_genlist_item_data *data, char* buf, int buf_size)
+{
+       c_retm_if(!data, "data is null");
+       cal_edit_alarm_get_alarm_str(data->alarm_value, buf, buf_size);
+}
+
+static char* __cal_detail_add_alarm_text(Evas_Object *obj, const char *part, cal_detail_genlist_item_data *item_data)
+{
+       cal_struct *cs;
+       char buf[1024] = {0};
+       cal_detail_data *p = item_data->p;
+       cs = p->cs;
+       if(NULL == cs)
+       {
+               return NULL;
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(S_("IDS_COM_BODY_ALARM"));
+       }
+
+       if(!CAL_STRCMP(part, "elm.text.2"))
+       {
+               __cal_detail_get_alarm_text(item_data, buf, sizeof(buf));
+               return strdup(buf);
+       }
+
+       return NULL;
+}
+
+
+static char* __cal_detail_get_repeat_text(Evas_Object *obj, const char *part, cal_detail_genlist_item_data *item_data)
+{
+       cal_struct *cs;
+       char buf[1024] = {0};
+       cal_detail_data *p = item_data->p;
+       cs = p->cs;
+       if(NULL == cs)
+       {
+               return NULL;
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(C_("IDS_CLD_BODY_REPEAT"));
+       }
+
+       if(!CAL_STRCMP(part, "elm.text.2"))
+       {
+               __cal_detail_get_repeat(cs, buf, sizeof(buf));
+
+               return strdup(buf);
+       }
+
+       return NULL;
+}
+
+static char* __cal_detail_get_note_text(Evas_Object *obj, const char *part, cal_detail_genlist_item_data *item_data)
+{
+       cal_struct *cs;
+
+       cal_detail_data *p = item_data->p;
+       cs = p->cs;
+       if (NULL == cs)
+       {
+               return NULL;
+       }
+
+       return NULL;
+}
+
+static Evas_Object* __cal_detail_add_note_object(cal_detail_data *p, Evas_Object *parent, const char *text)
+{
+       c_retvm_if(!p, NULL, "p is null");
+       c_retvm_if(!parent, NULL, "parent is null");
+       c_retvm_if(!text, NULL, "text is null");
+       c_retvm_if(!strlen(text), NULL, "strlen(text) is zero");
+
+       Evas_Object *layout = cal_util_add_edit_field(parent, C_("IDS_COM_BODY_NOTE"), NULL, EINA_FALSE, EINA_FALSE);
+       c_retvm_if(!layout, NULL, "layout is null");
+
+       Evas_Object *entry = elm_object_part_content_get(layout, "elm.swallow.content");
+       c_retvm_if(!entry, layout, "entry is null");
+
+       p->entry = entry;
+       p->text = text;
+
+       elm_entry_context_menu_disabled_set(entry, EINA_TRUE);
+       evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_EXPAND);
+       elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
+       elm_entry_autocapital_type_set(entry, EINA_TRUE);
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+
+       elm_entry_entry_set(entry, text);
+
+       return layout;
+}
+
+static Evas_Object* __cal_detail_add_note_icon(Evas_Object *obj, const char *part,  cal_detail_genlist_item_data *item_data)
+{
+       c_retvm_if(!obj, NULL, "obj is null");
+       c_retvm_if(!part, NULL, "part is null");
+       c_retvm_if(!item_data, NULL, "item_data is null");
+
+       cal_detail_data *p = item_data->p;
+       Evas_Object *edit_field = NULL;
+       const char *note = NULL;
+
+       cal_struct *cs = p->cs;
+       c_retvm_if(!cs, NULL, "cs is null");
+
+       if (!CAL_STRCMP(part, "elm.icon"))
+       {
+               note = __cal_detail_get_note(cs);
+               if (!CAL_STRLEN(note))
+                       return NULL;
+
+               edit_field = __cal_detail_add_note_object(p, obj, elm_entry_utf8_to_markup(note));
+       }
+
+       return edit_field;
+}
+
+static Evas_Object *__cal_detail_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+
+       Evas_Object *e_obj = NULL;
+
+       cal_detail_genlist_item_data *item_data = (cal_detail_genlist_item_data*)data;
+       int type = item_data->type;
+
+       switch ( type )
+       {
+       case _GTYPE_NOTE:
+               e_obj = __cal_detail_add_note_icon(obj, part, item_data);
+               break;
+       default:
+               break;
+       }
+
+       return e_obj;
+}
+
+
+static char *__cal_detail_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+
+       cal_detail_genlist_item_data *item_data = (cal_detail_genlist_item_data*)data;
+       int type = item_data->type;
+
+       switch ( type )
+       {
+       case _GTYPE_TITLE_LOC:
+               return __cal_detail_get_title_location_text(obj, part, item_data);
+               break;
+       case _GTYPE_START:
+               return __cal_detail_get_start_time_text(obj, part, item_data);
+               break;
+       case _GTYPE_END:
+               return __cal_detail_get_end_time_text(obj, part, item_data);
+               break;
+       case _GTYPE_ALARM:
+               return __cal_detail_add_alarm_text(obj, part, item_data);
+               break;
+       case _GTYPE_REPEAT:
+               return __cal_detail_get_repeat_text(obj, part, item_data);
+               break;
+       case _GTYPE_NOTE:
+               return __cal_detail_get_note_text(obj, part, item_data);
+               break;
+       case _GTYPE_LINKED_CAL:
+               return __cal_detail_get_save_to_text(obj, part, item_data);
+               break;
+       default:
+               break;
+       }
+
+       return NULL;
+}
+
+static void __cal_detail_genlist_item_delete_callback(void *data, Evas_Object *obj)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_detail_genlist_item_data *item_data = (cal_detail_genlist_item_data*)data;
+
+       free(item_data);
+
+       return;
+}
+
+static Eina_Bool __cal_detail_get_genlist_item_state(void *data, Evas_Object *obj, const char *part)
+{
+       return EINA_FALSE;
+}
+
+static void __cal_detail_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       return;
+}
+
+static Elm_Object_Item* __cal_detail_add_genlist_item(Evas_Object *parent, Elm_Genlist_Item_Class *itc, int type, cal_detail_data *p)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+       c_retvm_if(!itc, NULL, "itc is null");
+       c_retvm_if(!p, NULL, "p is null");
+
+       cal_detail_genlist_item_data *item_data = calloc(1, sizeof(cal_detail_genlist_item_data));
+       c_retvm_if(!item_data, NULL, "calloc(1, sizeof(cal_detail_genlist_item_data)) is failed");
+
+       item_data->p = p;
+
+       item_data->type = type;
+
+       item_data->it = elm_genlist_item_append(parent, itc, (void*)(item_data), NULL, ELM_GENLIST_ITEM_NONE, __cal_detail_genlist_item_select_callback, NULL);
+       c_retvm_if(!item_data->it, NULL, "elm_genlist_item_append() is failed");
+
+       return item_data->it;
+}
+
+static Elm_Object_Item* __cal_detail_add_separator(Evas_Object *genlist, cal_detail_data *p)
+{
+       c_retvm_if(!p, NULL, "p is null");
+       c_retvm_if(!genlist, NULL, "genlist is null");
+
+       Elm_Object_Item *git = __cal_detail_add_genlist_item(genlist, &itc_seperator, 0, p);
+       c_retvm_if(!git, NULL, "__cal_detail_add_genlist_item returned null");
+
+       elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_NONE);
+
+       return git;
+}
+
+
+static Elm_Object_Item* __cal_detail_add_title_location(Evas_Object *genlist, cal_detail_data *p)
+{
+       __cal_detail_add_separator(genlist, p);
+       return __cal_detail_add_genlist_item(genlist, &itc_title_loc, _GTYPE_TITLE_LOC, p);
+}
+
+static Elm_Object_Item* __cal_detail_add_start_time(Evas_Object *genlist, cal_detail_data *p)
+{
+       __cal_detail_add_separator(genlist, p);
+       return __cal_detail_add_genlist_item(genlist, &itc_4_text, _GTYPE_START, p);
+}
+
+static void __cal_detail_add_alarm_item(Evas_Object *genlist, Elm_Genlist_Item_Class *itc, int type, cal_detail_data *p, int alarm)
+{
+       c_retm_if(!genlist, "genlist is null");
+       c_retm_if(!itc, "itc is null");
+       c_retm_if(!p, "p is null");
+
+       cal_detail_genlist_item_data *item_data = calloc(1, sizeof(cal_detail_genlist_item_data));
+       c_retm_if(!item_data, "calloc is failed");
+
+       item_data->p = p;
+       item_data->type = type;
+       item_data->alarm_value = alarm;
+
+       item_data->it = elm_genlist_item_append(genlist, itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+       if (!item_data->it)
+       {
+               ERR("elm_genlist_item_append returned null");
+               free(item_data);
+               return ;
+       }
+}
+
+static void __cal_detail_add_alarm(Evas_Object *genlist, cal_detail_data *p)
+{
+       c_retm_if(!genlist, "genlist is null");
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->cs, "p->cs is null");
+
+       __cal_detail_add_separator(genlist, p);
+       __cal_detail_get_alarm(p, p->cs);
+
+       if (!p->alarm_list) {
+               __cal_detail_add_alarm_item(genlist, &itc_4_text, _GTYPE_ALARM, p, -1);
+       } else {
+               GList *alarm = p->alarm_list;
+               int alarm_min;
+
+               while (alarm) {
+                       alarm_min = (int)alarm->data;
+                       __cal_detail_add_alarm_item(genlist, &itc_4_text, _GTYPE_ALARM, p, alarm_min);
+                       alarm = g_list_next(alarm);
+               }
+       }
+       return;
+}
+
+static Elm_Object_Item* __cal_detail_add_end_time(Evas_Object *genlist, cal_detail_data *p)
+{
+       __cal_detail_add_separator(genlist, p);
+       return __cal_detail_add_genlist_item(genlist, &itc_4_text, _GTYPE_END, p);
+}
+
+
+static Elm_Object_Item* __cal_detail_add_repeat(Evas_Object *genlist, cal_detail_data *p)
+{
+       __cal_detail_add_separator(genlist, p);
+       return __cal_detail_add_genlist_item(genlist, &itc_4_text, _GTYPE_REPEAT, p);
+}
+
+
+static Elm_Object_Item* __cal_detail_add_note(Evas_Object *genlist, cal_detail_data *p)
+{
+       c_retvm_if(!p, NULL, "p is null");
+       c_retvm_if(!genlist, NULL, "genlist is null");
+
+       cal_struct *cs = p->cs;
+       c_retvm_if(!cs, NULL, "cs is null");
+
+       const char *note = __cal_detail_get_note(cs);
+       if (!CAL_STRLEN(note))
+               return NULL;
+
+       __cal_detail_add_separator(genlist, p);
+
+       return __cal_detail_add_genlist_item(genlist, &itc_mutilline, _GTYPE_NOTE, p);
+}
+
+static Elm_Object_Item* __cal_detail_add_save_to(Evas_Object *genlist, cal_detail_data *p)
+{
+       __cal_detail_add_separator(genlist, p);
+
+       return __cal_detail_add_genlist_item(genlist, &itc_linked_cal, _GTYPE_LINKED_CAL, p);
+}
+
+static void __cal_detail_show_error_popup(cal_detail_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->ad, "p->ad is null");
+       c_retm_if(!p->ad->win, "p->ad->win is null");
+
+       if (p->popup)
+               evas_object_del(p->popup);
+
+       p->popup = cal_util_add_popup(p->ad->win, S_("IDS_COM_POP_WARNING"), C_("IDS_CLD_BODY_NO_EVENTS"),
+               __cal_detail_error_popup_response_event_callback, p->ad, S_("IDS_COM_SK_OK"), NULL);
+       c_retm_if(!p->popup, "cal_util_add_popup(p->ad->win) returned null");
+}
+
+static Evas_Object *__cal_detail_create_genlist(cal_detail_data *p)
+{
+       c_retvm_if(!p, NULL, "p is null");
+       c_retvm_if(!p->ad, NULL, "p->ad is null");
+
+       Evas_Object *genlist;
+
+       if(p->ad->is_aul && p->ad->ical)
+               p->cs = p->ad->ical;
+       else
+               p->cs = __cal_detail_get_event(p->ad->cid);
+
+       if (!p->cs) {
+               __cal_detail_show_error_popup(p);
+               return NULL;
+       }
+
+       genlist = elm_genlist_add(p->ly);
+       c_retvm_if(!genlist, NULL, "elm_genlist_add(p->ly) returned null");
+
+       elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_NONE);
+
+       itc_seperator.item_style = "dialogue/seperator";
+       itc_seperator.func.text_get = NULL;
+       itc_seperator.func.state_get = __cal_detail_get_genlist_item_state;
+       itc_seperator.func.del = __cal_detail_genlist_item_delete_callback;
+
+
+       itc_title_loc.item_style = "dialogue/2text";
+       itc_title_loc.func.text_get = __cal_detail_get_genlist_item_label;
+       itc_title_loc.func.del = __cal_detail_genlist_item_delete_callback;
+
+       itc_4_text.item_style = "dialogue/2text";
+       itc_4_text.func.text_get = __cal_detail_get_genlist_item_label;
+       itc_4_text.func.del = __cal_detail_genlist_item_delete_callback;
+
+       itc_mutilline.item_style = "dialogue/1icon";
+       itc_mutilline.func.text_get = __cal_detail_get_genlist_item_label;
+       itc_mutilline.func.del = __cal_detail_genlist_item_delete_callback;
+       itc_mutilline.func.content_get = __cal_detail_get_genlist_item_icon;
+
+       itc_parts.item_style = "dialogue/1icon";
+       itc_parts.func.text_get = __cal_detail_get_genlist_item_label;
+       itc_parts.func.del = __cal_detail_genlist_item_delete_callback;
+       itc_parts.func.content_get = __cal_detail_get_genlist_item_icon;
+
+       itc_linked_cal.item_style = "dialogue/2text";
+       itc_linked_cal.func.text_get = __cal_detail_get_genlist_item_label;
+       itc_linked_cal.func.del = __cal_detail_genlist_item_delete_callback;
+
+       __cal_detail_add_title_location(genlist, p);
+       __cal_detail_add_start_time(genlist, p);
+       __cal_detail_add_end_time(genlist, p);
+       __cal_detail_add_alarm(genlist, p);
+       __cal_detail_add_repeat(genlist, p);
+       __cal_detail_add_note(genlist, p);
+       __cal_detail_add_save_to(genlist, p);
+
+       return genlist;
+}
+
+static void __cal_detail_update_view(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       cal_detail_data *p = data;
+
+       if (p->is_deleted)
+               return;
+
+       Evas_Object *genlist;
+       struct appdata* ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       is_hour24 = ad->is_hour24;
+
+       cal_util_delete_evas_object(&p->genlist);
+       genlist = __cal_detail_create_genlist(p);
+       if (genlist)
+       {
+               elm_object_part_content_set(p->ly, "sw", genlist);
+               p->genlist = genlist;
+       }
+}
+
+
+static Evas_Object *__cal_detail_create_layout(struct appdata *ad, Evas_Object *parent)
+{
+       Evas_Object *ly;
+       cal_detail_data *p;
+       Evas_Object *genlist;
+       p = calloc(1, sizeof(cal_detail_data));
+
+       p->name = _name;
+       p->parent = parent;
+
+       ly = cal_util_add_layout(parent, "edit");
+       if (!ly)
+       {
+               free(p);
+               return NULL;
+       }
+       evas_object_data_set(ly, "priv", p);
+       p->ad = ad;
+       p->ly = ly;
+       p->cid = ad->cid;
+       p->alarm_list  = NULL;
+
+       is_hour24 = ad->is_hour24;
+
+       elm_layout_theme_set(CAL_UTIL_GET_EDJ_DATA(ly),"layout", "application", "controlbar");
+
+       genlist = __cal_detail_create_genlist(p);
+       if (!genlist)
+       {
+               evas_object_del(ly);
+               free(p);
+               return NULL;
+       }
+
+       elm_object_part_content_set(p->ly, "sw", genlist);
+       p->genlist = genlist;
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_detail_delete_layout, p);
+
+       CALENDAR_SVC_ADD_EVENT_CHANGED_CALLBACK(__cal_detail_update_view, p);
+
+       return ly;
+}
+
+static void __cal_detail_save_to_calendar_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       Evas_Object *ly = data;
+       cal_detail_data *p;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!p, "CAL_UTIL_GET_PRIV_DATA(ly) returned null");
+
+       cal_edit_create_view(p->ad, p->parent);
+}
+
+void cal_detail_create_view(struct appdata *ad, Evas_Object *parent)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad || !parent, "Input parameter is null");
+
+       Evas_Object *ly;
+       Evas_Object *back_button;
+       Evas_Object *controlbar;
+       Elm_Object_Item* navi_item;
+
+       ly = __cal_detail_create_layout(ad, parent);
+       c_retm_if(!ly, "__cal_detail_create_layout(ad, parent) is failed");
+
+       navi_item = elm_naviframe_item_push(ad->nv, C_("IDS_COM_BODY_DETAILS"), NULL, NULL, ly, NULL);
+       if (!navi_item)
+       {
+               ERR("elm_naviframe_item_push is failed");
+               evas_object_del(ly);
+               return;
+       }
+
+       controlbar = cal_util_add_controlbar(ad->nv);
+       if (!controlbar)
+       {
+               ERR("cal_util_add_controlbar(ad->nv) is failed");
+               elm_naviframe_item_pop(ad->nv);
+               return;
+       }
+
+       elm_toolbar_item_append(controlbar, NULL, S_("IDS_COM_SK_EDIT"), __cal_detail_edit_button_callback, ly);
+       elm_toolbar_item_append(controlbar, NULL, S_("IDS_COM_BODY_DELETE"), __cal_detail_delete_button_callback, ly);
+
+       elm_object_item_part_content_set( navi_item, "controlbar", controlbar);
+
+       back_button = elm_object_item_part_content_get(navi_item, "prev_btn");
+       if (!back_button)
+       {
+               back_button = elm_button_add(ad->nv);
+               if (!back_button)
+               {
+                       ERR("elm_button_add is failed.");
+                       return;
+               }
+               elm_object_style_set(back_button, "naviframe/back_btn/default");
+               elm_object_item_part_content_set(navi_item, "prev_btn", back_button);
+       }
+       elm_object_style_set(back_button, "naviframe/back_btn/default");
+       evas_object_smart_callback_add(back_button, "clicked",  __cal_detail_back_button_callback, CAL_UTIL_GET_PRIV_DATA(ly));
+}
+
+void cal_viewer_create_view(struct appdata *ad, Evas_Object *parent, char* raw_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad || !parent || !raw_data, "Input parameter is null");
+
+       Evas_Object *ly;
+       Evas_Object *back_button;
+       Evas_Object *controlbar;
+       Elm_Object_Item* navi_item;
+
+       int r = CALENDAR_SVC_UTIL_CONVERT_VCS_TO_EVENT(raw_data, VCALENDAR_DATA_LEN, &ad->ical);
+       if (r != CAL_SUCCESS)
+               ERR("CALENDAR_SVC_UTIL_CONVERT_VCS_TO_EVENT fail. : %d", r);
+
+       ly = __cal_detail_create_layout(ad, parent);
+       c_retm_if(!ly, "__cal_detail_create_layout(ad, parent) is failed");
+
+       navi_item = elm_naviframe_item_push(ad->nv, _("VCS Viewer"), NULL, NULL, ly, NULL);
+       if (!navi_item)
+       {
+               ERR("elm_naviframe_item_push is failed");
+               evas_object_del(ly);
+               return;
+       }
+
+       controlbar = cal_util_add_controlbar(ad->nv);
+       if (!controlbar)
+       {
+               ERR("cal_util_add_controlbar(ad->nv) is failed");
+               elm_naviframe_item_pop(ad->nv);
+               return;
+       }
+
+       elm_toolbar_item_append(controlbar, NULL, _("Save to Calendar"), __cal_detail_save_to_calendar_button_callback, ly);
+
+       elm_object_item_part_content_set(navi_item, "controlbar", controlbar);
+
+       back_button = elm_object_item_part_content_get(navi_item, "prev_btn");
+       if (!back_button)
+       {
+               back_button = elm_button_add(ad->nv);
+               if (!back_button)
+               {
+                       ERR("elm_button_add is failed.");
+                       return;
+               }
+               elm_object_style_set(back_button, "naviframe/back_btn/default");
+               elm_object_item_part_content_set(navi_item, "prev_btn", back_button);
+       }
+       elm_object_style_set(back_button, "naviframe/back_btn/default");
+       evas_object_smart_callback_add(back_button, "clicked",  __cal_viewer_back_button_callback, CAL_UTIL_GET_PRIV_DATA(ly));
+}
diff --git a/src/view-edit.c b/src/view-edit.c
new file mode 100755 (executable)
index 0000000..4fb9bc9
--- /dev/null
@@ -0,0 +1,2502 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <ui-gadget-module.h>
+#include <appcore-efl.h>
+#include <vconf.h>
+
+#include "view.h"
+#include "edit-alarm.h"
+#include "edit-repeat.h"
+#include "alm-mgr.h"
+#include "acct-svc.h"
+
+#define INVALID_TIMEZONE_VALUE (100)
+
+typedef struct {
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+       Evas_Object *genlist;
+       Evas_Object *nv; // navigatino bar
+       Evas_Object *win;
+       Evas_Object *popup;
+
+       Evas_Object *e_title; // entry title
+       Evas_Object *entry_loc; // entry location
+       Evas_Object *l_start; // layout start
+       Evas_Object *l_end; // layout end
+       Evas_Object *l_alarm; // layout alarm
+       Evas_Object *l_repeat; // layout repeat
+       Evas_Object *l_saveto; // layout save event to
+       Evas_Object *e_note; // entry note
+       Elm_Object_Item *timezone_item; // timezone item
+
+       struct tm stm; // start
+       struct tm etm; // end
+       Eina_Bool allday;
+       Evas_Object *ly_date;
+
+       int timezone;
+       Eina_Bool is_selected_timezone;
+       char * timezone_path;
+       char * timezone_city;
+       char * timezone_offset;
+
+       int repeat_occurrences;
+       struct tm repeat_end_date_time;
+
+       GList  *list_alm_min;
+       Evas_Object *ly_alarm;
+
+       cal_repeat_term_t repeat; // repeat off, daily, ...
+       int repeat_end_date_num;
+       int repeat_week; // for weekly
+       Evas_Object *ly_repeat;
+
+       int event_id;
+       int calid;
+       int accid;
+       Evas_Object *ly_saveto;
+
+       Evas_Object *sdt;
+       Evas_Object *edt;
+       int cid;
+
+       Evas_Object *c_allday;
+       char *stitle;
+       char *slocation;
+       const char *snote;
+       int n_attenders;
+
+       struct ui_gadget *ug_worldclock;
+
+       Ecore_Idler* idler;
+
+       Eina_List *calendar_list; //For save to
+       int alarm_count;
+       Elm_Object_Item *alarm_first_it;
+       Elm_Object_Item *alarm_last_it;
+       Evas_Object  *add_button;
+
+}cal_edit_data;
+
+enum cal_edit_alarm_value {
+       CAL_EDIT_ALARM_OFF = -1,
+       CAL_EDIT_ALARM_ON_TIME,
+};
+
+enum genlist_item_type{
+       _GTYPE_TITLE = 1,
+       _GTYPE_LOC,
+       _GTYPE_START,
+       _GTYPE_END,
+       _GTYPE_ALLDAY,
+       _GTYPE_TIME_ZONE,
+       _GTYPE_ALARM,
+       _GTYPE_REPEAT,
+       _GTYPE_NOTE,
+       _GTYPE_LINKED_CAL,
+       _GTYPE_MAX
+};
+
+typedef struct
+{
+       cal_edit_data *p;
+       int type;
+       Elm_Object_Item *it;
+       struct _acct *at;
+       cal_struct* cs;
+       int alarm_value;
+       Evas_Object *obj;
+}Item_Data;
+
+static Elm_Object_Item* it; // To update
+static Elm_Genlist_Item_Class itc_seperator, itc_1icon, itc_1text_1icon, itc_2text_1btn, itc_2text, itc_2text_1icon_2, itc_2text_1icon_4, itc_2text_2icon_4;
+static Elm_Object_Item* __cal_edit_add_genlist_item(Evas_Object *genlist, Elm_Genlist_Item_Class *itc, int type, cal_edit_data *p);
+static Elm_Object_Item* __cal_edit_add_genlist_alarm_item(Evas_Object *genlist, Elm_Genlist_Item_Class *itc, int type, cal_edit_data *p, int alarm);
+static void __cal_edit_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info);
+
+
+static void __cal_edit_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       cal_edit_data *p = data;
+
+       struct appdata* ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       Eina_List* list;
+       cal_struct* cs;
+
+       if (p->idler) {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       if (p->timezone_city)
+               free(p->timezone_city);
+       if (p->timezone_path)
+               free(p->timezone_path);
+       if (p->timezone_offset)
+               free(p->timezone_offset);
+
+       if (p->calendar_list) {
+               EINA_LIST_FOREACH(p->calendar_list, list, cs) {
+                       if (cs)
+                               CALENDAR_SVC_STRUCT_FREE(&cs);
+               }
+               eina_list_free(p->calendar_list);
+       }
+
+       if (ad->edit_special_one)
+               ad->edit_special_one = EINA_FALSE;
+
+       free(p);
+}
+
+static void __cal_edit_cancel_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       elm_naviframe_item_pop(data);
+}
+
+static inline void __cal_edit_set_time_text(cal_edit_data *p)
+{
+       const char* date = NULL;
+       const char* time = NULL;
+
+       date = CAL_UTIL_DATE_FORMAT_1;
+
+       if (!p->allday)
+       {
+               if (p->ad->is_hour24)
+                       time = CAL_UTIL_TIME_FORMAT_6;
+               else
+                       time = CAL_UTIL_TIME_FORMAT_1;
+       }
+
+       cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(p->l_start), "text", date, time, &p->stm);
+       cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(p->l_end), "text", date, time, &p->etm);
+}
+
+static inline void __cal_edit_set_repeat_text(cal_edit_data *p)
+{
+       char buf[1024] = {0};
+
+       cal_edit_repeat_get_repeat_str(p->repeat, p->repeat_week, buf, sizeof(buf));
+       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(p->l_repeat), "text", buf);
+}
+
+static void __cal_edit_change_wday(cal_edit_data *p)
+{
+       int i;
+       int wday;
+
+       wday = 7;
+       for (i = 0; i < 7; i++) {
+               if ( ((p->repeat_week >> i) & 1) &&
+                               (wday > CAL_UTIL_GET_WDAY(i - p->stm.tm_wday))) {
+                       wday = CAL_UTIL_GET_WDAY(i - p->stm.tm_wday);
+               }
+       }
+
+       wday = CAL_UTIL_GET_WDAY(wday);
+
+       cal_util_update_tm_day(&p->stm, wday);
+       cal_util_update_tm_day(&p->etm, wday);
+       __cal_edit_set_time_text(p);
+}
+
+static inline cal_edit_data* __cal_edit_check_layout(Evas_Object *sc)
+{
+       cal_edit_data *p;
+
+       p = CAL_UTIL_GET_PRIV_DATA(sc);
+       if (!p)
+               return NULL;
+
+       return p;
+}
+
+static inline void __cal_edit_fill_entry(char **str, cal_struct *cs, const char *field)
+{
+       c_retm_if(!str, "str is null");
+       c_retm_if(!cs, "cs is null");
+
+       free(*str);
+
+       *str = CALENDAR_SVC_STRUCT_GET_STR(cs, field);
+
+       if (*str)
+               *str = elm_entry_utf8_to_markup((*str));
+}
+
+static inline void __cal_edit_fill_title(cal_edit_data *p, cal_struct *cs)
+{
+       __cal_edit_fill_entry(&(p->stitle), cs, CAL_VALUE_TXT_SUMMARY);
+
+}
+
+static inline void __cal_edit_fill_location(cal_edit_data *p, cal_struct *cs)
+{
+       __cal_edit_fill_entry(&(p->slocation), cs, CAL_VALUE_TXT_LOCATION);
+}
+
+static void __cal_edit_fill_note(cal_edit_data *p, cal_struct *cs)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!cs, "cs is null");
+
+       char *str = CALENDAR_SVC_STRUCT_GET_STR(cs,CAL_VALUE_TXT_DESCRIPTION);
+       if (str)
+               p->snote = strdup(str);
+}
+
+static void __cal_edit_fill_time(cal_edit_data *p, cal_struct *cs)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!cs, "cs is null");
+
+       time_t st = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_START_DATE_TIME, CAL_TZ_FLAG_LOCAL));
+       time_t et = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_END_DATE_TIME, CAL_TZ_FLAG_LOCAL));
+
+       p->allday = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+
+       localtime_r(&st, &p->stm);
+       localtime_r(&et, &p->etm);
+
+       if (CALENDAR_SVC_STRUCT_GET_INT(cs,CAL_VALUE_INT_REPEAT_TERM)) {
+               st = p->ad->tm->st;
+               et = p->ad->tm->et;
+               localtime_r(&st, &p->stm);
+               localtime_r(&et, &p->etm);
+       }
+
+       p->timezone_city = CAL_STRDUP(CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_TZ_CITY_NAME));
+       c_warn_if(!p->timezone_city, "p->timezone_city is null");
+
+       p->timezone_path = CAL_STRDUP(CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_TZ_NAME));
+       c_warn_if(!p->timezone_path, "p->timezone_path is null");
+
+       p->timezone = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_TIMEZONE);
+
+       if (!p->timezone_city || !p->timezone_path) {
+               cal_util_get_timezone_info(&p->timezone_path, &p->timezone_city, &p->timezone_offset);
+               if (p->timezone_offset) {
+                       char *text = strstr(p->timezone_offset, "T");
+                       p->timezone = atoi(text+2);
+               }
+       }
+}
+
+static void __cal_edit_fill_alarm(cal_edit_data *p, cal_struct *cs)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!cs, "cs is null");
+
+       if (p->list_alm_min) {
+               g_list_free(p->list_alm_min);
+               p->list_alm_min = NULL;
+       }
+
+       GList *al = NULL;
+
+       int r = CALENDAR_SVC_STRUCT_GET_LIST(cs, CAL_VALUE_LST_ALARM, &al);
+       c_retm_if(r!=CAL_SUCCESS, "CALENDAR_SVC_STRUCT_GET_LIST(CAL_VALUE_LST_ALARM) is failed(%d)", r);
+       if (!al) {
+               p->alarm_count = 1;
+               return;
+       }
+
+       p->alarm_count = 0;
+
+       while (al) {
+
+               cal_value *val = al->data;
+               c_retm_if(!val, "val is null");
+
+               p->alarm_count++;
+
+               int tick = CALENDAR_SVC_VALUE_GET_INT(val, CAL_VALUE_INT_ALARMS_TICK);
+               cal_sch_remind_tick_unit_t unit = CALENDAR_SVC_VALUE_GET_INT(val, CAL_VALUE_INT_ALARMS_TICK_UNIT);
+
+               int min = cal_edit_alarm_get_min(tick, unit);
+               p->list_alm_min = g_list_append(p->list_alm_min,(void *)min);
+
+               al = g_list_next(al);
+       }
+
+       p->list_alm_min = g_list_first(p->list_alm_min);
+}
+
+static void __cal_edit_fill_repeat(cal_edit_data *p, cal_struct *cs)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!cs, "cs is null");
+
+       int flag = 0;
+       cal_repeat_term_t term = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM);
+       if (term == CAL_REPEAT_EVERY_WEEK) {
+               char *sflag = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_WEEK_FLAG);
+               flag = cal_util_get_week_flag(sflag);
+       }
+
+       p->repeat = term;
+       p->repeat_week = flag;
+
+       struct tm *tm_tm = CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_REPEAT_END_DATE,        CAL_TZ_FLAG_LOCAL);
+       CAL_MEMCPY(&(p->repeat_end_date_time),tm_tm, struct tm);
+
+
+       p->repeat_occurrences = CALENDAR_SVC_STRUCT_GET_INT(cs,"repeat_occurrences");
+
+       if (CAL_REPEAT_NONE != p->repeat) {
+               if (0 == p->repeat_occurrences)
+                       p->repeat_end_date_num = 2;
+               else
+                       p->repeat_end_date_num = 1;
+       }
+
+}
+
+static void __cal_edit_fill_save_to(cal_edit_data *p, cal_struct *cs)
+{
+       int calid;
+       int acct_id;
+
+       calid = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_CALENDAR_ID);
+       if (calid < 1)
+               calid = DEFAULT_CALENDAR_ID;
+
+       acct_id = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_ACCOUNT_ID);
+       if(acct_id < ALL_VISIBILITY_ACCOUNT)
+               acct_id = LOCAL_ACCOUNT_ID;
+
+       p->calid = calid;
+       p->accid = acct_id;
+}
+
+static void __cal_edit_fill_vcs_information(cal_edit_data *p)
+{
+       CAL_ASSERT(p);
+       struct appdata* ad = p->ad;
+       CAL_ASSERT(ad);
+
+       cal_struct* cs = p->ad->ical;
+
+       __cal_edit_fill_title(p, cs);
+       __cal_edit_fill_location(p, cs);
+       __cal_edit_fill_time(p, cs);
+       __cal_edit_fill_alarm(p, cs);
+       __cal_edit_fill_repeat(p, cs);
+       __cal_edit_fill_save_to(p, cs);
+       __cal_edit_fill_note(p, cs);
+
+       return;
+}
+
+
+static void __cal_edit_fill_detail_information(cal_edit_data *p, int cid)
+{
+       int r;
+       cal_struct *cs;
+
+       p->event_id = cid;
+
+       cs = NULL;
+       r = CALENDAR_SVC_GET(CAL_STRUCT_SCHEDULE, p->event_id, NULL, &cs);
+       if (r != CAL_SUCCESS)
+       {
+               if (cs)
+                       CALENDAR_SVC_STRUCT_FREE(&cs);
+
+               return;
+       }
+
+       __cal_edit_fill_title(p, cs);
+       __cal_edit_fill_location(p, cs);
+       __cal_edit_fill_time(p, cs);
+       __cal_edit_fill_alarm(p, cs);
+       __cal_edit_fill_repeat(p, cs);
+       __cal_edit_fill_save_to(p, cs);
+       __cal_edit_fill_note(p, cs);
+
+       p->accid = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_ACCOUNT_ID);
+
+       CALENDAR_SVC_STRUCT_FREE(&cs);
+
+       return;
+}
+
+static inline cal_struct* __cal_edit_get_cs(int cid)
+{
+       cal_struct *cs;
+
+       if (cid == 0)
+               cs = CALENDAR_SVC_STRUCT_NEW(CAL_STRUCT_SCHEDULE);
+       else
+       {
+               int r;
+               cs = NULL;
+               r = CALENDAR_SVC_GET(CAL_STRUCT_SCHEDULE, cid, NULL, &cs);
+               if (r != CAL_SUCCESS)
+               {
+                       if(cs)
+                               CALENDAR_SVC_STRUCT_FREE(&cs);
+
+                       cs = NULL;
+               }
+       }
+
+       return cs;
+}
+
+static inline void __cal_edit_fill_cs_title(cal_edit_data *p, cal_struct *cs)
+{
+       if(p->stitle)
+               CALENDAR_SVC_STRUCT_SET_STR(cs, CAL_VALUE_TXT_SUMMARY, p->stitle);
+       else
+               CALENDAR_SVC_STRUCT_SET_STR(cs, CAL_VALUE_TXT_SUMMARY, C_("IDS_CLD_BODY_NO_TITLE"));
+}
+
+static inline void __cal_edit_fill_cs_location(cal_edit_data *p, cal_struct *cs)
+{
+       if (p->slocation)
+               CALENDAR_SVC_STRUCT_SET_STR(cs, CAL_VALUE_TXT_LOCATION, p->slocation);
+       else
+               CALENDAR_SVC_STRUCT_SET_STR(cs, CAL_VALUE_TXT_LOCATION, "");
+}
+
+static inline void __cal_edit_fill_cs_note(cal_edit_data *p, cal_struct *cs)
+{
+       if (p->snote)
+               CALENDAR_SVC_STRUCT_SET_STR(cs, CAL_VALUE_TXT_DESCRIPTION, p->snote);
+       else
+               CALENDAR_SVC_STRUCT_SET_STR(cs, CAL_VALUE_TXT_DESCRIPTION, "");
+}
+
+static void __cal_edit_fill_cs_time(cal_edit_data *p, cal_struct *cs)
+{
+       CAL_ASSERT(p);
+       CAL_ASSERT(cs);
+
+       struct tm stm,etm;
+
+       if (p->allday) {
+               p->stm.tm_hour = 0;
+               p->stm.tm_min = 0;
+               p->stm.tm_sec = 0;
+
+               p->etm.tm_hour = 23;
+               p->etm.tm_min = 59;
+               p->etm.tm_sec = 59;
+               memcpy(&stm,&p->stm,sizeof(struct tm));
+               memcpy(&etm,&p->etm,sizeof(struct tm));
+       }
+       else if (p->is_selected_timezone) {
+               char *local_tz_path = NULL;
+
+               local_tz_path = vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH);
+               if (!local_tz_path) {
+                       local_tz_path = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID);
+                       if (!local_tz_path) {
+                               ERR("vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID) is failed");
+                               local_tz_path = "Asia/Seoul";
+                       }
+               }
+
+               CALENDAR_SVC_UTIL_CONVERT_DB_TIME(&p->stm,local_tz_path, &stm,p->timezone_path);
+               CALENDAR_SVC_UTIL_CONVERT_DB_TIME(&p->etm,local_tz_path, &etm,p->timezone_path);
+       }
+       else {
+               memcpy(&stm,&p->stm,sizeof(struct tm));
+               memcpy(&etm,&p->etm,sizeof(struct tm));
+       }
+
+       if (p->timezone_path)
+               CALENDAR_SVC_STRUCT_SET_STR(cs,CAL_VALUE_TXT_TZ_NAME,p->timezone_path);
+       if (p->timezone_city)
+               CALENDAR_SVC_STRUCT_SET_STR(cs,CAL_VALUE_TXT_TZ_CITY_NAME,p->timezone_city);
+
+       CALENDAR_SVC_STRUCT_SET_INT(cs,CAL_VALUE_INT_TIMEZONE,p->timezone);
+
+       CALENDAR_SVC_STRUCT_SET_INT(cs, CAL_VALUE_INT_ALL_DAY_EVENT, p->allday);
+
+       CALENDAR_SVC_STRUCT_SET_TM(cs, CAL_VALUE_GMT_START_DATE_TIME, CAL_TZ_FLAG_LOCAL, &stm);
+       CALENDAR_SVC_STRUCT_SET_TM(cs, CAL_VALUE_GMT_END_DATE_TIME, CAL_TZ_FLAG_LOCAL, &etm);
+
+}
+
+static int __cal_edit_g_list_compare(const void* data1, const void* data2)
+{
+       return (int)data1 - (int)data2;
+}
+
+static int __cal_edit_g_list_compare_with_data(const void* data1, const void* data2, void* user_data)
+{
+       return (int)data1 - (int)data2;
+}
+
+static void __cal_edit_fill_cs_alarm(cal_edit_data *p, cal_struct *cs)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!cs, "cs is null");
+
+       int tick;
+       cal_sch_remind_tick_unit_t unit;
+       GList *al = NULL, *temp  = NULL;
+
+       int count = 1;
+
+       Elm_Object_Item *it = p->alarm_first_it;
+       while (it && (count++ <= p->alarm_count)) {
+
+               Item_Data *item_data = elm_object_item_data_get(it);
+               c_retm_if(!item_data, "item_data is null");
+
+               if (g_list_find_custom(temp, (const void*)item_data->alarm_value, __cal_edit_g_list_compare))
+                       continue;
+
+               temp = g_list_insert_sorted_with_data(temp, (void*)item_data->alarm_value, __cal_edit_g_list_compare_with_data, NULL);
+
+               cal_edit_alarm_get_tick(item_data->alarm_value, &tick, &unit);
+
+               if (tick != -1) {
+                       cal_value *val = CALENDAR_SVC_VALUE_NEW(CAL_VALUE_LST_ALARM);
+                       c_retm_if(!val, "calendar_svc_value_new is failed");
+
+                       CALENDAR_SVC_VALUE_SET_INT(val, CAL_VALUE_INT_ALARMS_TICK, tick);
+                       CALENDAR_SVC_VALUE_SET_INT(val, CAL_VALUE_INT_ALARMS_TICK_UNIT, unit);
+                       al = g_list_append(al, val);
+               }
+
+               if (count-1 == p->alarm_count)
+                       p->alarm_last_it = it;
+
+               it = elm_genlist_item_next_get(it);
+       }
+
+       CALENDAR_SVC_STRUCT_SET_LIST(cs, CAL_VALUE_LST_ALARM, al);
+}
+
+static inline void __cal_edit_get_week_string(int week, char *week_s)
+{
+       c_retm_if(!week_s,"week_s is null");
+
+       int i;
+
+       memset(week_s, 0, 7);
+       week_s[7] = '\0';
+
+       for (i = 0; i < 7; i++) {
+               if ((week >> i) & 1)
+                       week_s[i] = '1';
+               else
+                       week_s[i] = '0';
+       }
+}
+
+static void __cal_edit_fill_cs_repeat(cal_edit_data *p, cal_struct *cs)
+{
+       char sflag[8];
+
+       switch (p->repeat) {
+       case CAL_REPEAT_EVERY_WEEK:
+               __cal_edit_get_week_string(p->repeat_week, sflag);
+               CALENDAR_SVC_STRUCT_SET_STR(cs, CAL_VALUE_TXT_WEEK_FLAG, sflag);
+       case CAL_REPEAT_EVERY_DAY:
+       case CAL_REPEAT_EVERY_MONTH:
+       case CAL_REPEAT_EVERY_YEAR:
+               CALENDAR_SVC_STRUCT_SET_TIME(cs, CAL_VALUE_GMT_REPEAT_END_DATE, CAL_TZ_FLAG_LOCAL, cal_util_get_max_time());
+               CALENDAR_SVC_STRUCT_SET_INT(cs, CAL_VALUE_INT_REPEAT_INTERVAL, 1);
+               break;
+       default:
+               break;
+       }
+
+       CALENDAR_SVC_STRUCT_SET_INT(cs, CAL_VALUE_INT_REPEAT_TERM, p->repeat);
+
+       if (CAL_REPEAT_NONE != p->repeat)
+       {
+               p->repeat_end_date_time.tm_hour = p->stm.tm_hour;
+               p->repeat_end_date_time.tm_min = p->stm.tm_min;
+               p->repeat_end_date_time.tm_sec = p->stm.tm_sec;
+
+               if (1 == p->repeat_end_date_num)
+                       CALENDAR_SVC_STRUCT_SET_INT(cs, CAL_VALUE_INT_REPEAT_OCCURRENCES, p->repeat_occurrences);
+               else if (2 == p->repeat_end_date_num)
+                       CALENDAR_SVC_STRUCT_SET_TM(cs,CAL_VALUE_GMT_REPEAT_END_DATE,CAL_TZ_FLAG_LOCAL,&p->repeat_end_date_time);
+       }
+}
+
+static void __cal_edit_fill_cs_save_to(cal_edit_data *p, cal_struct *cs)
+{
+       CALENDAR_SVC_STRUCT_SET_INT(cs, CAL_VALUE_INT_CALENDAR_ID, p->calid);
+
+       if (p->accid == ALL_ACCOUNT_ID)
+               CALENDAR_SVC_STRUCT_SET_INT(cs, CAL_VALUE_INT_ACCOUNT_ID, LOCAL_ACCOUNT_ID);
+       else
+               CALENDAR_SVC_STRUCT_SET_INT(cs, CAL_VALUE_INT_ACCOUNT_ID, p->accid);
+}
+
+static inline void __cal_edit_mark_deleted(GList *al)
+{
+       GList *p;
+       cal_value *val;
+
+       p = al;
+       while (p) {
+               val = p->data;
+               CALENDAR_SVC_VALUE_SET_INT(val, CAL_VALUE_INT_DETAIL_DELETE, 1);
+               p = g_list_next(p);
+       }
+}
+
+Eina_Bool cal_edit_check_email_vailidity(const char* email)
+{
+       c_retvm_if(!email, EINA_FALSE, "email is null");
+
+       const char* temp = strchr(email, '@');
+       c_retvm_if(!temp, EINA_FALSE, "%s is invalid address", email);
+       c_retvm_if(*(temp+1) == '.', EINA_FALSE, "%s is invalid address", email);
+
+       temp = strchr(temp, '.');
+       c_retvm_if(!temp, EINA_FALSE, "%s is invalid address", email);
+       c_retvm_if(strlen(temp) <= 1, EINA_FALSE, "%s is invalid address", email);
+
+       return EINA_TRUE;
+}
+
+static inline void __cal_edit_fill_cs(cal_edit_data *p, cal_struct *cs)
+{
+       __cal_edit_fill_cs_title(p, cs);
+       __cal_edit_fill_cs_location(p, cs);
+       __cal_edit_fill_cs_time(p, cs);
+       __cal_edit_fill_cs_alarm(p, cs);
+       __cal_edit_fill_cs_repeat(p, cs);
+       __cal_edit_fill_cs_note(p, cs);
+       __cal_edit_fill_cs_save_to(p, cs);
+}
+
+static void __cal_edit_reponse_event_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+
+       Evas_Object *popup = data;
+       evas_object_del(popup);
+}
+
+static int __cal_edit_get_date(Evas_Object *df, struct tm *res)
+{
+       int r;
+       struct tm tm;
+       time_t t;
+
+       t = time(NULL);
+       localtime_r(&t, &tm); // to fill hidden field
+
+       elm_datetime_value_get(df, &tm);
+
+       r = mktime(&tm);
+       if (r == (time_t)-1)
+               return  -1;
+
+       *res = tm;
+
+       return 0;
+}
+
+static void __cal_edit_title_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       const char *str;
+       Item_Data *item_data = (Item_Data *)data;
+       cal_edit_data *p = item_data->p;
+
+       free(p->stitle);
+
+
+       str = elm_entry_entry_get(p->e_title);
+       if (!str || str[0] == '\0')
+               p->stitle = NULL;
+       else
+               p->stitle = elm_entry_markup_to_utf8(str);
+}
+
+
+static Evas_Object * __cal_edit_add_title_icon(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       c_retvm_if(!obj, NULL, "obj is null");
+       c_retvm_if(!part, NULL, "part is null");
+       c_retvm_if(!item_data, NULL, "item_data is null");
+
+       cal_edit_data *p = item_data->p;
+       c_retvm_if(!p, NULL, "p is null");
+
+       if (!CAL_STRCMP(part, "elm.icon")) {
+               Evas_Object *ef = cal_util_add_edit_field(obj, C_("IDS_COM_BODY_DETAILS_TITLE"), C_("IDS_CLD_BODY_TAP_TO_ENTER_TITLE"), EINA_TRUE, EINA_TRUE);
+               c_retvm_if(!ef, NULL, "ef is null");
+
+               Evas_Object *entry = elm_object_part_content_get(ef, "elm.swallow.content");
+               c_retvm_if(!entry, ef, "entry is null");
+
+               p->e_title = entry;
+               if (p->stitle)
+                       elm_entry_entry_set(p->e_title, p->stitle);
+
+               evas_object_smart_callback_add(p->e_title, "changed", __cal_edit_title_entry_changed_callback, item_data);
+
+               return ef;
+       }
+
+       return NULL;
+}
+
+static inline int _edit_safe_strcmp(char *s1, char *s2)
+{
+       if (NULL == s1 || NULL == s2)
+               return !(s1 == s2);
+       else
+               return strcmp(s1, s2);
+}
+
+static void _edit_location_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       char *str;
+       Item_Data *item_data = (Item_Data *)data;
+       cal_edit_data *p = item_data->p;
+
+       str = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+       if (str && *str) {
+               if (!_edit_safe_strcmp(str, p->slocation)) {
+                       free(str);
+                       return;
+               } else {
+                       free(p->slocation);
+                       p->slocation = str;
+               }
+       } else {
+               free(p->slocation);
+               p->slocation = NULL;
+       }
+}
+
+
+static Evas_Object * __cal_edit_add_location_icon(Evas_Object *obj, const char *part,  Item_Data *item_data)
+{
+       Evas_Object *ly = NULL;
+       Evas_Object *ef;
+       Evas_Object *en;
+
+       if (!CAL_STRCMP(part, "elm.icon"))
+       {
+               ly = cal_util_add_layout(obj, "dialoguegroup/location");
+               if (!ly)
+                       return NULL;
+
+               ef = cal_util_add_edit_field(ly, C_("IDS_COM_BODY_DETAILS_LOCATION"), C_("IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"), EINA_TRUE, EINA_TRUE);
+               if (!ef) {
+                       ERR("ef is null");
+                       evas_object_del(ly);
+                       return NULL;
+               }
+
+               elm_object_part_content_set(ly, "editfield/sw", ef);
+
+               en = elm_object_part_content_get(ef, "elm.swallow.content");
+
+               if (item_data->p->slocation)
+                       elm_entry_entry_set(en, item_data->p->slocation);
+
+               evas_object_smart_callback_add(en, "changed", _edit_location_entry_changed_cb, item_data);
+               elm_entry_cnp_mode_set(en, ELM_CNP_MODE_PLAINTEXT);
+       }
+
+       return ly;
+}
+
+static Evas_Object* __cal_edit_add_date_field(Evas_Object *dg, cal_edit_data *p, struct tm *tm)
+{
+       c_retvm_if(!dg, NULL, "dg is null");
+       c_retvm_if(!p, NULL, "p is null");
+       c_retvm_if(!tm, NULL, "tm is null");
+
+       struct appdata* ad = p->ad;
+       c_retvm_if(!ad, NULL, "ad is null");
+
+       Evas_Object *layout = cal_util_add_datetime(dg, NULL, tm);
+       c_retvm_if(!layout, NULL, "layout is null");
+
+       Evas_Object *dt = elm_object_part_content_get(layout, "elm.icon");
+       if (!dt) {
+               ERR("dt is null");
+               evas_object_del(layout);
+               return NULL;
+       }
+
+       if (!p->allday)
+       {
+               elm_datetime_field_visible_set(dt, ELM_DATETIME_HOUR, EINA_TRUE);
+               elm_datetime_field_visible_set(dt, ELM_DATETIME_MINUTE, EINA_TRUE);
+
+               if (ad->is_hour24)
+               {
+                       elm_datetime_format_set(dt, "%b %d , %Y %H : %M");
+                       elm_datetime_field_visible_set(dt, ELM_DATETIME_AMPM, EINA_FALSE);
+               }
+               else
+               {
+                       elm_datetime_format_set(dt, "%b %d , %Y %I : %M %p");
+                       elm_datetime_field_visible_set(dt, ELM_DATETIME_AMPM, EINA_TRUE);
+               }
+       }
+       else
+       {
+               elm_datetime_field_visible_set(dt, ELM_DATETIME_HOUR, EINA_FALSE);
+               elm_datetime_field_visible_set(dt, ELM_DATETIME_MINUTE, EINA_FALSE);
+               elm_datetime_field_visible_set(dt, ELM_DATETIME_AMPM, EINA_FALSE);
+       }
+
+       elm_datetime_field_limit_set(dt, ELM_DATETIME_YEAR, 70, 137);
+
+       return layout;
+}
+
+static void __cal_edit_start_date_changed_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       cal_edit_data *p = data;
+
+       c_retm_if(!p->sdt, "p->sdt is null");
+       c_retm_if(!p->edt, "p->edt is null");
+
+       struct tm tm;
+
+       __cal_edit_get_date(p->sdt, &(p->stm));
+       __cal_edit_get_date(p->edt, &(p->etm));
+
+       elm_datetime_value_get(p->sdt, &tm);
+
+       cal_util_update_tm_hour(&tm, 1);
+
+       elm_datetime_value_set(p->edt, &tm);
+
+       __cal_edit_get_date(p->sdt, &(p->stm));
+       __cal_edit_get_date(p->edt, &(p->etm));
+}
+
+
+static Evas_Object * __cal_edit_add_start_date_icon(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       Evas_Object *icon_obj = NULL;
+       if (!CAL_STRCMP(part, "elm.icon"))
+       {
+               cal_edit_data *p = item_data->p;
+               icon_obj = __cal_edit_add_date_field(obj, p, &p->stm);
+               elm_object_part_text_set(icon_obj, "elm.text", S_("IDS_COM_BODY_START"));
+
+               p->sdt = elm_object_part_content_get(icon_obj, "elm.icon");
+               c_warn_if(!p->sdt, "p->sdt is null");
+
+               evas_object_smart_callback_add(p->sdt, "changed", __cal_edit_start_date_changed_callback, p);
+       }
+
+       return icon_obj;
+}
+
+static void __cal_edit_end_date_changed_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       cal_edit_data *p = data;
+
+       __cal_edit_get_date(p->edt, &(p->etm));
+}
+
+static Evas_Object * __cal_edit_add_end_date_icon(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       Evas_Object *icon_obj = NULL;
+       if (!CAL_STRCMP(part, "elm.icon"))
+       {
+               cal_edit_data *p = item_data->p;
+               icon_obj = __cal_edit_add_date_field(obj, p, &p->etm);
+               elm_object_part_text_set(icon_obj, "elm.text", S_("IDS_COM_BODY_END"));
+
+               p->edt = elm_object_part_content_get(icon_obj, "elm.icon");
+               c_warn_if(!p->edt, "p->edt is null");
+
+               evas_object_smart_callback_add(p->edt,"changed", __cal_edit_end_date_changed_callback, p);
+       }
+       return icon_obj;
+}
+
+static void __cal_edit_all_day_changed_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_ASSERT(data);
+       cal_edit_data *p = data;
+
+       CAL_ASSERT(p->ad);
+
+       p->allday = elm_check_state_get(obj);
+       if (!p->allday) {
+
+               elm_datetime_field_visible_set(p->sdt, ELM_DATETIME_HOUR, EINA_TRUE);
+               elm_datetime_field_visible_set(p->edt, ELM_DATETIME_HOUR, EINA_TRUE);
+               elm_datetime_field_visible_set(p->sdt, ELM_DATETIME_MINUTE, EINA_TRUE);
+               elm_datetime_field_visible_set(p->edt, ELM_DATETIME_MINUTE, EINA_TRUE);
+
+               if (!p->ad->is_hour24) {
+                       elm_datetime_field_visible_set(p->sdt, ELM_DATETIME_AMPM, EINA_TRUE);
+                       elm_datetime_field_visible_set(p->edt, ELM_DATETIME_AMPM, EINA_TRUE);
+               }
+       }
+       else    {
+
+               elm_datetime_field_visible_set(p->sdt, ELM_DATETIME_HOUR, EINA_FALSE);
+               elm_datetime_field_visible_set(p->edt, ELM_DATETIME_HOUR, EINA_FALSE);
+               elm_datetime_field_visible_set(p->sdt, ELM_DATETIME_MINUTE, EINA_FALSE);
+               elm_datetime_field_visible_set(p->edt, ELM_DATETIME_MINUTE, EINA_FALSE);
+               elm_datetime_field_visible_set(p->sdt, ELM_DATETIME_AMPM, EINA_FALSE);
+               elm_datetime_field_visible_set(p->edt, ELM_DATETIME_AMPM, EINA_FALSE);
+       }
+}
+
+static Evas_Object * __cal_edit_add_all_day_icon(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       CAL_ASSERT(obj);
+       CAL_ASSERT(item_data);
+
+       if (!CAL_STRCMP(part, "elm.icon"))
+       {
+               cal_edit_data *p = item_data->p;
+               Evas_Object *rd;
+
+               rd = elm_check_add(obj);
+               elm_check_state_set(rd, p->allday);
+               elm_object_style_set(rd, "on&off");
+               p->c_allday = rd;
+               evas_object_smart_callback_add(rd, "changed", __cal_edit_all_day_changed_callback, p);
+               elm_check_state_set(p->c_allday, p->allday);
+               evas_object_propagate_events_set(rd, EINA_FALSE);
+
+               return rd;
+       }
+
+       return NULL;
+}
+
+static void __cal_edit_note_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       Item_Data *item_data = data;
+       cal_edit_data *p = item_data->p;
+       c_retm_if(!p, "p is null");
+
+       const char *str = elm_entry_markup_to_utf8(elm_entry_entry_get(p->e_note));
+
+       if (!CAL_STRLEN(str))
+               p->snote = NULL;
+       else
+               p->snote = str;
+}
+
+
+static Evas_Object * __cal_edit_add_note_icon(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       c_retvm_if(!obj , NULL, "obj is null");
+       c_retvm_if(!part , NULL, "part is null");
+       c_retvm_if(!item_data , NULL, "item_data is null");
+
+       cal_edit_data *p = item_data->p;
+       c_retvm_if(!p , NULL, "p is null");
+
+       if (!CAL_STRCMP(part, "elm.icon")) {
+               Evas_Object *ef = cal_util_add_edit_field(obj, C_("IDS_COM_BODY_NOTE"), C_("IDS_CLD_BODY_TAP_TO_ENTER_NOTE"), EINA_FALSE, EINA_TRUE );
+               if (ef) {
+                       Evas_Object *entry = elm_object_part_content_get(ef, "elm.swallow.content");
+                       c_retvm_if(!entry, ef, "entry is null");
+
+                       evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_EXPAND);
+                       elm_entry_autocapital_type_set(entry, EINA_TRUE);
+                       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+
+                       p->e_note = entry;
+
+                       if (p->snote)
+                               elm_entry_entry_set(p->e_note, elm_entry_utf8_to_markup(p->snote));
+
+                       evas_object_smart_callback_add(p->e_note, "changed", __cal_edit_note_entry_changed_callback, item_data);
+
+                       return ef;
+               }
+       }
+       return NULL;
+}
+
+static void __cal_edit_set_default_information(cal_edit_data *p)
+{
+       time_t now;
+
+       now = time(NULL);
+       localtime_r(&now, &p->stm);
+       p->stm.tm_sec = 0;
+       localtime_r(&now, &p->etm);
+       p->etm.tm_sec = 0;
+       p->allday = 0;
+
+       p->repeat = CAL_REPEAT_NONE;
+       p->repeat_week = 0;
+
+       p->calid = DEFAULT_CALENDAR_ID;
+       p->accid = ALL_ACCOUNT_ID;
+
+       p->repeat_occurrences = 10;
+
+       cal_util_get_timezone_info(&p->timezone_path, &p->timezone_city, &p->timezone_offset);
+       if (p->timezone_offset) {
+               char *text = strstr(p->timezone_offset, "T");
+               p->timezone = atoi(text+2);
+       }
+}
+
+
+static Evas_Object* __cal_edit_add_save_to_icon(void *item_data, Evas_Object *obj, const char *part)
+{
+       if (!item_data)
+       {
+               ERR("item_data is null");
+               return NULL;
+       }
+
+       Evas_Object *icon = NULL;
+       char* default_icon_path = "/opt/apps/org.tizen.efl-calendar/res/icons/all_calendar.png";
+       char* icon_path = NULL;
+       cal_struct* cs = (cal_struct*)item_data;
+       Eina_Bool r = EINA_FALSE;
+       int cid = 0;
+       int aid = 0;
+
+       cid = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_TABLE_INT_INDEX);
+       aid = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_TABLE_INT_ACCOUNT_ID);
+
+       if (!CAL_STRCMP(part, "elm.icon"))
+       {
+               icon = elm_icon_add(obj);
+
+               if (!icon)
+               {
+                       ERR("elm_icon_add fail");
+                       return NULL;
+               }
+
+               if ( cid == DEFAULT_CALENDAR_ID) {
+                       r = elm_icon_file_set(icon, default_icon_path, NULL);
+                       c_warn_if(!r, "elm_icon_file_set(%s) is failed", default_icon_path);
+               }
+               else {
+                       icon_path = cal_account_svc_get_account_icon_path(aid);
+                       if (icon_path) {
+                               r = elm_icon_file_set(icon, icon_path, NULL);
+                               c_warn_if(!r, "elm_icon_file_set(%s) is failed", default_icon_path);
+                               free(icon_path);
+                       }
+                       else {
+                               r = elm_icon_file_set(icon, default_icon_path, NULL);
+                               c_warn_if(!r, "elm_icon_file_set(%s) is failed", default_icon_path);
+                       }
+
+               }
+
+               if (!r) {
+                       ERR("");
+                       evas_object_del(icon);
+                       icon = NULL;
+               }
+               else
+                       evas_object_show(icon);
+       }
+
+       return icon;
+}
+
+static Evas_Object *__cal_edit_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       Evas_Object *e_obj = NULL;
+       Item_Data *item_data = (Item_Data*)data;
+
+       switch ( item_data->type)
+       {
+       case _GTYPE_TITLE:
+               e_obj = __cal_edit_add_title_icon(obj, part, item_data);
+               break;
+       case _GTYPE_LOC:
+               e_obj = __cal_edit_add_location_icon(obj, part, item_data);
+               break;
+       case _GTYPE_START:
+               e_obj = __cal_edit_add_start_date_icon(obj, part, item_data);
+               break;
+       case _GTYPE_END:
+               e_obj = __cal_edit_add_end_date_icon(obj, part, item_data);
+               break;
+       case _GTYPE_ALLDAY:
+               e_obj = __cal_edit_add_all_day_icon(obj, part, item_data);
+               break;
+       case _GTYPE_NOTE:
+               e_obj = __cal_edit_add_note_icon(obj, part, item_data);
+               break;
+       default:
+               break;
+       }
+
+       return e_obj;
+}
+
+static char* __cal_edit_add_start_text(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(S_("IDS_COM_BODY_START"));
+       }
+
+       return NULL;
+}
+
+static char* __cal_edit_add_end_text(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(S_("IDS_COM_BODY_END"));
+       }
+
+       return NULL;
+}
+
+static void __cal_edit_get_alarm_text(Item_Data *data, char* buf, int buf_size)
+{
+       c_retm_if(!data, "data is null");
+       cal_edit_alarm_get_alarm_str(data->alarm_value, buf, buf_size);
+}
+
+static Eina_Bool __cal_edit_check_alarm_time_passed(cal_edit_data *p, cal_struct *cs)
+{
+       time_t alarm;
+       time_t current_time = time(NULL);
+       struct tm start_tm;
+       char buf[32] = {0};
+       Item_Data *item_data = NULL;
+       Elm_Object_Item *it;
+       c_retvm_if(!p, EINA_FALSE, "p is null");
+       c_retvm_if(!p->genlist, EINA_FALSE, "genlist is null");
+
+       start_tm = p->stm;
+       if (p->allday) {
+               start_tm.tm_hour = 0;
+               start_tm.tm_min = 0;
+               start_tm.tm_sec = 0;
+       }
+
+       int count = 1;
+
+       it = p->alarm_first_it;
+       while (it && (count++ <= p->alarm_count)) {
+
+               item_data = elm_object_item_data_get(it);
+               c_retvm_if(!item_data, EINA_FALSE, "item_data is null");
+
+               cal_edit_alarm_get_alarm_str(item_data->alarm_value, buf, sizeof(buf));
+               if (!strcmp(buf, S_("IDS_COM_BODY_OFF"))) {
+                       it = elm_genlist_item_next_get(it);
+                       continue;
+               }
+
+               alarm = mktime(&start_tm)-item_data->alarm_value*60;
+               if (alarm < current_time)
+                       return EINA_TRUE;
+
+               it = elm_genlist_item_next_get(it);
+       }
+
+       return EINA_FALSE;
+}
+
+static void __cal_edit_show_result_popup(cal_edit_data *p,int result)
+{
+       char buf[100]={0,};
+
+       switch(result)
+       {
+       case CAL_ERR_EVENT_START_DATE:
+               cal_util_add_popup(p->win, S_("IDS_COM_POP_WARNING"), "Start date is invalid!",
+                       __cal_edit_reponse_event_callback, NULL, NULL);
+               break;
+       case CAL_ERR_EVENT_END_DATE:
+               cal_util_add_popup(p->win, S_("IDS_COM_POP_WARNING"), "End date is invalid!",
+                       __cal_edit_reponse_event_callback, NULL, NULL);
+               break;
+       case CAL_ERR_EVENT_REPEAT_END_DATE:
+               cal_util_add_popup(p->win, S_("IDS_COM_POP_WARNING"), "Repeat end date is invalid!",
+                       __cal_edit_reponse_event_callback, NULL, NULL);
+               break;
+       case CAL_ERR_EVENT_DURATION:
+               cal_util_add_popup(p->win, S_("IDS_COM_POP_WARNING"), "Event duration is invalid!",
+                       __cal_edit_reponse_event_callback, NULL, NULL);
+               break;
+       case CAL_ERR_EVENT_REPEAT_DURATION_TOO_SHORT:
+               cal_util_add_popup(p->win, S_("IDS_COM_POP_WARNING"), "Event duration is longer than repeat duration!",
+                       __cal_edit_reponse_event_callback, NULL, NULL);
+               break;
+       case CAL_ERR_DB_LOCK:
+               cal_util_add_popup(p->win, S_("IDS_COM_POP_WARNING"), "Sync in progress, try later.",
+                       __cal_edit_reponse_event_callback, NULL, NULL);
+               break;
+       default:
+               snprintf(buf,100,"not saved(internal error-%d)!",result);
+               cal_util_add_popup(p->win, S_("IDS_COM_POP_WARNING"), buf,
+                       __cal_edit_reponse_event_callback, NULL, NULL);
+               break;
+       }
+}
+
+int __cal_edit_save(cal_edit_data *p)
+{
+       CAL_FN_START;
+
+       int r;
+       cal_struct *cs;
+       cal_struct *cs_temp;
+
+       cs = __cal_edit_get_cs(p->event_id);
+       if (!cs)
+               return -1;
+
+       cs_temp = __cal_edit_get_cs(p->event_id);
+       if (!cs_temp)
+       {
+               if(cs)
+                       CALENDAR_SVC_STRUCT_FREE(&cs);
+
+               return -1;
+       }
+
+       if (__cal_edit_check_alarm_time_passed(p,cs) && p->repeat == CAL_REPEAT_NONE)
+       {
+               cal_util_add_popup(p->win, S_("IDS_COM_POP_WARNING"), "Alarm time already passed!",
+                       __cal_edit_reponse_event_callback, NULL, NULL);
+
+               if (cs)
+                       CALENDAR_SVC_STRUCT_FREE(&cs);
+
+               if (cs_temp)
+                       CALENDAR_SVC_STRUCT_FREE(&cs_temp);
+
+               return -1;
+       }
+
+       __cal_edit_fill_cs(p, cs);
+
+       if (p->event_id)
+       {
+               if (p->ad->edit_special_one)
+               {
+                       GList* list = NULL;
+                       cal_value* value = NULL;
+                       time_t t = 0;
+
+                       CALENDAR_SVC_STRUCT_SET_INT(cs,"original_event_id",CALENDAR_SVC_STRUCT_GET_INT(cs,"index"));
+                       CALENDAR_SVC_STRUCT_SET_INT(cs,CAL_VALUE_INT_REPEAT_TERM,0);
+                       p->ad->cid = CALENDAR_SVC_INSERT(cs);
+
+                       t = p->ad->tm->st;
+                       value = CALENDAR_SVC_VALUE_NEW(CAL_VALUE_LST_EXCEPTION_DATE);
+                       CALENDAR_SVC_VALUE_SET_TIME(value,CAL_VALUE_GMT_EXCEPTION_DATE_TIME,CAL_TZ_FLAG_GMT,t);
+                       CALENDAR_SVC_VALUE_SET_INT(value,  CAL_VALUE_INT_EXCEPTION_DATE_ID, p->ad->cid);
+                       CALENDAR_SVC_STRUCT_GET_LIST(cs_temp,CAL_VALUE_LST_EXCEPTION_DATE,&list);
+                       list = g_list_append(list,value);
+                       CALENDAR_SVC_STRUCT_SET_LIST(cs_temp,CAL_VALUE_LST_EXCEPTION_DATE,list);
+
+                       CALENDAR_SVC_STRUCT_SET_INT(cs_temp,CAL_VALUE_INT_ACCOUNT_ID,p->accid);
+
+                       CALENDAR_SVC_UPDATE(cs_temp);
+               }
+               else
+               {
+                       r = CALENDAR_SVC_UPDATE(cs);
+                       if (r != CAL_SUCCESS)
+                       {
+                               __cal_edit_show_result_popup(p,r);
+
+                               if (cs)
+                                       CALENDAR_SVC_STRUCT_FREE(&cs);
+
+                               if (cs_temp)
+                                       CALENDAR_SVC_STRUCT_FREE(&cs_temp);
+
+                               return -1;
+                       }
+               }
+       }
+       else
+       {
+
+               r = CALENDAR_SVC_INSERT(cs);
+               if (r <= 0)
+               {
+                       __cal_edit_show_result_popup(p,r);
+
+                       if (cs)
+                               CALENDAR_SVC_STRUCT_FREE(&cs);
+
+                       if (cs_temp)
+                               CALENDAR_SVC_STRUCT_FREE(&cs_temp);
+
+                       return -1;
+               }
+       }
+
+       CALENDAR_SVC_STRUCT_FREE(&cs);
+       CALENDAR_SVC_STRUCT_FREE(&cs_temp);
+
+       return 0;
+}
+
+static void __cal_edit_save_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       Evas_Object *ly = data;
+       Elm_Object_Item* navi_item = NULL;
+       int r;
+       cal_edit_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!p, "p is null");
+
+       r = __cal_edit_save(p);
+       c_retm_if(r, "cal_edit_save() is failed");
+
+       if ((NULL != p->ad->ug) && (UG_EDIT == p->ad->u_type))
+       {
+               ug_destroy_me(p->ad->ug);
+               return;
+       }
+       else if (p->ad->request_view == CV_EDIT)
+       {
+               if (elm_naviframe_top_item_get(p->ad->nv) != elm_naviframe_bottom_item_get(p->ad->nv))
+               {
+                       p->ad->request_view = CV_UNKNOWN;
+                       elm_win_lower(p->ad->win);
+               }
+               else
+                       elm_exit();
+       }
+
+       elm_naviframe_prev_btn_auto_pushed_set(p->ad->nv, EINA_TRUE);
+       elm_naviframe_item_pop(p->ad->nv);
+       navi_item = elm_naviframe_top_item_get(p->ad->nv);
+}
+
+static char* __cal_edit_add_allday_text(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       if (!CAL_STRCMP(part, "elm.text"))
+       {
+               return strdup(C_("IDS_COM_BODY_ALL_DAY"));
+       }
+
+       return NULL;
+}
+
+static char* __cal_edit_add_timezone_text(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       CAL_ASSERT(item_data);
+
+       cal_edit_data *p = item_data->p;
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+               return strdup(C_("IDS_CLD_BODY_TIME_ZONE"));
+
+       if (!CAL_STRCMP(part, "elm.text.2")) {
+               if (!p->timezone_offset) {
+                       ERR("p->timezone_offset is null");
+                       return NULL;
+               }
+
+               return g_strdup_printf("%s, %s", C_(p->timezone_city), p->timezone_offset);
+       }
+
+       return NULL;
+}
+
+static char* __cal_edit_add_alarm_text(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       CAL_ASSERT(item_data);
+
+       cal_edit_data *p = item_data->p;
+       CAL_ASSERT(p);
+
+       char buf[1024];
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(S_("IDS_COM_BODY_ALARM"));
+       }
+       if (!CAL_STRCMP(part, "elm.text.2"))
+       {
+               __cal_edit_get_alarm_text(item_data, buf, sizeof(buf));
+               return strdup(buf);
+       }
+       return NULL;
+}
+
+static void __cal_edit_get_repeat_text(cal_edit_data *p, char* buf, int buf_size)
+{
+       cal_edit_repeat_get_repeat_str(p->repeat, p->repeat_week, buf, buf_size);
+}
+
+static char* __cal_edit_add_repeat_text(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       char buf[1024] = {0};
+       CAL_ASSERT(item_data);
+
+       cal_edit_data *p = item_data->p;
+       CAL_ASSERT(p);
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(C_("IDS_CLD_BODY_REPEAT"));
+       }
+       if (!CAL_STRCMP(part, "elm.text.2"))
+       {
+               __cal_edit_get_repeat_text(p, buf, sizeof(buf));
+               return strdup(buf);
+       }
+       return NULL;
+}
+
+static void __cal_edit_get_save_to_str(int calid, char *buf, int sz)
+{
+       cal_struct *cs = NULL;
+       const char *str;
+       int r;
+
+       r = CALENDAR_SVC_GET(CAL_STRUCT_CALENDAR, calid, NULL, &cs);
+       if (r != CAL_SUCCESS)
+       {
+               snprintf(buf, sz, "%s", _("Phone"));
+               if (cs)
+                       CALENDAR_SVC_STRUCT_FREE(&cs);
+
+               return;
+       }
+
+       if (calid == DEFAULT_CALENDAR_ID)
+               str = C_("IDS_CLD_OPT_PHONE_CALENDAR");
+       else
+       {
+               str = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_TABLE_TXT_NAME);
+               if (!str)
+                       str = C_("IDS_CLD_OPT_PHONE_CALENDAR");
+       }
+
+       snprintf(buf, sz, "%s", str);
+
+       CALENDAR_SVC_STRUCT_FREE(&cs);
+}
+
+static char* __cal_edit_add_save_to_text(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       CAL_FN_START;
+
+       char buf[1024];
+       CAL_ASSERT(item_data);
+
+       cal_edit_data *p = item_data->p;
+       CAL_ASSERT(p);
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(C_("IDS_ST_BODY_SAVE_TO"));
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.2"))
+       {
+               if ( p->calid == DEFAULT_CALENDAR_ID)
+                       return strdup(C_("IDS_CLD_OPT_PHONE_CALENDAR"));
+               else
+               {
+                       __cal_edit_get_save_to_str(p->calid, buf, sizeof(buf));
+                       return strdup(buf);
+               }
+       }
+       return NULL;
+}
+
+static char* __cal_edit_add_note_text(Evas_Object *obj, const char *part, Item_Data *item_data)
+{
+       cal_edit_data *p = item_data->p;
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               return strdup(S_("IDS_COM_BODY_NOTE"));
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.2") && p->snote)
+       {
+               return strdup(p->snote);
+       }
+
+       return NULL;
+}
+
+static char *__cal_edit_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       Item_Data *item_data = (Item_Data*)data;
+       int type = (int)item_data->type;
+
+       switch ( type )
+       {
+       case _GTYPE_TITLE:
+               break;
+       case _GTYPE_LOC:
+               break;
+       case _GTYPE_START:
+               return __cal_edit_add_start_text(obj, part, item_data);
+       case _GTYPE_END:
+               return __cal_edit_add_end_text(obj, part, item_data);
+       case _GTYPE_ALLDAY:
+               return __cal_edit_add_allday_text(obj, part, item_data);
+       case _GTYPE_TIME_ZONE:
+               return __cal_edit_add_timezone_text(obj, part, item_data);
+       case _GTYPE_ALARM:
+               return __cal_edit_add_alarm_text(obj, part, item_data);
+       case _GTYPE_REPEAT:
+               return __cal_edit_add_repeat_text(obj, part, item_data);
+       case _GTYPE_LINKED_CAL:
+               return __cal_edit_add_save_to_text(obj, part, item_data);
+       case _GTYPE_NOTE:
+               return __cal_edit_add_note_text(obj, part, item_data);
+       default:
+               break;
+       }
+
+       return NULL;
+}
+
+static void __cal_edit_genlist_item_delete(void *data, Evas_Object *obj)
+{
+       Item_Data *item_data = (Item_Data*)data;
+       free(item_data);
+
+       return;
+}
+
+static Eina_Bool __cal_edit_get_genlist_item_state(void *data, Evas_Object *obj, const char *part)
+{
+       return EINA_FALSE;
+}
+
+
+static void __cal_edit_alarm_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+
+       Item_Data * item_data = data;
+
+       cal_edit_data *p = item_data->p;
+       c_retm_if(!p, "p is null");
+
+       item_data->alarm_value = cal_edit_alarm_get_alarm(p->ly_alarm);
+
+       if (item_data->it)
+               elm_genlist_item_update(item_data->it);
+
+       elm_naviframe_item_pop(p->nv);
+}
+
+static void __cal_edit_repeat_callback(void *data, Evas_Object *obj, void *ei)
+{
+       cal_edit_data *p = data;
+
+       p->repeat = cal_edit_repeat_get_repeat(p->ly_repeat, &p->repeat_week, &(p->repeat_end_date_num), &(p->repeat_end_date_time),&(p->repeat_occurrences));
+
+       if(CAL_REPEAT_NONE != p->repeat)
+       {
+               if (p->repeat == CAL_REPEAT_EVERY_WEEK)
+                       __cal_edit_change_wday(p);
+
+               if(1 != p->repeat_end_date_num)
+               {
+                       if(timegm(&(p->repeat_end_date_time)) <= timegm(&p->stm))
+                       {
+                               cal_util_add_popup(p->win, S_("IDS_COM_POP_WARNING"), "Repeat end time is invalid!",
+                                       __cal_edit_reponse_event_callback, NULL, NULL);
+                               return;
+                       }
+               }
+               else
+               {
+                       DBG("p->repeat_occurrences is %d\n",p->repeat_occurrences);
+                       if(p->repeat_occurrences == 0)
+                       {
+                               cal_util_add_popup(p->win, S_("IDS_COM_POP_WARNING"), "Repeat occurrence is invalid!",
+                                       __cal_edit_reponse_event_callback, NULL, NULL);
+                               return;
+                       }
+
+                       time_t now;
+                       time(&now);
+                       struct tm *tm = localtime(&now);
+                       if(NULL != tm)
+                       {
+                               tm->tm_mon += 1;
+                               CAL_MEMCPY(&p->repeat_end_date_time, tm, struct tm);
+                       }
+               }
+               __cal_edit_set_repeat_text(p);
+       }
+
+       if(it)
+       {
+               elm_genlist_item_update(it);
+               it = NULL;
+       }
+
+       elm_naviframe_item_pop(p->nv);
+
+}
+
+static void __cal_edit_repeat_select_callback(Item_Data *item_data)
+{
+       cal_edit_data *p = item_data->p;
+       Evas_Object *btn_save;
+       Evas_Object *btn_cancel;
+       Elm_Object_Item* navi_item;
+
+       if (!p->nv)
+               p->nv = elm_naviframe_add(p->genlist);
+
+       p->ly_repeat = cal_edit_repeat_create_view(p->parent, p->ad, p->repeat, p->repeat_end_date_num, &(p->stm), &(p->repeat_end_date_time),&(p->repeat_occurrences), (int*)&(p->allday), p->repeat_week);
+       CAL_ASSERT(p->ly_repeat);
+
+       it = item_data->it;
+
+       navi_item = elm_naviframe_item_push(p->nv, C_("IDS_CLD_BODY_REPEAT"), NULL, NULL, p->ly_repeat, NULL);
+
+       btn_save = elm_button_add(p->nv);
+       cal_util_set_controlbar_button(btn_save, S_("IDS_COM_OPT_SAVE"), "naviframe/title/default", __cal_edit_repeat_callback, p);
+       elm_object_item_part_content_set(navi_item, "title_right_btn", btn_save);
+
+       btn_cancel = elm_button_add(p->nv);
+       cal_util_set_controlbar_button(btn_cancel,S_("IDS_COM_SK_CANCEL"),
+                       "naviframe/title/default", __cal_edit_cancel_button_callback, p->nv);
+       elm_object_item_part_content_set(navi_item, "title_left_btn", btn_cancel);
+}
+
+
+static void __cal_edit_ug_destroy_callback(struct ui_gadget *ug, void *priv)
+{
+       CAL_FN_START;
+
+       cal_edit_data* p = (cal_edit_data*) priv;
+
+       if (p->ug_worldclock) {
+               ug_destroy(p->ug_worldclock);
+               p->ug_worldclock= NULL;
+       }
+
+       Elm_Object_Item* navi_item = elm_naviframe_top_item_get(p->nv);
+       Evas_Object *back_btn = elm_object_item_part_content_get(navi_item, "prev_btn");
+       if (back_btn != NULL) {
+               elm_object_style_set(back_btn, "naviframe/back_btn/default");   /* take into effect */
+       }
+}
+
+static void __cal_edit_ug_result_callback(struct ui_gadget *ug, bundle *result, void *priv)
+{
+       CAL_FN_START;
+
+       c_retm_if(!priv, "priv is null");
+       c_retm_if(!result, "result is null");
+
+       cal_edit_data *p = priv;
+
+       const char* city = bundle_get_val(result, "city");
+       c_retm_if(!city, "city is null");
+
+       const char* timezone = bundle_get_val(result, "timezone");
+       c_retm_if(!timezone, "timezone is null");
+
+       const char* tzpath = bundle_get_val(result, "tzpath");
+       c_retm_if(!tzpath, "tzpath is null");
+
+       if (timezone)
+               p->timezone = atoi(timezone);
+
+       if (p->timezone_city)
+               free(p->timezone_city);
+
+       p->timezone_city = strdup(C_(city));
+
+       if (p->timezone_path)
+               free(p->timezone_path);
+
+       p->timezone_path= strdup(tzpath);
+
+       if (p->timezone_offset)
+               free(p->timezone_offset);
+
+       p->timezone_offset= g_strdup_printf("GMT%s",timezone);
+
+       p->is_selected_timezone = EINA_TRUE;
+
+       elm_genlist_item_update(p->timezone_item);
+}
+
+static void __cal_edit_ug_layout_callback(struct ui_gadget *ug, enum ug_mode mode, void *priv)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ug, "ug is null");
+
+       Evas_Object *base = ug_get_layout(ug);
+       if (!base) {
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode)
+       {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
+                               EVAS_HINT_EXPAND);
+               elm_win_resize_object_add(ug_get_window(), base);
+               evas_object_show(base);
+               break;
+       default:
+               DBG("Unsupported ug layout");
+               break;
+       }
+
+}
+
+static void __cal_edit_timezone_select_callback(Item_Data *item_data)
+{
+       c_retm_if(!item_data, "item_data is null");
+
+       cal_edit_data *p = item_data->p;
+       struct ug_cbs uc;
+       struct ui_gadget *ug;
+       memset(&uc, 0, sizeof(struct ug_cbs));
+       uc.destroy_cb = __cal_edit_ug_destroy_callback;
+       uc.layout_cb = __cal_edit_ug_layout_callback;
+       uc.result_cb = __cal_edit_ug_result_callback;
+       uc.priv = p;
+
+       ug = ug_create(NULL, "worldclock-efl", UG_MODE_FULLVIEW, NULL, &uc);
+       p->ug_worldclock = ug;
+}
+
+static void __cal_edit_alarm_select_callback(Item_Data *item_data)
+{
+       c_retm_if(!item_data, "item_data is null");
+
+       Evas_Object *btn_save;
+       Evas_Object *btn_cancel;
+       Elm_Object_Item* navi_item;
+       cal_edit_data *p = item_data->p;
+
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->nv, "p->nv is null");
+
+       p->ly_alarm = cal_edit_alarm_create_view(p->win, item_data->alarm_value, p->ad);
+       c_retm_if(!p->ly_alarm, "p->ly_alarm is null");
+
+       it = item_data->it;
+
+       navi_item = elm_naviframe_item_push(p->nv, S_("IDS_COM_BODY_ALARM"), NULL, NULL, p->ly_alarm, NULL);
+
+       btn_save = elm_button_add(p->nv);
+       cal_util_set_controlbar_button(btn_save,S_("IDS_COM_OPT_SAVE"), "naviframe/title/default", __cal_edit_alarm_callback, item_data);
+       elm_object_item_part_content_set(navi_item, "title_right_btn", btn_save);
+
+       btn_cancel = elm_button_add(p->nv);
+       cal_util_set_controlbar_button(btn_cancel,S_("IDS_COM_SK_CANCEL"), "naviframe/title/default", __cal_edit_cancel_button_callback, p->nv);
+       elm_object_item_part_content_set(navi_item, "title_left_btn", btn_cancel);
+}
+
+static void __cal_edit_save_to_popup_list_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_struct* cs = data;
+
+       cal_edit_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is null");
+
+       Elm_Object_Item *item = elm_genlist_selected_item_get(obj);
+       c_retm_if(!item, "elm_genlist_selected_item_get() returned null");
+
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       if (cs)
+       {
+               p->calid = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_TABLE_INT_INDEX);
+               p->accid = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_TABLE_INT_ACCOUNT_ID);
+       }
+       else
+       {
+               p->calid = DEFAULT_CALENDAR_ID;
+               p->accid = LOCAL_ACCOUNT_ID;
+       }
+
+       elm_genlist_item_update(it);
+
+       evas_object_del(p->popup);
+       p->popup = NULL;
+}
+
+static void  __cal_edit_save_to_popup_hide_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+
+       cal_edit_data *p = evas_object_data_get(popup, "data");
+
+       evas_object_del(popup);
+
+       c_retm_if(!p, "p is null");
+
+       p->popup = NULL;
+}
+
+static Evas_Object* __cal_edit_create_save_to_popup(Item_Data *item_data)
+{
+       c_retvm_if(!item_data, NULL, "item_data is null");
+
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+       cal_edit_data *p = item_data->p;
+       c_retvm_if(!p, NULL, "p is null");
+
+       cal_struct *cs;
+       Eina_List *l;
+
+       if (!p->calendar_list)
+       {
+               p->calendar_list = CALENDAR_SVC_GET_CALENDARS(p->accid);
+               c_retvm_if(!p->calendar_list, NULL, "p->calendar_list is null");
+       }
+
+       popup = cal_util_add_popup(p->ad->win, C_("IDS_ST_BODY_SAVE_TO"), NULL,
+               __cal_edit_save_to_popup_hide_cb, p, S_("IDS_COM_BODY_CLOSE"), NULL);
+       c_retvm_if(!popup, NULL, "popup is null");
+       elm_object_style_set(popup, "liststyle");
+
+       genlist = elm_genlist_add(popup);
+       if (!genlist) {
+               ERR("elm_genlist_add(popup) returned null");
+               evas_object_del(popup);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_data_set(genlist, "priv", p);
+
+       EINA_LIST_FOREACH(p->calendar_list, l, cs)
+       {
+               if (cs)
+                       elm_genlist_item_append(genlist, &itc_2text_1icon_2, cs, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_save_to_popup_list_sel, cs);
+       }
+
+       elm_object_content_set(popup, genlist);
+       evas_object_show(genlist);
+
+       return popup;
+}
+
+static void __cal_edit_show_save_to_popup(Item_Data *item_data)
+{
+       c_retm_if(!item_data, "item_data is null");
+
+       it = item_data->it;
+       c_retm_if(!it, "selected item is null");
+
+       cal_edit_data *p = item_data->p;
+       c_retm_if(!p, "p is null");
+
+       Evas_Object *popup = __cal_edit_create_save_to_popup(item_data);
+       c_retm_if(!popup, "popup is NULL");
+
+       p->popup = popup;
+}
+
+static void __cal_edit_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!obj, "obj is null");
+
+       Elm_Object_Item *it = elm_genlist_selected_item_get(obj);
+       c_retm_if(!it, "elm_genlist_selected_item_get() returned null");
+
+       Item_Data *item_data = (Item_Data *)elm_object_item_data_get(it);
+       c_retm_if(!it, "elm_object_item_data_get() returned null");
+
+       int type = item_data->type;
+
+       cal_edit_data *p = item_data->p;
+       c_retm_if(!p, "p is null");
+
+       switch ( type )
+       {
+       case _GTYPE_TITLE:
+               break;
+       case _GTYPE_LOC:
+               break;
+       case _GTYPE_START:
+               elm_object_focus_set(p->sdt, EINA_TRUE);
+               break;
+       case _GTYPE_END:
+               elm_object_focus_set(p->edt, EINA_TRUE);
+               break;
+       case _GTYPE_ALLDAY:
+               elm_check_state_set(p->c_allday, !elm_check_state_get(p->c_allday));
+               __cal_edit_all_day_changed_callback(p, p->c_allday, event_info);
+               break;
+       case _GTYPE_TIME_ZONE:
+               __cal_edit_timezone_select_callback(item_data);
+               break;
+       case _GTYPE_ALARM:
+               __cal_edit_alarm_select_callback(item_data);
+               break;
+       case _GTYPE_REPEAT:
+               __cal_edit_repeat_select_callback(item_data);
+               break;
+       case _GTYPE_NOTE:
+               break;
+       case _GTYPE_LINKED_CAL:
+               __cal_edit_show_save_to_popup(item_data);
+               break;
+       default:
+               break;
+       }
+
+       elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       return;
+}
+
+static char *__cal_edit_get_genlist_save_to_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+       c_retvm_if(!part, NULL, "part is null");
+
+       cal_struct *cs = (cal_struct*)data;
+       const char *name;
+       int cid;
+       char* description;
+
+       if (!CAL_STRCMP(part,"elm.text.1")) {
+               if (!cs)
+                       return strdup(C_("IDS_CLD_OPT_PHONE_CALENDAR"));
+
+               cid = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_TABLE_INT_INDEX);
+               if (cid == DEFAULT_CALENDAR_ID)
+                       return strdup(C_("IDS_CLD_OPT_PHONE_CALENDAR"));
+
+               name = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_TABLE_TXT_NAME);
+               if (name)
+                       return strdup(name);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+       }
+       else if (!CAL_STRCMP(part,"elm.text.2")) {
+               if (!cs)
+                       return strdup(S_("IDS_COM_POP_NO_ACCOUNTS"));
+
+               cid = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_TABLE_INT_INDEX);
+               if (cid == DEFAULT_CALENDAR_ID)
+                       return strdup(C_("IDS_EMAIL_BODY_DEFAULT_ACCOUNT"));
+
+               description = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_TABLE_TXT_DESCRIPTION);
+               if (description)
+                       return strdup(description);
+
+               return strdup(S_("IDS_COM_POP_NO_ACCOUNTS"));
+       }
+
+       return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+}
+
+static Elm_Object_Item* __cal_edit_add_genlist_item(Evas_Object *genlist, Elm_Genlist_Item_Class *itc, int type, cal_edit_data *p)
+{
+       c_retvm_if(!genlist, NULL, "genlist is null");
+       c_retvm_if(!itc, NULL, "itc is null");
+       c_retvm_if(!p, NULL, "p is null");
+
+       Item_Data *item_data = calloc(1, sizeof(Item_Data));
+       c_retvm_if(!item_data, NULL, "calloc is failed");
+
+       item_data->p = p;
+       item_data->type = type;
+
+       item_data->it = elm_genlist_item_append(genlist, itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_genlist_item_select_callback, NULL);
+       if (!item_data->it)
+       {
+               ERR("elm_genlist_item_append returned null");
+               free(item_data);
+               return NULL;
+       }
+
+       if ( type == _GTYPE_START || type == _GTYPE_END )
+               elm_genlist_item_select_mode_set( item_data->it, ELM_OBJECT_SELECT_MODE_NONE );
+
+       return item_data->it;
+}
+
+static Elm_Object_Item* __cal_edit_add_genlist_alarm_item(Evas_Object *genlist, Elm_Genlist_Item_Class *itc, int type, cal_edit_data *p, int alarm)
+{
+       c_retvm_if(!genlist, NULL, "genlist is null");
+       c_retvm_if(!itc, NULL, "itc is null");
+       c_retvm_if(!p, NULL, "p is null");
+
+       Item_Data *item_data = calloc(1, sizeof(Item_Data));
+       c_retvm_if(!item_data, NULL, "calloc is failed");
+
+       item_data->p = p;
+       item_data->type = type;
+       item_data->alarm_value = alarm;
+
+       if (!p->alarm_first_it) {
+               item_data->it = elm_genlist_item_append(genlist, &itc_2text, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_genlist_item_select_callback, NULL);
+               p->alarm_first_it = p->alarm_last_it = item_data->it;
+       } else {
+               item_data->it = elm_genlist_item_insert_after(genlist, itc, item_data, NULL,p->alarm_last_it, ELM_GENLIST_ITEM_NONE, __cal_edit_genlist_item_select_callback, NULL);
+               p->alarm_last_it = item_data->it;
+       }
+
+       if (!item_data->it)
+       {
+               ERR("elm_genlist_item_append returned null");
+               free(item_data);
+               return NULL;
+       }
+
+       return item_data->it;
+}
+
+
+static Elm_Object_Item* __cal_edit_add_separator(Evas_Object *genlist, cal_edit_data *p)
+{
+       c_retvm_if(!genlist, NULL, "genlist is null");
+       c_retvm_if(!p, NULL, "p is null");
+
+       Elm_Object_Item *git = __cal_edit_add_genlist_item(genlist, &itc_seperator, 0, p);
+       c_retvm_if(!git, NULL, "__cal_edit_add_genlist_item returned null");
+
+       elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_NONE);
+
+       return git;
+}
+
+static Elm_Object_Item* __cal_edit_set_title(Evas_Object *genlist, cal_edit_data *p)
+{
+       __cal_edit_add_separator(genlist, p);
+
+       return __cal_edit_add_genlist_item(genlist, &itc_1icon, _GTYPE_TITLE, p);
+}
+
+static Elm_Object_Item* __cal_edit_set_location(Evas_Object *genlist, cal_edit_data *p)
+{
+       return __cal_edit_add_genlist_item(genlist, &itc_1icon, _GTYPE_LOC, p);
+}
+
+static Elm_Object_Item* __cal_edit_set_start_date(Evas_Object *genlist, cal_edit_data *p)
+{
+       __cal_edit_add_separator(genlist, p);
+
+       return __cal_edit_add_genlist_item(genlist, &itc_1icon, _GTYPE_START, p);
+}
+
+static Elm_Object_Item* __cal_edit_set_end_date(Evas_Object *genlist, cal_edit_data *p)
+{
+       return __cal_edit_add_genlist_item(genlist, &itc_1icon, _GTYPE_END, p);
+}
+
+static Elm_Object_Item* __cal_edit_set_all_day(Evas_Object *genlist, cal_edit_data *p)
+{
+       return __cal_edit_add_genlist_item(genlist, &itc_1text_1icon, _GTYPE_ALLDAY, p);
+}
+
+static Elm_Object_Item* __cal_edit_set_time_zone(Evas_Object *genlist, cal_edit_data *p)
+{
+       __cal_edit_add_separator(genlist, p);
+
+       return __cal_edit_add_genlist_item(genlist, &itc_2text, _GTYPE_TIME_ZONE, p);
+}
+
+static void __cal_edit_set_alarm(Evas_Object *genlist, cal_edit_data *p)
+{
+       __cal_edit_add_separator(genlist, p);
+
+       GList *temp = p->list_alm_min;
+
+       if (!temp)
+               p->alarm_first_it = p->alarm_last_it =
+                       __cal_edit_add_genlist_alarm_item(genlist, &itc_2text_1btn, _GTYPE_ALARM, p,
+                                                                                       (p->event_id?CAL_EDIT_ALARM_OFF:CAL_EDIT_ALARM_ON_TIME));
+       else {
+               while (temp) {
+                       __cal_edit_add_genlist_alarm_item(genlist, &itc_2text_1btn, _GTYPE_ALARM, p, (int)temp->data);
+
+                       temp = g_list_next(temp);
+               }
+       }
+}
+
+static Elm_Object_Item* __cal_edit_set_repeat(Evas_Object *genlist, cal_edit_data *p)
+{
+       __cal_edit_add_separator(genlist, p);
+
+       return __cal_edit_add_genlist_item(genlist, &itc_2text, _GTYPE_REPEAT, p);
+}
+
+static Elm_Object_Item* __cal_edit_set_note(Evas_Object *genlist, cal_edit_data *p)
+{
+       __cal_edit_add_separator(genlist, p);
+
+       return __cal_edit_add_genlist_item(genlist, &itc_1icon, _GTYPE_NOTE, p);
+}
+
+static Elm_Object_Item* __cal_edit_set_save_to(Evas_Object *genlist, cal_edit_data *p)
+{
+       __cal_edit_add_separator(genlist, p);
+
+       return __cal_edit_add_genlist_item(genlist, &itc_2text, _GTYPE_LINKED_CAL, p);
+
+}
+
+static void __cal_edit_set_edit(cal_edit_data *p)
+{
+       time_t t;
+
+       if (p->ad)
+       {
+               p->stm.tm_year = p->ad->base_tm.tm_year;
+               p->stm.tm_mon = p->ad->base_tm.tm_mon;
+               p->stm.tm_mday = p->ad->base_tm.tm_mday;
+
+               if (-1 != p->ad->base_hour)
+               {
+                       p->stm.tm_hour = p->ad->base_hour;
+                       p->stm.tm_min = 0;
+               }
+       }
+
+       if (p->stm.tm_min)
+               cal_util_update_tm_hour(&p->stm,1);
+
+       p->stm.tm_min = p->stm.tm_sec = 0;
+
+       t = mktime(&p->stm);
+       t += 60 * 60; // add 1 hour
+       localtime_r(&t, &p->etm);
+
+       p->allday = EINA_FALSE;
+}
+
+static Eina_Bool __cal_edit_append_widget_idler(void* data)
+{
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "data is null");
+
+       cal_edit_data *p = (cal_edit_data *)data;
+       Evas_Object *genlist = p->genlist;
+
+       __cal_edit_set_note(genlist, p);
+
+       __cal_edit_set_save_to(genlist, p);
+
+       p->idler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static Evas_Object* __cal_edit_create_genlist(cal_edit_data* p)
+{
+       Elm_Object_Item* item = NULL;
+       Evas_Object *genlist = elm_genlist_add(p->ly);
+       c_retvm_if(!genlist, NULL, "elm_genlist_add() is failed");
+
+       evas_object_data_set(genlist, "priv", p);
+
+       if (p->ad->theme)
+               elm_object_theme_set(genlist, p->ad->theme);
+
+       itc_seperator.item_style = "dialogue/separator/21/with_line";
+       itc_seperator.func.text_get = NULL;
+       itc_seperator.func.state_get = __cal_edit_get_genlist_item_state;
+       itc_seperator.func.del = __cal_edit_genlist_item_delete;
+
+       itc_1icon.item_style = "dialogue/1icon";
+       itc_1icon.func.text_get = __cal_edit_get_genlist_item_label;
+       itc_1icon.func.del = __cal_edit_genlist_item_delete;
+       itc_1icon.func.content_get = __cal_edit_get_genlist_item_icon;
+
+       itc_1text_1icon.item_style = "dialogue/1text.1icon";
+       itc_1text_1icon.func.text_get = __cal_edit_get_genlist_item_label;
+       itc_1text_1icon.func.del = __cal_edit_genlist_item_delete;
+       itc_1text_1icon.func.content_get = __cal_edit_get_genlist_item_icon;
+
+       itc_2text.item_style = "dialogue/2text.3";
+       itc_2text.func.text_get = __cal_edit_get_genlist_item_label;
+       itc_2text.func.del = __cal_edit_genlist_item_delete;
+       itc_2text.func.content_get = __cal_edit_get_genlist_item_icon;
+       itc_2text.func.state_get = NULL;
+
+       itc_2text_1btn.item_style = "dialogue/2text.1icon.6";
+       itc_2text_1btn.func.text_get = __cal_edit_get_genlist_item_label;
+       itc_2text_1btn.func.content_get = __cal_edit_get_genlist_item_icon;
+       itc_2text_1btn.func.state_get = NULL;
+       itc_2text_1btn.func.del = __cal_edit_genlist_item_delete;
+       itc_2text_1btn.decorate_item_style = "dialogue/edit/contact";
+
+       itc_2text_1icon_4.item_style = "dialogue/2text.1icon.4";
+       itc_2text_1icon_4.func.text_get = __cal_edit_get_genlist_item_label;
+       itc_2text_1icon_4.func.del = __cal_edit_genlist_item_delete;
+       itc_2text_1icon_4.func.content_get = __cal_edit_get_genlist_item_icon;
+
+       itc_2text_1icon_2.item_style = "dialogue/2text.1icon.2";
+       itc_2text_1icon_2.func.text_get = __cal_edit_get_genlist_save_to_item_label;
+       itc_2text_1icon_2.func.content_get = __cal_edit_add_save_to_icon;
+
+       itc_2text_2icon_4.item_style = "dialogue/2text.2icon.4";
+       itc_2text_2icon_4.func.text_get = __cal_edit_get_genlist_item_label;
+       itc_2text_2icon_4.func.del = __cal_edit_genlist_item_delete;
+       itc_2text_2icon_4.func.content_get = __cal_edit_get_genlist_item_icon;
+
+       __cal_edit_set_title(genlist, p);
+       __cal_edit_set_location(genlist, p);
+       __cal_edit_set_start_date(genlist, p);
+       __cal_edit_set_end_date(genlist, p);
+       __cal_edit_set_all_day(genlist, p);
+
+       p->timezone_item = __cal_edit_set_time_zone(genlist, p);
+
+       __cal_edit_set_alarm(genlist, p);
+
+       item = __cal_edit_set_repeat(genlist, p);
+       if (p->ad->edit_special_one)
+               elm_object_item_disabled_set(item, EINA_TRUE);
+
+       evas_object_show(genlist);
+
+       return genlist;
+}
+
+static void __cal_edit_layout_rendering_callback(void *data, Evas *e, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       cal_edit_data* p = data;
+
+       evas_event_callback_del(e, EVAS_CALLBACK_RENDER_FLUSH_POST, __cal_edit_layout_rendering_callback);
+
+       if (p->idler)
+               return;
+
+       if (!p->idler)
+               p->idler = ecore_idler_add(__cal_edit_append_widget_idler,p);
+
+       CAL_FN_END;
+}
+
+static Evas_Object *__cal_edit_create_layout(struct appdata *ad, Evas_Object *parent)
+{
+       c_retvm_if(!ad, NULL, "ad is null");
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas *e;
+       Evas_Object *ly;
+       Evas_Object *cf;
+       struct tm tm = {0};
+       cal_edit_data *p = calloc(1, sizeof(cal_edit_data));
+       c_retvm_if(!p, NULL, "calloc(1, sizeof(cal_edit_data)) returned null");
+
+       p->parent = parent;
+       p->nv = ad->nv;
+       p->win = ad->win;
+       p->snote = ad->strnote;
+       p->is_selected_timezone = EINA_FALSE;
+       p->popup = NULL;
+       p->alarm_count = 1;
+       p->alarm_last_it = NULL;
+       p->alarm_first_it = NULL;
+       p->list_alm_min = NULL;
+       p->add_button = NULL;
+       time_t t = time(NULL);
+       localtime_r(&t,&tm);
+       tm.tm_mon += 1;
+       CAL_MEMCPY(&p->repeat_end_date_time, &tm, struct tm);
+
+       ly = cal_util_add_layout(ad->nv, "edit");
+       if (!ly)
+       {
+               ERR("cal_util_add_layout return null");
+               free(p);
+               return NULL;
+       }
+
+       e = evas_object_evas_get(ly);
+       p->ad = ad;
+       p->ly = ly;
+       p->event_id = ad->cid;
+       evas_object_data_set(ly, "priv", p);
+
+       if (ad->is_aul && ad->ical)
+               __cal_edit_fill_vcs_information(p);
+       else {
+               if (p->event_id)
+                       __cal_edit_fill_detail_information(p, p->event_id);
+               else {
+                       __cal_edit_set_default_information(p);
+                       __cal_edit_set_edit(p);
+               }
+       }
+
+       p->genlist = __cal_edit_create_genlist(p);
+       if (!p->genlist)
+       {
+               evas_object_del(ly);
+               free(p);
+               return NULL;
+       }
+
+       cf = elm_conformant_add(ad->win);
+       if (!cf)
+       {
+               ERR("elm_conformant_add(ad->win) is failed");
+               evas_object_del(ly);
+               free(p);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(cf, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(cf);
+       elm_object_content_set(cf, p->genlist);
+       elm_object_style_set(cf, "internal_layout");
+       elm_object_part_content_set(ly, "sw", cf);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_edit_delete_layout, p);
+       evas_event_callback_add(e, EVAS_CALLBACK_RENDER_FLUSH_POST, __cal_edit_layout_rendering_callback, p);
+
+       return ly;
+}
+
+static void __cal_edit_back_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       cal_edit_data *p = data;
+       Elm_Object_Item* navi_item = NULL;
+
+       if ((NULL != p->ad->ug) && (UG_EDIT == p->ad->u_type))
+       {
+               ug_destroy_me(p->ad->ug);
+       }
+       else
+       {
+               if (p->ad->request_view == CV_EDIT)
+               {
+                       if (elm_naviframe_top_item_get(p->ad->nv) != elm_naviframe_bottom_item_get(p->ad->nv))
+                       {
+                               p->ad->request_view = CV_UNKNOWN;
+                               elm_win_lower(p->ad->win);
+                       }
+                       else
+                               elm_exit();
+               }
+
+               elm_naviframe_prev_btn_auto_pushed_set(p->ad->nv, EINA_TRUE);
+               elm_naviframe_item_pop(p->ad->nv);
+               navi_item = elm_naviframe_top_item_get(p->ad->nv);
+
+               if (p->ad->is_update_view)
+                       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->parent), "update", "prog");
+       }
+}
+
+static void __cal_edit_add_controlbar( struct appdata *ad, Evas_Object *ly)
+{
+       c_retm_if(!ad, "ad is null");
+       c_retm_if(!ly, "ly is null");
+
+       Elm_Object_Item* navi_item;
+       const char *title;
+       Evas_Object *btn_save;
+       Evas_Object *btn_cancel;
+
+       if (ad->cid)
+               title = S_("IDS_COM_SK_EDIT");
+       else
+               title = S_("IDS_COM_SK_NEW");
+
+       elm_naviframe_prev_btn_auto_pushed_set(ad->nv, EINA_FALSE);
+
+       navi_item = elm_naviframe_item_push(ad->nv, title, NULL, NULL, ly, NULL);
+       c_retm_if(!navi_item, "elm_naviframe_item_push returned null");
+
+       btn_save = elm_button_add(ad->nv);
+       c_retm_if(!btn_save, "elm_button_add(ad->nv) returned null");
+       cal_util_set_controlbar_button(btn_save, S_("IDS_COM_OPT_SAVE"), "naviframe/title/default", __cal_edit_save_button_callback, ly);
+       elm_object_item_part_content_set(navi_item, "title_right_btn", btn_save);
+
+       btn_cancel = elm_button_add(ad->nv);
+       c_retm_if(!btn_cancel, "elm_button_add(ad->nv) returned null");
+       cal_util_set_controlbar_button(btn_cancel, S_("IDS_COM_SK_CANCEL"), "naviframe/title/default", __cal_edit_back_button_callback, CAL_UTIL_GET_PRIV_DATA(ly));
+       elm_object_item_part_content_set(navi_item, "title_left_btn", btn_cancel);
+}
+
+void cal_edit_create_view(struct appdata *ad, Evas_Object *parent)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad, "ad is null");
+       c_retm_if(!parent, "parent is null");
+
+       Evas_Object *ly = __cal_edit_create_layout(ad, parent);
+       c_retm_if(!ly, "__cal_edit_create_layout(ad, parent) returned null");
+
+       __cal_edit_add_controlbar(ad, ly);
+
+       CAL_FN_END;
+}
diff --git a/src/view-main-day-time.c b/src/view-main-day-time.c
new file mode 100755 (executable)
index 0000000..cff6adb
--- /dev/null
@@ -0,0 +1,960 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <math.h>
+
+#include "view.h"
+#include "detail.h"
+#include "timeblock.h"
+
+#define ANI_TIME 0.3
+#define WINDOW_WIDTH 480
+#define THIRTY_MIN (30 * 60)
+#define HH_IN_DAY (24 * 2)
+
+static const char *_name = "main/day/tb";
+
+enum cal_day_stack_action_type {
+       STACK_START = 0,
+       STACK_CLICK,
+       STACK_SCROLL,
+       STACK_FLICK,
+};
+
+enum cal_day_input_signal_type {
+       SINGLE_MOUSE_DOWN,
+       SINGLE_MOUSE_UP,
+       SINGLE_MOUSE_MOVE,
+};
+
+struct _priv {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+
+       Evas_Object *clip;
+
+       Evas_Object *scroller;
+       Evas_Coord_Rectangle scroller_coord;
+
+       Evas_Object *base;
+       Evas_Object *event_rectangle;
+
+       struct timeblock *time_block;
+       struct timeblock *tb_t;
+       struct timeblock *left_time_block;
+       struct timeblock *right_time_block;
+       struct timeblock *temporary_time_block;
+       Evas_Coord tb_t_d;
+
+       Eina_Bool scrl_freezed;
+
+       Evas_Coord_Point single_mouse_down;
+       Evas_Coord_Point single_mouse_move;
+
+       Evas_Coord mouse_down_distance;
+
+       enum cal_day_stack_action_type stack_action_type;
+
+       Ecore_Idler *idler_for_scrolling;
+       Ecore_Idler *idler_for_time_block;
+
+       struct tm tm;
+
+       struct calsvc *csv;
+       struct calsvc *left_csv;
+       struct calsvc *right_csv;
+       struct calsvc *temporary_csv;
+
+       Evas_Coord base_y;
+
+};
+
+
+#define THIRTY_MIN (30 * 60)
+#define HH_IN_DAY (24 * 2) // Half hour
+
+static void __cal_day_time_time_block_callback(void *data, struct timeblock *time_block, enum timeblock_event_type e, void *ei);
+
+static void __cal_day_time_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       struct _priv *p = data;
+
+       if (p->idler_for_scrolling)
+               ecore_idler_del(p->idler_for_scrolling);
+
+       if (p->idler_for_time_block)
+               ecore_idler_del(p->idler_for_time_block);
+
+       if (p->base)
+               evas_object_del(p->base);
+
+       if (p->event_rectangle)
+               evas_object_del(p->event_rectangle);
+
+
+       if (p->time_block)
+               cal_time_block_delete_time_block(&p->time_block);
+
+       if (p->left_time_block)
+               cal_time_block_delete_time_block(&p->left_time_block);
+
+       if (p->right_time_block)
+               cal_time_block_delete_time_block(&p->right_time_block);
+
+       if (p->temporary_time_block)
+               cal_time_block_delete_time_block(&p->temporary_time_block);
+
+       if (p->tb_t)
+               p->tb_t = NULL;
+
+       if (p->left_csv)
+               CALENDAR_SVC_FREE_CS(&p->left_csv);
+
+       if (p->right_csv)
+               CALENDAR_SVC_FREE_CS(&p->right_csv);
+
+       if (p->csv)
+               CALENDAR_SVC_FREE_CS(&p->csv);
+
+       if (p->temporary_csv)
+               CALENDAR_SVC_FREE_CS(&p->temporary_csv);
+
+       if (p)
+               free(p);
+}
+
+static void inline __cal_day_time_freeze(struct _priv *p)
+{
+       if (!p->scrl_freezed)
+       {
+               elm_object_scroll_freeze_push(p->scroller);
+               p->scrl_freezed = EINA_TRUE;
+       }
+}
+
+static void inline __cal_day_time_thaw(struct _priv *p)
+{
+       if (p->scrl_freezed)
+       {
+               elm_object_scroll_freeze_pop(p->scroller);
+               p->scrl_freezed = EINA_FALSE;
+       }
+}
+
+static void __cal_day_time_scroll(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct _priv *p = data;
+       Evas_Coord_Point xy;
+
+       evas_object_geometry_get(p->base, &xy.x, &xy.y, NULL, NULL);
+       cal_time_block_move(p->time_block, xy.x, xy.y);
+}
+
+static inline Evas_Coord __cal_day_time_get_distance(Evas_Coord_Point *s, Evas_Coord_Point *e)
+{
+       return (Evas_Coord)sqrt((s->x - e->x) * (s->x - e->x)
+                       + (s->y - e->y) * (s->y - e->y));
+}
+
+static void __cal_day_time_flick_stack(struct _priv *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p->time_block);
+
+       Evas_Coord_Rectangle r;
+       Evas_Coord d = p->single_mouse_move.x - p->single_mouse_down.x;
+
+       cal_time_block_get_geometry(p->time_block, &r);
+       cal_time_block_move(p->time_block, p->scroller_coord.x + d, r.y);
+
+       if (p->tb_t)
+               cal_time_block_move(p->tb_t, p->scroller_coord.x + d + r.w * p->tb_t_d, r.y);
+}
+
+static char* __cal_day_time_get_time_block_text(cal_struct *cs)
+{
+       CAL_ASSERT(cs);
+
+       const char *tit;
+       const char *loc;
+       char *str;
+       int size = 0;
+
+       tit = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_SUMMARY);
+       if (!tit)
+               tit = C_("IDS_CLD_BODY_NO_TITLE");
+
+       loc = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_LOCATION);
+       if (!loc || loc[0] == '\0')
+               loc = C_("IDS_CLD_BODY_NO_LOCATION_SELECTED");
+
+       size = CAL_STRLEN(tit) + CAL_STRLEN(loc) + 6;
+       CAL_CALLOC(str, size, char);
+       if (!str)
+               return strdup(tit);
+
+       snprintf(str, size, "%s<br>%s", tit, loc);
+
+       return str;
+}
+
+static void __cal_day_time_add_event(struct timeblock *time_block, struct tmnode *tm, time_t base)
+{
+       CAL_ASSERT(time_block);
+       CAL_ASSERT(tm);
+
+       char *text;
+       int cid;
+       int hh;
+       int sz;
+       time_t et;
+
+       text = __cal_day_time_get_time_block_text(tm->cs);
+       cid = CALENDAR_SVC_STRUCT_GET_INT(tm->cs, CAL_VALUE_INT_INDEX);
+
+       hh = (tm->st - base)/THIRTY_MIN;
+       if (hh < 0)
+               hh = 0;
+
+       et = ((tm->et - 1 - base)/THIRTY_MIN) + 1;
+       if (et > HH_IN_DAY)
+               et = HH_IN_DAY;
+
+       sz = et - hh;
+       if (sz <= 0)
+               sz = 1;
+
+       cal_time_block_add_event(time_block, cid, hh, sz, text, tm);
+
+       free(text);
+}
+
+static void __cal_day_time_add_events(struct timeblock *time_block, struct _priv * p, struct tm *day)
+{
+       CAL_ASSERT(time_block);
+       CAL_ASSERT(p);
+       CAL_ASSERT(day);
+
+       time_t st, et;
+       Eina_List *l;
+       struct tmnode *tm;
+       int acctid = p->ad->acct_id;
+       int allday;
+
+       cal_util_get_day_time_t(day, &st, &et);
+
+       if(p->csv)
+               CALENDAR_SVC_FREE_CS(&p->csv);
+
+       p->csv = CALENDAR_SVC_GET_EVENT(acctid, st, et);
+       CAL_ASSERT(p->csv);
+
+       EINA_LIST_FOREACH(p->csv->tmlist, l, tm)
+       {
+               if(NULL != tm)
+               {
+                       allday = CALENDAR_SVC_STRUCT_GET_INT(tm->cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+                       if (!allday)
+                               __cal_day_time_add_event(time_block, tm, st);
+               }
+       }
+}
+
+static void __cal_day_time_add_events_left(struct timeblock *tb, struct _priv * p, struct tm *day)
+{
+       CAL_FN_START;
+
+       time_t st, et;
+       Eina_List *l;
+       struct tmnode *tm;
+       int acctid = p->ad->acct_id;
+
+       cal_util_get_day_time_t(day, &st, &et);
+
+       if(p->left_csv)
+               CALENDAR_SVC_FREE_CS(&p->left_csv);
+
+       p->left_csv = CALENDAR_SVC_GET_EVENT(acctid, st, et);
+       if (!p->left_csv)
+               return;
+
+       EINA_LIST_FOREACH(p->left_csv->tmlist, l, tm)
+       {
+               int allday;
+               if(NULL != tm)
+               {
+                       allday = CALENDAR_SVC_STRUCT_GET_INT(tm->cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+                       if (!allday)
+                       {
+                               __cal_day_time_add_event(tb, tm, st);
+                       }
+               }
+       }
+}
+
+static void __cal_day_time_add_events_right(struct timeblock *tb, struct _priv * p, struct tm *day)
+{
+       CAL_FN_START;
+
+       time_t st, et;
+       Eina_List *l;
+       struct tmnode *tm;
+       int acctid = p->ad->acct_id;
+
+       cal_util_get_day_time_t(day, &st, &et);
+
+       if(p->right_csv)
+               CALENDAR_SVC_FREE_CS(&p->right_csv);
+
+       p->right_csv = CALENDAR_SVC_GET_EVENT(acctid, st, et);
+       if (!p->right_csv)
+               return;
+
+       EINA_LIST_FOREACH(p->right_csv->tmlist, l, tm)
+       {
+               int allday;
+               if(NULL != tm)
+               {
+                       allday = CALENDAR_SVC_STRUCT_GET_INT(tm->cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+                       if (!allday)
+                       {
+                               __cal_day_time_add_event(tb, tm, st);
+                       }
+               }
+       }
+}
+
+static void __cal_day_time_add_events_tmp(struct timeblock *tb, struct _priv * p, struct tm *day)
+{
+       CAL_FN_START;
+
+       time_t st, et;
+       Eina_List *l;
+       struct tmnode *tm;
+       int acctid = p->ad->acct_id;
+
+       cal_util_get_day_time_t(day, &st, &et);
+
+       if(p->temporary_csv)
+               CALENDAR_SVC_FREE_CS(&p->temporary_csv);
+
+       p->temporary_csv = CALENDAR_SVC_GET_EVENT(acctid, st, et);
+       if (!p->temporary_csv)
+               return;
+
+       EINA_LIST_FOREACH(p->temporary_csv->tmlist, l, tm)
+       {
+               int allday;
+               if(NULL != tm)
+               {
+                       allday = CALENDAR_SVC_STRUCT_GET_INT(tm->cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+                       if (!allday)
+                       {
+                               __cal_day_time_add_event(tb, tm, st);
+                       }
+               }
+       }
+}
+
+static void __cal_day_time_move_side_time_block(struct _priv *p)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->time_block, "p->time_block is null");
+
+       Evas_Coord_Rectangle r = {0};
+       Evas_Coord_Rectangle r1 = {0};
+
+       cal_time_block_get_geometry(p->time_block, &r);
+
+       cal_util_get_geometry(&r1, p->scroller);
+       p->scroller_coord = r1;
+
+       if (p->left_time_block)
+       {
+               cal_time_block_move(p->left_time_block, p->scroller_coord.x + r.w *(-1), r.y);
+       }
+
+       if (p->right_time_block)
+       {
+               cal_time_block_move(p->right_time_block, p->scroller_coord.x + r.w *(1), r.y);
+       }
+
+
+}
+
+static struct timeblock * __cal_day_time_create_time_block_left_right(struct _priv *p, Evas_Coord d)
+{
+       CAL_FN_START;
+
+       c_retv_if(!p, NULL);
+
+       struct tm tm = p->tm;
+
+       int r = cal_util_update_tm_day(&tm, d);
+       c_retvm_if(r < 0, NULL, "cal_util_update_tm_day() returned %d", r);
+
+       struct timeblock *time_block = cal_time_block_create_time_block(p->scroller, p->clip);
+       c_retv_if(!time_block, NULL);
+
+       if (d < 0) // left
+               __cal_day_time_add_events_left(time_block, p, &tm);
+       else // right
+               __cal_day_time_add_events_right(time_block, p, &tm);
+
+       cal_time_block_resize(time_block, 0, cal_time_block_get_current(p->time_block));
+
+       if (d < 0) // left
+               p->left_time_block = time_block;
+       else // right
+               p->right_time_block = time_block;
+
+       return time_block;
+
+}
+
+static void __cal_day_time_create_time_block_t(struct _priv *p, Evas_Coord d)
+{
+       if(p->left_time_block && p->right_time_block)
+       {
+
+               if(d > 0)
+               {
+                       p->tb_t_d = -1;
+                       p->tb_t = p->left_time_block;
+               }
+               else
+               {
+                       p->tb_t_d = 1;
+                       p->tb_t = p->right_time_block;
+               }
+       }
+       else
+       {
+
+               struct tm tm;
+               int r;
+
+               if (p->temporary_time_block)
+                       cal_time_block_clear_event(p->temporary_time_block);
+
+               if (!p->temporary_time_block)
+                       p->temporary_time_block = cal_time_block_create_time_block(p->scroller, p->clip);
+
+               if (!p->temporary_time_block)
+                       return;
+
+               tm = p->tm;
+               if (d > 0) // left
+                       p->tb_t_d = -1;
+               else // right
+                       p->tb_t_d = 1;
+
+               r = cal_util_update_tm_day(&tm, p->tb_t_d);
+               if (r == -1)
+                       return;
+
+               __cal_day_time_add_events_tmp(p->temporary_time_block, p, &tm);
+
+               cal_time_block_resize(p->temporary_time_block, 0, cal_time_block_get_current(p->time_block));
+
+               p->tb_t = p->temporary_time_block;
+       }
+}
+
+static void __cal_day_time_update_day(struct _priv *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       if (( 0 < p->tb_t_d && !p->right_time_block) ||( p->tb_t_d < 0 && !p->left_time_block)) {
+               __cal_day_time_move_side_time_block(p);
+               return;
+       }
+
+       Evas_Coord_Rectangle rect = {0};
+       Evas_Coord_Rectangle rect1 = {0};
+
+       cal_time_block_get_geometry(p->time_block, &rect);
+
+       cal_util_get_geometry(&rect1, p->scroller);
+       p->scroller_coord = rect1;
+
+       int r = cal_util_update_tm_day(&p->ad->base_tm, p->tb_t_d);
+       c_retm_if(r < 0, "cal_util_update_tm_day() is returned %d", r);
+
+       struct tm tm = p->ad->base_tm;
+       r = cal_util_update_tm_day(&tm, p->tb_t_d);
+       c_warn_if(r < 0, "cal_util_update_tm_day() is returned %d", r);
+
+       cal_time_block_hide_current_time_line(p->time_block);
+       cal_time_block_unset_callback(p->time_block);
+
+       if (0 < p->tb_t_d) {
+               if (p->left_time_block)
+                       cal_time_block_delete_time_block(&p->left_time_block);
+
+               if (p->left_csv)
+                       CALENDAR_SVC_FREE_CS(&p->left_csv);
+
+               p->left_time_block = p->time_block;
+               p->left_csv = p->csv;
+
+               p->time_block = p->right_time_block;
+               p->csv = p->right_csv;
+
+               p->right_time_block = NULL;
+               p->right_csv = NULL;
+
+               if (r == 0) {
+                       p->right_time_block = cal_time_block_create_time_block(p->scroller, p->clip);
+
+                       __cal_day_time_add_events_right(p->right_time_block, p, &tm);
+               }
+       }
+       else if (p->tb_t_d < 0) {
+               if (p->right_time_block)
+                       cal_time_block_delete_time_block(&p->right_time_block);
+
+               if (p->right_csv)
+                       CALENDAR_SVC_FREE_CS(&p->right_csv);
+
+               p->right_time_block = p->time_block;
+               p->right_csv = p->csv;
+
+               p->time_block = p->left_time_block;
+               p->csv = p->left_csv;
+
+               p->left_time_block = NULL;
+               p->left_csv = NULL;
+
+               if (r == 0) {
+                       p->left_time_block = cal_time_block_create_time_block(p->scroller, p->clip);
+
+                       __cal_day_time_add_events_right(p->left_time_block, p, &tm);
+               }
+       }
+
+       cal_time_block_show_current_time_line(p->time_block, p->tm.tm_hour);
+       cal_time_block_set_callback(p->time_block, __cal_day_time_time_block_callback, p);
+
+       cal_time_block_move(p->left_time_block, p->scroller_coord.x + rect.w *(-1), rect.y);
+       cal_time_block_move(p->time_block, p->scroller_coord.x , rect.y);
+       cal_time_block_move(p->right_time_block, p->scroller_coord.x + rect.w *(1), rect.y);
+
+       cal_main_update_title_text(p->ad->title, CV_DAY, &p->ad->base_tm, p->ad->wday_start);
+
+       cal_day_update_genlist(p->parent);
+}
+
+static void __cal_day_time_stack_action(struct _priv *p)
+{
+       switch (p->stack_action_type)
+       {
+       case STACK_FLICK:
+               __cal_day_time_flick_stack(p);
+               break;
+
+       case STACK_START:
+       case STACK_CLICK:
+       case STACK_SCROLL:
+       default:
+               // do nothing
+               break;
+       }
+}
+
+static void __cal_day_time_transact_stack(struct _priv *p, enum cal_day_input_signal_type input)
+{
+       CAL_ASSERT(p);
+
+       switch (p->stack_action_type)
+       {
+       case STACK_START:
+               if (input == SINGLE_MOUSE_DOWN)
+                       p->stack_action_type = STACK_CLICK;
+               break;
+
+       case STACK_CLICK:
+               if (input == SINGLE_MOUSE_UP)
+               {
+                       p->stack_action_type = STACK_START;
+               }
+               else if (input == SINGLE_MOUSE_MOVE)
+               {
+                       Evas_Coord d;
+                       Evas_Coord th = elm_finger_size_get();
+
+                       d = p->single_mouse_move.y - p->single_mouse_down.y;
+                       if (d > th || d < (th * -1))
+                       {
+                               cal_time_block_set_event_lock(p->time_block, EINA_TRUE);
+                               p->stack_action_type = STACK_SCROLL;
+                               break;
+                       }
+
+                       d = p->single_mouse_move.x - p->single_mouse_down.x;
+                       if (d > th || d < (th * -1))
+                       {
+                               if ((d < 0 && !p->right_time_block) || (0 < d && !p->left_time_block)) {
+                                       cal_time_block_set_event_lock(p->time_block, EINA_TRUE);
+                                       p->stack_action_type = STACK_SCROLL;
+                                       break;
+                               }
+
+                               __cal_day_time_freeze(p);
+                               cal_time_block_set_event_lock(p->time_block, EINA_TRUE);
+                               __cal_day_time_create_time_block_t(p, d);
+                               p->stack_action_type = STACK_FLICK;
+                       }
+               }
+               break;
+
+       case STACK_SCROLL:
+               if (input == SINGLE_MOUSE_UP) {
+                       cal_time_block_set_event_lock(p->time_block, EINA_FALSE);
+                       p->stack_action_type = STACK_START;
+               }
+               break;
+
+       case STACK_FLICK:
+               if (input == SINGLE_MOUSE_UP) {
+                       Evas_Coord_Rectangle r;
+                       Evas_Coord d;
+                       Evas_Coord th;
+
+                       // TODO: start animation: go left or right
+                       cal_time_block_get_geometry(p->time_block, &r);
+                       cal_time_block_move(p->time_block, p->scroller_coord.x, r.y);
+                       cal_time_block_move(p->tb_t, 0 - r.w, r.y); // hide
+                       p->stack_action_type = STACK_START;
+                       cal_time_block_set_event_lock(p->time_block, EINA_FALSE);
+                       __cal_day_time_thaw(p);
+
+                       d = p->single_mouse_move.x - p->single_mouse_down.x;
+                       th = r.w >> 1;
+                       if (d > th || d < (th * -1))
+                               __cal_day_time_update_day(p);
+               }
+               break;
+       }
+}
+
+static void __cal_day_time_mouse_down_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct _priv *p = data;
+       Evas_Event_Mouse_Down *ev = ei;
+
+       p->single_mouse_down.x = ev->canvas.x;
+       p->single_mouse_down.y = ev->canvas.y;
+
+       __cal_day_time_transact_stack(p, SINGLE_MOUSE_DOWN);
+       __cal_day_time_stack_action(p);
+}
+
+static void __cal_day_time_mouse_up_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct _priv *p = data;
+       //      Evas_Event_Mouse_Up *ev = ei;
+
+       __cal_day_time_transact_stack(p, SINGLE_MOUSE_UP);
+       __cal_day_time_stack_action(p);
+}
+
+static void __cal_day_time_mouse_move_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct _priv *p = data;
+       Evas_Event_Mouse_Move *ev = ei;
+
+       p->single_mouse_move.x = ev->cur.canvas.x;
+       p->single_mouse_move.y = ev->cur.canvas.y;
+
+       __cal_day_time_transact_stack(p, SINGLE_MOUSE_MOVE);
+       __cal_day_time_stack_action(p);
+}
+
+// Event mismatch workaround
+static void __cal_day_time_mouse_out_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct _priv *p = data;
+
+       __cal_day_time_transact_stack(p, SINGLE_MOUSE_UP);
+       __cal_day_time_stack_action(p);
+}
+
+static Evas_Object* __cal_day_time_add_base_layout(Evas_Object *parent, struct _priv *p)
+{
+       Evas_Object *base;
+
+       base = cal_util_add_rectangle(parent);
+       if (!base)
+               return NULL;
+
+       evas_object_size_hint_align_set(base, EVAS_HINT_FILL, 0);
+       evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_color_set(base, 0, 0, 0, 0);
+
+       evas_object_event_callback_add(base, EVAS_CALLBACK_MOVE, __cal_day_time_scroll, p);
+
+       return base;
+}
+
+static Evas_Object* __cal_day_time_add_event_rectangle(Evas_Object *parent, struct _priv *p)
+{
+       Evas_Object *evt;
+
+       evt = cal_util_add_rectangle(parent);
+       if (!evt)
+               return NULL;
+
+       evas_object_size_hint_align_set(evt, EVAS_HINT_FILL, 0);
+       evas_object_size_hint_weight_set(evt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_color_set(evt, 0, 0, 0, 0);
+
+       evas_object_repeat_events_set(evt, EINA_TRUE);
+
+       evas_object_event_callback_add(evt, EVAS_CALLBACK_MOUSE_DOWN, __cal_day_time_mouse_down_event_callback, p);
+       evas_object_event_callback_add(evt, EVAS_CALLBACK_MOUSE_UP, __cal_day_time_mouse_up_event_callback, p);
+       evas_object_event_callback_add(evt, EVAS_CALLBACK_MOUSE_MOVE, __cal_day_time_mouse_move_event_callback, p);
+       evas_object_event_callback_add(evt, EVAS_CALLBACK_MOUSE_OUT, __cal_day_time_mouse_out_event_callback, p);
+
+       return evt;
+}
+
+static void __cal_day_time_add_content(Evas_Object *ly, struct _priv *p)
+{
+       Evas_Object *scroller;
+       Evas_Object *box;
+
+       scroller = cal_util_add_scroller(ly);
+       CAL_ASSERT(scroller);
+       p->scroller = scroller;
+
+       box = cal_util_add_box(ly);
+       CAL_ASSERT(box);
+
+       elm_object_content_set(scroller, box);
+
+       p->base = __cal_day_time_add_base_layout(ly, p);
+       CAL_ASSERT(p->base);
+       elm_box_pack_end(box, p->base);
+
+       p->event_rectangle = __cal_day_time_add_event_rectangle(ly, p);
+       CAL_ASSERT(p->event_rectangle);
+
+       elm_object_part_content_set(ly, "sw", p->scroller);
+}
+
+static void __cal_day_time_resize_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       struct _priv *p = data;
+       Evas_Coord_Rectangle r = {0};
+
+       cal_util_get_geometry(&r, p->scroller);
+       p->scroller_coord = r;
+       evas_object_resize(p->event_rectangle, r.w, r.h);
+       evas_object_move(p->event_rectangle, 0, r.y);
+
+       p->base_y = r.y;
+       cal_time_block_get_geometry(p->time_block, &r);
+
+       evas_object_size_hint_min_set(p->base, 0, r.h);
+}
+
+static inline void __cal_day_time_time_block_clicked_callback(struct _priv *p, int hour)
+{
+       p->ad->base_hour = hour;
+       p->ad->cid = 0;
+       cal_edit_create_view(p->ad, p->ad->main);
+}
+
+static inline void __cal_day_time_event_clicked_callback(struct _priv *p, struct timeblock_event* ev)
+{
+       CAL_ASSERT(p);
+       CAL_ASSERT(ev);
+
+       int repeat = 0;
+
+       repeat = CALENDAR_SVC_STRUCT_GET_INT(ev->tm->cs, CAL_VALUE_INT_REPEAT_TERM);
+       if(repeat)
+               memcpy(p->ad->tm, ev->tm, sizeof(struct tmnode));
+
+       p->ad->cid = ev->cid;
+       cal_detail_create_view(p->ad, p->ad->main);
+}
+
+static void __cal_day_time_time_block_callback(void *data, struct timeblock *time_block, enum timeblock_event_type e, void *ei)
+{
+       CAL_ASSERT(data);
+       CAL_ASSERT(time_block);
+
+       struct _priv *p = (struct _priv *)data;
+
+       switch (e)
+       {
+       case TIMEBLOCK_CLICKED:
+               __cal_day_time_time_block_clicked_callback(p, (int)ei);
+               break;
+       case EVENT_CLICKED:
+               __cal_day_time_event_clicked_callback(p, (struct timeblock_event *)ei);
+               break;
+       }
+}
+
+static Eina_Bool __cal_day_time_scroll_bring_with_idler(void *data)
+{
+       CAL_FN_START;
+
+       struct _priv *p = data;
+       Evas_Coord y;
+
+       y = cal_time_block_get_first_event_y(p->time_block);
+       elm_scroller_region_bring_in(p->scroller, 0, y, 0, p->scroller_coord.h);
+       p->idler_for_scrolling = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+Evas_Object* cal_day_create_time_block(struct tm *tm, struct appdata *ad, Evas_Object *parent)
+{
+       CAL_FN_START;
+
+       struct _priv *p;
+       Evas_Object *ly;
+
+       CAL_ASSERT(ad && parent);
+
+       CAL_CALLOC(p, 1, struct _priv);
+
+       p->name = _name;
+       p->ad = ad;
+       p->parent = parent;
+       p->left_time_block = NULL;
+       p->right_time_block = NULL;
+       p->temporary_time_block = NULL;
+       p->idler_for_time_block = NULL;
+
+       ly = cal_util_add_layout(parent, p->name);
+       CAL_ASSERT(ly);
+       p->ly = ly;
+       evas_object_data_set(ly, "priv", p);
+
+       __cal_day_time_add_content(ly, p);
+
+       p->clip = (Evas_Object*)edje_object_part_object_get(CAL_UTIL_GET_EDJ_DATA(ly), "clip");
+
+       p->time_block = cal_time_block_create_time_block(p->scroller, p->clip);
+       CAL_ASSERT(p->time_block);
+
+       p->csv = NULL;
+       p->left_csv = NULL;
+       p->right_csv = NULL;
+       p->temporary_csv = NULL;
+
+       cal_time_block_set_callback(p->time_block, __cal_day_time_time_block_callback, p);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_RESIZE, __cal_day_time_resize_layout, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_day_time_delete_layout, p);
+
+       return ly;
+}
+
+static Eina_Bool __cal_day_time_create_timeblock_with_idler(void *data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       struct _priv *p = data;
+
+       Evas_Coord_Rectangle r;
+       cal_util_get_geometry(&r, p->scroller);
+       evas_object_move(p->scroller, 0, r.y);
+
+       if (p->idler_for_time_block)
+               ecore_idler_del(p->idler_for_time_block);
+
+       if (p->left_time_block)
+               cal_time_block_delete_time_block(&p->left_time_block);
+
+       p->left_time_block = __cal_day_time_create_time_block_left_right(p, -1);
+
+       if (p->right_time_block)
+               cal_time_block_delete_time_block(&p->right_time_block);
+
+       p->right_time_block = __cal_day_time_create_time_block_left_right(p, 1);
+
+       __cal_day_time_move_side_time_block(p);
+
+       p->idler_for_time_block = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+void cal_day_time_update_time_block(Evas_Object *ly, struct tm *tm)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ly);
+       c_ret_if(!tm);
+
+       struct _priv *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name))
+       {
+               ERR("Invalid object");
+               return;
+       }
+
+       // TODO : check day and update
+       Eina_Bool d = p->tm.tm_year != tm->tm_year ||
+               p->tm.tm_mon != tm->tm_mon ||
+               p->tm.tm_mday != tm->tm_mday;
+
+       cal_time_block_clear_event(p->time_block);
+
+       p->tm = *tm;
+
+       __cal_day_time_add_events(p->time_block, p, tm);
+
+       cal_time_block_show_current_time_line(p->time_block, p->tm.tm_hour);
+
+       if (d)
+       {
+               if (p->idler_for_scrolling)
+                       ecore_idler_del(p->idler_for_scrolling);
+               p->idler_for_scrolling = ecore_idler_add(__cal_day_time_scroll_bring_with_idler, p);
+       }
+
+       if (!p->idler_for_time_block)
+               p->idler_for_time_block = ecore_idler_add(__cal_day_time_create_timeblock_with_idler, p);
+}
+
diff --git a/src/view-main-day.c b/src/view-main-day.c
new file mode 100755 (executable)
index 0000000..1952049
--- /dev/null
@@ -0,0 +1,210 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include "view.h"
+#include "detail.h"
+
+static const char *_name = "main/day";
+
+struct _priv {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+
+       Evas_Object *time_block; // layout
+
+       Evas_Object *genlist;
+       struct calsvc *csv;
+};
+
+static char* __cal_day_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static Elm_Genlist_Item_Class itc = {
+       .item_style = "dialogue/1text",
+       .func.text_get = __cal_day_get_genlist_item_label,
+};
+
+static void __cal_day_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       CAL_ASSERT(data);
+
+       struct _priv *p = data;
+
+       CALENDAR_SVC_FREE_CS(&p->csv);
+
+       free(p);
+}
+
+static char* __cal_day_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       struct tmnode *tm = (struct tmnode *)data;
+       const char *str;
+
+       if (!tm || !tm->cs)
+               return NULL;
+
+       if (!CAL_STRCMP(part, "elm.text")) {
+               str = CALENDAR_SVC_STRUCT_GET_STR(tm->cs, CAL_VALUE_TXT_SUMMARY);
+               if (str)
+                       return strdup(str);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+       }
+
+       return NULL;
+}
+
+static void __cal_day_genlist_item_select_callback(void *data, Evas_Object *obj, void *ei)
+{
+       struct _priv *p;
+       struct tmnode* tm = (struct tmnode*)data;
+       cal_struct *cs = tm->cs;
+       Elm_Object_Item *it;
+       int idx;
+
+       it = elm_genlist_selected_item_get(obj);
+       if (it)
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       idx = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_INDEX);
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+       CAL_ASSERT(p);
+
+       p->ad->cid = idx;
+       memcpy(p->ad->tm, tm, sizeof(struct tmnode));
+
+       cal_detail_create_view(p->ad, p->parent);
+}
+
+static void __cal_day_get_events(struct _priv *p)
+{
+       time_t st, et;
+
+       cal_util_get_day_time_t(&p->ad->base_tm, &st, &et);
+
+       p->csv = CALENDAR_SVC_GET_EVENT(p->ad->acct_id, st, et);
+}
+
+void cal_day_update_genlist(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ly);
+
+       struct _priv *p = CAL_UTIL_GET_PRIV_DATA (ly);
+       c_ret_if(!p);
+       c_ret_if(!p->genlist);
+
+       Eina_List *l;
+       struct tmnode *tm;
+       int line;
+
+       elm_genlist_clear(p->genlist);
+       CALENDAR_SVC_FREE_CS(&p->csv);
+
+       __cal_day_get_events(p);
+
+       line = 0;
+       if (p->csv) {
+               EINA_LIST_FOREACH(p->csv->tmlist, l, tm) {
+                       if(NULL != tm)
+                       {
+                               int allday = CALENDAR_SVC_STRUCT_GET_INT(tm->cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+                               if (allday) {
+                                       elm_genlist_item_append(p->genlist, &itc, tm, NULL,
+                                                       ELM_GENLIST_ITEM_NONE, __cal_day_genlist_item_select_callback, tm);
+                                       line++;
+                               }
+                       }
+               }
+       }
+       if (line > 2)
+               line = 2;
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "go,line%d", line);
+}
+
+Evas_Object* cal_day_create_view(struct appdata *ad, Evas_Object *main)
+{
+       CAL_FN_START;
+
+       struct _priv *p;
+       Evas_Object *ly;
+       Evas_Object *genlist;
+       Evas_Object *time_block;
+
+       CAL_ASSERT(ad);
+
+       CAL_CALLOC(p, 1, struct _priv);
+
+       p->name = _name;
+       p->ad = ad;
+       p->parent = main;
+
+       ly = cal_util_add_layout(ad->nv, p->name);
+       CAL_ASSERT(ly);
+
+       p->ly = ly;
+       evas_object_data_set(ly, "priv", p);
+
+       genlist = elm_genlist_add(ly);
+       CAL_ASSERT(genlist);
+
+       p->genlist = genlist;
+       elm_object_part_content_set(ly, "list/sw", genlist);
+       evas_object_data_set(genlist, "priv", p);
+
+       time_block = cal_day_create_time_block(&ad->base_tm, ad, ly);
+       CAL_ASSERT (time_block);
+
+       p->time_block = time_block;
+       elm_object_part_content_set(ly, "cont/sw", time_block);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_day_delete_layout, p);
+
+       return ly;
+}
+
+void cal_day_update_view(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       struct _priv *p;
+
+       CAL_ASSERT(ly);
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name)) {
+               ERR("Invalid object");
+               return;
+       }
+
+       cal_day_update_genlist(ly);
+
+       cal_day_time_update_time_block(p->time_block, &p->ad->base_tm);
+}
diff --git a/src/view-main-list.c b/src/view-main-list.c
new file mode 100755 (executable)
index 0000000..aa77d82
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include "view.h"
+#include "list.h"
+
+Evas_Object* cal_list_create_view(struct appdata *ad, Evas_Object *main)
+{
+       CAL_FN_START;
+
+       CAL_ASSERT(ad);
+
+       return cal_list_create_list(ad, main);
+}
+
+void cal_list_update_view(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       CAL_ASSERT(ly);
+
+       cal_list_update_list(ly);
+}
diff --git a/src/view-main-month-cal.c b/src/view-main-month-cal.c
new file mode 100755 (executable)
index 0000000..7c815e1
--- /dev/null
@@ -0,0 +1,1542 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include "view.h"
+#include "detail.h"
+
+enum {
+       ST_PREV = -1,
+       ST_CURR = 0,
+       ST_NEXT = 1,
+};
+
+struct _day {
+       int enabled:1;
+       int checked:1;
+};
+
+typedef struct {
+       int cid;
+       int is_repeat;
+       int line;
+       int width;
+       int color;
+       int showed;
+       char title[512];
+       time_t start_time;
+       time_t end_time;
+}weekly_event;
+
+struct _priv {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly;
+       Evas_Object *month;
+       struct calsvc *csv;
+       Evas_Object *gl;
+       Evas_Object *popup;
+
+       int base_pos_for_weekly;
+       int index_for_press;
+       struct tm cur_tm;
+       struct _day day[42];
+       int pos_today;
+       int pos_selected;
+       int pos_start;
+       int pos_end;
+       int pos_down;
+       GList* list[7];
+       int weekline;
+       int down_x;
+       int down_y;
+};
+
+static const char *_name = NULL;
+static Calendar_color calendar_color;
+
+static Evas_Object *__cal_month_calendar_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);
+static char* __cal_month_calendar_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static void __cal_month_calendar_signal_week(struct _priv *p,Evas_Object *eo);
+static int __cal_month_calendar_get_weekly_events(struct _priv *p);
+
+static Elm_Genlist_Item_Class itc = {
+       .item_style = "3text.5icon",
+       .func.content_get = __cal_month_calendar_get_genlist_item_icon,
+       .func.text_get = __cal_month_calendar_get_genlist_item_label,
+};
+
+static Evas_Object *__cal_month_calendar_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+       c_retvm_if(!obj, NULL, "obj is null");
+
+       struct tmnode *tm = data;
+       c_retvm_if(!tm->cs, NULL, "tm->cs is null");
+
+       struct _priv* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retvm_if(!p, NULL, "p is null");
+
+       int r;
+       Evas_Object *icon = NULL;
+       cal_struct *calendar = NULL;
+
+       if (!CAL_STRCMP(part, "elm.swallow.colorbar"))
+       {
+               r = CALENDAR_SVC_GET(CAL_STRUCT_CALENDAR, CALENDAR_SVC_STRUCT_GET_INT(tm->cs,CAL_VALUE_INT_CALENDAR_ID), NULL, &calendar);
+               if (r != CAL_SUCCESS)
+               {
+                       ERR("CALENDAR_SVC_GET fail. %d", r);
+                       return NULL;
+               }
+
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               CALENDAR_SVC_GET_CALENDAR_COLOR(calendar, &calendar_color);
+
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+
+               CALENDAR_SVC_STRUCT_FREE(&calendar);
+
+               return icon;
+       }
+
+       return NULL;
+}
+
+static void __cal_month_calendar_make_time_text(time_t t, struct tm *tm, char *buf, int sz)
+{
+       struct tm ttm;
+       const char* date;
+       const char* time;
+
+       localtime_r(&t, &ttm);
+
+       time = CAL_UTIL_TIME_FORMAT_6;
+
+       if (ttm.tm_year != tm->tm_year)
+               date = CAL_UTIL_DATE_FORMAT_11;
+       else if (ttm.tm_mon != tm->tm_mon)
+               date = CAL_UTIL_DATE_FORMAT_10;
+       else if (ttm.tm_mday != tm->tm_mday)
+               date = CAL_UTIL_DATE_FORMAT_9;
+       else
+               date = NULL;
+
+       cal_util_get_time_text(buf, sz, NULL, time, &ttm);
+}
+
+
+static char* __cal_month_calendar_get_time_text(struct tmnode *tm, struct _priv *p)
+{
+       char buf[512];
+       char stime[512];
+
+       __cal_month_calendar_make_time_text(tm->st, &p->ad->base_tm, stime, sizeof(stime));
+
+       snprintf(buf, sizeof(buf), "%s", stime);
+
+       return strdup(buf);
+}
+
+static char* __cal_month_calendar_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+
+       const char *str;
+
+       struct tmnode *tm = data;
+       c_retvm_if(!tm->cs, NULL, "tm->cs is null");
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               str = CALENDAR_SVC_STRUCT_GET_STR(tm->cs, CAL_VALUE_TXT_SUMMARY);
+               if (str)
+                       return strdup(str);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+       }
+       else if (!CAL_STRCMP(part, "elm.text.2"))
+       {
+               str = CALENDAR_SVC_STRUCT_GET_STR(tm->cs, CAL_VALUE_TXT_LOCATION);
+               if (str)
+                       return strdup(str);
+
+               return strdup(C_("IDS_CLD_BODY_NO_LOCATION_SELECTED"));
+       }
+       else if (!CAL_STRCMP(part, "elm.text.3"))
+       {
+               int allday = CALENDAR_SVC_STRUCT_GET_INT(tm->cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+               if (allday)
+                       return strdup(C_("IDS_COM_BODY_ALL_DAY"));
+
+               struct _priv *p = CAL_UTIL_GET_PRIV_DATA(obj);
+               c_retvm_if(!p, NULL, "p is null");
+
+               return __cal_month_calendar_get_time_text(tm, p);
+       }
+
+       return NULL;
+}
+
+static int __cal_month_calendar_get_first_wday(int mday, int wday)
+{
+       return CAL_UTIL_GET_WDAY(wday - mday + 1);
+}
+
+static void __cal_month_calendar_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       struct _priv *p = data;
+
+       struct appdata *ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       if (ad->today_edj && ad->today_edj == CAL_UTIL_GET_EDJ_DATA(obj))
+               ad->today_edj = NULL;
+
+       if (p->popup) {
+               evas_object_del(p->popup);
+       }
+
+       free(p);
+
+       CAL_FN_END;
+}
+
+static inline void __cal_month_calendar_set_color(Evas_Object *ly, int pos, int wday)
+{
+       const char *p;
+
+       switch (wday) {
+       case 0: p = "sunday"; break;
+       case 6: p = "satday"; break;
+       default: p = "weekday";
+       }
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "%s,%d", p, pos);
+}
+
+static inline void __cal_month_calendar_set_disabled(Evas_Object *ly, struct _priv *p, int pos)
+{
+       struct _day *d = &p->day[pos];
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "disable,%d", pos);
+
+       d->enabled = 0;
+}
+
+static inline void __cal_month_calendar_set_enabled(Evas_Object *ly, struct _priv *p, int pos, int wday)
+{
+       struct _day *d = &p->day[pos];
+
+       if (!d->enabled) {
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "enable,%d", pos);
+
+               __cal_month_calendar_set_color(ly, pos, wday);
+               d->enabled = 1;
+       }
+}
+
+static inline void __cal_month_calendar_set_today(Evas_Object *eo, int pos)
+{
+       if (pos == -1)
+               return;
+
+       cal_util_emit_signal(eo, "today,%d", pos);
+}
+
+static inline void __cal_month_calendar_unset_today(Evas_Object *eo, int *pos)
+{
+       if (*pos == -1)
+               return;
+
+       cal_util_emit_signal(eo, "notoday,%d", *pos);
+       *pos = -1;
+}
+
+static inline void     __cal_month_calendar_set_focuse_week(struct _priv *p,Evas_Object *eo, int pos)
+{
+       if (pos == -1)
+               return;
+
+       int i = 0;
+
+       cal_util_emit_signal(eo, "today,%d", p->pos_today);
+
+       if(pos >= 0 && pos <= 6)//line 1
+       {
+               for(i=0; i<=41; i++)
+               {
+                       if(i >= 0 && i <= 6)
+                       {
+                               cal_util_emit_signal(eo, "week,%d", i);
+                               cal_util_emit_signal(eo, "uncheck,%d", i);
+                               cal_util_emit_signal(eo, "unselect,%d", i);
+                               p->base_pos_for_weekly = 0;
+                       }
+                       else
+                       {
+                               cal_util_emit_signal(eo, "noweek,%d", i);
+                               if( -1 == p->day[i].checked)
+                               {
+                                       cal_util_emit_signal(eo, "check,%d", i);
+                               }
+                       }
+               }
+       }
+       else if(pos >= 7 && pos <= 13)//line 2
+       {
+               for(i=0; i<=41; i++)
+               {
+                       if(i >= 7 && i <= 13)
+                       {
+                               cal_util_emit_signal(eo, "week,%d", i);
+                               cal_util_emit_signal(eo, "uncheck,%d", i);
+                               cal_util_emit_signal(eo, "unselect,%d", i);
+                               p->base_pos_for_weekly = 7;
+                       }
+                       else
+                       {
+                               cal_util_emit_signal(eo, "noweek,%d", i);
+                               if( -1 == p->day[i].checked)
+                               {
+                                       cal_util_emit_signal(eo, "check,%d", i);
+                               }
+                       }
+               }
+       }
+       else if(pos >= 14 && pos <= 20)//line 3
+       {
+               for(i=0; i<=41; i++)
+               {
+                       if(i >= 14 && i <= 20)
+                       {
+                               cal_util_emit_signal(eo, "week,%d", i);
+                               cal_util_emit_signal(eo, "uncheck,%d", i);
+                               cal_util_emit_signal(eo, "unselect,%d", i);
+                               p->base_pos_for_weekly = 7*2;
+                       }
+                       else
+                       {
+                               cal_util_emit_signal(eo, "noweek,%d", i);
+                               if( -1 == p->day[i].checked)
+                               {
+                                       cal_util_emit_signal(eo, "check,%d", i);
+                               }
+                       }
+               }
+       }
+       else if(pos >= 21 && pos <= 27)//line 4
+       {
+               for(i=0; i<=41; i++)
+               {
+                       if(i >= 21 && i <= 27)
+                       {
+                               cal_util_emit_signal(eo, "week,%d", i);
+                               cal_util_emit_signal(eo, "uncheck,%d", i);
+                               cal_util_emit_signal(eo, "unselect,%d", i);
+                               p->base_pos_for_weekly = 7*3;
+
+                       }
+                       else
+                       {
+                               cal_util_emit_signal(eo, "noweek,%d", i);
+
+                               if( -1 == p->day[i].checked)
+                               {
+                                       cal_util_emit_signal(eo, "check,%d", i);
+                               }
+                       }
+               }
+       }
+       else if(pos >= 28 && pos <= 34)//line 5
+       {
+               for(i=0; i<=41; i++)
+               {
+                       if(i >= 28 && i <= 34)
+                       {
+                               cal_util_emit_signal(eo, "week,%d", i);
+                               cal_util_emit_signal(eo, "uncheck,%d", i);
+                               cal_util_emit_signal(eo, "unselect,%d", i);
+                               p->base_pos_for_weekly = 7*4;
+                       }
+                       else
+                       {
+                               cal_util_emit_signal(eo, "noweek,%d", i);
+                               if( -1 == p->day[i].checked)
+                               {
+                                       cal_util_emit_signal(eo, "check,%d", i);
+                               }
+                       }
+               }
+       }
+       else if(pos >= 35 && pos <= 41)//line 6
+       {
+               for(i=0; i<=41; i++)
+               {
+                       if(i >= 35 && i <= 41)
+                       {
+                               cal_util_emit_signal(eo, "week,%d", i);
+                               cal_util_emit_signal(eo, "uncheck,%d", i);
+                               cal_util_emit_signal(eo, "unselect,%d", i);
+                               p->base_pos_for_weekly = 7*5;
+                       }
+                       else
+                       {
+                               cal_util_emit_signal(eo, "noweek,%d", i);
+                               if( -1 == p->day[i].checked)
+                               {
+                                       cal_util_emit_signal(eo, "check,%d", i);
+                               }
+                       }
+               }
+       }
+}
+
+
+static inline void __cal_month_calendar_set_selected(Evas_Object *eo, int pos)
+{
+       if (pos < 0 || pos >= 42)
+               return;
+
+       cal_util_emit_signal(eo, "select,%d", pos);
+}
+
+static inline void __cal_month_calendar_set_unselected(Evas_Object *eo, int *pos)
+{
+       if (*pos == -1)
+               return;
+
+       cal_util_emit_signal(eo, "unselect,%d", *pos);
+       *pos = -1;
+}
+
+static inline int __cal_month_calendar_get_start_day(int *st, struct tm *t, int start, int max)
+{
+       int day;
+       int prev_day;
+
+       prev_day = CAL_UTIL_GET_WDAY(__cal_month_calendar_get_first_wday(t->tm_mday, t->tm_wday) - start);
+       if (prev_day > 0) {
+               day = max - prev_day + 1;
+               *st = ST_PREV;
+       } else {
+               day = 1;
+               *st = ST_CURR;
+       }
+
+       return day;
+}
+
+static int __cal_month_calendar_update_today(Evas_Object *eo, struct _priv *p)
+{
+
+       struct appdata *ad = p->ad;
+       struct tm *t = &p->cur_tm;
+
+       CAL_ASSERT(ad);
+
+       __cal_month_calendar_unset_today(eo, &p->pos_today);
+       ad->today_edj = NULL;
+
+       if (t->tm_year == ad->today_tm.tm_year && t->tm_mon == ad->today_tm.tm_mon)
+       {
+               p->pos_today = p->pos_start + ad->today_tm.tm_mday - 1;
+               __cal_month_calendar_set_today(eo, p->pos_today);
+               ad->today_edj = eo;
+       }
+
+       return 0;
+}
+
+void cal_month_calendar_update_select(Evas_Object *ly)
+{
+       CAL_ASSERT(ly);
+       Evas_Object* eo = CAL_UTIL_GET_EDJ_DATA(ly);
+
+       struct _priv* p = CAL_UTIL_GET_PRIV_DATA(ly);
+       CAL_ASSERT(p);
+       CAL_ASSERT(p->ad);
+
+       cal_main_update_title_text(p->ad->title, CV_MONTH, &p->ad->base_tm, p->ad->wday_start);
+
+       __cal_month_calendar_set_unselected(eo, &p->pos_selected);
+       p->pos_selected = p->pos_start + p->ad->base_tm.tm_mday - 1;
+       __cal_month_calendar_set_selected(eo, p->pos_selected);
+
+       if(p->ad->is_weekly)
+       {
+               __cal_month_calendar_get_weekly_events(p);
+               __cal_month_calendar_set_focuse_week(p, eo, p->pos_selected);
+               __cal_month_calendar_signal_week(p,CAL_UTIL_GET_EDJ_DATA(p->ly));
+       }
+}
+
+static void __cal_month_calendar_get_simple_check(struct _priv *p, time_t st, time_t et, char *map, int map_sz)
+{
+       int* month;
+       int i = 0;
+       month = CALENDAR_SVC_GET_SIMPLE_CS(p->ad->acct_id, st, et);
+       if (!month)
+               return;
+
+       for (i = 0; i < cal_util_get_max_days(p->cur_tm.tm_year, p->cur_tm.tm_mon); i++)
+       {
+               if(month[i])
+                       map[i] = month[i];
+       }
+
+       free(month);
+}
+
+static void __cal_month_calendar_update_check(Evas_Object *ly, struct _priv *p)
+{
+       time_t st, et;
+       int r, i;
+       char m[42] = { 0 }; // change to bitmap??
+       int max;
+       char part[32] = {0};
+       char text[32] = {0};
+
+       r = cal_util_get_month_time_t(&p->cur_tm, &st, &et);
+       if (r == -1)
+       {
+               ERR("Invalid time conversion");
+               return;
+       }
+
+       max = cal_util_get_max_days(p->cur_tm.tm_year, p->cur_tm.tm_mon);
+
+       __cal_month_calendar_get_simple_check(p, st, et, &m[p->pos_start], max);
+
+       for (i = 0; i < 42; i++)
+       {
+               if (m[i])
+               {
+                       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "check,%d", i);
+                       p->day[i].checked = 1;
+
+                       memset(part,0x00, sizeof part);
+                       memset(text,0x00, sizeof text);
+
+                       snprintf(part,sizeof part,"db/%d/text_on_check",i);
+                       snprintf(text,sizeof text,"%d",m[i]>99?99:m[i]);
+                       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly),part,text);
+               }
+               else
+               {
+                       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "uncheck,%d", i);
+                       p->day[i].checked = 0;
+               }
+       }
+}
+
+static int __cal_month_calendar_fill_calendar(Evas_Object *ly, struct tm *t, int start)
+{
+       struct _priv *p;
+       int line = 6; // default
+       int prev_max, cur_max;
+       int day, i, st, wday;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       CAL_ASSERT(p);
+
+       p->cur_tm = *t;
+
+       prev_max = cal_util_get_max_days(t->tm_year, t->tm_mon - 1);
+       cur_max = cal_util_get_max_days(t->tm_year, t->tm_mon);
+
+       day = __cal_month_calendar_get_start_day(&st, t, start, prev_max);
+       wday = start;
+       p->pos_start = 0;
+       p->pos_end = 41;
+
+       for (i = 0; i < 42; i++)
+       {
+               cal_util_set_text(CAL_UTIL_GET_EDJ_DATA(ly), cal_util_get_part_text("db/%d/text", i), "%d", day);
+
+               switch (st)
+               {
+               case ST_PREV:
+                       __cal_month_calendar_set_disabled(ly, p, i);
+                       if (day == prev_max)
+                       {
+                               st = ST_CURR;
+                               day = 0;
+                               p->pos_start = i + 1;
+                       }
+                       break;
+
+               case ST_CURR:
+                       __cal_month_calendar_set_enabled(ly, p, i, wday);
+                       if (day == cur_max)
+                       {
+                               st = ST_NEXT;
+                               day = 0;
+                               line = (int)(i / 7) + 1;
+                               p->pos_end = i;
+                       }
+                       break;
+
+               case ST_NEXT:
+                       __cal_month_calendar_set_disabled(ly, p, i);
+                       break;
+               }
+
+               day++;
+               wday = CAL_UTIL_GET_WDAY(wday + 1);
+       }
+
+       __cal_month_calendar_update_today(CAL_UTIL_GET_EDJ_DATA(ly), p);
+
+       return line;
+}
+
+static void __cal_month_calendar_click_event_callback(struct _priv *p, Evas_Object *obj, int pos)
+{
+       CAL_ASSERT(p);
+
+       struct appdata *ad = p->ad;
+       CAL_ASSERT(ad);
+
+       if (p->pos_selected == pos) {
+               DBG("cal_cb: double clicked %d", pos);
+
+               if (p->ad->is_weekly)
+                       return;
+
+               if (p->day[pos].checked) {
+                       cal_main_change_view(p->parent, CV_DAY);
+               }
+               else    {
+                       p->ad->base_hour = -1;
+                       p->ad->cid = 0; // new
+                       cal_edit_create_view(p->ad, p->parent);
+               }
+               return;
+       }
+
+       p->cur_tm.tm_mday = pos - p->pos_start + 1;
+       ad->base_tm = p->cur_tm;
+
+       cal_month_calendar_update_select(p->month);
+       edje_object_signal_emit(obj, "changed", "prog");
+}
+
+static void __cal_month_calendar_cal_event_callback(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       struct _priv *p = data;
+       c_retm_if(!p, "p is null");
+
+       struct appdata *ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       int pos = atoi(&e[3]);
+
+       if (!strncmp(e, "up,", 3))
+       {
+               if (p->pos_down == pos)
+                       __cal_month_calendar_click_event_callback(p, obj, pos);
+
+               edje_object_signal_emit(obj, e, "prog");
+
+               return;
+       }
+
+       if (!strncmp(e, "dn,", 3))
+       {
+               p->pos_down = pos;
+
+               edje_object_signal_emit(obj, e, "prog");
+
+               return;
+       }
+}
+
+static void __cal_month_calendar_prog_event_callback(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       struct _priv *p = data;
+
+       if (!CAL_STRCMP(e, "update_today")) {
+               __cal_month_calendar_update_today(obj, p);
+               return;
+       }
+
+       if (CAL_STRCMP(e, "moved")) {
+               return;
+       }
+
+       if (p->pos_down == -1) {
+               return;
+       }
+
+       cal_util_emit_signal(obj, "up,%d", p->pos_down);
+       p->pos_down = -1;
+}
+
+static void __cal_month_calendar_set_wday_text(Evas_Object *ly, int start)
+{
+       int i;
+       struct tm t = { 0, };
+       struct _priv* p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if(!p)
+       {
+               ERR("p is null");
+               return;
+       }
+
+       t = p->ad->base_tm;
+
+       cal_util_update_tm_day(&t, t.tm_wday*(-1)+start);
+
+       if (!t.tm_wday)
+       {
+               for (i = 0; i < 7; i++) {
+                       cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(ly), cal_util_get_part_text("wday/%d/text", i), CAL_UTIL_DATE_FORMAT_2, NULL, &t);
+
+                       if (t.tm_wday == 6) {
+                               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "satday,%d", i);
+                               cal_util_update_tm_day(&t, t.tm_wday*(-1));
+                               continue;
+                       }
+
+                       if (t.tm_wday == 0)
+                               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "sunday,%d", i);
+
+                       cal_util_update_tm_day(&t, 1);
+               }
+       }
+       else
+       {
+               for (i = 0; i < 7; i++) {
+                       cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(ly), cal_util_get_part_text("wday/%d/text", i), CAL_UTIL_DATE_FORMAT_2, NULL, &t);
+
+                       if (t.tm_wday == 6)
+                       {
+                               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "satday,%d", i);
+                               cal_util_update_tm_day(&t, t.tm_wday*(-1));
+                               cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(ly), cal_util_get_part_text("wday/%d/text", ++i), CAL_UTIL_DATE_FORMAT_2, NULL, &t);
+                               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "sunday,%d", i);
+                       }
+
+                       cal_util_update_tm_day(&t, 1);
+               }
+       }
+}
+
+static gint __cal_month_calendar_events_compare(gconstpointer a,gconstpointer b)
+{
+       weekly_event *p1 = (weekly_event *)a;
+       weekly_event *p2 = (weekly_event *)b;
+
+       if (p2->start_time < p1->start_time)
+               return 1;
+       else if(p1->start_time < p2->start_time)
+               return -1;
+       else
+               return 0;
+}
+
+static void __cal_month_calendar_signal_clean(struct _priv *p,Evas_Object *eo)
+{
+       int i = 0;
+       int line = 0;
+
+       for(i=0; i<7; i++)
+       {
+               for(line=1; line<7; line++)
+               {
+                       cal_util_emit_signal(eo,"%d,%d,%d",line,0,i);
+                       cal_util_emit_signal(eo,"%d,%s,%d",line,"nocolor",i);
+               }
+       }
+
+}
+
+static int __cal_month_calendar_clean_list(struct _priv *p)
+{
+       int i = 0;
+
+       if(NULL == p)
+       {
+               return -1;
+       }
+
+       for(i=0; i<7; i++)
+       {
+               g_list_free(p->list[i]);
+               p->list[i] = NULL;
+       }
+       return 0;
+}
+
+static int __cal_month_calendar_get_week_time(struct _priv *p, int *first_day, int *last_day)
+{
+       int day = 0;
+       int today = 0;
+       int start_day = 0;
+
+       if(-1 == p->pos_selected)
+       {
+               day = p->pos_today;
+       }
+       else
+       {
+               day = p->pos_selected;
+       }
+
+       today = day - p->pos_start + 1;
+       start_day = day - (day+1)%7 +1;
+
+       if(day <= 6)
+       {
+               *first_day = 1;
+               *last_day = 6 - p->pos_start + 1;
+       }
+       else if(0 == (day+1)%7)
+       {
+               *first_day = today - 6;
+               *last_day = today;
+       }
+       else
+       {
+               *first_day = today - day%7;
+               if(start_day+6 > p->pos_end)
+               {
+                       *last_day = p->pos_end - p->pos_start + 1;
+               }
+               else
+               {
+                       *last_day = *first_day + 6;
+               }
+       }
+
+       return 0;
+}
+
+static bool __cal_month_calendar_is_last(GList** list)
+{
+       int i = 0;
+
+       if (!list)
+               return FALSE;
+
+       for (i=0; i<7; i++) {
+               if (list[i])
+                       return TRUE;
+       }
+
+       return FALSE;
+}
+
+static void __cal_month_calendar_line_arrange(GList** list,int index,const int line)
+{
+       weekly_event *temp = NULL;
+       GList *list_temp = list[index];
+
+       if (list_temp && list_temp->data) {
+               temp = list_temp->data;
+               temp->line = line;
+               temp->showed = 1;
+
+               if (0 == temp->width)
+                       temp->width = 1;
+
+               if (7 <= index + temp->width)
+                       return;
+
+               __cal_month_calendar_line_arrange(list, index + temp->width, line);
+       }
+       else {
+               if (7 <= index + 1)
+                       return;
+
+               __cal_month_calendar_line_arrange(list, index + 1, line);
+       }
+}
+
+static void __cal_month_calendar_get_next(GList** list)
+{
+       c_retm_if(!list, "list is null");
+
+       int i = 0;
+       weekly_event *temp = NULL;
+
+       for (i=0;i<7;i++) {
+
+               if (list[i] && list[i]->data) {
+
+                       temp = (weekly_event*)list[i]->data;
+
+                       if (temp->showed)
+                               list[i] = list[i]->next;
+               }
+       }
+}
+
+static int __cal_month_calendar_get_weekly_events(struct _priv *p)
+{
+       c_retvm_if(!p, -1, "p is null");
+
+       int i = 0;
+       int start_i = 0;
+       int line = 1;
+       int start_day = 0;
+       int end_day = 0;
+       int day_num = 0;
+       cal_iter *iter = NULL;
+       cal_struct *record = NULL;
+       weekly_event *event = NULL;
+       struct tm end_time = {0};
+       struct tm start_time = {0};
+       struct tm st = {0};
+       struct tm et = {0};
+       time_t ls, le;
+       int index = 0;
+
+       //clean
+       __cal_month_calendar_signal_clean(p,CAL_UTIL_GET_EDJ_DATA(p->ly));
+
+       //free the list if not NULL
+       __cal_month_calendar_clean_list(p);
+
+       //calculate the time of this week
+       __cal_month_calendar_get_week_time(p,&start_day,&end_day);
+
+       day_num = end_day - start_day + 1;
+       if (day_num < 7) {
+               if (end_day < 7)
+                       start_i = 7 - day_num;
+       }
+       else {
+               start_i = 0;
+       }
+
+       memcpy(&start_time, &p->cur_tm, sizeof(struct tm));
+       memcpy(&end_time, &p->cur_tm, sizeof(struct tm));
+
+       start_time.tm_mday = start_day;
+       start_time.tm_hour = 0;
+       start_time.tm_min = 0;
+       start_time.tm_sec = 0;
+
+       end_time.tm_mday = end_day;
+       end_time.tm_hour = 23;
+       end_time.tm_min = 59;
+       end_time.tm_sec = 59;
+
+       ls = mktime(&start_time);
+       le = mktime(&end_time);
+
+       if (CAL_SUCCESS != CALENDAR_SVC_GET_EVENT_LIST_BY_PERIOD(0,ls,le,&iter))
+               return -1;
+
+       record = CALENDAR_SVC_STRUCT_NEW("schedule");
+
+       while (CAL_SUCCESS == CALENDAR_SVC_ITER_NEXT(iter)) {
+
+               CALENDAR_SVC_ITER_GET_INFO(iter,&record);
+
+               memset(&st,0x00,sizeof(struct tm));
+               memset(&et,0x00,sizeof(struct tm));
+
+               while (CAL_SUCCESS == CALENDAR_SVC_UTIL_NEXT_VAILD_EVENT_TM(record,&start_time,&end_time,&st,&et)) {
+
+                       if (end_day < st.tm_mday)
+                               break;
+
+                       if (et.tm_mday < start_day)
+                               continue;
+
+                       if (st.tm_mday < start_day)
+                               st.tm_mday = start_day;
+
+                       if (et.tm_mday > end_day)
+                               et.tm_mday = end_day;
+
+                       //get the info
+                       event = (weekly_event*)calloc(1, sizeof(weekly_event));
+                       c_retvm_if(!event, -1, "event is null");
+
+                       event->cid = CALENDAR_SVC_STRUCT_GET_INT(record,"index");
+
+                       g_snprintf(event->title, sizeof(event->title), CALENDAR_SVC_STRUCT_GET_STR(record,"summary"));
+
+                       event->is_repeat = 1;
+                       event->start_time = mktime(&st);
+                       event->end_time = mktime(&et);
+                       event->width = et.tm_mday - st.tm_mday + 1;
+                       if (event->width < 1)
+                               event->width = 1;
+
+                       index = st.tm_mday - start_day + start_i;
+
+                       if (6 < index)
+                               index = 6;
+                       else if (index < 0)
+                               index = 0;
+
+                       p->list[index] = g_list_append(p->list[index],event);
+               }
+       }
+
+       if (record)
+               CALENDAR_SVC_STRUCT_FREE(&record);
+
+       if (iter)
+               CALENDAR_SVC_ITER_REMOVE(&iter);
+
+       for (i=start_i; i < day_num; i++) {
+               if (p->list[i])
+                       p->list[i] = g_list_sort(p->list[i], __cal_month_calendar_events_compare);
+       }
+
+       GList* list_t[7];
+
+       for (i=0; i < 7; i++)
+               list_t[i] = p->list[i];
+
+       //calculate the line of  each event
+       while (__cal_month_calendar_is_last(p->list)) {
+
+               __cal_month_calendar_line_arrange(p->list, 0, line);
+
+               line++;
+
+               if (5 < line)
+                       break;
+
+               __cal_month_calendar_get_next(p->list);
+       }
+
+       for (i=0; i < 7; i++)
+               p->list[i] = list_t[i];
+
+       //free the memory
+       if (record)
+               CALENDAR_SVC_STRUCT_FREE(&record);
+
+       return 0;
+}
+
+static void __cal_month_calendar_signal_week(struct _priv *p,Evas_Object *eo)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!eo, "eo is null");
+
+       int i = 0;
+       weekly_event *temp = NULL;
+       char text[20] = {0};
+       char *color[4] = {"green","blue","red","purple"};
+       int color_index = -1;
+       GList* list = NULL;
+
+       for (i=0; i<7; i++) {
+
+               if (!p->list[i])
+                       continue;
+
+               list = g_list_first( p->list[i]);
+               while (list && list->data) {
+                       color_index++;
+                       temp = list->data;
+
+                       cal_util_emit_signal(eo,"%d,%d,%d",temp->line,temp->width,i);
+                       if (0 == temp->is_repeat)
+                               cal_util_emit_signal(eo,"%d,%s,%d",temp->line,color[color_index%4],i);
+                       else {
+                               cal_util_emit_signal(eo,"%d,%s,%d",temp->line,color[(temp->cid)%4],i);
+                               color_index = (temp->cid)%4;
+                       }
+
+                       memset(text,0x00,sizeof(text));
+                       g_snprintf(text,sizeof(text),"%d/text/%d",temp->line,i);
+                       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(p->ly), text, temp->title);
+
+                       list = list->next;
+               }
+       }
+}
+
+static void __cal_month_calendar_mouse_down(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       struct _priv *p = data;
+       Evas_Event_Mouse_Down *ev = ei;
+       char eve[8] = {0};
+       int offset = 0;
+
+       Evas_Coord_Rectangle r;
+       cal_util_get_geometry (&r, ly);
+       offset = ev->canvas.x/(r.w/7);
+       if (6 < offset)
+               offset = 6;
+
+       p->down_x = ev->canvas.x;
+       p->down_y = ev->canvas.y;
+
+       if ( -1 == p->day[p->base_pos_for_weekly + offset].enabled) {
+               p->index_for_press = p->base_pos_for_weekly + offset;
+               snprintf(eve, sizeof(eve) , "dn,%d", p->index_for_press);
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->month), eve, "prog");
+       }
+}
+
+static void __cal_month_calendar_mouse_move(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       struct _priv *p = data;
+       char eve[8] = {0};
+
+       if( -1 != p->index_for_press)
+       {
+               snprintf(eve, sizeof(eve) , "up,%d", p->index_for_press);
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->month), eve, "prog");
+               p->index_for_press = -1;
+       }
+}
+
+static bool __cal_month_calendar_event_exists(GList** list,int index)
+{
+       int i = 0;
+       GList *list_temp = NULL;
+       weekly_event *event = NULL;
+
+       for(i=0; i<=index; i++)
+       {
+               if(NULL == list[i])
+               {
+                       continue;
+               }
+
+               list_temp = g_list_first(list[i]);
+               while(NULL != list_temp)
+               {
+                       event = list_temp->data;
+                       if(NULL == event)
+                       {
+                               list_temp = g_list_next(list_temp);
+                               continue;
+                       }
+                       if(event->width >= index - i + 1)
+                       {
+                               return TRUE;
+                       }
+                       list_temp = g_list_next(list_temp);
+               }
+       }
+
+       return FALSE;
+}
+
+static void __cal_month_calendar_genlist_item_select_callback(void *data, Evas_Object *obj, void *ei)
+{
+       struct tmnode* tm = data;
+       cal_struct *cs = tm->cs;
+       int idx;
+       Elm_Object_Item *it;
+       struct _priv *p;
+       int repeat;
+
+       it = elm_genlist_selected_item_get(obj);
+       if (it)
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       idx = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_INDEX);
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+       CAL_ASSERT(p);
+
+       repeat = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM);
+       if (repeat) {
+               memcpy(p->ad->tm, tm, sizeof(struct tmnode));
+       }
+
+       p->ad->cid = idx;
+
+       cal_detail_create_view(p->ad, p->parent);
+
+       if (p->popup)   {
+               evas_object_hide(p->popup);
+       }
+}
+
+static void __cal_month_calendar_get_events(struct _priv *p)
+{
+       time_t st, et;
+
+       cal_util_get_day_time_t(&p->ad->base_tm, &st, &et);
+
+       p->csv = CALENDAR_SVC_GET_EVENT(p->ad->acct_id, st, et);
+}
+
+static void __cal_month_calendar_update_genlist(struct _priv *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->gl, "p->gl is null");
+
+       Eina_List *l;
+       struct tmnode *tm;
+       Elm_Object_Item *it = NULL;
+       elm_genlist_clear(p->gl);
+
+       CALENDAR_SVC_FREE_CS(&p->csv);
+
+       __cal_month_calendar_get_events(p);
+       c_retm_if(!p->csv, "p->csv is null");
+
+       EINA_LIST_FOREACH(p->csv->tmlist, l, tm) {
+               if (tm) {
+                       it = elm_genlist_item_append(p->gl, &itc, tm, NULL, ELM_GENLIST_ITEM_NONE, __cal_month_calendar_genlist_item_select_callback, tm);
+                       c_retm_if(!it, "elm_genlist_item_append() returned null");
+               }
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_month_calendar_popup_delete_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+
+       struct _priv* p = data;
+
+       p->popup = NULL;
+       p->gl = NULL;
+}
+
+void __cal_month_calendar_events_of_one_weekday(void *data)
+{
+       c_retm_if(!data, "data is null");
+
+       struct _priv *p = data;
+       c_retm_if(!p->parent, "p->parent is null");
+
+       char title[1024] = {0};
+
+       cal_util_get_time_text(title, sizeof(title), CAL_UTIL_DATE_FORMAT_13, NULL, &p->ad->base_tm);
+
+       if (!p->popup) {
+               p->popup = cal_util_add_popup(p->parent, title, NULL, NULL, NULL, S_("IDS_COM_BODY_CLOSE"), NULL);
+               c_retm_if(!p->popup, "cal_util_add_popup returned null");
+
+               elm_object_style_set(p->popup,"menustyle");
+
+               evas_object_event_callback_add(p->popup, EVAS_CALLBACK_DEL, __cal_month_calendar_popup_delete_callback, p);
+       }
+
+       if (!p->gl) {
+               p->gl = elm_genlist_add(p->popup);
+               evas_object_data_set(p->gl, "priv", p);
+               evas_object_show(p->gl);
+               elm_object_content_set(p->popup, p->gl);
+       }
+
+       __cal_month_calendar_update_genlist(p);
+}
+
+static void __cal_month_calendar_mouse_up(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       struct _priv *p = data;
+       Evas_Event_Mouse_Down *ev = ei;
+       int start_day = 0;
+       int end_day = 0;
+       int num_of_enable = 0;
+       char eve[8] = {0};
+
+       if (ev->canvas.x != p->down_x && ev->canvas.y != p->down_y)
+               return;
+
+       Evas_Coord_Rectangle r;
+       cal_util_get_geometry (&r, ly);
+       int day_width = r.w/7;
+
+       __cal_month_calendar_get_week_time(p,&start_day,&end_day);
+
+       if(7 != (num_of_enable = end_day - start_day + 1))
+       {
+               if(end_day < 7)
+               {
+                       if(ev->canvas.x < (7 - num_of_enable) * day_width)
+                       {
+                               return;
+                       }
+                       start_day -= (7 - num_of_enable);
+               }
+               else if(start_day > 7)
+               {
+                       if(ev->canvas.x > num_of_enable * day_width)
+                       {
+                               return;
+                       }
+               }
+       }
+
+       if(ev->canvas.x > 0 && ev->canvas.x < 1*day_width)
+       {
+               p->ad->base_tm.tm_mday = start_day;
+
+               if(!__cal_month_calendar_event_exists(p->list,0))
+               {
+                       p->ad->base_hour = -1;
+                       p->ad->cid = 0; // new
+                       cal_edit_create_view(p->ad, p->parent);
+               }
+               else
+               {
+                       __cal_month_calendar_events_of_one_weekday(p);
+               }
+       }
+       else if(ev->canvas.x > 1*day_width && ev->canvas.x < 2*day_width)
+       {
+               p->ad->base_tm.tm_mday = start_day+1;
+               if(!__cal_month_calendar_event_exists(p->list,1))
+               {
+                       p->ad->base_hour = -1;
+                       p->ad->cid = 0; // new
+                       cal_edit_create_view(p->ad, p->parent);
+               }
+               else
+               {
+                       __cal_month_calendar_events_of_one_weekday(p);
+               }
+       }
+       else if(ev->canvas.x > 2*day_width && ev->canvas.x < 3*day_width)
+       {
+               p->ad->base_tm.tm_mday = start_day+2;
+               if(!__cal_month_calendar_event_exists(p->list,2))
+               {
+                       p->ad->base_hour = -1;
+                       p->ad->cid = 0; // new
+                       cal_edit_create_view(p->ad, p->parent);
+               }
+               else
+               {
+                       __cal_month_calendar_events_of_one_weekday(p);
+               }
+       }
+       else if(ev->canvas.x > 3*day_width && ev->canvas.x < 4*day_width)
+       {
+               p->ad->base_tm.tm_mday = start_day+3;
+               if(!__cal_month_calendar_event_exists(p->list,3))
+               {
+                       p->ad->base_hour = -1;
+                       p->ad->cid = 0; // new
+                       cal_edit_create_view(p->ad, p->parent);
+               }
+               else
+               {
+                       __cal_month_calendar_events_of_one_weekday(p);
+               }
+       }
+       else if(ev->canvas.x > 4*day_width && ev->canvas.x < 5*day_width)
+       {
+               p->ad->base_tm.tm_mday = start_day+4;
+               if(!__cal_month_calendar_event_exists(p->list,4))
+               {
+                       p->ad->base_hour = -1;
+                       p->ad->cid = 0; // new
+                       cal_edit_create_view(p->ad, p->parent);
+               }
+               else
+               {
+                       __cal_month_calendar_events_of_one_weekday(p);
+               }
+       }
+       else if(ev->canvas.x > 5*day_width && ev->canvas.x < 6*day_width)
+       {
+               p->ad->base_tm.tm_mday = start_day+5;
+               if(!__cal_month_calendar_event_exists(p->list,5))
+               {
+                       p->ad->base_hour = -1;
+                       p->ad->cid = 0; // new
+                       cal_edit_create_view(p->ad, p->parent);
+               }
+               else
+               {
+                       __cal_month_calendar_events_of_one_weekday(p);
+               }
+       }
+       else
+       {
+               p->ad->base_tm.tm_mday = start_day+6;
+               if(!__cal_month_calendar_event_exists(p->list,6))
+               {
+                       p->ad->base_hour = -1;
+                       p->ad->cid = 0; // new
+                       cal_edit_create_view(p->ad, p->parent);
+               }
+               else
+               {
+                       __cal_month_calendar_events_of_one_weekday(p);
+               }
+       }
+
+       if(-1 != p->index_for_press)
+       {
+               snprintf(eve, sizeof(eve) , "up,%d", p->index_for_press);
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->month), eve, "prog");
+               p->index_for_press = -1;
+       }
+
+}
+
+Evas_Object* cal_month_calendar_create_content(struct tm *t, struct appdata *ad,
+               Evas_Object *main, Eina_Bool tmp)
+{
+       CAL_FN_START;
+
+       struct _priv *p;
+       Evas_Object *ly;
+       time_t r;
+
+       CAL_ASSERT(ad);
+
+       r = mktime(t);
+       if (r == -1)
+               return NULL;
+
+       CAL_CALLOC(p, 1, struct _priv);
+
+       p->ad = ad;
+       p->parent = main;
+       p->pos_down = p->pos_today = p->pos_selected = -1;
+       p->pos_start = p->pos_end = -1;
+
+       if(!ad->is_weekly)
+               p->name = _name = "main/month/cal";
+       else if(ad->is_weekly)
+               p->name = _name = "main/month/cal/weekly";
+       else
+               return NULL;
+
+       ly = cal_util_add_layout(ad->nv, p->name);
+       if (!ly)
+       {
+               free(p);
+               return NULL;
+       }
+
+       p->month = ly;
+       evas_object_data_set(ly, "priv", p);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(ly), "*", "cal", __cal_month_calendar_cal_event_callback, p);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(ly), "*", "prog", __cal_month_calendar_prog_event_callback, p);
+
+       __cal_month_calendar_set_wday_text(ly, ad->wday_start);
+
+       if (tmp == EINA_TRUE)
+       {
+               p->weekline = __cal_month_calendar_fill_calendar(ly, t, ad->wday_start);
+               __cal_month_calendar_update_check(ly, p);
+       }
+
+       if (p->ad->is_weekly)
+       {
+               Evas_Object *events = cal_util_add_layout(ad->nv, "main/month/week/events");
+
+               elm_object_part_content_set(ly, "list/sw", events);
+               evas_object_event_callback_add(events, EVAS_CALLBACK_MOUSE_DOWN, __cal_month_calendar_mouse_down, p);
+               evas_object_event_callback_add(events, EVAS_CALLBACK_MOUSE_UP, __cal_month_calendar_mouse_up, p);
+               evas_object_event_callback_add(events, EVAS_CALLBACK_MOUSE_MOVE, __cal_month_calendar_mouse_move, p);
+
+               p->ly = events;
+
+               __cal_month_calendar_get_weekly_events(p);
+
+               if(-1 == p->pos_selected)
+               {
+                       __cal_month_calendar_set_focuse_week(p, CAL_UTIL_GET_EDJ_DATA(ly), p->pos_today);
+               }
+               else
+               {
+                       __cal_month_calendar_set_focuse_week(p, CAL_UTIL_GET_EDJ_DATA(ly), p->pos_selected);
+               }
+
+               __cal_month_calendar_signal_week(p,CAL_UTIL_GET_EDJ_DATA(p->ly));
+       }
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_month_calendar_delete_layout, p);
+
+       CAL_FN_END;
+
+       return ly;
+}
+
+void cal_month_update_month_calendar(Evas_Object *ly, struct tm *t)
+{
+       CAL_FN_START;
+
+       struct _priv *p;
+       struct appdata *ad;
+
+       CAL_ASSERT(ly);
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name)) {
+               ERR("update month calendar: Invalid object");
+               return;
+       }
+
+       ad = p->ad;
+       CAL_ASSERT(ad);
+
+       p->weekline = __cal_month_calendar_fill_calendar(ly, t, ad->wday_start);
+       cal_month_calendar_update_select(ly);
+       __cal_month_calendar_update_check(ly, p);
+
+       if (p->ad->is_weekly)
+       {
+               __cal_month_calendar_get_weekly_events(p);
+
+               if(-1 == p->pos_selected)
+                       __cal_month_calendar_set_focuse_week(p, CAL_UTIL_GET_EDJ_DATA(ly), p->pos_today);
+               else
+                       __cal_month_calendar_set_focuse_week(p, CAL_UTIL_GET_EDJ_DATA(ly), p->pos_selected);
+
+               __cal_month_calendar_signal_week(p,CAL_UTIL_GET_EDJ_DATA(p->ly));
+       }
+
+       CAL_FN_END;
+}
+
+int cal_month_get_weekline(Evas_Object *ly)
+{
+       struct _priv *p;
+
+       CAL_ASSERT(ly);
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name)) {
+               ERR("get weekline: Invalid object");
+               return 6;
+       }
+
+       return p->weekline;
+}
+
diff --git a/src/view-main-month.c b/src/view-main-month.c
new file mode 100755 (executable)
index 0000000..9e241b6
--- /dev/null
@@ -0,0 +1,831 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <vconf.h>
+
+#include "view.h"
+#include "detail.h"
+#include "edit-repeat.h"
+#include "external-ug.h"
+
+static const char *_name = NULL;
+
+#define MONTH_CAL_CBAR_H 41
+#define MONTH_CAL_X 0
+#define MONTH_CAL_Y 200
+
+#define ANIMATION_TIME 0.2
+
+#define INITIAL_FETCH_SIZE 4
+#define IDLER_FETCH_SIZE 4
+
+
+typedef enum{
+       FOCUS_IN_DAILY = 0,
+       FOCUS_IN_WEEKLY
+}focus_in_month_view_type;
+
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+
+       Evas_Object *month;
+       Evas_Object *month_left;
+       Evas_Object *month_right;
+       Evas_Coord_Rectangle rect;
+       Evas_Coord_Rectangle oringinal_size;
+
+       focus_in_month_view_type calendar_focus_view;
+
+       Evas_Object *gl;
+       struct calsvc *csv;
+
+       int single_moved;
+       int multi_touched;
+       Evas_Coord_Point down1, down2;
+       int down_d;
+       int down_is_called;
+
+       Evas_Coord_Point move1, move2;
+
+       Ecore_Idler *idler;
+       int event_offset;
+
+       Ecore_Animator *ani;
+       double ani_start;
+
+       Evas_Coord_Rectangle pos_from;
+       Evas_Coord_Rectangle pos_to;
+
+       int d;
+
+
+}cal_month_data;
+extern void cal_month_update_month_calendar(Evas_Object *ly, struct tm *t);
+static Evas_Object *__cal_month_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);
+static char* __cal_month_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static void __cal_month_mouse_move_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_month_update_genlist(cal_month_data *p);
+static void __cal_month_changed_callback(void *data, Evas_Object *obj, const char *e, const char *src);
+static void __cal_month_rendering_flush_callback(void *data, Evas *e, void *event_info);
+
+static Elm_Genlist_Item_Class itc = {
+       .item_style = "3text.5icon",
+       .func.content_get = __cal_month_get_genlist_item_icon,
+       .func.text_get = __cal_month_get_genlist_item_label,
+};
+
+static int is_hour24;
+static Calendar_color calendar_color;
+
+static inline void __cal_month_stop_animation(cal_month_data *p)
+{
+       if (p->ani)
+               ecore_animator_del(p->ani);
+
+       p->ani = NULL;
+}
+
+static void __cal_month_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!e, "e is null");
+
+       cal_month_data *p = data;
+
+       CALENDAR_SVC_FREE_CS(&p->csv);
+
+       __cal_month_stop_animation(p);
+
+       if (p->idler)
+               ecore_idler_del(p->idler);
+
+       evas_event_callback_del(e, EVAS_CALLBACK_RENDER_FLUSH_POST, __cal_month_rendering_flush_callback);
+
+       free(p);
+
+       DBG("");
+}
+
+static void __cal_month_resize_view(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       cal_month_data *p = data;
+
+       cal_util_get_geometry(&p->rect, p->month);
+}
+
+static void __cal_month_make_time_text(time_t t, struct tm *tm, char *buf, int sz)
+{
+       struct tm ttm;
+       const char* date;
+       const char* time;
+
+       localtime_r(&t, &ttm);
+
+       if(is_hour24)
+               time = CAL_UTIL_TIME_FORMAT_6;
+       else
+               time = CAL_UTIL_TIME_FORMAT_1;
+
+       if (ttm.tm_year != tm->tm_year)
+               date = CAL_UTIL_DATE_FORMAT_11;
+       else if (ttm.tm_mon != tm->tm_mon)
+               date = CAL_UTIL_DATE_FORMAT_10;
+       else if (ttm.tm_mday != tm->tm_mday)
+               date = CAL_UTIL_DATE_FORMAT_9;
+       else
+               date = NULL;
+
+       cal_util_get_time_text(buf, sz, NULL, time, &ttm);
+}
+
+static char* __cal_month_get_time_text(struct tmnode *tm, cal_month_data *p)
+{
+       char buf[512];
+       char stime[512];
+
+       __cal_month_make_time_text(tm->st, &p->ad->base_tm, stime, sizeof(stime));
+
+       snprintf(buf, sizeof(buf), "%s", stime);
+       return strdup(buf);
+}
+
+static Evas_Object *__cal_month_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       Evas_Object *icon = NULL;
+       struct tmnode *tm = (struct tmnode *)data;
+       int r;
+       cal_struct *cs = NULL;
+       cal_struct *calendar = NULL;
+       cal_month_data* p = NULL;
+
+       if(!tm)
+       {
+               ERR("tm is null");
+               return NULL;
+       }
+
+       cs = tm->cs;
+       if(!cs)
+       {
+               ERR("cs is null");
+               return NULL;
+       }
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+
+       if (!CAL_STRCMP(part, "elm.swallow.colorbar"))
+       {
+               r = CALENDAR_SVC_GET(CAL_STRUCT_CALENDAR, CALENDAR_SVC_STRUCT_GET_INT(cs,CAL_VALUE_INT_CALENDAR_ID), NULL, &calendar);
+               if (r != CAL_SUCCESS)
+               {
+                       ERR("CALENDAR_SVC_GET fail. %d", r);
+                       return NULL;
+               }
+
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               CALENDAR_SVC_GET_CALENDAR_COLOR(calendar, &calendar_color);
+
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+
+               CALENDAR_SVC_STRUCT_FREE(&calendar);
+
+               return icon;
+       }
+
+       return NULL;
+}
+
+static char* __cal_month_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       cal_month_data *p;
+       struct tmnode *tm = (struct tmnode *)data;
+       const char *str;
+
+       if (!tm || !tm->cs)
+               return NULL;
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               str = CALENDAR_SVC_STRUCT_GET_STR(tm->cs, CAL_VALUE_TXT_SUMMARY);
+               if (str)
+                       return strdup(str);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+       }
+       else if (!CAL_STRCMP(part, "elm.text.2"))
+       {
+               str = CALENDAR_SVC_STRUCT_GET_STR(tm->cs, CAL_VALUE_TXT_LOCATION);
+               if (str)
+                       return strdup(str);
+
+               return strdup(C_("IDS_CLD_BODY_NO_LOCATION_SELECTED"));
+       }
+       else if (!CAL_STRCMP(part, "elm.text.3"))
+       {
+               int allday = CALENDAR_SVC_STRUCT_GET_INT(tm->cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+               if (allday)
+                       return strdup(C_("IDS_COM_BODY_ALL_DAY"));
+
+               p = CAL_UTIL_GET_PRIV_DATA(obj);
+               return __cal_month_get_time_text(tm, p);
+       }
+
+       return NULL;
+}
+
+static void __cal_month_genlist_item_select_callback(void *data, Evas_Object *obj, void *ei)
+{
+       struct tmnode* tm = data;
+       cal_struct *cs = tm->cs;
+       int idx;
+       Elm_Object_Item *it;
+       cal_month_data *p;
+       int repeat;
+
+       it = elm_genlist_selected_item_get(obj);
+       if (it)
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       idx = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_INDEX);
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+       CAL_ASSERT(p);
+
+       repeat = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM);
+       if(repeat)
+       {
+               memcpy(p->ad->tm, tm, sizeof(struct tmnode));
+       }
+       p->ad->cid = idx;
+
+       cal_detail_create_view(p->ad, p->parent);
+}
+
+static void __cal_month_get_events(cal_month_data *p)
+{
+       time_t st, et;
+
+       cal_util_get_day_time_t(&p->ad->base_tm, &st, &et);
+
+       p->csv = CALENDAR_SVC_GET_EVENT(p->ad->acct_id, st, et);
+}
+
+static void __cal_month_update_genlist(cal_month_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       Evas_Object* gl;
+       Eina_List *l;
+       struct tmnode *tm;
+       int count = 0;
+
+       CALENDAR_SVC_FREE_CS(&p->csv);
+       __cal_month_get_events(p);
+
+       if (!p->csv || !p->csv->tmlist || !eina_list_count(p->csv->tmlist))
+       {
+               if (p->gl)
+                       elm_genlist_clear(p->gl);
+
+               return;
+       }
+
+       if (!p->gl)
+       {
+               gl = elm_genlist_add(p->ly);
+               if (gl)
+               {
+                       p->gl = gl;
+                       elm_object_part_content_set(p->ly, "list/sw", gl);
+                       evas_object_data_set(gl, "priv", p);
+               }
+       }
+       else
+               elm_genlist_clear(p->gl);
+
+       p->event_offset = 0;
+
+       EINA_LIST_FOREACH(p->csv->tmlist, l, tm)
+       {
+               if (tm)
+               {
+                       elm_genlist_item_append(p->gl, &itc, tm, NULL, ELM_GENLIST_ITEM_NONE, __cal_month_genlist_item_select_callback, tm);
+
+                       count ++;
+                       p->event_offset++;
+
+                       //First time, Just need to show 4 items. Another items will be add with idler
+                       if (count == INITIAL_FETCH_SIZE)
+                               return;
+               }
+       }
+}
+
+static Eina_Bool __cal_month_update_genlist_with_idler(void* data)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "data is null");
+
+       Eina_List *l, *event_list;
+       struct tmnode *tm;
+       int count = 0;
+
+       cal_month_data* p = data;
+       c_retvm_if(!p, ECORE_CALLBACK_CANCEL, "p is null");
+
+       if (!p->gl)
+       {
+               ERR("p->gl is null");
+               p->idler = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (!p->csv)
+       {
+               ERR("p->csv is null");
+               p->idler = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       event_list = eina_list_nth_list(p->csv->tmlist, p->event_offset);
+
+       EINA_LIST_FOREACH(event_list, l, tm)
+       {
+               if (tm)
+               {
+                       elm_genlist_item_append(p->gl, &itc, tm, NULL, ELM_GENLIST_ITEM_NONE, __cal_month_genlist_item_select_callback, tm);
+
+                       count ++;
+                       p->event_offset++;
+
+                       if (count == IDLER_FETCH_SIZE && p->event_offset < eina_list_count(p->csv->tmlist))
+                               return ECORE_CALLBACK_RENEW;
+               }
+       }
+
+       p->idler = NULL;
+
+       CAL_FN_END;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static Evas_Object* __cal_month_create_month_d(cal_month_data *p, int d)
+{
+       struct tm t;
+       struct appdata *ad = p->ad;
+       int r;
+
+       t = ad->base_tm;
+
+       r = cal_util_update_tm_month(&t, d);
+       if (r == -1)
+               return cal_util_add_layout(p->ly, "rect/empty");
+
+       return cal_month_calendar_create_content(&t, ad, p->parent, EINA_TRUE);
+}
+
+static void __cal_month_move_month_calendar_to_left(cal_month_data *p, Evas_Coord x)
+{
+       if (p->month_left == NULL) {
+               p->month_left = __cal_month_create_month_d(p, -1);
+               elm_object_part_content_set(p->ly, "cal/sw/left", p->month_left);
+       }
+
+       if(0 > p->oringinal_size.x)
+       {
+               evas_object_move(p->month_left, x, p->rect.y);
+       }
+       else
+       {
+               evas_object_move(p->month_left, x, p->oringinal_size.y);
+       }
+}
+
+static void __cal_month_move_month_calendar_to_right(cal_month_data *p, Evas_Coord x)
+{
+       if (p->month_right == NULL) {
+               p->month_right = __cal_month_create_month_d(p, 1);
+               elm_object_part_content_set(p->ly, "cal/sw/right", p->month_right);
+       }
+
+       if(0 > p->oringinal_size.x)
+       {
+               evas_object_move(p->month_right, x, p->rect.y);
+       }
+       else
+       {
+               evas_object_move(p->month_right, x, p->oringinal_size.y);
+       }
+
+}
+
+static void __cal_month_move_month_calendar(cal_month_data *p)
+{
+       Evas_Coord dx;
+       Evas_Coord x;
+
+       dx = p->move1.x - p->down1.x;
+       if (!p->single_moved && dx < 15 && dx > -15)
+               return;
+
+       if (!p->single_moved)
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->month), "moved", "prog");
+
+       p->single_moved = 1;
+
+       if(0 > p->oringinal_size.x)
+       {
+               x = p->rect.x + dx;
+
+               evas_object_move(p->month, x, p->rect.y);
+
+               __cal_month_move_month_calendar_to_left(p, x - p->rect.w);
+               __cal_month_move_month_calendar_to_right(p, x + p->rect.w);
+       }
+       else
+       {
+               x = p->oringinal_size.x + dx;
+
+               evas_object_move(p->month, x, p->oringinal_size.y);
+
+               __cal_month_move_month_calendar_to_left(p, x - p->oringinal_size.w);
+               __cal_month_move_month_calendar_to_right(p, x + p->oringinal_size.w);
+       }
+}
+
+static inline void __cal_month_move_objects(cal_month_data *p, Evas_Coord dx)
+{
+       CAL_ASSERT(p);
+
+       if(!dx)
+               return;
+
+       Evas_Coord x;
+
+       x = p->pos_from.x + dx;
+
+       evas_object_move(p->month, x, p->rect.y);
+
+       __cal_month_move_month_calendar_to_left(p, x - p->rect.w);
+       __cal_month_move_month_calendar_to_right(p, x + p->rect.w);
+}
+
+
+static inline int __cal_month_update_month_view(cal_month_data *p, int d)
+{
+       CAL_ASSERT(p);
+
+       int r;
+
+       r = cal_util_update_tm_month(&p->ad->base_tm, d);
+       if (r == -1)
+               return -1;
+
+       edje_object_signal_callback_del(CAL_UTIL_GET_EDJ_DATA(p->month), "changed", "prog", __cal_month_changed_callback);
+       evas_object_event_callback_del(p->month, EVAS_CALLBACK_MOUSE_MOVE, __cal_month_mouse_move_event_callback);
+
+       elm_object_part_content_unset(p->ly, "cal/sw");
+       elm_object_part_content_unset(p->ly, "cal/sw/left");
+       elm_object_part_content_unset(p->ly, "cal/sw/right");
+
+       if(d > 0)
+       {
+               evas_object_del(p->month_left);
+               p->month_left = p->month;
+               p->month = p->month_right;
+               p->month_right = __cal_month_create_month_d(p, 1);
+       }
+       else if(d < 0)
+       {
+               evas_object_del(p->month_right);
+               p->month_right = p->month;
+               p->month = p->month_left;
+               p->month_left = __cal_month_create_month_d(p, -1);
+       }
+       else
+       {
+               ERR("");
+               CAL_ASSERT(EINA_FALSE);
+       }
+
+       cal_month_calendar_update_select(p->month);
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "go,line%d", cal_month_get_weekline(p->month));
+
+       elm_object_part_content_set(p->ly, "cal/sw", p->month);
+       elm_object_part_content_set(p->ly, "cal/sw/left", p->month_left);
+       elm_object_part_content_set(p->ly, "cal/sw/right", p->month_right);
+
+       evas_object_show(p->ly);
+
+       evas_object_event_callback_add(p->month, EVAS_CALLBACK_MOUSE_MOVE, __cal_month_mouse_move_event_callback, p);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(p->month), "changed", "prog", __cal_month_changed_callback, p);
+
+       __cal_month_update_genlist(p);
+
+       return 0;
+}
+
+
+static Eina_Bool __cal_month_animation(void *data)
+{
+       cal_month_data *p = data;
+       double elapsed_t;
+       Evas_Coord dx;
+
+       elapsed_t = ecore_time_get() - p->ani_start;
+       if (elapsed_t > ANIMATION_TIME)
+               elapsed_t = ANIMATION_TIME;
+
+       dx = (p->pos_to.x - p->pos_from.x) * cal_util_nsin(elapsed_t / ANIMATION_TIME);
+       __cal_month_move_objects(p, dx);
+
+       if (elapsed_t == ANIMATION_TIME || dx == 0)
+       {
+               if (p->ani)
+               {
+                       ecore_animator_del(p->ani);
+                       p->ani = NULL;
+               }
+
+               if(p->d)
+               {
+                       __cal_month_update_month_view(p,p->d);
+               }
+
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+static inline void __cal_month_start_animation(cal_month_data *p)
+{
+       if (p->pos_from.x == p->pos_to.x)
+               return;
+
+       if (!p->ani)
+               p->ani = ecore_animator_add(__cal_month_animation, p);
+       p->ani_start = ecore_time_get();
+}
+
+
+static void __cal_month_mouse_up_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       CAL_ASSERT(data);
+       cal_month_data *p = data;
+
+       CAL_ASSERT(p->ad);
+       struct appdata* ad = p->ad;
+
+       Evas_Event_Mouse_Up *ev = ei;
+
+       p->down_is_called = 0;
+
+       if (p->single_moved)
+       {
+               int dx = p->down1.x - ev->canvas.x;
+               int d = 1;
+
+               p->single_moved = 0;
+
+               if (dx < 0) {
+                       d = -1;
+                       dx = dx * -1;
+               }
+
+               cal_util_get_geometry(&p->pos_from,p->month);
+
+
+               if (dx > (p->rect.w >> 1))
+               {
+                       if (d < 0)
+                       {
+                               p->d = -1;
+                               p->pos_to.x = p->ad->win_w;
+                               p->pos_to.y = p->pos_from.y;
+                               p->pos_to.w = p->pos_from.w;
+                               p->pos_to.h = p->pos_from.h;
+                       }
+                       else
+                       {
+                               p->d = 1;
+                               p->pos_to.x = -(p->ad->win_w);
+                               p->pos_to.y = p->pos_from.y;
+                               p->pos_to.w = p->pos_from.w;
+                               p->pos_to.h = p->pos_from.h;
+                       }
+                       __cal_month_start_animation(p);
+               }
+               else
+               {
+                       __cal_month_move_month_calendar_to_left(p, MONTH_CAL_X - ad->win_w);
+                       __cal_month_move_month_calendar_to_right(p, MONTH_CAL_X + ad->win_w);
+                       evas_object_move(p->month, MONTH_CAL_X, p->pos_from.y);
+               }
+
+               return;
+       }
+
+}
+
+static void __cal_month_mouse_down_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       cal_month_data *p = data;
+       Evas_Event_Mouse_Down *ev = ei;
+
+       p->down1.x = p->move1.x = ev->canvas.x;
+       p->down1.y = p->move1.y = ev->canvas.y;
+
+       p->down_is_called = 1;
+
+       cal_util_get_geometry(&p->oringinal_size,p->month);
+}
+
+static void __cal_month_mouse_move_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       cal_month_data *p = data;
+       Evas_Event_Mouse_Move *ev = ei;
+
+       if (0 == p->down_is_called)
+               return;
+
+       p->move1.x = ev->cur.canvas.x;
+       p->move1.y = ev->cur.canvas.y;
+
+       if (!p->multi_touched)
+               __cal_month_move_month_calendar(p);
+}
+
+static void __cal_month_changed_callback(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       __cal_month_update_genlist(data);
+}
+
+static void __cal_month_rendering_flush_callback(void *data, Evas *e, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!e, "evas is null");
+
+       evas_event_callback_del(e, EVAS_CALLBACK_RENDER_FLUSH_POST, __cal_month_rendering_flush_callback);
+
+       cal_month_data* p = data;
+
+       if (!p->gl || p->idler ||!p->csv || eina_list_count(p->csv->tmlist) == p->event_offset)
+               return;
+
+       p->idler = ecore_idler_add(__cal_month_update_genlist_with_idler, p);
+       c_retm_if(!p->idler, "p->idler is null");
+
+       CAL_FN_END;
+}
+
+Evas_Object* cal_month_create_view(struct appdata *ad, Evas_Object *main)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!ad, NULL, "ad is null");
+       c_retvm_if(!main, NULL, "main is null");
+
+       cal_month_data *p;
+       Evas_Object *ly;
+       Evas_Object *month;
+       Evas_Object *list_bg;
+
+       p = calloc(1, sizeof(cal_month_data));
+       c_retvm_if(!p, NULL, "calloc(1, sizeof(cal_month_data)) is failed");
+
+       vconf_get_int(CAL_VCONFKEY_FOCUS_VIEW, (int*)&p->calendar_focus_view);
+
+       if (FOCUS_IN_DAILY == p->calendar_focus_view)
+       {
+               ad->is_weekly = FALSE;
+               p->name = _name = "main/month";
+       }
+       else if (FOCUS_IN_WEEKLY == p->calendar_focus_view)
+       {
+               ad->is_weekly = TRUE;
+               p->name = _name = "main/month/weekly";
+       }
+       else
+               return NULL;
+
+       p->ad = ad;
+
+       is_hour24 = ad->is_hour24;
+
+       p->parent = main;
+       p->oringinal_size.x = -1;
+       p->oringinal_size.y = -1;
+       p->oringinal_size.w = -1;
+       p->oringinal_size.h = -1;
+       ly = cal_util_add_layout(ad->nv, p->name);
+       if (!ly) {
+               free(p);
+               return NULL;
+       }
+       evas_object_data_set(ly, "priv", p);
+       p->ly = ly;
+
+       month = cal_month_calendar_create_content(&ad->base_tm, ad, main, EINA_FALSE);
+       if (!month)
+       {
+               ERR("cal_month_calendar_create_content(&ad->base_tm, ad, ly, EINA_FALSE) is failed");
+               evas_object_del(ly);
+               free(p);
+               return NULL;
+       }
+
+       elm_object_part_content_set(ly, "cal/sw", month);
+       p->month = month;
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(month), "changed", "prog", __cal_month_changed_callback, p);
+
+       list_bg = cal_util_add_bg(ly, EINA_FALSE);
+       if (!list_bg)
+       {
+               ERR("cal_util_add_bg(ly, EINA_FALSE) is failed");
+               evas_object_del(ly);
+               free(p);
+               return NULL;
+       }
+
+       elm_object_part_content_set(ly, "list/base", list_bg);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_month_delete_layout, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_DOWN, __cal_month_mouse_down_event_callback, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_month_mouse_up_event_callback, p);
+       evas_object_event_callback_add(month, EVAS_CALLBACK_MOUSE_MOVE, __cal_month_mouse_move_event_callback, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_RESIZE, __cal_month_resize_view, p);
+
+       CAL_FN_END;
+
+       return ly;
+}
+
+void cal_month_update_view(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ly, "ly is null");
+
+       cal_month_data *p;
+       struct appdata *ad;
+       Evas *e;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name)) {
+               ERR("update month view: Invalid object");
+               return;
+       }
+
+       ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       cal_month_update_month_calendar(p->month, &ad->base_tm);
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "go,line%d", cal_month_get_weekline(p->month));
+
+       __cal_month_update_genlist(p);
+
+       cal_util_delete_evas_object(&p->month_left);
+       cal_util_delete_evas_object(&p->month_right);
+
+       e = evas_object_evas_get(ly);
+       c_retm_if(!e, "evas_object_evas_get(ly) is failed");
+
+       evas_event_callback_add(e, EVAS_CALLBACK_RENDER_FLUSH_POST, __cal_month_rendering_flush_callback,p);
+
+       CAL_FN_END;
+}
+
diff --git a/src/view-main-year.c b/src/view-main-year.c
new file mode 100755 (executable)
index 0000000..ac793ef
--- /dev/null
@@ -0,0 +1,894 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <Ecore_X.h>
+
+#include "view.h"
+
+#define ANIMATION_TIME 0.2
+
+typedef enum year_index {
+       CAL_YEAR_PREV_YEAR = -1,
+       CAL_YEAR_CURR_YEAR,
+       CAL_YEAR_NEXT_YEAR,
+}year_index;
+
+static const char *_name = "main/year/months";
+
+struct _year{
+       int year;
+       Evas_Object* image;
+       Evas* evas;
+       Evas_Object* edj;
+       Evas_Object* ly;
+       struct _priv* p;
+};
+
+struct _priv {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+       Evas_Object *handle_base;
+
+       struct _year* prev_year;
+       struct _year* cur_year;
+       struct _year* next_year;
+
+       Eina_Bool ignore_mouse_down; // block mouse down event during flick
+       int downed;
+       Evas_Coord_Rectangle rect;
+       Evas_Coord_Point down1,down2;
+       Evas_Coord_Point move1,move2;
+
+       int pos_selected;
+       int pos_down;
+
+       Evas_Coord_Rectangle mouse_down_position;
+       Evas_Coord_Rectangle mouse_up_position;
+       Evas_Coord_Rectangle pos_to;
+       Ecore_Animator *ani;
+       double ani_start;
+       struct tm tm_to;
+
+       char wday[8][7];//To reduce get text time
+       char month[12][32];//To reduce get text time
+
+       Ecore_Idler* idler; //To make prev & next year object
+
+       Evas_Object* edje_handle[12];
+};
+
+static char signal_source[32];
+
+static struct _year* __cal_year_create_year_object(Evas_Object* parent, struct _priv* p, enum year_index);
+static void __cal_year_delete_year_object(struct _year* y);
+static void __cal_year_mouse_up(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_year_mouse_down(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_year_mouse_move(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_year_update_select(struct _year *y, int tm_mon);
+static void __cal_year_delete_edje_handle(struct _priv* p);
+
+static inline void __cal_year_stop_animation(struct _priv *p)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       if (p->ani)
+               ecore_animator_del(p->ani);
+
+       p->ani = NULL;
+}
+
+static void __cal_year_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "Input parameter is null.");
+
+       struct _priv *p = data;
+
+       __cal_year_delete_edje_handle(p);
+
+       __cal_year_stop_animation(p);
+
+       if(p->prev_year)
+               __cal_year_delete_year_object(p->prev_year);
+       if(p->cur_year)
+               __cal_year_delete_year_object(p->cur_year);
+       if(p->next_year)
+               __cal_year_delete_year_object(p->next_year);
+
+       if(p->idler)
+               ecore_idler_del(p->idler);
+
+       free(p);
+}
+
+static void __cal_year_set_month_text(struct _year* y)
+{
+       c_retm_if(!y, "Input parameter is null.");
+
+       int i;
+       struct _priv* p = y->p;
+       c_retm_if(!p, "");
+
+
+       for (i = 0; i < 12; i++)
+               edje_object_part_text_set(y->edj, cal_util_get_part_text("mb/%d/text", i), p->month[i]);
+}
+
+static void __cal_year_make_month_text(struct _priv* p)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       int i;
+       struct tm tm;
+
+       tm = p->ad->base_tm;
+       cal_util_update_tm_month(&tm, tm.tm_mon*(-1));
+
+       for(i = 0; i < 12 ; i++)
+       {
+               cal_util_get_time_text(p->month[i], 31, CAL_UTIL_DATE_FORMAT_4, NULL, &tm);
+               cal_util_update_tm_month(&tm, 1);
+       }
+}
+
+static void __cal_year_make_wday_text(struct _priv* p)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       int i;
+       struct tm tm;
+
+       tm = p->ad->base_tm;
+       cal_util_update_tm_day(&tm, tm.tm_wday*(-1));
+
+       for(i = 0; i < 7 ; i++)
+       {
+               cal_util_get_time_text(p->wday[i], 7, CAL_UTIL_DATE_FORMAT_2, NULL, &tm);
+               cal_util_update_tm_day(&tm, 1);
+       }
+}
+
+static void __cal_year_set_wday_text(Evas_Object *month, int start)
+{
+       c_retm_if(!month, "Input parameter is null.");
+
+       int i;
+
+       struct _priv* p = CAL_UTIL_GET_PRIV_DATA(month);
+
+       for (i = 0; i < 7; i++)
+       {
+               edje_object_part_text_set(month, cal_util_get_part_text("sdh/%d/text", i), p->wday[(i+start)%7]);
+               if((i+start)%7 == 6)
+               {
+                       cal_util_emit_signal(month, "satday,%d", i);
+                       continue;
+               }
+
+               if((i+start)%7 == 0)
+                       cal_util_emit_signal(month, "sunday,%d", i);
+       }
+}
+
+static void __cal_year_update_today(Evas_Object *ly, int tm_year, int tm_mon, int tm_mday, int pos)
+{
+       c_retm_if(!ly, "Input parameter is null.");
+
+       struct _priv *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!p, "CAL_UTIL_GET_PRIV_DATA returned null.");
+
+       struct appdata *ad = p->ad;
+       c_retm_if(!ad, "p->ad is null.");
+
+       if (tm_year == ad->today_tm.tm_year && tm_mon == ad->today_tm.tm_mon && tm_mday == ad->today_tm.tm_mday)
+               cal_util_emit_signal(ly, "today,%d", pos-1);
+}
+
+
+static void __cal_year_fill_month(Evas_Object *month, int tm_year, int tm_mon, int *first_wday, int start_wday)
+{
+       c_retm_if(!month, "Input parameter is null.");
+
+       int i, day, wday;
+       int max;
+
+       wday = *first_wday;
+       max = CAL_UTIL_GET_WDAY(wday - start_wday);
+
+       for (i = 0; i < max; i++)
+       {
+               cal_util_set_text(month, cal_util_get_part_text("sdb/%d/text", i), "");
+       }
+
+       day = 1;
+       max = i + cal_util_get_max_days(tm_year, tm_mon);
+       for (; i < max; i++)
+       {
+               cal_util_set_text(month, cal_util_get_part_text("sdb/%d/text", i), "%d", day);
+
+               if (wday == 6)
+                       cal_util_emit_signal(month, "satday,%d", i);
+               else if (wday == 0)
+                       cal_util_emit_signal(month, "sunday,%d", i);
+
+               wday = CAL_UTIL_GET_WDAY(wday + 1);
+
+               __cal_year_update_today(month, tm_year, tm_mon, day-1, i);
+
+               day++;
+       }
+
+       for (; i < 42; i++)
+       {
+               cal_util_set_text(month, cal_util_get_part_text("sdb/%d/text", i), "");
+       }
+
+       *first_wday = wday;
+}
+
+static Evas_Object* __cal_year_create_month(struct _year *y, int tm_mon, int *wday, int start)
+{
+       c_retvm_if(!y, NULL, "Input parameter is null.");
+
+       Evas_Object *month;
+
+       month = edje_object_add(y->evas);
+
+       if(cal_util_black_theme_check()){
+               edje_object_file_set(month, EDJ_FILE, "main/year/cal");
+       }
+       else{
+               edje_object_file_set(month, EDJ_FILE_WHITE, "main/year/cal");
+       }
+
+       evas_object_data_set(month,"priv",y->p);
+
+       __cal_year_set_wday_text(month, start);
+       __cal_year_fill_month(month, y->year, tm_mon, wday, start);
+
+       return month;
+}
+
+static int __cal_year_get_first_wday(int tm_year)
+{
+       struct tm tm;
+       time_t t;
+
+       t = time(NULL);
+       localtime_r(&t, &tm);
+
+       tm.tm_year = tm_year;
+       tm.tm_mon = 0;
+       tm.tm_mday = 1;
+
+       t = mktime(&tm);
+       c_retvm_if(t == -1, 0, "mktime() returned -1.");
+
+       return tm.tm_wday;
+}
+
+static void __cal_year_fill_months(struct _year* y)
+{
+       c_retm_if(!y, "Input parameter is null.");
+
+       int i;
+       Evas_Object *month;
+       int first_wday;
+       struct _priv* p = y->p;
+
+       first_wday = __cal_year_get_first_wday(y->year);
+
+       __cal_year_make_wday_text(p);
+
+       for (i = 0; i < 12; i++)
+       {
+               month = __cal_year_create_month(y, i, &first_wday, p->ad->wday_start);
+               c_retm_if(!month, "");
+
+               edje_object_part_swallow(y->edj, cal_util_get_part_text("mb/%d/sw", i), month);
+
+               evas_object_data_set(y->ly, cal_util_get_part_text("mb/%d/sw", i), month);
+       }
+}
+
+static inline void __cal_year_move_year_objects(struct _priv *p, Evas_Coord x)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       if (x < 0)
+       {
+               evas_object_move(p->cur_year->image, x, p->rect.y);
+
+               if (!p->next_year)
+               {
+                       p->next_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_NEXT_YEAR);
+                       c_retm_if(!p->next_year, "__cal_year_create_year_object(p->ly, p, CAL_YEAR_NEXT_YEAR) returned null");
+               }
+               evas_object_move(p->next_year->image, x + p->rect.w, p->rect.y);
+       }
+       else
+       {
+               evas_object_move(p->cur_year->image, x, p->rect.y);
+
+               if (!p->prev_year)
+               {
+                       p->prev_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_PREV_YEAR);
+                       c_retm_if(!p->prev_year, "__cal_year_create_year_object(p->ly, p, CAL_YEAR_PREV_YEAR) returned null");
+               }
+               evas_object_move(p->prev_year->image, x -p->rect.w, p->rect.y);
+       }
+
+       evas_object_move(p->handle_base, x, p->rect.y);
+}
+
+static void __cal_year_image_object_mouse_down_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       struct _priv *p = data;
+       struct _year *y = p->cur_year;
+
+       int index = (int)evas_object_data_get(obj, "index");
+
+       snprintf(signal_source, 31, "mb/%d/base", index);
+       edje_object_signal_emit(y->edj, "mouse,down,1", signal_source);
+
+       p->pos_down = index;
+}
+
+static void __cal_year_image_object_mouse_up_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       struct _priv *p = data;
+       struct _year *y = p->cur_year;
+       struct appdata* ad = p->ad;
+
+       snprintf(signal_source, 31, "mb/%d/base", p->pos_down);
+       edje_object_signal_emit(y->edj, "mouse,up,1", signal_source);
+
+       if (p->ignore_mouse_down)
+       {
+               p->ignore_mouse_down = EINA_FALSE;
+               return;
+       }
+
+       cal_util_update_tm_month(&ad->base_tm, p->pos_down - ad->base_tm.tm_mon);
+
+       if (p->pos_down != p->pos_selected)
+       {
+               cal_util_emit_signal(y->edj, "unselect,%d", p->pos_selected);
+
+               cal_util_emit_signal(y->edj, "select,%d", p->pos_down);
+
+               p->pos_selected = p->pos_down;
+       }
+       else
+       {
+               cal_main_change_view(p->parent, CV_MONTH);
+       }
+}
+
+static void __cal_year_delete_edje_handle(struct _priv* p)
+{
+       c_retm_if(!p, "p is null.");
+
+       int i = 0;
+
+       for (i = 0 ; i < 12 ; i++)
+       {
+               c_retm_if(!p->edje_handle[i], "p->edje_handle[%d] is null.", i);
+
+               evas_object_event_callback_del(p->edje_handle[i], EVAS_CALLBACK_MOUSE_DOWN, __cal_year_image_object_mouse_down_callback);
+               evas_object_event_callback_del(p->edje_handle[i], EVAS_CALLBACK_MOUSE_UP, __cal_year_image_object_mouse_up_callback);
+
+               evas_object_del(p->edje_handle[i]);
+       }
+
+       c_retm_if(!p->handle_base, "p->handle_base is null.");
+       evas_object_del(p->handle_base);
+}
+
+static inline int __cal_year_update_view(struct _priv *p)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!p, -1, "Input parameter is null.");
+       c_retvm_if(!p->ad, -1, "p->ad is null.");
+
+       struct appdata* ad = p->ad;
+
+       int d = p->tm_to.tm_year - p->ad->base_tm.tm_year;
+
+       ad->base_tm = p->tm_to;
+
+       cal_util_emit_signal(p->cur_year->edj, "unselect,%d", p->pos_selected);
+
+       elm_object_part_content_unset(p->ly, "content");
+       elm_object_part_content_unset(p->ly, "content/left");
+       elm_object_part_content_unset(p->ly, "content/right");
+
+       if(d > 0)
+       {
+               if(p->prev_year)
+                       __cal_year_delete_year_object(p->prev_year);
+
+               p->prev_year = p->cur_year;
+               p->cur_year = p->next_year;
+               p->next_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_NEXT_YEAR);
+       }
+       else if( d < 0)
+       {
+               if(p->next_year)
+                       __cal_year_delete_year_object(p->next_year);
+
+               p->next_year = p->cur_year;
+               p->cur_year = p->prev_year;
+               p->prev_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_PREV_YEAR);
+       }
+
+       elm_object_part_content_set(p->ly, "content", p->cur_year->image);
+       elm_object_part_content_set(p->ly, "content/left", p->prev_year->image);
+       elm_object_part_content_set(p->ly, "content/right", p->next_year->image);
+
+       cal_main_update_title_text(ad->title, CV_YEAR, &ad->base_tm, ad->wday_start);
+
+       __cal_year_update_select(p->cur_year, ad->base_tm.tm_mon);
+
+       __cal_year_move_year_objects(p, 0);
+
+       if (p->ignore_mouse_down)
+               p->ignore_mouse_down = EINA_FALSE;
+
+       return 0;
+}
+
+static Eina_Bool __cal_year_animation(void *data, double pos)
+{
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "Input parameter is null.");
+
+       struct _priv *p = data;
+       Evas_Coord dx;
+
+       dx = (p->mouse_up_position.x - p->pos_to.x) * cal_util_nsin(1.0 - pos);
+       __cal_year_move_year_objects(p, p->pos_to.x + dx);
+
+       if ((dx + p->pos_to.x)%p->ad->win_w == 0)
+       {
+               p->ani = NULL;
+               __cal_year_update_view(p);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+static inline void __cal_year_start_animation(struct _priv *p)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       if (p->mouse_up_position.x == p->pos_to.x)
+               return;
+
+       if (!p->ani)
+               p->ani = ecore_animator_timeline_add(ANIMATION_TIME, __cal_year_animation, p);
+
+       p->ani_start = ecore_time_get();
+}
+
+static void inline __cal_year_set_go(struct _priv *p, int d)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       int r = 0;
+
+       p->tm_to = p->ad->base_tm;
+       p->pos_to = p->rect;
+
+       if(d != 0)
+               r = cal_util_update_tm_year(&p->tm_to, d);
+       if (r == -1)
+               return;
+
+       p->pos_to.x = p->rect.w * (d * -1);
+}
+
+static void __cal_year_mouse_up(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       Evas_Event_Mouse_Up *ev = ei;
+       struct _priv *p = data;
+
+       if (!p->downed)
+               return;
+
+       p->downed = 0;
+
+       cal_util_get_geometry(&p->mouse_up_position, p->cur_year->image);
+
+       if (p->mouse_up_position.x > (p->rect.w >> 2))
+               __cal_year_set_go(p, -1);
+       else if (p->mouse_up_position.x < (p->rect.w >> 2) * -1)
+               __cal_year_set_go(p, 1);
+       else
+       {
+               Evas_Coord x = ev->canvas.x - p->down1.x;
+
+               if (x < 3 && x > -3 && p->mouse_up_position.x ==0)
+                       return;
+
+               __cal_year_set_go(p, 0);
+       }
+
+       __cal_year_start_animation(p);
+}
+
+static void __cal_year_mouse_move(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       struct _priv *p = data;
+
+       Evas_Event_Mouse_Move *ev = ei;
+       Evas_Coord x;
+       static int cnt = 0;
+
+       if (!p->downed)
+               return;
+
+       cnt++;
+       if ((cnt & 0x7) != 0) // Workaround
+               return;
+
+       p->move2.x = ev->cur.canvas.x;
+       p->move2.y = ev->cur.canvas.y;
+
+       x = p->mouse_down_position.x + p->move2.x - p->down1.x;
+
+       __cal_year_move_year_objects(p, x);
+
+       p->ignore_mouse_down = EINA_TRUE;
+}
+
+static void __cal_year_mouse_down(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       struct _priv *p = data;
+       struct _year *y = p->cur_year;
+
+       Evas_Event_Mouse_Down *ev = ei;
+
+       p->down1.x = p->move1.x = ev->canvas.x;
+       p->down1.y = p->move1.y = ev->canvas.y;
+
+       cal_util_get_geometry(&p->mouse_down_position, y->image);
+
+       __cal_year_stop_animation(p);
+
+       p->downed = 1;
+}
+
+static void __cal_year_update_select(struct _year *y, int tm_mon)
+{
+       c_retm_if(!y, "Input parameter is null.");
+
+       struct _priv* p = y->p;
+
+       if (p->pos_selected != -1)
+               cal_util_emit_signal(y->edj, "unselect,%d", p->pos_selected);
+
+       cal_util_emit_signal(y->edj, "select,%d", tm_mon);
+
+       p->pos_selected = tm_mon;
+}
+
+static Evas_Object *__cal_year_create_image(Evas_Object *parent)
+{
+       c_retvm_if(!parent, NULL, "Input parameter is null.");
+
+       Evas_Object *img;
+       Evas *e;
+       Ecore_Evas *ee;
+       Evas_Coord w, h;
+
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+
+       e = evas_object_evas_get(parent);
+       ee = ecore_evas_ecore_evas_get(e);
+
+       img = ecore_evas_object_image_new(ee);
+       if (!img)
+               return NULL;
+
+       evas_object_image_alpha_set(img, EINA_TRUE);
+       evas_object_image_size_set(img, w, h);
+       evas_object_image_fill_set(img, 0, 0, w, h);
+
+       evas_object_show(img);
+
+       return img;
+}
+
+static Evas_Object *__cal_year_add_edje(Evas *e, const char *grp, Evas_Coord w, Evas_Coord h)
+{
+       c_retvm_if(!e, NULL, "Input parameter is null.");
+
+       Evas_Object *eo;
+       Eina_Bool r;
+
+       eo = edje_object_add(e);
+       if (!eo)
+               return NULL;
+
+       if(cal_util_black_theme_check()){
+               r = edje_object_file_set(eo, EDJ_FILE, grp);
+       }
+       else{
+               r = edje_object_file_set(eo, EDJ_FILE_WHITE, grp);
+       }
+
+       if (!r)
+       {
+               evas_object_del(eo);
+               return NULL;
+       }
+
+       evas_object_freeze_events_set(eo, EINA_TRUE);
+
+       evas_object_resize(eo, w, h);
+       evas_object_move(eo, 0, 0);
+       evas_object_show(eo);
+
+       return eo;
+}
+
+static void __cal_year_image_object_resize_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       struct _year *y = data;
+       c_retm_if(!y->edj, "y->edj is null.");
+       c_retm_if(!y->p, "y->p is null.");
+
+       struct _priv *p = y->p;
+
+       cal_util_get_geometry(&p->rect, obj);
+
+       evas_object_resize(y->edj, p->rect.w, p->rect.h);
+       evas_object_move(y->edj, 0, 0);
+}
+
+static void __cal_year_image_object_move_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       struct _year *y = data;
+
+       evas_object_move(y->edj, 0, 0);
+}
+
+static void __cal_year_delete_year_object(struct _year* y)
+{
+       CAL_FN_START;
+
+       c_retm_if(!y, "Input parameter is null.");
+
+       evas_object_del(y->image);
+       evas_object_del(y->edj);
+
+       free(y);
+}
+
+static struct _year* __cal_year_create_year_object(Evas_Object* ly, struct _priv* p, enum year_index year)
+{
+       c_retvm_if(!ly, NULL, "Input parameter is null.");
+       c_retvm_if(!p, NULL, "Input parameter is null.");
+       c_retvm_if(!p->ad, NULL, "p->ad is null.");
+
+       struct appdata* ad = p->ad;
+       struct _year* y = NULL;
+
+       CAL_CALLOC(y, 1, struct _year);
+
+       y->image = __cal_year_create_image(ly);
+
+       y->evas = ecore_evas_object_evas_get(y->image);
+
+       y->edj = __cal_year_add_edje(y->evas, "main/year/months", p->rect.w, p->rect.h);
+
+       y->p = p;
+
+       if(year > 0)
+               elm_object_part_content_set(ly, "content/right", y->image);
+       else if( year < 0)
+               elm_object_part_content_set(ly, "content/left", y->image);
+       else
+               elm_object_part_content_set(ly, "content", y->image);
+
+       y->ly = ly;
+       y->year = ad->base_tm.tm_year + year;
+
+       evas_object_event_callback_add(y->image, EVAS_CALLBACK_RESIZE, __cal_year_image_object_resize_callback, y);
+       evas_object_event_callback_add(y->image, EVAS_CALLBACK_MOVE, __cal_year_image_object_move_callback, y);
+
+       __cal_year_set_month_text(y);
+       __cal_year_fill_months(y);
+
+       return y;
+}
+
+static void __cal_year_create_edje_handle(struct _priv* p)
+{
+       c_retm_if(!p, "p is null.");
+
+       Evas * e = evas_object_evas_get(p->ly);
+       int i = 0;
+       Evas_Object *ly = NULL;
+       Evas_Object *handle = NULL;
+       char part[16];
+
+       ly = cal_util_add_layout(p->ly, "year/edje/handle");
+       c_retm_if(!ly, "ly is null.");
+
+       for (i = 0 ; i < 12 ; i++)
+       {
+               handle = evas_object_rectangle_add(e);
+               c_retm_if(!handle, "evas_object_rectangle_add returned null.");
+
+               evas_object_color_set(handle, 0, 0, 0, 0);
+               evas_object_data_set(handle, "index", (void*)i);
+               snprintf(part, sizeof(part), "handle/%d/sw", i);
+               elm_object_part_content_set(ly, part, handle);
+
+               evas_object_event_callback_add(handle, EVAS_CALLBACK_MOUSE_DOWN, __cal_year_image_object_mouse_down_callback, p);
+               evas_object_event_callback_add(handle, EVAS_CALLBACK_MOUSE_UP, __cal_year_image_object_mouse_up_callback, p);
+
+               p->edje_handle[i] = handle;
+       }
+
+       elm_object_part_content_set(p->ly, "edje/handle", ly);
+
+       p->handle_base = ly;
+
+}
+Evas_Object* cal_year_create_view(struct appdata *ad, Evas_Object *main)
+{
+       c_retvm_if(!ad, NULL, "Input parameter is null.");
+       c_retvm_if(!main, NULL, "Input parameter is null.");
+
+       struct _priv *p;
+       Evas_Object* ly = NULL;
+
+       CAL_CALLOC(p, 1, struct _priv);
+
+       p->name = _name;
+       p->ad = ad;
+       p->parent = main;
+
+       edje_object_part_geometry_get(CAL_UTIL_GET_EDJ_DATA(ad->main), "cont", NULL, NULL, &p->rect.w, &p->rect.h);
+
+       memset(p->wday, 0, 8*7);
+       memset(p->month, 0, 32*12);
+
+       __cal_year_make_month_text(p);
+
+       ly = cal_util_add_layout(p->ad->nv, "year/layout");
+       if (!ly)
+       {
+               free(p);
+               return NULL;
+       }
+
+       evas_object_data_set(ly, "priv", p);
+       p->ly = ly;
+
+       p->pos_selected = -1;
+
+       __cal_year_create_edje_handle(p);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_year_delete_layout, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_DOWN, __cal_year_mouse_down, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_year_mouse_up, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_MOVE, __cal_year_mouse_move, p);
+
+       return p->ly;
+}
+
+static Eina_Bool __cal_year_create_year_with_idler(void* data)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "Input param is null.");
+
+       struct _priv* p = data;
+
+       c_retvm_if(!p->ad, ECORE_CALLBACK_CANCEL, "p->ad is null.");
+
+       if(p->prev_year)
+               __cal_year_delete_year_object(p->prev_year);
+
+       p->prev_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_PREV_YEAR);
+       c_retvm_if(!p->prev_year, ECORE_CALLBACK_CANCEL, "__cal_year_create_year_object returned null.");
+
+       if(p->next_year)
+               __cal_year_delete_year_object(p->next_year);
+
+       p->next_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_NEXT_YEAR);
+       c_retvm_if(!p->next_year, ECORE_CALLBACK_CANCEL, "__cal_year_create_year_object returned null.");
+
+       p->idler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_year_update_current_year(struct _priv* p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "Input parameter is null.");
+
+       p->cur_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_CURR_YEAR);
+       c_retm_if(!p->cur_year, "__cal_year_create_year_object returned null.");
+
+       elm_object_part_content_set(p->ly, "content", p->cur_year->image);
+}
+
+void cal_year_update_view(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ly, "Input parameter is null.");
+
+       struct _priv *p;
+       struct appdata *ad;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name))
+       {
+               ERR("update year view: Invalid object");
+               return;
+       }
+
+       ad = p->ad;
+       c_retm_if(!ad, "p->ad is null.");
+
+       __cal_year_update_current_year(p);
+
+       if(p->idler)
+       {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       p->idler = ecore_idler_add(__cal_year_create_year_with_idler, (void*)p);
+
+       __cal_year_update_select(p->cur_year, ad->base_tm.tm_mon);
+}
+
diff --git a/src/view-main.c b/src/view-main.c
new file mode 100755 (executable)
index 0000000..17e316e
--- /dev/null
@@ -0,0 +1,682 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <vconf.h>
+
+#include "view.h"
+
+static const char *_name = "main";
+
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *ly; // self
+       enum cld_view cur_view;
+
+       Evas_Object *content;
+       Evas_Object *tab; /* tab layout */
+       Evas_Object *title; /* title layout */
+
+       Ecore_Timer *down_timer;
+       double intval, intval_init;
+       int delta;
+}cal_main_data;
+
+struct _tabbar_item {
+       enum cld_view view;
+       const char *msgid;
+       const char *title;
+       Evas_Object* (*create)(struct appdata *ad, Evas_Object *ly);
+       void (*update)(Evas_Object *ly);
+       Elm_Object_Item *item;
+};
+
+
+static struct _tabbar_item tabbar_items[] = {
+       [CV_YEAR] = {
+               CV_YEAR,
+               NULL,
+               N_(CAL_UTIL_DATE_FORMAT_5),
+               cal_year_create_view,
+               cal_year_update_view,
+               NULL,
+       },
+       [CV_MONTH] = {
+               CV_MONTH,
+               NULL,
+               N_(CAL_UTIL_DATE_FORMAT_15),
+               cal_month_create_view,
+               cal_month_update_view,
+               NULL,
+       },
+       [CV_DAY] = {
+               CV_DAY,
+               NULL,
+               N_(CAL_UTIL_DATE_FORMAT_7),
+               cal_day_create_view,
+               cal_day_update_view,
+               NULL,
+       },
+       [CV_LIST] = {
+               CV_LIST,
+               NULL,
+               NULL,
+               cal_list_create_view,
+               cal_list_update_view,
+               NULL,
+       },
+};
+
+static void __cal_main_new_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *ly = data;
+       cal_main_data *main_data;
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!main_data, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       main_data->ad->base_hour = -1;
+       main_data->ad->cid = 0;
+
+       cal_edit_create_view(main_data->ad, main_data->ly);
+}
+
+static void __cal_main_delete_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *ly = data;
+       Evas_Object *ly_delete = NULL;
+       cal_main_data *main_data;
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!main_data, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       ly_delete = cal_list_delete_view_create(main_data->ly,main_data->ad);
+       c_retm_if(!ly_delete, "ly_delete is null");
+       cal_list_delete_update_view(ly_delete);
+
+}
+
+
+static void __cal_main_account_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *ly = data;
+       cal_main_data *main_data;
+
+       main_data= CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!main_data, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       cal_account_create_view(main_data->ad, ly);
+}
+
+void cal_main_update_title_text(Evas_Object *title, enum cld_view v, struct tm *t, int week_start)
+{
+       c_retm_if(!title, "title is null");
+       c_retm_if(!t, "t is null");
+
+       if (tabbar_items[v].title)
+               cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(title), "title/text", _(tabbar_items[v].title), NULL, t);
+}
+
+static inline void __cal_main_update_title(Evas_Object *ly, enum cld_view v)
+{
+       c_retm_if(!ly, "ly is null");
+       struct appdata *ad;
+       cal_main_data *main_data;
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!main_data|| strcmp(main_data->name, _name), "Invaild Object");
+
+       ad = main_data->ad;
+       c_retm_if(!ad, "p->ad is null");
+
+       if (tabbar_items[v].title) {
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), "show,title", "prog");
+       } else {
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), "hide,title", "prog");
+       }
+}
+
+static void __cal_main_tabbar_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       struct appdata *ad = data;
+       c_retm_if(!ad->main, "ad->main is null");
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(ad->main);
+       c_retm_if(!main_data, "main_data is null");
+
+       Elm_Object_Item *selected_item = NULL;
+       int i = 0;
+
+       selected_item = elm_segment_control_item_selected_get(obj);
+       c_retm_if(!selected_item, "elm_toolbar_selected_item_get returned null");
+
+       for (i = 0; i < sizeof(tabbar_items)/sizeof(tabbar_items[0]); i++) {
+               if (tabbar_items[i].item == selected_item) {
+
+                       cal_main_change_view(ad->main, i);
+                       return;
+               }
+       }
+}
+
+static void __cal_main_init_navi_title()
+{
+       tabbar_items[CV_YEAR].msgid = C_("IDS_CLD_BODY_YEAR");
+       tabbar_items[CV_MONTH].msgid = C_("IDS_CLD_BODY_VIEWBY_MONTH");
+       tabbar_items[CV_DAY].msgid = C_("IDS_CLD_BODY_DAY");
+       tabbar_items[CV_LIST].msgid = C_("IDS_CLD_BODY_LIST");
+}
+
+static void __cal_main_add_tabbar(struct appdata *ad)
+{
+       c_retm_if(!ad, "ad is null");
+       c_retm_if(!ad->main, "ad->main is null");
+
+       Evas_Object *tabbar = elm_segment_control_add(ad->main);
+       c_retm_if(!tabbar, "tabbar is null");
+
+       elm_object_style_set(tabbar, "body_style");
+
+       ad->tabbar = tabbar;
+
+       tabbar_items[CV_MONTH].item = elm_segment_control_item_add(tabbar, NULL, tabbar_items[CV_MONTH].msgid);
+       c_retm_if(!tabbar_items[CV_MONTH].item, "elm_segment_control_item_add returned null");
+
+       tabbar_items[CV_YEAR].item = elm_segment_control_item_insert_at(tabbar, NULL, tabbar_items[CV_YEAR].msgid, 0);
+       c_retm_if(!tabbar_items[CV_YEAR].item, "elm_segment_control_item_add returned null");
+
+       tabbar_items[CV_DAY].item = elm_segment_control_item_add(tabbar, NULL, tabbar_items[CV_DAY].msgid);
+       c_retm_if(!tabbar_items[CV_DAY].item, "elm_segment_control_item_add returned null");
+
+       tabbar_items[CV_LIST].item = elm_segment_control_item_add(tabbar, NULL, tabbar_items[CV_LIST].msgid);
+       c_retm_if(!tabbar_items[CV_LIST].item, "elm_segment_control_item_add returned null");
+
+       elm_segment_control_item_selected_set( tabbar_items[CV_MONTH].item, EINA_TRUE);
+
+       evas_object_smart_callback_add(tabbar, "changed", __cal_main_tabbar_changed_callback, ad);
+
+       elm_object_item_part_content_set(ad->main_navi_item, "segment3", tabbar);
+}
+
+static void __cal_main_create_content(Evas_Object *ly, cal_main_data *main_data, enum cld_view v)
+{
+       c_retm_if(!ly, "ly is null");
+       c_retm_if(!main_data, "main_data is null");
+
+
+       struct appdata *ad = main_data->ad;
+
+       cal_util_delete_evas_object(&main_data->content);
+
+       if (tabbar_items[v].create)
+               main_data->content = tabbar_items[v].create(ad, ly);
+
+       if (!main_data->content) {
+               ERR("load layout error");
+               return;
+       }
+
+       elm_object_part_content_set(ly, "cont", main_data->content);
+}
+
+static inline int __cal_main_update_tm(struct tm *t, enum cld_view v, int delta)
+{
+       c_retvm_if(!t, -1, "t is null");
+
+       int r;
+
+       switch (v) {
+       case CV_YEAR:
+               r = cal_util_update_tm_year(t, delta);
+               break;
+       case CV_MONTH:
+               r = cal_util_update_tm_month(t, delta);
+               break;
+       case CV_DAY:
+               r = cal_util_update_tm_day(t, delta);
+               break;
+       case CV_LIST:
+               r = 0;
+               break;
+       default:
+               r = -1; // stop timer
+       }
+
+       return r;
+}
+
+static int __cal_main_update_content(cal_main_data *main_data)
+{
+       c_retvm_if(!main_data, -1, "main_data is null");
+
+       struct appdata *ad;
+       enum cld_view v;
+       struct tm tmp;
+       int r;
+
+       ad = main_data->ad;
+       c_retvm_if(!ad, -1, "ad is null");
+
+       v = main_data->cur_view;
+
+       tmp = ad->base_tm;
+       r = __cal_main_update_tm(&tmp, v, main_data->delta);
+       if (r == -1) {
+               DBG("Time out of range");
+               return -1;
+       }
+       ad->base_tm = tmp;
+
+       cal_main_update_title_text(main_data->title, v, &ad->base_tm, ad->wday_start);
+
+       if (tabbar_items[v].update)
+               tabbar_items[v].update(main_data->content);
+
+       ad->is_update_view = EINA_FALSE;
+
+       return 0;
+}
+
+static Eina_Bool __cal_main_update_content_by_timer(void *data)
+{
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "data is null");
+
+       cal_main_data *main_data;
+       int r;
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(data);
+       c_retvm_if(!main_data, ECORE_CALLBACK_CANCEL, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       r = __cal_main_update_content(main_data);
+       if (r == -1) {
+               main_data->down_timer = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       main_data->intval = main_data->intval / 1.05;
+       ecore_timer_interval_set(main_data->down_timer, main_data->intval);
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+void cal_main_change_view(Evas_Object *ly, enum cld_view v)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ly, "Input parameter is null");
+       c_retm_if(v < CV_YEAR || v > CV_LIST, "Invaild view index");
+
+       struct appdata *ad;
+       cal_main_data *main_data;
+       Elm_Object_Item * it;
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!main_data|| strcmp(main_data->name, _name), "Invaild Object");
+
+       if (main_data->cur_view == v)
+               return;
+
+       ad = main_data->ad;
+       c_retm_if(!ad, "p->ad is null");
+       __cal_main_create_content(ly, main_data, v);
+       __cal_main_update_title(ly, v);
+
+       if (v == CV_LIST) {
+               if (ad->bt_delete == NULL) {
+                       it = elm_toolbar_last_item_get(ad->cbar);
+                       ad->bt_delete = elm_toolbar_item_insert_before(ad->cbar, it, NULL, S_("IDS_COM_BODY_DELETE"), __cal_main_delete_button_callback,ad->main);
+               }
+       } else {
+               if (ad->bt_delete != NULL) {
+                       elm_object_item_del(ad->bt_delete);
+                       ad->bt_delete = NULL;
+               }
+       }
+
+       main_data->cur_view = v;
+
+       __cal_main_update_content(main_data);
+
+       if (ad->tabbar)
+               elm_segment_control_item_selected_set( tabbar_items[v].item, EINA_TRUE);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_set_base_tm(Evas_Object *ly)
+{
+       c_retm_if(!ly, "ly is null");
+
+       cal_main_data *main_data;
+       struct appdata *ad;
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!main_data, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       ad = main_data->ad;
+       c_retm_if(!ad, "ad is null");
+
+       if(main_data->cur_view == CV_LIST)
+       {
+               cal_list_scroll_today(ad);
+               return;
+       }
+
+       if(ad->base_tm.tm_year == ad->today_tm.tm_year)
+               if(ad->base_tm.tm_mon == ad->today_tm.tm_mon)
+                       if(ad->base_tm.tm_mday == ad->today_tm.tm_mday)
+                               return;
+
+       ad->base_tm = ad->today_tm;
+
+       __cal_main_update_content(main_data);
+}
+
+static void __cal_main_inc_start(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       cal_main_data *main_data;
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(data);
+       c_retm_if(!main_data, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       main_data->intval = main_data->intval_init;
+       main_data->delta = 1;
+
+       if (main_data->down_timer)
+               ecore_timer_del(main_data->down_timer);
+
+       main_data->down_timer = ecore_timer_add(main_data->intval, __cal_main_update_content_by_timer, data);
+       __cal_main_update_content(main_data);
+}
+
+static void __cal_main_dec_start(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       cal_main_data *main_data;
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(data);
+       c_retm_if(!main_data, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       main_data->intval = main_data->intval_init;
+       main_data->delta = -1;
+
+       if (main_data->down_timer)
+               ecore_timer_del(main_data->down_timer);
+
+       main_data->down_timer = ecore_timer_add(main_data->intval, __cal_main_update_content_by_timer, data);
+       __cal_main_update_content(main_data);
+}
+
+static void __cal_main_stop(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       cal_main_data *main_data;
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(data);
+       c_retm_if(!main_data, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       if (main_data->down_timer)
+               ecore_timer_del(main_data->down_timer);
+
+       main_data->down_timer = NULL;
+       main_data->delta = 0;
+}
+
+static int __cal_main_add_title(struct appdata *ad, Evas_Object *ly)
+{
+       c_retvm_if(!ad, -1, "ad is null");
+       c_retvm_if(!ly, -1, "ly is null");
+
+       cal_main_data *main_data;
+       Evas_Object *title;
+
+       title = cal_util_add_layout(ad->nv, "main/title");
+       c_retvm_if(!title, -1, "cal_util_add_layout returned null");
+
+       elm_object_part_content_set(ly, "title", title);
+
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(title), "start,inc", "title", __cal_main_inc_start, ly);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(title), "start,dec", "title", __cal_main_dec_start, ly);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(title), "stop,dec", "title", __cal_main_stop, ly);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(title), "stop,inc", "title", __cal_main_stop, ly);
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retvm_if(!main_data, -1, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       main_data->title = title;
+       ad->title = title;
+
+       return 0;
+}
+
+static void __cal_main_update_all(void* data)
+{
+       c_retm_if(!data, "data is null");
+
+       struct appdata* ad = data;
+       cal_main_update_view(ad);
+}
+
+void cal_main_add_changed_callback(struct appdata * ad)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad, "ad is null");
+
+       CALENDAR_SVC_ADD_EVENT_CHANGED_CALLBACK(cal_main_update_view, ad);
+
+       CALENDAR_SVC_ADD_CALENDAR_CHANGED_CALLBACK(CAL_STRUCT_CALENDAR, __cal_main_update_all, ad);
+
+       CAL_FN_END;
+}
+
+void cal_main_del_changed_callback()
+{
+       CAL_FN_START;
+
+       CALENDAR_SVC_DEL_EVENT_CHANGED_CALLBACK(cal_main_update_view);
+
+       CALENDAR_SVC_DEL_CALENDAR_CHANGED_CALLBACK(CAL_STRUCT_CALENDAR, __cal_main_update_all);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!obj, "obj is null");
+
+       cal_main_data *main_data;
+
+       main_data = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!main_data, "CAL_UTIL_GET_PRIV_DATA returned null");
+
+       cal_main_del_changed_callback();
+
+       if (main_data->down_timer)
+               ecore_timer_del(main_data->down_timer);
+
+       if (main_data->ad->tabbar)
+               evas_object_del(main_data->ad->tabbar);
+
+       main_data->ad->main = NULL;
+
+       free(main_data);
+
+       CAL_FN_END;
+}
+
+static Evas_Object *__cal_main_create_main_layout(struct appdata *ad)
+{
+       c_retvm_if(!ad, NULL, "ad is null");
+
+       int r;
+       Evas_Object *ly;
+       cal_main_data *main_data = calloc(1, sizeof(cal_main_data));
+       c_retvm_if(!main_data, NULL, "calloc(1, sizeof(cal_main_data)) returned null");
+
+       main_data->name = _name;
+
+       ly = cal_util_add_layout(ad->nv, main_data->name);
+       if (!ly)
+       {
+               free(main_data);
+               return NULL;
+       }
+
+       main_data->ad = ad;
+       main_data->ly = ly;
+       main_data->intval_init = 0.5;
+       main_data->ad->bt_delete = NULL;
+       evas_object_data_set(ly, "priv", main_data);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_main_delete_layout, NULL);
+
+       r = __cal_main_add_title(ad, ly);
+       c_retvm_if(r != 0, NULL, "__cal_main_add_title is failed");
+
+       return ly;
+}
+
+static void __cal_main_center_button_callback(void *data, Evas_Object* obj, void* event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       __cal_main_set_base_tm(data);
+}
+
+static void __cal_main_back_button_clicked_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       struct appdata* ad = (struct appdata*)data;
+
+       elm_win_lower(ad->win);
+}
+
+static void __cal_main_set_naviframe( struct appdata *ad)
+{
+       c_retm_if(!ad, "ad is null");
+
+       CAL_FN_START;
+
+       Evas_Object *cbar;
+       Evas_Object *back_button;
+
+       cbar = cal_util_add_controlbar(ad->nv);
+       c_retm_if(!cbar, "cal_util_add_controlbar returned null");
+       ad->cbar = cbar;
+
+       elm_toolbar_item_append(cbar, NULL, S_("IDS_COM_BODY_CALENDAR"), __cal_main_account_button_callback, ad->main);
+       elm_toolbar_item_append(cbar, NULL, S_("IDS_COM_BODY_TODAY"), __cal_main_center_button_callback, ad->main);
+       ad->bt_new = elm_toolbar_item_append(cbar, NULL, S_("IDS_COM_BODY_CREATE"), __cal_main_new_button_callback, ad->main);
+
+       back_button = elm_button_add(ad->nv);
+       c_retm_if(!back_button, "elm_button_add returned null");
+       evas_object_smart_callback_add(back_button, "clicked", __cal_main_back_button_clicked_callback, ad);
+
+       ad->main_navi_item = elm_naviframe_item_push(ad->nv, S_("IDS_COM_BODY_CALENDAR"), back_button, NULL, ad->main, "segment");
+
+       elm_object_item_part_content_set(ad->main_navi_item, "controlbar", cbar);
+
+       elm_object_style_set(back_button, "naviframe/back_btn/default");
+
+       __cal_main_init_navi_title();
+
+       __cal_main_add_tabbar(ad);
+
+       CAL_FN_END;
+}
+
+void cal_main_create_view(struct appdata *ad)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad, "data is null");
+
+       c_retm_if(ad->request_view < CV_YEAR && ad->request_view > CV_DETAIL, "request_view is invalid");
+
+       if (!ad->main) {
+               ad->main = __cal_main_create_main_layout(ad);
+               c_retm_if(!ad->main, "ad->main is null");
+
+               __cal_main_set_naviframe(ad);
+       }
+
+       cal_main_change_view(ad->main, ad->request_view);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_set_first_day(struct appdata *ad)
+{
+       c_retm_if(!ad, "ad is null");
+
+       int r,val;
+       r = vconf_get_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT,&val);
+       if(0 > r)
+               ad->wday_start = 0;
+       else
+               ad->wday_start = val;
+}
+
+void cal_main_update_view(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       struct appdata* ad = data;
+       c_retm_if(!ad->main, "ad->main is null");
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(ad->main);
+       c_retm_if(!main_data, "main_data is null");
+
+       __cal_main_set_first_day(ad);
+
+       if (CAL_STRCMP(main_data->name, _name))
+       {
+               ERR("Invalid object");
+               return;
+       }
+
+       __cal_main_create_content(main_data->ly, main_data, main_data->cur_view);
+       __cal_main_update_content(main_data);
+
+       CAL_FN_END;
+}
diff --git a/src/view-ring.c b/src/view-ring.c
new file mode 100755 (executable)
index 0000000..f332be1
--- /dev/null
@@ -0,0 +1,348 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <Ecore_X.h>
+#include <utilX.h>
+#include <mm_error.h>
+#include <pmapi.h>
+#include <wav_player.h>
+
+#include "view.h"
+#include "alm-mgr.h"
+#include "view-ring.h"
+
+#define DEFAULT_TONE RESDIR "/sounds/On_time.wav"
+
+static const char *_name = "ring";
+
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *win;
+       Evas_Object *ly;
+
+       Eina_List *cslist;
+
+       Ecore_Timer *tmr;
+       int mm_id;
+
+       int cid;
+
+       int handle;
+       char *ring_path;
+
+       int is_stop;
+       int is_wav_stop;
+}cal_ring_data;
+
+static void __cal_ring_set_window_property(Evas_Object *win)
+{
+       Ecore_X_Window w;
+
+       w = elm_win_xwindow_get(win);
+
+       ecore_x_netwm_window_type_set(w, ECORE_X_WINDOW_TYPE_NOTIFICATION);
+       utilx_set_system_notification_level(ecore_x_display_get(), w, UTILX_NOTIFICATION_LEVEL_NORMAL);
+}
+
+static void __cal_ring_stop_alarm(cal_ring_data *p)
+{
+       CAL_FN_START;
+
+       if (p->mm_id != -1) {
+               wav_player_stop(p->mm_id);
+               p->mm_id = -1;
+               p->is_wav_stop = 1;
+       }
+
+       if (p->ring_path) {
+               free(p->ring_path);
+               p->ring_path = NULL;
+       }
+}
+
+static void __cal_ring_window_delete_callback(void *data, Evas *e, Evas_Object *obj, void *event)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       cal_ring_data *p = data;
+
+       if (p->tmr)
+               ecore_timer_del(p->tmr);
+
+       if (p->cslist)
+               CALENDAR_SVC_FREE_CS_LIST(&p->cslist);
+
+       free(p);
+}
+
+static void __cal_ring__cal_ring_fill_cs(cal_struct *cs, Evas_Object *ly)
+{
+       const char *str;
+       time_t now;
+       struct tm tm;
+       int hour;
+       const char *ampm;
+
+       str = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_SUMMARY);
+       if (!str)
+               str = C_("IDS_CLD_BODY_NO_TITLE");
+
+       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly), "text/title", str);
+
+       now = time(NULL);
+       localtime_r(&now, &tm);
+
+       cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(ly), "text/ampm", NULL, CAL_UTIL_TIME_FORMAT_4, &tm);
+       cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(ly), "text/currenttime", NULL, CAL_UTIL_TIME_FORMAT_2, &tm);
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "min,%02d", tm.tm_min);
+
+       if (tm.tm_hour < 12)
+       {
+               ampm = "go,am";
+               hour = tm.tm_hour;
+       }
+       else
+       {
+               ampm = "go,pm";
+               hour = tm.tm_hour - 12;
+       }
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "hour,%02d", hour * 5 + (tm.tm_min / 12));
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), ampm, "prog");
+}
+
+
+static void __cal_ring_play_alarm_completed_cb(int id, void *user_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(NULL == user_data, "user_data is NULL");
+       cal_ring_data *p = user_data;
+       int mm_id;
+       if (0 == p->is_stop) {
+               wav_player_start(p->ring_path, SOUND_TYPE_RINGTONE, __cal_ring_play_alarm_completed_cb, p, &mm_id);
+               p->mm_id = mm_id;
+       } else {
+               evas_object_del(p->win);
+       }
+
+}
+
+static void __cal_ring_play_alarm(cal_ring_data *p, const char *path)
+{
+       c_retm_if(NULL == p, "p is NULL.");
+       c_retm_if(NULL == path, "path is NULL.");
+
+       int r;
+       int mm_id = 0;
+
+       __cal_ring_stop_alarm(p);
+
+       p->ring_path = strdup(path);
+
+       r = wav_player_start(path, SOUND_TYPE_RINGTONE, __cal_ring_play_alarm_completed_cb, p, &mm_id);
+       c_retm_if(r!= WAV_PLAYER_ERROR_NONE, "wav_player_start is failed.");
+
+       p->is_wav_stop = 0;
+
+       p->mm_id = mm_id;
+}
+
+static void __cal_ring_fill(cal_ring_data *p)
+{
+       cal_struct *cs;
+       const char *tone = NULL;
+       GList *al = NULL;
+       cal_value *val;
+       int cnt;
+
+       if (p->cid)
+               return; // aleady exist
+
+       if (!p->cslist)
+               return; // TODO: exit??
+
+       cs = eina_list_data_get(p->cslist);
+       if (!cs)
+               return; // TODO: exit??
+
+       __cal_ring__cal_ring_fill_cs(cs, p->ly);
+       p->cid = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_INDEX);
+       DBG("Current event id: %d", p->cid);
+
+       CALENDAR_SVC_STRUCT_GET_LIST(cs, CAL_VALUE_LST_ALARM, &al);
+       if (al)
+       {
+               cnt = g_list_length(al);
+               c_retm_if(!cnt, "length of alarm list is 0");
+
+               val = al->data;
+               c_retm_if(!val, "data of alarm list is null");
+
+               tone = CALENDAR_SVC_VALUE_GET_STR(val, CAL_VALUE_TXT_ALARMS_TONE);
+       }
+
+       if (!tone || tone[0] == '\0')
+               tone = DEFAULT_TONE;
+
+       DBG("Ring tone: %s", tone);
+       __cal_ring_play_alarm(p, tone);
+
+       p->cslist = eina_list_remove(p->cslist, cs);
+       CALENDAR_SVC_STRUCT_FREE(&cs);
+}
+
+static void __cal_ring_stop_button_callback(void *data, Evas_Object *eo, const char *e, const char *s)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       cal_ring_data *p = data;
+
+       p->cid = 0;
+
+       if (p->cslist) {
+               __cal_ring_fill(p);
+               return;
+       }
+
+       if (p->is_wav_stop)
+               evas_object_del(p->win);
+       else
+               p->is_stop = 1;
+}
+
+static Evas_Object* __cal_ring_create_view(struct appdata *ad)
+{
+       c_retvm_if(!ad, NULL, "ad is null");
+
+       cal_ring_data *p = calloc(1, sizeof(cal_ring_data));
+       c_retvm_if(!p, NULL, "p is null");
+
+       p->name = _name;
+       p->ad = ad;
+       p->mm_id = -1;
+       p->is_wav_stop = 1;
+
+       p->win = cal_util_add_window(CALENDAR_RING , NULL, NULL);
+       if (!p->win)
+       {
+               ERR("cal_util_add_window(CALENDAR_RING, NULL, NULL) is failed");
+               free(p);
+               return NULL;
+       }
+
+       __cal_ring_set_window_property(p->win);
+       evas_object_data_set(p->win, "priv", p);
+
+       p->ly = cal_util_add_layout(p->win, p->name);
+       if (!p->ly)
+       {
+               ERR("cal_util_add_layout() is failed");
+               evas_object_del(p->win);
+               free(p);
+               return NULL;
+       }
+
+       elm_win_resize_object_add(p->win, p->ly);
+
+       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(p->ly), "text/stop", _("Stop"));
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(p->ly), "stop", "edj", __cal_ring_stop_button_callback, p);
+
+       evas_object_event_callback_add(p->win, EVAS_CALLBACK_DEL, __cal_ring_window_delete_callback, p);
+
+       pm_change_state(LCD_NORMAL);
+
+       evas_object_show(p->win);
+
+       return p->win;
+}
+
+static Eina_Bool __cal_ring_timer_callback(void *data)
+{
+       CAL_FN_START;
+
+       cal_ring_data *p = data;
+
+       // TODO: add quickpanel noti??
+       DBG("Alarm ring timeout!");
+
+       __cal_ring_stop_alarm(p);
+
+       evas_object_del(p->win);
+
+       // TODO: exit??
+
+       p->tmr = NULL;
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static int __cal_ring_append_alarm(Evas_Object *win, Eina_List *cslist)
+{
+       cal_ring_data *p = CAL_UTIL_GET_PRIV_DATA(win);
+
+       if (!p || CAL_STRCMP(p->name, _name))
+       {
+               ERR("Invalid object");
+               return -1;
+       }
+
+       p->cslist = eina_list_merge(p->cslist, cslist);
+
+       __cal_ring_fill(p);
+
+       if (!p->tmr)
+       {
+               p->tmr = ecore_timer_add(60.0, __cal_ring_timer_callback, p);
+               DBG("Add timer");
+       }
+
+       return 0;
+}
+
+static int __cal_ring_create_alarm(struct appdata *ad, Eina_List *cslist)
+{
+       c_retvm_if(!ad, -1, "ad is null");
+       c_retvm_if(!cslist, -1, "cslist is null");
+
+       Evas_Object *win = __cal_ring_create_view(ad);
+       c_retvm_if(!win, -1, "__cal_ring_create_view returned null");
+
+       return __cal_ring_append_alarm(win, cslist);
+}
+
+int cal_ring_add_alarm(struct appdata *ad, Eina_List *csl)
+{
+       c_retvm_if(!ad, -1, "ad is null");
+       c_retvm_if(!csl, -1, "csl is null");
+
+       return __cal_ring_create_alarm(ad, csl);
+}
+
diff --git a/src/view-ring.h b/src/view-ring.h
new file mode 100755 (executable)
index 0000000..9f9cdbb
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_RING_H__
+#define __CALENDAR_RING_H__
+
+#include "cld.h"
+
+int cal_ring_add_alarm(struct appdata *ad, Eina_List *csl);
+
+#endif /* __CALENDAR_RING_H__ */
diff --git a/src/view.h b/src/view.h
new file mode 100755 (executable)
index 0000000..246eaab
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_VIEW_H__
+#define __CALENDAR_VIEW_H__
+
+#include "cld.h"
+
+/* view-edit */
+void cal_edit_create_view(struct appdata *ad, Evas_Object *parent);
+
+/* view-acct */
+void cal_account_create_view(struct appdata *ad, Evas_Object *parent);
+
+void cal_main_update_title_text(Evas_Object *title, enum cld_view v, struct tm *t, int week_start);
+void cal_main_change_view(Evas_Object *ly, enum cld_view v);
+void cal_main_update_view(void* data);
+void cal_main_create_view(struct appdata *ad);
+void cal_main_add_changed_callback(struct appdata * ad);
+
+Evas_Object* cal_year_create_view(struct appdata *ad, Evas_Object *ly);
+Evas_Object* cal_month_create_view(struct appdata *ad, Evas_Object *ly);
+Evas_Object* cal_week_create_view(struct appdata *ad, Evas_Object *ly);
+Evas_Object* cal_day_create_view(struct appdata *ad, Evas_Object *ly);
+Evas_Object* cal_list_create_view(struct appdata *ad, Evas_Object *ly);
+Evas_Object* cal_list_delete_view_create(Evas_Object *parent, struct appdata *ad);
+
+void cal_year_update_view(Evas_Object *ly);
+void cal_month_update_view(Evas_Object *ly);
+void cal_week_update_view(Evas_Object *ly);
+void cal_list_update_view(Evas_Object *ly);
+void cal_day_update_view(Evas_Object *ly);
+void cal_list_delete_update_view(Evas_Object *ly);
+
+
+/* month */
+Evas_Object* cal_month_calendar_create_content(struct tm *t, struct appdata *ad,
+               Evas_Object *ly, Eina_Bool tmp);
+void cal_month_calendar_update_content(Evas_Object *ly, struct tm *t);
+int cal_month_get_weekline(Evas_Object *ly);
+void cal_month_calendar_update_select(Evas_Object *month);
+
+
+/* time block in day view */
+Evas_Object* cal_day_create_time_block(struct tm *tm, struct appdata *ad, Evas_Object *parent);
+void cal_day_time_update_time_block(Evas_Object *ly, struct tm *tm);
+void cal_day_update_genlist(Evas_Object *ly);
+
+void cal_list_scroll_today(struct appdata* ad);
+
+#endif /* __CALENDAR_VIEW_H__ */
+
diff --git a/ug/CMakeLists.txt b/ug/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..659114c
--- /dev/null
@@ -0,0 +1,16 @@
+LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
+
+SET(UG_LIB /opt/ug/lib)
+SET(UG_LOCALE /opt/ug/res/locale)
+
+INCLUDE(FindPkgConfig)
+PKG_CHECK_MODULES(UG_PKGS REQUIRED elementary ui-gadget calendar-service icu-i18n accounts-svc)
+
+FOREACH(flag ${UG_PKGS_CFLAGS})
+       SET(UG_CFLAGS "${UG_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+ADD_SUBDIRECTORY(settings)
+ADD_SUBDIRECTORY(edit)
+ADD_SUBDIRECTORY(detail)
+ADD_SUBDIRECTORY(list)
diff --git a/ug/detail/CMakeLists.txt b/ug/detail/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..7178a5b
--- /dev/null
@@ -0,0 +1,18 @@
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+
+SET(UG_DETAIL_SRCS
+               ug-detail.c
+               ug-detail-view.c
+               ${CMAKE_SOURCE_DIR}/src/view-detail.c
+               ${CMAKE_SOURCE_DIR}/src/view-edit.c
+               ${CMAKE_SOURCE_DIR}/src/edit-alarm.c
+               ${CMAKE_SOURCE_DIR}/src/edit-repeat.c
+)
+
+ADD_DEFINITIONS("-DUGLOCALE=\"${UG_LOCALE}\"")
+
+ADD_LIBRARY(${UGDETAIL} SHARED ${UG_DETAIL_SRCS})
+SET_TARGET_PROPERTIES(${UGDETAIL} PROPERTIES COMPILE_FLAGS "${UG_CFLAGS}")
+TARGET_LINK_LIBRARIES(${UGDETAIL} ${COMMON_LIB} ${UG_PKGS_LDFLAGS})
+
+INSTALL(TARGETS ${UGDETAIL} DESTINATION ${UG_LIB})
diff --git a/ug/detail/readme.txt b/ug/detail/readme.txt
new file mode 100755 (executable)
index 0000000..9582e48
--- /dev/null
@@ -0,0 +1,95 @@
+static void _ug_destroy(struct ui_gadget *ug, void *priv)\r
+{\r
+       struct _priv *p = priv;\r
+\r
+       if (ug)\r
+               ug_destroy(ug);\r
+\r
+       //_update_cont(p);      \r
+}\r
+\r
+static void _ug_result(struct ui_gadget *ug, bundle *res, void *priv)\r
+{\r
+       CAL_DBG("%s", __func__);\r
+       \r
+}\r
+\r
+static void _ug_layout(struct ui_gadget *ug, enum ug_mode mode, void *priv)\r
+{\r
+       Evas_Object *base;\r
+\r
+       assert(ug);\r
+\r
+       base = ug_get_layout(ug);\r
+       if (!base) {\r
+               ug_destroy(ug);\r
+               return;\r
+       }\r
+\r
+       switch (mode) {\r
+       case UG_MODE_FULLVIEW:\r
+               elm_win_resize_object_add(ug_get_window(), base);\r
+               evas_object_show(base);\r
+               break;\r
+       default:\r
+               CAL_DBG("Unsupported ug layout");\r
+               break;\r
+       }\r
+}\r
+\r
+\r
+static void gl_sel(void *data, Evas_Object *obj, void *ei)\r
+{\r
+       printf("+gl_sel\n");\r
+       \r
+       cal_struct *cs = data;\r
+       int idx;\r
+       Elm_Genlist_Item *it;\r
+       struct _priv *p;\r
+\r
+       it = elm_genlist_selected_item_get(obj);\r
+       if (it)\r
+               elm_genlist_item_selected_set(it, EINA_FALSE);\r
+\r
+       idx = CAL_CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_INDEX);\r
+\r
+       p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       assert(p);\r
+\r
+       p->ad->cid = idx;\r
+\r
+       #if 0\r
+       push_detail_view(p->ad, p->parent);\r
+       #else\r
+       struct ui_gadget *ug = NULL;\r
+       bundle *req = NULL;\r
+       struct ug_cbs uc;       \r
+       char index[100] = {0};\r
+\r
+       req = bundle_create();\r
+       if (NULL == req)\r
+       {\r
+               return; \r
+       }\r
+       \r
+       //prepare the index of calendar for bundle\r
+       g_snprintf(index, sizeof(index), "%d", p->ad->cid);\r
+       bundle_add(req, "index", index);        \r
+       \r
+       memset(&uc, 0, sizeof(struct ug_cbs));\r
+       uc.destroy_cb = _ug_destroy;\r
+       uc.layout_cb = _ug_layout;\r
+       uc.result_cb = _ug_result;\r
+       uc.priv = p;\r
+\r
+       ug = ug_create(NULL, "calendar-detail-efl", UG_MODE_FULLVIEW, req, &uc);\r
+       if (NULL == ug)\r
+       {\r
+               ERR("ug create error\n");\r
+       }\r
+\r
+       bundle_free(req);\r
+       #endif\r
+       printf("-gl_sel\n");\r
+}\r
+\r
diff --git a/ug/detail/ug-detail-view.c b/ug/detail/ug-detail-view.c
new file mode 100755 (executable)
index 0000000..6a77009
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
diff --git a/ug/detail/ug-detail-view.h b/ug/detail/ug-detail-view.h
new file mode 100755 (executable)
index 0000000..de23457
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_DETAIL_H__
+#define __CALENDAR_DETAIL_H__
+
+
+#endif /* __CALENDAR_DETAIL_H__ */
+
diff --git a/ug/detail/ug-detail.c b/ug/detail/ug-detail.c
new file mode 100755 (executable)
index 0000000..3310c4f
--- /dev/null
@@ -0,0 +1,237 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <ui-gadget-module.h>
+#include <libintl.h>
+#include <appcore-common.h>
+
+#include "cld.h"
+#include "ug-detail.h"
+#include "detail.h"
+
+static int __cal_detail_ug_initialize(ug_data* ugd)
+{
+       int r;
+
+       r = CALENDAR_SVC_CONNECT();
+       if (r != CAL_SUCCESS)
+       {
+               ERR("calendar service connect failed");
+               return -1;
+       }
+
+       appcore_set_i18n(CALENDAR_PACKAGE, LOCALEDIR);
+
+       ugd->theme = elm_theme_new();
+       if(NULL == ugd->theme)
+       {
+               return -1;
+       }
+       elm_theme_ref_set(ugd->theme, NULL);     //refer to default theme(NULL)
+
+       cal_util_connect_pattern_generator();
+
+       return 0;
+}
+
+static int __cal_detail_ug_finish()
+{
+       int r;
+
+       r = CALENDAR_SVC_DISCONNECT();
+       if (r != CAL_SUCCESS)
+       {
+               ERR("calendar service close failed");
+               return -1;
+       }
+
+       elm_theme_extension_del(NULL, EDJDIR "/calendar_theme.edj");
+
+       cal_util_disconnect_pattern_generator();
+
+       return 0;
+}
+
+static void __cal_detail_ug_back_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       ug_data *ugd = data;
+
+       if (ugd && ugd->ug)
+               ug_destroy_me(ugd->ug);
+}
+
+static void __cal_detail_ug_add_back_button(ug_data *ugd)
+{
+       Evas_Object *bt;
+
+       bt = elm_button_add(ugd->nv);
+       if (!bt)
+               return;
+
+       elm_object_style_set(bt, "naviframe/back_btn/default");
+       // TODO: i18n
+       elm_object_text_set(bt, "Back");
+       evas_object_show(bt);
+
+       Elm_Object_Item* top_navi_item = elm_naviframe_top_item_get(ugd->nv);
+       CAL_ASSERT(top_navi_item);
+
+       elm_object_item_part_content_set(top_navi_item, "prev_btn", bt);
+
+       evas_object_smart_callback_add(bt, "clicked", __cal_detail_ug_back_button_callback, ugd);
+}
+
+static Evas_Object *__cal_detail_ug_create_layout(Evas_Object *parent, ug_data *ugd)
+{
+       ugd->base = cal_util_add_layout(parent, NULL);
+       CAL_ASSERT(ugd->base);
+
+       ugd->nv = elm_naviframe_add(ugd->base);
+       CAL_ASSERT(ugd->nv);
+
+       ugd->bg = cal_util_add_bg(ugd->base, EINA_FALSE);
+       CAL_ASSERT(ugd->bg);
+
+       elm_object_theme_set(ugd->nv, ugd->theme);
+       evas_object_show(ugd->nv);
+
+       ugd->u_type = UG_DETAIL;
+       cal_detail_create_view((struct appdata*)ugd, parent);
+       elm_object_part_content_set(ugd->base, "elm.swallow.content", ugd->nv);
+       elm_object_part_content_set(ugd->base, "elm.swallow.bg", ugd->bg);
+
+       __cal_detail_ug_add_back_button(ugd);
+
+       return ugd->base;
+
+}
+
+static void *__cal_detail_ug_create_callback(struct ui_gadget *ug, enum ug_mode mode, bundle *data, void *priv)
+{
+       Evas_Object *parent;
+       ug_data *ugd;
+       Evas_Object *base;
+       const char *str = NULL;
+
+       if (!ug || !priv)
+               return NULL;
+       ugd = priv;
+       ugd->ug = ug;
+
+       str = bundle_get_val(data, "index");
+       if(NULL != str)
+               ugd->cid = atoi(str);
+       else
+               ugd->cid = 0;
+
+       if (mode != UG_MODE_FULLVIEW)
+               return NULL;
+       parent = ug_get_parent_layout(ug);
+       CAL_ASSERT(parent);
+
+       ugd->win = ug_get_window();
+       CAL_ASSERT(ugd->win);
+
+       base = __cal_detail_ug_create_layout(parent, ugd);
+       if (!base)
+       {
+               CALENDAR_SVC_DISCONNECT();
+               return NULL;
+       }
+       return base;
+}
+
+static void __cal_detail_ug_destroy_callback(struct ui_gadget *ug, bundle *data, void *priv)
+{
+       ug_data *ugd;
+
+       if (!ug || !priv)
+               return;
+
+       ugd = priv;
+
+       cal_util_delete_evas_object(&ugd->base);
+}
+
+static void __cal_detail_ug_key_callback(struct ui_gadget *ug, enum ug_key_event evt,
+               bundle *data, void *priv)
+{
+       if (!ug)
+               return;
+
+       DBG("UG: key event %d", evt);
+
+       switch (evt) {
+       case UG_KEY_EVENT_END:
+               ug_destroy_me(ug);
+               break;
+       default:
+               break;
+       }
+}
+
+static inline void __cal_detail_ug_bind_text_domain()
+{
+       const char *r;
+
+       r = bindtextdomain(UGSETTINGS, UGLOCALE);
+       if (!r)
+               ERR("UG: bindtextdomain error");
+}
+
+API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       ug_data *ugd;
+
+       if (!ops)
+               return -1;
+
+       CAL_CALLOC(ugd, 1, ug_data);
+
+       ops->create = __cal_detail_ug_create_callback;
+       ops->destroy = __cal_detail_ug_destroy_callback;
+       ops->key_event = __cal_detail_ug_key_callback;
+       ops->priv = ugd;
+       ops->opt = UG_OPT_INDICATOR_PORTRAIT_ONLY;
+
+       __cal_detail_ug_bind_text_domain();
+
+       __cal_detail_ug_initialize(ugd);
+
+       return 0;
+}
+
+API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       ug_data *ugd;
+
+       if (!ops)
+               return;
+
+       __cal_detail_ug_finish();
+
+       ugd = ops->priv;
+       free(ugd);
+}
diff --git a/ug/detail/ug-detail.h b/ug/detail/ug-detail.h
new file mode 100755 (executable)
index 0000000..4e7995f
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_UG_DETAIL_H__
+#define __CALENDAR_UG_DETAIL_H__
+
+#endif /* __CALENDAR_UG_DETAIL_H__ */
diff --git a/ug/edit/CMakeLists.txt b/ug/edit/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..76d1d90
--- /dev/null
@@ -0,0 +1,16 @@
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+
+SET(UG_EDIT_SRCS
+               ug-edit.c
+               ${CMAKE_SOURCE_DIR}/src/view-edit.c
+               ${CMAKE_SOURCE_DIR}/src/edit-alarm.c
+               ${CMAKE_SOURCE_DIR}/src/edit-repeat.c
+)
+
+ADD_DEFINITIONS("-DUGLOCALE=\"${UG_LOCALE}\"")
+
+ADD_LIBRARY(${UGEDIT} SHARED ${UG_EDIT_SRCS})
+SET_TARGET_PROPERTIES(${UGEDIT} PROPERTIES COMPILE_FLAGS "${UG_CFLAGS}")
+TARGET_LINK_LIBRARIES(${UGEDIT} ${COMMON_LIB} ${UG_PKGS_LDFLAGS})
+
+INSTALL(TARGETS ${UGEDIT} DESTINATION ${UG_LIB})
diff --git a/ug/edit/readme.txt b/ug/edit/readme.txt
new file mode 100755 (executable)
index 0000000..a6cb9e5
--- /dev/null
@@ -0,0 +1,99 @@
+static void _ug_destroy(struct ui_gadget *ug, void *priv)\r
+{\r
+       struct _priv *p = priv;\r
+\r
+       if (ug)\r
+               ug_destroy(ug);\r
+\r
+       _update_cont(p);        \r
+}\r
+\r
+static void _ug_result(struct ui_gadget *ug, bundle *res, void *priv)\r
+{\r
+       CAL_DBG("%s", __func__);\r
+       \r
+}\r
+\r
+static void _ug_layout(struct ui_gadget *ug, enum ug_mode mode, void *priv)\r
+{\r
+       Evas_Object *base;\r
+\r
+       assert(ug);\r
+\r
+       base = ug_get_layout(ug);\r
+       if (!base) {\r
+               ug_destroy(ug);\r
+               return;\r
+       }\r
+\r
+       switch (mode) {\r
+       case UG_MODE_FULLVIEW:\r
+               elm_win_resize_object_add(ug_get_window(), base);\r
+               evas_object_show(base);\r
+               break;\r
+       default:\r
+               CAL_DBG("Unsupported ug layout");\r
+               break;\r
+       }\r
+}\r
+\r
+static void bt_new_cb(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       Evas_Object *ly = NULL;\r
+       struct _priv *p = NULL;\r
+       struct ui_gadget *ug = NULL;\r
+       struct ug_cbs uc;       \r
+       bundle *req = NULL;\r
+       char year[10] = {0};\r
+       char month[10] = {0};\r
+       char day[10] = {0};\r
+       char hour[10] = {0};\r
+       char index[100] = {0};\r
+       \r
+       char note[256] = {0};\r
+       ly = data;\r
+       p = CAL_UTIL_GET_PRIV_DATA(ly); \r
+\r
+       req = bundle_create();\r
+       if (NULL == req)\r
+       {\r
+               return; \r
+       }\r
+       \r
+       //prepare the time for bundle   \r
+       g_snprintf(year, sizeof(year), "%d", p->ad->base_tm.tm_year);\r
+       bundle_add(req, "year", year);\r
+       \r
+       g_snprintf(month, sizeof(month), "%d", p->ad->base_tm.tm_mon);\r
+       bundle_add(req, "month", month);\r
+       \r
+       g_snprintf(day, sizeof(day), "%d", p->ad->base_tm.tm_mday);\r
+       bundle_add(req, "day", day);\r
+       \r
+       g_snprintf(hour, sizeof(hour), "%d", p->ad->base_hour);\r
+       bundle_add(req, "hour", hour);\r
+       \r
+       //prepare the index of calendar for bundle\r
+       p->ad->cid = 0;\r
+       g_snprintf(index, sizeof(index), "%d", p->ad->cid);\r
+       bundle_add(req, "index", index);        \r
+       \r
+       //prepare for noti to support memo module\r
+       g_snprintf(note, sizeof(note), "hello");\r
+       bundle_add(req, "note", note);  \r
+       \r
+       memset(&uc, 0, sizeof(struct ug_cbs));\r
+       uc.destroy_cb = _ug_destroy;\r
+       uc.layout_cb = _ug_layout;\r
+       uc.result_cb = _ug_result;\r
+       uc.priv = p;\r
+\r
+       ug = ug_create(NULL, "calendar-edit-efl", UG_MODE_FULLVIEW, req, &uc);\r
+       if (NULL == ug)\r
+       {\r
+               ERR("ug create error\n");\r
+       }\r
+\r
+       bundle_free(req);       \r
+}\r
+\r
diff --git a/ug/edit/ug-edit.c b/ug/edit/ug-edit.c
new file mode 100755 (executable)
index 0000000..1c97111
--- /dev/null
@@ -0,0 +1,371 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <ui-gadget-module.h>
+#include <libintl.h>
+#include <appcore-common.h>
+
+#include "view.h"
+
+#define MAX_STR_LEN                            1024
+
+// TODO: get full path from caller
+#define VFILE_PATH "/opt/data/ug-calendar"
+
+static void __cal_edit_ug_init_base_time(ug_data *ugd)
+{
+       if (NULL == ugd)
+       {
+               return;
+       }
+       struct tm tm;
+       time_t now;
+
+       now = time(NULL);
+       localtime_r(&now, &tm);
+       tm.tm_min = 0; // min, sec reset for mktime()
+       tm.tm_sec = 0;
+
+       ugd->today_tm = tm;
+       ugd->base_tm = ugd->today_tm;
+}
+
+static Evas_Object *__cal_edit_ug_create_layout(Evas_Object *parent, ug_data *ugd)
+{
+       ugd->base = cal_util_add_layout(parent, NULL);
+       CAL_ASSERT(ugd->base);
+
+       ugd->nv = elm_naviframe_add(parent);
+       CAL_ASSERT(ugd->nv);
+
+       ugd->bg = cal_util_add_bg(ugd->base, EINA_FALSE);
+       CAL_ASSERT(ugd->bg);
+
+       elm_object_part_content_set(ugd->base, "elm.swallow.content", ugd->nv);
+       elm_object_part_content_set(ugd->base, "elm.swallow.bg", ugd->bg);
+       elm_object_theme_set(ugd->nv, ugd->theme);
+
+       ugd->u_type = UG_EDIT;
+
+       __cal_edit_ug_init_base_time(ugd);
+
+       cal_edit_create_view(ugd, ugd->nv);
+
+       return ugd->base;
+}
+
+static void __cal_edit_ug_get_strnote(ug_data *ugd, bundle *data)
+{
+       if (NULL == ugd || NULL == data)
+       {
+               return;
+       }
+
+       const char *str = bundle_get_val(data, "note");
+       if (str)
+               ugd->strnote = strdup(str);
+       else
+               ugd->strnote = NULL;
+}
+static void __cal_edit_ug_get_bundle_parameter(ug_data *ugd, bundle *data)
+{
+       const char *str = NULL;
+       time_t t = time(NULL);
+       struct tm cur_tm;
+       struct tm* returned_tm = gmtime_r(&t, &cur_tm);
+       if (!returned_tm)
+       {
+               ERR("gmtime return null");
+               return;
+       }
+
+       if (NULL != data)
+       {
+               //year
+               str = bundle_get_val(data, "year");
+               if (NULL != str)
+               {
+                       ugd->tm_year = atoi(str);
+               }
+               else
+               {
+                       ugd->tm_year = cur_tm.tm_year;
+               }
+
+               //month
+               str = bundle_get_val(data, "month");
+               if (NULL != str)
+               {
+                       ugd->tm_mon = atoi(str);
+               }
+               else
+               {
+                       ugd->tm_mon = cur_tm.tm_mon;
+               }
+
+               //day
+               str = bundle_get_val(data, "day");
+               if (NULL != str)
+               {
+                       ugd->tm_mday = atoi(str);
+               }
+               else
+               {
+                       ugd->tm_mday = cur_tm.tm_mday;
+               }
+
+
+               //day
+               str = bundle_get_val(data, "hour");
+               if (NULL != str)
+               {
+                       ugd->base_hour = atoi(str);
+               }
+               else
+               {
+                       ugd->base_hour = -1;
+               }
+
+               //index
+               str = bundle_get_val(data, "index");
+               if (NULL != str)
+               {
+                       ugd->cid = atoi(str);
+               }
+               else
+               {
+                       ugd->cid = 0;
+               }
+
+               str = bundle_get_val(data, "account_id");
+               if (NULL != str)
+               {
+                       ugd->account_id =  atoi(str);
+               }
+               else
+               {
+                       ugd->account_id = 0;
+               }
+
+               str = bundle_get_val(data, "mail_id");
+               if (NULL != str)
+               {
+                       ugd->mail_id =  atoi(str);
+               }
+               else
+               {
+                       ugd->mail_id = 0;
+               }
+
+               str = bundle_get_val(data, "src_box");
+               if (NULL != str)
+               {
+                       ugd->src_box = strdup(str);
+               }
+               else
+               {
+                       ugd->src_box = NULL;
+               }
+
+               __cal_edit_ug_get_strnote(ugd, data);
+       }
+
+}
+
+static void *__cal_edit_ug_create_callback(struct ui_gadget *ug, enum ug_mode mode, bundle *data, void *priv)
+{
+       if (NULL == ug || NULL == priv)
+       {
+               return NULL;
+       }
+
+       Evas_Object *parent = NULL;
+       ug_data *ugd = NULL;
+       Evas_Object *base = NULL;
+
+       ugd = priv;
+       ugd->ug = ug;
+
+       __cal_edit_ug_get_bundle_parameter(ugd,data);
+
+       if (UG_MODE_FULLVIEW != mode)
+               return NULL;
+
+       parent = ug_get_parent_layout(ug);
+       CAL_ASSERT(parent);
+
+       ugd->win = ug_get_window();
+       CAL_ASSERT(ugd->win);
+
+       base = __cal_edit_ug_create_layout(parent, ugd);
+       if (NULL == base)
+       {
+               CALENDAR_SVC_DISCONNECT();
+               return NULL;
+       }
+
+       return base;
+}
+
+static void __cal_edit_ug_destroy_callback(struct ui_gadget *ug, bundle *data, void *priv)
+{
+       CAL_FN_START;
+
+       ug_data *ugd;
+
+       if (!ug || !priv)
+               return;
+
+       ugd = priv;
+
+       cal_util_delete_evas_object(&ugd->base);
+
+       free(ugd->strnote);
+}
+
+static void __cal_edit_ug_key_callback(struct ui_gadget *ug, enum ug_key_event evt, bundle *data, void *priv)
+{
+       if (!ug)
+               return;
+
+       DBG("UG: key event %d", evt);
+
+       switch (evt)
+       {
+       case UG_KEY_EVENT_END:
+               ug_destroy_me(ug);
+               break;
+
+       default:
+               break;
+       }
+}
+
+static int __cal_edit_ug_initialize(ug_data *ugd)
+{
+       if (NULL == ugd)
+       {
+               return -1;
+       }
+
+       int r;
+
+       r = CALENDAR_SVC_CONNECT();
+       if (r != CAL_SUCCESS)
+       {
+               ERR("calendar service connect failed");
+               return -1;
+       }
+
+       r = account_connect();
+       c_retvm_if(r != ACCOUNT_ERROR_NONE, -1, "account_connect is failed(%x)", r);
+
+       appcore_set_i18n(CALENDAR_PACKAGE, LOCALEDIR);
+
+       ugd->theme = elm_theme_new();
+       if (NULL == ugd->theme)
+       {
+               return -1;
+       }
+
+       elm_theme_ref_set(ugd->theme, NULL);     //refer to default theme(NULL)
+
+       cal_util_connect_pattern_generator();
+
+       return 0;
+}
+
+static int __cal_edit_ug_finish(ug_data *ugd)
+{
+       int r;
+
+       r = CALENDAR_SVC_DISCONNECT();
+       if (r != CAL_SUCCESS)
+       {
+               ERR("calendar service close failed");
+               return -1;
+       }
+
+       r = account_disconnect();
+       c_retvm_if(r != ACCOUNT_ERROR_NONE, -1, "account_disconnect is failed(%x)", r);
+
+       if(NULL != ugd->theme)
+       {
+               elm_theme_extension_del(ugd->theme, EDJDIR "/calendar_theme.edj");              //delete extension to the new theme (optional)
+               elm_theme_free(ugd->theme);
+               ugd->theme = NULL;
+       }
+
+       cal_util_disconnect_pattern_generator();
+
+       return 0;
+}
+
+
+static inline void __cal_edit_ug_bind_text_domain()
+{
+       const char *r;
+
+       r = bindtextdomain(UGSETTINGS, UGLOCALE);
+       if (!r)
+               ERR("UG: bindtextdomain error");
+}
+
+API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       ug_data *ugd;
+
+       if (!ops)
+               return -1;
+
+       CAL_CALLOC(ugd, 1, ug_data);
+
+       ops->create = __cal_edit_ug_create_callback;
+       ops->destroy = __cal_edit_ug_destroy_callback;
+       ops->key_event = __cal_edit_ug_key_callback;
+       ops->priv = ugd;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       __cal_edit_ug_bind_text_domain();
+
+       __cal_edit_ug_initialize(ugd);
+
+       return 0;
+}
+
+API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       ug_data *ugd;
+
+       if (!ops)
+               return;
+
+       ugd = ops->priv;
+       if (ugd)
+       {
+               __cal_edit_ug_finish(ugd);
+               free(ugd);
+       }
+}
diff --git a/ug/edit/ug-edit.h b/ug/edit/ug-edit.h
new file mode 100755 (executable)
index 0000000..07e6f13
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_UG_H__
+#define __CALENDAR_UG_H__
+
+#include <Elementary.h>
+#include <ui-gadget-module.h>
+
+
+
+// TODO: get full path from caller
+#define VFILE_PATH "/opt/data/ug-calendar"
+
+#endif /* __CALENDAR_UG_H__ */
diff --git a/ug/list/CMakeLists.txt b/ug/list/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..48ceafe
--- /dev/null
@@ -0,0 +1,14 @@
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+
+SET(UG_LIST_SRCS
+               ug.c
+               ug-list.c
+)
+
+ADD_DEFINITIONS("-DUGLOCALE=\"${UG_LOCALE}\"")
+
+ADD_LIBRARY(${UGNAME} SHARED ${UG_LIST_SRCS})
+SET_TARGET_PROPERTIES(${UGNAME} PROPERTIES COMPILE_FLAGS "${UG_CFLAGS}")
+TARGET_LINK_LIBRARIES(${UGNAME} ${COMMON_LIB} ${UG_PKGS_LDFLAGS})
+
+INSTALL(TARGETS ${UGNAME} DESTINATION ${UG_LIB})
diff --git a/ug/list/ug-list.c b/ug/list/ug-list.c
new file mode 100755 (executable)
index 0000000..e5d02a5
--- /dev/null
@@ -0,0 +1,1281 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include "cld.h"
+#include "ug.h"
+#include <glib.h>
+
+static const char *_name = "list/base";
+
+///TODO: get full path from caller
+#define VFILE_PATH "/opt/data/ug-calendar"
+
+static Elm_Entry_Filter_Limit_Size _limit_20char = {
+       .max_char_count = 20,
+};
+
+#define MAX_FETCH_COUNT 10
+
+#define ACCOUNT_LABLE_STRING_LENGTH 128
+
+typedef struct {
+       const char *name;
+       struct ug_data *ugd;
+       Evas_Object *parent;
+       Evas_Object *ly;
+       Evas_Object *no_contents;
+       Evas_Object *bg;
+
+       Elm_Object_Item *bt;
+
+       Evas_Object *conformant;
+       Evas_Object *genlist;
+
+       Eina_List *event_list;
+
+       Evas_Object *select_all_layout;
+       Evas_Object *select_all_check;
+       Evas_Object *box;
+
+       int totalcnt;
+       int offset;
+       Ecore_Idler* idler;
+
+       int num_check;
+       int genlist_count;
+       Evas_Object* searchbar;
+       const char * searchtext;
+       Elm_Object_Item *navi_item;
+       Evas_Object * notify;
+       Evas_Object * notify_layout;
+}cal_list_ug_data;
+
+typedef struct {
+       Elm_Object_Item *it;  // Genlist Item pointer
+       Eina_Bool checked;     // Check status
+       char *label;
+       cal_struct *cs;
+       struct tm* tm;
+       Elm_Genlist_Item_Type it_flag;
+}cal_list_ug_item_data;
+
+static Eina_Bool is_ug_list_view_destory;
+
+static int is_hour24;
+
+static void __cal_list_ug_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_list_ug_update(cal_list_ug_data *p);
+static void __cal_list_ug_searchbar_entry_changed_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_list_ug_cancel_button_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_list_ug_searchbar_entry_unfocused_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_list_ug_searchbar_clicked_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_list_ug_create_searchbar(cal_list_ug_data *p);
+static char* __cal_list_ug_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__cal_list_ug_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);
+static void __cal_list_ug_update_all_check(cal_list_ug_data* p);
+static void __cal_list_ug_create_searchbar(cal_list_ug_data *p);
+static void __cal_list_ug_append_with_idler(void* data);
+
+static Elm_Genlist_Item_Class itc = {
+       .item_style = "3text.5icon",
+       .func.text_get = __cal_list_ug_get_genlist_item_label,
+       .func.content_get = __cal_list_ug_get_genlist_item_icon,
+       .decorate_all_item_style = "edit_default",
+};
+
+static Calendar_color calendar_color;
+
+//TODO
+#define ELM_GENLIST_ITEM_GROUP (1<<1)
+
+static void __cal_list_ug_add_small_info(cal_list_ug_data *p, int count)
+{
+       c_retm_if(!p, "p is null");
+       struct ug_data *ad = p->ugd;
+       c_retm_if(!ad, "ug data is null");
+
+       Evas_Object *nv = ad->nv;
+       c_retm_if(!nv, "nv is null");
+
+       Evas_Object *notify = NULL;
+       Evas_Object *notify_layout = NULL;
+       char lable_str[ACCOUNT_LABLE_STRING_LENGTH] = { '\0'};
+
+       c_ret_if(count < 0);
+
+       if (!p->notify) {
+               notify = elm_notify_add(nv);
+
+               c_retm_if(!notify, "notify is null");
+
+               elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM);
+
+               p->notify = notify;
+
+               notify_layout = elm_layout_add(notify);
+               if (!notify_layout) {
+                       evas_object_del(p->notify);
+                       p->notify = NULL;
+                       return;
+               }
+
+               p->notify_layout = notify_layout;
+               elm_layout_theme_set(notify_layout, "standard", "selectioninfo", "vertical/bottom_64");
+               elm_object_content_set(notify, notify_layout);
+       }
+
+       snprintf(lable_str, sizeof(lable_str), "%s (%d)", S_("IDS_COM_POP_SELECTED"), count);
+       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(p->notify_layout), "elm.text", lable_str);
+
+       if (0 < count) {
+               evas_object_show(p->notify);
+       } else {
+               evas_object_hide(p->notify);
+       }
+}
+
+static void __cal_list_ug_genlist_item_check_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_list_ug_item_data *item_data = data;
+       Elm_Object_Item *it;
+       Eina_List* realized_list, *l;
+
+       cal_list_ug_data* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is null");
+
+       if (p->genlist_count <= 0) {
+               return;
+       }
+
+       item_data->checked = elm_check_state_get(obj);
+       if (item_data->checked)
+               p->num_check++;
+       else
+               p->num_check--;
+
+       if (item_data->checked || 0 < p->num_check)
+               elm_object_item_disabled_set(p->bt, EINA_FALSE);
+       else
+               elm_object_item_disabled_set(p->bt, EINA_TRUE);
+
+       realized_list = elm_genlist_realized_items_get(p->genlist);
+       EINA_LIST_FOREACH(realized_list, l, it) {
+               if (it)
+                       elm_genlist_item_update(it);
+       }
+
+       if (p->num_check == p->genlist_count) {
+               elm_check_state_set(p->select_all_check,EINA_TRUE);
+               __cal_list_ug_update_all_check(p);
+       } else {
+               elm_check_state_set(p->select_all_check,EINA_FALSE);
+               __cal_list_ug_add_small_info(p, p->num_check);
+       }
+}
+
+static Evas_Object *__cal_list_ug_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!part, NULL, "part is null");
+       c_retvm_if(!obj, NULL, "obj is null");
+       c_retvm_if(!data, NULL, "data is null");
+
+       Evas_Object *icon = NULL;
+       cal_struct *calendar = NULL;
+       cal_list_ug_data* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retvm_if(!p, NULL, "p is null");
+
+       cal_list_ug_item_data *item_data = data;
+       int r;
+       cal_struct *cs = item_data->cs;
+       c_retvm_if(!cs, NULL, "cs is null");
+
+       if (!CAL_STRCMP(part, "elm.edit.icon.1") )      {
+               icon = elm_check_add(obj);
+               c_retvm_if(!icon, NULL, "elm_check_add returned null");
+
+               elm_check_state_pointer_set(icon, &item_data->checked);
+               evas_object_smart_callback_add(icon, "changed", __cal_list_ug_genlist_item_check_changed_callback, item_data);
+               evas_object_propagate_events_set(icon, EINA_FALSE);
+               evas_object_data_set(icon, "priv", p);
+
+               return icon;
+       }
+       else if (!CAL_STRCMP(part, "elm.swallow.colorbar"))
+       {
+               r = CALENDAR_SVC_GET(CAL_STRUCT_CALENDAR, CALENDAR_SVC_STRUCT_GET_INT(cs,CAL_VALUE_INT_CALENDAR_ID), NULL, &calendar);
+               c_retvm_if(r != CAL_SUCCESS, NULL, "calendar_svc_get is failed(%d)", r);
+
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));
+               c_retvm_if(!icon, NULL, "evas_object_rectangle_add returned null");
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               CALENDAR_SVC_GET_CALENDAR_COLOR(calendar, &calendar_color);
+
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+
+               CALENDAR_SVC_STRUCT_FREE(&calendar);
+
+               return icon;
+       }
+
+       return NULL;
+}
+
+static void __cal_list_ug_clear_event_list(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+
+       cal_list_ug_item_data *item;
+       Eina_List *l = NULL;
+
+       EINA_LIST_FOREACH(p->event_list, l, item) {
+               if (item) {
+                       calendar_svc_struct_free(&item->cs);
+                       item->cs = NULL;
+                       free(item);
+                       item=NULL;
+               }
+       }
+
+       if (p->event_list) {
+               eina_list_free(p->event_list);
+               p->event_list = NULL;
+       }
+}
+
+static void __cal_list_ug_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       cal_list_ug_data *p = data;
+
+       is_ug_list_view_destory = TRUE;
+       if (p->idler) {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       __cal_list_ug_clear_event_list(p);
+
+       if (p->no_contents) {
+               evas_object_del(p->no_contents);
+       }
+
+       if (p->searchbar) {
+               evas_object_smart_callback_del(elm_object_part_content_get(p->searchbar, "elm.swallow.content"), "changed", __cal_list_ug_searchbar_entry_changed_callback);
+               evas_object_smart_callback_del(p->searchbar, "cancel,clicked", __cal_list_ug_cancel_button_callback);
+               evas_object_del(p->searchbar);
+               p->searchbar = NULL;
+       }
+
+       CALENDAR_SVC_DEL_EVENT_CHANGED_CALLBACK((void(*)(void*))__cal_list_ug_update);
+
+       if (p->notify) {
+               evas_object_del(p->notify);
+       }
+
+       if (p->box) {
+               elm_box_clear(p->box);
+       }
+
+       free(p);
+}
+
+static char* __cal_list_ug_get_cs(cal_struct *cs)
+{
+       char buf[512];
+       char stime[512];
+       time_t st;
+       struct tm tm;
+       int repeat;
+       const char* time;
+
+       if (is_hour24)
+               time = CAL_UTIL_TIME_FORMAT_6;
+       else
+               time = CAL_UTIL_TIME_FORMAT_1;
+
+       st = CALENDAR_SVC_STRUCT_GET_TIME(cs, CAL_VALUE_GMT_START_DATE_TIME, CAL_TZ_FLAG_GMT);
+       localtime_r(&st, &tm);
+
+       repeat = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_REPEAT_TERM);
+       if (repeat == CAL_REPEAT_NONE)
+       {
+               cal_util_get_time_text(stime, sizeof(stime), NULL, time, &tm);
+               snprintf(buf, sizeof(buf), "%s", stime);
+       } else {
+               cal_util_get_time_text(stime, sizeof(stime), NULL, time, &tm);
+               snprintf(buf, sizeof(buf), "%s", stime);
+       }
+
+       return strdup(buf);
+}
+
+static char* __cal_list_ug_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!part, NULL, "part is null");
+       c_retvm_if(!data, NULL, "data is null");
+
+       const char *str = NULL;
+       cal_list_ug_item_data *item = data;
+       cal_struct *cs = item->cs;
+       c_retvm_if(!cs, NULL, "cs is null");
+
+       if (!CAL_STRCMP(part, "elm.text.1"))
+       {
+               str = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_SUMMARY);
+               if (str)
+                       return strdup(str);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.2"))
+       {
+               str = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_LOCATION);
+               if (str)
+                       return strdup(str);
+
+               return strdup(C_("IDS_CLD_BODY_NO_LOCATION_SELECTED"));
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.3"))
+               return __cal_list_ug_get_cs(cs);
+
+       return NULL;
+}
+
+static void __cal_list_ug_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Eina_List* realized_list, *l;
+       Elm_Object_Item* it;
+       cal_list_ug_item_data* item = data;
+       cal_list_ug_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is null");
+
+       if (p->genlist_count <= 0) {
+               return;
+       }
+
+       item->checked = !(item->checked);
+       if (item->checked) {
+               p->num_check++;
+       } else {
+               p->num_check--;
+       }
+
+       if (item->checked || 0 < p->num_check) {
+               elm_object_item_disabled_set(p->bt, EINA_FALSE);
+       } else if (p->num_check <= 0) {
+               elm_object_item_disabled_set(p->bt, EINA_TRUE);
+       }
+
+       it = elm_genlist_selected_item_get(obj);
+       if (it) {
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+       }
+
+       realized_list = elm_genlist_realized_items_get(obj);
+       EINA_LIST_FOREACH(realized_list, l, it) {
+               if (it) {
+                       elm_genlist_item_update(it);
+               }
+       }
+
+       if (p->num_check == p->genlist_count) {
+               elm_check_state_set(p->select_all_check,EINA_TRUE);
+               __cal_list_ug_update_all_check(p);
+       } else {
+               elm_check_state_set(p->select_all_check,EINA_FALSE);
+               __cal_list_ug_add_small_info(p, p->num_check);
+       }
+
+}
+
+Eina_Bool __cal_list_ug_update_fetch_list_idler(void* data)
+{
+       CAL_FN_START;
+
+       cal_list_ug_data *p = data;
+
+       c_retvm_if(!p, ECORE_CALLBACK_CANCEL, "priv is null.");
+
+       int r;
+       cal_iter *it=NULL;
+       int cal_id;
+       cal_id = 0;
+       it = NULL;
+       cal_list_ug_item_data *item;
+       Eina_Bool is_finished = EINA_FALSE;
+
+       if(is_ug_list_view_destory == EINA_TRUE)
+               return ECORE_CALLBACK_CANCEL;
+
+       if(p->idler == NULL)
+               return ECORE_CALLBACK_CANCEL;
+
+       r = CALENDAR_SVC_GET_LIST(ALL_VISIBILITY_ACCOUNT, ALL_CALENDAR_ID, CAL_STRUCT_SCHEDULE, CAL_VALUE_LIST_FILED, p->offset, MAX_FETCH_COUNT, &it);
+       if (r != CAL_SUCCESS)
+               return ECORE_CALLBACK_CANCEL;
+
+       while (CALENDAR_SVC_ITER_NEXT(it) == CAL_SUCCESS) {
+
+               item = calloc(1, sizeof(cal_list_ug_item_data));
+               c_retvm_if(!item, ECORE_CALLBACK_CANCEL, "item is null");
+
+               r = CALENDAR_SVC_ITER_GET_INFO(it, &item->cs);
+               if (r != CAL_SUCCESS)
+                       break;
+
+               p->event_list = eina_list_append(p->event_list, item);
+       }
+
+       CALENDAR_SVC_ITER_REMOVE(&it);
+
+       if(eina_list_count(p->event_list) < MAX_FETCH_COUNT)
+               is_finished = EINA_TRUE;
+
+       __cal_list_ug_append_with_idler(p);
+
+       if(is_finished || (p->offset == p->totalcnt))
+       {
+               if (p->idler)
+               {
+                       ecore_idler_del(p->idler);
+                       p->idler = NULL;
+               }
+
+               p->offset= 0;
+
+               return ECORE_CALLBACK_CANCEL;
+       }
+       else
+       {
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_list_ug_get_event_list(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+
+       int r;
+       cal_iter *it = NULL;
+       cal_list_ug_item_data *item;
+
+       p->totalcnt = CALENDAR_SVC_GET_COUNT(ALL_ACCOUNT_ID,ALL_CALENDAR_ID,CAL_STRUCT_SCHEDULE);
+
+       p->offset = 0;
+
+       r = CALENDAR_SVC_GET_LIST(ALL_ACCOUNT_ID, ALL_CALENDAR_ID, CAL_STRUCT_SCHEDULE, CAL_VALUE_LIST_FILED, 0, MAX_FETCH_COUNT, &it);
+
+       if (r != CAL_SUCCESS)
+               return;
+
+       while (CALENDAR_SVC_ITER_NEXT(it) == CAL_SUCCESS)       {
+
+               item = calloc(1, sizeof(cal_list_ug_item_data));
+               c_retm_if(!item, "item is null");
+
+               r = CALENDAR_SVC_ITER_GET_INFO(it, &item->cs);
+               if (r != CAL_SUCCESS)
+                       break;
+
+               p->event_list = eina_list_append(p->event_list, item);
+       }
+
+       CALENDAR_SVC_ITER_REMOVE(&it);
+       if (eina_list_count(p->event_list) < p->totalcnt) {
+               if (!p->idler) {
+                       p->idler = ecore_idler_add(__cal_list_ug_update_fetch_list_idler,p);
+               }
+       }
+}
+static bool __cal_list_ug_strstr(const char *pszParent, const char * pszChild)
+{
+       bool bRst = false;
+       if (!pszParent || !pszChild) {
+               return false;
+       }
+
+       GString * gSrc = g_string_new(pszParent);
+       if (!gSrc) {
+               return false;
+       }
+
+       GString * gDes = g_string_new(pszChild);
+       if (!gDes) {
+               g_string_free(gSrc,true);
+               return false;
+       }
+
+       gSrc = g_string_ascii_up(gSrc);
+       if (!gSrc) {
+               g_string_free(gDes,true);
+               return false;
+       }
+
+       gDes = g_string_ascii_up(gDes);
+       if (!gDes) {
+               g_string_free(gSrc,true);
+               return false;
+       }
+
+       if (g_strrstr(gSrc->str,gDes->str)) {
+               bRst = true;
+       } else {
+               bRst = false;
+       }
+
+       g_string_free(gSrc,true);
+       g_string_free(gDes,true);
+       return bRst;
+}
+static void __cal_list_ug_append_with_idler(void* data)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_list_ug_data* p = data;
+       Eina_List *event_list, *l = NULL;
+       cal_list_ug_item_data *item = NULL;
+       Elm_Object_Item *it = NULL;
+       const char* summary = NULL;
+
+       event_list = eina_list_nth_list(p->event_list, p->offset-1);
+       if (event_list) {
+               event_list = eina_list_next(event_list);
+               c_retm_if(NULL == event_list, "eina_list_nth_list(append_list, 1) is null");
+       }
+       c_retm_if(!event_list, "eina_list_nth(list, %d) returned null", p->offset);
+
+       EINA_LIST_FOREACH(event_list, l, item) {
+               if (item && item->cs) {
+                       if (p->searchtext && 0 < strlen(p->searchtext)) {
+                               summary = CALENDAR_SVC_STRUCT_GET_STR(item->cs, CAL_VALUE_TXT_SUMMARY);
+
+                               if (summary && __cal_list_ug_strstr(summary, p->searchtext)) {
+                                       it = elm_genlist_item_append(p->genlist, &itc, item, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_ug_genlist_item_select_callback, item);
+                                       c_retm_if(!it, "elm_genlist_item_append is failed");
+
+                                       if (item && item->checked)
+                                               p->num_check++;
+
+                                       p->genlist_count++;
+                               }
+
+                       } else {
+
+                               if (item && item->checked)
+                                       p->num_check++;
+
+                               it = elm_genlist_item_append(p->genlist, &itc, item, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_ug_genlist_item_select_callback, item);
+                               c_retm_if(!it, "elm_genlist_item_append is failed");
+
+                               p->genlist_count++;
+                       }
+               }
+
+               p->offset++;
+       }
+}
+
+static void __cal_list_ug_append_genlist(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+       c_ret_if(p->event_list <= 0);
+
+       Eina_List *l = NULL;
+       cal_list_ug_item_data *item = NULL;
+       Elm_Object_Item *it = NULL;
+       const char* summary = NULL;
+       p->genlist_count = 0;
+
+       EINA_LIST_FOREACH(p->event_list, l, item) {
+               if (item && item->cs) {
+                       if (p->searchtext && 0 < strlen(p->searchtext)) {
+                               summary = CALENDAR_SVC_STRUCT_GET_STR(item->cs, CAL_VALUE_TXT_SUMMARY);
+
+                               if (summary && __cal_list_ug_strstr(summary, p->searchtext)) {
+                                       it = elm_genlist_item_append(p->genlist, &itc, item, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_ug_genlist_item_select_callback, item);
+                                       c_retm_if(!it, "elm_genlist_item_append is failed");
+                                       if (item && item->checked)
+                                               p->num_check++;
+
+                                       p->genlist_count++;
+                               }
+
+                       } else {
+
+                               if (item && item->checked)
+                                       p->num_check++;
+
+                               it = elm_genlist_item_append(p->genlist, &itc, item, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_ug_genlist_item_select_callback, item);
+                               c_retm_if(!it, "elm_genlist_item_append is failed");
+
+                               p->genlist_count++;
+                       }
+
+               }
+
+               p->offset++;
+
+       }
+
+       if (p->genlist_count == p->num_check)
+               elm_check_state_set(p->select_all_check, EINA_TRUE);
+       else
+               elm_check_state_set(p->select_all_check, EINA_FALSE);
+
+       if (p->num_check <= 0) {
+               evas_object_hide(p->notify);
+               elm_object_item_disabled_set(p->bt, EINA_TRUE);
+       } else
+               elm_object_item_disabled_set(p->bt, EINA_FALSE);
+}
+
+static void __cal_list_ug_create_searchbar(cal_list_ug_data *p)
+{
+       c_retm_if(!p, "priv is null.");
+       c_retm_if(!p->ly, "p->ly is null.");
+
+       Evas_Object *searchbar = cal_util_add_searchbar(p->ly, NULL, NULL, EINA_TRUE);
+       c_retm_if(!searchbar, "cal_util_add_searchbar() returned null.");
+
+       Evas_Object *en = elm_object_part_content_get(searchbar, "elm.swallow.content");
+       c_retm_if(!en, "elm_object_part_content_get returned null.");
+
+       elm_entry_input_panel_layout_set(en, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &_limit_20char);
+
+       evas_object_size_hint_weight_set(searchbar, EVAS_HINT_EXPAND, 0.1);
+       evas_object_size_hint_align_set(searchbar, EVAS_HINT_FILL, 0.6);
+
+       evas_object_smart_callback_add(en, "changed", __cal_list_ug_searchbar_entry_changed_callback, p);
+       evas_object_smart_callback_add(en, "unfocused", __cal_list_ug_searchbar_entry_unfocused_callback, p);
+       evas_object_smart_callback_add(searchbar, "clicked", __cal_list_ug_searchbar_clicked_callback, p);
+       evas_object_smart_callback_add(searchbar, "cancel,clicked", __cal_list_ug_cancel_button_callback, p);
+
+       evas_object_show(searchbar);
+
+       elm_object_part_content_set(p->ly, "searchbar", searchbar);
+       p->searchbar = searchbar;
+}
+
+static void __cal_list_ug_select_all_mouse_up_callback(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       cal_list_ug_data *p = data;
+
+       Evas_Event_Mouse_Up *ev = event_info;
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       if (p->genlist_count <= 0) {
+               return;
+       }
+       elm_check_state_set(p->select_all_check, !elm_check_state_get(p->select_all_check));
+
+       __cal_list_ug_update_all_check(p);
+}
+
+static void __cal_list_ug_select_all_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!obj, "obj is null");
+
+       cal_list_ug_data* p = data;
+       c_retm_if(!p, "p is null");
+       if (p->genlist_count <= 0) {
+               return;
+       }
+
+       __cal_list_ug_update_all_check(p);
+}
+
+static void __cal_list_ug_create_select_all(cal_list_ug_data* p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->ly, "p->lu is null");
+       c_retm_if(!p->box, "p->box is null");
+
+       Evas_Object* layout = p->select_all_layout = elm_layout_add(p->box);
+       c_retm_if(!layout, "elm_layout_add returned null");
+
+       elm_layout_theme_set(layout, "genlist", "item", "select_all/default");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_UP, __cal_list_ug_select_all_mouse_up_callback, p);
+
+       Evas_Object* check = p->select_all_check = elm_check_add(p->select_all_layout);
+
+       c_retm_if(!check, "elm_check_add returned null");
+       evas_object_smart_callback_add(check, "changed", __cal_list_ug_select_all_changed_callback, p);
+       evas_object_propagate_events_set(check, EINA_FALSE);
+
+       elm_object_part_content_set(layout, "elm.icon", check);
+       evas_object_data_set(p->select_all_check, "layout", p->select_all_layout);
+       elm_object_part_text_set(p->select_all_layout, "elm.text", S_("IDS_COM_BODY_SELECT_ALL"));
+       elm_box_pack_start(p->box, p->select_all_layout);
+       evas_object_show(p->select_all_layout);
+}
+
+static void __cal_list_ug_update_event_list(cal_list_ug_data *p)
+{
+       __cal_list_ug_clear_event_list(p);
+
+       p->num_check = 0;
+       p->offset = 0;
+
+       __cal_list_ug_get_event_list(p);
+}
+
+static void __cal_list_ug_update(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+
+       if (p->idler) {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       __cal_list_ug_update_event_list(p);
+
+       if (p->event_list && 0 < eina_list_count(p->event_list)) {
+               p->no_contents = NULL;
+
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->ly), "searchbar,show", "prog");
+
+               if (!p->conformant) {
+                       Evas_Object *conformant = elm_conformant_add(p->ly);
+                       c_retm_if(!conformant, "conformant is null");
+
+                       elm_object_style_set(conformant, "internal_layout");
+                       evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+                       elm_object_part_content_set(p->ly, "sw", conformant);
+
+                       p->conformant = conformant;
+               }
+
+               __cal_list_ug_create_searchbar(p);
+
+               if (!p->box) {
+                       Evas_Object *box = elm_box_add(p->conformant);
+                       c_retm_if(!box, "box is null");
+
+                       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+                       elm_object_content_set(p->conformant, box);
+
+                       p->box = box;
+               }
+
+               __cal_list_ug_create_select_all(p);
+
+               if (!p->genlist)
+               {
+                       Evas_Object *genlist = elm_genlist_add(p->ly);
+                       c_retm_if(!genlist, "genlist is null");
+
+                       elm_genlist_decorate_mode_set(genlist, EINA_TRUE);
+                       evas_object_data_set(genlist, "priv", p);
+                       elm_genlist_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF,ELM_SCROLLER_POLICY_OFF);
+                       elm_genlist_block_count_set(genlist, 20);
+                       elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+                       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                       evas_object_show(genlist);
+                       elm_box_pack_end(p->box, genlist);
+
+                       p->genlist = genlist;
+               }
+               else
+                       elm_genlist_clear(p->genlist);
+
+               __cal_list_ug_append_genlist(p);
+       }
+       else {
+               p->conformant = NULL;
+               p->box = NULL;
+               p->select_all_layout = NULL;
+               p->genlist = NULL;
+
+               if (p->notify)
+                       evas_object_hide(p->notify);
+
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->ly), "searchbar,hide", "prog");
+
+               if (!p->no_contents) {
+                       Evas_Object *no_contents = cal_util_add_nocontents(p->ly, C_("IDS_CLD_BODY_NO_EVENTS"));
+                       c_retm_if(!no_contents, "no_contents is null.");
+
+                       elm_object_part_content_set(p->ly, "sw", no_contents);
+
+                       p->no_contents = no_contents;
+               }
+
+               elm_object_item_disabled_set(p->bt, EINA_TRUE);
+
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_list_ug_update_all_check(cal_list_ug_data* p)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->genlist, "p is null");
+
+       Elm_Object_Item *it;
+       Eina_List *realized_list, *l;
+       cal_list_ug_item_data* item_data;
+
+       if (elm_check_state_get(p->select_all_check)) {
+               p->num_check = p->genlist_count;
+               elm_object_item_disabled_set(p->bt, EINA_FALSE);
+               __cal_list_ug_add_small_info(p, p->genlist_count);
+       } else {
+               p->num_check = 0;
+               elm_object_item_disabled_set(p->bt, EINA_TRUE);
+               evas_object_hide(p->notify);
+       }
+
+       it = elm_genlist_first_item_get(p->genlist);
+       while (it) {
+               item_data = elm_object_item_data_get(it);
+               if (item_data) {
+                       item_data->checked = elm_check_state_get(p->select_all_check);
+               }
+               it = elm_genlist_item_next_get(it);
+       }
+
+       realized_list = elm_genlist_realized_items_get(p->genlist);
+       EINA_LIST_FOREACH(realized_list, l, it)
+       {
+               if (it) {
+                       elm_genlist_item_update(it);
+               }
+       }
+}
+
+static Evas_Object* __cal_list_ug_create_layout(Evas_Object *parent, struct ug_data *ugd)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!parent, NULL, "parent is null");
+       c_retvm_if(!ugd, NULL, "ugd is null");
+
+       cal_list_ug_data *p = calloc(1, sizeof(cal_list_ug_data));
+       c_retvm_if(!p, NULL, "p is null");
+
+       p->name = _name;
+       p->ugd = ugd;
+       p->parent = parent;
+       p->searchtext = NULL;
+       p->notify_layout = NULL;
+       p->notify = NULL;
+       p->navi_item = NULL;
+       p->genlist_count = 0;
+       p->bg = NULL;
+
+       is_ug_list_view_destory = EINA_FALSE;
+
+       Evas_Object *ly = cal_util_add_layout(parent, p->name);
+       if (!ly)
+       {
+               ERR("cal_util_add_layout returned null");
+               free(p);
+               return NULL;
+       }
+       p->ly = ly;
+       evas_object_data_set(ly, "priv", p);
+
+       p->bg = cal_util_add_bg(ly,EINA_FALSE);
+       if (!p->bg) {
+               ERR("cal_util_add_bg returned null");
+               evas_object_del(ly);
+               free(p);
+               ERR("bg is null");
+               return NULL;
+       }
+       elm_object_part_content_set(ly, "base", p->bg);
+
+       __cal_list_ug_update(p);
+
+       evas_object_show(ly);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_list_ug_delete_layout, p);
+       CALENDAR_SVC_ADD_EVENT_CHANGED_CALLBACK((void(*)(void*))__cal_list_ug_update, p);
+
+       return ly;
+}
+
+
+static void __cal_list_ug_get_time_text(time_t t, int allday, char *buf, int sz)
+{
+       struct tm tm;
+       const char* time;
+
+       localtime_r(&t, &tm);
+
+       if (is_hour24)
+               time = CAL_UTIL_TIME_FORMAT_6;
+       else
+               time = CAL_UTIL_TIME_FORMAT_1;
+
+       if (allday)
+               cal_util_get_time_text(buf, sz, CAL_UTIL_DATE_FORMAT_1, NULL, &tm);
+       else
+               cal_util_get_time_text(buf, sz, CAL_UTIL_DATE_FORMAT_1, time, &tm);
+}
+
+static void __cal_list_ug_get_start_time_text(cal_struct *cs, char *buf, int sz)
+{
+       int allday;
+       time_t t;
+
+       allday = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+
+       t = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_START_DATE_TIME, CAL_TZ_FLAG_LOCAL));
+
+       __cal_list_ug_get_time_text(t, allday, buf, sz);
+}
+
+static void __cal_list_ug_get_end_time_text(cal_struct *cs, char *buf, int sz)
+{
+       int allday;
+       time_t t;
+
+       allday = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_ALL_DAY_EVENT);
+
+       t = mktime(CALENDAR_SVC_STRUCT_GET_TM(cs, CAL_VALUE_GMT_END_DATE_TIME, CAL_TZ_FLAG_LOCAL));
+
+       __cal_list_ug_get_time_text(t, allday, buf, sz);
+}
+
+
+static void __cal_list_ug_get_message_content(cal_struct *cs, char *body , int nsize)
+{
+       c_retm_if(!cs, "cs is null");
+
+       char *content = NULL;
+       char *title = NULL;
+       char *location = NULL;
+       char start[1024] = "Start\n";
+       char end[1024] = "End\n";
+       char buf[1024] = {0};
+
+       content = _("Check this schedule,please");
+
+       title = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_SUMMARY);
+       if (!title)
+               title = C_("IDS_CLD_BODY_NO_TITLE");
+
+       location = CALENDAR_SVC_STRUCT_GET_STR(cs, CAL_VALUE_TXT_LOCATION);
+       if (!location)
+               location = _("No location");
+
+       __cal_list_ug_get_start_time_text(cs, buf, sizeof(buf));
+       CAL_STRNCAT(start,buf,sizeof start)
+
+               __cal_list_ug_get_end_time_text(cs, buf, sizeof(buf));
+       CAL_STRNCAT(end,buf,sizeof end)
+
+       snprintf(body, nsize, "%s\n%s\n%s\n%s\n%s",content, title, location, start, end);
+}
+
+
+static void __cal_list_ug_add_bundle_event(bundle *b, cal_struct *cs, int idx)
+{
+       char txt_content[1024*5] = {0};
+
+       __cal_list_ug_get_message_content(cs, txt_content,sizeof txt_content);
+
+       bundle_add(b, "BODY", txt_content);
+}
+
+static void __cal_list_ug_add_bundle_vcs(bundle *b, cal_struct *cs, int idx, const char *caller)
+{
+       int cid;
+       int r;
+       char buf[FILENAME_MAX];
+       char path[FILENAME_MAX];
+
+       cid = CALENDAR_SVC_STRUCT_GET_INT(cs, CAL_VALUE_INT_INDEX);
+
+       snprintf(buf, sizeof(buf), "vfile%d", idx);
+       snprintf(path, sizeof(path), "%s/Calendar_%d.vcs", VFILE_PATH, cid);
+
+       r = CALENDAR_SVC_UTIL_SAVE_VCS_BY_INDEX(cid, path);
+       if (r == CAL_SUCCESS)
+               bundle_add(b, buf, path);
+}
+
+static void __cal_list_ug_add_bundle(bundle *b, cal_struct *cs, int idx, struct ug_data *ugd)
+{
+       switch (ugd->mode) {
+       case _MODE_GET_EVT:
+               __cal_list_ug_add_bundle_event(b, cs, idx);
+               break;
+       case _MODE_GET_VCS:
+               __cal_list_ug_add_bundle_vcs(b, cs, idx, ugd->caller);
+               break;
+       default:
+               // do nothing
+               break;
+       }
+}
+
+static bundle* __cal_list_ug_make_bundle(cal_list_ug_data *p, struct ug_data *ugd)
+{
+       c_retvm_if(!p, NULL, "p is null");
+       c_retvm_if(!ugd, NULL, "ugd is null");
+
+       bundle *b = NULL;
+       Eina_List *l;
+       cal_list_ug_item_data* item_data;
+       int count = 0;
+       char buf[32] = {'\0'};
+
+       b = bundle_create();
+       c_retvm_if(!b, NULL, "bundle_create returned null");
+
+       EINA_LIST_FOREACH(p->event_list, l, item_data)
+       {
+               if (item_data && item_data->checked)
+               {
+                       count++;
+                       __cal_list_ug_add_bundle(b, item_data->cs, count, ugd);
+               }
+       }
+
+       snprintf(buf, sizeof(buf), "%d", count);
+       bundle_add(b, "count", buf);
+
+       return b;
+}
+
+static void __cal_list_ug_attach(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+
+       Evas_Object *ly = data;
+       cal_list_ug_data *p;
+       struct ug_data *ugd;
+       bundle *b;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!p, "p is null");
+
+       ugd = p->ugd;
+       c_retm_if(!ugd, "ugd is null");
+
+       switch (ugd->mode)
+       {
+       case _MODE_GET_EVT:
+       case _MODE_GET_VCS:
+               b = __cal_list_ug_make_bundle(p, ugd);
+               c_retm_if(!b, "b is null");
+               break;
+       default:
+               b = NULL;
+               break;
+       }
+
+       if (b)
+       {
+               ug_send_result(ugd->ug, b);
+               bundle_free(b);
+       }
+
+       ug_destroy_me(ugd->ug);
+}
+
+static void __cal_list_ug_add_controlbar( struct ug_data *ugd, Evas_Object *ly, const char* title)
+{
+       Evas_Object *cbar = NULL;
+       Elm_Object_Item* navi_item = NULL;
+       Elm_Object_Item * attach_button = NULL;
+       cal_list_ug_data* p = evas_object_data_get(ly,"priv");
+       c_retm_if(!p, "p is null");
+
+       cbar = cal_util_add_controlbar(ugd->nv);
+       c_retm_if(!cbar, "cal_util_add_controlbar returned null");
+
+       elm_toolbar_item_append(cbar, NULL, NULL, NULL, NULL);
+
+       attach_button = elm_toolbar_item_append(cbar, NULL, S_("IDS_COM_POP_ATTACH"), __cal_list_ug_attach, ly);
+       c_retm_if(!attach_button, "elm_toolbar_item_append returned null");
+       p->bt = attach_button;
+
+       elm_object_item_disabled_set(p->bt, EINA_TRUE);
+
+       is_hour24 = ugd->is_hour24;
+
+       navi_item = elm_naviframe_item_push(ugd->nv, title, NULL, NULL, ly, NULL);
+       if (!navi_item)
+       {
+               ERR("elm_naviframe_item_push returned null");
+               evas_object_del(cbar);
+               return;
+       }
+
+       elm_object_item_part_content_set(navi_item, "controlbar", cbar);
+}
+
+void cal_list_ug_create(const char *title, struct ug_data *ugd)
+{
+       Evas_Object *ly = __cal_list_ug_create_layout(ugd->nv, ugd);
+       if (!ly)
+               return;
+
+       ugd->cont = ly;
+
+       __cal_list_ug_add_controlbar(ugd, ly, title);
+}
+
+static void __cal_list_ug_searchbar_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       cal_list_ug_data *p = data;
+       c_retm_if(!p, "priv is null.");
+
+       p->searchtext = elm_object_text_get(elm_object_part_content_get(p->searchbar, "elm.swallow.content"));
+
+       elm_genlist_clear(p->genlist);
+
+       if (!p->genlist) {
+               p->genlist = elm_genlist_add(p->parent);
+               c_retm_if(!p->genlist, "p->genlist is null");
+               elm_genlist_decorate_mode_set(p->genlist, EINA_TRUE);
+               evas_object_data_set(p->genlist, "priv", p);
+       }
+
+       p->num_check = 0;
+       p->offset = 0;
+       __cal_list_ug_append_genlist(p);
+       if (p->genlist_count == p->num_check) {
+               if (p->num_check == 0) {
+                       elm_check_state_set(p->select_all_check,EINA_FALSE);
+                       elm_object_disabled_set(p->select_all_check,EINA_TRUE);
+               } else {
+                       elm_check_state_set(p->select_all_check,EINA_TRUE);
+               }
+       } else {
+               elm_check_state_set(p->select_all_check,EINA_FALSE);
+       }
+
+       if (p->genlist_count > 0) {
+               elm_object_disabled_set(p->select_all_check,EINA_FALSE);
+       }
+
+       if (0 < p->num_check)
+               elm_object_item_disabled_set(p->bt, EINA_FALSE);
+       else
+               elm_object_item_disabled_set(p->bt, EINA_TRUE);
+
+       __cal_list_ug_add_small_info(p,p->num_check);
+}
+
+static void __cal_list_ug_cancel_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_list_ug_data *p = data;
+       Eina_List *l = NULL;
+       cal_list_ug_item_data *item =NULL;
+
+       Evas_Object *en = elm_object_part_content_get(p->searchbar, "elm.swallow.content");
+       c_retm_if(!en, "elm_object_part_content_get returned null");
+
+       Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
+       c_retm_if(!imf_context, "elm_entry_imf_context_get returned null");
+
+       if (imf_context)
+               ecore_imf_context_input_panel_hide(imf_context);
+
+       if (0 < p->num_check)
+               elm_object_item_disabled_set(p->bt, EINA_FALSE);
+       else
+               elm_object_item_disabled_set(p->bt, EINA_TRUE);
+
+       p->num_check = 0;
+
+       EINA_LIST_FOREACH(p->event_list, l, item) {
+               if (item != NULL && item->checked) {
+                       p->num_check++;
+               }
+       }
+
+       if (p->genlist_count == p->num_check && p->num_check != 0) {
+               elm_check_state_set(p->select_all_check, EINA_TRUE);
+       } else {
+               elm_check_state_set(p->select_all_check, EINA_FALSE);
+       }
+       elm_object_disabled_set(p->select_all_check,EINA_FALSE);
+
+       __cal_list_ug_add_small_info(p,p->num_check);
+}
+
+static void __cal_list_ug_searchbar_entry_unfocused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null.");
+       cal_list_ug_data *p = data;
+
+       if (p->num_check <= 0) {
+               elm_object_item_disabled_set(p->bt, EINA_TRUE);
+       } else {
+               elm_object_item_disabled_set(p->bt, EINA_FALSE);
+       }
+
+       __cal_list_ug_add_small_info(p,p->num_check);
+}
+
+static void __cal_list_ug_searchbar_clicked_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null.");
+       cal_list_ug_data *p = data;
+
+       elm_object_item_disabled_set(p->bt, EINA_TRUE);
+}
diff --git a/ug/list/ug.c b/ug/list/ug.c
new file mode 100755 (executable)
index 0000000..0284ddb
--- /dev/null
@@ -0,0 +1,348 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <calendar-svc-provider.h>
+#include <libintl.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+
+#include "cld.h"
+#include "ug.h"
+
+// TODO: get full path from caller
+#define VFILE_PATH "/opt/data/ug-calendar"
+
+extern int appcore_set_i18n(const char *, const char *);
+
+static char* __cal_ug_get_caller(bundle *b, const char *key)
+{
+       const char *v;
+
+       v = bundle_get_val(b, key);
+       if (!v || v[0] == '\0')
+               return strdup("Unknown");
+
+       return strdup(v);
+}
+
+static char* __cal_ug_get_file_name(bundle *b, const char *key)
+{
+       const char *v;
+       char path[FILENAME_MAX];
+       int r;
+
+       v = bundle_get_val(b, key);
+       if (!v || v[0] == '\0')
+               return NULL;
+
+       // TODO: check full path or not
+
+       snprintf(path, sizeof(path), "%s/%s", VFILE_PATH, v);
+
+       r = access(path, R_OK);
+       if (r == -1)
+       {
+               ERR("UG: Access failed: %s", path);
+               return NULL;
+       }
+
+       return strdup(path);
+}
+
+static enum cld_ug_mode __cal_ug_get_mode(bundle *b, const char *key)
+{
+       const char *v;
+
+       v = bundle_get_val(b, key);
+       if (!v || v[0] == '\0')
+               return _MODE_UNKNOWN;
+
+       if (!CAL_STRCMP(v, "file"))
+               return _MODE_GET_VCS;
+
+       if (!CAL_STRCMP(v, "text"))
+               return _MODE_GET_EVT;
+
+       if (!CAL_STRCMP(v, "view"))
+               return _MODE_VIEW_VCS;
+
+       return _MODE_UNKNOWN;
+}
+
+static inline int __cal_ug_set_ug_date(struct ug_data *ugd, bundle *b)
+{
+       int r,val;
+
+       if (!b)
+       {
+               ERR("UG: bundle is NULL");
+               return -1;
+       }
+
+       ugd->mode = __cal_ug_get_mode(b, "mode");
+       if (ugd->mode == _MODE_UNKNOWN)
+       {
+               ERR("UG: get mode failed");
+               return -1;
+       }
+
+       r = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &val);
+       if(0 > r)
+       {
+               ugd->is_hour24 = 0;
+       }
+       else if( val == 1 || val == 2)
+       {
+               ugd->is_hour24 = val -1;
+       }
+       else
+               ERR("vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &val); error");
+
+       switch (ugd->mode)
+       {
+       case _MODE_GET_VCS:
+               ugd->caller = __cal_ug_get_caller(b, "caller");
+               break;
+       case _MODE_VIEW_VCS:
+               ugd->vcs_file = __cal_ug_get_file_name(b, "file");
+               if (!ugd->vcs_file)
+               {
+                       ERR("UG: Invalid filename");
+                       return -1;
+               }
+               break;
+       default:
+               // do nothing
+               break;
+       }
+
+       return 0;
+}
+
+static void __cal_ug_back_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       struct ug_data *ugd = data;
+
+       if (ugd && ugd->ug)
+               ug_destroy_me(ugd->ug);
+}
+
+static void __cal_ug_add_back_button(struct ug_data *ugd)
+{
+       Evas_Object *bt;
+
+       bt = elm_button_add(ugd->nv);
+       if (!bt)
+               return;
+
+       elm_object_style_set(bt, "naviframe/back_btn/default");
+       // TODO: i18n
+       elm_object_text_set(bt, "Back");
+       evas_object_show(bt);
+
+       Elm_Object_Item* navi_item = elm_naviframe_top_item_get(ugd->nv);
+
+       elm_object_item_part_content_set(navi_item, "prev_btn", bt);
+
+       evas_object_smart_callback_add(bt, "clicked", __cal_ug_back_button_callback, ugd);
+}
+
+extern         void cal_vcs_viewer_ug_create(struct ug_data *ugd);
+
+static Evas_Object *__cal_ug_create(Evas_Object *parent, struct ug_data *ugd)
+{
+       ugd->base = cal_util_add_layout(parent, NULL);
+       CAL_ASSERT(ugd->base);
+
+       ugd->nv = elm_naviframe_add(parent);
+       CAL_ASSERT(ugd->nv);
+
+       ugd->bg = cal_util_add_bg(ugd->base, EINA_FALSE);
+       CAL_ASSERT(ugd->bg);
+
+       elm_object_theme_set(ugd->nv, ugd->theme);
+       elm_object_part_content_set(ugd->base, "elm.swallow.content", ugd->nv);
+       elm_object_part_content_set(ugd->base, "elm.swallow.bg", ugd->bg);
+
+       switch (ugd->mode) {
+       case _MODE_GET_EVT:
+       case _MODE_GET_VCS:
+               cal_list_ug_create(S_("IDS_COM_BODY_CALENDAR"), ugd);
+               break;
+       case _MODE_VIEW_VCS:
+               cal_vcs_viewer_ug_create(ugd);
+               break;
+       default:
+               // do nothing
+               break;
+       }
+
+       if (!ugd->cont) {
+               evas_object_del(ugd->base);
+               return NULL;
+       }
+
+       __cal_ug_add_back_button(ugd);
+
+       return ugd->base;
+}
+
+static void __cal_ug_free_data(struct ug_data *ugd)
+{
+       free(ugd->caller);
+
+       free(ugd->vcs_file);
+}
+
+static void *__cal_ug_create_callback(struct ui_gadget *ug, enum ug_mode mode, bundle *data, void *priv)
+{
+       Evas_Object *parent;
+       struct ug_data *ugd;
+       int r = 0;
+       Evas_Object *base;
+
+       if (!ug || !priv)
+               return NULL;
+
+       ugd = priv;
+       ugd->ug = ug;
+
+       cal_util_connect_pattern_generator();
+
+       ugd->theme = elm_theme_new();
+       if(NULL == ugd->theme)
+       {
+               ERR("elm_theme_new is failed");
+               return NULL;
+       }
+       elm_theme_ref_set(ugd->theme, NULL);     //refer to default theme(NULL)
+
+       //cal_util_elm_theme_extension(ugd->theme);
+
+
+       if (mode != UG_MODE_FULLVIEW)
+               return NULL;
+
+       parent = ug_get_parent_layout(ug);
+       if (!parent)
+               return NULL;
+
+       r = __cal_ug_set_ug_date(ugd, data);
+       if (r)
+               return NULL;
+
+       r = CALENDAR_SVC_CONNECT();
+       if (r != CAL_SUCCESS) {
+               ERR("UG: calendar service connect failed");
+               __cal_ug_free_data(ugd);
+               return NULL;
+       }
+
+       base = __cal_ug_create(parent, ugd);
+       if (!base) {
+               CALENDAR_SVC_DISCONNECT();
+               __cal_ug_free_data(ugd);
+               return NULL;
+       }
+
+       return base;
+}
+
+static void __cal_ug_destroy_callback(struct ui_gadget *ug, bundle *data, void *priv)
+{
+       struct ug_data *ugd;
+
+       if (!ug || !priv)
+               return;
+
+       ugd = priv;
+
+       CALENDAR_SVC_DISCONNECT();
+
+       cal_util_disconnect_pattern_generator();
+
+       __cal_ug_free_data(ugd);
+
+       cal_util_delete_evas_object(&ugd->base);
+}
+
+static void __cal_ug_key_callback(struct ui_gadget *ug, enum ug_key_event evt, bundle *data, void *priv)
+{
+       if (!ug)
+               return;
+
+       DBG("UG: key event %d", evt);
+
+       switch (evt)
+       {
+       case UG_KEY_EVENT_END:
+               ug_destroy_me(ug);
+               break;
+       default:
+               break;
+       }
+}
+
+static inline void __cal_ug_bind_text_domain()
+{
+       const char *r;
+
+       r = bindtextdomain(UGNAME, UGLOCALE);
+       if (!r)
+               ERR("UG: bindtextdomain error");
+}
+
+API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       struct ug_data *ugd;
+
+       if (!ops)
+               return -1;
+
+       CAL_CALLOC(ugd, 1, struct ug_data);
+
+       ops->create = __cal_ug_create_callback;
+       ops->destroy = __cal_ug_destroy_callback;
+       ops->key_event = __cal_ug_key_callback;
+       ops->priv = ugd;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       __cal_ug_bind_text_domain();
+
+       appcore_set_i18n(CALENDAR_PACKAGE, LOCALEDIR);
+
+       return 0;
+}
+
+API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       struct ug_data *ugd;
+
+       if (!ops)
+               return;
+
+       ugd = ops->priv;
+       free(ugd);
+}
diff --git a/ug/list/ug.h b/ug/list/ug.h
new file mode 100755 (executable)
index 0000000..8ff8991
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_UG_H__
+#define __CALENDAR_UG_H__
+
+#include <ui-gadget-module.h>
+#include "cld.h"
+
+enum cld_ug_mode {
+       _MODE_UNKNOWN = 0,
+       _MODE_GET_EVT,
+       _MODE_GET_VCS,
+       _MODE_VIEW_VCS,
+};
+
+struct ug_data {
+       Evas_Object *base;
+       struct ui_gadget *ug;
+
+       Evas_Object *nv;
+       Evas_Object *cont;
+       Evas_Object *bg;
+
+       enum cld_ug_mode mode;
+       char *caller;
+       char *vcs_file;
+
+       int is_hour24;
+
+       Elm_Theme *theme;
+};
+
+void cal_list_ug_create(const char *title, struct ug_data *ugd);
+
+#endif /* __CALENDAR_UG_H__ */
diff --git a/ug/settings/CMakeLists.txt b/ug/settings/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..8bffe9c
--- /dev/null
@@ -0,0 +1,15 @@
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+
+SET(UG_SETTINS_SRCS
+               ug-settings.c
+               ug-settings-view.c
+               ${CMAKE_SOURCE_DIR}/src/edit-repeat.c
+)
+
+ADD_DEFINITIONS("-DUGLOCALE=\"${UG_LOCALE}\"")
+
+ADD_LIBRARY(${UGSETTINGS} SHARED ${UG_SETTINS_SRCS})
+SET_TARGET_PROPERTIES(${UGSETTINGS} PROPERTIES COMPILE_FLAGS "${UG_CFLAGS}")
+TARGET_LINK_LIBRARIES(${UGSETTINGS} ${COMMON_LIB} ${UG_PKGS_LDFLAGS})
+
+INSTALL(TARGETS ${UGSETTINGS} DESTINATION ${UG_LIB})
diff --git a/ug/settings/ug-settings-view.c b/ug/settings/ug-settings-view.c
new file mode 100755 (executable)
index 0000000..53bd2c2
--- /dev/null
@@ -0,0 +1,565 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <vconf.h>
+
+#include "cld.h"
+#include "ug-settings.h"
+
+typedef enum {
+       UI_SEPARATOR_TOP,
+       UI_SEPARATOR_MIDDLE,
+       UI_SEPARATOR_BOTTOM
+}ui_separator;
+
+typedef enum{
+       FIRST_DAY_SUNDAY = 0,
+       FIRST_DAY_MONDAY
+}first_day_type;
+
+typedef enum{
+       FOCUS_IN_DAILY = 1,
+       FOCUS_IN_WEEKLY
+}focus_in_month_view_type;
+
+typedef enum{
+       ITEM_LOCK_TIMEZONE_ON_OFF = 0,
+       ITEM_TIMEZONE,
+       ITEM_FIRST_DAY_OF_WEEK,
+       ITEM_SUNDAY,
+       ITEM_MONDAY,
+
+       ITEM_FOCUS_IN_MONTH_VIEW,
+       ITEM_DAILY_EVENTS,
+       ITEM_WEEKLY_EVENTS,
+
+       ITEM_NONE
+}item_type;
+
+typedef struct
+{
+       item_type  index;
+       int check_status;
+       Elm_Object_Item *item;
+       Evas_Object *rgd;
+       int chk_status;
+       struct ug_data *ugd;
+       Evas_Object *check;
+       char *city;
+       char *timezone;
+}Item_data;
+
+static Elm_Genlist_Item_Class itc_seperator = {
+       .item_style = "dialogue/seperator",
+       .func.text_get = NULL,
+       .func.content_get = NULL,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static char *__cal_setting_ug_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__cal_setting_ug_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);
+
+static Elm_Genlist_Item_Class itc_lock_tz = {
+       .item_style = "dialogue/1text.1icon",
+       .func.text_get = __cal_setting_ug_get_genlist_item_label,
+       .func.content_get = __cal_setting_ug_get_genlist_item_icon,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static Elm_Genlist_Item_Class itc_tz = {
+       .item_style = "dialogue/2text.3",
+       .func.text_get = __cal_setting_ug_get_genlist_item_label,
+       .func.content_get = NULL,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static Elm_Genlist_Item_Class itc = {
+       .item_style = "dialogue/2text.3/expandable",
+       .func.text_get = __cal_setting_ug_get_genlist_item_label,
+       .func.content_get = NULL,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static Elm_Genlist_Item_Class itc_radio = {
+       .item_style = "dialogue/1text.1icon.2/expandable2",
+       .func.text_get = __cal_setting_ug_get_genlist_item_label,
+       .func.content_get = __cal_setting_ug_get_genlist_item_icon,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static char *__cal_setting_ug_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       Item_data *item_data = (Item_data*)data;
+       item_type type = item_data->index;
+       struct tm tm;
+       time_t t;
+
+       t = time(NULL);
+       localtime_r(&t, &tm);
+
+       switch(type) {
+
+       case ITEM_TIMEZONE:
+               if (!CAL_STRCMP(part, "elm.text.1"))
+                       return strdup(C_("IDS_CLD_BODY_TIME_ZONE"));
+               else if (!CAL_STRCMP(part, "elm.text.2"))
+                       return g_strdup_printf("%s, %s", C_(item_data->ugd->city), item_data->ugd->time_zone);
+               break;
+
+       case ITEM_LOCK_TIMEZONE_ON_OFF:
+               if (!CAL_STRCMP(part, "elm.text"))
+                       return strdup(C_("IDS_CLD_MBODY_LOCK_TIME_ZONE"));
+               break;
+
+       case ITEM_FIRST_DAY_OF_WEEK:
+               if (!CAL_STRCMP(part, "elm.text.1"))
+                       return strdup(C_("IDS_CLD_BODY_FIRST_DAY_OF_WEEK"));
+               else if (!CAL_STRCMP(part, "elm.text.2")) {
+                       if (item_data->ugd->is_monday)
+                               return strdup(C_("IDS_ST_BODY_MONDAY"));
+                       else
+                               return strdup(C_("IDS_ST_BODY_SUNDAY"));
+               }
+               break;
+
+       case ITEM_FOCUS_IN_MONTH_VIEW:
+               if (!CAL_STRCMP(part, "elm.text.1"))
+                       return strdup(C_("IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"));
+               else if (!CAL_STRCMP(part, "elm.text.2")) {
+                       if(item_data->ugd->is_daily)
+                               return strdup(C_("IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"));
+                       else
+                               return strdup(C_("IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"));
+               }
+               break;
+
+       case ITEM_SUNDAY:
+               return strdup(C_("IDS_ST_BODY_SUNDAY"));
+               break;
+
+       case ITEM_MONDAY:
+               return strdup(C_("IDS_ST_BODY_MONDAY"));
+               break;
+
+       case ITEM_DAILY_EVENTS:
+               if (!CAL_STRCMP(part, "elm.text"))
+                       return strdup(C_("IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"));
+               break;
+
+       case ITEM_WEEKLY_EVENTS:
+               if (!CAL_STRCMP(part, "elm.text"))
+                       return strdup(C_("IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"));
+               break;
+
+       default:
+
+               break;
+       }
+
+       return NULL;
+}
+
+static void __cal_setting_ug_radio_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       Eina_List *l;
+       Eina_List *realized_list;
+       Elm_Object_Item *it;
+       Item_data *item_data = (Item_data*)data;
+       item_type type = item_data->index;
+       int ret;
+
+       switch(type)
+       {
+       case ITEM_SUNDAY:
+               item_data->ugd->is_monday = 0;
+               ret = vconf_set_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT,item_data->ugd->is_monday);
+               c_retm_if(ret != 0,"vconf_set_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, 0) is failed(%d)", ret);
+               break;
+       case ITEM_MONDAY:
+               item_data->ugd->is_monday = 1;
+               ret = vconf_set_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT,item_data->ugd->is_monday);
+               c_retm_if(ret != 0,"vconf_set_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, 0) is failed(%d)", ret);
+               break;
+       case ITEM_DAILY_EVENTS:
+               item_data->ugd->is_daily = 0;
+               ret = vconf_set_int(CAL_VCONFKEY_FOCUS_VIEW,item_data->ugd->is_daily);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_FOCUS_VIEW, 0) is failed(%d)", ret);
+               break;
+       case ITEM_WEEKLY_EVENTS:
+               item_data->ugd->is_daily = 1;
+               ret = vconf_set_int(CAL_VCONFKEY_FOCUS_VIEW,item_data->ugd->is_daily);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_FOCUS_VIEW, 0) is failed(%d)", ret);
+               break;
+       default:
+               break;
+       }
+
+
+       elm_genlist_item_selected_set(item_data->item,0);
+
+       realized_list = elm_genlist_realized_items_get(item_data->ugd->genlist);
+       EINA_LIST_FOREACH(realized_list, l, it)
+       {
+               item_data = elm_object_item_data_get(it);
+               if (!item_data)
+                       continue;
+
+               if ( type == ITEM_FIRST_DAY_OF_WEEK ||
+                               type == ITEM_SUNDAY ||
+                               type == ITEM_MONDAY )
+               {
+                       if ( item_data->index == ITEM_FIRST_DAY_OF_WEEK ||
+                                       item_data->index == ITEM_SUNDAY ||
+                                       item_data->index == ITEM_MONDAY )
+                               elm_genlist_item_update(it);
+               }
+               else if ( type == ITEM_FOCUS_IN_MONTH_VIEW ||
+                               type == ITEM_DAILY_EVENTS ||
+                               type == ITEM_WEEKLY_EVENTS )
+               {
+                       if ( item_data->index == ITEM_FOCUS_IN_MONTH_VIEW ||
+                                       item_data->index == ITEM_DAILY_EVENTS ||
+                                       item_data->index == ITEM_WEEKLY_EVENTS )
+                               elm_genlist_item_update(it);
+               }
+       }
+
+}
+
+static void __cal_setting_ug_on_off_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       Item_data *item_data = (Item_data*)data;
+       int  ret;
+       if(elm_check_state_get(item_data->check))
+       {
+               item_data->ugd->is_on = 1;
+               ret = vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF,item_data->ugd->is_on);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, 0) is failed(%d)", ret);
+               elm_object_item_disabled_set(item_data->ugd->item_time_zone, EINA_FALSE);
+       }
+       else
+       {
+               item_data->ugd->is_on = 0;
+               ret = vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF,item_data->ugd->is_on);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, 0) is failed(%d)", ret);
+               elm_object_item_disabled_set(item_data->ugd->item_time_zone, EINA_TRUE);
+       }
+}
+
+static void __cal_setting_ug_on_off_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       Item_data *item_data = (Item_data*)data;
+
+       elm_check_state_set(item_data->check, !elm_check_state_get(item_data->check));
+
+       __cal_setting_ug_on_off_changed_callback(data, elm_object_item_widget_get(item_data->item), event_info);
+
+       elm_genlist_item_selected_set(item_data->item,0);
+}
+
+static void __cal_setting_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       Item_data *item_data = (Item_data*)data;
+       elm_genlist_item_selected_set(item_data->item,0);
+       if(0 == elm_genlist_item_expanded_get(item_data->item))
+       {
+               elm_genlist_item_expanded_set(item_data->item, 1);
+       }
+       else
+       {
+               elm_genlist_item_expanded_set(item_data->item, 0);
+       }
+}
+
+static Evas_Object *__cal_setting_ug_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       Evas_Object *eo_begin = NULL;
+       Item_data *item_data = (Item_data *)data;
+       item_type type = item_data->index;
+
+       if (!CAL_STRCMP(part, "elm.icon"))
+       {
+               eo_begin = elm_radio_add(obj);
+               switch(type)
+               {
+               case ITEM_LOCK_TIMEZONE_ON_OFF:
+                       eo_begin = elm_check_add(obj);
+                       elm_check_state_set(eo_begin, item_data->ugd->is_on);
+                       elm_object_style_set(eo_begin, "on&off");
+                       evas_object_propagate_events_set(eo_begin, EINA_FALSE);
+                       item_data->check = eo_begin;
+                       evas_object_smart_callback_add(eo_begin, "changed", __cal_setting_ug_on_off_changed_callback, item_data);
+                       break;
+               case ITEM_SUNDAY:
+                       elm_radio_state_value_set(eo_begin, !(item_data->ugd->is_monday)-1);
+                       break;
+               case ITEM_MONDAY:
+                       elm_radio_state_value_set(eo_begin, item_data->ugd->is_monday-1);
+                       break;
+               case ITEM_DAILY_EVENTS:
+                       elm_radio_state_value_set(eo_begin, item_data->ugd->is_daily);
+                       break;
+               case ITEM_WEEKLY_EVENTS:
+                       elm_radio_state_value_set(eo_begin, !(item_data->ugd->is_daily));
+                       break;
+               default:
+                       break;
+               }
+               elm_radio_group_add(eo_begin, item_data->rgd);
+
+               item_data->check = eo_begin;
+       }
+       return eo_begin;
+}
+
+static void __cal_setting_ug_time_zone_ug_destroy_callback(struct ui_gadget *ug, void *priv)
+{
+       CAL_FN_START;
+
+       Item_data *item_data = priv;
+       elm_genlist_item_selected_set(item_data->item,0);
+       if (ug)
+               ug_destroy(ug);
+}
+
+static void __cal_setting_ug_time_zone_ug_result_callback(struct ui_gadget *ug, bundle *result, void *priv)
+{
+       CAL_FN_START;
+
+       c_retm_if(!priv, "priv is null");
+
+       Item_data *item_data = priv;
+
+       const char* city = bundle_get_val(result, "city");
+       c_retm_if(!city, "city is null");
+
+       const char* timezone = bundle_get_val(result, "timezone");
+       c_retm_if(!timezone, "timezone is null");
+
+       const char* tzpath = bundle_get_val(result, "tzpath");
+       c_retm_if(!tzpath, "tzpath is null");
+
+       if (item_data->ugd->city)
+               free(item_data->ugd->city);
+
+       item_data->ugd->city = strdup(city);
+       c_retm_if(!item_data->ugd->city, "item_data->ugd->city is null");
+
+       item_data->ugd->time_zone = g_strdup_printf("GMT%s", timezone);
+       c_retm_if(!item_data->ugd->time_zone, "item_data->ugd->time_zone is null");
+
+       elm_genlist_item_update(item_data->item);
+
+       int ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH, tzpath);
+       c_warn_if(ret, "vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH, tzpath) is failed");
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY, city);
+       c_warn_if(ret, "vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY, tzpath) is failed");
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET, timezone);
+       c_warn_if(ret, "vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET, tzpath) is failed");
+}
+
+static void __cal_setting_ug_time_zone_ug_layout_callback(struct ui_gadget *ug, enum ug_mode mode, void *priv)
+{
+       CAL_FN_START;
+
+       Evas_Object *base;
+
+       CAL_ASSERT(ug);
+
+       base = ug_get_layout(ug);
+       if (!base) {
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode)
+       {
+       case UG_MODE_FULLVIEW:
+               elm_win_resize_object_add(ug_get_window(), base);
+               evas_object_show(base);
+               break;
+       default:
+               DBG("Unsupported ug layout");
+               break;
+       }
+}
+
+static void __cal_setting_ug_create_time_zone_ug(void *data, Evas_Object *obj, void *event_info)
+{
+       Item_data *item_data = (Item_data*)data;
+
+       struct ug_cbs uc;
+
+       memset(&uc, 0, sizeof(struct ug_cbs));
+       uc.destroy_cb = __cal_setting_ug_time_zone_ug_destroy_callback;
+       uc.layout_cb = __cal_setting_ug_time_zone_ug_layout_callback;
+       uc.result_cb = __cal_setting_ug_time_zone_ug_result_callback;
+       uc.priv = item_data;
+
+       ug_create(NULL, "worldclock-efl", UG_MODE_FULLVIEW, NULL, &uc);
+
+}
+
+static Elm_Object_Item *__cal_setting_ug_add_genlist_item(struct ug_data *ugd, Evas_Object *genlist,Eina_Bool is_seperator,int index)
+{
+       Elm_Object_Item *item = NULL;
+       Item_data *item_data = NULL;
+
+       if(NULL == genlist)
+       {
+               return NULL;
+       }
+
+       if(is_seperator)
+       {
+               //append seperator item
+               item = elm_genlist_item_append(genlist, &itc_seperator, NULL, NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
+               elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE);
+       }
+       else
+       {
+               item_data = (Item_data *)malloc(sizeof(Item_data));
+               if(NULL == item_data)
+               {
+                       return NULL;
+               }
+               memset(item_data,0x00,sizeof(Item_data));
+
+               item_data->ugd = ugd;
+
+               switch(index)
+               {
+               case ITEM_LOCK_TIMEZONE_ON_OFF:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc_lock_tz, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_setting_ug_on_off_select_callback, item_data);
+                       break;
+               case ITEM_TIMEZONE:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc_tz, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_setting_ug_create_time_zone_ug, item_data);
+                       ugd->item_time_zone = item_data->item;
+                       if (!ugd->is_on)
+                       {
+                               elm_object_item_disabled_set(item_data->item, EINA_TRUE);
+                       }
+                       break;
+               case ITEM_FIRST_DAY_OF_WEEK:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc, item_data, NULL, ELM_GENLIST_ITEM_TREE, __cal_setting_genlist_item_select_callback, item_data);
+                       ugd->rgd_first_day = elm_radio_add((Evas_Object *)(item_data->item));
+                       elm_radio_state_value_set(ugd->rgd_first_day, -1);
+                       break;
+               case ITEM_FOCUS_IN_MONTH_VIEW:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc, item_data, NULL, ELM_GENLIST_ITEM_TREE, __cal_setting_genlist_item_select_callback, item_data);
+                       ugd->rgd_focus_in_month = elm_radio_add((Evas_Object *)(item_data->item));
+                       elm_radio_state_value_set(ugd->rgd_focus_in_month, -1);
+                       break;
+               case ITEM_SUNDAY:
+               case ITEM_MONDAY:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc_radio, item_data, ugd->item_first_day_of_week, ELM_GENLIST_ITEM_NONE, __cal_setting_ug_radio_changed_callback, item_data);
+                       item_data->rgd = ugd->rgd_first_day;
+                       break;
+               case ITEM_DAILY_EVENTS:
+               case ITEM_WEEKLY_EVENTS:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc_radio, item_data, ugd->item_focus_in_month, ELM_GENLIST_ITEM_NONE, __cal_setting_ug_radio_changed_callback, item_data);
+                       item_data->rgd = ugd->rgd_focus_in_month;
+            break;
+
+               }
+
+
+               item = item_data->item;
+       }
+
+       return item;
+
+}
+
+static void __cal_setting_ug_genlist_item_expand_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       struct ug_data *ugd = (struct ug_data*)data;
+       Elm_Object_Item *it = event_info;
+       Evas_Object *gl = elm_object_item_widget_get(it);
+
+       if(it == ugd->item_first_day_of_week)
+       {
+               __cal_setting_ug_add_genlist_item(ugd,gl,FALSE,ITEM_SUNDAY);
+               __cal_setting_ug_add_genlist_item(ugd,gl,FALSE,ITEM_MONDAY);
+
+       }
+       else if(it == ugd->item_focus_in_month)
+       {
+               __cal_setting_ug_add_genlist_item(ugd,gl,FALSE,ITEM_DAILY_EVENTS);
+               __cal_setting_ug_add_genlist_item(ugd,gl,FALSE,ITEM_WEEKLY_EVENTS);
+
+       }
+}
+
+
+static void __cal_setting_ug_genlist_item_contract_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       Elm_Object_Item *item = event_info;
+       elm_genlist_item_subitems_clear(item);
+}
+
+Evas_Object* cal_setting_ug_create_view(Evas_Object *navi, struct ug_data *ugd)
+{
+       Evas_Object *genlist = NULL;
+
+       if (!navi || !ugd )
+       {
+               return NULL;
+       }
+
+       //creat list
+       genlist = elm_genlist_add(navi);
+       elm_genlist_clear(genlist);
+
+       ugd->genlist = genlist;
+
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_TRUE, 0);
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_FALSE,ITEM_LOCK_TIMEZONE_ON_OFF);
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_FALSE,ITEM_TIMEZONE);
+
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_TRUE,0);
+       ugd->item_first_day_of_week = __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_FALSE,ITEM_FIRST_DAY_OF_WEEK);
+
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_TRUE,0);
+       ugd->item_focus_in_month = __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_FALSE,ITEM_FOCUS_IN_MONTH_VIEW);
+
+       evas_object_smart_callback_add(genlist, "expanded", __cal_setting_ug_genlist_item_expand_callback, ugd);
+       evas_object_smart_callback_add(genlist, "contracted", __cal_setting_ug_genlist_item_contract_callback, ugd);
+
+       return genlist;
+}
diff --git a/ug/settings/ug-settings-view.h b/ug/settings/ug-settings-view.h
new file mode 100755 (executable)
index 0000000..81a8e86
--- /dev/null
@@ -0,0 +1,32 @@
+/*\r
+\r
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved\r
+\r
+This file is part of org.tizen.efl-calendar\r
+Written by Taeho Kang <taeho84.kang@samsung.com>\r
+\r
+PROPRIETARY/CONFIDENTIAL\r
+\r
+This software is the confidential and proprietary information of\r
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not\r
+disclose such Confidential Information and shall use it only in\r
+accordance with the terms of the license agreement you entered\r
+into with SAMSUNG ELECTRONICS.\r
+\r
+SAMSUNG make no representations or warranties about the suitability\r
+of the software, either express or implied, including but not limited\r
+to the implied warranties of merchantability, fitness for a particular\r
+purpose, or non-infringement. SAMSUNG shall not be liable for any\r
+damages suffered by licensee as a result of using, modifying or\r
+distributing this software or its derivatives.\r
+\r
+*/\r
+\r
+\r
+#ifndef __CALENDAR_UG_SETTING_VIEW_H__\r
+#define __CALENDAR_UG_SETTING_VIEW_H__\r
+\r
+Evas_Object* cal_setting_ug_create_view(Evas_Object *navi, struct ug_data *ugd);\r
+\r
+#endif /* __CALENDAR_UG_SETTING_VIEW_H__ */\r
+\r
diff --git a/ug/settings/ug-settings.c b/ug/settings/ug-settings.c
new file mode 100755 (executable)
index 0000000..c519331
--- /dev/null
@@ -0,0 +1,258 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <ui-gadget-module.h>
+#include <libintl.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+
+#include "cld.h"
+#include "ug-settings.h"
+#include "ug-settings-view.h"
+
+extern int appcore_set_i18n(const char *, const char *);
+
+static void __cal_setting_ug_back_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       struct ug_data *ugd = data;
+       evas_object_hide(ugd->bg);
+       ug_destroy_me(ugd->ug);
+}
+
+static void __cal_setting_ug_initialize(struct ug_data *ugd)
+{
+       char *tz_path = NULL;
+       char *tz_city = NULL;
+       char *tz_offset = NULL;
+       int   ret;
+
+       ret = cal_util_get_timezone_info(&tz_path, &tz_city, &tz_offset);
+       c_warn_if(ret, "cal_util_get_timezone_info is failed");
+
+       if (tz_city)
+               ugd->city = strdup(tz_city);
+       else {
+               ERR("tz_city is null");
+               ugd->city = strdup("IDS_WCL_BODY_CITYNAME_SEOUL");
+               c_warn_if(!ugd->city, "ugd->city is null");
+       }
+
+       if (tz_offset)
+               ugd->time_zone = strdup(tz_offset);
+       else {
+               ERR("tz_offset is null");
+               ugd->time_zone = strdup("GMT+9");
+               c_warn_if(!ugd->time_zone, "ugd->city is null");
+       }
+
+       if (tz_path)
+               free(tz_path);
+       if (tz_city)
+               free(tz_city);
+       if (tz_offset)
+               free(tz_offset);
+
+       ret = vconf_get_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, &ugd->is_on);
+       c_warn_if(ret, "vconf_get_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, &ugd->is_on) is failed");
+
+       if (0 != vconf_get_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT,&ugd->is_monday))
+       {
+               ret = vconf_set_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, 1);
+               c_warn_if(ret != 0,"vconf_set_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, 0) is failed(%d)", ret);
+       }
+
+       if (0 != vconf_get_int(CAL_VCONFKEY_FOCUS_VIEW,&ugd->is_daily))
+       {
+               ret = vconf_set_int(CAL_VCONFKEY_FOCUS_VIEW, 1);
+               c_warn_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_FOCUS_VIEW, 0) is failed(%d)", ret);
+       }
+}
+
+static Evas_Object *__cal_setting_ug_create_layout(Evas_Object *parent, struct ug_data *ugd)
+{
+       Evas_Object *bt_back = NULL;
+       Evas_Object *layout = NULL;
+       Elm_Object_Item* navi_item = NULL;
+
+       ugd->base = cal_util_add_layout(parent, NULL);
+       CAL_ASSERT(ugd->base);
+
+       ugd->bg = cal_util_add_bg(ugd->base, EINA_FALSE);
+       CAL_ASSERT(ugd->bg);
+
+       ugd->nv = elm_naviframe_add(ugd->base);
+       CAL_ASSERT(ugd->nv);
+
+       layout = cal_setting_ug_create_view(ugd->nv, ugd);
+       CAL_ASSERT(layout);
+
+       navi_item = elm_naviframe_item_push(ugd->nv, "Calendar", NULL, NULL, layout, NULL);
+
+       bt_back = elm_object_item_part_content_get(navi_item, "prev_btn");
+       if (!bt_back)
+       {
+               bt_back = elm_button_add(ugd->nv);
+               elm_object_item_part_content_set(navi_item, "prev_btn", bt_back);
+       }
+       elm_object_style_set(bt_back, "naviframe/back_btn/default");
+       evas_object_smart_callback_add(bt_back, "clicked", __cal_setting_ug_back_button_callback, ugd);
+
+       elm_object_part_content_set(ugd->base, "elm.swallow.content", ugd->nv);
+       elm_object_part_content_set(ugd->base, "elm.swallow.bg", ugd->bg);
+
+       return ugd->base;
+}
+
+static void *__cal_setting_ug_create_callback(struct ui_gadget *ug, enum ug_mode mode, bundle *data, void *priv)
+{
+       Evas_Object *parent;
+       struct ug_data *ugd;
+       Evas_Object *base;
+
+       if (!ug || !priv)
+               return NULL;
+
+       cal_util_connect_pattern_generator();
+
+       ugd = priv;
+       ugd->ug = ug;
+       __cal_setting_ug_initialize(ugd);
+       if (mode != UG_MODE_FULLVIEW)
+               return NULL;
+       parent = ug_get_parent_layout(ug);
+       if (!parent)
+               return NULL;
+
+       base = __cal_setting_ug_create_layout(parent, ugd);
+       c_retvm_if(!base, NULL, "base is null");
+
+       return base;
+}
+
+static void __cal_setting_ug_destroy_callback(struct ui_gadget *ug, bundle *data, void *priv)
+{
+       struct ug_data *ugd;
+
+       if (!ug || !priv)
+               return;
+
+       ugd = priv;
+
+       cal_util_delete_evas_object(&ugd->base);
+}
+
+static void __cal_setting_ug_key_callback(struct ui_gadget *ug, enum ug_key_event evt,
+               bundle *data, void *priv)
+{
+       if (!ug)
+               return;
+
+       DBG("UG: key event %d", evt);
+
+       switch (evt) {
+       case UG_KEY_EVENT_END:
+               ug_destroy_me(ug);
+               break;
+       default:
+               break;
+       }
+}
+
+static inline void __cal_setting_ug_bind_text_domain()
+{
+       const char *r;
+
+       r = bindtextdomain(UGSETTINGS, UGLOCALE);
+       if (!r)
+               ERR("UG: bindtextdomain error");
+}
+
+API int setting_plugin_reset(bundle *data, void *priv)
+{
+       CAL_FN_START;
+
+       int ret;
+
+       ret = CALENDAR_SVC_CONNECT();
+       c_warn_if(ret != CAL_SUCCESS, "CALENDAR_SVC_CONNECT is failed(%d)", ret);
+
+       ret = vconf_set_int(CAL_VCONFKEY_FOCUS_VIEW, 0);
+       c_warn_if(ret != 0, "vconf_set_int(CAL_VCONFKEY_FOCUS_VIEW, 0) is failed(%d)", ret);
+
+       ret = vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, 0);
+       c_warn_if(ret != 0, "vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, 0) is failed(%d)", ret);
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH, "Asia/Seoul");
+       c_warn_if(ret != 0, "vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_PATH, 'Seoul') is failed(%d)", ret);
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY, "IDS_WCL_BODY_CITYNAME_SEOUL");
+       c_warn_if(ret != 0, "vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY, tzpath) is failed");
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET, "+9");
+       c_warn_if(ret != 0, "vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET, tzpath) is failed");
+
+       ret = CALENDAR_SVC_DELETE_ALL(ALL_ACCOUNT_ID, NULL);
+       c_warn_if(ret != CAL_SUCCESS, "CALENDAR_SVC_DELETE_ALL(ALL_ACCOUNT_ID, NULL) is failed(%d)", ret);
+
+       ret = CALENDAR_SVC_DISCONNECT();
+       c_warn_if(ret != CAL_SUCCESS, "CALENDAR_SVC_DISCONNECT is failed(%d)", ret);
+
+       return 0;
+}
+
+API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       struct ug_data *ugd;
+
+       if (!ops)
+               return -1;
+
+       CAL_CALLOC(ugd, 1, struct ug_data);
+
+       ops->create = __cal_setting_ug_create_callback;
+       ops->destroy = __cal_setting_ug_destroy_callback;
+       ops->key_event = __cal_setting_ug_key_callback;
+       ops->priv = ugd;
+       ops->opt = UG_OPT_INDICATOR_PORTRAIT_ONLY;
+
+       __cal_setting_ug_bind_text_domain();
+
+       appcore_set_i18n(CALENDAR_PACKAGE, LOCALEDIR);
+
+       return 0;
+}
+
+API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       struct ug_data *ugd;
+
+       cal_util_disconnect_pattern_generator();
+
+       if (!ops)
+               return;
+
+       ugd = ops->priv;
+       free(ugd);
+}
diff --git a/ug/settings/ug-settings.h b/ug/settings/ug-settings.h
new file mode 100755 (executable)
index 0000000..6f64343
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#ifndef __CALENDAR_UG_H__
+#define __CALENDAR_UG_H__
+
+#include <Elementary.h>
+#include <ui-gadget-module.h>
+
+#define CAL_TEXT_MAX_LEN 1024
+#define CAL_TEXT_SHORT_LEN 256
+
+enum cld_ug_mode {
+       _MODE_UNKNOWN = 0,
+       _MODE_GET_EVT,
+       _MODE_GET_VCS,
+       _MODE_VIEW_VCS,
+};
+
+struct ug_data {
+       Evas_Object *base;
+       struct ui_gadget *ug;
+
+       Evas_Object *nv;
+       Evas_Object *cont;
+       Evas_Object *bg;
+
+       enum cld_ug_mode mode;
+       char *caller;
+       char *vcs_file;
+
+       Elm_Object_Item *item_time_zone;
+       Elm_Object_Item *item_first_day_of_week;
+       Evas_Object *rgd_first_day;
+       Elm_Object_Item *item_focus_in_month;
+       Evas_Object *rgd_focus_in_month;
+
+       Evas_Object *genlist;
+
+       int is_on;
+       int is_monday;
+       int is_daily;
+
+       char *city;
+       char *time_zone;
+
+       char timezone_string[128];
+};
+
+void cal_list_ug_create(const char *title, struct ug_data *ugd);
+
+// TODO: get full path from caller
+#define VFILE_PATH "/opt/data/ug-calendar"
+
+#endif /* __CALENDAR_UG_H__ */
diff --git a/viewer/CMakeLists.txt b/viewer/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..a27d04d
--- /dev/null
@@ -0,0 +1,41 @@
+LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+
+SET(VIEWER calendar-viewer)
+
+SET(SRCS
+       viewer.c
+       ${CMAKE_SOURCE_DIR}/src/view-detail.c
+       ${CMAKE_SOURCE_DIR}/src/view-edit.c
+       ${CMAKE_SOURCE_DIR}/src/edit-alarm.c
+       ${CMAKE_SOURCE_DIR}/src/edit-repeat.c
+)
+
+SET(VC_PKGNAME "org.${VENDOR}.${VIEWER}")
+SET(VC_PREFIX "/opt/apps/${VC_PKGNAME}")
+SET(VC_BINDIR "${VC_PREFIX}/bin")
+SET(VC_RESDIR "${VC_PREFIX}/res")
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(viewer_pkgs REQUIRED elementary ui-gadget calendar icu-i18n)
+
+FOREACH(flag ${viewer_pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(viewer_pkgs_LDFLAGS "${pkgs_LDFLAGS} ${viewer_pkgs_LDFLAGS}")
+
+ADD_DEFINITIONS("-DVC_PACKAGE=\"${VIEWER}\"")
+ADD_DEFINITIONS("-DVC_PACKAGE_NAME=\"${VC_PKGNAME}\"")
+
+ADD_EXECUTABLE(${VIEWER} ${SRCS})
+SET_TARGET_PROPERTIES(${VIEWER} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS}")
+#TARGET_LINK_LIBRARIES(${VIEWER} ug-calendar-detail-efl ug-calendar-edit-efl ${viewer_pkgs_LDFLAGS} "-fpie")
+TARGET_LINK_LIBRARIES(${VIEWER} ${COMMON_LIB} ${viewer_pkgs_LDFLAGS} "-pie -lm")
+
+INSTALL(TARGETS ${VIEWER} DESTINATION ${VC_BINDIR})
+
+# install desktop file & icon
+CONFIGURE_FILE(${VIEWER}.desktop.in ${CMAKE_BINARY_DIR}/${VC_PKGNAME}.desktop)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${VC_PKGNAME}.desktop DESTINATION "/opt/share/applications")
diff --git a/viewer/calendar-viewer.desktop.in b/viewer/calendar-viewer.desktop.in
new file mode 100755 (executable)
index 0000000..269c397
--- /dev/null
@@ -0,0 +1,11 @@
+Name=Calendar-viewer
+Type=Application
+Exec=@VC_PREFIX@/bin/@VIEWER@
+Icon=${PKGNAME}.png
+MimeType=text/calendar
+NoDisplay=TRUE
+Version=0.1.2
+X-TIZEN-TaskManage=True
+X-TIZEN-Multiple=False
+X-TIZEN-Removable=False
+X-TIZEN-SVC=http://tizen.org/appsvc/operation/view|NULL|text/calendar
diff --git a/viewer/viewer.c b/viewer/viewer.c
new file mode 100755 (executable)
index 0000000..d3cf63a
--- /dev/null
@@ -0,0 +1,221 @@
+/*
+
+Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
+
+This file is part of org.tizen.efl-calendar
+Written by Taeho Kang <taeho84.kang@samsung.com>
+
+PROPRIETARY/CONFIDENTIAL
+
+This software is the confidential and proprietary information of
+SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
+disclose such Confidential Information and shall use it only in
+accordance with the terms of the license agreement you entered
+into with SAMSUNG ELECTRONICS.
+
+SAMSUNG make no representations or warranties about the suitability
+of the software, either express or implied, including but not limited
+to the implied warranties of merchantability, fitness for a particular
+purpose, or non-infringement. SAMSUNG shall not be liable for any
+damages suffered by licensee as a result of using, modifying or
+distributing this software or its derivatives.
+
+*/
+
+
+#include <stdio.h>
+#include <appcore-efl.h>
+#include <aul.h>
+#include <Ecore_X.h>
+#include <ui-gadget.h>
+#include <app.h>
+
+#include "detail.h"
+
+#define SERVICE_CALENDAR_VIEWER_CAL_ID_NAME "cal_id"
+#define SERVICE_CALENDAR_VIEWER_MIME_NAME AUL_K_MIME_CONTENT
+
+#if !defined(CV_PACKAGE)
+#  define CV_PACKAGE "calendar-viewer"
+#endif
+
+static bool viewer_create(void *data)
+{
+       struct appdata *ad = data;
+       Evas_Object *win;
+       Evas_Object *bg;
+       Evas_Object *nv;
+       Evas_Object *ly;
+       int r;
+
+       CALENDAR_SVC_CONNECT();
+
+       /* create window */
+       win = cal_util_add_window(CV_PACKAGE, NULL, NULL);
+       c_retvm_if(!win, false, "cal_util_add_window() Failed");
+       ad->win = win;
+
+       bg = cal_util_add_bg(win, EINA_TRUE);
+       c_retvm_if(NULL == bg, false, "cal_util_add_bg() Failed");
+
+       ly = cal_util_add_layout(win, NULL);
+       if (ly) {
+               elm_win_resize_object_add(win, ly);
+       }
+       ad->base = ly;
+
+       nv = elm_naviframe_add(ad->win);
+       c_retvm_if(NULL == win, false, "elm_naviframe_add() Failed");
+       ad->nv = nv;
+       elm_object_part_content_set(ad->base, "elm.swallow.content", ad->nv);
+
+       /* init internationalization */
+       r = appcore_set_i18n(CALENDAR_PACKAGE, LOCALEDIR);
+       c_retvm_if(r, false, "appcore_set_i18n() Failed");
+
+       cal_util_connect_pattern_generator();
+
+       evas_object_show(win);
+
+       UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_PORTRAIT_ONLY);
+
+       return true;
+}
+
+static void viewer_terminate(void *data)
+{
+       int ret;
+       struct appdata *ad = data;
+
+       cal_util_disconnect_pattern_generator();
+
+       ug_destroy_all();
+
+       if (ad->win)
+               evas_object_del(ad->win);
+
+       ret = CALENDAR_SVC_DISCONNECT();
+       c_warn_if(ret != CAL_SUCCESS, "CALENDAR_SVC_DISCONNECT() Failed(%d)", ret);
+
+       return;
+}
+
+static void viewer_pause(void *data)
+{
+       ug_pause();
+
+       return;
+}
+
+static void viewer_resume(void *data)
+{
+       ug_resume();
+
+       return;
+}
+
+static void viewer_service(service_h service, void *data)
+{
+       c_retm_if(!service, "service is null.");
+       c_retm_if(!data, "data is null.");
+
+       int cal_id;
+       int r;
+       char *operation = NULL;
+       char *val_cal_id = NULL;
+       char *val_ical = NULL;
+       struct appdata *ad = data;
+
+       if (NULL == ad->win) {
+               ERR("win is NULL");
+               elm_exit();
+               return;
+       }
+
+       r = service_get_extra_data(service, SERVICE_CALENDAR_VIEWER_CAL_ID_NAME, &val_cal_id);
+       c_warn_if(SERVICE_ERROR_NONE != r, "service_get_extra_data is failed(%d).", r);
+
+       if (val_cal_id && *val_cal_id) {
+               cal_id = atoi(val_cal_id);
+               if (cal_id <= 0) {
+                       ERR("bundle value(cal_id) is wrong(%d)", cal_id);
+               }
+               else {
+                       ad->cid= cal_id;
+                       cal_detail_create_view(ad, ad->nv);
+               }
+
+               free(val_cal_id);
+               val_cal_id = NULL;
+       } else {
+               r = service_get_operation(service, &operation);
+               c_retm_if(SERVICE_ERROR_NONE != r, "service_get_operation is failed.");
+
+               r = service_get_uri(service, &val_ical);
+               c_retm_if(SERVICE_ERROR_NONE != r, "service_get_uri is failed.");
+
+               /*MIME CONTENT FOR VCS*/
+               if (val_ical) {
+                       char *raw_data = NULL;
+                       int size = 0;
+                       struct stat st;
+
+                       FILE * file = fopen(val_ical, "r");
+                       if(!file)
+                       {
+                               free(raw_data);
+                               ERR("Failed to open file!");
+                               return;
+                       }
+
+                       stat(val_ical, &st);
+                       size = st.st_size;
+                       CAL_CALLOC(raw_data, (size+1), char);
+                       CAL_ASSERT(raw_data);
+                       memset(raw_data,0,(size+1));
+
+                       fread(raw_data, 1, size, file);
+
+                       fclose( file );
+
+                       ad->is_aul = EINA_TRUE;
+                       ad->request_view = CV_DETAIL;
+
+                       cal_viewer_create_view(ad, ad->nv, raw_data);
+
+                       free(raw_data);
+                       free(val_ical);
+                       val_ical = NULL;
+               }
+               else {
+                       ERR("bundle value is NULL");
+                       elm_exit();
+                       return;
+               }
+       }
+
+       elm_win_activate(ad->win);
+       return;
+}
+
+API int main(int argc, char *argv[])
+{
+       struct appdata ad;
+
+       app_event_callback_s event_callback;
+
+       event_callback.create = viewer_create;
+       event_callback.terminate = viewer_terminate;
+       event_callback.pause = viewer_pause;
+       event_callback.resume = viewer_resume;
+       event_callback.service = viewer_service;
+       event_callback.low_memory = NULL;
+       event_callback.low_battery = NULL;
+       event_callback.device_orientation = NULL;
+       event_callback.language_changed = NULL;
+       event_callback.region_format_changed = NULL;
+
+       memset(&ad, 0x0, sizeof(struct appdata));
+
+       return app_efl_main(&argc, &argv, &event_callback, &ad);
+}