// функция получения элемента DOM
function gE(id) {
	return document.getElementById(id);	
}

// функция определения позиции элемента
function getElementPosition(elemId) {
    var elem = gE(elemId);
	var w = elem.offsetWidth;
    var h = elem.offsetHeight;
	var l = 0;
    var t = 0;
	while (elem) {
        l += elem.offsetLeft;
        t += elem.offsetTop;
        elem = elem.offsetParent;
    }
    return {"left":l, "top":t, "width": w, "height":h};
}
// функция создания элемента DOM
function createElement(name) {
	var argv = createElement.arguments;
	var argc = createElement.arguments.length;
	var attrs = (argc > 1) ? argv[1] : null;
	var style = (argc > 2) ? argv[2] : null;
	var text = (argc > 3) ? argv[3] : null;
	var e = document.createElement(name);
	if (attrs) {
		for (key in attrs) {
			if (key == 'class') {
				e.className = attrs[key];
			} else if (key == 'id') {
				e.id = attrs[key];
			} else {
				e[key] = attrs[key];
			}
		}
    }
    if (style) {
        for (key in style) {
            e.style[key] = style[key];
        }
    }
    if (text) {
        e.appendChild(document.createTextNode(text));
    }
    return e;
}
// функция добавления обработчика события элементу
function addMyEvent(element, event_name, event_func) {
	if (element.addEventListener) {
		element.addEventListener(event_name, event_func, true);
	} else {
		element.attachEvent(event_name, event_func, true);
	}
}
// функция показа объекта
function eShow (id) {
	gE(id).style.display = '';
}
// функция скрытия объекта
function eHide (id) {
	gE(id).style.display = 'none';
}
// функция показа/скрытия объекта
function eChangeVis (id) {
	gE(id).style.display = gE(id).style.display == 'none' ? '' : 'none';
}

