function GetAbsoluteTop(elem) {
	var top = 0;
	while(elem.offsetParent) { top += elem.offsetTop; elem = elem.offsetParent;	}
	return top;
}

function GetAbsoluteLeft(elem) {
	var left = 0;
	while(elem.offsetParent) { left += elem.offsetLeft; elem = elem.offsetParent; }
	return left;
}

function ElemsOverlap(elemA, elemB) {
	var la,lb,ta,tb,wa,wb,ha,hb;
	la = GetAbsoluteLeft(elemA);  lb = GetAbsoluteLeft(elemB);
	ta = GetAbsoluteTop(elemA);   tb = GetAbsoluteTop(elemB);
	wa = elemA.offsetWidth;       wb = elemB.offsetWidth;
	ha = elemA.offsetHeight;      hb = elemB.offsetHeight;

	if(wa == 0 || wb == 0 || ha == 0 || hb == 0) return false;

	if(lb > la) {
		if((lb - la) >= wa) return false;
	} else if(lb < la) {
		if((la - lb) >= wb) return false;
	}

	if(tb > ta) {
		if((tb - ta) >= ha) return false;
	} else if(lb < la) {
		if((ta - tb) >= hb) return false;
	}

	return true;
}

function OpenWindow(url, args, target) {
	if(null == target) target = "_blank";
	var w = window.open(url, target, args);
	w.focus();
	return w;
}

function EscapeQueryTerms(qts) {
	return qts.replace(/"/g, "\\\"");
}

function SetPluginElementVisible(elem, visible) {
	elem = D_Elem(elem);
	if(UA_SAFARI) {
		elem.style.left = visible ? "0" : "8000px";
	} else if(UA_MSIE) {
	
		elem.style.display = visible ? "block" : "none";
		
		
	} else {
		elem.style.visibility = visible ? "visible" : "hidden";
	}
}
