1var is_ie = !((navigator.appName.indexOf("Netscape") != -1) || (navigator.appName.indexOf("Opera") != -1)); 2 3function includeJS(src) { 4 if(document.getElementsByTagName && document.createElement) { 5 var head = document.getElementsByTagName('head')[0]; 6 7 var script = document.createElement('script'); 8 script.type = 'text/javascript'; 9 script.src = src; 10 script.charset = "utf-8"; 11 12 head.appendChild(script); 13 14 return true; 15 } else { 16 return false; 17 } 18} 19 20function getCurrSelection() { 21 if(document.selection) 22 return document.selection; 23 else 24 return window.getSelection(); 25} 26 27function getRange(sel) { 28 if(!sel) 29 sel = getSelection(); 30 31 if(typeof sel != "undefined") { 32 return sel.getRangeAt(0); 33 } else { 34 return window.document.createRange(); 35 } 36} 37 38function hasParent(obj, par_id) { 39 if(!obj) { 40 return false; 41 } 42 43 if(obj.id == par_id) { 44// alert(obj.id); 45 return true; 46 } else { 47 if(obj.parentNode) { 48 return hasParent(obj.parentNode, par_id); 49 } else { 50 return false; 51 } 52 } 53} 54 55function trim(str) { 56 var res = str.replace(/^\s+/, ''); 57 return res.replace(/\s+$/, ''); 58 59} 60 61function lLib () { 62 return this; 63} 64 65lLib.instance = null; 66 67lLib.getInstance = function () { 68 if(! lLib.instance) { 69 lLib.instance = new lLib(); 70 } 71 72 return lLib.instance; 73}; 74 75 76lLib.includeJS = includeJS; 77 78lLib.prototype.is_loaded = false; 79lLib.prototype.onLoadEvents = new Array(); 80lLib.prototype.requestStack = new Array(); 81 82 83 84 85 86lLib.prototype.makeRequest = function (url, handler) { 87 var requestId = this.requestStack.length; 88 this.requestStack[requestId] = handler; 89 90 var s_delim = "?"; 91 if (url.indexOf('?') !== -1) s_delim = '&'; 92 93 url += s_delim + "requestId=" + requestId + "&rnd=" + Math.random(); 94 lLib.includeJS(url); 95 96 return requestId; 97}; 98 99 100lLib.prototype.makeResponse = function (response) { 101 if(typeof response != "object") { 102 return false; 103 } 104 105 var requestHandler; 106 var requestId = response.id; 107 108 if(typeof this.requestStack[requestId] == "undefined") { 109 return false; 110 } else { 111 requestHandler = this.requestStack[requestId]; 112 requestHandler(response); 113 this.requestStack[requestId] = undefined; 114 return true; 115 } 116}; 117 118 119 120function lLibResponse(requestId) { 121 this.id = requestId; 122} 123 124lLibResponse.prototype.id = null; 125 126function is_safari() { 127 return (navigator.userAgent.indexOf("Safari") != -1); 128} 129 130 131var Mozilla = (navigator.appName.indexOf("Netscape") != -1); 132 133function forum_check_reg_form() { 134 forum_login = document.getElementById('forum_login'); 135 forum_password = document.getElementById('forum_password'); 136 forum_password_check = document.getElementById('forum_password_check'); 137 forum_email = document.getElementById('forum_email'); 138 139 if(!forum_login || !forum_password || !forum_password_check || !forum_email) { 140 alert(getLabel('js-guest-not_correct_form')); 141 return false; 142 } 143 144 if(forum_login.value == "") { 145 alert(getLabel('js-guest-must_fill_field_login')); 146 return false; 147 } 148 149 if(forum_password.value == "") { 150 alert(getLabel('js-guest-must_fill_field_password')); 151 return false; 152 } 153 154 if(forum_password.value != forum_password_check.value) { 155 alert(getLabel('js-guest-password_not_correct')); 156 return false; 157 } 158 159 if(forum_email.value == "") { 160 alert(getLabel('js-guest-must_fill_field_email')); 161 return false; 162 } 163 164 return true; 165} 166 167 168function forum_check_form(obj) { 169 if(!obj) 170 return false; 171 172 173 if(obj.captcha) { 174 if(md5(obj.captcha.value) != getCookie("captcha1")) { 175 alert(getLabel('js-guest-code_not_correct')); 176 return false; 177 } 178 } 179 180 181 if(obj.nickname) 182 vlogin = obj.nickname.value; 183 else 184 vlogin = ""; 185 186 if(obj.title) 187 vtitle = obj.title.value; 188 else 189 vtitle = ""; 190 191 if(obj.body) 192 vbody = obj.body.value; 193 else 194 vbody = ""; 195 196 if(vlogin.length == 0) { 197 alert(getLabel('js-guest-input_name')); 198 return false; 199 } 200 201 202 203 if(vtitle.length == 0) { 204 alert(getLabel('js-guest-input_header')); 205 return false; 206 } 207 208 bd = vbody.replace(/[ \t\r\n]*/g, ""); 209 210 if(bd.length == 0) { 211 alert(getLabel('js-guest-input_message_text')); 212 return false; 213 } 214 return true; 215} 216 217function forum_quote(mess_id) { 218 var author = ""; 219 mess_obj = document.getElementById('mess_' + mess_id); 220 if(!mess_obj) 221 return false;
222 223 body_obj = document.getElementById('message'); 224 225 if(!body_obj) 226 return false; 227 228 229 if(is_ie) { 230 sel = getCurrSelection(); 231 range = sel.createRange(); 232 sel_str = range.text; 233 } else { 234 sel = getCurrSelection(); 235 if (sel.rangeCount) { 236 range = getRange(sel); 237 sel_str = range; 238 } else { 239 sel_str = ""; 240 } 241 } 242 243 if(!is_ie) 244 qmess = mess_obj.textContent; 245 else 246 qmess = mess_obj.outerText; 247 248 if(sel_str && typeof sel_str != "undefined" && qmess) { 249 parentObj = range.commonAncestorContainer; 250 251 if(is_ie) { 252 if(qmess.replace(sel_str, "") != qmess) { 253 qmess = sel_str; 254 } 255 } else { 256 parentObj = range.commonAncestorContainer; 257 258 if(hasParent(parentObj, 'mess_' + mess_id)) { 259 qmess = range; 260 } 261 } 262 } 263 264 res = ""; 265 266 real_id = mess_obj.id.substr(5, mess_obj.id.length - 5); 267 author_obj = document.getElementById('author_' + real_id); 268 if(author_obj) { 269 author = (!Mozilla) ? author_obj.innerText : author_obj.textContent; 270 author = "[b]" + trim(author) + "[/b]\r\n"; 271 } else { 272 author = ""; 273 } 274 275 if(qmess) { 276 if(body_obj.value.length == 0) 277 body_obj.value += "[QUOTE]" + author + qmess + "[/QUOTE]\r\n"; 278 else 279 body_obj.value += "\r\n[QUOTE]" + author + qmess + "[/QUOTE]\r\n"; 280 } 281 document.getElementById('message').focus(); 282 return false; 283} 284 285 286function forum_toAuthor(obj) { 287 if(is_ie) 288 res = obj.innerText; 289 else 290 res = obj.textContent; 291 292 res = trim(res); 293 294 res = "[b]" + res + "[/b]\r\n"; 295 296 document.getElementById('message').value += res; 297 window.location = "#add"; 298 299 document.getElementById('message').focus(); 300 301 return false; 302} 303 304 305 306function forum_insert_smile(obj, element_name) { 307 if(!obj) return; 308 var obj = obj.firstChild; 309 if(!obj) return; 310 311 var alt = obj.alt; 312 if(!alt) return false; 313 314 var obj = document.getElementById('message'); 315 if(!obj) obj = document.getElementById('forum_body'); 316 if(!obj) obj = document.getElementById(element_name); 317 if(!obj) return false; 318 319 obj.value += "[smile:" + alt + "] "; 320 obj.focus(); 321 322 return true; 323} 324 325var last_src = ""; 326 327 328function cms_vote_postDo(formName, inputName, nstext) { 329 var fObjColl = document.getElementsByName(formName); 330 331 var fObj = ''; 332 if (fObjColl) { 333 fObj = fObjColl[fObjColl.length-1]; 334 } 335 336 if(typeof(fObj) !== "object") return false; 337 338 iObj = fObj.elements[inputName]; 339 340 if(typeof(iObj) === "undefined") return false; 341 342 res = false; 343 for(i = 0; i < iObj.length; i++) 344 if(iObj[i].checked) 345 res = iObj[i].value; 346 347 348 if(res) { 349 sc = document.createElement("script"); 350 sc.src = "/vote/post/" + res + "/?m=" + new Date().getTime(); 351 oTemplate = fObj.elements['system_template']; 352 if((oTemplate instanceof Object) && (oTemplate.value.length)) { 353 sc.src = sc.src + "&template="+oTemplate.value; 354 } 355 356 fObj.appendChild(sc); 357 } else { 358 if(nstext) { 359 alert(nstext); 360 } 361 } 362} 363 364function saveFormData(form) { 365 if(!form) { 366 return false; 367 } 368 369 if(!form.id) { 370 alert("You should set id attribute in form tag to save or restore it."); 371 return false; 372 } 373 374 var cookieData = new Array; 375 for(var i = 0; i < form.elements.length; i++) { 376 var input = form.elements[i]; 377 if (input.name) { 378 var inputName = input.name.replace(/([)\\])/g, "\\$1"); 379 380 switch(input.type) { 381 case "file": { 382 if (input.value == '') input.parentNode.removeChild(input); 383 break; 384 } 385 case "password": 386 387 case "text": 388 case "textarea": { 389 cookieData.push({type: 'T', name: inputName, value: input.value}); 390 break; 391 } 392 393 case "checkbox": 394 case "radio": { 395 cookieData.push({type: 'C', name: inputName, value: (input.checked ? 1 : 0)}); 396 break; 397 } 398 399 case "select-multiple": 400 case "select-one": { 401 cookieData.push({type: 'S', name: inputName, value: input.selectedIndex}); 402 break; 403 } 404 } 405 } 406 407 } 408 409 var str = ""; 410 for(var i = 0; i < cookieData.length; i++) { 411 var elementData = cookieData[i]; 412 var value = new String(elementData.value); 413 var inputName = new String(elementData.name); 414 415 if(!inputName || !value) { 416 continue; 417 } 418 419 str += elementData.type + "," + inputName.length + "," + inputName + "," + value.length + "," + value; 420 } 421 document.cookie="frm" + form.id + "=" + escape(str.replace(/([|\\])/g, "\\$1")); 422 return true; 423} 424 425function restoreFormData(form) { 426 if(!form) { 427 return false;
428 } 429 430 if(!form.id) { 431 alert("You should set id attribute in form tag to save or restore it."); 432 return false; 433 } 434 var cookieName = "frm" + form.id + "="; 435 436 var cookie = new String(unescape(document.cookie)); 437 var posStart, posEnd; 438 if((posStart = cookie.indexOf(cookieName)) == -1) { 439 return false; 440 } 441 442 if((posEnd = cookie.indexOf(";", posStart)) == -1) { 443 posEnd = cookie.length; 444 } 445 446 var data = cookie.substring(posStart + cookieName.length, posEnd); 447 var pos = 0, cookieData = new Array; 448 449 while(pos < data.length) { 450 var inputName; 451 var type = data.substring(pos, pos + 1); 452 pos += 2; 453 454 var length = parseInt(data.substring(pos, data.indexOf(",", pos))); 455 pos = data.indexOf(",", pos) + 1; 456 var inputName = data.substring(pos, pos + length); 457 pos += length + 1; 458 459 var length = parseInt(data.substring(pos, data.indexOf(",", pos))); 460 if(length == 0) { 461 pos += 2; 462 continue; 463 } else { 464 pos = data.indexOf(",", pos) + 1; 465 } 466 467 var value = data.substring(pos, pos + length); 468 pos += length; 469 470 cookieData.push({type: type, name: inputName, value: value}); 471 } 472 473 for(var i = 0; i < cookieData.length; i++) { 474 var elementData = cookieData[i]; 475 if (elementData.type && elementData.name) { 476 switch(elementData.type) { 477 case "T": { 478 form.elements[elementData.name].value = elementData.value; 479 break; 480 } 481 482 case "C": { 483 form.elements[elementData.name].checked = elementData.value ? true : false; 484 break; 485 } 486 487 case "S": { 488 form.elements[elementData.name].selectedIndex = elementData.value; 489 break; 490 } 491 } 492 } 493 } 494}
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.