blob: 7b2946d263cf7c2a0913ed74d7af758f989992d3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
// User Editing Utilities
/**
* for new users:
* Depending on the input field which calls it, takes the value
* and dispatches it to certain other input fields:
*
* address
* +-> username
* | `-> realname
* `-> organisation
*/
function split_name(that) {
var raw = that.value
var val = trim(raw)
if (val == '') {
return
}
var username=''
var realname=''
var address=''
switch (that.name) {
case 'address':
address=val
break
case 'username':
username=val
break
case 'realname':
realname=val
break
case 'firstname':
case 'lastname':
return
default:
alert('Ooops - unknown name field '+that.name+'!')
return
}
var the_form = that.form;
function field_empty(name) {
return the_form[name].value == ''
}
// no break statements - on purpose!
switch (that.name) {
case 'address':
var split1 = address.split('@')
if (field_empty('username')) {
username = split1[0]
the_form.username.value = username
}
if (field_empty('organisation')) {
the_form.organisation.value = default_organisation(split1[1])
}
case 'username':
if (field_empty('realname')) {
realname = Cap(username.split('.').join(' '))
the_form.realname.value = realname
}
case 'realname':
if (field_empty('username')) {
username = Cap(realname.replace(' ', '.'))
the_form.username.value = username
}
if (the_form.firstname && the_form.lastname) {
var split2 = realname.split(' ')
var firstname='', lastname=''
firstname = split2[0]
lastname = split2.slice(1).join(' ')
if (field_empty('firstname')) {
the_form.firstname.value = firstname
}
if (field_empty('lastname')) {
the_form.lastname.value = lastname
}
}
}
}
function SubCap(str) {
switch (str) {
case 'de': case 'do': case 'da':
case 'du': case 'von':
return str;
}
if (str.toLowerCase().slice(0,2) == 'mc') {
return 'Mc'+str.slice(2,3).toUpperCase()+str.slice(3).toLowerCase()
}
return str.slice(0,1).toUpperCase()+str.slice(1).toLowerCase()
}
function Cap(str) {
var liz = str.split(' ')
for (var i=0; i<liz.length; i++) {
liz[i] = SubCap(liz[i])
}
return liz.join(' ')
}
/**
* Takes a domain name (behind the @ part of an email address)
* Customise this to handle the mail domains you're interested in
*/
function default_organisation(orga) {
switch (orga.toLowerCase()) {
case 'gmx':
case 'yahoo':
return ''
default:
return orga
}
}
|