function setCookie(name, value, expires, path, domain, secure) 
    {
    document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
    }

function getCookie(name) 
    {
    var cookie = " " + document.cookie;
    var search = " " + name + "=";
    var setStr = null;
    var offset = 0;
    var end = 0;
    if (cookie.length > 0) 
        {
        offset = cookie.indexOf(search);
        if (offset != -1) 
            {
            offset += search.length;
            end = cookie.indexOf(";", offset)
            if (end == -1) 
                {
                end = cookie.length;
                }
            setStr = unescape(cookie.substring(offset, end));
            }
        }
    return(setStr);
    }
	
function deleteCookie(name, path, domain)
    {
	if (getCookie(name))   
		{
		document.cookie = name + "=" +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		"; expires=Thu, 01-Jan-70 00:00:01 GMT"
        }
    }			 

/**
 * @author dRew
   @description Активирует на странице элементы, идентификаторы которых переданы в массиве idList.
*/
function activateElements(idList, idText)
    {
    var textarea = document.getElementById(idText);
    if(textarea.value.length == 0)
       return;
    var i = 0;
    for(i = 0; i < idList.length; ++i)
        {
        var element = document.getElementById(idList[i]);
        if(!element)
            return;
        element.disabled = false;
        }
    }

/**
 * @author dRew
   @description Запрашивает разрешение на удаление множества объектов из списка.
*/
function askForMultipleDel(entity, id)
    {
    var i = 0;
    var selectedForDel = false;
    while(document.getElementById(id+i+'Delete'))
       {
       var element = document.getElementById(id+i+'Delete');
       if(true == element.checked)
           {
           selectedForDel = true;
           break;
           }
       ++i; 
       }
    if(entity.indexOf('ь') == entity.length-1 || 
	   entity.indexOf('я') == entity.length-1)
       {
       entity = entity.substr(0, entity.length-1);
       pluralEntity = entity +'и';
       }
    else
        pluralEntity = entity +'ы';
    if (!selectedForDel) 
       {
       alert('Ничего не выбрано! Выберите ' + pluralEntity + ' для удаления.');
       return false;
       }		
    return confirm('Удалить ' + pluralEntity + '?');
    }
    
/**
 * @author dRew
   @description Запрашивает разрешение на удаление одного объекта.
*/	
function askForDel(entity, url)
    {
    if(entity.indexOf('я') == entity.length-1)
       {
       entity = entity.substr(0, entity.length-1);
       entity = entity +'ю';
       }		
    if(!confirm('Удалить ' + entity + '?'))
       return false;
    javascript:location.href = url;
    return false;
    }
	
/**
 * @author dRew
    @description Отправляет указанную форму.
 */
function submitForm(formId, action, elementId)
    {
    var form = document.getElementById(formId);
    if(!form)
       return;
    var element = document.getElementById(elementId);
    if(!element)
       return;
    element.value = true;
    form.action = action;
    form.submit();
    }
	
/**
 * @author dRew
   @description Отображает/прячет блок с веткой дерева.
*/  
function toggleBlock(id, remember)
    {
    var block = document.getElementById('children_of_'+id);
    if(!block) 
       return;  
    if(block.style.display == 'block')
       hideBlock(id, remember);
    else 
       showBlock(id, remember);
    }

/**
 * @author dRew
   @description Отображает блок с веткой дерева.
*/  
function showBlock(id, remember)
    {
    var block = document.getElementById('children_of_'+id);
    if(!block) 
       return;
    block.style.display = 'block';
    block.style.visibility = 'visible'; 
    var img = document.getElementById('icon_'+id);
    img.src = '/img/minus.gif';
    if(true == remember) 	
        setCookie('children_of_'+id, 'open');
    }

/**
 * @author dRew
   @description Прячет блок с веткой дерева.
*/      
function hideBlock(id, remember)
    {
    var block = document.getElementById('children_of_'+id);
    if(!block) 
       return;
    block.style.display = 'none';
    block.style.visibility = 'hidden';
    var img = document.getElementById('icon_'+id);
    img.src = '/img/plus.gif';
	if(true == remember) 
	   deleteCookie('children_of_'+id); 
    }
	
function checkBlock(id)
    {   
    if(getCookie('children_of_'+id) == 'open')
        {
        showBlock(id);
        }
    }
	
function setShowAll()
    {
    href = document.location.href;
    if(-1 != href.lastIndexOf(':showAll'))
    return false;
    if(href.length - 1 != href.lastIndexOf('/'))
    href += '/';
    href += '?showAll';
    document.location.href = href;
    return false;
    }	

function setValue(id, value)
    {
	element = document.getElementById(id);
	if(!element)
	   return;
	element.value = value;
	}

function toggleTopic(id)
    {
	element = document.getElementById('Document'+id+'SectionId');
	if(!element)
        return;
	topic = document.getElementById('topics_of_'+id);
	if(!topic)
        return;	
	if(true == element.checked)
        {
		topic.className = 'visible';
		}
    else    
		{
		topic.className = 'hidden';	
		}		
	}
