/**
 * Das ist der Tmk-Layout-Platzhalter-Handler.
 * Hier werden vom Tmk-Layout-View-Skript Informationen reingegeben und ggf. an die
 * Handler verteilt, die das Kundenseitenlayout hier registriert.
 */

Tmk_Layout = new Object({

	// Ein Array mit den verschiedenen Handlern
	_handlers: new Hash({
		// Inhalt der Pfad-Leiste
		friendlyPagePath: undefined,
		// Pfad zur RC-Datei, mit der die Seite bearbeitet werden kann
		rcUrl: undefined,
		// Pfad zur Live-URL, mit der man aus dem Admin-Modus aussteigen kann
		liveUrl: undefined,
		// Dieser Handler wird aufgerufen, wenn ein Link im Admin-Modus 
		// geklickt wurde.
		adminLinkClicked: undefined
	}),

	// Folgende Methoden können im Kunden-Layout benutzt werden
	
	setFriendlyPagePathHandler: function(handler) 
	{
		this._handlers.set('friendlyPagePath',handler);
	},
	
	setRcUrlHandler: function (handler)
	{
		this._handlers.set('rcUrl',handler);
	},
	
	setLiveUrlHandler: function (handler)
	{
		this._handlers.set('liveUrl',handler);
	},
	
	setAdminLinkClickedHandler: function (handler)
	{
		this._handlers.set('adminLinkClicked',handler);
	},
	
	// Mit dieser Methode schickt layout-main.phtml Daten an die Handler.
	
	sendFriendlyPagePathToHandler: function(path)
	{
		var handler = this._handlers.get('friendlyPagePath');
		if (handler!=undefined) {
			handler(path);
		}
	},
		
	sendRcUrlToHandler: function(url)
	{
		var handler = this._handlers.get('rcUrl');
		if (handler!=undefined) {
			handler(url);
		}
	},
		
	sendLiveUrlToHandler: function(url)
	{
		var handler = this._handlers.get('liveUrl');
		if (handler!=undefined) {
			handler(url);
		}
	},

	adminLinkClickedHandler: function(element)
	{
		var handler = this._handlers.get('adminLinkClicked');
		if (handler!=undefined) {
			return handler(element);
		}		
		else {
			return true;
		}
	},
	
	/**
	 * Loading-Symbol anzeigen. Kann als adminLinkClickedHandler
	 * verwendet werden.
	 */
	showLoading: function(dontDelay)
	{
		if (dontDelay) {
			$("layoutLoading").setStyle({display:"block"});
		}
		else {
			(function() {
				$("layoutLoading").setStyle({display:"block"});
			}).delay(0.3);
		}
		return true;
	},
	
	/**
	 * Loading-Symbol versetcken. Wird von layout-loading.phtml verwendet.
	 */
	hideLoading: function()
	{
		$("layoutLoading").setStyle({display:"none"});
		return true;
	},
	
	/**
	 * Setzt den Text, der beim loading-Symbol angezeigt werden soll.
	 */
	setLoadingText: function(text)
	{
		$("layoutLoadingText").update(text);
	}
	
	
	
});

/**
 * Die content-Menü-li alle auf die Breite des ul bringen,
 * denn der IE7 macht das nicht richtig.
 */
Event.observe(window,"load",function () {
	$$("ul.contextMenu").each(function(ul) {
		var ulWidth = ul.getWidth();
		ul.setStyle({
			width: ulWidth+"px"
		});
		ul.select("li").each(function(li) {
			li.setStyle({
				width: (ulWidth-12)+"px"
			});
		});
	});
});


function getInternetExplorerVersion()
//Returns the version of Windows Internet Explorer or a -1
//(indicating the use of another browser).
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
   var ua = navigator.userAgent;
   var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
   if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
}
return rv;
}

