3 include($strRel . 'config.php');
5 global $manager, $CONF;
6 $action = $manager->addTicketToUrl($CONF['ActionURL'] . '?action=plugin&name=TrackBack&type=detect')
9 var inProgress = false;
11 var TrackbackAction = "<?php echo $action; ?>";
12 var TrackbackSource = new Array;
13 var TrackbackName = new Array;
14 var TrackbackURL = new Array;
16 var LookupTable = new Array;
20 var regexp = /href\s*=\s*([\"\'])(http:[^\"\'>]+)([\"\'])/ig;
23 function tbParseLinks ()
25 oinputbody = document.getElementById('inputbody');
26 oinputmore = document.getElementById('inputmore');
27 full = oinputbody.value + ' ' + oinputmore.value;
29 while (vArray = regexp.exec(full))
33 if (Lookup == vArray[2])
36 for (var i = 0; i < LookupTable.length; i++)
37 if (LookupTable[i] == vArray[2])
40 for (var i = 0; i < TrackbackSource.length; i++)
41 if (TrackbackSource[i] == vArray[2])
45 LookupTable.push(vArray[2]);
49 function tbAutoDetect()
51 if (LookupTable.length > 0)
57 // We have something to do and the connection is free
58 Lookup = LookupTable.shift();
61 // The reason we use GET instead of POST is because
62 // Opera does not properly support setting headers yet,
63 // which is a requirement for using POST.
64 xmlhttp.open("GET", TrackbackAction + "&tb_link=" + escape(Lookup), true);
65 xmlhttp.onreadystatechange = tbStateChange;
70 // Still busy... simply wait until next turn
75 // Nothing to do, check back later...
83 function tbStateChange ()
85 if (inProgress == true && xmlhttp.readyState == 4 && xmlhttp.status == 200)
87 eval (xmlhttp.responseText);
93 function tbBusy(toggle)
98 document.forms[0].discoverit.style.color = "#888888";
99 document.forms[0].discoverit.style.fontWeight="bold";
100 document.forms[0].discoverit.value = " Loading ....";
104 document.forms[0].discoverit.style.color = "#888888";
105 document.forms[0].discoverit.style.fontWeight="bold";
106 document.forms[0].discoverit.value = " D o n e ! ";
109 o = document.getElementById('tb_busy');
114 o.style.display = '';
116 o.style.display = 'none'
120 function tbDone(source, url, name)
122 TrackbackSource.push(source);
123 TrackbackURL.push(url);
124 TrackbackName.push(name);
126 // var parent = document.getElementById('tb_auto');
127 var amount = document.getElementById('tb_url_amount');
128 var subtitle = document.getElementById('tb_auto_title');
129 var listtable = document.getElementById('tb_ping_list');
133 // count = parseInt(amount.value);
136 mycurrent_row=document.createElement("TR");
138 checkbox = document.createElement("input");
139 checkbox.type = 'checkbox';
140 checkbox.name = "tb_url_" + count;
141 checkbox.id = "tb_url_" + count;
142 checkbox.value = url;
143 checkbox.defaultChecked = true;
145 label = document.createElement("label");
146 label.htmlFor = "tb_url_" + count;
147 label.title = source;
149 text = document.createTextNode(name);
150 label.appendChild(text);
153 // br = document.createElement("br");
155 // subtitle.innerHTML = "Auto Discovered Ping URL's:";
156 // parent.appendChild(checkbox);
157 // parent.appendChild(label);
159 mycurrent_cell=document.createElement("TD");
160 mycurrent_cell.appendChild(checkbox);
161 mycurrent_row.appendChild(mycurrent_cell);
162 mycurrent_cell=document.createElement("TD");
163 mycurrent_cell.appendChild(label);
164 mycurrent_row.appendChild(mycurrent_cell);
167 checkboxU = document.createElement("input");
168 checkboxU.type = 'checkbox';
169 checkboxU.name = "tb_url_" + count + "_utf8";
170 checkboxU.id = "tb_url_" + count + "_utf8";
171 checkboxU.defaultChecked = false;
173 labelU = document.createElement("label");
174 labelU.htmlFor = "tb_url_" + count + "_utf8";
175 labelU.title = "utf8?";
177 text = document.createTextNode("utf8?");
178 labelU.appendChild(text);
179 mycurrent_cell=document.createElement("TD");
180 mycurrent_cell.appendChild(checkboxU);
181 mycurrent_cell.appendChild(labelU);
182 mycurrent_row.appendChild(mycurrent_cell);
185 if(url.indexOf("<?php echo $CONF['IndexURL'];?>",0) != -1)
188 checkboxL = document.createElement("input");
189 checkboxL.type = 'checkbox';
190 checkboxL.name = "tb_url_" + count + "_local";
191 checkboxL.id = "tb_url_" + count + "_local";
192 checkboxL.defaultChecked = true;
194 labelL = document.createElement("label");
195 labelL.htmlFor = "tb_url_" + count + "_local";
196 labelL.title = "local?";
198 text = document.createTextNode("local?");
199 labelL.appendChild(text);
200 // parent.appendChild(checkboxL);
201 // parent.appendChild(labelL);
202 mycurrent_cell=document.createElement("TD");
203 mycurrent_cell.appendChild(checkboxL);
204 mycurrent_cell.appendChild(labelL);
205 mycurrent_row.appendChild(mycurrent_cell);
210 mycurrent_cell=document.createElement("TD");
211 mycurrent_row.appendChild(mycurrent_cell);
213 // parent.appendChild(br);
214 listtable.appendChild(mycurrent_row);
216 // amount.value = count + 1;
218 amount.value = countTotal;
222 subtitle.innerHTML = "No Trackbak URLs.";
230 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
236 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
244 if (!xmlhttp && typeof XMLHttpRequest!='undefined')
246 xmlhttp = new XMLHttpRequest();
249 setInterval ('tbParseLinks();', 500);
250 setInterval ('tbAutoDetect();', 500);
252 if (window.onloadtrackback)
253 window.onloadtrackback();
259 strString = document.forms[0].trackback_ping_url.value;
260 strArray = strString.split("\n");
261 for (var i = 0; i < strArray.length; i++)
263 strTemp = trim(strArray[i]);
264 if (strTemp != "" && strTemp.match(/^http/))
266 tbDone(strTemp,strTemp,strTemp);
269 document.forms[0].trackback_ping_url.value = '';
272 function trim(string)
274 return string.replace(/(^\s*)|(\s*$)/g,'');