Chris@76
|
1 var cur_topic_id, cur_msg_id, buff_subject, cur_subject_div, in_edit_mode = 0;
|
Chris@76
|
2 var hide_prefixes = Array();
|
Chris@76
|
3
|
Chris@76
|
4 function modify_topic(topic_id, first_msg_id, cur_session_id)
|
Chris@76
|
5 {
|
Chris@76
|
6 if (!window.XMLHttpRequest)
|
Chris@76
|
7 return;
|
Chris@76
|
8 if (typeof(window.opera) != "undefined")
|
Chris@76
|
9 {
|
Chris@76
|
10 var test = new XMLHttpRequest();
|
Chris@76
|
11 if (typeof(test.setRequestHeader) != "function")
|
Chris@76
|
12 return;
|
Chris@76
|
13 }
|
Chris@76
|
14
|
Chris@76
|
15 if (in_edit_mode == 1)
|
Chris@76
|
16 {
|
Chris@76
|
17 if (cur_topic_id == topic_id)
|
Chris@76
|
18 return;
|
Chris@76
|
19 else
|
Chris@76
|
20 modify_topic_cancel();
|
Chris@76
|
21 }
|
Chris@76
|
22
|
Chris@76
|
23 in_edit_mode = 1;
|
Chris@76
|
24 mouse_on_div = 1;
|
Chris@76
|
25 cur_topic_id = topic_id;
|
Chris@76
|
26
|
Chris@76
|
27 if (typeof window.ajax_indicator == "function")
|
Chris@76
|
28 ajax_indicator(true);
|
Chris@76
|
29
|
Chris@76
|
30 getXMLDocument(smf_scripturl + "?action=quotefast;quote=" + first_msg_id + ";sesc=" + cur_session_id + ";modify;xml", onDocReceived_modify_topic);
|
Chris@76
|
31 }
|
Chris@76
|
32
|
Chris@76
|
33 function onDocReceived_modify_topic(XMLDoc)
|
Chris@76
|
34 {
|
Chris@76
|
35 cur_msg_id = XMLDoc.getElementsByTagName("message")[0].getAttribute("id");
|
Chris@76
|
36
|
Chris@76
|
37 cur_subject_div = document.getElementById('msg_' + cur_msg_id.substr(4));
|
Chris@76
|
38 buff_subject = getInnerHTML(cur_subject_div);
|
Chris@76
|
39
|
Chris@76
|
40 // Here we hide any other things they want hiding on edit.
|
Chris@76
|
41 set_hidden_topic_areas('none');
|
Chris@76
|
42
|
Chris@76
|
43 modify_topic_show_edit(XMLDoc.getElementsByTagName("subject")[0].childNodes[0].nodeValue);
|
Chris@76
|
44
|
Chris@76
|
45 if (typeof window.ajax_indicator == "function")
|
Chris@76
|
46 ajax_indicator(false);
|
Chris@76
|
47 }
|
Chris@76
|
48
|
Chris@76
|
49 function modify_topic_cancel()
|
Chris@76
|
50 {
|
Chris@76
|
51 setInnerHTML(cur_subject_div, buff_subject);
|
Chris@76
|
52 set_hidden_topic_areas('');
|
Chris@76
|
53
|
Chris@76
|
54 in_edit_mode = 0;
|
Chris@76
|
55 return false;
|
Chris@76
|
56 }
|
Chris@76
|
57
|
Chris@76
|
58 function modify_topic_save(cur_session_id)
|
Chris@76
|
59 {
|
Chris@76
|
60 if (!in_edit_mode)
|
Chris@76
|
61 return true;
|
Chris@76
|
62
|
Chris@76
|
63 var i, x = new Array();
|
Chris@76
|
64 x[x.length] = 'subject=' + escape(textToEntities(document.forms.quickModForm['subject'].value)).replace(/\+/g, "%2B");
|
Chris@76
|
65 x[x.length] = 'topic=' + parseInt(document.forms.quickModForm.elements['topic'].value);
|
Chris@76
|
66 x[x.length] = 'msg=' + parseInt(document.forms.quickModForm.elements['msg'].value);
|
Chris@76
|
67
|
Chris@76
|
68 if (typeof window.ajax_indicator == "function")
|
Chris@76
|
69 ajax_indicator(true);
|
Chris@76
|
70
|
Chris@76
|
71 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
|
72
|
Chris@76
|
73 return false;
|
Chris@76
|
74 }
|
Chris@76
|
75
|
Chris@76
|
76 function modify_topic_done(XMLDoc)
|
Chris@76
|
77 {
|
Chris@76
|
78 if (!XMLDoc)
|
Chris@76
|
79 {
|
Chris@76
|
80 modify_topic_cancel();
|
Chris@76
|
81 return true;
|
Chris@76
|
82 }
|
Chris@76
|
83
|
Chris@76
|
84 var message = XMLDoc.getElementsByTagName("smf")[0].getElementsByTagName("message")[0];
|
Chris@76
|
85 var subject = message.getElementsByTagName("subject")[0];
|
Chris@76
|
86 var error = message.getElementsByTagName("error")[0];
|
Chris@76
|
87
|
Chris@76
|
88 if (typeof window.ajax_indicator == "function")
|
Chris@76
|
89 ajax_indicator(false);
|
Chris@76
|
90
|
Chris@76
|
91 if (!subject || error)
|
Chris@76
|
92 return false;
|
Chris@76
|
93
|
Chris@76
|
94 subjectText = subject.childNodes[0].nodeValue;
|
Chris@76
|
95
|
Chris@76
|
96 modify_topic_hide_edit(subjectText);
|
Chris@76
|
97
|
Chris@76
|
98 set_hidden_topic_areas('');
|
Chris@76
|
99
|
Chris@76
|
100 in_edit_mode = 0;
|
Chris@76
|
101
|
Chris@76
|
102 return false;
|
Chris@76
|
103 }
|
Chris@76
|
104
|
Chris@76
|
105 // Simply restore any hidden bits during topic editing.
|
Chris@76
|
106 function set_hidden_topic_areas(set_style)
|
Chris@76
|
107 {
|
Chris@76
|
108 for (var i = 0; i < hide_prefixes.length; i++)
|
Chris@76
|
109 {
|
Chris@76
|
110 if (document.getElementById(hide_prefixes[i] + cur_msg_id.substr(4)) != null)
|
Chris@76
|
111 document.getElementById(hide_prefixes[i] + cur_msg_id.substr(4)).style.display = set_style;
|
Chris@76
|
112 }
|
Chris@76
|
113 }
|