Commit ce8c9c3e by Scott

Coding style (JavaScript)

parent ccfca9d5
...@@ -22,14 +22,14 @@ ...@@ -22,14 +22,14 @@
More about this license: http://www.question2answer.org/license.php More about this license: http://www.question2answer.org/license.php
*/ */
var qa_recalc_running=0; var qa_recalc_running = 0;
window.onbeforeunload=function(event) window.onbeforeunload = function(event)
{ {
if (qa_recalc_running>0) { if (qa_recalc_running > 0) {
event=event||window.event; event = event || window.event;
var message=qa_warning_recalc; var message = qa_warning_recalc;
event.returnValue=message; event.returnValue = message;
return message; return message;
} }
}; };
...@@ -37,17 +37,17 @@ window.onbeforeunload=function(event) ...@@ -37,17 +37,17 @@ window.onbeforeunload=function(event)
function qa_recalc_click(state, elem, value, noteid) function qa_recalc_click(state, elem, value, noteid)
{ {
if (elem.qa_recalc_running) { if (elem.qa_recalc_running) {
elem.qa_recalc_stopped=true; elem.qa_recalc_stopped = true;
} else { } else {
elem.qa_recalc_running=true; elem.qa_recalc_running = true;
elem.qa_recalc_stopped=false; elem.qa_recalc_stopped = false;
qa_recalc_running++; qa_recalc_running++;
document.getElementById(noteid).innerHTML=''; document.getElementById(noteid).innerHTML = '';
elem.qa_original_value=elem.value; elem.qa_original_value = elem.value;
if (value) if (value)
elem.value=value; elem.value = value;
qa_recalc_update(elem, state, noteid); qa_recalc_update(elem, state, noteid);
} }
...@@ -57,20 +57,23 @@ function qa_recalc_click(state, elem, value, noteid) ...@@ -57,20 +57,23 @@ function qa_recalc_click(state, elem, value, noteid)
function qa_recalc_update(elem, state, noteid) function qa_recalc_update(elem, state, noteid)
{ {
if (state) if (state) {
qa_ajax_post('recalc', {state:state, code:(elem.form.elements.code_recalc ? elem.form.elements.code_recalc.value : elem.form.elements.code.value)}, var recalcCode = elem.form.elements.code_recalc ? elem.form.elements.code_recalc.value : elem.form.elements.code.value;
qa_ajax_post(
'recalc',
{state: state, code: recalcCode},
function(lines) { function(lines) {
if (lines[0]=='1') { if (lines[0] == '1') {
if (lines[2]) if (lines[2])
document.getElementById(noteid).innerHTML=lines[2]; document.getElementById(noteid).innerHTML = lines[2];
if (elem.qa_recalc_stopped) if (elem.qa_recalc_stopped)
qa_recalc_cleanup(elem); qa_recalc_cleanup(elem);
else else
qa_recalc_update(elem, lines[1], noteid); qa_recalc_update(elem, lines[1], noteid);
} else if (lines[0]=='0') { } else if (lines[0] == '0') {
document.getElementById(noteid).innerHTML=lines[1]; document.getElementById(noteid).innerHTML = lines[1];
qa_recalc_cleanup(elem); qa_recalc_cleanup(elem);
} else { } else {
...@@ -79,29 +82,31 @@ function qa_recalc_update(elem, state, noteid) ...@@ -79,29 +82,31 @@ function qa_recalc_update(elem, state, noteid)
} }
} }
); );
} else {
else
qa_recalc_cleanup(elem); qa_recalc_cleanup(elem);
}
} }
function qa_recalc_cleanup(elem) function qa_recalc_cleanup(elem)
{ {
elem.value=elem.qa_original_value; elem.value = elem.qa_original_value;
elem.qa_recalc_running=null; elem.qa_recalc_running = null;
qa_recalc_running--; qa_recalc_running--;
} }
function qa_mailing_start(noteid, pauseid) function qa_mailing_start(noteid, pauseid)
{ {
qa_ajax_post('mailing', {}, qa_ajax_post('mailing', {},
function (lines) { function(lines) {
if (lines[0]=='1') { if (lines[0] == '1') {
document.getElementById(noteid).innerHTML=lines[1]; document.getElementById(noteid).innerHTML = lines[1];
window.setTimeout(function() { qa_mailing_start(noteid, pauseid); }, 1); // don't recurse window.setTimeout(function() {
qa_mailing_start(noteid, pauseid);
}, 1); // don't recurse
} else if (lines[0]=='0') { } else if (lines[0] == '0') {
document.getElementById(noteid).innerHTML=lines[1]; document.getElementById(noteid).innerHTML = lines[1];
document.getElementById(pauseid).style.display='none'; document.getElementById(pauseid).style.display = 'none';
} else { } else {
qa_ajax_error(); qa_ajax_error();
...@@ -112,16 +117,16 @@ function qa_mailing_start(noteid, pauseid) ...@@ -112,16 +117,16 @@ function qa_mailing_start(noteid, pauseid)
function qa_admin_click(target) function qa_admin_click(target)
{ {
var p=target.name.split('_'); var p = target.name.split('_');
var params={entityid:p[1], action:p[2]}; var params = {entityid: p[1], action: p[2]};
params.code=target.form.elements.code.value; params.code = target.form.elements.code.value;
qa_ajax_post('click_admin', params, qa_ajax_post('click_admin', params,
function (lines) { function(lines) {
if (lines[0]=='1') if (lines[0] == '1')
qa_conceal(document.getElementById('p'+p[1]), 'admin'); qa_conceal(document.getElementById('p' + p[1]), 'admin');
else if (lines[0]=='0') { else if (lines[0] == '0') {
alert(lines[1]); alert(lines[1]);
qa_hide_waiting(target); qa_hide_waiting(target);
} else } else
...@@ -136,12 +141,12 @@ function qa_admin_click(target) ...@@ -136,12 +141,12 @@ function qa_admin_click(target)
function qa_version_check(uri, version, elem, isCore) function qa_version_check(uri, version, elem, isCore)
{ {
var params={uri:uri, version:version, isCore:isCore}; var params = {uri: uri, version: version, isCore: isCore};
qa_ajax_post('version', params, qa_ajax_post('version', params,
function (lines) { function(lines) {
if (lines[0]=='1') if (lines[0] == '1')
document.getElementById(elem).innerHTML=lines[1]; document.getElementById(elem).innerHTML = lines[1];
} }
); );
} }
...@@ -150,7 +155,7 @@ function qa_get_enabled_plugins_hashes() ...@@ -150,7 +155,7 @@ function qa_get_enabled_plugins_hashes()
{ {
var hashes = []; var hashes = [];
$('[id^=plugin_enabled]:checked').each( $('[id^=plugin_enabled]:checked').each(
function (idx, elem) { function(idx, elem) {
hashes.push(elem.id.replace("plugin_enabled_", "")); hashes.push(elem.id.replace("plugin_enabled_", ""));
} }
); );
......
...@@ -24,20 +24,20 @@ ...@@ -24,20 +24,20 @@
function qa_title_change(value) function qa_title_change(value)
{ {
qa_ajax_post('asktitle', {title:value}, function(lines) { qa_ajax_post('asktitle', {title: value}, function(lines) {
if (lines[0]=='1') { if (lines[0] == '1') {
if (lines[1].length) { if (lines[1].length) {
qa_tags_examples=lines[1]; qa_tags_examples = lines[1];
qa_tag_hints(true); qa_tag_hints(true);
} }
if (lines.length>2) { if (lines.length > 2) {
var simelem=document.getElementById('similar'); var simelem = document.getElementById('similar');
if (simelem) if (simelem)
simelem.innerHTML=lines.slice(2).join('\n'); simelem.innerHTML = lines.slice(2).join('\n');
} }
} else if (lines[0]=='0') } else if (lines[0] == '0')
alert(lines[1]); alert(lines[1]);
else else
qa_ajax_error(); qa_ajax_error();
...@@ -58,23 +58,23 @@ function qa_html_escape(text) ...@@ -58,23 +58,23 @@ function qa_html_escape(text)
function qa_tag_click(link) function qa_tag_click(link)
{ {
var elem=document.getElementById('tags'); var elem = document.getElementById('tags');
var parts=qa_tag_typed_parts(elem); var parts = qa_tag_typed_parts(elem);
// removes any HTML tags and ampersand // removes any HTML tags and ampersand
var tag=qa_html_unescape(link.innerHTML.replace(/<[^>]*>/g, '')); var tag = qa_html_unescape(link.innerHTML.replace(/<[^>]*>/g, ''));
var separator=qa_tag_onlycomma ? ', ' : ' '; var separator = qa_tag_onlycomma ? ', ' : ' ';
// replace if matches typed, otherwise append // replace if matches typed, otherwise append
var newvalue=(parts.typed && (tag.toLowerCase().indexOf(parts.typed.toLowerCase())>=0)) var newvalue = (parts.typed && (tag.toLowerCase().indexOf(parts.typed.toLowerCase()) >= 0))
? (parts.before+separator+tag+separator+parts.after+separator) : (elem.value+separator+tag+separator); ? (parts.before + separator + tag + separator + parts.after + separator) : (elem.value + separator + tag + separator);
// sanitize and set value // sanitize and set value
if (qa_tag_onlycomma) if (qa_tag_onlycomma)
elem.value=newvalue.replace(/[\s,]*,[\s,]*/g, ', ').replace(/^[\s,]+/g, ''); elem.value = newvalue.replace(/[\s,]*,[\s,]*/g, ', ').replace(/^[\s,]+/g, '');
else else
elem.value=newvalue.replace(/[\s,]+/g, ' ').replace(/^[\s,]+/g, ''); elem.value = newvalue.replace(/[\s,]+/g, ' ').replace(/^[\s,]+/g, '');
elem.focus(); elem.focus();
qa_tag_hints(); qa_tag_hints();
...@@ -84,55 +84,55 @@ function qa_tag_click(link) ...@@ -84,55 +84,55 @@ function qa_tag_click(link)
function qa_tag_hints(skipcomplete) function qa_tag_hints(skipcomplete)
{ {
var elem=document.getElementById('tags'); var elem = document.getElementById('tags');
var html=''; var html = '';
var completed=false; var completed = false;
// first try to auto-complete // first try to auto-complete
if (qa_tags_complete && !skipcomplete) { if (qa_tags_complete && !skipcomplete) {
var parts=qa_tag_typed_parts(elem); var parts = qa_tag_typed_parts(elem);
if (parts.typed) { if (parts.typed) {
html=qa_tags_to_html((qa_html_unescape(qa_tags_examples+','+qa_tags_complete)).split(','), parts.typed.toLowerCase()); html = qa_tags_to_html((qa_html_unescape(qa_tags_examples + ',' + qa_tags_complete)).split(','), parts.typed.toLowerCase());
completed=html ? true : false; completed = html ? true : false;
} }
} }
// otherwise show examples // otherwise show examples
if (qa_tags_examples && !completed) if (qa_tags_examples && !completed)
html=qa_tags_to_html((qa_html_unescape(qa_tags_examples)).split(','), null); html = qa_tags_to_html((qa_html_unescape(qa_tags_examples)).split(','), null);
// set title visiblity and hint list // set title visiblity and hint list
document.getElementById('tag_examples_title').style.display=(html && !completed) ? '' : 'none'; document.getElementById('tag_examples_title').style.display = (html && !completed) ? '' : 'none';
document.getElementById('tag_complete_title').style.display=(html && completed) ? '' : 'none'; document.getElementById('tag_complete_title').style.display = (html && completed) ? '' : 'none';
document.getElementById('tag_hints').innerHTML=html; document.getElementById('tag_hints').innerHTML = html;
} }
function qa_tags_to_html(tags, matchlc) function qa_tags_to_html(tags, matchlc)
{ {
var html=''; var html = '';
var added=0; var added = 0;
var tagseen={}; var tagseen = {};
for (var i=0; i<tags.length; i++) { for (var i = 0; i < tags.length; i++) {
var tag=tags[i]; var tag = tags[i];
var taglc=tag.toLowerCase(); var taglc = tag.toLowerCase();
if (!tagseen[taglc]) { if (!tagseen[taglc]) {
tagseen[taglc]=true; tagseen[taglc] = true;
if ( (!matchlc) || (taglc.indexOf(matchlc)>=0) ) { // match if necessary if ((!matchlc) || (taglc.indexOf(matchlc) >= 0)) { // match if necessary
if (matchlc) { // if matching, show appropriate part in bold if (matchlc) { // if matching, show appropriate part in bold
var matchstart=taglc.indexOf(matchlc); var matchstart = taglc.indexOf(matchlc);
var matchend=matchstart+matchlc.length; var matchend = matchstart + matchlc.length;
inner='<span style="font-weight:normal;">'+qa_html_escape(tag.substring(0, matchstart))+'<b>'+ inner = '<span style="font-weight:normal;">' + qa_html_escape(tag.substring(0, matchstart)) + '<b>' +
qa_html_escape(tag.substring(matchstart, matchend))+'</b>'+qa_html_escape(tag.substring(matchend))+'</span>'; qa_html_escape(tag.substring(matchstart, matchend)) + '</b>' + qa_html_escape(tag.substring(matchend)) + '</span>';
} else // otherwise show as-is } else // otherwise show as-is
inner=qa_html_escape(tag); inner = qa_html_escape(tag);
html+=qa_tag_template.replace(/\^/g, inner.replace('$', '$$$$'))+' '; // replace ^ in template, escape $s html += qa_tag_template.replace(/\^/g, inner.replace('$', '$$$$')) + ' '; // replace ^ in template, escape $s
if (++added>=qa_tags_max) if (++added >= qa_tags_max)
break; break;
} }
} }
...@@ -145,13 +145,13 @@ function qa_caret_from_end(elem) ...@@ -145,13 +145,13 @@ function qa_caret_from_end(elem)
{ {
if (document.selection) { // for IE if (document.selection) { // for IE
elem.focus(); elem.focus();
var sel=document.selection.createRange(); var sel = document.selection.createRange();
sel.moveStart('character', -elem.value.length); sel.moveStart('character', -elem.value.length);
return elem.value.length-sel.text.length; return elem.value.length - sel.text.length;
} else if (typeof(elem.selectionEnd)!='undefined') // other browsers } else if (typeof (elem.selectionEnd) != 'undefined') // other browsers
return elem.value.length-elem.selectionEnd; return elem.value.length - elem.selectionEnd;
else // by default return safest value else // by default return safest value
return 0; return 0;
...@@ -159,91 +159,91 @@ function qa_caret_from_end(elem) ...@@ -159,91 +159,91 @@ function qa_caret_from_end(elem)
function qa_tag_typed_parts(elem) function qa_tag_typed_parts(elem)
{ {
var caret=elem.value.length-qa_caret_from_end(elem); var caret = elem.value.length - qa_caret_from_end(elem);
var active=elem.value.substring(0, caret); var active = elem.value.substring(0, caret);
var passive=elem.value.substring(active.length); var passive = elem.value.substring(active.length);
// if the caret is in the middle of a word, move the end of word from passive to active // if the caret is in the middle of a word, move the end of word from passive to active
if ( if (
active.match(qa_tag_onlycomma ? /[^\s,][^,]*$/ : /[^\s,]$/) && active.match(qa_tag_onlycomma ? /[^\s,][^,]*$/ : /[^\s,]$/) &&
(adjoinmatch=passive.match(qa_tag_onlycomma ? /^[^,]*[^\s,][^,]*/ : /^[^\s,]+/)) (adjoinmatch = passive.match(qa_tag_onlycomma ? /^[^,]*[^\s,][^,]*/ : /^[^\s,]+/))
) { ) {
active+=adjoinmatch[0]; active += adjoinmatch[0];
passive=elem.value.substring(active.length); passive = elem.value.substring(active.length);
} }
// find what has been typed so far // find what has been typed so far
var typedmatch=active.match(qa_tag_onlycomma ? /[^\s,]+[^,]*$/ : /[^\s,]+$/) || ['']; var typedmatch = active.match(qa_tag_onlycomma ? /[^\s,]+[^,]*$/ : /[^\s,]+$/) || [''];
return {before:active.substring(0, active.length-typedmatch[0].length), after:passive, typed:typedmatch[0]}; return {before: active.substring(0, active.length - typedmatch[0].length), after: passive, typed: typedmatch[0]};
} }
function qa_category_select(idprefix, startpath) function qa_category_select(idprefix, startpath)
{ {
var startval=startpath ? startpath.split("/") : []; var startval = startpath ? startpath.split("/") : [];
var setdescnow=true; var setdescnow = true;
for (var l=0; l<=qa_cat_maxdepth; l++) { for (var l = 0; l <= qa_cat_maxdepth; l++) {
var elem=document.getElementById(idprefix+'_'+l); var elem = document.getElementById(idprefix + '_' + l);
if (elem) { if (elem) {
if (l) { if (l) {
if (l<startval.length && startval[l].length) { if (l < startval.length && startval[l].length) {
var val=startval[l]; var val = startval[l];
for (var j=0; j<elem.options.length; j++) for (var j = 0; j < elem.options.length; j++)
if (elem.options[j].value==val) if (elem.options[j].value == val)
elem.selectedIndex=j; elem.selectedIndex = j;
} else } else
var val=elem.options[elem.selectedIndex].value; var val = elem.options[elem.selectedIndex].value;
} else } else
val=''; val = '';
if (elem.qa_last_sel!==val) { if (elem.qa_last_sel !== val) {
elem.qa_last_sel=val; elem.qa_last_sel = val;
var subelem=document.getElementById(idprefix+'_'+l+'_sub'); var subelem = document.getElementById(idprefix + '_' + l + '_sub');
if (subelem) if (subelem)
subelem.parentNode.removeChild(subelem); subelem.parentNode.removeChild(subelem);
if (val.length || (l==0)) { if (val.length || (l == 0)) {
subelem=elem.parentNode.insertBefore(document.createElement('span'), elem.nextSibling); subelem = elem.parentNode.insertBefore(document.createElement('span'), elem.nextSibling);
subelem.id=idprefix+'_'+l+'_sub'; subelem.id = idprefix + '_' + l + '_sub';
qa_show_waiting_after(subelem, true); qa_show_waiting_after(subelem, true);
qa_ajax_post('category', {categoryid:val}, qa_ajax_post('category', {categoryid: val},
(function(elem, l) { (function(elem, l) {
return function(lines) { return function(lines) {
var subelem=document.getElementById(idprefix+'_'+l+'_sub'); var subelem = document.getElementById(idprefix + '_' + l + '_sub');
if (subelem) if (subelem)
subelem.parentNode.removeChild(subelem); subelem.parentNode.removeChild(subelem);
if (lines[0]=='1') { if (lines[0] == '1') {
elem.qa_cat_desc=lines[1]; elem.qa_cat_desc = lines[1];
var addedoption=false; var addedoption = false;
if (lines.length>2) { if (lines.length > 2) {
var subelem=elem.parentNode.insertBefore(document.createElement('span'), elem.nextSibling); var subelem = elem.parentNode.insertBefore(document.createElement('span'), elem.nextSibling);
subelem.id=idprefix+'_'+l+'_sub'; subelem.id = idprefix + '_' + l + '_sub';
subelem.innerHTML=' '; subelem.innerHTML = ' ';
var newelem=elem.cloneNode(false); var newelem = elem.cloneNode(false);
newelem.name=newelem.id=idprefix+'_'+(l+1); newelem.name = newelem.id = idprefix + '_' + (l + 1);
newelem.options.length=0; newelem.options.length = 0;
if (l ? qa_cat_allownosub : qa_cat_allownone) if (l ? qa_cat_allownosub : qa_cat_allownone)
newelem.options[0]=new Option(l ? '' : elem.options[0].text, '', true, true); newelem.options[0] = new Option(l ? '' : elem.options[0].text, '', true, true);
for (var i=2; i<lines.length; i++) { for (var i = 2; i < lines.length; i++) {
var parts=lines[i].split('/'); var parts = lines[i].split('/');
if (String(qa_cat_exclude).length && (String(qa_cat_exclude)==parts[0])) if (String(qa_cat_exclude).length && (String(qa_cat_exclude) == parts[0]))
continue; continue;
newelem.options[newelem.options.length]=new Option(parts.slice(1).join('/'), parts[0]); newelem.options[newelem.options.length] = new Option(parts.slice(1).join('/'), parts[0]);
addedoption=true; addedoption = true;
} }
if (addedoption) { if (addedoption) {
...@@ -252,14 +252,14 @@ function qa_category_select(idprefix, startpath) ...@@ -252,14 +252,14 @@ function qa_category_select(idprefix, startpath)
} }
if (l==0) if (l == 0)
elem.style.display='none'; elem.style.display = 'none';
} }
if (!addedoption) if (!addedoption)
set_category_description(idprefix); set_category_description(idprefix);
} else if (lines[0]=='0') } else if (lines[0] == '0')
alert(lines[1]); alert(lines[1]);
else else
qa_ajax_error(); qa_ajax_error();
...@@ -267,7 +267,7 @@ function qa_category_select(idprefix, startpath) ...@@ -267,7 +267,7 @@ function qa_category_select(idprefix, startpath)
})(elem, l) })(elem, l)
); );
setdescnow=false; setdescnow = false;
} }
break; break;
...@@ -281,18 +281,18 @@ function qa_category_select(idprefix, startpath) ...@@ -281,18 +281,18 @@ function qa_category_select(idprefix, startpath)
function set_category_description(idprefix) function set_category_description(idprefix)
{ {
var n=document.getElementById(idprefix+'_note'); var n = document.getElementById(idprefix + '_note');
if (n) { if (n) {
desc=''; desc = '';
for (var l=1; l<=qa_cat_maxdepth; l++) { for (var l = 1; l <= qa_cat_maxdepth; l++) {
var elem=document.getElementById(idprefix+'_'+l); var elem = document.getElementById(idprefix + '_' + l);
if (elem && elem.options[elem.selectedIndex].value.length) if (elem && elem.options[elem.selectedIndex].value.length)
desc=elem.qa_cat_desc; desc = elem.qa_cat_desc;
} }
n.innerHTML=desc; n.innerHTML = desc;
} }
} }
...@@ -37,14 +37,14 @@ function qa_conceal(elem, type, callback) ...@@ -37,14 +37,14 @@ function qa_conceal(elem, type, callback)
function qa_set_inner_html(elem, type, html) function qa_set_inner_html(elem, type, html)
{ {
if (elem) if (elem)
elem.innerHTML=html; elem.innerHTML = html;
} }
function qa_set_outer_html(elem, type, html) function qa_set_outer_html(elem, type, html)
{ {
if (elem) { if (elem) {
var e=document.createElement('div'); var e = document.createElement('div');
e.innerHTML=html; e.innerHTML = html;
elem.parentNode.replaceChild(e.firstChild, elem); elem.parentNode.replaceChild(e.firstChild, elem);
} }
} }
...@@ -52,58 +52,58 @@ function qa_set_outer_html(elem, type, html) ...@@ -52,58 +52,58 @@ function qa_set_outer_html(elem, type, html)
function qa_show_waiting_after(elem, inside) function qa_show_waiting_after(elem, inside)
{ {
if (elem && !elem.qa_waiting_shown) { if (elem && !elem.qa_waiting_shown) {
var w=document.getElementById('qa-waiting-template'); var w = document.getElementById('qa-waiting-template');
if (w) { if (w) {
var c=w.cloneNode(true); var c = w.cloneNode(true);
c.id=null; c.id = null;
if (inside) if (inside)
elem.insertBefore(c, null); elem.insertBefore(c, null);
else else
elem.parentNode.insertBefore(c, elem.nextSibling); elem.parentNode.insertBefore(c, elem.nextSibling);
elem.qa_waiting_shown=c; elem.qa_waiting_shown = c;
} }
} }
} }
function qa_hide_waiting(elem) function qa_hide_waiting(elem)
{ {
var c=elem.qa_waiting_shown; var c = elem.qa_waiting_shown;
if (c) { if (c) {
c.parentNode.removeChild(c); c.parentNode.removeChild(c);
elem.qa_waiting_shown=null; elem.qa_waiting_shown = null;
} }
} }
function qa_vote_click(elem) function qa_vote_click(elem)
{ {
var ens=elem.name.split('_'); var ens = elem.name.split('_');
var postid=ens[1]; var postid = ens[1];
var vote=parseInt(ens[2]); var vote = parseInt(ens[2]);
var code=elem.form.elements.code.value; var code = elem.form.elements.code.value;
var anchor=ens[3]; var anchor = ens[3];
qa_ajax_post('vote', {postid:postid, vote:vote, code:code}, qa_ajax_post('vote', {postid: postid, vote: vote, code: code},
function(lines) { function(lines) {
if (lines[0]=='1') { if (lines[0] == '1') {
qa_set_inner_html(document.getElementById('voting_'+postid), 'voting', lines.slice(1).join("\n")); qa_set_inner_html(document.getElementById('voting_' + postid), 'voting', lines.slice(1).join("\n"));
} else if (lines[0]=='0') { } else if (lines[0] == '0') {
var mess=document.getElementById('errorbox'); var mess = document.getElementById('errorbox');
if (!mess) { if (!mess) {
var mess=document.createElement('div'); var mess = document.createElement('div');
mess.id='errorbox'; mess.id = 'errorbox';
mess.className='qa-error'; mess.className = 'qa-error';
mess.innerHTML=lines[1]; mess.innerHTML = lines[1];
mess.style.display='none'; mess.style.display = 'none';
} }
var postelem=document.getElementById(anchor); var postelem = document.getElementById(anchor);
var e=postelem.parentNode.insertBefore(mess, postelem); var e = postelem.parentNode.insertBefore(mess, postelem);
qa_reveal(e); qa_reveal(e);
} else } else
...@@ -116,14 +116,14 @@ function qa_vote_click(elem) ...@@ -116,14 +116,14 @@ function qa_vote_click(elem)
function qa_notice_click(elem) function qa_notice_click(elem)
{ {
var ens=elem.name.split('_'); var ens = elem.name.split('_');
var code=elem.form.elements.code.value; var code = elem.form.elements.code.value;
qa_ajax_post('notice', {noticeid:ens[1], code:code}, qa_ajax_post('notice', {noticeid: ens[1], code: code},
function(lines) { function(lines) {
if (lines[0]=='1') if (lines[0] == '1')
qa_conceal(document.getElementById('notice_'+ens[1]), 'notice'); qa_conceal(document.getElementById('notice_' + ens[1]), 'notice');
else if (lines[0]=='0') else if (lines[0] == '0')
alert(lines[1]); alert(lines[1]);
else else
qa_ajax_error(); qa_ajax_error();
...@@ -135,14 +135,14 @@ function qa_notice_click(elem) ...@@ -135,14 +135,14 @@ function qa_notice_click(elem)
function qa_favorite_click(elem) function qa_favorite_click(elem)
{ {
var ens=elem.name.split('_'); var ens = elem.name.split('_');
var code=elem.form.elements.code.value; var code = elem.form.elements.code.value;
qa_ajax_post('favorite', {entitytype:ens[1], entityid:ens[2], favorite:parseInt(ens[3]), code:code}, qa_ajax_post('favorite', {entitytype: ens[1], entityid: ens[2], favorite: parseInt(ens[3]), code: code},
function (lines) { function(lines) {
if (lines[0]=='1') if (lines[0] == '1')
qa_set_inner_html(document.getElementById('favoriting'), 'favoriting', lines.slice(1).join("\n")); qa_set_inner_html(document.getElementById('favoriting'), 'favoriting', lines.slice(1).join("\n"));
else if (lines[0]=='0') { else if (lines[0] == '0') {
alert(lines[1]); alert(lines[1]);
qa_hide_waiting(elem); qa_hide_waiting(elem);
} else } else
...@@ -157,18 +157,21 @@ function qa_favorite_click(elem) ...@@ -157,18 +157,21 @@ function qa_favorite_click(elem)
function qa_ajax_post(operation, params, callback) function qa_ajax_post(operation, params, callback)
{ {
$.extend(params, {qa:'ajax', qa_operation:operation, qa_root:qa_root, qa_request:qa_request}); $.extend(params, {qa: 'ajax', qa_operation: operation, qa_root: qa_root, qa_request: qa_request});
$.post(qa_root, params, function(response) { $.post(qa_root, params, function(response) {
var header='QA_AJAX_RESPONSE'; var header = 'QA_AJAX_RESPONSE';
var headerpos=response.indexOf(header); var headerpos = response.indexOf(header);
if (headerpos>=0) if (headerpos >= 0)
callback(response.substr(headerpos+header.length).replace(/^\s+/, '').split("\n")); callback(response.substr(headerpos + header.length).replace(/^\s+/, '').split("\n"));
else else
callback([]); callback([]);
}, 'text').fail(function(jqXHR) { if (jqXHR.readyState>0) callback([]) }); }, 'text').fail(function(jqXHR) {
if (jqXHR.readyState > 0)
callback([])
});
} }
function qa_ajax_error() function qa_ajax_error()
......
...@@ -22,18 +22,18 @@ ...@@ -22,18 +22,18 @@
More about this license: http://www.question2answer.org/license.php More about this license: http://www.question2answer.org/license.php
*/ */
var qa_element_revealed=null; var qa_element_revealed = null;
function qa_toggle_element(elem) function qa_toggle_element(elem)
{ {
var e=elem ? document.getElementById(elem) : null; var e = elem ? document.getElementById(elem) : null;
if (e && e.qa_disabled) if (e && e.qa_disabled)
e=null; e = null;
if (e && (qa_element_revealed==e)) { if (e && (qa_element_revealed == e)) {
qa_conceal(qa_element_revealed, 'form'); qa_conceal(qa_element_revealed, 'form');
qa_element_revealed=null; qa_element_revealed = null;
} else { } else {
if (qa_element_revealed) if (qa_element_revealed)
...@@ -42,76 +42,74 @@ function qa_toggle_element(elem) ...@@ -42,76 +42,74 @@ function qa_toggle_element(elem)
if (e) { if (e) {
if (e.qa_load && !e.qa_loaded) { if (e.qa_load && !e.qa_loaded) {
e.qa_load(); e.qa_load();
e.qa_loaded=true; e.qa_loaded = true;
} }
if (e.qa_show) if (e.qa_show)
e.qa_show(); e.qa_show();
qa_reveal(e, 'form', function() { qa_reveal(e, 'form', function() {
var t=$(e).offset().top; var t = $(e).offset().top;
var h=$(e).height()+16; var h = $(e).height() + 16;
var wt=$(window).scrollTop(); var wt = $(window).scrollTop();
var wh=$(window).height(); var wh = $(window).height();
if ( (t<wt) || (t>(wt+wh)) ) if ((t < wt) || (t > (wt + wh)))
qa_scroll_page_to(t); qa_scroll_page_to(t);
else if ((t+h)>(wt+wh)) else if ((t + h) > (wt + wh))
qa_scroll_page_to(t+h-wh); qa_scroll_page_to(t + h - wh);
if (e.qa_focus) if (e.qa_focus)
e.qa_focus(); e.qa_focus();
}); });
} }
qa_element_revealed=e; qa_element_revealed = e;
} }
return !(e||!elem); // failed to find item return !(e || !elem); // failed to find item
} }
function qa_submit_answer(questionid, elem) function qa_submit_answer(questionid, elem)
{ {
var params=qa_form_params('a_form'); var params = qa_form_params('a_form');
params.a_questionid=questionid; params.a_questionid = questionid;
qa_ajax_post('answer', params, qa_ajax_post('answer', params,
function(lines) { function(lines) {
if (lines[0] == '1') {
if (lines[0]=='1') { if (lines[1] < 1) {
if (lines[1]<1) { var b = document.getElementById('q_doanswer');
var b=document.getElementById('q_doanswer');
if (b) if (b)
b.style.display='none'; b.style.display = 'none';
} }
var t=document.getElementById('a_list_title'); var t = document.getElementById('a_list_title');
qa_set_inner_html(t, 'a_list_title', lines[2]); qa_set_inner_html(t, 'a_list_title', lines[2]);
qa_reveal(t, 'a_list_title'); qa_reveal(t, 'a_list_title');
var e=document.createElement('div'); var e = document.createElement('div');
e.innerHTML=lines.slice(3).join("\n"); e.innerHTML = lines.slice(3).join("\n");
var c=e.firstChild; var c = e.firstChild;
c.style.display='none'; c.style.display = 'none';
var l=document.getElementById('a_list'); var l = document.getElementById('a_list');
l.insertBefore(c, l.firstChild); l.insertBefore(c, l.firstChild);
var a=document.getElementById('anew'); var a = document.getElementById('anew');
a.qa_disabled=true; a.qa_disabled = true;
qa_reveal(c, 'answer'); qa_reveal(c, 'answer');
qa_conceal(a, 'form'); qa_conceal(a, 'form');
} else if (lines[0]=='0') { } else if (lines[0] == '0') {
document.forms['a_form'].submit(); document.forms['a_form'].submit();
} else { } else {
qa_ajax_error(); qa_ajax_error();
} }
} }
); );
...@@ -122,32 +120,32 @@ function qa_submit_answer(questionid, elem) ...@@ -122,32 +120,32 @@ function qa_submit_answer(questionid, elem)
function qa_submit_comment(questionid, parentid, elem) function qa_submit_comment(questionid, parentid, elem)
{ {
var params=qa_form_params('c_form_'+parentid); var params = qa_form_params('c_form_' + parentid);
params.c_questionid=questionid; params.c_questionid = questionid;
params.c_parentid=parentid; params.c_parentid = parentid;
qa_ajax_post('comment', params, qa_ajax_post('comment', params,
function (lines) { function(lines) {
if (lines[0]=='1') { if (lines[0] == '1') {
var l=document.getElementById('c'+parentid+'_list'); var l = document.getElementById('c' + parentid + '_list');
l.innerHTML=lines.slice(2).join("\n"); l.innerHTML = lines.slice(2).join("\n");
l.style.display=''; l.style.display = '';
var a=document.getElementById('c'+parentid); var a = document.getElementById('c' + parentid);
a.qa_disabled=true; a.qa_disabled = true;
var c=document.getElementById(lines[1]); // id of comment var c = document.getElementById(lines[1]); // id of comment
if (c) { if (c) {
c.style.display='none'; c.style.display = 'none';
qa_reveal(c, 'comment'); qa_reveal(c, 'comment');
} }
qa_conceal(a, 'form'); qa_conceal(a, 'form');
} else if (lines[0]=='0') { } else if (lines[0] == '0') {
document.forms['c_form_'+parentid].submit(); document.forms['c_form_' + parentid].submit();
} else { } else {
qa_ajax_error(); qa_ajax_error();
...@@ -163,20 +161,20 @@ function qa_submit_comment(questionid, parentid, elem) ...@@ -163,20 +161,20 @@ function qa_submit_comment(questionid, parentid, elem)
function qa_answer_click(answerid, questionid, target) function qa_answer_click(answerid, questionid, target)
{ {
var params={}; var params = {};
params.answerid=answerid; params.answerid = answerid;
params.questionid=questionid; params.questionid = questionid;
params.code=target.form.elements.code.value; params.code = target.form.elements.code.value;
params[target.name]=target.value; params[target.name] = target.value;
qa_ajax_post('click_a', params, qa_ajax_post('click_a', params,
function (lines) { function(lines) {
if (lines[0]=='1') { if (lines[0] == '1') {
qa_set_inner_html(document.getElementById('a_list_title'), 'a_list_title', lines[1]); qa_set_inner_html(document.getElementById('a_list_title'), 'a_list_title', lines[1]);
var l=document.getElementById('a'+answerid); var l = document.getElementById('a' + answerid);
var h=lines.slice(2).join("\n"); var h = lines.slice(2).join("\n");
if (h.length) if (h.length)
qa_set_outer_html(l, 'answer', h); qa_set_outer_html(l, 'answer', h);
...@@ -184,7 +182,7 @@ function qa_answer_click(answerid, questionid, target) ...@@ -184,7 +182,7 @@ function qa_answer_click(answerid, questionid, target)
qa_conceal(l, 'answer'); qa_conceal(l, 'answer');
} else { } else {
target.form.elements.qa_click.value=target.name; target.form.elements.qa_click.value = target.name;
target.form.submit(); target.form.submit();
} }
} }
...@@ -197,19 +195,19 @@ function qa_answer_click(answerid, questionid, target) ...@@ -197,19 +195,19 @@ function qa_answer_click(answerid, questionid, target)
function qa_comment_click(commentid, questionid, parentid, target) function qa_comment_click(commentid, questionid, parentid, target)
{ {
var params={}; var params = {};
params.commentid=commentid; params.commentid = commentid;
params.questionid=questionid; params.questionid = questionid;
params.parentid=parentid; params.parentid = parentid;
params.code=target.form.elements.code.value; params.code = target.form.elements.code.value;
params[target.name]=target.value; params[target.name] = target.value;
qa_ajax_post('click_c', params, qa_ajax_post('click_c', params,
function (lines) { function(lines) {
if (lines[0]=='1') { if (lines[0] == '1') {
var l=document.getElementById('c'+commentid); var l = document.getElementById('c' + commentid);
var h=lines.slice(1).join("\n"); var h = lines.slice(1).join("\n");
if (h.length) if (h.length)
qa_set_outer_html(l, 'comment', h); qa_set_outer_html(l, 'comment', h);
...@@ -217,7 +215,7 @@ function qa_comment_click(commentid, questionid, parentid, target) ...@@ -217,7 +215,7 @@ function qa_comment_click(commentid, questionid, parentid, target)
qa_conceal(l, 'comment'); qa_conceal(l, 'comment');
} else { } else {
target.form.elements.qa_click.value=target.name; target.form.elements.qa_click.value = target.name;
target.form.submit(); target.form.submit();
} }
} }
...@@ -230,17 +228,17 @@ function qa_comment_click(commentid, questionid, parentid, target) ...@@ -230,17 +228,17 @@ function qa_comment_click(commentid, questionid, parentid, target)
function qa_show_comments(questionid, parentid, elem) function qa_show_comments(questionid, parentid, elem)
{ {
var params={}; var params = {};
params.c_questionid=questionid; params.c_questionid = questionid;
params.c_parentid=parentid; params.c_parentid = parentid;
qa_ajax_post('show_cs', params, qa_ajax_post('show_cs', params,
function (lines) { function(lines) {
if (lines[0]=='1') { if (lines[0] == '1') {
var l=document.getElementById('c'+parentid+'_list'); var l = document.getElementById('c' + parentid + '_list');
l.innerHTML=lines.slice(1).join("\n"); l.innerHTML = lines.slice(1).join("\n");
l.style.display='none'; l.style.display = 'none';
qa_reveal(l, 'comments'); qa_reveal(l, 'comments');
} else { } else {
...@@ -256,15 +254,15 @@ function qa_show_comments(questionid, parentid, elem) ...@@ -256,15 +254,15 @@ function qa_show_comments(questionid, parentid, elem)
function qa_form_params(formname) function qa_form_params(formname)
{ {
var es=document.forms[formname].elements; var es = document.forms[formname].elements;
var params={}; var params = {};
for (var i=0; i<es.length; i++) { for (var i = 0; i < es.length; i++) {
var e=es[i]; var e = es[i];
var t=(e.type || '').toLowerCase(); var t = (e.type || '').toLowerCase();
if ( ((t!='checkbox') && (t!='radio')) || e.checked) if (((t != 'checkbox') && (t != 'radio')) || e.checked)
params[e.name]=e.value; params[e.name] = e.value;
} }
return params; return params;
......
...@@ -24,32 +24,31 @@ ...@@ -24,32 +24,31 @@
function qa_submit_wall_post(elem, morelink) function qa_submit_wall_post(elem, morelink)
{ {
var params={}; var params = {};
params.message=document.forms.wallpost.message.value; params.message = document.forms.wallpost.message.value;
params.handle=document.forms.wallpost.handle.value; params.handle = document.forms.wallpost.handle.value;
params.start=document.forms.wallpost.start.value; params.start = document.forms.wallpost.start.value;
params.code=document.forms.wallpost.code.value; params.code = document.forms.wallpost.code.value;
params.morelink=morelink ? 1 : 0; params.morelink = morelink ? 1 : 0;
qa_ajax_post('wallpost', params, qa_ajax_post('wallpost', params,
function(lines) { function(lines) {
if (lines[0] == '1') {
var l = document.getElementById('wallmessages');
l.innerHTML = lines.slice(2).join("\n");
if (lines[0]=='1') { var c = document.getElementById(lines[1]); // id of new message
var l=document.getElementById('wallmessages');
l.innerHTML=lines.slice(2).join("\n");
var c=document.getElementById(lines[1]); // id of new message
if (c) { if (c) {
c.style.display='none'; c.style.display = 'none';
qa_reveal(c, 'wallpost'); qa_reveal(c, 'wallpost');
} }
document.forms.wallpost.message.value=''; document.forms.wallpost.message.value = '';
qa_hide_waiting(elem); qa_hide_waiting(elem);
} else if (lines[0]=='0') { } else if (lines[0] == '0') {
document.forms.wallpost.qa_click.value=elem.name; document.forms.wallpost.qa_click.value = elem.name;
document.forms.wallpost.submit(); document.forms.wallpost.submit();
} else { } else {
...@@ -63,23 +62,22 @@ function qa_submit_wall_post(elem, morelink) ...@@ -63,23 +62,22 @@ function qa_submit_wall_post(elem, morelink)
return false; return false;
} }
function qa_wall_post_click(messageid, target) function qa_wall_post_click(messageid, target)
{ {
var params={}; var params = {};
params.messageid=messageid; params.messageid = messageid;
params.handle=document.forms.wallpost.handle.value; params.handle = document.forms.wallpost.handle.value;
params.start=document.forms.wallpost.start.value; params.start = document.forms.wallpost.start.value;
params.code=document.forms.wallpost.code.value; params.code = document.forms.wallpost.code.value;
params[target.name]=target.value; params[target.name] = target.value;
qa_ajax_post('click_wall', params, qa_ajax_post('click_wall', params,
function (lines) { function(lines) {
if (lines[0]=='1') { if (lines[0] == '1') {
var l=document.getElementById('m'+messageid); var l = document.getElementById('m' + messageid);
var h=lines.slice(1).join("\n"); var h = lines.slice(1).join("\n");
if (h.length) if (h.length)
qa_set_outer_html(l, 'wallpost', h); qa_set_outer_html(l, 'wallpost', h);
...@@ -87,7 +85,7 @@ function qa_wall_post_click(messageid, target) ...@@ -87,7 +85,7 @@ function qa_wall_post_click(messageid, target)
qa_conceal(l, 'wallpost'); qa_conceal(l, 'wallpost');
} else { } else {
document.forms.wallpost.qa_click.value=target.name; document.forms.wallpost.qa_click.value = target.name;
document.forms.wallpost.submit(); document.forms.wallpost.submit();
} }
} }
...@@ -98,7 +96,6 @@ function qa_wall_post_click(messageid, target) ...@@ -98,7 +96,6 @@ function qa_wall_post_click(messageid, target)
return false; return false;
} }
function qa_pm_click(messageid, target, box) function qa_pm_click(messageid, target, box)
{ {
var params = {}; var params = {};
...@@ -112,9 +109,9 @@ function qa_pm_click(messageid, target, box) ...@@ -112,9 +109,9 @@ function qa_pm_click(messageid, target, box)
params[target.name] = target.value; params[target.name] = target.value;
qa_ajax_post('click_pm', params, qa_ajax_post('click_pm', params,
function (lines) { function(lines) {
if (lines[0]=='1') { if (lines[0] == '1') {
var l = document.getElementById('m'+messageid); var l = document.getElementById('m' + messageid);
var h = lines.slice(1).join("\n"); var h = lines.slice(1).join("\n");
if (h.length) if (h.length)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment