/*
	Widgets Code
	Datum: 				8-8-2006
	Laatst Gewijzigd: 	8-8-2006
	Door:				Marijn van Aerle
*/

YAHOO.namespace ("widgets");
YAHOO.namespace ("widgetlibrary");
//Classes
 
YAHOO.widgets.Widget = function() {
	var widgets = new Object();
	
	//METHODS
	var renderWidget = function(div) {
		var widgetType = div.getAttribute("widgetType");

		var parameters = getParameters(div);
		//var widgetId = YAHOO.util.Dom.generateId(div);
		var widgetName = div.getAttribute("widgetName");
		
		//initialize widget object
		widgets[widgetName] = new Object();
		//widgets[widgetName].id = widgetId;
		widgets[widgetName].domNode = div;
		
		if (typeof(YAHOO.widgetlibrary[widgetType]) == "object") {
			//LET OP DIT IS ALLEEN OM BACKWARDS COMPATIBLE TE BLIJVEN MET HET OUDE WIDGET SYSTEEM
			// momenteel moeten calendar.js en uploader.js nog omgeschreven worden naar het nieuwe format
			YAHOO.widgetlibrary[widgetType].init.call(widgets[widgetName],div,parameters);
		} else {
			widgets[widgetName] = new YAHOO.widgetlibrary[widgetType](widgetName, div, parameters);
		}

		
		
	};
	
	var getParameters = function(div) {
		var parameterObject = new Object();
		var tags = YAHOO.util.Dom.getElementsByAttribute("widgetParam","div",div);
		
		for (i in tags) {
			parameterObject[tags[i].getAttribute("widgetParam")] = tags[i].innerHTML;
		}
		
		
		return parameterObject;
	}
	
	//Public functies
	return { 	
		init: function(div) { 
			var widgetTags = YAHOO.util.Dom.getElementsByAttribute('widgetType','div',div);
			YAHOO.util.Dom.batch(widgetTags, renderWidget);	
			
		},
		
		getWidgetByName: function(name) {
			return widgets[name]	
		}
	}
}();
