else {
var r = new RegExp("[\.\/-]", "g");
wId = wId.replace(r, "_");
- if (document.body.hasClassName("popup"))
- parentWindow = window.opener;
}
+
+ if (document.body.hasClassName("popup"))
+ parentWindow = window.opener;
var w = parentWindow.open(url, wId,
"width=680,height=520,resizable=1,scrollbars=1,toolbar=0,"
return url_nocache;
}
-function triggerAjaxRequest(url, callback, userdata) {
+function triggerAjaxRequest(url, callback, userdata, content, headers) {
var http = createHTTPClient();
activeAjaxRequests += 1;
log(backtrace());
}
};
- http.send(null);
+ if (headers) {
+ for (var i in headers)
+ http.setRequestHeader(i, headers[i]);
+ }
+ http.send(content);
}
else {
log("triggerAjaxRequest: error creating HTTP Client!");
}
var initialSelection = $(node.parentNode).getSelectedNodes();
+ if (initialSelection.length > 0
+ && initialSelection.indexOf(node) >= 0
+ && !Event.isLeftClick(event))
+ // Ignore non primary-click (ie right-click) inside current selection
+ return true;
+
if ((event.shiftKey == 1 || event.ctrlKey == 1)
&& (lastClickedRow >= 0)
&& (acceptMultiSelect(node.parentNode)
if (popup.prepareVisibility)
popup.prepareVisibility();
+
popup.setStyle({ top: menuTop + "px",
left: menuLeft + "px",
visibility: "visible" });
-
+
document.currentPopupMenu = popup;
$(document.body).observe("click", onBodyClickMenuHandler);
var menuTop = (parentNode.offsetTop - 1
+ this.offsetTop);
+
if (window.height()
- < (menuTop + submenuNode.offsetHeight)
- && submenuNode.offsetHeight < window.height())
- menuTop -= submenuNode.offsetHeight - this.offsetHeight - 4;
+ < (menuTop + submenuNode.offsetHeight))
+ if (submenuNode.offsetHeight < window.height())
+ menuTop = window.height() - submenuNode.offsetHeight;
+ else
+ menuTop = 0;
+
var menuLeft = (parentNode.offsetLeft + parentNode.offsetWidth - 3);
if (window.width()
< (menuLeft + submenuNode.offsetWidth))
var searchValue = $("searchValue");
var searchCriteria = $("searchCriteria");
- searchValue.setAttribute("ghost-phrase", this.innerHTML);
+ searchValue.ghostPhrase = this.innerHTML;
searchCriteria.value = this.getAttribute('id');
if (this.parentNode.chosenNode)
}
function checkSearchValue(event) {
- var form = event.target;
var searchValue = $("searchValue");
- var ghostPhrase = searchValue.getAttribute('ghost-phrase');
- if (searchValue.value == ghostPhrase)
+ if (searchValue.value == searchValue.ghostPhrase)
searchValue.value = "";
}
-function onSearchChange() {
- log ("onSearchChange()...");
-}
-
function configureSearchField() {
var searchValue = $("searchValue");
var searchOptions = $("searchOptions");
}
function onSearchFocus() {
- ghostPhrase = this.getAttribute("ghost-phrase");
+ ghostPhrase = this.ghostPhrase;
if (this.value == ghostPhrase) {
this.value = "";
this.setAttribute("modified", "");
}
function onSearchBlur(event) {
- var ghostPhrase = this.getAttribute("ghost-phrase");
-
if (!this.value) {
this.setAttribute("modified", "");
this.setStyle({ color: "#aaa" });
- this.value = ghostPhrase;
- refreshCurrentFolder();
- } else if (this.value == ghostPhrase) {
+ this.value = this.ghostPhrase;
+ search["value"] = "";
+ if (searchValue.lastSearch != "") {
+ searchValue.lastSearch = "";
+ refreshCurrentFolder();
+ }
+ } else if (this.value == this.ghostPhrase) {
this.setAttribute("modified", "");
this.setStyle({ color: "#aaa" });
} else {
if (this.timer)
clearTimeout(this.timer);
- this.timer = setTimeout("onSearchFormSubmit()", 1000);
+ if (event.keyCode == 13) {
+ onSearchFormSubmit();
+ preventDefault(event);
+ }
+ else
+ this.timer = setTimeout("onSearchFormSubmit()", 1000);
}
function onSearchFormSubmit(event) {
var searchValue = $("searchValue");
var searchCriteria = $("searchCriteria");
- var ghostPhrase = searchValue.getAttribute('ghost-phrase');
- if (searchValue.value == ghostPhrase) return;
-
- search["criteria"] = searchCriteria.value;
- search["value"] = searchValue.value;
-
- refreshCurrentFolder();
+ if (searchValue.value != searchValue.ghostPhrase
+ && searchValue.value != searchValue.lastSearch) {
+ search["criteria"] = searchCriteria.value;
+ search["value"] = searchValue.value;
+ searchValue.lastSearch = searchValue.value;
+ refreshCurrentFolder();
+ }
}
function initCriteria() {
var searchCriteria = $("searchCriteria");
var searchValue = $("searchValue");
- if (!searchValue) return;
-
- var searchOptions = $("searchOptions").childNodesWithTag("li");
- if (searchOptions.length > 0) {
- var firstChild = searchOptions[0];
- searchCriteria.value = $(firstChild).getAttribute('id');
- searchValue.setAttribute('ghost-phrase', firstChild.innerHTML);
- if (searchValue.value == '') {
- searchValue.value = firstChild.innerHTML;
- searchValue.setAttribute("modified", "");
- searchValue.setStyle({ color: "#aaa" });
+ if (searchValue) {
+ var searchOptions = $("searchOptions").childNodesWithTag("li");
+ if (searchOptions.length > 0) {
+ var firstChild = searchOptions[0];
+ searchCriteria.value = $(firstChild).getAttribute('id');
+ searchValue.ghostPhrase = firstChild.innerHTML;
+ searchValue.lastSearch = "";
+ if (searchValue.value == '') {
+ searchValue.value = firstChild.innerHTML;
+ searchValue.setAttribute("modified", "");
+ searchValue.setStyle({ color: "#aaa" });
+ }
}
}
}
return owner;
}
+function getListIndexForFolder(items, owner, folderName) {
+ var i;
+ var previousOwner = null;
+
+ for (var i = 0; i < items.length; i++) {
+ var currentFolderName = items[i].lastChild.nodeValue.strip();
+ var currentOwner = items[i].readAttribute('owner');
+ if (currentOwner == owner) {
+ previousOwner = currentOwner;
+ if (currentFolderName > folderName)
+ break;
+ }
+ else if (previousOwner ||
+ (currentOwner != UserLogin && currentOwner > owner))
+ break;
+ else if (currentOwner == "nobody")
+ break;
+ }
+
+ return i;
+}
+
function listRowMouseDownHandler(event) {
preventDefault(event);
//Event.stop(event);
}
function initMenu(menuDIV, callbacks) {
- var lis = $(menuDIV.childNodesWithTag("ul")[0]).childNodesWithTag("li");
+ var lis = $(menuDIV.down("ul")).childNodesWithTag("li");
for (var j = 0; j < lis.length; j++) {
var node = $(lis[j]);
node.observe("mousedown", listRowMouseDownHandler, false);
function configureLinkBanner() {
var linkBanner = $("linkBanner");
if (linkBanner) {
- var anchors = linkBanner.childNodesWithTag("a");
- for (var i = 1; i < 3; i++) {
- $(anchors[i]).observe("mousedown", listRowMouseDownHandler);
- $(anchors[i]).observe("click", onLinkBannerClick);
+ var moduleLinks = [ "calendar", "contacts", "mail" ];
+ for (var i = 0; i < moduleLinks.length; i++) {
+ var link = $(moduleLinks[i] + "BannerLink");
+ if (link) {
+ link.observe("mousedown", listRowMouseDownHandler);
+ link.observe("click", onLinkBannerClick);
+ }
+ }
+ link = $("preferencesBannerLink");
+ if (link) {
+ link.observe("mousedown", listRowMouseDownHandler);
+ link.observe("click", onPreferencesClick);
+ }
+ link = $("consoleBannerLink");
+ if (link) {
+ link.observe("mousedown", listRowMouseDownHandler);
+ link.observe("click", toggleLogConsole);
}
- $(anchors[4]).observe("mousedown", listRowMouseDownHandler);
- $(anchors[4]).observe("click", onPreferencesClick);
- if (anchors.length > 5)
- $(anchors[5]).observe("click", toggleLogConsole);
}
}