function browserCorrespondsTo() {
	if('\v' == 'v') {return "ie";}
	if(/a/[-1] == 'a') {return "firefox";}
	if(/^function \(/.test([].sort)) {return "opera";}
	if(navigator.userAgent.toLowerCase().indexOf('chrome') != -1) {return "chrome";}
	if(/a/.__proto__ == '//') {return "safari";}
	return "undefined";
}
function isBrowserCorrespondsTo(browsername) {
	switch(browsername) {
		case "ie" :      if(browserCorrespondsTo() == "ie")      {return true;} else {return false;} break;
		case "firefox" : if(browserCorrespondsTo() == "firefox") {return true;} else {return false;} break;
		case "opera" :   if(browserCorrespondsTo() == "opera")   {return true;} else {return false;} break;
		case "chrome" :  if(browserCorrespondsTo() == "chrome")  {return true;} else {return false;} break;
		case "safari" :  if(browserCorrespondsTo() == "safari")  {return true;} else {return false;} break;
		default :        return false; break;
	}
}
function getElementPosition(element) {
	var l = 0;
	var t = 0;
	var w = element.offsetWidth;
	var h = element.offsetHeight;
	while(element) {
		l += element.offsetLeft;
		t += element.offsetTop;
		element = element.offsetParent;
	}
	return {"left":l, "top":t, "width":w, "height":h};
}
function isParent(child, parent) {
	if(!child || !parent) {return false;}
	while(true) {
		if(child.parentNode) {child = child.parentNode;}
			else {return false;}
		if(child == parent) {return true;}
	}
}
function educateIE(element) {
	if(isBrowserCorrespondsTo("ie")) {
		element.addEventListener = function(type, listener, useCapture) {this.attachEvent("on" + type, listener);};
		element.removeEventListener = function(type, listener, useCapture) {this.detachEvent("on" + type, listener);};
	}
}
if(isBrowserCorrespondsTo("ie")) {window.getComputedStyle = function(element, pseudoElement) {return element.currentStyle;};}
