function HideShow(el)
{
	var element = document.getElementById(el);
	
	if (element.style.display === "block")
	{
		element.style.display = "none";
        }
	else
	{	
		element.style.display = "block";
        }
}  
function checked(divs, box) {
var obj = document.getElementById(box);
if (obj.value == 0) ground = "url('images/tick.gif') no-repeat";
else ground = "url('images/crossNone.gif') no-repeat";
document.getElementById(divs).style.background = ground;
obj.value = Math.abs(obj.value - 1);
}
var closewindow = true;
var openwindow = '';
function hide_bar(id)
{
document.getElementById("win[" + id + "]").style.visibility="hidden";
}
function userOperation(urlu, comand, block, id, value1, value2, value3, value4, value5, value6)
{
        xmlHttp = getXmlHttpObject();
        divUniqal7 = document.getElementById(block);
        if ( xmlHttp != null )
  {
	var url = urlu;
	var params = "block=" + encodeURIComponent(block)
	+ "&comand=" + encodeURIComponent(comand)
	+ "&value1=" + encodeURIComponent(value1)
	+ "&value2=" + encodeURIComponent(value2)
	+ "&value3=" + encodeURIComponent(value3)
	+ "&value4=" + encodeURIComponent(value4)
        + "&id=" + encodeURIComponent(id);
        xmlHttp.onreadystatechange = newsrChanged7;
	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.send(params);
	}
}
function newsrChanged7()
{
	if ( xmlHttp.readyState == 4 )
	{
		divUniqal7.innerHTML = xmlHttp.responseText;
	}
	else
	{
		divUniqal7.innerHTML = "<span>Please, wait...</span>";
	}
}
function insertSmile(ob, val)
{
	document.getElementById(ob).value+=val;
}
function selFile(id, ob, inp)
{
        var valInt = document.getElementById(inp).value;
        if(valInt=='0')
        {
                document.getElementById(inp).value=id;
                document.getElementById(ob).style.border="2px dotted orange";
        }
        else
        {
                document.getElementById(inp).value="0";
                document.getElementById(ob).style.border="2px dotted white";  
        }
}
function getHide(form2, block)
{
	var form1=document.getElementById(form2);
        var el, elName,  value,  type, values=""; 
        for (var i = 0; i < form1.elements.length; i++)
        {
            el = form1.elements[i];
            elName = el.nodeName.toLowerCase();
            value = el.value;
            if (elName == "input")
            { 
                type = el.type.toLowerCase();
                switch (type)
                {
                        case "hidden" :
                        if(value!="0") values+=value + ",";
                        break;
                }
            }
      }
      document.getElementById(block).innerHTML += "<p>Выделенные файлы сохраненны</p>";
      document.getElementById("value4").value=values;
     //  alert( document.getElementById("value4").value);
}
////////////////////////////////////////////////////////////////////////////////////////
function showFull(url, te)
{
        var block=document.getElementById("wie");
        block.style.display="block";
        
        block.innerHTML="<span><img src=\'files/" + url + "\' alt=\'img\'></span>";
        block.innerHTML+="<div class=\'post\'><p>" + te+ "</p></div>";
}
////////////////////////////////////////////////////////////////////////////////////////
function animate(tagId,alfa,step){
 div = document.getElementById(tagId);
 var items = new Array();
 //Выбираем все рисунки слайдшоу
 for(c=i=0;i<div.childNodes.length;i++){
  if (div.childNodes[i].tagName=="IMG"){
   items[c] = div.childNodes[i];
   c++;
  }
 }
 last = items[items.length-1];
 next = items[items.length-2];
 //делаем верхний в стопке(текущий) рисунок более прозрачным
 last.style.opacity= alfa/100;
 last.style.filter= "progid:DXImageTransform.Microsoft.Alpha(opacity="+alfa+")";
 last.style.filter= "alpha(opacity="+alfa+")";

 if ((alfa-step)>0){
  //если еще не достигли полной прозрачности верхнего рисунка - продолжаем анимацию
   setTimeout("animate('"+tagId+"',"+(alfa-step)+","+step+");",50);
 }else{
  //если достигли полной прозрачности верхнего рисунка
  //делаем абсолютно непрозрачным следующий рисунок
  next.style.opacity= 1;
  next.style.filter= "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
  next.style.filter= "alpha(opacity=100)";
  // а верхний рисунок перемещаем в низ стопки
  tmp = last;
  div.removeChild(last);
  div.insertBefore(tmp,items[0]);
  tmp.style.opacity= 1;
  tmp.style.filter= "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
  tmp.style.filter= "alpha(opacity=100)";

  setTimeout( "slideSwitch('"+tagId+"',1000)", 8000 );
 }
}
//эта функция делает видимым блок с рисунками для слайдшоу (изначально он невидим, чтобы избежать мерцания во время загрузки картинок) и запускает анимацию
function slideSwitch(tagId,speed){
 div = document.getElementById('slideshow');
 if (div.style.visibility!="visible"){
      div.style.visibility = "visible";
 }
 items = div.getElementsByTagName('img');
 if (items.length>0){
  animate(tagId,100,10);
 }
}
//выжидаем пару секунд, чтобы картинки успели загрузиться... можно просто поставить на onload-событие последнего из рисунков
setTimeout( "slideSwitch('slideshow',1000);",2000 );


function emoticon(text, inp) {  
var txtarea = document.getElementById(inp);  
text = ' ' + text + ' ';  
if (txtarea.createTextRange && txtarea.caretPos) {  
var caretPos = txtarea.caretPos;  
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;  
txtarea.focus();  
} else {  
txtarea.value  += text;  
txtarea.focus();  
}  
}

function InsertObhvatData(startdata,enddata,textarea) {
 r = document.getElementById(textarea);     
 if (!r) {
  alert("Error in set text! No message window..");    
 }
 else
 {    
 r.focus();
 var r = document.selection.createRange();
 r.text= startdata + r.text + enddata;
 r.select(); 
 }
}

function get_selection_bounds(editor_window){
   var range, root, start, end

   if(editor_window.getSelection){ // Gecko, Opera
      var selection = editor_window.getSelection()
      // Выделение, вообще говоря, может состоять из нескольких областей.
      // Но при написании редактора нас это не должно заботить, берем 0-ую:
      range = selection.getRangeAt(0)
      
      start = range.startContainer
      end = range.endContainer
      root = range.commonAncestorContainer

      if(start.nodeName.toLowerCase() == "body") return null
      // если узлы текстовые, берем их родителей
      if(start.nodeName == "#text") start = start.parentNode
      if(end.nodeName == "#text") end = end.parentNode

      if(start == end) root = start
      
      return {
         root: root,
         start: start,
         end: end
      }

   }else if(editor_window.document.selection){ // MSIE
      range = editor_window.document.selection.createRange()
      if(!range.duplicate) return null
      
      var r1 = range.duplicate()
      var r2 = range.duplicate()
      r1.collapse(true)
      r2.moveToElementText(r1.parentElement())
      r2.setEndPoint("EndToStart", r1)
      start = r1.parentElement()
      
      r1 = range.duplicate()
      r2 = range.duplicate()
      r2.collapse(false)
      r1.moveToElementText(r2.parentElement())
      r1.setEndPoint("StartToEnd", r2)
      end = r2.parentElement()
      
      root = range.parentElement()
      if(start == end) root = start
      
      return {
         root: root,
         start: start,
         end: end
      }
   }
   return null // браузер, не поддерживающий работу с выделением
}
