var windowSkipClose = false;
var windowParamValue = '';
function OpenWindow(WindowName){window.radopen(null, WindowName);}
function GetElementPosition(el){   
   var parent = null;   
   var pos = {x: 0, y: 0};   
   var box;   
   if (el.getBoundingClientRect){    
      // IE   
      box = el.getBoundingClientRect();   
      var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;   
      var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;   
      pos.x = box.left + scrollLeft - 2;   
      pos.y = box.top + scrollTop - 2;   
      return pos;   
   } else if (document.getBoxObjectFor) {    
      // gecko   
      box = document.getBoxObjectFor(el);   
      pos.x = box.x - 2;   
      pos.y = box.y - 2;   
   } else {    
      // safari/opera   
      pos.x = el.offsetLeft;   
      pos.y = el.offsetTop;   
      parent = el.offsetParent;   
      if (parent != el){   
         while (parent){   
            pos.x += parent.offsetLeft;   
            pos.y += parent.offsetTop;   
            parent = parent.offsetParent;   
         }   
      }   
   }   
   if (window.opera){   
      parent = el.offsetParent;   
      while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML'){   
         pos.x -= parent.scrollLeft;   
         pos.y -= parent.scrollTop;   
         parent = parent.offsetParent;   
      }   
   } else {   
      parent = el.parentNode;    
      while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML'){   
         pos.x -= parent.scrollLeft;   
         pos.y -= parent.scrollTop;   
         parent = parent.parentNode;   
      }   
   }   
   return pos;
}
function OpenWindowWithParam (WindowName, ParamValue, element, width, horizOffset, vertOffset, overridePos){
   if (windowParamValue == ParamValue) return;
   var oWindow = GetRadWindowManager().GetWindowByName(WindowName);
   oWindow.SetContent('<html><head><link href="/common/lds2.0.css" type="text/css" rel="stylesheet"/></head><body id="popupHelp" onload="window.setTimeout(function (){parent.SetWindow(window);}, 10);"><div style="width:'+width+'px;">'+ParamValue+'</div></body></html>');
   oWindow.SetSize(5, 5);
   oWindow._iframe.style.width = "5px";
   oWindow._iframe.style.height = "5px";
   var pos = GetElementPosition(element);
   var X = pos.x;
   var Y = pos.y;
   oWindow.Show();
   if(typeof(overridePos)=='undefined' || overridePos){
      oWindow.MoveTo(X + horizOffset, Y + vertOffset + element.offsetHeight);
      oWindow.Elem = null;
   }
   else{
      oWindow.XPos = X;
      oWindow.YPos = Y;
      oWindow.Elem = element;
   }
   windowParamValue = ParamValue;
   windowSkipClose=false;
}
function GetRadWindow(oWindow){
   if (oWindow.radWindow) return oWindow.radWindow;
   else if (oWindow.frameElement.radWindow) return oWindow.frameElement.radWindow;
   return null;
}
function SetWindow(mWindow){
   var oWindow = GetRadWindow(mWindow);
   var contentDoc = (oWindow._iframe.contentDocument) ? oWindow._iframe.contentDocument : oWindow._iframe.contentWindow.document;
   var width = contentDoc.body.scrollWidth;
   var height = contentDoc.body.scrollHeight;
   oWindow._iframe.style.width = width + "px";
   oWindow._iframe.style.height = height + "px";

   if(typeof(oWindow.Elem) != 'undefined' && oWindow.Elem != null){
      var extraSpace = 8;
      var x = oWindow.XPos;
      var y = oWindow.YPos;
      var offX = oWindow.Elem.offsetHeight;
      var offY = oWindow.Elem.offsetWidth+extraSpace;
      var winWidth = GetWinWidth();
      var winHeight = GetWinHeight();
      var winScrollX = GetScrollX();
      var winScrollY = GetScrollY();
   	if(x+width+offX>winWidth+winScrollX){
	   	x=winWidth+winScrollX-width-offX;
   		if(x<0)x=0;
   	}
   	else x=x+offX;
	   if(y+height+offY>winHeight+winScrollY){
		   y=y-height-extraSpace;
   		if(y<winScrollY)y=winHeight+winScrollY-height;
	   }
   	else y=y+offY;
      oWindow.MoveTo(x, y);
   }
}
function GetWinWidth(){
    if (window.innerWidth) return window.innerWidth - 18;
    else if (document.documentElement && document.documentElement.clientWidth) 
  		return document.documentElement.clientWidth;
    else if (document.body && document.body.clientWidth) 
  		return document.body.clientWidth;
    return 0;
}
function GetWinHeight(){
   if (window.innerHeight) return window.innerHeight - 18;
  	else if (document.documentElement && document.documentElement.clientHeight) 
  		return document.documentElement.clientHeight;
  	else if (document.body && document.body.clientHeight) 
  		return document.body.clientHeight;
   return 0;
}
function GetScrollX(){
  	if (typeof window.pageXOffset == "number") return window.pageXOffset;
  	else if (document.documentElement && document.documentElement.scrollLeft)
  		return document.documentElement.scrollLeft;
  	else if (document.body && document.body.scrollLeft) 
  		return document.body.scrollLeft; 
  	else if (window.scrollX) return window.scrollX;
   return 0;
}
function GetScrollY(){
    if (typeof window.pageYOffset == "number") return window.pageYOffset;
    else if (document.documentElement && document.documentElement.scrollTop)
  		return document.documentElement.scrollTop;
  	else if (document.body && document.body.scrollTop) 
  		return document.body.scrollTop; 
  	else if (window.scrollY) return window.scrollY;
}
function HandleClick(){windowSkipClose=true;}
function CloseWindow (WindowName) {
   if (windowSkipClose || windowParamValue == '') return;
   var oWindow = GetRadWindowManager().GetWindowByName(WindowName);
   windowParamValue = '';
   if (oWindow != null ) 
	{
      oWindow.SetContent('');
   	oWindow.Close();
	}
}
