function getElementX(ref) {
	temp = getElementPosition(ref);
	return temp['left'];
}

function getElementY(ref) {
	temp = getElementPosition(ref);
	return temp['top'];

	return ref.offsetTop;
}

function getElementPosition(elemID) {
	//var offsetTrail = document.getElementById(elemID);
	var offsetTrail = elemID;
	var offsetLeft = 0;
	var offsetTop = 0;
	while (offsetTrail) {
		offsetLeft += offsetTrail.offsetLeft;
		offsetTop  += offsetTrail.offsetTop;
		offsetTrail = offsetTrail.offsetParent;
	}
	if (navigator.userAgent.indexOf("Mac") != -1 &&
		typeof document.body.leftMargin != "undefined") {
		offsetLeft += document.body.leftMargin;
		offsetTop += document.body.topMargin;
	}
	return {left:offsetLeft, top:offsetTop};
}

function dumpProp(obj, parent, level) {
	if(!level) level = 0;
	//alert(level);
	targetWindow = open('', 'targetWindow', 'dependent=yes,width=400,resizable=yes,scrollbars=yes');
	var msg = '';
	for(var i in obj){
		var color = "black";
		if(typeof obj[i] == "object") var color = "red";
		if(typeof obj[i] == "string") var color = "green";
		if(typeof obj[i] == "number") var color = "blue";
		if(parent){
			msg += parent + "." + i + "=>" + obj[i]+ '<br>';
		}else{
			msg += i + '=>' + '<font color="'+color+'">' + obj[i] + '; ' + typeof obj[i] + '<br>';
		}
		msg += '</font>';
		// If this property (i) is an object, then recursively process the object
		/* if(typeof obj[i] == "object" && i.search('parent')<0){
			//document.write('<b>'+i+'</b>'+i.search('parent')+'<br>');
			if (parent){
				dumpProp(obj[i], '<b>' + parent + "." + i + '</b>', level+1);
			}else{
				dumpProp(obj[i], '<b>' + i + '</b>', level+1);
			}
		} */
	}
	targetWindow.document.writeln(msg);
	targetWindow.moveBy(500,0);
}