function addText(f_name, el_name, wrap1, wrap2) {
        if (document.selection) { // for IE
                var str = document.selection.createRange().text;
                document.forms[f_name].elements[el_name].focus();
                var sel = document.selection.createRange();
                sel.text = wrap1 + str + wrap2;
                return;
        } else if ((typeof document.forms[f_name].elements[el_name].selectionStart) != 'undefined') { // for Mozilla
                var txtarea = document.forms[f_name].elements[el_name];
                var selLength = txtarea.textLength;
                var selStart = txtarea.selectionStart;
                var selEnd = txtarea.selectionEnd;
                var oldScrollTop = 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 + wrap1 + s2 + wrap2 + s3;
                txtarea.selectionStart = s1.length;
                txtarea.selectionEnd = s1.length + s2.length + wrap1.length + wrap2.length;
                txtarea.scrollTop = oldScrollTop;
                txtarea.focus();
                return;
        } else {
                insertText(elname, wrap1 + wrap2);
        }
}

function insertText(el_name, what) {
        if (document.forms[f_name].elements[el_name].createTextRange) {
                document.forms[f_name].elements[el_name].focus();
                document.selection.createRange().duplicate().text = what;
        } else if ((typeof document.forms[f_name].elements[el_name].selectionStart) != 'undefined') { // for Mozilla
                var tarea = document.forms[f_name].elements[el_name];
                var selEnd = tarea.selectionEnd;
                var txtLen = tarea.value.length;
                var txtbefore = tarea.value.substring(0,selEnd);
                var txtafter =  tarea.value.substring(selEnd, txtLen);
                var oldScrollTop = tarea.scrollTop;
                tarea.value = txtbefore + what + txtafter;
                tarea.selectionStart = txtbefore.length + what.length;
                tarea.selectionEnd = txtbefore.length + what.length;
                tarea.scrollTop = oldScrollTop;
                tarea.focus();
        } else {
                document.forms[f_name].elements[el_name].value += what;
                document.forms[f_name].elements[el_name].focus();
        }
}

function searchText() {
	var q=document.getElementById('q');
	var t=encodeURIComponent(q&&q.value||window.getSelection&&window.getSelection()||document.getSelection&&document.getSelection()||document.selection&&document.selection.createRange&&document.selection.createRange().text);
	if(t!='')window.open('http://www.google.com/search?hl=ru&q='+t);else window.open('http://www.google.com/'); 
	}

var callbacks=new Object();

function callJSONP(url, func, arg) {
  var cbId;
  do cbId = 'c' + Math.floor(Math.random() * 99999); while (callbacks[cbId]);
  callbacks[cbId] = function(obj) { func(arg, obj); delete callbacks[cbId]; };
  var script = document.createElement('script');
  script.src = url+(url.indexOf('?')>=0 ? '&' : '?')+'callback=callbacks.'+cbId;
  script.type = 'text/javascript';
  document.body.appendChild(script);
}

function showHTML(element, responseObject) {
  if (typeof(element)=="string") element=document.getElementById(element);
  element.innerHTML=responseObject.result;
}