﻿function Element() {}
Element.addEventListener = function(event,htmlNode,callBack) {
	if (htmlNode.addEventListener) htmlNode.addEventListener(event,callBack,false);
	else htmlNode.attachEvent('on'+event,callBack);	
}
Element.removeEventListener = function(event,htmlNode,func) {
	if (htmlNode.removeEventListener) htmlNode.removeEventListener(event,func,false);
	else htmlNode.detachEvent('on'+event,func);
}
Element.getChildByProperty = function(node,name,value) {
	var tmpNode = node.firstChild;
	while (tmpNode && tmpNode[name] != value) {
		tmpNode = tmpNode.nextSibling;
	}
	return tmpNode;
}
Element.getAbsolutePosition = function(el) {
	var x = 0;
	var y = 0;
	while (el && el != document) {
		x += el.offsetLeft;
		y += el.offsetTop;
		el = el.offsetParent;
	}
	return {x:x,y:y};
}
Function.prototype.bindAsEventListener = function(event,htmlNode,context) {
	var self = this;
	var args = Utils.sliceArguments(arguments,3);
	var func = function(evt){return self.apply(context,[evt].concat(args));}
	if (htmlNode.addEventListener) htmlNode.addEventListener(event,func,false);
	else htmlNode.attachEvent('on'+event,func);
	return func;
}