function $(i) {
    return document.getElementById(i);
}

function $c(i) {
    return document.createElement(i);
}

function addListener(obj, type, func) {
	if (obj.addEventListener) {
		obj.addEventListener(type, func, false);
	} else if (obj.attachEvent) {
		obj.attachEvent('on' + type, func);
	}
}

function newCookie(key, val) {
    var date = new Date((new Date()).getTime() + 1000*60*60*24*30);
    var tmp = key + '=' + escape(val) + '; expires=' + date.toGMTString() + ';';
    document.cookie = tmp;
}

function findPosition(obj,pType) {
	cur = 0;
	if(obj.offsetParent) {
		while(obj.offsetParent) {
			cur+=pType?obj.offsetLeft:obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	return cur;
}

function compareObjects(a, b) {
    for (var k in a) {
        if (a[k] != b[k]) return false;
    }

    return true;
}