/*function getObjectPos(objectname) {
	var o = document.getElementById(objectname);
	var coordinates = new Object();
	var x = 0, y = 0;
	
	if (o) {
		if (o.style) {
			if (nav) {
				x = o.style.left;
				y = o.style.top;
			}
			else if (ie) {
				x = o.style.pixelLeft;
				y = o.style.pixelTop;
			}
			else {
				x = o.style.left;
				y = o.style.top;
			}
			alert(objectname + ': (x=' + x + ', y=' + y + ')');	// DEBUGGING
		}
		else {
			alert('Style is NOT defined for \'' + objectname + '\'');
		}
	}
	else {
		alert('javascript error: could not find \'' + objectname + '\'');
		return null;
	}
	
	coordinates.x = x;
	coordinates.y = y;
	return coordinates;
}*/

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

// Positions a target object at offset location relative to a reference object
function positionObjectFromReferenceOffset(target, reference, oX, oY) {
    var obj_ref = document.getElementById(reference);
    var obj_target = document.getElementById(target);
    var pos_ref_x;
    var pos_ref_y;
    
    if (obj_target) {
        pos_ref_x = findPosX(obj_ref) + oX;
        pos_ref_y = findPosY(obj_ref) + oY;
        if (pos_ref_x && pos_ref_y) {
            moveTarget(obj_target, pos_ref_x, pos_ref_y);
        }
        else {
			      //alert('JavaScript error: could not get position of \'' + obj_ref + '\'');
        }
    }
    else {
		    //alert('JavaScript error: could not find \'' + obj_target + '\'');
    }
}

// Positions a target object at same location as reference object
function positionObjectFromReference(target, reference) {
	positionObjectFromReferenceOffset(target, reference, 0, 0);
}

// Positions a target object at an exact location
function positionObject(target, xX, yY) {
    var obj_target = document.getElementById(target);

    if (obj_target) {
        moveTarget(obj_target, xX, yY);
    }
    else {
        alert('JavaScript error: could not find \'' + target + '\'');
    }
}

function checkObjectCollide(target1, target2, tolerance) {
    var obj_target1 = document.getElementById(target1);
    var obj_target2 = document.getElementById(target2);
    var result = -1;
    var pos_target2_x = 0;
    var pos_target2_y = 0;
    if (obj_target1 && obj_target2) {
        pos_target1_x = findPosX(obj_target1);
        pos_target1_y = findPosY(obj_target1);
        pos_target2_x = findPosX(obj_target2);
        pos_target2_y = findPosY(obj_target2);
        pt2_min_x = pos_target2_x - tolerance;
        pt2_max_x = pos_target2_x + tolerance;
        pt2_min_y = pos_target2_y - tolerance;
        pt2_max_y = pos_target2_y + tolerance;
        if ((pos_target1_x > pt2_min_x && pos_target1_x < pt2_max_x) && (pos_target1_y > pt2_min_y && pos_target1_y < pt2_max_y)) {
            // Too close - reposition target!
            positionObject(target2, pos_target2_x + tolerance, pos_target2_y);
            return 0;
        }
        else {
            // OK
            return 1;
        }
    }
    else {
        alert('JavaScript error: could not find both \'' + target1 + '\' and \'' + target2 + '\'');
    }
    return result;
}