%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.message_form/templates/.default/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.message_form/templates/.default/script.js |
if (typeof oForumForm != "object") var oForumForm = {}; var MessageMax = 64000; function quoteMessageEx(author, mid) { if (typeof document.forms["REPLIER"] == "object") { init_form(document.forms["REPLIER"]); oForumForm[document.forms["REPLIER"].id].quote(author, mid); } } function emoticon(theSmilie) // { return; } /* Form functions */ function init_form(form) { if (typeof(form) != "object") return false; if (typeof(oForumForm[form.id]) != "object") { oForumForm[form.id] = new PostForm(form); oForumForm[form.id].Init(form); } return; } function PostForm() { this.open = {"B" : 0, "I" : 0, "U" : 0, "CODE" : 0, "QUOTE" : 0, "FONT" : 0, "COLOR" : 0}; this.tags = { "B" : "simple_tag", "I" : "simple_tag", "U" : "simple_tag", "CODE" : "simple_tag", "QUOTE" : "simple_tag", "FONT" : "simple_tag", "COLOR" : "simple_tag", "CLOSE" : "closeall", "URL" : "tag_url", "IMG" : "tag_image", "LIST" : "tag_list", "TRANSLIT" : "translit"}; this.b = {"translit" : 0}; this.str = {"translit" : ""}; this.stack = []; this.form = false; t = this; this.Init = function(form) { if (this.form) return true; if (typeof(form) != "object") return false; this.form = form; /* Simple tags */ for (var res in this.tags) { if (this.form[res]) { if (res == "FONT" || res == "COLOR") this.form[res].onchange = new Function("t." + this.tags[res] + "(this);"); else if (res == "CLOSE") { this.form[res].onclick = new Function("t." + this.tags[res] + "(this);"); this.form[res].onmouseover = function(){this.style.textDecoration = "underline"; t.show_hints(this.name)}; this.form[res].onmouseout = function(){this.style.textDecoration = "none";}; } else { this.form[res].onclick = new Function("t." + this.tags[res] + "(this);"); this.form[res].onmouseover = function(){t.show_hints(this.name)}; } if (this.form[res].accessKey) { var title = ""; var userAgent = navigator.userAgent.toLowerCase(); var is_nav = ((userAgent.indexOf('mozilla')!=-1) && (userAgent.indexOf('spoofer')==-1) && (userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('opera')==-1) && (userAgent.indexOf('webtv')==-1) && (userAgent.indexOf('hotjava')==-1)); var is_win = ((userAgent.indexOf("win")!=-1) || (userAgent.indexOf("16bit") != -1)); var is_mac = (userAgent.indexOf("mac")!=-1); var title = this.form[res].title; if (is_win) { if (is_nav) { title = this.form[res].title.replace(/alt/, "shift+alt"); oHelp[res] = oHelp[res].replace(/alt/, "shift+alt"); } else if (!jsUtils.IsIE()) { title = this.form[res].title.replace(/\([^)]+\)/, ""); oHelp[res] = oHelp[res].replace(/\([^)]+\)/, ""); } } else { if ((jsUtils.IsIE() || is_nav) && is_mac) { title = this.form[res].title.replace(/alt/, "ctrl"); oHelp[res] = oHelp[res].replace(/alt/, "ctrl"); } else { title = this.form[res].title.replace(/\([^)]+\)/, ""); oHelp[res] = oHelp[res].replace(/\([^)]+\)/, ""); } } this.form[res].title = title; } } } var image = this.form.getElementsByTagName("img"); if (image && typeof image == "object" && image.length > 0) { for (var ii = 0; ii < image.length; ii++ ) { if (image[ii].className != "smiles") { image[ii].onclick = function(){t.emoticon(this)}; } } } this.form["POST_MESSAGE"].onselect = function(){ t.store_caret(this)}; this.form["POST_MESSAGE"].onclick = function(){ t.store_caret(this)}; this.form["POST_MESSAGE"].onkeyup = function(){ t.store_caret(this)}; return true; }, this.Insert = function (ibTag, ibClsTag, isSingle, postText) { if (!this.form || !this.form["POST_MESSAGE"]) return false; var textarea = this.form["POST_MESSAGE"]; var isClose = (isSingle ? true : false); postText = (postText == null ? "" : postText); if (jsUtils.IsIE() || jsUtils.IsOpera()) { textarea.focus(); var sel = document.selection; var rng = sel.createRange(); rng.collapse; if ((sel.type == "Text" || sel.type == "None") && rng != null) { if (ibClsTag != "" && rng.text.length > 0) { ibTag += rng.text + ibClsTag; isClose = false; } else if (postText.length > 0) { ibTag += postText + ibClsTag; isClose = false; } rng.text = ibTag; } } else if (document.getElementById) { var text = {"start" : ibTag, "end" : ""} if (ibClsTag != "" && textarea.selectionEnd > textarea.selectionStart) { text["end"] = ibClsTag; isClose = false; } else if (postText.length > 0) { text["start"] += postText + ibClsTag; isClose = false; } var sel = { "start" : textarea.selectionStart, "end" : textarea.selectionEnd}; if (sel["end"] == 1 || sel["end"] == 2) sel["end"] = textarea.textLength; var s1 = (textarea.value).substring(0, sel["start"]); var s2 = (textarea.value).substring(sel["start"], sel["end"]) var s3 = (textarea.value).substring(sel["end"], textarea.textLength); textarea.value = s1 + text["start"] + s2 + text["end"] + s3; textarea.selectionEnd = sel["end"] + text["start"].length + text["end"].length; } else { textarea.value += ibTag; } textarea.focus(); return isClose; }, this.show_hints = function(msg) { this.form['helpbox'].value = oHelp[msg]; }, this.store_caret = function() { if (this.form["POST_MESSAGE"].createTextRange) this.form["POST_MESSAGE"].caretPos = document.selection.createRange().duplicate(); }, this.emoticon = function(element) { this.Insert(" " + element.id + " ", "", false); }, this.tag_image = function() { var need_loop = true; do { var res = prompt(oText['enter_image'], "http://"); if (res == null) { need_loop = false; return false; } else if (res.length <= 0) { alert("Error! " + oErrors['no_url']); } else { need_loop = false; } } while(need_loop); this.Insert("[IMG]" + res + "[/IMG]", "", false); }, this.tag_list = function() { var thelist = "[LIST]\n"; var need_loop = true; do { var res = prompt(oText['list_prompt'], ""); if (res == null) { need_loop = false; return false; } else if (res.length <= 0) { need_loop = false; } else { thelist = thelist + "[*]" + res + "\n"; } } while(need_loop); this.Insert(thelist + "[/LIST]\n", "", false); }, this.closeall = function() { var res = false; while(res = this.stack.pop()) { this.Insert("[/" + res + "]"); this.form[res].value = res; this.open[res]--; } this.update_counts(); }, this.tag_url = function( ) { var FoundErrors = ''; var need_loop = true; var oFields = { "URL" : { "text" : oText['enter_url'], "default" : "http://", "error" : oErrors['no_url'], "value" : ""}, "TITLE" : { "text" : oText['enter_url_name'], "default" : "My Webpage", "error" : oErrors['no_title'], "value" : ""}}; for (var ii in oFields) { need_loop = true; do { var res = prompt(oFields[ii]["text"], oFields[ii]["default"]); if (res == null) { need_loop = false; return false; } else if (res.length <= 0) { alert("Error! " + oFields[ii]["error"]); } else { oFields[ii]["value"] = res; need_loop = false; } } while(need_loop); } this.Insert("[URL=" + oFields["URL"]["value"] + "]" + oFields["TITLE"]["value"] + "[/URL]", "", false); }, this.simple_tag = function(element) { var tag_name = element.name; var tag_start = tag_name; if (tag_name == 'FONT' || tag_name == 'COLOR') tag_start += "=" + element.value; if ((t.open[tag_name] == 0) && t.Insert("[" + tag_start + "]", "[/" + tag_name + "]", true)) { t.open[tag_name]++; element.value += "*"; t.stack.push(tag_name); t.show_hints('CLOSE_CLICK') } else { var stack_need_insert = []; var tag_is_open = false; var res = false; while (res = t.stack.pop()) { stack_need_insert.unshift(res); if (res == tag_name) { tag_is_open = true; break; } } if (!tag_is_open) t.stack = stack_need_insert; var res = false; while (res = stack_need_insert.pop()) { t.Insert("[/" + res + "]", "", false); t.form[res].value = res; t.open[res]--; } } t.update_counts(); }, this.update_counts = function() { t.form['tagcount'].value = t.stack.length; }, this.storeCaret = function (textEl) { if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); }, this.translit = function() { var i; var objTextarea = this.form['POST_MESSAGE']; var textbody = objTextarea.value; var selected = false; if ((jsUtils.IsIE() || jsUtils.IsOpera()) && (objTextarea.isTextEdit)) { objTextarea.focus(); var sel = document.selection; var rng = sel.createRange(); rng.colapse; if (sel.type=="Text" && rng != null) { textbody = rng.text; selected = true; } } else if (document.getElementById) { if (objTextarea.selectionEnd > objTextarea.selectionStart) { var selEnd = objTextarea.selectionEnd; if (selEnd == 0) selEnd = objTextarea.textLength; var startText = (objTextarea.value).substring(0, objTextarea.selectionStart); textbody = (objTextarea.value).substring(objTextarea.selectionStart, selEnd); var endText = (objTextarea.value).substring(selEnd, objTextarea.textLength); selected = true; } } if (textbody) { if (this.b["translit"] == 0) { for (i=0; i<capitEngLettersReg.length; i++) textbody = textbody.replace(capitEngLettersReg[i], capitRusLetters[i]); for (i=0; i<smallEngLettersReg.length; i++) textbody = textbody.replace(smallEngLettersReg[i], smallRusLetters[i]); } else { for (i=0; i<capitRusLetters.length; i++) textbody = textbody.replace(capitRusLettersReg[i], capitEngLetters[i]); for (i=0; i<smallRusLetters.length; i++) textbody = textbody.replace(smallRusLettersReg[i], smallEngLetters[i]); } if (!selected) { objTextarea.value = textbody; } else { if ((jsUtils.IsIE() || jsUtils.IsOpera()) && (objTextarea.isTextEdit)) { rng.text = textbody; } else { objTextarea.value = startText + textbody + endText; objTextarea.selectionEnd = startText.length + textbody.length; } } } if (this.b["translit"]==0) { this.str["translit"] = this.form['TRANSLIT'].value; this.form['TRANSLIT'].value = oText['translit_en']; this.b["translit"] = 1; } else { this.form['TRANSLIT'].value = this.str["translit"]; this.b["translit"] = 0; } objTextarea.focus(); }, this.quote = function (author, mid) { var selection = ""; var message_id = 0; if (document.getSelection) { selection = document.getSelection(); selection = selection.replace(/\r\n\r\n/gi, "_newstringhere_"); selection = selection.replace(/\r\n/gi, " "); selection = selection.replace(/ /gi, ""); selection = selection.replace(/_newstringhere_/gi, "\r\n\r\n"); } else { selection = document.selection.createRange().text; } if (selection == "") { message = mid.replace(/message_text_/gi, ""); if (parseInt(message) > 0) { message = document.getElementById(mid); if (typeof(message) == "object" && message) { selection = message.innerHTML; selection = selection.replace(/\<br(\s)*(\/)*\>/gi, "\n"); selection = selection.replace(/\<[^\>]+\>/gi, ""); selection = selection.replace(/</gi, "<"); selection = selection.replace(/>/gi, ">"); selection = selection.replace(/"/gi, "\""); } else { selection = 'is not object'; } } else if (mid.Length() > 0) { selection = mid; } } if (selection != "") { selection = selection.replace(/\­/gi, ""); selection = author + oText['author'] + selection; this.Insert("[QUOTE]", "[/QUOTE]", false, selection); } } } function ValidateForm(form) { if (typeof form != "object" || typeof form.POST_MESSAGE != "object") return false; var errors = ""; var MessageLength = form.POST_MESSAGE.value.length; if (form.SONET_USER_ID && (form.SONET_USER_ID.value.length <= 0)) errors += oErrors['no_topic_recip']; if (MessageLength < 2) errors += oErrors['no_message']; else if ((MessageMax != 0) && (MessageLength > MessageMax)) errors += oErrors['max_len1'] + MessageMax + oErrors['max_len2'] + MessageLength; if (errors != "") { alert(errors); return false; } var arr = form.getElementsByTagName("input"); for (var i=0; i < arr.length; i++) { var butt = arr[i]; if (butt.getAttribute("type") == "submit") butt.disabled = true; } return true; } PostFormIsLoad = true;