]> err.no Git - scalable-opengroupware.org/blob - UI/WebServerResources/UIxContactEditor.js
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1209 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / WebServerResources / UIxContactEditor.js
1 /*
2  Copyright (C) 2005 SKYRIX Software AG
3  
4  This file is part of OpenGroupware.org.
5  
6  OGo is free software; you can redistribute it and/or modify it under
7  the terms of the GNU Lesser General Public License as published by the
8  Free Software Foundation; either version 2, or (at your option) any
9  later version.
10  
11  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
12  WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14  License for more details.
15  
16  You should have received a copy of the GNU Lesser General Public
17  License along with OGo; see the file COPYING.  If not, write to the
18  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19  02111-1307, USA.
20 */
21
22 var uixEmailUsr = 
23   "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
24 var uixEmailDomain = 
25   "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
26 var uixEmailRegex = new RegExp("^"+uixEmailUsr+"\@"+uixEmailDomain+"$");
27
28 var displayNameChanged = false;
29
30 function unescapeCallbackParameter(s) {
31   if(!s || s.length == 0)
32     return s;
33   s = s.replace(/'/g, "'");
34   s = s.replace(/"/g, '"');
35   return s;
36 }
37
38 function copyContact(type, email, uid, sn,
39                      cn, givenName, telephoneNumber, facsimileTelephoneNumber,
40                      mobile, postalAddress, homePostalAddress, 
41                      departmentNumber, l)
42 {
43     //  var type = arguments[0]; 
44     //  var email = arguments[1]; 
45     //  var uid = arguments[2]; 
46     //  var sn = arguments[3]; 
47     //  var givenName = arguments[4]; 
48     //  var telephoneNumber = arguments[5]; 
49     //  var facsimileTelephoneNumber = arguments[6]; 
50     //  var mobile = arguments[7]; 
51     //  var postalAddress = arguments[8]; 
52     //  var homePostalAddress = arguments[9]; 
53     //  var departmentNumber = arguments[10]; 
54     //  var l = arguments[11]; 
55   var e;
56   e = $('cn');
57   e.setAttribute('value', unescapeCallbackParameter(cn));
58   e = $('email');
59   e.setAttribute('value', email);
60   e = $('sn');
61   e.setAttribute('value', unescapeCallbackParameter(sn));
62   e = $('givenName');
63   e.setAttribute('value', unescapeCallbackParameter(givenName));
64   e = $('telephoneNumber');
65   e.setAttribute('value', telephoneNumber);
66   e = $('facsimileTelephoneNumber');
67   e.setAttribute('value', facsimileTelephoneNumber);
68   e = $('mobile');
69   e.setAttribute('value', mobile);
70   e = $('postalAddress');
71   e.setAttribute('value', unescapeCallbackParameter(postalAddress));
72   e = $('homePostalAddress');
73   e.setAttribute('value', unescapeCallbackParameter(homePostalAddress));
74   e = $('departmentNumber');
75   e.setAttribute('value', unescapeCallbackParameter(departmentNumber));
76   e = $('l');
77   e.setAttribute('value', unescapeCallbackParameter(l));
78 };
79
80 function validateContactEditor() {
81   var e;
82   
83   e = $('workMail');
84   if (e.value.length == 0)
85     return true;
86   if (uixEmailRegex.test(e.value) != true)
87     return confirm(labels.invalidemailwarn);
88
89   e = $('homeMail');
90   if (e.value.length == 0)
91     return true;
92   if (uixEmailRegex.test(e.value) != true)
93     return confirm(labels.invalidemailwarn);
94
95   return true;
96 }
97
98 function showCoords(node) {
99   node = $("givenName");
100   window.alert("x: " + node.cascadeLeftOffset()
101                + ";y: " + node.cascadeTopOffset()
102                + ";width: " + window.width()
103                + ";height: " + window.height());
104 }
105
106 function onFnKeyDown() {
107   var fn = $("fn");
108   fn.onkeydown = null;
109   displayNameChanged = true;
110
111   return true;
112 }
113
114 function onFnNewValue(event) {
115   if (!displayNameChanged) {
116     var sn = $("sn").value.trim();
117     var givenName = $("givenName").value.trim();
118
119     var fullName = givenName;
120     if (fullName && sn)
121       fullName += ' ';
122     fullName += sn;
123
124     $("fn").value = fullName;
125   }
126
127   return true;
128 }
129
130 function initEditorForm() {
131   displayNameChanged = ($("fn").value.length > 0);
132   $("fn").onkeydown = onFnKeyDown;
133   $("sn").onkeyup = onFnNewValue;
134   $("givenName").onkeyup = onFnNewValue;
135 }
136
137 addEvent(window, 'load', initEditorForm);