256 lines
6.9 KiB
JavaScript
256 lines
6.9 KiB
JavaScript
|
|
||
|
var usernameWasFocused = 0;
|
||
|
|
||
|
if (document.getElementById) {
|
||
|
// If there's no getElementById, this whole script won't do anything
|
||
|
|
||
|
var radio_remote = document.getElementById("talkpostfromremote");
|
||
|
var radio_user = document.getElementById("talkpostfromlj");
|
||
|
var radio_anon = document.getElementById("talkpostfromanon");
|
||
|
var radio_oidlo = document.getElementById("talkpostfromoidlo");
|
||
|
var radio_oidli = document.getElementById("talkpostfromoidli");
|
||
|
|
||
|
var check_login = document.getElementById("logincheck");
|
||
|
var sel_pickw = document.getElementById("prop_picture_keyword");
|
||
|
var commenttext = document.getElementById("commenttext");
|
||
|
|
||
|
var form = document.getElementById("postform");
|
||
|
|
||
|
var username = form.userpost;
|
||
|
username.onfocus = function () { usernameWasFocused = 1; }
|
||
|
var password = form.password;
|
||
|
|
||
|
var oidurl = document.getElementById("oidurl");
|
||
|
var oid_more = document.getElementById("oid_more");
|
||
|
var lj_more = document.getElementById("lj_more");
|
||
|
var ljuser_row = document.getElementById("ljuser_row");
|
||
|
var otherljuser_row = document.getElementById("otherljuser_row");
|
||
|
var oidlo_row = document.getElementById("oidlo");
|
||
|
var oidli_row = document.getElementById("oidli");
|
||
|
|
||
|
var remotef = document.getElementById("cookieuser");
|
||
|
var remote;
|
||
|
if (remotef) {
|
||
|
remote = remotef.value;
|
||
|
}
|
||
|
|
||
|
var subjectIconField = document.getElementById("subjectIconField");
|
||
|
var subjectIconImage = document.getElementById("subjectIconImage");
|
||
|
|
||
|
var subject_field = document.getElementById("subject");
|
||
|
var subject_nohtml = document.getElementById("ljnohtmlsubj");
|
||
|
subject_nohtml.style.display = 'none';
|
||
|
}
|
||
|
|
||
|
var apicurl = "";
|
||
|
var picprevt;
|
||
|
|
||
|
if (! sel_pickw) {
|
||
|
// make a fake sel_pickw to play with later
|
||
|
sel_pickw = new Object();
|
||
|
}
|
||
|
|
||
|
function handleRadios(sel) {
|
||
|
password.disabled = check_login.disabled = (sel != 2);
|
||
|
if (password.disabled) password.value='';
|
||
|
|
||
|
// Anonymous
|
||
|
if (sel == 0) {
|
||
|
if (radio_anon.checked != 1) {
|
||
|
radio_anon.checked = 1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Remote LJ User
|
||
|
if (sel == 1) {
|
||
|
if (radio_remote.checked != 1) {
|
||
|
radio_remote.checked = 1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// LJ User
|
||
|
if (sel == 2) {
|
||
|
if (ljuser_row) {
|
||
|
ljuser_row.style.display = 'none';
|
||
|
}
|
||
|
if (lj_more) {
|
||
|
lj_more.style.display = '';
|
||
|
}
|
||
|
username.focus();
|
||
|
|
||
|
if (radio_user.checked != 1) {
|
||
|
radio_user.checked = 1;
|
||
|
}
|
||
|
|
||
|
} else {
|
||
|
if (lj_more) {
|
||
|
lj_more.style.display = 'none';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// OpenID
|
||
|
if (oid_more) {
|
||
|
if (sel == 3) {
|
||
|
oid_more.style.display = '';
|
||
|
oidurl.focus();
|
||
|
if (oidli_row) {
|
||
|
oidli_row.style.display = 'none';
|
||
|
}
|
||
|
oidlo_row.style.display = '';
|
||
|
|
||
|
if (radio_oidlo.checked != 1) {
|
||
|
radio_oidlo.checked = 1;
|
||
|
}
|
||
|
|
||
|
} else if (sel == 4) {
|
||
|
if (oidlo_row) {
|
||
|
oidlo_row.style.display = 'none';
|
||
|
}
|
||
|
oidli_row.style.display = '';
|
||
|
oid_more.style.display = 'none';
|
||
|
|
||
|
if (radio_oidli.checked != 1) {
|
||
|
radio_oidli.checked = 1;
|
||
|
}
|
||
|
} else {
|
||
|
oid_more.style.display = 'none';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (sel_pickw.disabled = (sel != 1)) sel_pickw.value='';
|
||
|
}
|
||
|
|
||
|
function submitHandler() {
|
||
|
if (remote && username.value == remote && ((! radio_anon || ! radio_anon.checked) && (! radio_oidlo || ! radio_oidlo.checked))) {
|
||
|
// Quietly arrange for cookieuser auth instead, to avoid
|
||
|
// sending cleartext password.
|
||
|
password.value = "";
|
||
|
username.value = "";
|
||
|
radio_remote.checked = true;
|
||
|
return true;
|
||
|
}
|
||
|
if (usernameWasFocused && username.value && ! radio_user.checked) {
|
||
|
alert(usermismatchtext);
|
||
|
return false;
|
||
|
}
|
||
|
if (! radio_user.checked) {
|
||
|
username.value = "";
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
if (document.getElementById) {
|
||
|
|
||
|
if (radio_anon && radio_anon.checked) handleRadios(0);
|
||
|
if (radio_remote && radio_remote.checked) handleRadios(1);
|
||
|
if (radio_user && radio_user.checked) handleRadios(2);
|
||
|
if (radio_oidlo && radio_oidlo.checked) handleRadios(3);
|
||
|
if (radio_oidli && radio_oidli.checked) handleRadios(4);
|
||
|
|
||
|
if (radio_remote) {
|
||
|
radio_remote.onclick = function () {
|
||
|
handleRadios(1);
|
||
|
};
|
||
|
if (radio_remote.checked) handleRadios(1);
|
||
|
}
|
||
|
if (radio_user)
|
||
|
radio_user.onclick = function () {
|
||
|
handleRadios(2);
|
||
|
};
|
||
|
if (radio_anon)
|
||
|
radio_anon.onclick = function () {
|
||
|
handleRadios(0);
|
||
|
};
|
||
|
if (radio_oidlo)
|
||
|
radio_oidlo.onclick = function () {
|
||
|
handleRadios(3);
|
||
|
};
|
||
|
if (radio_oidli)
|
||
|
radio_oidli.onclick = function () {
|
||
|
handleRadios(4);
|
||
|
};
|
||
|
username.onkeydown = username.onchange = function () {
|
||
|
if (radio_remote) {
|
||
|
password.disabled = check_login.disabled = 0;
|
||
|
if (password.disabled) password.value='';
|
||
|
} else {
|
||
|
if (radio_user && username.value != "")
|
||
|
radio_user.checked = true;
|
||
|
handleRadios(2); // update the form
|
||
|
}
|
||
|
}
|
||
|
form.onsubmit = submitHandler;
|
||
|
|
||
|
document.onload = function () {
|
||
|
if (radio_anon && radio_anon.checked) handleRadios(0);
|
||
|
if (radio_user && radio_user.checked) otherLJUser();
|
||
|
if (radio_remote && radio_remote.checked) handleRadios(1);
|
||
|
if (radio_oidlo && radio_oidlo.checked) handleRadios(3);
|
||
|
if (radio_oidli && radio_oidli.checked) handleRadios(4);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
// toggle subject icon list
|
||
|
|
||
|
function subjectIconListToggle() {
|
||
|
if (! document.getElementById) { return; }
|
||
|
var subjectIconList = document.getElementById("subjectIconList");
|
||
|
if(subjectIconList) {
|
||
|
if (subjectIconList.style.display != 'block') {
|
||
|
subjectIconList.style.display = 'block';
|
||
|
} else {
|
||
|
subjectIconList.style.display = 'none';
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// change the subject icon and hide the list
|
||
|
|
||
|
function subjectIconChange(icon) {
|
||
|
if (! document.getElementById) { return; }
|
||
|
if (icon) {
|
||
|
if(subjectIconField) subjectIconField.value=icon.id;
|
||
|
if(subjectIconImage) {
|
||
|
subjectIconImage.src=icon.src;
|
||
|
subjectIconImage.width=icon.width;
|
||
|
subjectIconImage.height=icon.height;
|
||
|
}
|
||
|
subjectIconListToggle();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function subjectNoHTML(e) {
|
||
|
|
||
|
var key;
|
||
|
|
||
|
key = getKey(e);
|
||
|
|
||
|
if (key == 60) {
|
||
|
subject_nohtml.style.display = 'block';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function getKey(e) {
|
||
|
if (window.event) {
|
||
|
return window.event.keyCode;
|
||
|
} else if(e) {
|
||
|
return e.which;
|
||
|
} else {
|
||
|
return undefined;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function otherLJUser() {
|
||
|
handleRadios(2);
|
||
|
|
||
|
otherljuser_row.style.display = '';
|
||
|
radio_user.checked = 1;
|
||
|
}
|
||
|
|
||
|
function otherOIDUser() {
|
||
|
handleRadios(3);
|
||
|
|
||
|
radio_oidlo.checked = 1;
|
||
|
}
|