
// Some global instances
var tinymce;
var tinyMCE;
var WM;


// Dialog Object
var WMDialog = {
	keyHandler: null
}

// init references
if(typeof(frameElement) != "undefined" && frameElement) {
	if(frameElement.IPopup) {
		WM = frameElement.IPopup.WindowManager;
		if(document.title)
			WM.setTitle(frameElement.IPopup.id, document.title);	
		frameElement.IPopup.params.Dialog = WMDialog;
	}
}

if(!tinymce) {
		document.write('<script type="text/javascript" src="/ib/core/libraries_ext/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>');
}
if(!WM) {
		document.write('<script type="text/javascript" src="/ib/core/libraries_ext/tinymce/jscripts/tiny_mce/plugins/inlinepopups/standalone_src.js"></script>');
}


// init events
if(typeof(frameElement) != "undefined" && frameElement) {
	frameElement.onresize = function(pmEvent) {
			document.fire("ib:resize");
		};
}
Event.observe(window, "resize", function(e) {
		document.fire("ib:resize");
	}
);

document.observe('keydown', function(pmEvent) {

		var frontWindow;
		if(WM && WM.windows) {
			// Find front most window
			var index=0;
			$H(WM.windows).each(function(w) {
				if (w.value.zIndex > index) {
					frontWindow = w.value;
					index = frontWindow.zIndex;
				}
			});
		}


		// Dialog vorhanden
		if(frontWindow) {

			// ESC, Strg+W
			var escapeKey;
			if (pmEvent.DOM_VK_ESCAPE) {  // mozilla
				escapeKey = pmEvent.DOM_VK_ESCAPE;
			} else { // ie
				escapeKey = 27;
			}
			if(pmEvent.keyCode == escapeKey || (pmEvent.ctrlKey && 87 == pmEvent.keyCode)) {
				frontWindow.close();
				pmEvent.stop();
				return;
			}

		}


		// old wack
		/*
			schleife ueber alle event-handler
			1: behandelt, aber weiter loopen (keine defaults wie reload oder save abfangen)
			2: behandelt, schleife abbrechen
		*/


		// Dialog vorhanden
		if(frontWindow) {
			if(frontWindow.params && frontWindow.params.Dialog && frontWindow.params.Dialog.keyHandler) {
				frontWindow.params.Dialog.keyHandler(pmEvent);
			}
			return;
		}
		

		if(WMDialog.keyHandler)
			WMDialog.keyHandler(pmEvent);




		if(pmEvent.ctrlKey && pmEvent.shiftKey) { 
			if(80 == pmEvent.keyCode) { // p
				document.location.href = document.location.href + "&Mode=preview";
				pmEvent.stop();
			}
			if(69 == pmEvent.keyCode) { // e
				document.location.href = document.location.href + "&Mode=edit";
				pmEvent.stop();
			}
			if(82 == pmEvent.keyCode) { // r
				location.reload();
				//document.getElementById("rAdministrationBar_XML").src='/ib/site/generators/rCacheRestart.php';
				pmEvent.stop();
			}
		}
		if(pmEvent.ctrlKey) {
			if(83 == pmEvent.keyCode) {	// s
				pmEvent.returnValue = false; // sonst kommt dumpfer Ton
				pmEvent.stop();
			}
			if(87 == pmEvent.keyCode) {	// w
				pmEvent.stop();
			}
		}

		if(pmEvent.ctrlKey) { // Strg+S
			if(83 == pmEvent.keyCode) {
				//pmEvent.returnValue = false; // sonst kommt dumpfer Ton
				//pmEvent.stop();
			}
		}

		//document.fire("ib:keydown", { keyCode: pmEvent.keyCode, ctrlKey: pmEvent.ctrlKey });
	}
);


/*
var tinymce = null, tinyMCE;
var w = getWin();
tinymce = w.tinymce;
tinyMCE = w.tinyMCE;


function getWin() {
	return window.dialogArguments || opener || parent || top;
}





*/

