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(typeof element.addEventListener == "undefined") {
		try {
			element.addEventListener = function(type, listener, useCapture) {this.attachEvent("on" + type, listener);};
			element.removeEventListener = function(type, listener, useCapture) {this.detachEvent("on" + type, listener);};
		} catch(e) {}
	}
}

educateIE(window);
if(typeof window.getComputedStyle == "undefined") {
	try {
		window.getComputedStyle = function(element, pseudoElement) {return element.currentStyle;};
	} catch(e) {}
}
if(typeof XMLHttpRequest == "undefined") {
	XMLHttpRequest = function() {
		var xhr;
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e1) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e2) {
				return null;
			}
		}
		return xhr;
	}
}

