/**
 * Creates an element with the supplied properties, with Prototype extensions
 *
 * Supported Custom Properties:
 * hidden: Initially hides the element
 * parent: Adds the element as the last child of the specified element
 */
function createExtendedElement (type, properties) {
	/*var parent = false;
	var hidden = false;
	var innerHTML = null;
	
	if (properties.parent != undefined) {
		parent = $(properties.parent);
		delete properties.parent;
	}
	if (properties.hidden != undefined) {
		hidden = properties.hidden;
		delete properties.hidden;
	}
	if (properties.innerHTML != undefined) {
		innerHTML = properties.innerHTML;
		delete properties.innerHTML;
	}
	
	if (innerHTML) {
		var element = $(Builder.node(type, properties, innerHTML));
	} else {
		var element = $(Builder.node(type, properties));
	}
	
	if (hidden) {
		element.hide();
	}
	if (parent) {
		$(parent).insert(element);
	}
	
	return element;/**/
	
	var element = document.createElement(type);
	Element.extend(element);
	if (properties) {
		for (var key in properties) {
			if (key == 'hidden') {
				if (properties[key]) {
					element.hide();
				}
			} else if (key != 'parent') {
				element[key] = properties[key];
			}
		};
		// Append element to parent last, so it doesn't get rendered until all other
		// properties have been processed
		if (properties.parent !== undefined) {
			if ($(properties.parent)) {
				$(properties.parent).appendChild(element);
			}
		}
	}
	return element;
}