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];
 | |
| 	}
 | |
| }
 |