var txt = '';
var form_name = 'addnew';
var text_name = 'content';
var Capspos = false;
var theSelection = false;

var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
var baseHeight;
var active_info = 0;

function addlink(){
  theSelection = false;
  var textarea = document.forms[form_name].elements[text_name];
  textarea.focus();
  url = prompt('Ссылка, адрес URL:', 'http://');
  if (url != 'undefined') {
    bbopen = '<a href=\"' + url + '\">';
    bbclose = '</a>';
    if ((clientVer >= 4) && is_ie && is_win) {
      theSelection = document.selection.createRange().text;
      if (theSelection){
        document.selection.createRange().text = bbopen + theSelection + bbclose;
        document.forms[form_name].elements[text_name].focus();
        theSelection = '';
        return;
      }
    } else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) {
      mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose);
      document.forms[form_name].elements[text_name].focus();
      theSelection = '';
      storeCaret(textarea);
      return;
    } else {
      mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose);
      document.forms[form_name].elements[text_name].focus();
      theSelection = '';
      storeCaret(textarea);
      return;
    }
    var caret_pos = getCaretPosition(textarea).start;
    var new_pos = caret_pos + bbopen.length;
    insert(bbopen + bbclose);
      if (!isNaN(textarea.selectionStart)){
      textarea.selectionStart = new_pos;
      textarea.selectionEnd = new_pos;
    } else if (document.selection){
      var range = textarea.createTextRange();
      range.move('character', new_pos);
      range.select();
      storeCaret(textarea);
    }
    textarea.focus();
  }
}

function addpict(){
  theSelection = false;
  var textarea = document.forms[form_name].elements[text_name];
  textarea.focus();
  url = prompt('Адрес URL картинки:', 'http://');
  if (url != 'undefined'){
    var text = '<img src=\"' + url + '\" border=\"0\">';
    if ((clientVer >= 4) && is_ie && is_win) {
      theSelection = document.selection.createRange().text;
      if (theSelection){
        document.selection.createRange().text = text + theSelection;
        document.forms[form_name].elements[text_name].focus();
        theSelection = '';
        return;
      }
    } else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) {
      mozWrap(document.forms[form_name].elements[text_name], text, '');
      document.forms[form_name].elements[text_name].focus();
      theSelection = '';
      storeCaret(textarea);
      return;
    } else {
      mozWrap(document.forms[form_name].elements[text_name], text, '');
      document.forms[form_name].elements[text_name].focus();
      theSelection = '';
      storeCaret(textarea);
      return;
    }
    var caret_pos = getCaretPosition(textarea).start;
    var new_pos = caret_pos + text.length;
    insert(text);
    if (!isNaN(textarea.selectionStart)){
      textarea.selectionStart = new_pos;
      textarea.selectionEnd = new_pos;
    } else if (document.selection){
      var range = textarea.createTextRange();
      range.move('character', new_pos);
      range.select();
      storeCaret(textarea);
    }
    textarea.focus();
  }
}

function bbcode(bbopen, bbclose){
  theSelection = false;
  var textarea = document.forms[form_name].elements[text_name];
  textarea.focus();
  if ((clientVer >= 4) && is_ie && is_win) {
    theSelection = document.selection.createRange().text;
    if (theSelection){
      document.selection.createRange().text = bbopen + theSelection + bbclose;
      document.forms[form_name].elements[text_name].focus();
      theSelection = '';
      return;
    }
  } else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) {
    mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose);
    document.forms[form_name].elements[text_name].focus();
    theSelection = '';
    storeCaret(textarea);
    return;
  } else {
    mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose);
    document.forms[form_name].elements[text_name].focus();
    theSelection = '';
    storeCaret(textarea);
    return;
  }
  var caret_pos = getCaretPosition(textarea).start;
  var new_pos = caret_pos + bbopen.length;
  insert(bbopen + bbclose);
    if (!isNaN(textarea.selectionStart)){
    textarea.selectionStart = new_pos;
    textarea.selectionEnd = new_pos;
  } else if (document.selection){
    var range = textarea.createTextRange();
    range.move('character', new_pos);
    range.select();
    storeCaret(textarea);
  }
  textarea.focus();
  return;
}

function insert(text, spaces, popup){
  var textarea;
  if (!popup) {
    textarea = document.forms[form_name].elements[text_name];
  } else {
    textarea = opener.document.forms[form_name].elements[text_name];
  }
  if (spaces) {
    text = ' ' + text + ' ';
  }
  if (!isNaN(textarea.selectionStart)){
    var sel_start = textarea.selectionStart;
    var sel_end = textarea.selectionEnd;
    mozWrap(textarea, text, '')
    textarea.selectionStart = sel_start + text.length;
    textarea.selectionEnd = sel_end + text.length;
  } else if (textarea.createTextRange && textarea.caretPos) {
    if (baseHeight != textarea.caretPos.boundingHeight) {
      textarea.focus();
      storeCaret(textarea);
    }
    var caret_pos = textarea.caretPos;
    caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
  } else {
    textarea.value = textarea.value + text;
  }
  if (!popup) {
    textarea.focus();
  }
}

function mozWrap(txtarea, open, close){
  var selLength = txtarea.textLength;
  var selStart = txtarea.selectionStart;
  var selEnd = txtarea.selectionEnd;
  var scrollTop = txtarea.scrollTop;
  if (selEnd == 1 || selEnd == 2) {
    selEnd = selLength;
  }
  var s1 = (txtarea.value).substring(0,selStart);
  var s2 = (txtarea.value).substring(selStart, selEnd)
  var s3 = (txtarea.value).substring(selEnd, selLength);
  txtarea.value = s1 + open + s2 + close + s3;
  txtarea.selectionStart = selEnd + open.length + close.length;
  txtarea.selectionEnd = txtarea.selectionStart;
  txtarea.focus();
  txtarea.scrollTop = scrollTop;
  return;
}

function getCaretPosition(txtarea){
  var caretPos = new caretPosition();
  if (txtarea.selectionStart || txtarea.selectionStart == 0){
    caretPos.start = txtarea.selectionStart;
    caretPos.end = txtarea.selectionEnd;
  } else if(document.selection){
    var range = document.selection.createRange();
    var range_all = document.body.createTextRange();
    range_all.moveToElementText(txtarea);
    var sel_start;
    for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) {
      range_all.moveStart('character', 1);
    }
    txtarea.sel_start = sel_start;
    caretPos.start = txtarea.sel_start;
    caretPos.end = txtarea.sel_start;
  }
  return caretPos;
}

function caretPosition(){
  var start = null;
  var end = null;
}

function open_window(url,wth,hgt) {
  if('full' == wth){
    pwindow = window.open(url);
  } else {
    if (wth) {
      mywidth=wth;
    } else {
      mywidth=600;
    }

    if (hgt) {
      myheight=hgt;
    } else {
      myheight=400;
    }

    pwindow = window.open(url,'Name', 'top=100,left=100,resizable=yes,width='+mywidth+',height='+myheight+',scrollbars=yes,menubar=yes')
  }
  pwindow.focus();
}

function quicksearch_toggletable(btnname,tblname){
  if (document.getElementById(tblname).style.display==''){
    quicksearch_setTableHide(btnname,tblname);
  } else {
    quicksearch_setTableShow(btnname,tblname);
  }
}

function quicksearch_setTableHide(btnname,tblname){
  document.getElementById(tblname).style.display='none';
}

function quicksearch_setTableShow(btnname,tblname){
  document.getElementById(tblname).style.display='';
}

function LoadInfo(product_id){
  document.getElementById('infowin').innerHTML = '<center>...Загрузка...</center>';
  //window.status = 'NikitaMachinery';
  var myrequest = new JsHttpRequest();
  myrequest.onreadystatechange = function () {
    if (myrequest.readystate == 4){
      if (myrequest.responseText != '') {
        document.getElementById('infowin').innerHTML = myrequest.responseText;
      } else if (myrequest.responseJS != '') {
        document.getElementById('infowin').innerHTML = myrequest.responseJS;
      }
    }
  }
  myrequest.open('GET', 'http://www.nikitamachinery.com/previewinfowin.php', true);
  myrequest.send({product: product_id});
  return false;
}

function ShowInfo(el, product_id){
  HideInfo();
  active_info = 1;
  if (is_ie) {
    x = window.event.clientX;
    y = window.event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
  } else {
    x = el.pageX;
    y = el.pageY;
    if (x < 270) x = 0;
  }
  document.getElementById('infowin').style.left = x + 20 + 'px';
  document.getElementById('infowin').style.top = y + 5 + 'px';
  setTimeout('if(active_info == 1){document.getElementById(\'infowin\').style.visibility = "visible";}', 700);
  LoadInfo(product_id);
}

function HideInfo(){
  active_info = 0;
  document.getElementById('infowin').innerHTML = '';
  document.getElementById('infowin').style.visibility = "hidden";
  document.getElementById('infowin').style.left = 0+'px';
  document.getElementById('infowin').style.top = 0+'px';
}