
(function() {

SL.legacy = {

	initWidget : function(e, auto) {

		var widget = undefined;

		if (this.findWidget) {
			widget = this.findWidget(e);
			if (e.readAttribute('slDDSource') || e.readAttribute('slDDTarget')) {
				widget = new SL.widgets.Widget(e);
			}
		}

		if (!widget) {
			widget = new SL.Component(e);
		}

		if (auto) {
			var isLazy = e.readAttribute('slLazy');
			if (isLazy) {
				var url = e.readAttribute('slUrl');
				widget.load(url);
			}
		}

		e.store('sl_component', widget);

		return widget;
	},

	autoInitWidgets : function(parent) {
		var elements;

		if (parent) {
			elements = $(parent).select('.gui_w_ai');
		} else {
			elements = $$('.gui_w_ai');
		}

		for ( var i = 0, j = elements.length; i < j; i++) {
			SL.legacy.initWidget(elements[i], true);
		}
	}
};

})();

function slById(id) {
	// console.log("legacy slById:", id);
	return SL.byID(id);
}

function slRefreshInParentWindow(id) {

	if (!window.opener) {
		return;
	}

	window.opener.SL.byID(id).refresh(false);
}

function slAutoInitWidgets(parent) {
	console.log("legacy slAutoInitWidgets");
	SL.legacy.autoInitWidgets(parent);
}

function slUpdateEditors(element, withoutNew) {

	var elements;
	if (element) {
		elements = element.select('.gui_editor');
	} else {
		elements = $$('.gui_editor');
	}

	for ( var i = 0; i < elements.length; i++) {
		SL.byID(elements[i]).update();
	}

	if (!withoutNew) {
		if (element) {
			elements = element.select('.sljs__component__');
		} else {
			elements = $$('.sljs__component__');
		}

		if (elements) {
			elements.each(function(e) {
				var c = e.retrieve('sl_component');
				if (c) {
					c.updateForPost();
				}
			});
		}
	}
}

function slRegisterOverlay(o) {
	var mgr = document.SLOMgr;
	if (!mgr) {
		mgr = new YAHOO.widget.OverlayManager();
		document.SLOMgr = mgr;
	}
	mgr.register(o);
}

function slRaiseOverlay(o) {
	var mgr = document.SLOMgr;
	if (!mgr) {
		mgr = new YAHOO.widget.OverlayManager();
		document.SLOMgr = mgr;
	}
	mgr.bringToTop(o);
}

function slCloseTooltips() {
	var tips = document.slTooltips;

	if (tips) {
		tips.each(function(a) {
			a.value._doHide();
		});
	}
}

function slInitTooltip(id, event) {
	SL.byID(id).initOnce(event);
}

SL.utils.onDomReady(function() {
	SL.legacy.autoInitWidgets.defer();
});

