/* Реализация замены getElementById */function $() {  var results = [], element;  for (var i = 0; i < arguments.length; i++) {    element = arguments[i];    if (typeof element == 'string')      element = document.getElementById(element);      results.push(element);  }  return results[0];}/* Гарячі клавіші в редакторі *//*function EditorKeyDown(e){  var tag = '';  if(e.ctrlKey) switch(e.keyCode)  {    case 66: tag = 'b'; break; // Ctrl+B	case 73: tag = 'i'; break; // Ctrl+I	case 85: tag = 'u'; break; // Ctrl+U	case 109: tag = 's'; break; // Ctrl+-	case 76: tag = 'left'; break; // Ctrl+L	case 82: tag = 'right'; break; // Ctrl+E	case 69: tag = 'center'; break; // Ctrl+R	case 72: tag = 'hr'; break; // Ctrl+H	case 190: tag = 'sup'; break; // Ctrl+>	case 188: tag = 'sub'; break; // Ctrl+<	default: return true;  }  else	return true;  AddTag(tag, e.target.id);  e.cancelBubble = true;  if(e.stopPropagation) e.stopPropagation();  return (e.returnValue = false);}*//* "Оборачивание" BB-тегами */function InsertEditText(element, text, pos_end, pos_start){  if (pos_start == null) pos_start = pos_end;  element.value = element.value.slice(0, pos_start) + text + element.value.slice(pos_end);}var agt = navigator.userAgent.toLowerCase();var is_major = parseInt(navigator.appVersion);var is_minor = parseFloat(navigator.appVersion);var is_nav  = ((agt.indexOf('mozilla') != -1) && (agt.indexOf('spoofer') == -1)                        && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera') == -1)                        && (agt.indexOf('webtv') == -1) && (agt.indexOf('hotjava') == -1));var is_nav4up = (is_nav && (is_major >= 4)) || (agt.indexOf('opera') != -1);var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));var is_ie3    = (is_ie && (is_major < 4));var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4") != -1) );var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);function insertText(block, t1, t2) {  var scrollTop = $(block).scrollTop;  if (is_ie5up)  {    if (document.selection)    {      $(block).focus();      var txt = $(block).value;      var str = document.selection.createRange();      if (str.text == '') str.text = t1 + t2;      else if (txt.indexOf(str.text) >= 0) str.text = t1 + str.text + t2;      else $(block).value = txt + t1 + t2;      str.select();      $(block).focus();    }  }  else if (is_nav4up || (typeof $(block).selectionStart) != 'undefined')  {    var element = $(block);    var sel_start = element.selectionStart;    var sel_end = element.selectionEnd;	InsertEditText(element, t1 + element.value.slice(sel_start, sel_end) + t2, sel_end, sel_start);//    InsertEditText(element, t1, sel_start);//    InsertEditText(element, t2, sel_end+t1.length);    element.selectionStart = sel_end+t1.length;    element.selectionEnd = element.selectionStart;//sel_end+t1.length+t2.length;    element.focus();  }  else $(block).value = $(block).value + t1 + t2;  $(block).scrollTop = scrollTop;}/* Вставляем выбранный тег и оборачиваем им текст */function AddTag(tag, id){  var t1 = '[' + tag + ']', t2 = '[/' + tag + ']';    if (id == undefined || id == '')    {        var block = 'reply';    }    else {        var block = id;    }    insertText(block, t1, t2);}/* Вставляем выбранный тег с аттрибутом и оборачиваем им текст */function AddTagWithAttr(tag, attrname, attrvalue, id ){  var t1 = '[' + tag + ' '+attrname+'='+attrvalue+']', t2 = '[/' + tag + ']';    if (id == undefined || id == '')    {        var block = 'reply';    }    else {        var block = id;    }    insertText(block, t1, t2);}/* Вставляем выбранный тег с аттрибутом и оборачиваем им текст */function AddTagWithValue(tag, attrvalue, id ){  var t1 = '[' + tag + '='+attrvalue+']', t2 = '[/' + tag + ']';    if (id == undefined || id == '')    {        var block = 'reply';    }    else {        var block = id;    }    insertText(block, t1, t2);}/* Вставляем выбранный смайл */function AddSmile(tag, id){    if (id == undefined || id == '')    {        var block = 'reply';    }    else {        var block = id;    } var scrollTop = $(block).scrollTop;  if (is_ie5up)  {    if (document.selection)    {      $(block).focus();      var txt = $(block).value;      var str = document.selection.createRange();      if (str.text == '') str.text = tag;      else if (txt.indexOf(str.text) >= 0) str.text = tag;      else $(block).value = txt + tag;      str.select();    }  }  else if (is_nav4up)  {    var element = $(block);    var sel_start = element.selectionStart;    var sel_end = element.selectionEnd;    InsertEditText(element, tag, sel_end, sel_start);    element.selectionStart = sel_start+tag.length;    element.selectionEnd = element.selectionStart;//sel_end+tag.length;    element.focus();  }  else $(block).value = $(block).value + tag; $(block).scrollTop = scrollTop;}/* Проверка на максимальный размер введенного текста */function checkMax(input, maxlen, left) {    inputstr = input.value;    strlen = inputstr.length;    if (strlen > maxlen)        input.value = inputstr.substring(0, maxlen);    if (left)        left = $(left);    if (left) {        if (left.tagName == 'INPUT')            left.value = maxlen - input.value.length;        else            left.innerHTML = maxlen - input.value.length;    }    return true;}/* Насколько просколили окно */function getyScroll() {  yScroll = 0;  if (window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX)   {    yScroll = window.innerHeight + window.scrollMaxY;    xScroll = window.innerWidth + window.scrollMaxX;    var deff = document.documentElement;    var wff = (deff&&deff.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth;    var hff = (deff&&deff.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight;    xScroll -= (window.innerWidth - wff);    yScroll -= (window.innerHeight - hff);   }   else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth)   { // all but Explorer Mac    yScroll = document.body.scrollHeight;    xScroll = document.body.scrollWidth;   }   else    { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari    yScroll = document.body.offsetHeight;    xScroll = document.body.offsetWidth;   }  return yScroll; }/* Отображаем окно логина */function showloginform() {  $('modalLogin').style.display = 'block';  $('screen').style.opacity = '0.3';  $('screen').style.filter = 'alpha(opacity=30)';  $('screen').style.display = 'block';  $('screen').style.height = getyScroll() + 'px'; //window.innerHeight + window.scrollMaxY;}/* Прячем окно логина */function hideloginform() {  $('modalLogin').style.display = 'none';  $('screen').style.display = 'none';}/* Добавляем через DOM еще одно поле типа "файл" */function addFile() {    var attach = document.createElement("input");    attach.setAttribute("name", "attach[]");    attach.setAttribute("type", "file");    var desc = document.createElement("input");    desc.setAttribute("name", "desc[]");    desc.setAttribute("type", "text");    desc.setAttribute("class", "text w160");    desc.setAttribute("style", "margin-left: 5px; margin-top: -3px;");    document.getElementById('append').appendChild(attach);    document.getElementById('append').appendChild(desc);    var br = document.createElement("br");    document.getElementById('append').appendChild(br);}/* Свертка блоков + посадка куки */function changeView(id, linkid, color) {    var params = '&blockid='+id;    if ($(id).style.display != 'none')    {        $(id).style.display = 'none';        $(linkid).className=color+'-block-hdl2-collapsed';        new Ajax.Request('/ajaxSaveCookie/', {method: 'post',parameters:params, onFailure:errFunc});    }    else {        $(linkid).className=color+'-block-hdl2';        $(id).style.display = '';        new Ajax.Request('/ajaxSuspendCookie/', {method: 'post',parameters:params, onFailure:errFunc});    }}/* Свертка блоков + посадка куки */function collapse(id, headerName, color) {    var params = '&blockid='+id;    if ($(id).style.display != 'none')    {        $(id).style.display = 'none';        $(headerName).className = $(headerName).className + '-collapsed';        new Ajax.Request('/ajaxSaveCookie/', {method: 'post',parameters:params, onFailure:errFunc});    }    else {        $(headerName).className = 'gc-hd';        $(id).style.display = '';        new Ajax.Request('/ajaxSuspendCookie/', {method: 'post',parameters:params, onFailure:errFunc});    }}/* Проверка пароля */function checkPassword(value) {    if (value == '')    {        $('password').className = 'redfield';        $('passwordcheck').innerHTML = "<span class='red'>пароль не может быть пустым</span>";    }    else if (document.getElementById('mypassword').value.length <6)    {        alert('Длина пароля не может быть меньше 6 символов!');         $('passwordcheck').innerHTML = "<span class='red'>Длина пароля не может быть меньше 6 символов!</span>"        $('mypassword').focus();    }    else {        $('passwordcheck').innerHTML = "<img src='/img/i.jpg' alt='поле проверено' title='поле проверено' />";    }}/* Проверка правильности подтверждения пароля */function reCheckPassword(value, value2) {    if ((value == value2) && value != '' && value2 != '')    {        $('repasswordcheck').innerHTML = "<img src='/img/i.jpg' alt='поле проверено' title='поле проверено' />";    }    else {        $('repassword').className = 'redfield';        $('repasswordcheck').innerHTML = "<span class='red'>пароли не совпадают</span>";    }}/* Проверка почты */function checkEmail(value) {    var re = /^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i;    if (re.test(value))    {        $('emailcheck').innerHTML = "<img src='/img/i.jpg' alt='поле проверено' title='поле проверено' />";        return true;    }    else {        $('email').className = 'redfield';        $('emailcheck').innerHTML = "<span class='red'>неверный формат емейла</span>";        return false;    }}/* Проверка соглашения с правилами */function checkCheckBox(obj) {    if (obj.checked == true)    {        $('checkcheckbox').innerHTML = "<img src='/img/i.jpg' alt='поле проверено' title='поле проверено' />";    }    else {        $('checkcheckbox').innerHTML = "<span class='red'>Вы должны согласиться с условиями сервиса</span>";    }}/* Фикс для IE getElementsByName */function getElementsByName_iefix(tag, name) {          var elem = document.getElementsByTagName(tag);     var arr = new Array();     for(i = 0,iarr = 0; i < elem.length; i++) {          att = elem[i].getAttribute("name");          if(att == name) {               arr[iarr] = elem[i];               iarr++;          }     }     return arr;}/* Сообщение об ошибке в ходе запроса на сервер */function errFunc() {}/* Спойлер */function spoiler(obj) {    for (x in obj.childNodes) {        var node = obj.childNodes[x];        if (node.className == 'fb-post-wspoiler-text') {            if (node.style.display != 'none')            {                Effect.BlindUp(node);            } else {                Effect.BlindDown(node);            }        }    }}/* Цитирование выделенного */function insertSelected(author) {    if (document.getSelection) var selection = document.getSelection();    else if (document.selection.createRange().text) var selection = document.selection.createRange().text;    else var selection = false;        if (selection)    {        if ($('reply').innerHTML != '')        {            var caret = '\n';        }        else {            var caret = '';        }        $('reply').value += caret + '[quote author='+author+']'+selection+'[/quote]';        location.href="#fastreply";    }}