76 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
function dateSelector(id) {
 | 
						|
	var el = document.getElementById('new_values_'+id);
 | 
						|
	var format = gettype(el.id);
 | 
						|
	var epoch;
 | 
						|
	var parse = false;
 | 
						|
 | 
						|
	var cal = new Calendar(0, null, onSelect, onClose);
 | 
						|
 | 
						|
	if (defaults['f_time_'+id]) {
 | 
						|
		cal.showsTime = true;
 | 
						|
	} else {
 | 
						|
		cal.showsTime = false;
 | 
						|
	}
 | 
						|
 | 
						|
	cal.weekNumbers = true;
 | 
						|
	cal.showsOtherMonths = true;
 | 
						|
	cal.create();
 | 
						|
 | 
						|
	// convert to milliseconds (Epoch is usually expressed in seconds, but Javascript uses Milliseconds)
 | 
						|
	switch (format) {
 | 
						|
		case '%es' :	epoch = el.value * 86400 * 1000;
 | 
						|
				format = '%s';
 | 
						|
				parse = true;
 | 
						|
			break;
 | 
						|
		case '%s' :	epoch = el.value * 1000;
 | 
						|
				parse = true;
 | 
						|
			break;
 | 
						|
	}
 | 
						|
 | 
						|
	// Convert the value to the date so that the calendar will display it 
 | 
						|
	if (parse) {
 | 
						|
		var dDate = new Date();
 | 
						|
		dDate.setTime(epoch);
 | 
						|
		cal.setDateFormat('%a, %d %b %Y');  // set the specified date format
 | 
						|
		cal.parseDate(dDate.toString());    // try to parse the text in field
 | 
						|
		cal.setDateFormat(format);  // set the specified date format
 | 
						|
	} else {
 | 
						|
		cal.setDateFormat(format);  // set the specified date format
 | 
						|
		cal.parseDate(el.value);    // try to parse the text in field
 | 
						|
	}
 | 
						|
 | 
						|
	cal.sel = el;                       // inform it what input field we use
 | 
						|
	cal.showAtElement(el, 'BR');        // show the calendar
 | 
						|
}
 | 
						|
 | 
						|
function onSelect(calendar,date) {
 | 
						|
	switch (gettype(calendar.sel.id)) {
 | 
						|
		case '%es' :	date = Math.round(date / 86400);
 | 
						|
			break;
 | 
						|
	}
 | 
						|
 | 
						|
	calendar.sel.value = date;
 | 
						|
	if (calendar.dateClicked)
 | 
						|
		onClose(calendar);
 | 
						|
}
 | 
						|
 | 
						|
function onClose(calendar,date) {
 | 
						|
	calendar.hide();
 | 
						|
}
 | 
						|
 | 
						|
function gettype(attr) {
 | 
						|
	if (typeof defaults == "undefined") {
 | 
						|
		return '%s';
 | 
						|
	}
 | 
						|
 | 
						|
	if (typeof defaults[attr] == "undefined") {
 | 
						|
		if (typeof default_date_format == "undefined") {
 | 
						|
			return '%s';
 | 
						|
		} else {
 | 
						|
			return default_date_format;
 | 
						|
		}
 | 
						|
	} else {
 | 
						|
		return defaults[attr];
 | 
						|
	}
 | 
						|
}
 |