/* -*- Mode: java; tab-width: 2; c-label-minimum-indentation: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* Copyright (C) 2005 SKYRIX Software AG Copyright (C) 2006-2010 Inverse This file is part of OpenGroupware.org. OGo is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. OGo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with OGo; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ var uixEmailUsr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")"; var uixEmailDomain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}"; var uixEmailRegex = new RegExp("^"+uixEmailUsr+"\@"+uixEmailDomain+"$"); var displayNameChanged = false; function unescapeCallbackParameter(s) { if(!s || s.length == 0) return s; s = s.replace(/'/g, "'"); s = s.replace(/"/g, '"'); return s; } function copyContact(type, email, uid, sn, cn, givenName, telephoneNumber, facsimileTelephoneNumber, mobile, postalAddress, homePostalAddress, departmentNumber, l) { // var type = arguments[0]; // var email = arguments[1]; // var uid = arguments[2]; // var sn = arguments[3]; // var givenName = arguments[4]; // var telephoneNumber = arguments[5]; // var facsimileTelephoneNumber = arguments[6]; // var mobile = arguments[7]; // var postalAddress = arguments[8]; // var homePostalAddress = arguments[9]; // var departmentNumber = arguments[10]; // var l = arguments[11]; var e; e = $('cn'); e.setAttribute('value', unescapeCallbackParameter(cn)); e = $('email'); e.setAttribute('value', email); e = $('sn'); e.setAttribute('value', unescapeCallbackParameter(sn)); e = $('givenName'); e.setAttribute('value', unescapeCallbackParameter(givenName)); e = $('telephoneNumber'); e.setAttribute('value', telephoneNumber); e = $('facsimileTelephoneNumber'); e.setAttribute('value', facsimileTelephoneNumber); e = $('mobile'); e.setAttribute('value', mobile); e = $('postalAddress'); e.setAttribute('value', unescapeCallbackParameter(postalAddress)); e = $('homePostalAddress'); e.setAttribute('value', unescapeCallbackParameter(homePostalAddress)); e = $('departmentNumber'); e.setAttribute('value', unescapeCallbackParameter(departmentNumber)); e = $('l'); e.setAttribute('value', unescapeCallbackParameter(l)); }; function validateContactEditor() { var rc = true; var e = $('workMail'); if (e.value.length > 0 && !uixEmailRegex.test(e.value)) { alert(_("invalidemailwarn")); rc = false; } e = $('homeMail'); if (e.value.length > 0 && !uixEmailRegex.test(e.value)) { alert(_("invalidemailwarn")); rc = false; } return rc; } function onFnKeyDown() { var fn = $("fn"); fn.onkeydown = null; displayNameChanged = true; return true; } function onFnNewValue(event) { if (!displayNameChanged) { var sn = $("sn").value.trim(); var givenName = $("givenName").value.trim(); var fullName = givenName; if (fullName && sn) fullName += ' '; fullName += sn; $("fn").value = fullName; } return true; } function onEditorCancelClick(event) { this.blur(); preventDefault(event); window.close(); } function onEditorSubmitClick(event) { if (validateContactEditor()) $('mainForm').submit(); this.blur(); } function onDocumentKeydown(event) { var target = Event.element(event); if (target.tagName == "INPUT" || target.tagName == "SELECT") { if (event.keyCode == Event.KEY_RETURN) { var fcn = onEditorSubmitClick.bind($("submitButton")); fcn(); Event.stop(event); } } } function initEditorForm() { var tabsContainer = $("editorTabs"); var controller = new SOGoTabsController(); controller.attachToTabsContainer(tabsContainer); displayNameChanged = ($("fn").value.length > 0); $("fn").onkeydown = onFnKeyDown; $("sn").onkeyup = onFnNewValue; $("givenName").onkeyup = onFnNewValue; $("cancelButton").observe("click", onEditorCancelClick); $("submitButton").observe("click", onEditorSubmitClick); Event.observe(document, "keydown", onDocumentKeydown); } document.observe("dom:loaded", initEditorForm);