1var JOSC_http = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false)); 2var JOSC_operaBrowser = (navigator.userAgent.toLowerCase().indexOf("opera") != -1); 3var JOSC_rsearchphrase_selection="any"; 4/* in case of modify */ 5var JOSC_userName = ''; 6var JOSC_userEmail = ''; 7var JOSC_userWebsite = ''; 8var JOSC_userNotify = ''; 9/* ***************** */ 10var JOSC_XmlErrorAlert = false; /* will be redefined by setting */ 11var JOSC_AjaxDebug = false; /* will be redefined by setting */ 12var JOSC_AjaxDebugLevel = 2; /* will be redefined by setting */ 13 14var JOSC_postREFRESH=false; 15 16var JOSC_clientPC = navigator.userAgent.toLowerCase(); 17var JOSC_clientVer = parseInt(navigator.appVersion); 18 19var JOSC_is_ie = ((JOSC_clientPC.indexOf("msie") != -1) && (JOSC_clientPC.indexOf("opera") == -1)); 20var JOSC_is_nav = ((JOSC_clientPC.indexOf('mozilla')!=-1) && (JOSC_clientPC.indexOf('spoofer')==-1) 21 && (JOSC_clientPC.indexOf('compatible') == -1) && (JOSC_clientPC.indexOf('opera')==-1) 22 && (JOSC_clientPC.indexOf('webtv')==-1) && (JOSC_clientPC.indexOf('hotjava')==-1)); 23var JOSC_is_moz = 0; 24 25var JOSC_is_win = ((JOSC_clientPC.indexOf("win")!=-1) || (JOSC_clientPC.indexOf("16bit") != -1)); 26var JOSC_is_mac = (JOSC_clientPC.indexOf("mac")!=-1); 27 28var JOSC_scrollTopPos = 0; 29var JOSC_scrollLeftPos = 0; 30 31function JOSC_insertAdjacentElement( object, where, parsedNode ) { 32 if (!object.JOSCinsertAdjacentElement) 33 object.insertAdjacentElement(where, parsedNode); 34 else 35 object.JOSCinsertAdjacentElement(where, parsedNode); 36} 37 38function JOSC_insertAdjacentHTML( object, where, htmlStr ) { 39 if (!object.JOSCinsertAdjacentHTML) 40 object.insertAdjacentHTML(where, htmlStr); 41 else 42 object.JOSCinsertAdjacentHTML(where, htmlStr); 43} 44 45if (typeof HTMLElement != "undefined" && ! 46 HTMLElement.prototype.JOSCinsertAdjacentElement) { 47 HTMLElement.prototype.JOSCinsertAdjacentElement = function 48 (where, parsedNode) 49 { 50 switch (where) { 51 case 'beforeBegin': 52 this.parentNode.insertBefore(parsedNode, this) 53 break; 54 case 'afterBegin': 55 this.insertBefore(parsedNode, this.firstChild); 56 break; 57 case 'beforeEnd': 58 this.appendChild(parsedNode); 59 break; 60 case 'afterEnd': 61 if (this.nextSibling) 62 this.parentNode.insertBefore(parsedNode, this.nextSibling); 63 else this.parentNode.appendChild(parsedNode); 64 break; 65 } 66 } 67 68 HTMLElement.prototype.JOSCinsertAdjacentHTML = function 69 (where, htmlStr) 70 { 71 var r = this.ownerDocument.createRange(); 72 r.setStartBefore(this); 73 var parsedHTML = r.createContextualFragment(htmlStr); 74 this.JOSCinsertAdjacentElement(where, parsedHTML) 75 } 76 77/* HTMLElement.prototype.JOSCinsertAdjacentText = function 78 (where, txtStr) 79 { 80 var parsedText = document.createTextNode(txtStr) 81 this.JOSCinsertAdjacentElement(where, parsedText) 82 } 83 */ 84} 85 86/*************************** 87 * F U N C T I O N S 88 ***************************/ 89 90function JOSC_HTTPParam() 91{ 92} 93 94JOSC_HTTPParam.prototype.create = function(josctask, id) 95{ 96 this.result = 'option=com_comment'; 97 this.insert('no_html', 1); 98 var form = document.joomlacommentform; 99 this.insert('component', form.component.value); 100 this.insert('joscsectionid', form.joscsectionid.value); 101 this.insert('josctask', josctask); 102 this.insert('comment_id', id); 103 return this.result; 104} 105 106JOSC_HTTPParam.prototype.insert = function(name, value) 107{ 108 this.result += '&' + name + '=' + value; 109 return this.result; 110} 111 112JOSC_HTTPParam.prototype.encode = function(name, value) 113{ 114 return this.insert(name, encodeURIComponent(value)); 115} 116 117function JOSC_BusyImage() 118{ 119} 120 121JOSC_BusyImage.prototype.create = function(id) 122{ 123// var form = document.joomlacommentform; 124 var image = document.createElement('img'); 125 image.setAttribute('src', JOSC_template + '/images/busy.gif'); 126 image.setAttribute('id', id+"Image"); 127 var element = document.getElementById(id); 128 if (!element.innerHTML) element.appendChild(image); 129 JOSC_ajaxNotActive = false; 130} 131 132JOSC_BusyImage.prototype.destroy = function(id) 133{ 134 var image = document.getElementById(id+"Image"); 135 image.parentNode.removeChild(image); 136 JOSC_ajaxNotActive = true; 137} 138 139var JOSC_ajaxNotActive = true; /* will be set in create/destroy BusyImage */ 140var JOSC_busyImage = new JOSC_BusyImage(); 141 142function JOSC_ajaxSend(data, onReadyStateChange) 143{ 144 document.joomlacommentform.bsend.disabled = true; 145 JOSC_busyImage.create('JOSC_busypage'); 146 JOSC_busyImage.create('JOSC_busy'); 147 var URL = JOSC_ConfigLiveSite+'index.php'; 148 JOSC_http.open("POST", URL , true); 149 JOSC_http.onreadystatechange = onReadyStateChange; 150 JOSC_http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 151 if (JOSC_AjaxDebug) alert('###AJAXSEND:\n##URL=' + URL + ' ?' + data + '\n##onReadyStateChange=' + onReadyStateChange); 152 JOSC_http.send(data); 153} 154 155function JOSC_ajaxReady() 156{ 157 if (JOSC_http.readyState == 4) { 158 /* received */ 159 JOSC_busyImage.destroy('JOSC_busy'); 160 JOSC_busyImage.destroy('JOSC_busypage'); 161 document.joomlacommentform.bsend.disabled = false; 162 if (JOSC_http.status == 200) { 163 /* response is ok */ 164 if (JOSC_AjaxDebug) alert('AJAXREADY: OK !' ); 165 return true; 166 } else { 167 if (JOSC_AjaxDebug) alert('AJAXREADY: KO ! Status=' + JOSC_http.status ); 168 return false; 169 } 170 } 171 return false; 172} 173 174function JOSC_goToAnchor(name) 175{ 176 clearTimeout(self.timer); 177 action = function() 178 { 179 var url = window.location.toString(); 180 var index = url.indexOf('#'); 181 if (index == -1) { window.location = url + '#' + name; } 182 else { window.location = url.substring(0, index) + '#' + name; } 183 if (JOSC_operaBrowser) window.location = '##'; 184 } 185 if (JOSC_operaBrowser) self.timer = setTimeout(action, 50); 186 else action(); 187} 188 189function JOSC_refreshPage(msg, id) 190{ 191 if (msg) alert(msg); 192 193 clearTimeout(self.timer); 194 action = function() 195 { 196 var url = window.location.toString(); 197 var index = url.indexOf('?option='); 198 if (index == -1) { var sep = '?'; } /* SEF */ 199 else { var sep = '&'; } /* normal */ 200 window.location = JOSC_linkToContent + sep + 'comment_id=' + id + '#josc' + id; 201 //if (JOSC_operaBrowser) window.location = '##'; 202 } 203 if (JOSC_operaBrowser) self.timer = setTimeout(action, 50); 204 else action(); 205} 206 207function JOSC_getXmlResponse(withalert) { 208/* return DOM (W3C) if no parsing xml error else null (alert will show a javascript alert) */ 209 if (JOSC_http.responseXML && JOSC_http.responseXML.parseError &&(JOSC_http.responseXML.parseError.errorCode !=0)) { 210 error = JOSC_getXmlError(withalert); 211 return null; 212 } else { 213 if (JOSC_AjaxDebug) alert('###GETXMLRESPONSE:\n' + JOSC_http.responseText ); 214/* if (JOSC_operaBrowser && JOSC_AjaxDebug && JOSC_AjaxDebugLevel>1) { 215 txt = ''; 216 for (prop in JOSC_http.responseXML) 217 { 218 txt = txt + '\n' + prop + '=' + JOSC_http.responseXML[prop]; 219 } 220 alert('JOSC_getXmlResponse:http.responseXML='+txt); 221 }*/ 222 return JOSC_http.responseXML; 223 } 224} 225 226function JOSC_getXmlError(withalert) { 227 if (JOSC_http.responseXML.parseError.errorCode !=0 ) { 228 line = JOSC_http.responseXML.parseError.line; 229 pos = JOSC_http.responseXML.parseError.linepos; 230 error = JOSC_http.responseXML.parseError.reason; 231 error = error + "Contact the support ! and send the following informations:\n error is line " + line + " position " + pos; 232 error = error + " >>" + JOSC_http.responseXML.parseError.srcText.substring(pos); 233 error = error + "\nGLOBAL:" + JOSC_http.responseText; 234 if (withalert) 235 alert(error); 236 return error; 237 } else { 238 return ""; 239 } 240} 241 242/* 243 * Form type function 244 */ 245function JOSC_modifyForm(formTitle, buttonValue, onClick) 246{ 247 document.getElementById('CommentFormTitle').innerHTML = formTitle; 248 button = document.joomlacommentform.bsend; 249 button.value = buttonValue; 250 button.onclick = onClick; 251} 252 253function JOSC_xmlValue(xmlDocument, tagName) 254{ 255 try { 256 var result = xmlDocument.getElementsByTagName(tagName).item(0).firstChild.data; 257 } 258 catch(e) { 259 var result = ''; 260 } 261 return result; 262} 263 264function JOSC_removePost(post) 265{ 266 document.getElementById('Comments').removeChild(post); 267} 268 269/********************* 270 * ajax call functions 271 */ 272function JOSC_deleteComment(id) 273{ 274 if (window.confirm(_JOOMLACOMMENT_MSG_DELETE)) { 275 var data = new JOSC_HTTPParam().create('ajax_delete', id); 276 JOSC_ajaxSend(data, function() 277 { 278 if (JOSC_ajaxReady()) { 279 if (JOSC_http.responseText != '') alert(JOSC_http.responseText); 280 else JOSC_removePost(document.getElementById('post' + id)); 281 } 282 } 283 ); 284 } 285} 286 287function JOSC_deleteAll() 288{ 289 if (window.confirm(_JOOMLACOMMENT_MSG_DELETEALL)) { 290 var form = document.joomlacommentform; 291 var param = new JOSC_HTTPParam(); 292 param.create('ajax_delete_all', -1); 293 JOSC_ajaxSend(param.insert('content_id',form.content_id.value), function() 294 { 295 if (JOSC_ajaxReady()) { 296 if (JOSC_http.responseText != '') alert(JOSC_http.responseText); 297 else { 298 /* JOSC_addNew(); why ? */ 299 document.getElementById('Comments').innerHTML=''; 300 } 301 } 302 } 303 ); 304 } 305} 306 307 308function JOSC_editComment(id) 309{ 310 JOSC_modifyForm(_JOOMLACOMMENT_EDITCOMMENT, _JOOMLACOMMENT_EDIT, 311 function(event) 312 { 313 JOSC_editPost(id, -1);} 314 ); 315 JOSC_goToAnchor('CommentForm'); 316 var data = new JOSC_HTTPParam().create('ajax_modify', id); 317 JOSC_ajaxSend(data, JOSC_editResponse); 318} 319 320function JOSC_quote(id) 321{ 322 var data = new JOSC_HTTPParam().create('ajax_quote', id); 323 JOSC_goToAnchor('CommentForm'); 324 JOSC_ajaxSend(data, JOSC_quoteResponse); 325} 326 327function JOSC_voting(id, yes_no) 328{ 329 var data = new JOSC_HTTPParam().create('ajax_voting_' + yes_no, id); 330 JOSC_ajaxSend(data, JOSC_votingResponse); 331} 332 333function JOSC_reloadCaptcha() 334{ 335 var data = new JOSC_HTTPParam().create('ajax_reload_captcha', 0); 336 JOSC_ajaxSend(data, JOSC_editPostResponse); 337} 338 339function JOSC_searchForm() 340{ 341 JOSC_removeSearchResults(); 342 var searchform = document.joomlacommentsearch; 343 var form = document.joomlacommentform; 344 if (searchform) { 345 searchform.parentNode.removeChild(searchform); 346 if (!JOSC_operaBrowser) document.joomlacommentsearch = null; 347 } else { 348 var param = new JOSC_HTTPParam(); 349 param.create('ajax_insert_search', 0); 350 JOSC_ajaxSend(param.insert('content_id', form.content_id.value), JOSC_searchFormResponse); 351 } 352} 353 354function JOSC_search() 355{ 356 JOSC_removeSearchResults(); 357 var keyword = document.joomlacommentsearch.tsearch.value; 358 if (keyword=='') return 0; 359 var param = new JOSC_HTTPParam(); 360 param.create('ajax_search', 0); 361 param.encode('search_keyword', keyword) 362 JOSC_ajaxSend(param.insert('search_phrase',JOSC_rsearchphrase_selection), JOSC_searchResponse); 363} 364 365//function editPost(id, parentid) { 366// /* for backward compatibility with templates */ 367// return JOSC_editPost(id, parentid);
368//} 369 370function JOSC_editPost(id, parentid) 371{ 372 var form = document.joomlacommentform; 373 if (form.tcomment.value == '') 374 { 375 alert(_JOOMLACOMMENT_FORMVALIDATE); 376 return 0; 377 } 378 if ( document.getElementsByName('tnotify')[0] && document.getElementsByName('temail')[0] ) 379 { if ( form.tnotify.selectedIndex && form.temail.value == '') { 380 alert(_JOOMLACOMMENT_FORMVALIDATE_EMAIL); 381 return 0; 382 } 383 } 384 if (JOSC_captchaEnabled && form.security_try.value == '') 385 { 386 alert(_JOOMLACOMMENT_FORMVALIDATE_CAPTCHA); 387 return 0; 388 } 389 390 391 if (JOSC_ajaxEnabled) 392 { 393 var param = new JOSC_HTTPParam(); 394 param.create(id == -1 ? 'ajax_insert' : 'ajax_edit', id); 395 param.insert('content_id', form.content_id.value); 396 if (JOSC_captchaEnabled) 397 { 398 param.insert('security_try', form.security_try.value); 399 param.insert('security_refid', form.security_refid.value); 400 } 401 if (parentid != -1) param.insert('parent_id', parentid); 402 param.encode('tname', form.tname.value); 403 /* optional */ 404 if (document.getElementsByName('tnotify')[0]) { if (form.tnotify.selectedIndex) param.encode('tnotify', '1'); else param.encode('tnotify', '0'); }; 405 if (document.getElementsByName('temail')[0]) param.encode('temail', form.temail.value); 406 if (document.getElementsByName('twebsite')[0]) param.encode('twebsite', form.twebsite.value); 407 /************/ 408 param.encode('ttitle', form.ttitle.value); 409 JOSC_ajaxSend(param.encode('tcomment', form.tcomment.value), JOSC_editPostResponse); 410 } 411 else 412 { 413 /* should we use JOSC_ConfigLiveSite ? */ 414 form.action = JOSC_ConfigLiveSite+'/index.php?option=com_comment&josctask=noajax'; 415 form.submit(); 416 } 417} 418 419function JOSC_getComments(id, limitstart) 420{ 421 422 var form = document.joomlacommentform; 423 if (JOSC_ajaxEnabled && JOSC_ajaxNotActive) 424 { 425 JOSC_ShowHide('', 'joscPageNavNoLink', 'joscPageNavLink') 426 var param = new JOSC_HTTPParam(); 427 param.create('ajax_getcomments', id); 428 param.insert('content_id',form.content_id.value); 429 JOSC_ajaxSend(param.insert('josclimitstart', limitstart), JOSC_getCommentsResponse); 430 } 431} 432 433/* 434 * END of ajax call functions 435 */ 436 437/******************** 438 * response functions 439 */ 440function JOSC_editResponse() 441{ 442 if (JOSC_ajaxReady()) { 443 if (JOSC_http.responseText.indexOf('invalid') == -1) { 444 var form = document.joomlacommentform; 445 var xmlDocument = JOSC_getXmlResponse(JOSC_XmlErrorAlert);; /*JOSC_http.responseXML;*/ 446 if (xmlDocument) { 447 448 JOSC_userName = form.tname.value; 449 form.tname.value = JOSC_xmlValue(xmlDocument, 'name'); 450 451 form.ttitle.value = JOSC_xmlValue(xmlDocument, 'title'); 452 form.tcomment.value = JOSC_xmlValue(xmlDocument, 'comment'); 453 454 /* optional values of the templates ! */ 455 if (document.getElementsByName('tnotify')[0]) { 456 JOSC_userNotify = form.tnotify.selectedIndex; 457 form.tnotify.selectedIndex = new Boolean(JOSC_xmlValue(xmlDocument, 'notify')*1); 458 } 459 if (document.getElementsByName('temail')[0]) { 460 JOSC_userEmail = form.temail.value; 461 form.temail.value = JOSC_xmlValue(xmlDocument, 'email'); 462 } 463 if (document.getElementsByName('twebsite')[0]) { 464 JOSC_userWebsite = form.twebsite.value; 465 form.twebsite.value = JOSC_xmlValue(xmlDocument, 'website'); 466 } 467 /* ********************** */ 468 } else { 469 form.tcomment.value = 'failed to retrieve datas'; 470 } 471 if (self.JOSC_afterAjaxResponse) JOSC_afterAjaxResponse('response_edit'); 472 } 473 } 474} 475 476function JOSC_quoteResponse() 477{ 478 if (JOSC_ajaxReady()) { 479 if (JOSC_http.responseText.indexOf('invalid') == -1) { 480 var form = document.joomlacommentform; 481 var xmlDocument = JOSC_getXmlResponse(true); 482 if (xmlDocument) { 483 name = JOSC_xmlValue(xmlDocument, 'name'); 484 if (name == '') name = _JOOMLACOMMENT_ANONYMOUS; 485 if (form.ttitle.value == '') form.ttitle.value = 're: ' + 486 JOSC_xmlValue(xmlDocument, 'title'); 487 form.tcomment.value += '[quote=' + name + ']' + 488 JOSC_xmlValue(xmlDocument, 'comment') + '[/quote]'; 489 } else { 490 form.tcomment.value = 'failed to retrieve datas'; 491 } 492 if (self.JOSC_afterAjaxResponse) JOSC_afterAjaxResponse('response_quote'); 493 } 494 } 495} 496 497function JOSC_votingResponse() 498{ 499 if (JOSC_ajaxReady()) { 500 if (JOSC_http.responseText.indexOf('invalid') == -1) { 501 var form = document.joomlacommentform; 502 var xmlDocument = JOSC_getXmlResponse(JOSC_XmlErrorAlert); /*JOSC_http.responseXML;*/ 503 var id = JOSC_xmlValue(xmlDocument, 'id'); 504 var yes = JOSC_xmlValue(xmlDocument, 'yes');
505 var no = JOSC_xmlValue(xmlDocument, 'no'); 506 document.getElementById('yes' + id).innerHTML = yes; 507 document.getElementById('no' + id).innerHTML = no; 508 if (self.JOSC_afterAjaxResponse) JOSC_afterAjaxResponse('response_voting'); 509 } 510 } 511} 512 513function JOSC_editPostResponse() 514{ 515 if (JOSC_ajaxReady()) { 516 if (JOSC_http.responseText.indexOf('invalid') == -1) { 517 var form = document.joomlacommentform; 518 var element = document.getElementById('Comments'); 519 var xmlDocument = JOSC_getXmlResponse(true); /*JOSC_http.responseXML;*/ 520 if (!xmlDocument) { 521 return 0; 522 } 523 var id = JOSC_xmlValue(xmlDocument, 'id'); 524 var captcha = JOSC_xmlValue(xmlDocument, 'captcha'); 525 if (captcha) { 526 JOSC_refreshCaptcha(captcha); 527 if (id == 'captchaalert') { 528 alert(_JOOMLACOMMENT_FORMVALIDATE_CAPTCHA_FAILED); 529 return 0; 530 } 531 if (id == 'captcha') { 532 return 0; 533 } 534 } 535 anchor = 'josc' + id; 536 var idsave = id; 537 id = 'post' + id; 538 var body = JOSC_xmlValue(xmlDocument, 'body'); 539 var post = document.getElementById(id); 540 var after = JOSC_xmlValue(xmlDocument, 'after'); 541 JOSC_clearInputbox(); 542 var noerror = JOSC_xmlValue(xmlDocument, 'noerror'); 543 if (noerror==0) { 544 alert(_JOOMLACOMMENT_REQUEST_ERROR); 545 form.tcomment.value=JOSC_http.responseText; 546 return 0; 547 } 548 var published = JOSC_xmlValue(xmlDocument, 'published'); 549 if (published==0) { 550 alert(_JOOMLACOMMENT_BEFORE_APPROVAL); 551 form.tcomment.value=""; 552 if (self.JOSC_afterAjaxResponse) JOSC_afterAjaxResponse('response_approval'); 553 return 0; 554 } 555 if (post) { 556 var className = JOSC_getPostClass(post); 557 var indent = post.style.paddingLeft; 558 JOSC_insertAdjacentHTML(post, 'beforeBegin', body); 559 JOSC_removePost(post); 560 newPost = document.getElementById(id); 561 JOSC_setPostClass(newPost, className); 562 newPost.style.paddingLeft = indent; 563 JOSC_modifyForm(_JOOMLACOMMENT_WRITECOMMENT, _JOOMLACOMMENT_SENDFORM, 564 function(event) 565 { 566 JOSC_editPost(-1, -1); 567 }); 568 form.tname.value = JOSC_userName; 569 if (document.getElementsByName('temail')[0]) form.temail.value = JOSC_userEmail; 570 if (document.getElementsByName('website')[0]) form.website.value = JOSC_userWebsite; 571 if (self.JOSC_afterAjaxResponse) JOSC_afterAjaxResponse('response_editpost'); 572 573 } else { 574 if (!after || after == -1) 575 if (JOSC_sortDownward != 0) { 576 if (JOSC_postREFRESH) 577 JOSC_refreshPage(_JOOMLACOMMENT_MSG_NEEDREFRESH, idsave); 578 else 579 JOSC_insertAdjacentHTML(element, 'afterBegin', body); 580 } else { 581 if (JOSC_postREFRESH) 582 JOSC_refreshPage(_JOOMLACOMMENT_MSG_NEEDREFRESH, idsave); 583 else 584 JOSC_insertAdjacentHTML(element, 'beforeEnd', body); 585 } 586 else { 587 if (document.getElementById('post' + after)) 588 JOSC_insertAdjacentHTML(document.getElementById('post' + after), 'afterEnd', body); 589 else 590 /* pagination or post has been deleted or new one from another users...=> refresh */ 591 JOSC_refreshPage(_JOOMLACOMMENT_MSG_NEEDREFRESH, idsave); 592 } 593 594 JOSC_setPostClass(document.getElementById(id), 'sectiontableentry' + JOSC_postCSS); 595 JOSC_postCSS == 1 ? JOSC_postCSS = 2 : JOSC_postCSS = 1; 596 if (self.JOSC_afterAjaxResponse) JOSC_afterAjaxResponse('response_posted'); 597 }
598 JOSC_goToAnchor(anchor); 599 //JOSC_refreshPage('', idsave); 600 } 601 } 602} 603 604function JOSC_getCommentsResponse() { 605 606 //JOSC_ShowHide('', 'joscPageNavLink', 'joscPageNavNoLink'); 607 608 if (JOSC_ajaxReady()) { 609 610 if (JOSC_http.responseText.indexOf('invalid') == -1) { 611 612 JOSC_resetFormPos(); /* if reply... */ 613 614 var element = document.getElementById('Comments'); 615 var elementPN = document.getElementById('joscPageNav'); 616 617 var xmlDocument = JOSC_getXmlResponse(true); /*JOSC_http.responseXML;*/ 618 if (!xmlDocument) { 619 return 0; 620 } 621 622 element.innerHTML=''; 623 elementPN.innerHTML=''; 624 625 var body = JOSC_xmlValue(xmlDocument, 'body'); 626 var pagenav = JOSC_xmlValue(xmlDocument, 'pagenav'); 627 628 if (JOSC_sortDownward != 0) 629 JOSC_insertAdjacentHTML(element, 'afterBegin', body); 630 else { 631 JOSC_insertAdjacentHTML(element, 'beforeEnd', body); 632 } 633 JOSC_insertAdjacentHTML(elementPN, 'afterBegin', pagenav); 634 635 if (self.JOSC_afterAjaxResponse) JOSC_afterAjaxResponse('response_getcomments'); 636 } 637 } 638} 639 640function JOSC_searchFormResponse() 641{ 642 if (JOSC_ajaxReady()) { 643 form = JOSC_http.responseText; 644 if (form != '') { 645 JOSC_insertAdjacentHTML(document.getElementById('CommentMenu'), 'afterEnd', form); 646 if (self.JOSC_afterAjaxResponse) JOSC_afterAjaxResponse('response_searchform'); 647 } 648 } 649} 650 651function JOSC_searchResponse() 652{ 653 if (JOSC_ajaxReady()) { 654 form = JOSC_http.responseText; 655 if (form != '') { 656 JOSC_insertAdjacentHTML(document.joomlacommentsearch, 'afterEnd', form); 657 if (self.JOSC_afterAjaxResponse) JOSC_afterAjaxResponse('response_search'); 658 } 659 } 660} 661 662/* 663 * END of response functions 664 */ 665 666/* 667 * Template functions 668 */ 669//function JOSC_goToPost(contentid, id) 670//{ 671// var form = document.joomlacommentform; 672// if (form.content_id.value==contentid) JOSC_goToAnchor('josc'+id); /* not correct in case of pagination. use JOSC_viewPost */ 673// else window.location = 'index.php?option=' + form.component + '&task=view&id=' + contentid + '#josc' + id; 674// if (JOSC_operaBrowser) window.location = '##'; 675//} 676// 677//function JOSC_viewPost(contentid, id, itemid) 678//{ 679// var form = document.joomlacommentform; 680// window.location = 'index.php?option=' + form.component + '&task=view&id=' + contentid + (itemid ? ('&Itemid='+itemid) : '') + '&comment_id=' + id + '#josc' + id; 681// if (navigator.userAgent.toLowerCase().indexOf("opera") != -1) window.location = '##'; 682//} 683 684function JOSC_reply(id) 685{ 686 var form = document.joomlacommentform; 687 var post = document.getElementById('post' + id); 688 var postPadding = post.style.paddingLeft.replace('px','')*1; 689 form.style.paddingLeft = ( postPadding + 20 ) + 'px'; 690 JOSC_modifyForm(_JOOMLACOMMENT_WRITECOMMENT, _JOOMLACOMMENT_SENDFORM, 691 function(event) 692 { 693 JOSC_editPost(-1, id); 694 }); 695 JOSC_insertAdjacentElement(post, 'afterEnd', form); 696 if (self.JOSC_afterAjaxResponse) JOSC_afterAjaxResponse('response_reply'); 697} 698 699function JOSC_resetFormPos() { 700 var form = document.joomlacommentform; 701 var formpos = document.getElementById('JOSC_formpos'); 702 if (form.parentNode.id != 'comment' || (formpos && form.parentNode.id != 'JOSC_formpos')) 703 { 704 form.style.paddingLeft = '0px'; 705 form.bsend.onclick = function(event) 706 { 707 JOSC_editPost(-1, -1); 708 } ; 709 if (!formpos) 710 JOSC_insertAdjacentElement(document.getElementById('Comments'), 'afterEnd', form); 711 else 712 JOSC_insertAdjacentElement(formpos, 'afterEnd', form); 713 } 714} 715 716function JOSC_insertUBBTag(tag) 717{ 718 JOSC_insertTags('[' + tag + ']', '[/' + tag + ']'); 719} 720 721function JOSC_fontColor(){ 722 var color = document.joomlacommentform.menuColor.selectedIndex; 723 switch (color){ 724 case 0: color=''; break; 725 case 1: color='aqua'; break; 726 case 2: color='black'; break; 727 case 3: color='blue'; break; 728 case 4: color='fuchsia'; break; 729 case 5: color='gray'; break; 730 case 6: color='green'; break; 731 case 7: color='lime'; break; 732 case 8: color='maroon'; break; 733 case 9: color='navy'; break; 734 case 10: color='olive'; break; 735 case 11: color='purple'; break; 736 case 12: color='red'; break; 737 case 13: color='silver'; break; 738 case 14: color='teal'; break; 739 case 15: color='white'; break; 740 case 16: color='yellow'; break; 741 } 742 if (color!='') JOSC_insertTags('[color='+color+']','[/color]'); 743} 744 745function JOSC_fontSize() 746{ 747 var size = document.joomlacommentform.menuSize.selectedIndex; 748 switch (size) { 749 case 0: size = ''; 750 break; 751 case 1: size = 'x-small'; 752 break; 753 case 2: size = 'small'; 754 break; 755 case 3: size = 'medium'; 756 break; 757 case 4: size = 'large'; 758 break; 759 case 5: size = 'x-large'; 760 break; 761 } 762 if (size != '') JOSC_insertTags('[size=' + size + ']', '[/size]'); 763} 764 765function JOSC_emoticon(icon) 766{ 767 var txtarea = document.joomlacommentform.tcomment; 768 JOSC_scrollToCursor(txtarea, 0); 769 txtarea.focus(); 770 JOSC_pasteAtCursor(txtarea, ' ' + icon + ' '); 771 JOSC_scrollToCursor(txtarea, 1); 772} 773/* 774 * END of template function 775 */ 776 777/* 778 * ALL OTHERS UTILS FUNCTION 779 */ 780function JOSC_insertTags(bbStart, bbEnd) { 781 var txtarea = document.joomlacommentform.tcomment; 782 JOSC_scrollToCursor(txtarea, 0); 783 txtarea.focus(); 784 785 if ((JOSC_clientVer >= 4) && JOSC_is_ie && JOSC_is_win) { 786 theSelection = document.selection.createRange().text; 787 if (theSelection) { 788 document.selection.createRange().text = bbStart + theSelection + bbEnd; 789 theSelection = ''; 790 return; 791 } else { 792 JOSC_pasteAtCursor(txtarea, bbStart + bbEnd); 793 } 794 } else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0)) { 795 var selLength = txtarea.textLength; 796 var selStart = txtarea.selectionStart; 797 var selEnd = txtarea.selectionEnd; 798 var s1 = (txtarea.value).substring(0,selStart); 799 var s2 = (txtarea.value).substring(selStart, selEnd) 800 var s3 = (txtarea.value).substring(selEnd, selLength); 801 txtarea.value = s1 + bbStart + s2 + bbEnd + s3; 802 txtarea.selectionStart = selStart + (bbStart.length + s2.length + bbEnd.length); 803 txtarea.selectionEnd = txtarea.selectionStart; 804 JOSC_scrollToCursor(txtarea, 1); 805 return; 806 } else { 807 JOSC_pasteAtCursor(txtarea, bbStart + bbEnd); 808 JOSC_scrollToCursor(txtarea, 1); 809 } 810} 811 812function JOSC_scrollToCursor(txtarea, action) { 813 if (JOSC_is_nav) { 814 if (action == 0) { 815 JOSC_scrollTopPos = txtarea.scrollTop; 816 JOSC_scrollLeftPos = txtarea.scrollLeft; 817 } else { 818 txtarea.scrollTop = JOSC_scrollTopPos; 819 txtarea.scrollLeft = JOSC_scrollLeftPos; 820 } 821 } 822} 823 824function JOSC_pasteAtCursor(txtarea, txtvalue) { 825 if (document.selection) { 826 var sluss; 827 txtarea.focus(); 828 sel = document.selection.createRange(); 829 sluss = sel.text.length; 830 sel.text = txtvalue; 831 if (txtvalue.length > 0) { 832 sel.moveStart('character', -txtvalue.length + sluss); 833 } 834 } else if (txtarea.selectionStart || txtarea.selectionStart == '0') { 835 var startPos = txtarea.selectionStart; 836 var endPos = txtarea.selectionEnd; 837 txtarea.value = txtarea.value.substring(0, startPos) + txtvalue + txtarea.value.substring(endPos, txtarea.value.length); 838 txtarea.selectionStart = startPos + txtvalue.length; 839 txtarea.selectionEnd = startPos + txtvalue.length; 840 } else { 841 txtarea.value += txtvalue; 842 } 843} 844 845function JOSC_clearInputbox() 846{ 847 var form = document.joomlacommentform; 848 form.ttitle.value = ''; 849 form.tcomment.value = ''; 850} 851 852function JOSC_getPostClass(post) 853{ 854 return post.getElementsByTagName('ul')[0].getElementsByTagName('li')[0].className; 855} 856 857function JOSC_setPostClass(post, value) 858{ 859 post.getElementsByTagName('ul')[0].getElementsByTagName('li')[0].className = value; 860} 861 862function JOSC_refreshCaptcha(captcha) 863{ 864 document.getElementById('captcha').innerHTML = captcha; 865 document.joomlacommentform.security_try.value = ''; 866} 867 868function JOSC_removeSearchResults() 869{ 870 var searchResults = document.getElementById('SearchResults'); 871 if (searchResults) searchResults.parentNode.removeChild(searchResults); 872} 873 874function JOSC_addNew() 875{ 876 JOSC_resetFormPos(); 877/* 878 var form = document.joomlacommentform; 879 form.style.paddingLeft = '0px'; 880 form.bsend.onclick = function(event) 881 { 882 JOSC_editPost(-1, -1); 883 } ; 884 if (form.parentNode.id != 'comment') 885 JOSC_insertAdjacentElement(document.getElementById('Comments'), 'afterEnd', form); 886*/ 887 JOSC_goToAnchor('CommentForm'); 888} 889 890function JOSC_ShowHide(emptyvalue, showId, hideId) { 891 892 if (showId && showId!=emptyvalue) { 893 document.getElementById(showId).style.visibility='visible'; 894 document.getElementById(showId).style.display = ''; 895 } 896 if (hideId && hideId!=emptyvalue) { 897 document.getElementById(hideId).style.visibility = 'hidden'; 898 document.getElementById(hideId).style.display = 'none'; 899 } 900 return(showId); 901} 902 903function JOSC_toogle(ElementId) { 904 905 if (ElementId) { 906 if (document.getElementById(ElementId).style.visibility=='hidden') { 907 document.getElementById(ElementId).style.visibility='visible'; 908 document.getElementById(ElementId).style.display = ''; 909 } else { 910 document.getElementById(ElementId).style.visibility = 'hidden'; 911 document.getElementById(ElementId).style.display = 'none'; 912 } 913 } 914} 915 916/* 917 * return 0 if nothing done 918 * return 1 if hidden->visible 919 * return 2 if visible->hidden 920 */ 921function JOSC_toogleR(ElementId) { 922 923 if (ElementId) { 924 if (document.getElementById(ElementId).style.visibility=='hidden') { 925 document.getElementById(ElementId).style.visibility='visible'; 926 document.getElementById(ElementId).style.display = ''; 927 return 1; 928 } else { 929 document.getElementById(ElementId).style.visibility = 'hidden'; 930 document.getElementById(ElementId).style.display = 'none'; 931 return 2; 932 } 933 } else return 0; 934}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.