var search = {};
var sorting = {};
-var lastClickedRow = null;
+var lastClickedRow = -1;
var weekStartIsMonday = true;
var url;
if (folderInfos.length > 1) {
url = UserFolderURL + "../" + folderInfos[0];
- if (!folderInfos[1].startsWith('/'))
+ if (!(folderInfos[0].endsWith('/')
+ || folderInfos[1].startsWith('/')))
url += '/';
url += folderInfos[1];
}
}
function openContactWindow(url, wId) {
- if (!wId)
- wId = "" + (new Date().getTime());
+ if (typeof wId == "undefined")
+ wId = "_blank";
+ else {
+ var r = new RegExp("[\.\/-]", "g");
+ wId = wId.replace(r, "_");
+ }
+
var w = window.open(url, wId,
"width=450,height=600,resizable=0,location=0");
w.focus();
function openMailComposeWindow(url, wId) {
var parentWindow = this;
- if (!wId)
- wId = "" + (new Date().getTime());
- else
+ if (typeof wId == "undefined")
+ wId = "_blank";
+ else {
+ var r = new RegExp("[\.\/-]", "g");
+ wId = wId.replace(r, "_");
if (document.body.hasClassName("popup"))
parentWindow = window.opener;
-
+ }
+
var w = parentWindow.open(url, wId,
"width=680,height=520,resizable=1,scrollbars=1,toolbar=0,"
+ "location=0,directories=0,status=0,menubar=0"
function openMailTo(senderMailTo) {
var mailto = sanitizeMailTo(senderMailTo);
+
if (mailto.length > 0)
openMailComposeWindow(ApplicationBaseURL
- + "/../Mail/compose?mailto=" + mailto);
+ + "../Mail/compose?mailto=" + mailto);
return false; /* stop following the link */
}
var http = createHTTPClient();
activeAjaxRequests += 1;
- document.animTimer = setTimeout("checkAjaxRequestsState();", 200);
+ document.animTimer = setTimeout("checkAjaxRequestsState();", 50);
//url = appendDifferentiator(url);
if (http) {
http.url = url;
http.onreadystatechange
= function() {
- //log ("state changed (" + http.readyState + "): " + url);
+// log ("state changed (" + http.readyState + "): " + url);
try {
if (http.readyState == 4
&& activeAjaxRequests > 0) {
var initialSelection = $(node.parentNode).getSelectedNodes();
if ((event.shiftKey == 1 || event.ctrlKey == 1)
- && lastClickedRow
+ && (lastClickedRow >= 0)
&& (acceptMultiSelect(node.parentNode)
|| acceptMultiSelect(node.parentNode.parentNode))) {
if (event.shiftKey)
var parentNode = node.parentNode;
if (parentNode.tagName == 'TBODY')
parentNode = parentNode.parentNode;
- if (document.createEvent) {
- var onSelectionChangeEvent;
- if (isSafari())
- onSelectionChangeEvent = document.createEvent("UIEvents");
- else
- onSelectionChangeEvent = document.createEvent("Events");
- onSelectionChangeEvent.initEvent("mousedown", true, true);
- parentNode.dispatchEvent(onSelectionChangeEvent);
- }
- else if (document.createEventObject) {
- parentNode.fireEvent("onmousedown");
- }
+ parentNode.fire("mousedown");
}
}
lastClickedRow = rowIndex;
if (popup.prepareVisibility)
popup.prepareVisibility();
+
popup.setStyle({ top: menuTop + "px",
left: menuLeft + "px",
visibility: "visible" });
document.currentPopupMenu = popup;
- Event.observe(document.body, "click", onBodyClickMenuHandler);
+ $(document.body).observe("click", onBodyClickMenuHandler);
preventDefault(event);
}
function onBodyClickMenuHandler(event) {
hideMenu(document.currentPopupMenu);
- Event.stopObserving(document.body, "click", onBodyClickMenuHandler);
+ document.body.stopObserving("click", onBodyClickMenuHandler);
if (event)
preventDefault(event);
}
menuNode.setStyle({ visibility: "hidden" });
- // menuNode.hide();
if (menuNode.parentMenuItem) {
- Event.stopObserving(menuNode.parentMenuItem, "mouseover",
- onMouseEnteredSubmenu);
- Event.stopObserving(menuNode, "mouseover", onMouseEnteredSubmenu);
- Event.stopObserving(menuNode.parentMenuItem, "mouseout", onMouseLeftSubmenu);
- Event.stopObserving(menuNode, "mouseout", onMouseLeftSubmenu);
- Event.stopObserving(menuNode.parentMenu, "mouseover",
- onMouseEnteredParentMenu);
+ menuNode.parentMenuItem.stopObserving("mouseover",onMouseEnteredSubmenu);
+ menuNode.stopObserving("mouseover", onMouseEnteredSubmenu);
+ menuNode.parentMenuItem.stopObserving("mouseout", onMouseLeftSubmenu);
+ menuNode.stopObserving("mouseout", onMouseLeftSubmenu);
+ menuNode.parentMenu.stopObserving("mouseover", onMouseEnteredParentMenu);
$(menuNode.parentMenuItem).removeClassName("submenu-selected");
menuNode.parentMenuItem.mouseInside = false;
menuNode.parentMenuItem = null;
menuNode.parentMenu = null;
}
- if (document.createEvent) { // Safari & Mozilla
- var onhideEvent;
- if (isSafari())
- onhideEvent = document.createEvent("UIEvents");
- else
- onhideEvent = document.createEvent("Events");
- onhideEvent.initEvent("mousedown", false, true);
- menuNode.dispatchEvent(onhideEvent);
- }
- else if (document.createEventObject) { // IE
- menuNode.fireEvent("onmousedown");
- }
+ $(menuNode).fire("mousedown");
}
function onMenuEntryClick(event) {
var logConsole = $("logConsole");
if (logConsole) {
logConsole.highlighted = false;
- Event.observe(logConsole, "dblclick", onLogDblClick, false);
- logConsole.innerHTML = "";
+ logConsole.observe("dblclick", onLogDblClick, false);
+ logConsole.update();
Event.observe(window, "keydown", onBodyKeyDown);
}
}
menuLeft = parentNode.offsetLeft - submenuNode.offsetWidth + 3;
this.mouseInside = true;
- Event.observe(this, "mouseover",
- onMouseEnteredSubmenu.bindAsEventListener(this));
- Event.observe(submenuNode, "mouseover",
- onMouseEnteredSubmenu.bindAsEventListener(submenuNode));
- Event.observe(this, "mouseout", onMouseLeftSubmenu.bindAsEventListener(this));
- Event.observe(submenuNode, "mouseout",
- onMouseLeftSubmenu.bindAsEventListener(submenuNode));
- Event.observe(parentNode, "mouseover",
- onMouseEnteredParentMenu.bindAsEventListener(parentNode));
+ this.observe("mouseover", onMouseEnteredSubmenu);
+ submenuNode.observe("mouseover", onMouseEnteredSubmenu);
+ this.observe("mouseout", onMouseLeftSubmenu);
+ submenuNode.observe("mouseout", onMouseLeftSubmenu);
+ parentNode.observe("mouseover", onMouseEnteredParentMenu);
$(this).addClassName("submenu-selected");
submenuNode.setStyle({ top: menuTop + "px",
left: menuLeft + "px",
visibility: "visible" });
document.currentPopupMenu = popup;
- Event.observe(document.body, "click", onBodyClickMenuHandler);
+ $(document.body).observe("click", onBodyClickMenuHandler);
}
}
if (!searchValue) return;
- Event.observe(searchValue, "mousedown",
- onSearchMouseDown.bindAsEventListener(searchValue));
- Event.observe(searchValue, "click",
- popupSearchMenu.bindAsEventListener(searchValue));
- Event.observe(searchValue, "blur",
- onSearchBlur.bindAsEventListener(searchValue));
- Event.observe(searchValue, "focus",
- onSearchFocus.bindAsEventListener(searchValue));
- Event.observe(searchValue, "keydown",
- onSearchKeyDown.bindAsEventListener(searchValue));
-
+ searchValue.observe("click", popupSearchMenu);
+ searchValue.observe("blur", onSearchBlur);
+ searchValue.observe("focus", onSearchFocus);
+ searchValue.observe("keydown", onSearchKeyDown);
+ searchValue.observe("mousedown", onSearchMouseDown);
+
if (!searchOptions) return;
// Set the checkmark to the first option
visibility: "visible" });
document.currentPopupMenu = popup;
- Event.observe(document.body, "click", onBodyClickMenuHandler);
+ $(document.body).observe("click", onBodyClickMenuHandler);
}
/* contact selector */
if (currentNode.tagName == 'LI') {
if (!firstTab)
firstTab = i;
- Event.observe(currentNode, "mousedown",
- onTabMouseDown.bindAsEventListener(currentNode));
- Event.observe(currentNode, "click",
- onTabClick.bindAsEventListener(currentNode));
+ $(currentNode).observe("mousedown", onTabMouseDown);
+ $(currentNode).observe("click", onTabClick);
//$(currentNode.getAttribute("target")).hide();
}
}
var lis = $(menuDIV.childNodesWithTag("ul")[0]).childNodesWithTag("li");
for (var j = 0; j < lis.length; j++) {
var node = $(lis[j]);
- Event.observe(node, "mousedown",
- listRowMouseDownHandler.bindAsEventListener(node),
- false);
+ node.observe("mousedown", listRowMouseDownHandler, false);
var callback = callbacks[j];
if (callback) {
if (typeof(callback) == "string") {
else {
node.submenu = callback;
node.addClassName("submenu");
- Event.observe(node, "mouseover",
- popupSubmenu.bindAsEventListener(node));
+ node.observe("mouseover", popupSubmenu);
}
}
else {
- Event.observe(node, "mouseup",
- onBodyClickMenuHandler);
- Event.observe(node, "click",
- $(callback).bindAsEventListener(node));
+ node.observe("mouseup", onBodyClickMenuHandler);
+ node.observe("click", callback);
}
}
else
var http = createHTTPClient();
http.open("GET", url, false);
http.send("");
- if (http.status == 200)
- userDefaults = http.responseText.evalJSON(true);
+ if (http.status == 200) {
+ if (http.responseText.length > 0)
+ userDefaults = http.responseText.evalJSON(true);
+ else
+ userDefaults = {};
+ }
url = UserFolderURL + "jsonSettings";
http.open("GET", url, false);
http.send("");
- if (http.status == 200)
- userSettings = http.responseText.evalJSON(true);
+ if (http.status == 200) {
+ if (http.responseText.length > 0)
+ userSettings = http.responseText.evalJSON(true);
+ else
+ userSettings = {};
+ }
}
function onLoadHandler(event) {
var progressImage = $("progressIndicator");
if (progressImage)
progressImage.parentNode.removeChild(progressImage);
- Event.observe(document.body, "contextmenu", onBodyClickContextMenu);
+ $(document.body).observe("contextmenu", onBodyClickContextMenu);
}
function onBodyClickContextMenu(event) {
var headers = $(table).getElementsByClassName("sortableTableHeader");
for (var i = 0; i < headers.length; i++) {
var header = headers[i];
- Event.observe(header, "click", onHeaderClick.bindAsEventListener(header))
- }
+ $(header).observe("click", onHeaderClick);
+ }
}
function onLinkBannerClick() {
if (linkBanner) {
var anchors = linkBanner.childNodesWithTag("a");
for (var i = 1; i < 3; i++) {
- Event.observe(anchors[i], "mousedown", listRowMouseDownHandler);
- Event.observe(anchors[i], "click", onLinkBannerClick);
+ $(anchors[i]).observe("mousedown", listRowMouseDownHandler);
+ $(anchors[i]).observe("click", onLinkBannerClick);
}
- Event.observe(anchors[4], "mousedown", listRowMouseDownHandler);
- Event.observe(anchors[4], "click", onPreferencesClick);
+ $(anchors[4]).observe("mousedown", listRowMouseDownHandler);
+ $(anchors[4]).observe("click", onPreferencesClick);
if (anchors.length > 5)
- Event.observe(anchors[5], "click", toggleLogConsole);
+ $(anchors[5]).observe("click", toggleLogConsole);
}
}
}
}
-addEvent(window, 'load', onLoadHandler);
+function onFinalLoadHandler(event) {
+ var safetyNet = $("javascriptSafetyNet");
+ if (safetyNet)
+ safetyNet.parentNode.removeChild(safetyNet);
+}
+
+FastInit.addOnLoad(onLoadHandler);
function parent$(element) {
return this.opener.document.getElementById(element);