/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml */ dojo.provide("dojo.widget.CiviCrmDatePicker"); dojo.provide("dojo.widget.HtmlCiviCrmDatePicker"); dojo.require("dojo.widget.*"); dojo.require("dojo.event.*"); dojo.require("dojo.widget.DatePicker"); dojo.require("dojo.widget.html.DatePicker"); dojo.require("dojo.widget.html.TimePicker"); dojo.require("dojo.html"); dojo.widget.HtmlCiviCrmDatePicker = function(){ this.widgetType = "CiviCrmDatePicker"; this.idPrefix = "scheduled_date_time"; this.mode = "datetime"; // can also be date or time this.datePicker = null; this.timePicker = null; // html nodes this.dateHolderTd = null; this.timeHolderTd = null; this.formItemsTd = null; this.formItemsTr = null; this.monthSelect = null; this.daySelect = null; this.yearSelect = null; this.hourSelect = null; this.minSelect = null; this.apSelect = null; this.templatePath = dojo.uri.dojoUri("src/widget/templates/HtmlCiviCrmDatePicker.html"); this.modeFormats = { date: "MdY", time: "hiA" }; this.formatMappings = { "M": "monthSelect", "d": "daySelect", "Y": "yearSelect", "h": "hourSelect", "i": "minSelect", "A": "apSelect" }; this.setDateSelects = function(){ var dateObj = this.datePicker.date; this.monthSelect.value = new String(dateObj.getMonth()+1); this.daySelect.value = new String(dateObj.getDate()); this.yearSelect.value = new String(dateObj.getFullYear()); } this.setTimeSelects = function(){ var st = this.timePicker.selectedTime; this.hourSelect.value = new String(st.hour); this.minSelect.value = new String(st.minute); this.apSelect.value = st.amPm.toUpperCase(); } this.fillInTemplate = function(args, frag){ var nr = frag["dojo:"+this.widgetType.toLowerCase()]["nodeRef"]; var sref = {}; while(nr.firstChild){ if(nr.firstChild.name){ sref[nr.firstChild.name] = nr.firstChild; } this.formItemsTd.appendChild(nr.firstChild); } if(this.mode.indexOf("date") != -1){ this.datePicker = dojo.widget.createWidget("DatePicker", {}, this.dateHolderTd); dojo.event.connect( this.datePicker, "onSetDate", this, "setDateSelects"); var mfd = this.modeFormats.date; for(var x=0; x