scriptroot = "/";

function shmenu(elmid, thiselm) {
  var elm = document.getElementById(elmid);
  if (elm) {
    elm.style.display = (elm.style.display=="none" ? "block" : "none");
    thiselm.className = (elm.style.display=="none" ? "category closed" : "category open");
    return false;
  } else {
    return true;
  }
}

function ask(url) {
 if (confirm ('Вы уверены?!'))
  self.location=url;
}

function toggle_b(eid) {
 if (document.getElementById(eid).style.display == 'none') {
   document.getElementById(eid).style.display='block';
 } else {
   document.getElementById(eid).style.display='none';
 }
}

function setquotedstr(str) {
 var curval = document.getElementById("commentbody").value;
 if (str != "") {
   str = str.replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, '"');
   str = str.replace(/(^|\#nl\#)/g, "$1> ").replace(/\#nl\#/g, "\r\n");
   if (curval == "") {
     document.getElementById("commentbody").value = str + "\r\n";
   } else {
     document.getElementById("commentbody").value = curval + "\r\n" + str + "\r\n";
   }
 }
}

function getSelectedText() {
 if (window.getSelection) {
    return window.getSelection().toString();
 }
 else if (document.getSelection) {
    return document.getSelection();
 }
 else if (document.selection) {
    return document.selection.createRange().text;
 }
}

function citecomment(id) {
 var cursubj = document.getElementById("subj-"+id).innerHTML;
 if (cursubj == "") cursubj = document.getElementById("author-"+id).innerHTML;
 if (cursubj.toLowerCase().substr(0, 3) == 're:') {
   document.getElementById("subj").value = cursubj;
 } else {
   document.getElementById("subj").value = "Re: " + cursubj;
 }
 setquotedstr(document.getElementById("combody-"+id).innerHTML);
}

function citeselected() {
 var str = getSelectedText();
 str = str.replace(/([\r\n]+)/g, '#nl#');
 setquotedstr(str);
}


function replypm(id, id_to) {
 var formcont = document.getElementById("replyform");
 if ((document.getElementById("in_reply").value == id) && (formcont.style.display == "block")) {
   formcont.style.display = "none";
 } else {
   var cursubj = document.getElementById("subj-"+id).innerHTML;
   if (cursubj.toLowerCase().substr(0, 3) == 're:') {
     document.getElementById("subj").value = cursubj;
   } else {
     document.getElementById("subj").value = "Re: " + cursubj;
   }
   setquotedstr("");
   document.getElementById("pm-"+id).appendChild(formcont);
   document.getElementById("id_to").value = id_to;
   document.getElementById("in_reply").value = id;
   formcont.style.display = "block";
 }
}

function newpm(id_to) {
 var formcont = document.getElementById("replyform");
 if ((document.getElementById("id_to").value == id_to) && (formcont.style.display == "block")) {
   formcont.style.display = "none";
 } else {
   document.getElementById("subj").value = "";
   setquotedstr("");
   document.getElementById("pm-"+id_to).appendChild(formcont);
   document.getElementById("id_to").value = id_to;
   formcont.style.display = "block";
 }
}


function insert_text(open, close, msgfield)
{
    var bSelStart = msgfield.selectionStart, text;
    var st = msgfield.scrollTop, sh = msgfield.scrollHeight;

    // IE support
    if (document.selection && document.selection.createRange && msgfield.createTextRange)
    {
        if (document.selection.createRange().text) msgfield.caretPos = document.selection.createRange().duplicate(); else msgfield.caretPos = 0;
    }

    if (document.selection && document.selection.createRange && !bSelStart && msgfield.caretPos)
    {
        text = open;
        if (close != "") text += document.selection.createRange().text;
        text += close;
        msgfield. caretPos. text = text;
    }

    // Moz support
    else if (bSelStart || msgfield.selectionStart == '0')
    {
        var startPos = msgfield.selectionStart;
        var endPos = msgfield.selectionEnd;
        text = msgfield.value.substring(0, startPos) + open;
        if (close != "") text += msgfield.value.substring(startPos, endPos);
        text += close + msgfield.value.substring(endPos, msgfield.value.length);
        msgfield.value = text;
		endPos = close. length? endPos: startPos;
		msgfield.selectionStart = endPos + open.length + close.length;
		msgfield.selectionEnd = endPos + open.length + close.length;
    }

    // Fallback support for other browsers
    else
    {
        msgfield.value += open + close;
    }
    msgfield. scrollTop = st + msgfield. scrollHeight - sh;
    return;
}

function textattr(attr, id) {
	insert_text("[" + attr + "]", "[/" + attr + "]", document.getElementById(id));
}

function addoltextarea(ol, name) {
  var d = document.getElementById(ol);
  var ta = document.createElement('TEXTAREA');
  ta.rows = '3';
  ta.cols = '30';
  ta.name = name;
  var li = document.createElement('LI');
  li.appendChild(ta);
  d.appendChild(li);
}



function defPosition(event) {
      var x = y = 0;
      if (document.attachEvent != null) {
            x = window.event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
            y = window.event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
      } else if (!document.attachEvent && document.addEventListener) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
      }
      return {x:x, y:y};
}

var mouseX, mouseY;

document.onmousemove = function(event) {
      var event = event || window.event;
      mouseX = defPosition(event).x;
      mouseY = defPosition(event).y;
}

function shhint(title) {
 var d = document.getElementById("popuphint");
 var offsy = mouseY - d.clientHeight;
 if ((d.style.display != "block") || (d.innerHTML != title)) {
   d.innerHTML = title;
   d.style.left = (mouseX) + "px";
   document.body.appendChild(d);
   d.style.display = "block";
   var offsy = mouseY - d.clientHeight;
   d.style.top = (offsy) + "px";
 }
 window.clearTimeout(window.timeout1);
 d.onmouseout = function() {
    window.timeout1 = window.setTimeout("hidehint()",250);
 }
 d.onmouseover = function() {
    shhint(title);
 }
}

function shmovinghint(title, align) {
 var d = document.getElementById("popuphint");
 var offsx = (align == "left" ? d.clientWidth : -10);
 var offsy = mouseY - d.clientHeight;
 if ((d.style.display != "block") || (d.innerHTML != title)) {
   d.innerHTML = title;
   d.style.left = (mouseX-offsx-5) + "px";
   document.body.appendChild(d);
   d.style.display = "block";
   var offsy = mouseY - d.clientHeight;
   d.style.top = offsy + "px";
 } else {
   d.style.top = offsy + "px";
   d.style.left = (mouseX-offsx-5) + "px";
 }
}

function hidehint() {
 var d = document.getElementById("popuphint");
 d.style.display = "none";
 d.onmouseover = null;
}


function toggle_commform(aelm, id) {
 if (document.getElementById("commentblock-"+id).style.display == 'block') {
   document.getElementById("commentblock-"+id).style.display='none';
   aelm.className = "";
 } else {
   document.getElementById("commentblock-"+id).style.display='block';
   aelm.className = "show";
 }
}



function createRequest() {
  var request;
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = false;
      }
    }
  }
  return request;
}

function ajaxlogin(login, pass) {
  var request = createRequest();
  var url = scriptroot+"include/ajax-login.php?act=login&login=" + encodeURIComponent(login) + "&pass=" + encodeURIComponent(pass) + "&rnd="+Math.random();
  request.open("GET", url, true);
  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      if (request.status == 200) {
        var resp = request.responseText;
        if (resp.substr(0, 6) == 'Error|') {
          var resparr = resp.split("|");
          alert(resparr[1]);
        } else {
          document.getElementById("userinfo").innerHTML = resp;
          var divs = document.getElementsByTagName('DIV');
          for (var i = 0; i < divs.length; i++) {
            if (divs[i].className == 'onlyreg') divs[i].style.display = "block";
            if (divs[i].className == 'onlynotreg') divs[i].style.display = "none";
          }
        }
      }
    }
  }
  request.send(null);
}

function ajaxlogout() {
  var request = createRequest();
  var url = scriptroot+"include/ajax-login.php?act=logout" + "&rnd="+Math.random();
  request.open("GET", url, true);
  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      if (request.status == 200) {
        var resp = request.responseText;
        document.getElementById("userinfo").innerHTML = "";
        var divs = document.getElementsByTagName('DIV');
        for (var i = 0; i < divs.length; i++) {
            if (divs[i].className == 'onlyreg') divs[i].style.display = "none";
            if (divs[i].className == 'onlynotreg') divs[i].style.display = "block";
        }
      }
    }
  }
  request.send(null);
}

function delpm(id, direction) {
  if (confirm("Вы уверены?")) {
    var request = createRequest();
    var url = scriptroot+"include/ajax-pm.php?act=delete&id=" + id + "&direction=" + encodeURIComponent(direction) + "&rnd="+Math.random();
    request.open("GET", url, true);
    request.onreadystatechange = function() {
      if (request.readyState == 4) {
        if (request.status == 200) {
          var resp = request.responseText;
          if (resp.substr(0, 2) == 'OK') {
            document.getElementById("pmfull-"+id).style.display = "none";
          } else {
            alert(resp);
          }
        }
      }
    }
    request.send(null);
  }
}

function addcontact(id) {
  var request = createRequest();
  var url = scriptroot+"include/ajax-pm.php?act=addcontact&id=" + id + "&rnd="+Math.random();
  request.open("GET", url, true);
  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      if (request.status == 200) {
        var resp = request.responseText;
        if (resp.substr(0, 2) == 'OK') {
          alert("Контакт добавлен");
        } else {
          alert(resp);
        }
      }
    }
  }
  request.send(null);
}

function delcontact(id, type) {
  if (confirm("Вы уверены?")) {
    var request = createRequest();
    var url = scriptroot+"include/ajax-pm.php?act=delcontact&id=" + id + "&type=" + type + "&rnd="+Math.random();
    request.open("GET", url, true);
    request.onreadystatechange = function() {
      if (request.readyState == 4) {
        if (request.status == 200) {
          var resp = request.responseText;
          if (resp.substr(0, 2) == 'OK') {
            document.getElementById("pm-"+id).style.display = "none";
          } else {
            alert(resp);
          }
        }
      }
    }
    request.send(null);
  }
}

function voteidea(id, rating) {
  var request = createRequest();
  var url = scriptroot+"include/ajax-vote.php?act=voteidea&id=" + id + "&rating=" + rating + "&rnd="+Math.random();
  request.open("GET", url, true);
  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      if (request.status == 200) {
        var resp = request.responseText;
        if (resp.substr(0, 2) == 'OK') {
          var resparr = resp.split("|");
          document.getElementById("foridea-"+id).innerHTML = resparr[1];
          document.getElementById("againstidea-"+id).innerHTML = resparr[2];
          if (parseInt(resparr[1]) >= parseInt(resparr[2])) {
            document.getElementById("foridea-"+id).className = "vred";
          } else {
            document.getElementById("foridea-"+id).className = "vgray";
          }
        } else {
          alert(resp);
        }
      }
    }
  }
  request.send(null);
}

function delcomment(id, table) {
  if (confirm("Вы уверены?")) {
    var request = createRequest();
    var url = scriptroot+"include/ajax-pm.php?act=delcomment&id=" + id + "&table=" + table + "&rnd="+Math.random();
    request.open("GET", url, true);
    request.onreadystatechange = function() {
      if (request.readyState == 4) {
        if (request.status == 200) {
          var resp = request.responseText;
          if (resp.substr(0, 2) == 'OK') {
            document.getElementById("dcomment-"+id).style.display = "none";
          } else {
            alert(resp);
          }
        }
      }
    }
    request.send(null);
  }
}

function unlinkidea(id) {
  if (confirm("Вы уверены?")) {
    var request = createRequest();
    var url = scriptroot+"include/ajax-pm.php?act=unlinkidea&id=" + id + "&rnd="+Math.random();
    request.open("GET", url, true);
    request.onreadystatechange = function() {
      if (request.readyState == 4) {
        if (request.status == 200) {
          var resp = request.responseText;
          if (resp.substr(0, 2) == 'OK') {
            document.getElementById("idea-"+id).style.display = "none";
          } else {
            alert(resp);
          }
        }
      }
    }
    request.send(null);
  }
}

function ideawin(id, value, elm) {
  if (confirm("Вы уверены? Средства будут автоматически переданы автору идеи. Вы не сможете отменить победу или выбрать другого победителя.")) {
    var request = createRequest();
    var url = scriptroot+"include/ajax-pm.php?act=ideawin&id=" + id + "&value=" + value + "&rnd="+Math.random();
    request.open("GET", url, true);
    request.onreadystatechange = function() {
      if (request.readyState == 4) {
        if (request.status == 200) {
          var resp = request.responseText;
          if (resp.substr(0, 2) == 'OK') {
            if (value == 1) {
              elm.style.display = "none";
            }
          } else {
            alert(resp);
          }
        }
      }
    }
    request.send(null);
  }
}

function buyidea(id, elm) {
  if (confirm("Вы уверены? Средства будут автоматически переведены на счет автора идеи. Вы не сможете вернуть деньги.")) {
    var request = createRequest();
    var url = scriptroot+"include/ajax-pm.php?act=buyidea&id=" + id + "&rnd="+Math.random();
    request.open("GET", url, true);
    request.onreadystatechange = function() {
      if (request.readyState == 4) {
        if (request.status == 200) {
          var resp = request.responseText;
          if (resp.substr(0, 2) == 'OK') {
            elm.style.display = "none";
            window.location.reload(true);
          } else {
            alert(resp);
          }
        }
      }
    }
    request.send(null);
  }
}