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
|
// 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
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
}
}
|