// установка cookie
function setCookie(name,value,expire){document.cookie=name+"="+escape(value)+"; path=/"+((expire==null)?"":("; expires="+expire.toGMTString()));}

// получения значения cookie
function getCookie(name){var search=name+"=";var c=document.cookie;if(c.length>0){offset=c.indexOf(search);if(offset!=-1){offset+=search.length;end=c.indexOf(";",offset);if(end==-1)end=c.length;return unescape(c.substring(offset,end));}}}

function getLeft(o){var res=o.offsetLeft;while(o=o.offsetParent)res+=o.offsetLeft;return res;}// Получение левой координаты элемента
function getTop(o){var res=o.offsetTop;while(o=o.offsetParent)res+=o.offsetTop;return res;}// Получение верхней координаты элемента
function getBottom(o){return o.offsetHeight+getTop(o);}// Получение нижней координаты элемента
function getRight(o){return o.offsetWidth+getLeft(o);}// Получение правой координаты элемента

/* Вывод окна */
var wins = new Array();
function ShowWin(src,dst,nc,sTop){sTop=sTop?sTop:0;if(!nc)HideAll();wins.push(src);var s=document.getElementById(src).style;var d=document.getElementById(dst);s.top=getBottom(d)+sTop;s.left=getLeft(d);shw(src);}
function HideWin(src){shw(src);wins.pop(src);return true;}	// Скрытие окна
function HideAll(){for(var i=0;i<wins.length;i++){shw(wins[i]);}wins=[];return true;}	// Скрытие всех окон
function PurgeWinCache(){wins=[];return true;}	// Очистка кэша окон
function isOpen(src){var o=document.getElementById(src).style;if (o.visibility=="visible"){return true;}else{return false;}}	// Открыто ли окно

// функция вывода/скрытия окна
function shw(src){var s=document.getElementById(src).style;if(s.visibility=="visible")s.visibility="hidden";else if(s.visibility=="hidden")s.visibility="visible";}

// функция вывода/скрытия окна (блок)
function SHWindowBlock(win, open_flag){
// win - окно
// open_flag - устанавливать куки для сохранения состояния окна, если 1
	if (document.getElementById(win)){
		var expires = new Date()
		if (document.getElementById(win).style.display == "block"){
			document.getElementById(win).style.display = "none";
			if (open_flag){
				expires.setTime(new Date().getTime())
				setCookie(win+"_open", 0, expires);
			}
		} else {
			if (document.getElementById(win).style.display == "none") {
				document.getElementById(win).style.display = "block";
				if (open_flag){
					expires.setTime(new Date().getTime() + 1000*60*60*24*365)
					setCookie(win+"_open", 1, expires);
				}
			}
		}
	}
}

/* Функция информирования о границах заполненности поля
   sym_length - текущая длина строки | field - поле, куда заносится результат | size - максимальный размер строки */
function SymCount(sym_length, field, size){var o=document.getElementById(field);if(sym_length<=size)o.innerHTML="("+sym_length+" из "+size+")";else{o.innerHTML="(<b>Ошибка! "+sym_length+" > "+size+"</b>)";return false;}}

/* Функция инициализации первоначальных значений длин полей для SymCount
   formid - идентификатор формы в массиве форм */
function SymInit(fid){for(i=0;i<=255;i++){if (document.forms[fid]){var o=document.forms[fid].elements[i];if(o){var o2=document.getElementById('c_'+o.name);if(o2){var l=o.value.length;if(l)o2.innerHTML="("+l+")";else o2.innerHTML = "";}}}}}

// Изменение фона объекта при наведении курсора
function sc(o,c,nc){o.style.background=c;o.onmouseout=function(){o.style.background=nc;}}
function sca1(o){sc(o,'#ffffaa','#f0f0f0')}	// ПУ
function sca2(o){sc(o,'#ffffaa','#e9e9e9')}	// ПУ
function scb(o){sc(o,'#fafafa','#eeeeee')}	// доска

