/*
 * DOM Builder - dom.js
 */

var DOMBuilder = new Class({
	element: null,
	parent: null,
 
	initialize: function(object){
		if($type(object) === "string"){ object = eval(object); }
		return this.evaluate(object);
	},
 
	evaluate: function(object) {
		var parent = new Element(object[0]);
		var current = parent;
		!$defined(this.element) ? this.element = this.parent = parent	:	this.parent.adopt(parent);

		for(var i = 1; i < object.length; i++) {
			this.parent = current;
			switch($type(object[i])){
				case "string": 
					parent.appendText(object[i]);
				break;
				case "object":
					if($chk(object[i].events)){ object[i].events = this.eval_events(object[i].events); }
					parent.set(object[i]);
				break;
				case "array": 
					this.evaluate(object[i]);
				break;
			}
		}
 
		return this.element;
	},
	
	eval_events : function(events){
		$each(events, function(item, key){
			events[key] = eval(item);
		});
		return events;
	}
});