Subversion-Projekte lars-tiefland.prado

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
/**
2
 * TActiveDatePicker control
3
 */
4
Prado.WebUI.TActiveDatePicker = Class.extend(Prado.WebUI.TDatePicker,
5
{
6
	initialize : function(options)
7
	{
8
		this.options = options || [];
9
		this.control = $(options.ID);
10
		this.dateSlot = new Array(42);
11
		this.weekSlot = new Array(6);
12
		this.minimalDaysInFirstWeek	= 4;
13
		this.selectedDate = this.newDate();
14
		this.positionMode = 'Bottom';
15
 
16
		//which element to trigger to show the calendar
17
		if(this.options.Trigger)
18
		{
19
			this.trigger = $(this.options.Trigger) ;
20
			var triggerEvent = this.options.TriggerEvent || "click";
21
		}
22
		else
23
		{
24
			this.trigger  = this.control;
25
			var triggerEvent = this.options.TriggerEvent || "focus";
26
		}
27
 
28
		// Popup position
29
		if(this.options.PositionMode == 'Top')
30
		{
31
			this.positionMode = this.options.PositionMode;
32
		}
33
 
34
		Object.extend(this,options);
35
 
36
		Event.observe(this.trigger, triggerEvent, this.show.bindEvent(this));
37
 
38
		// Listen to change event
39
		if(this.options.InputMode == "TextBox")
40
		{
41
			Event.observe(this.control, "change", this.onDateChanged.bindEvent(this));
42
		}
43
		else
44
		{
45
			var day = Prado.WebUI.TDatePicker.getDayListControl(this.control);
46
			var month = Prado.WebUI.TDatePicker.getMonthListControl(this.control);
47
			var year = Prado.WebUI.TDatePicker.getYearListControl(this.control);
48
			Event.observe (day, "change", this.onDateChanged.bindEvent(this));
49
			Event.observe (month, "change", this.onDateChanged.bindEvent(this));
50
			Event.observe (year, "change", this.onDateChanged.bindEvent(this));
51
 
52
		}
53
 
54
	},
55
 
56
	// Respond to change event on the textbox or dropdown list
57
	// This method raises OnDateChanged event on client side if it has been defined,
58
	// and raise the callback request
59
	onDateChanged : function ()
60
	{
61
		var date;
62
		if (this.options.InputMode == "TextBox")
63
		{
64
			date=this.control.value;
65
		 }
66
		 else
67
		 {
68
		 	var day = Prado.WebUI.TDatePicker.getDayListControl(this.control).selectedIndex+1;
69
			var month = Prado.WebUI.TDatePicker.getMonthListControl(this.control).selectedIndex;
70
			var year = Prado.WebUI.TDatePicker.getYearListControl(this.control).value;
71
			date=new Date(year, month, day, 0,0,0).SimpleFormat(this.Format, this);
72
		}
73
		if (typeof(this.options.OnDateChanged) == "function") this.options.OnDateChanged(this, date);
74
 
75
		// Make callback request
76
		var request = new Prado.CallbackRequest(this.options.EventTarget,this.options);
77
		request.dispatch();
78
	}
79
});