var parentOffsetLeft, parentOffsetTop;

function showPopup(parent,i,shiftX,shiftY,topShiftForIE8OnFilesListPage,leftShiftForIE8OnFilesListPage){
	var popup=document.getElementById('popup'+i);	
	if(popup!=null && parent.className!="popup"){
		popup.style.display="block";
		if(navigator.appName=="Microsoft Internet Explorer"){ 
			var ieversion=getIEVersionNumber();
			var _left, _top;
			if(ieversion>6){
				if(getIEVersionNumber()==8){
					if(parentOffsetTop==null && parentOffsetLeft==null){
						parentOffsetTop=parent.offsetTop;
						parentOffsetLeft=parent.offsetLeft;
					}
					_left=elementAllLeftForIE8(parent);
					_top=elementAllTopForIE8(parent);
					_left+=parentOffsetLeft+shiftX+leftShiftForIE8OnFilesListPage;
					_top+=shiftY+topShiftForIE8OnFilesListPage;
					if(_left!=0 && _top!=0)
						popup.style.position="absolute";
				}else{
					_left=elementLeftForIE7(parent)+shiftX;
					_top=elementTopForIE7(parent)+shiftY;
					popup.style.position="absolute";
				}
			}else if(ieversion<=6){
				_left=elementLeftForIE6(parent)+50;
				_top=elementTopForIE6(parent)+parent.offsetHeight-5;
				popup.style.position="absolute";
			}
			popup.style.top=_top+"px";	
			popup.style.left=_left+"px";
		}
		else{
			popup.style.position="absolute";
			popup.style.left=getAllParentsLeft(parent)+50+"px";
			popup.style.top=getAllParentsTop(parent)+parent.offsetHeight-5+"px";
		}
	}
}

//////////
//////////
//////////

function elementAllTopForIE8(obj){
	var top=0;
	if(obj.body==null){
		if(obj.tagName.toLowerCase()=="td" || obj.tagName.toLowerCase()=="table"){
			top=obj.offsetTop;
		}else{
		}
		top+=elementAllTopForIE8(obj.parentNode);
	}
	return top;
}

function elementTopForIE8(obj){
	return obj.offsetTop;
}

function tableParentTopForIE8(obj){
	var top=0;
	var addTop=0;
	var tableParent=null;
	if(obj.tagName.toLowerCase()=="td"){
		tableParent=obj.parentNode.parentNode.parentNode;
	}else if(obj.tagName.toLowerCase()=="tr"){
		tableParent=obj.parentNode.parentNode;
	}else if(obj.tagName.toLowerCase()=="table"){
		tableParent=obj.parentNode;
	}else{
		if(obj!=null)
			addTop=tableParentTopForIE8(obj.parentNode);
	}
	if(tableParent!=null)
		top=tableParent.offsetTop;
	return top+addTop;
}

function elementAllLeftForIE8(obj){
	var left=0;
	if(obj.body==null){
		if(obj.tagName.toLowerCase()=="table"){
			left=obj.offsetLeft;
		}else{
		}
		left+=elementAllLeftForIE8(obj.parentNode);
	}
	return left;
}

function elementLeftForIE8(obj){
	return obj.offsetLeft;
}

function tableParentLeftForIE8(obj){
	var left=0;
	var tableParent=null;
	if(obj.tagName.toLowerCase()=="td"){
		tableParent=obj.parentNode.parentNode.parentNode;
	}else if(obj.tagName.toLowerCase()=="tr"){
		tableParent=obj.parentNode.parentNode;
	}else if(obj.tagName.toLowerCase()=="table"){
		tableParent=obj.parentNode;
	}else{
		tableParent=obj;
	}
	if(tableParent!=null)
		left=tableParent.offsetLeft;
	return left;
}

//////////
//////////
//////////

//////////
//////////
//////////

function elementTopForIE7(obj){
	var top=0;
	var str="object "+obj+" is null";
	if(obj!=null){
		if(obj.className!="attach")
			top=obj.offsetTop;
		var parentTop;
		if(obj.body==null){
			if(obj.tagName.toLowerCase()=="td"){
				parentTop=elementTopForIE7(obj.parentNode.parentNode.parentNode);
			}else if(obj.tagName.toLowerCase()=="tr"){
				parentTop=elementTopForIE7(obj.parentNode.parentNode);
			}else{
				parentTop=elementTopForIE7(obj.parentNode);
			}
		}
		str="obj="+obj+"; ";
		str+="top before="+top+"; ";
		if(parentTop!=null && parentTop.toString()!="NaN"){
			top=top+parentTop;
		}
		str+="top after="+top+"; ";
		str+="class="+obj.className+"; ";
		str+="tag="+obj.tagName;
		//str+=
		//str+=
	}
	//alert(str);
	return top;
}

function elementLeftForIE7(obj){
	var left=0;
	var str="object "+obj+" is null";
	if(obj!=null){
		if(obj.className!="attach")
			left=obj.offsetLeft;
		var parentLeft;
		if(obj.body==null){
			if(obj.tagName.toLowerCase()=="td"){
				parentLeft=elementLeftForIE7(obj.parentNode.parentNode.parentNode);
			}else if(obj.tagName.toLowerCase()=="tr"){
				parentLeft=elementLeftForIE7(obj.parentNode.parentNode);
			}else{
				parentLeft=elementLeftForIE7(obj.parentNode);
			}
		}
		str="obj="+obj+"; ";
		str+="left before="+left+"; ";
		if(parentLeft!=null && parentLeft.toString()!="NaN"){
			left=left+parentLeft;
		}
		str+="left after="+left+"; ";
		str+="class="+obj.className+"; ";
		str+="tag="+obj.tagName;
		//str+=
		//str+=
	}
	//alert(str);
	return left;
}

//////////
//////////
//////////

//////////
//////////
//////////

function elementTopForIE6(obj){
	var top=0;
	var str="object "+obj+" is null";
	if(obj!=null){
		top=obj.offsetTop;
		var parentTop;
		if(obj.body==null){
			if(obj.tagName.toLowerCase()=="td"){
				parentTop=elementTopForIE6(obj.parentNode.parentNode.parentNode);
			}else if(obj.tagName.toLowerCase()=="tr"){
				parentTop=elementTopForIE6(obj.parentNode.parentNode);
			}else{
				parentTop=elementTopForIE6(obj.parentNode);
			}
		}
		str="obj="+obj+"; ";
		str+="top before="+top+"; ";
		if(parentTop!=null && parentTop.toString()!="NaN"){
			top=top+parentTop;
		}
		str+="top after="+top+"; ";
		str+="class="+obj.className+"; ";
		str+="tag="+obj.tagName;
		//str+=
		//str+=
	}
	//alert(str);
	return top;
}

function elementLeftForIE6(obj){
	var left=0;
	if(obj!=null){
		left=obj.offsetLeft;
		var parentLeft=elementLeftForIE6(obj.parentNode);
		if(parentLeft!=null && parentLeft.toString()!="NaN"){
			left=left+parentLeft;
		}
	}
	//alert("obj="+obj+"; left="+left);
	return left;
}

//////////
//////////
//////////

function getAllParentsTop(obj){
	return elementTop(obj)+tableParentTop(obj);
}

function elementTop(obj){
	return obj.offsetTop;
}

function tableParentTop(obj){
	var top=0;
	var tableParent=null;
	if(obj.tagName.toLowerCase()=="td"){
		tableParent=obj.parentNode.parentNode.parentNode;
	}else if(obj.tagName.toLowerCase()=="tr"){
		tableParent=obj.parentNode.parentNode;
	}else if(obj.tagName.toLowerCase()=="table"){
		tableParent=obj.parentNode;
	}
	if(tableParent!=null)
		top=tableParent.offsetTop;
	return top;
}

function getAllParentsLeft(obj){
	return elementLeft(obj)+tableParentLeft(obj);
}

function elementLeft(obj){
	return obj.offsetLeft;
}

function tableParentLeft(obj){
	var left=0;
	var tableParent=null;
	if(obj.tagName.toLowerCase()=="td"){
		tableParent=obj.parentNode.parentNode.parentNode;
	}else if(obj.tagName.toLowerCase()=="tr"){
		tableParent=obj.parentNode.parentNode;
	}else if(obj.tagName.toLowerCase()=="table"){
		tableParent=obj.parentNode;
	}
	if(tableParent!=null)
		left=tableParent.offsetLeft;
	return left;
}

function hidePopup(i){
	var popup=document.getElementById('popup'+i);
  if(popup!=null)
    popup.style.display="none";
}
/*
var IE = document.all ? true : false;
if (!IE)
	 document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = getMouseXY;
var tempX = 0;
var tempY = 0;

function getMouseXY(e){
	 if (IE){ 
		tempX = event.clientX + document.body.scrollLeft;
		tempY = event.clientY + document.body.scrollTop;
	}
	else{
		tempX = e.pageX;
		tempY = e.pageY;
	}	
	if (tempX < 0)
		tempX = 0;
	if (tempY < 0)
		tempY = 0;
	return true;
}
*/
function getIEVersionNumber(){
	var ua = navigator.userAgent;
	var MSIEOffset = ua.indexOf("MSIE ");
	 
	if(MSIEOffset == -1){
		return 0;
	}else{
		return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
	}
}

function popupHold(element){
	element.style.display="block";
}
