function El_Class() {};

El_Class.prototype.get = function(elID) {
	if (typeof(elID) != "string") {
		return elID;
	} else {
		return document.getElementById(elID);
	}
};

El_Class.prototype.create = function(sEl, oAttributes, oContent, oParent) {
	
	var oElement = document.createElement(sEl);
	
	var prop;
	
	for (prop in oAttributes) {
	
		if (prop == "className") {
			
			oElement.className = oAttributes[prop];
		
		} else if (prop == "htmlFor") {
		
			oElement.htmlFor = oAttributes[prop];
		
		} else {
		
			oElement.setAttribute(prop, oAttributes[prop]);
		
		}
		
	}
	
	if (oContent != null) {
		
		if (typeof(oContent) == "string") {
			
			oElement.innerHTML = oContent;
			
		} else if (typeof(oContent) == "object" && oContent.length) {
			
			var i, len;
			
			for (i = 0, len = oContent.length; i < len; i++) {
			
				if (typeof(oContent) !== "object") {
				
					oElement.innerHTML += oContent[i];
					
				} else {
				
					oElement.appendChild(oContent[i]);
					
				}
				
			}
			
		} else if (typeof(oContent) == "object") {
			oElement.appendChild(oContent);
		}

	}

	if (oParent) {
		
		oParent.appendChild(oElement);
		
	} else {
	
		return oElement;
		
	}
	
};
		
El_Class.prototype.display = function(ref, dis) {
	if (typeof(ref) == "string") {
		ref = this.get(ref);
	}
	ref.style.display = dis;
};

El_Class.prototype.visible = function(ref, dis) {
	if (typeof(ref) == "string") {
		ref = this.get(ref);
	}
	ref.style.visibility = dis;
};

El_Class.prototype.size = function(ref, w, h) {
	if (typeof(ref) == "string") {
		ref = this.get(ref);
	}
	if (w) {
		ref.style.width = w + "px";
	}
	if (h) {
		ref.style.height = h + "px";
	}
};

El_Class.prototype.xy = function(ref, x, y) {
	if (typeof(ref) == "string") {
		ref = this.get(ref);
	}
	if (y) {
		ref.style.top = y + "px";
	}
	if (x) {
		ref.style.left = x + "px";
	}
};

El_Class.prototype.getParent = function(oElement) {

	oElement = this.get(oElement);

	return oElement.parentNode;
	
};

El_Class.prototype.remove = function(oElement) {

	oElement = this.get(oElement);
	
	oElement.parentNode.removeChild(oElement);
	
};

El_Class.prototype.addEvent = function(oElement, sEvent, fEvent) {

	oElement = this.get(oElement);

	oElement["on" + sEvent] = fEvent;
	
};

El_Class.prototype.removeEvent = function(oElement, sEvent) {

	oElement = this.get(oElement);
	
	oElement["on" + sEvent] = null;
};

El_Class.prototype.setStyle = function(oElement, sAtt, sValue) {
	
	oElement = this.get(oElement);
	
	oElement.style[sAtt] = sValue;
		
};

El_Class.prototype.addClass = function(oElement, sClass) {
	
	oElement = this.get(oElement);
	
	var bClass = this.checkClass(oElement, sClass);
	
	if (!bClass) {

		var sClasses = String(oElement.className);

		oElement.className = sClasses + " " + sClass;
		
	}
	
};

El_Class.prototype.removeClass = function(oElement, sClass) {
	
	oElement = this.get(oElement);
	
	var bClass = this.checkClass(oElement, sClass);
	
	if (bClass) {
	
		var sClasses = String(oElement.className);
	
		var rClasses = sClasses.split(" ");
		
		var i, len;
		
		var temp = [];
		
		for (i = 0, len = rClasses.length; i < len; i++) {
			if (rClasses[i] != sClass) {
				temp.push(rClasses[i]);
			}
		}
		
		oElement.className = temp.join(" ");
	}
	
};

El_Class.prototype.checkClass = function(oElement, sClass) {
	
	oElement = this.get(oElement);
	
	var sClasses = String(oElement.className);
	var rClasses = sClasses.split(" ");
	
	var i, len;
	
	var bClass = false;
	
	for (i = 0, len = rClasses.length; i < len; i++) {
		if (rClasses[i] == sClass) {
			bClass = true;
			break;	
		}
	}
	
	return bClass;
};

var el = new El_Class;
var El = el;
var Element = El;
var oElement = Element;