// by john resig
function domReady(f) {
	if (domReady.done) return f();
	if (domReady.timer) {
		domReady.ready.push(f);
	} else {
		addEvent(window, "load", isDOMReady);
		domReady.ready = [f];
		domReady.timer = setInterval(isDOMReady, 13);
	}
}

// by john resig
function isDOMReady() {
	if (domReady.done) return false;
	if (document && document.getElementsByTagName && document.getElementById && document.body) {
		clearInterval(domReady.timer);
		domReady.timer = null;
		for (var i = 0; i < domReady.ready.length; i++)
			domReady.ready[i]();
		domReady.ready = null;
		domReady.done = true;
	}
}

// by john resig
function pageX(elem) {
	return elem.offsetParent ? elem.offsetLeft + pageX( elem.offsetParent ) : elem.offsetLeft;
}

function pageY(elem) {
	return elem.offsetParent ? elem.offsetTop + pageY( elem.offsetParent ) : elem.offsetTop;
}

// addEvent/removeEvent written by Dean Edwards, 2005
// with input from Tino Zijdel
// http://dean.edwards.name/weblog/2005/10/add-event/
function addEvent(element, type, handler) {
	if (!handler.$$guid) handler.$$guid = addEvent.guid++;
	if (typeof element.events == 'undefined' || element.events == null || !element.events) element.events = {};
	var handlers = element.events[type];
	if (!handlers) {
		handlers = element.events[type] = {};
		if (element["on" + type]) {
			handlers[0] = element["on" + type];
		}
	}
	handlers[handler.$$guid] = handler;
	element["on" + type] = handleEvent;
};

addEvent.guid = 1;

function removeEvent(element, type, handler) {
	if (element.events && element.events[type]) {
		delete element.events[type][handler.$$guid];
	}
};

function handleEvent(event) {
	var returnValue = true;
	event = event || fixEvent(window.event);
	var handlers = this.events[event.type];
	for (var i in handlers) {
		this.$$handleEvent = handlers[i];
		if (this.$$handleEvent(event) === false) {
			returnValue = false;
		}
	}
	return returnValue;
};

function fixEvent(event) {
	event.preventDefault = fixEvent.preventDefault;
	event.stopPropagation = fixEvent.stopPropagation;
	return event;
};

fixEvent.preventDefault = function() {
	this.returnValue = false;
};

fixEvent.stopPropagation = function() {
	this.cancelBubble = true;
};

domReady(function() {
	var inp = document.getElementsByTagName("input");
	var sel = document.getElementsByTagName("select");
	for (var i = 0; i < inp.length; i++) {
		if (inp[i].type == 'text') {
			addEvent(inp[i], 'focus', function() {
				this.style.backgroundColor = '';
			});
		}
	}

	for (var i = 0; i < sel.length; i++) {
		addEvent(sel[i], 'focus', function() {
			this.style.backgroundColor = '';
		});
	}/*
	if (obz = document.getElementById('menu') && document.all) {
		xi = obz.offsetLeft + 40;
		yi = obz.offsetTop + 123;
		f_koor = [];
		for (si = 0; si < 10; si++) {
			f_koor[si] = [xi, yi, xi+133, yi+15];
			yi += 24;
		}
	}*/
});

function getKoor(e) {
	if (!document.all) return;
	e = e || window.event;
	e = fixEvent(e);
	self.status = getX(e) + ', ' + getY(e);
}

// john resig
function getX(e) {
	return e.pageX || e.clientX + document.body.scrollLeft;
}

// john resig
function getY(e) {
	return e.pageY || e.clientY + document.body.scrollTop;
}
