// check browsers
var ua = navigator.userAgent;
var opera = /opera [56789]|opera\/[56789]/i.test(ua);
var ie = !opera && /MSIE/.test(ua);
var ie50 = ie && /MSIE 5\.[01234]/.test(ua);
var ie6 = ie && /MSIE [6789]/.test(ua);
var ieBox = ie && (document.compatMode == null || document.compatMode != "CSS1Compat");
var moz = !opera && /gecko/i.test(ua);
var nn6 = !opera && /netscape.*6\./i.test(ua);

/* Position functions */
function getInnerLeft(el) {
	if (el == null) return 0;
	if (ieBox && el == document.body || !ieBox && el == document.documentElement) return 0;
	return getLeft(el) + getBorderLeft(el);
}

function getLeft(el) {
	if (el == null) return 0;
	return el.offsetLeft + getInnerLeft(el.offsetParent);
}

function getInnerTop(el) {
	if (el == null) return 0;
	if (ieBox && el == document.body || !ieBox && el == document.documentElement) return 0;
	return getTop(el) + getBorderTop(el);
}

function getTop(el) {
	if (el == null) return 0;
	return el.offsetTop + getInnerTop(el.offsetParent);
}

function getBorderLeft(el) {
	return ie ?
		el.clientLeft :
		parseInt(window.getComputedStyle(el, null).getPropertyValue("border-left-width"));
}

function getBorderTop(el) {
	return ie ?
		el.clientTop :
		parseInt(window.getComputedStyle(el, null).getPropertyValue("border-top-width"));
}

function opera_getLeft(el) {
	if (el == null) return 0;
	return el.offsetLeft + opera_getLeft(el.offsetParent);
}

function opera_getTop(el) {
	if (el == null) return 0;
	return el.offsetTop + opera_getTop(el.offsetParent);
}

function getOuterRect(el) {
	return {
		left:	(opera ? opera_getLeft(el) : getLeft(el)),
		top:	(opera ? opera_getTop(el) : getTop(el)),
		width:	el.offsetWidth,
		height:	el.offsetHeight
	};
}

// mozilla bug! scrollbars not included in innerWidth/height
function getDocumentRect(el) {
	return {
		left:	0,
		top:	0,
		width:	(ie ?
					(ieBox ? document.body.clientWidth : document.documentElement.clientWidth) :
					window.innerWidth
				),
		height:	(ie ?
					(ieBox ? document.body.clientHeight : document.documentElement.clientHeight) :
					window.innerHeight
				)
	};
}

function getScrollPos(el) {
	return {
		left:	(ie ?
					(ieBox ? document.body.scrollLeft : document.documentElement.scrollLeft) :
					window.pageXOffset
				),
		top:	(ie ?
					(ieBox ? document.body.scrollTop : document.documentElement.scrollTop) :
					window.pageYOffset
				)
	};
}
/* end position functions */


function popup(objDiv,objClick,objContainer){
	var divLeft = 0;
	var divTop = 0;
	var piRect;
	
	if (!objClick) {
		piRect = getOuterRect(objClick);
	}
	else if (objClick.left != null && objClick.top != null && objClick.width != null && objClick.height != null) {	// got a rect
		piRect = objClick;
	}
	else
		piRect = getOuterRect(objClick);
		
	divLeft = piRect.left;
	divTop = piRect.top + piRect.height;
	
	cScrollTop = 0;
	if(objContainer!=null)
		cScrollTop = objContainer.scrollTop;
	divTop = divTop - cScrollTop;
	with( objDiv.style ) {
		display = "block";
		position = "absolute";
		left = divLeft;
		top = divTop; 
	}

}

function popup_left(objDiv,objClick,objContainer){
	var divLeft = 0;
	var divTop = 0;
	var piRect;
	
	if (!objClick) {
		piRect = getOuterRect(objClick);
	}
	else if (objClick.left != null && objClick.top != null && objClick.width != null && objClick.height != null) {	// got a rect
		piRect = objClick;
	}
	else
		piRect = getOuterRect(objClick);

	divWidth = objDiv.style.width.replace("px","");
	divLeft = piRect.left-divWidth;
	if(divLeft<0) divLeft=0;
	
	cScrollTop = 0;
	if(objContainer!=null)
		cScrollTop = objContainer.scrollTop;
		
	divTop = piRect.top - cScrollTop;
	with( objDiv.style ) {
		display = "block";
		position = "absolute";
		left = divLeft;
		top = divTop; 
	}
}

function unpop( objDiv ) { 
	objDiv.style.display = "none"; 
}


function popup_nosetpos(objDiv){
	with( objDiv.style ) {
		display = "block";
		position = "absolute";
	}
}


