// Speichert die Position und groesse des Fensters fuer den naechsten Aufruf function PosWindow (id, defaultWidth, defaultHeight) { self = this; var settings = new Array (); var id; var save_timeout; var defaultWidth; var defaultHeight; var lastLeft; var lastTop; var borderLeft; var borderTop; var leftPos; var topPos; var width; var height; var offsetHeight = 40 + (top.statusbar.visible*24); var __construct = function () { window.addEventListener ("resize", onresize, false); } this.open = function (_id, _defaultWidth, _defaultHeight) { id = _id; defaultWidth = _defaultWidth; defaultHeight = _defaultHeight; width = height = leftPos = topPos = 0; load (); // Fensterramendicke ausmessen if (!borderLeft) { top.moveTo (0, 0); borderLeft = top.screenX; borderTop = top.screenY; save (); } try { // manchmal wird der Zugriff auf top verweigert!?! // Fenstergroesse setzen if (width) { top.resizeTo (width, height); } else { top.resizeTo (defaultWidth, defaultHeight + offsetHeight); top.cms_content.addEventListener ("load", setDefault, false); } // Fensterposition setzen if (leftPos) { top.moveTo (leftPos - borderLeft, topPos - borderTop); } else { if (lastLeft) { top.moveTo (lastLeft - borderLeft, lastTop - borderTop); } } } catch (e) {} document.body.addEventListener ("mouseover", onmove, false); } var setDefault = function () { try { // manchmal wird der Zugriff auf top verweigert!?! var content = top.cms_content.document.getElementById ("content"); if (content) { top.resizeBy (0, defaultHeight-content.offsetHeight); } } catch (e) {} } // Fenstergroesse speichern var onresize = function () { if (id) { width = top.outerWidth; height = top.outerHeight; // d (width + " " + (height - offsetHeight)) save (); } } // Fensterposition speichern var onmove = function () { if (id) { leftPos = top.screenX; topPos = top.screenY; lastLeft = top.screenX; lastTop = top.screenY; save (); } } // einstellung speichern var save = function (sofort) { var values; if (!sofort) { // verzoegertes speichern (um Pervormace zu sparen) if (save_timeout) clearTimeout (save_timeout); save_timeout = setTimeout (function () {save (true)}, 1000); } else { if (values = getCookie("window")) { // Cookie neu laden (koennte von einem anderen Fenster geaendert sein) values = values.split(":") for (var i in values.reverse ()) { value = values[i].split("-"); settings[value[0]] = value[1]; } } values = new Array (leftPos, topPos, width, height); settings[id] = values.join (","); values = new Array (); for (var i in settings.reverse ()) values[values.length] = i + "-" + settings[i]; setCookie ("window", values.join (":")); values = new Array (lastLeft, lastTop, borderLeft, borderTop); setCookie ("window_last", values); } } // einstellung laden var load = function () { var values; if (values = getCookie("window_last")) { values = values.split(","); lastLeft = values[0]; lastTop = values[1]; borderLeft = values[2]; borderTop = values[3]; } if (values = getCookie("window")) { values = values.split(":") for (var i in values.reverse ()) { value = values[i].split("-"); settings[value[0]] = value[1]; } if (settings[id]) { values = settings[id].split(","); leftPos = values[0]; topPos = values[1]; width = values[2]; height = values[3]; } } } // cookie speichern var setCookie = function (name, wert) { if (typeof localStorage == "object") { localStorage[name] = wert; } else { var auszeit = new Date(new Date().getTime() + 1000*60*60*24*365); // 1 Jahr document.cookie = name + "=" + wert + "; expires=" + auszeit.toGMTString () + ";"; } } // cookie laden var getCookie = function (name) { if (typeof localStorage == "object") { return localStorage[name]; } else { name = name.replace (/([\[\]])/g, "\\$1"); if (eval ("/; "+name+"=([^;]*)/.exec ('; '+document.cookie)")) return RegExp.$1; } return ""; } __construct (); }