var is_ie = !((navigator.appName.indexOf("Netscape") != -1) || (navigator.appName.indexOf("Opera") != -1)); function includeJS(src) { if(document.getElementsByTagName && document.createElement) { var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = src; script.charset = "utf-8"; head.appendChild(script); return true; } else { return false; } } function getCurrSelection() { if(document.selection) return document.selection; else return window.getSelection(); } function getRange(sel) { if(!sel) sel = getSelection(); if(typeof sel != "undefined") { return sel.getRangeAt(0); } else { return window.document.createRange(); } } function hasParent(obj, par_id) { if(!obj) { return false; } if(obj.id == par_id) { // alert(obj.id); return true; } else { if(obj.parentNode) { return hasParent(obj.parentNode, par_id); } else { return false; } } } function trim(str) { var res = str.replace(/^\s+/, ''); return res.replace(/\s+$/, ''); } function lLib () { return this; } lLib.instance = null; lLib.getInstance = function () { if(! lLib.instance) { lLib.instance = new lLib(); } return lLib.instance; }; lLib.includeJS = includeJS; lLib.prototype.is_loaded = false; lLib.prototype.onLoadEvents = new Array(); lLib.prototype.requestStack = new Array(); lLib.prototype.makeRequest = function (url, handler) { var requestId = this.requestStack.length; this.requestStack[requestId] = handler; var s_delim = "?"; if (url.indexOf('?') !== -1) s_delim = '&'; url += s_delim + "requestId=" + requestId + "&rnd=" + Math.random(); lLib.includeJS(url); return requestId; }; lLib.prototype.makeResponse = function (response) { if(typeof response != "object") { return false; } var requestHandler; var requestId = response.id; if(typeof this.requestStack[requestId] == "undefined") { return false; } else { requestHandler = this.requestStack[requestId]; requestHandler(response); this.requestStack[requestId] = undefined; return true; } }; function lLibResponse(requestId) { this.id = requestId; } lLibResponse.prototype.id = null; function is_safari() { return (navigator.userAgent.indexOf("Safari") != -1); } var Mozilla = (navigator.appName.indexOf("Netscape") != -1); function forum_check_reg_form() { forum_login = document.getElementById('forum_login'); forum_password = document.getElementById('forum_password'); forum_password_check = document.getElementById('forum_password_check'); forum_email = document.getElementById('forum_email'); if(!forum_login || !forum_password || !forum_password_check || !forum_email) { alert(getLabel('js-guest-not_correct_form')); return false; } if(forum_login.value == "") { alert(getLabel('js-guest-must_fill_field_login')); return false; } if(forum_password.value == "") { alert(getLabel('js-guest-must_fill_field_password')); return false; } if(forum_password.value != forum_password_check.value) { alert(getLabel('js-guest-password_not_correct')); return false; } if(forum_email.value == "") { alert(getLabel('js-guest-must_fill_field_email')); return false; } return true; } function forum_check_form(obj) { if(!obj) return false; if(obj.captcha) { if(md5(obj.captcha.value) != getCookie("captcha1")) { alert(getLabel('js-guest-code_not_correct')); return false; } } if(obj.nickname) vlogin = obj.nickname.value; else vlogin = ""; if(obj.title) vtitle = obj.title.value; else vtitle = ""; if(obj.body) vbody = obj.body.value; else vbody = ""; if(vlogin.length == 0) { alert(getLabel('js-guest-input_name')); return false; } if(vtitle.length == 0) { alert(getLabel('js-guest-input_header')); return false; } bd = vbody.replace(/[ \t\r\n]*/g, ""); if(bd.length == 0) { alert(getLabel('js-guest-input_message_text')); return false; } return true; } function forum_quote(mess_id) { var author = ""; mess_obj = document.getElementById('mess_' + mess_id); if(!mess_obj) return false; body_obj = document.getElementById('message'); if(!body_obj) return false; if(is_ie) { sel = getCurrSelection(); range = sel.createRange(); sel_str = range.text; } else { sel = getCurrSelection(); if (sel.rangeCount) { range = getRange(sel); sel_str = range; } else { sel_str = ""; } } if(!is_ie) qmess = mess_obj.textContent; else qmess = mess_obj.outerText; if(sel_str && typeof sel_str != "undefined" && qmess) { parentObj = range.commonAncestorContainer; if(is_ie) { if(qmess.replace(sel_str, "") != qmess) { qmess = sel_str; } } else { parentObj = range.commonAncestorContainer; if(hasParent(parentObj, 'mess_' + mess_id)) { qmess = range; } } } res = ""; real_id = mess_obj.id.substr(5, mess_obj.id.length - 5); author_obj = document.getElementById('author_' + real_id); if(author_obj) { author = (!Mozilla) ? author_obj.innerText : author_obj.textContent; author = "[b]" + trim(author) + "[/b]\r\n"; } else { author = ""; } if(qmess) { if(body_obj.value.length == 0) body_obj.value += "[QUOTE]" + author + qmess + "[/QUOTE]\r\n"; else body_obj.value += "\r\n[QUOTE]" + author + qmess + "[/QUOTE]\r\n"; } document.getElementById('message').focus(); return false; } function forum_toAuthor(obj) { if(is_ie) res = obj.innerText; else res = obj.textContent; res = trim(res); res = "[b]" + res + "[/b]\r\n"; document.getElementById('message').value += res; window.location = "#add"; document.getElementById('message').focus(); return false; } function forum_insert_smile(obj, element_name) { if(!obj) return; var obj = obj.firstChild; if(!obj) return; var alt = obj.alt; if(!alt) return false; var obj = document.getElementById('message'); if(!obj) obj = document.getElementById('forum_body'); if(!obj) obj = document.getElementById(element_name); if(!obj) return false; obj.value += "[smile:" + alt + "] "; obj.focus(); return true; } var last_src = ""; function cms_vote_postDo(formName, inputName, nstext) { var fObjColl = document.getElementsByName(formName); var fObj = ''; if (fObjColl) { fObj = fObjColl[fObjColl.length-1]; } if(typeof(fObj) !== "object") return false; iObj = fObj.elements[inputName]; if(typeof(iObj) === "undefined") return false; res = false; for(i = 0; i < iObj.length; i++) if(iObj[i].checked) res = iObj[i].value; if(res) { sc = document.createElement("script"); sc.src = "/vote/post/" + res + "/?m=" + new Date().getTime(); oTemplate = fObj.elements['system_template']; if((oTemplate instanceof Object) && (oTemplate.value.length)) { sc.src = sc.src + "&template="+oTemplate.value; } fObj.appendChild(sc); } else { if(nstext) { alert(nstext); } } } function saveFormData(form) { if(!form) { return false; } if(!form.id) { alert("You should set id attribute in form tag to save or restore it."); return false; } var cookieData = new Array; for(var i = 0; i < form.elements.length; i++) { var input = form.elements[i]; if (input.name) { var inputName = input.name.replace(/([)\\])/g, "\\$1"); switch(input.type) { case "file": { if (input.value == '') input.parentNode.removeChild(input); break; } case "password": case "text": case "textarea": { cookieData.push({type: 'T', name: inputName, value: input.value}); break; } case "checkbox": case "radio": { cookieData.push({type: 'C', name: inputName, value: (input.checked ? 1 : 0)}); break; } case "select-multiple": case "select-one": { cookieData.push({type: 'S', name: inputName, value: input.selectedIndex}); break; } } } } var str = ""; for(var i = 0; i < cookieData.length; i++) { var elementData = cookieData[i]; var value = new String(elementData.value); var inputName = new String(elementData.name); if(!inputName || !value) { continue; } str += elementData.type + "," + inputName.length + "," + inputName + "," + value.length + "," + value; } document.cookie="frm" + form.id + "=" + escape(str.replace(/([|\\])/g, "\\$1")); return true; } function restoreFormData(form) { if(!form) { return false; } if(!form.id) { alert("You should set id attribute in form tag to save or restore it."); return false; } var cookieName = "frm" + form.id + "="; var cookie = new String(unescape(document.cookie)); var posStart, posEnd; if((posStart = cookie.indexOf(cookieName)) == -1) { return false; } if((posEnd = cookie.indexOf(";", posStart)) == -1) { posEnd = cookie.length; } var data = cookie.substring(posStart + cookieName.length, posEnd); var pos = 0, cookieData = new Array; while(pos < data.length) { var inputName; var type = data.substring(pos, pos + 1); pos += 2; var length = parseInt(data.substring(pos, data.indexOf(",", pos))); pos = data.indexOf(",", pos) + 1; var inputName = data.substring(pos, pos + length); pos += length + 1; var length = parseInt(data.substring(pos, data.indexOf(",", pos))); if(length == 0) { pos += 2; continue; } else { pos = data.indexOf(",", pos) + 1; } var value = data.substring(pos, pos + length); pos += length; cookieData.push({type: type, name: inputName, value: value}); } for(var i = 0; i < cookieData.length; i++) { var elementData = cookieData[i]; if (elementData.type && elementData.name) { switch(elementData.type) { case "T": { form.elements[elementData.name].value = elementData.value; break; } case "C": { form.elements[elementData.name].checked = elementData.value ? true : false; break; } case "S": { form.elements[elementData.name].selectedIndex = elementData.value; break; } } } } }