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