Chris@76: var cur_topic_id, cur_msg_id, buff_subject, cur_subject_div, in_edit_mode = 0; Chris@76: var hide_prefixes = Array(); Chris@76: Chris@76: function modify_topic(topic_id, first_msg_id, cur_session_id) Chris@76: { Chris@76: if (!window.XMLHttpRequest) Chris@76: return; Chris@76: if (typeof(window.opera) != "undefined") Chris@76: { Chris@76: var test = new XMLHttpRequest(); Chris@76: if (typeof(test.setRequestHeader) != "function") Chris@76: return; Chris@76: } Chris@76: Chris@76: if (in_edit_mode == 1) Chris@76: { Chris@76: if (cur_topic_id == topic_id) Chris@76: return; Chris@76: else Chris@76: modify_topic_cancel(); Chris@76: } Chris@76: Chris@76: in_edit_mode = 1; Chris@76: mouse_on_div = 1; Chris@76: cur_topic_id = topic_id; Chris@76: Chris@76: if (typeof window.ajax_indicator == "function") Chris@76: ajax_indicator(true); Chris@76: Chris@76: getXMLDocument(smf_scripturl + "?action=quotefast;quote=" + first_msg_id + ";sesc=" + cur_session_id + ";modify;xml", onDocReceived_modify_topic); Chris@76: } Chris@76: Chris@76: function onDocReceived_modify_topic(XMLDoc) Chris@76: { Chris@76: cur_msg_id = XMLDoc.getElementsByTagName("message")[0].getAttribute("id"); Chris@76: Chris@76: cur_subject_div = document.getElementById('msg_' + cur_msg_id.substr(4)); Chris@76: buff_subject = getInnerHTML(cur_subject_div); Chris@76: Chris@76: // Here we hide any other things they want hiding on edit. Chris@76: set_hidden_topic_areas('none'); Chris@76: Chris@76: modify_topic_show_edit(XMLDoc.getElementsByTagName("subject")[0].childNodes[0].nodeValue); Chris@76: Chris@76: if (typeof window.ajax_indicator == "function") Chris@76: ajax_indicator(false); Chris@76: } Chris@76: Chris@76: function modify_topic_cancel() Chris@76: { Chris@76: setInnerHTML(cur_subject_div, buff_subject); Chris@76: set_hidden_topic_areas(''); Chris@76: Chris@76: in_edit_mode = 0; Chris@76: return false; Chris@76: } Chris@76: Chris@76: function modify_topic_save(cur_session_id) Chris@76: { Chris@76: if (!in_edit_mode) Chris@76: return true; Chris@76: Chris@76: var i, x = new Array(); Chris@76: x[x.length] = 'subject=' + escape(textToEntities(document.forms.quickModForm['subject'].value)).replace(/\+/g, "%2B"); Chris@76: x[x.length] = 'topic=' + parseInt(document.forms.quickModForm.elements['topic'].value); Chris@76: x[x.length] = 'msg=' + parseInt(document.forms.quickModForm.elements['msg'].value); Chris@76: Chris@76: if (typeof window.ajax_indicator == "function") Chris@76: ajax_indicator(true); Chris@76: Chris@76: sendXMLDocument(smf_scripturl + "?action=jsmodify;topic=" + parseInt(document.forms.quickModForm.elements['topic'].value) + ";sesc=" + cur_session_id + ";xml", x.join("&"), modify_topic_done); Chris@76: Chris@76: return false; Chris@76: } Chris@76: Chris@76: function modify_topic_done(XMLDoc) Chris@76: { Chris@76: if (!XMLDoc) Chris@76: { Chris@76: modify_topic_cancel(); Chris@76: return true; Chris@76: } Chris@76: Chris@76: var message = XMLDoc.getElementsByTagName("smf")[0].getElementsByTagName("message")[0]; Chris@76: var subject = message.getElementsByTagName("subject")[0]; Chris@76: var error = message.getElementsByTagName("error")[0]; Chris@76: Chris@76: if (typeof window.ajax_indicator == "function") Chris@76: ajax_indicator(false); Chris@76: Chris@76: if (!subject || error) Chris@76: return false; Chris@76: Chris@76: subjectText = subject.childNodes[0].nodeValue; Chris@76: Chris@76: modify_topic_hide_edit(subjectText); Chris@76: Chris@76: set_hidden_topic_areas(''); Chris@76: Chris@76: in_edit_mode = 0; Chris@76: Chris@76: return false; Chris@76: } Chris@76: Chris@76: // Simply restore any hidden bits during topic editing. Chris@76: function set_hidden_topic_areas(set_style) Chris@76: { Chris@76: for (var i = 0; i < hide_prefixes.length; i++) Chris@76: { Chris@76: if (document.getElementById(hide_prefixes[i] + cur_msg_id.substr(4)) != null) Chris@76: document.getElementById(hide_prefixes[i] + cur_msg_id.substr(4)).style.display = set_style; Chris@76: } Chris@76: }