function addListener(obj, type, callback){
    if(obj.addEventListener){
        obj.addEventListener(type, callback, false);
    }else if(obj.attachEvent){
        obj.attachEvent(type, callback);
    }
}

function getEventTarget(e){
    e = e || window.event;
    var target = (typeof e.target != "undefined") ? e.target : e.srcElement;

    return target;
}

function getElement(elementId){
    return document.getElementById(elementId);
}

function cleanElement(element, tag){
	
	while(element.firstChild){
		var first = element.firstChild;
		
		first.parentNode.removeChild(first);
	}
}

function swapImage(image, newImageURL){
    image.src = newImageURL;
}

function getWindowSize(){
    var w = 0;
	var h = 0;

	//IE
	if(!window.innerWidth){
		//strict mode
		if(!(document.documentElement.clientWidth == 0)){
			w = document.documentElement.clientWidth;
			h = document.documentElement.clientHeight;
		}
		//quirks mode
		else{
			w = document.body.clientWidth;
			h = document.body.clientHeight;
		}
	}
	//w3c
	else{
		w = window.innerWidth;
		h = window.innerHeight;
	}

    return {W:w, H:h};
}

function getObjectX(element){
	var returnValue = 0;

	while(element != null) {
		returnValue += element.offsetLeft;
		element = element.offsetParent;
	}
	
	return returnValue;
}

function getObjectY(element){
	var returnValue = 0;

	while(element != null) {
		returnValue += element.offsetTop;
		element = element.offsetParent;
	}
	
	return returnValue;
}
