// - получение объекта по id
function $(v,o) { return((typeof(o)=='object'?o:document).getElementById(v)); }

// - получение ссылки на стиль объекта по id
//   Пример: $S('r2'+i).backgroundColor="#ffffff";
function $S(o) { return((typeof(o)=='object'?o:$(o)).style); }

// - получение имени браузера
function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); }

// - получение левого верхнего угла объекта o
function abPos(o) { var o=(typeof(o)=='object'?o:$(o)), z={X:0,Y:0}; while(o!=null) { z.X+=o.offsetLeft; z.Y+=o.offsetTop; o=o.offsetParent; }; return(z); }

// - получение координат указателя мыши. v = 'X' или 'Y'. Если нет, то возвр. объект со свойствами X и Y
function XY(e,v) { var o=agent('msie')?{'X':event.clientX+document.body.scrollLeft,'Y':event.clientY+document.body.scrollTop}:{'X':e.pageX,'Y':e.pageY}; return(v?o[v]:o); }

// - scrollXY("X") - сколько слева невидно точек в скролле, "Y" - вверху. Без параметров - объект со свойствами X Y
function scrollXY(v) { var o={'X':document.body.scrollLeft,'Y':document.body.scrollTop}; return(v?o[v]:o); }

// - удаление пробелов спереди и сзади в строке trim
function Trim(s) { s = s.replace( /^\s+/g, ''); return s.replace( /\s+$/g, '');}

// - открыть/скрыть блок. По умолчанию только id. Если нет block - то 'block' 
// иначе то что указано, например 'table-row'
function ShowHide(id,block) { 
if(typeof(block)=='undefined') block='block'; 
$S(id).display = ($S(id).display=='none'? block : 'none');
}

// - Ширина в pixel текущего окна
function getClientWidth() {
	var W = 0;
	if (document.body.clientWidth) {
		W = document.body.clientWidth;
	}
	else if (window.innerWidth) {
		W = window.innerWidth;
	}
	else if (document.documentElement.clientWidth) {
		W = document.documentElement.clientWidth;
	}
	return W;
}

// - Высота в pixel текущего окна
function getClientHeight() {
	var H = 0;
	if (document.body.clientHeight) {
		H = document.body.clientHeight;
	}
	else if (window.innerHeight) {
		H = window.innerHeight;
	}
	else if (document.documentElement.clientHeight) {
		H = document.documentElement.clientHeight;
	}
	return H;
}

// - Закрыть окно
function WinClose(){
window.open("","_self","");window.close();
if (agent('firefox')) setTimeout("alert('Настройки вашего браузера не позволяют скрипту закрыть окно. Видео как разрешить броузеру FireFox закрывать окно: http://www.pokazuha.ru/video/allow_close_widows.avi или закрывайте окно стандартной кнопкой в заголовке (крестиком).')",200);
}

// - Добавить текст в textarea в конце набираемой строки
function addtext(text,txtarea) {
	if (txtarea.createTextRange && txtarea.caretPos) {
		var caretPos = txtarea.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
		txtarea.focus();
	} else {
		txtarea.value  += text;
		txtarea.focus();
		}
}

