/* FORM TARGET FUNCTIONS */ function targetImage(strUrl,strWidth,strHeight) { var strFeatures = "width=" + strWidth + ",height=" + strHeight + ",left=100,top=100,fullscreen=no,scrollbars=no,titlebar=no,resizable=yes,menubar=no,toolbar=no"; newWindow = window.open(strUrl,'Image',strFeatures); newWindow.focus(); return false; } /* CONTEXT MENU HANDLING METHODS */ function displayContextMenu(divElement) { var obj = divElement; var Dx = 0; var Dy = 0; while (obj.offsetParent) { Dx += obj.offsetLeft; Dy += obj.offsetTop; obj = obj.offsetParent; } divElement.style.left = event.clientX - Dx; divElement.style.top = event.clientY - Dy; divElement.style.display = "block"; divElement.setCapture(); } function clickContextMenu(divElement,strClassName) { divElement.releaseCapture(); divElement.style.display = "none"; // Make sure onmouseout is synchronized for all the different navigators (file, image, resource, permissions,...). Note: this code could be made more general. elem = event.srcElement; if ((elem != null) && (elem.className != null) && (elem.className.indexOf(strClassName) >= 0)) elem.onclick(); else if ((elem != null) && (elem.className != null) && (elem.className.indexOf("directory") >= 0)) elem.onmouseover(elem); else if ((elem != null) && (elem.className != null) && (elem.className.indexOf("permission") >= 0)) elem.onmouseover(elem); else if ((elem != null) && (elem.className != null) && (elem.className.indexOf("orgUnit") >= 0)) elem.onmouseover(elem); else if ((elem != null) && (elem.className != null) && (elem.className.indexOf("file") >= 0)) elem.parentElement.onmouseover(elem); return false; } function toggleContextMenu(strClassName) { elem = event.srcElement; if ((elem != null) && (elem.className != null) && (elem.className.indexOf(strClassName) >= 0)) { var strSuffiks = elem.className; strSuffiks = strSuffiks.substring(elem.className.length-5,elem.className.length); if (strSuffiks == "Hover") elem.className = elem.className.substring(0,elem.className.length-5); else elem.className = elem.className + "Hover"; } } /* VALIDATION METHODS */ function validateElem(valElem,valElemShadow,regExpPattern,errMsg) { if ((valElem != null) && (valElemShadow != null)) { var regExp = new RegExp(regExpPattern); if (!regExp.test(valElem.value)) { valElemShadow.innerHTML = errMsg; return false; } valElemShadow.innerHTML = ""; } return true; } function validateEmail(emailStr) { var checkTLD=0; var knownDomsPat=/ ^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/; var emailPat=/^(.+)@(.+)$/; var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]"; var validChars="\[^\\s" + specialChars + "\]"; var quotedUser="(\"[^\"]*\")"; var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/; var atom=validChars + '+'; var word="(" + atom + "|" + quotedUser + ")"; var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$"); var matchArray=emailStr.match(emailPat); if (matchArray==null) return false; var user=matchArray[1]; var domain=matchArray[2]; for (i=0; i < user.length; i++) { if (user.charCodeAt(i) > 127) return false; } for (i=0; i < domain.length; i++) { if (domain.charCodeAt(i) > 127) return false; } if (user.match(userPat)==null) return false; var IPArray=domain.match(ipDomainPat); if (IPArray!=null) { for (var i=1;i<=4;i++) { if (IPArray>255) return false; } return true; } var atomPat=new RegExp("^" + atom + "$"); var domArr=domain.split("."); var len=domArr.length; for (i=0;i < len; i++) { if (domArr[i].search(atomPat) == -1) return false; } if (checkTLD && (domArr[domArr.length-1].length != 2) && domArr[domArr.length-1].search(knownDomsPat)==-1) return false; if (len < 2) return false; return true; } function openImageUpload(strUrl,category) { strUrl += "?action=ModDocumentUploadImage&category=" + category; var dialog = window.open(strUrl,"acmImageUploadDialog","width=400,height=200,left=1,top=1,fullscreen=no,scrollbars=no,titlebar=yes,resizable=no,menubar=no,toolbar=no"); if (dialog != null) dialog.focus(); } function openResourceUpload(strUrl,category) { strUrl += "?action=ModDocumentUploadResource&category=" + category; var dialog = window.open(strUrl,"acmResourceUploadDialog","width=400,height=200,left=1,top=1,fullscreen=no,scrollbars=no,titlebar=yes,resizable=no,menubar=no,toolbar=no"); if (dialog != null) dialog.focus(); } /* MISCELANEOUS METHODS */ function trimString(str) { str = this != window ? this : str; return str.replace(/^\s+/g,'').replace(/\s+$/g,''); } function encodeUrl(strUrl) { newUrl = strUrl; if (newUrl != null) { newUrl = newUrl.replace(/\?/g,"%3f"); newUrl = newUrl.replace(/\&/g,"%26"); newUrl = newUrl.replace(/\=/g,"%3d"); } else newUrl = ""; return newUrl; } var nav4 = window.Event ? true : false; function modifiers(e) { if (nav4) { document.keys.alt.checked = e.modifiers & Event.ALT_MASK; document.keys.control.checked = e.modifiers & Event.CONTROL_MASK; document.keys.shift.checked = e.modifiers & Event.SHIFT_MASK; document.keys.meta.checked = e.modifiers & Event.META_MASK; } else { document.keys.alt.checked = e.altKey; document.keys.control.checked = e.ctrlKey; document.keys.shift.checked = e.shiftKey; document.keys.meta.checked = false; } return false; } /* AJAX METHODS */ function callbackPopulateHTML(text, headers, callingContext) { document.getElementById(callingContext).innerHTML = text; }