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);
166 mycurrent_row.appendChild(mycurrent_cell);
169 if(url.indexOf("<?php echo $CONF['IndexURL'];?>",0) != -1)
172 checkboxL = document.createElement("input");
173 checkboxL.type = 'checkbox';
174 checkboxL.name = "tb_url_" + count + "_local";
175 checkboxL.id = "tb_url_" + count + "_local";
176 checkboxL.defaultChecked = true;
178 labelL = document.createElement("label");
179 labelL.htmlFor = "tb_url_" + count + "_local";
180 labelL.title = "local?";
182 text = document.createTextNode("local?");
183 labelL.appendChild(text);
184 // parent.appendChild(checkboxL);
185 // parent.appendChild(labelL);
186 mycurrent_cell=document.createElement("TD");
187 mycurrent_cell.appendChild(checkboxL);
188 mycurrent_cell.appendChild(labelL);
189 mycurrent_row.appendChild(mycurrent_cell);
194 mycurrent_cell=document.createElement("TD");
195 mycurrent_row.appendChild(mycurrent_cell);
197 // parent.appendChild(br);
198 listtable.appendChild(mycurrent_row);
200 // amount.value = count + 1;
202 amount.value = countTotal;
206 subtitle.innerHTML = "No Trackbak URLs.";
214 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
220 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
228 if (!xmlhttp && typeof XMLHttpRequest!='undefined')
230 xmlhttp = new XMLHttpRequest();
233 setInterval ('tbParseLinks();', 500);
234 setInterval ('tbAutoDetect();', 500);
236 if (window.onloadtrackback)
237 window.onloadtrackback();
243 strString = document.forms[0].trackback_ping_url.value;
244 strArray = strString.split("\n");
245 for (var i = 0; i < strArray.length; i++)
247 strTemp = trim(strArray[i]);
248 if (strTemp != "" && strTemp.match(/^http/))
250 tbDone(strTemp,strTemp,strTemp);
253 document.forms[0].trackback_ping_url.value = '';
256 function trim(string)
258 return string.replace(/(^\s*)|(\s*$)/g,'');