function gebi(id) {return document.getElementById(id);}

function gebc(searchClass, tag, node) {
    var classElements = new Array();
    if (node == null) node = document;
    if (tag == null) tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
    for (i = 0, j = 0; i < elsLen; i++) 
        {
        if (pattern.test(els[i].className)) 
                {
                classElements[j] = els[i];
                j++;
                }
        }
    return classElements;
}  


// Определение размеров видимой области окна браузера
function screenSize() {
	var w, h;
	w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
	h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
	return {w:w, h:h};
}

// Опрелеляем top - left координаты блока obj
function absPosition(obj) {
	this.x = 0;
	this.y = 0;
    while(obj) {
		this.x += obj.offsetLeft;
		this.y += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return {x:this.x,y:this.y};
}

// Определение координат мыши
function defPosition(event) {
      var x = y = 0;
      if (document.attachEvent != null) { // Internet Explorer & Opera
            x = window.event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
            y = window.event.clientY + (document.documentElement.scrollTop  ? document.documentElement.scrollTop  : document.body.scrollTop);
      }
      if (!document.attachEvent && document.addEventListener) { // Gecko
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
      }
      return {x:x, y:y};
}

// Предотвращение всплывания событий
function cancelBubbling(evt) {
      evt = evt || window.event;
      evt.cancelBubble = true;
}

// Добавление событий
function addHandler(object, event, handler, useCapture) {
      if (object.addEventListener) {
            object.addEventListener(event, handler, useCapture ? useCapture : false);
      } else if (object.attachEvent) {
            object.attachEvent('on' + event, handler);
      } else alert("Add handler is not supported");
}

// Удаление событий
function removeHandler(object, event, handler) {
	if (object.removeEventListener) {
		object.removeEventListener(event, handler, false);
	} else if (object.detachEvent) {
		object.detachEvent('on' + event, handler);
	} else alert("Remove Handler is not supported");
}

// Аналог php-шного implode
function implode(delim, arr) {
	var out = "";
	for (var i = 0; i < arr.length; i++) {
		out += arr[i] + (i != (arr.length - 1) ? delim : "");
	}
	return out;
}

// Установка cookie
function setCookie(name, value) {
	var valueEscaped = escape(value);
	var expiresDate = new Date(); // get current time
	expiresDate.setTime(expiresDate.getTime() + 365 * 24 * 60 * 60 * 1000); // add 1 year lifetime
	var expires = expiresDate.toGMTString(); // get formatted date string
	var newCookie = name + "=" + valueEscaped + "; path=/; expires=" + expires;
	if (valueEscaped.length <= 4000) document.cookie = newCookie + ";";
}

// Получение cookie
function getCookie(name) {
	var prefix = name + "=";
	var cookieStartIndex = document.cookie.indexOf(prefix);
	if (cookieStartIndex == -1) return null;
	var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
	if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
	return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

// Прелоад картинки
function newImage(path) {
	var image = new Image();
	image.src = path;
	return image;
}

// Определение высоты скролла
function defScroll() {
	var x = y = 0;
	x = (window.scrollX) ? window.scrollX : (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
	y = (window.scrollY) ? window.scrollY : (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	return {x:x, y:y};
}




// Разбирает get параметры из адресной строки и возвращает при наличии значение запрошенного параметра или хеш параметров
function getGet(param)
{
	var urlSS = new String(window.location);
	var isGet = urlSS.indexOf('?'); 
	if (isGet != -1) 
	{
		var getOptL = urlSS.length;
		var getOpt = urlSS.substr(isGet + 1, getOptL - isGet);
		var getOptArr = getOpt.split('&');
		var getOptArrL = getOptArr.length;
		var getParams = {};
		for (var i = 0; i < getOptArrL; i++)
		{
			var tmp = getOptArr[i].split('=');
			getParams[tmp[0]] = tmp[1];
		}
		if (param && param != 'undefined')
		{
			if (getParams[param]) return getParams[param];
		}
		else
		{
			return getParams;
		}
	}
	else return false;
}

