// JavaScript Document

Date.prototype.toCFString = function(date) {
	var year = this.getFullYear().toString();
	var month = (this.getMonth()+1).toString();
	var day = this.getDate().toString();
	var hours = this.getHours().toString();
	var minutes = this.getMinutes().toString();
	var seconds = this.getSeconds().toString();
	
	// Pad month, hours, minutes and seconds if neccessary
	if(month.length < 2) month = '0'+month;
	if(hours.length < 2) hours = '0'+hours;
	if(minutes.length < 2) minutes = '0'+minutes;
	if(seconds.length < 2) seconds = '0'+seconds;
	
	return "{ts '"+year+"-"+month+"-"+day+" "+hours+":"+minutes+":"+seconds+"'}";
}

// Prototype select element
var selectExt = {
	purge: function(element) {
		var element = $(element);
		while(element.length > 0) {
			element.remove(0);	
		}
	},
	addOpt: function(element, value, label, pos) {
		var element = $(element);
		element.options[element.options.length] = new Option(label, value, false, false);
	},
	populate: function(element, array, purge) {
		var element = $(element);
		if(typeof(array) != 'object') array = array.evalJSON;
		if(arguments[2]) element.purge();
		for(var i = 0; i < array.length; i++) {
			var pair = Object.values(array[i]);
			element.addOpt(pair[0], pair[1]);
		}
	},
	selectByValue: function(element, value) {
		var element = $(element);
		for(var i = 0; i < element.options.length; i++) {
			if(element.options[i].value == value) {
				element.selectedIndex = i;
				return true;
			}
		}
		return false;
	}
}
Element.addMethods('select', selectExt);