<!-- Javascript starts - hide from javascript impaired browsers with this line.

var xmlAsyncSourceAvailabilityViewHttp;

var allowViewPopup = false;
var lastMouseOverElementID;
var mouseOverWaitSeconds = .35;

var dispX = 325;
var dispY = 200;



//---------------------------------------------------------------------------------------------------------
// Java Function: loadAsyncSourceAvailabilityViewWait - after a timeout, load element option section via async
// Params       : elementID,align(left,center)
// Requires     : lastMouseOverElementID, mouseOverWaitSeconds var (this js)
//---------------------------------------------------------------------------------------------------------
function loadAsyncSourceAvailabilityViewWait(elementID,align)
{
    displayHTMLID = "element"+elementID;
    
//    alert("before timeout lastMouseOverElementID:"+lastMouseOverElementID+"  elementID:"+elementID+"  displayHTMLID:"+displayHTMLID);
    initDataAvailabilityLayers(displayHTMLID);
	lastMouseOverElementID = elementID;
    sePlotAvailabilitytXY(displayHTMLID,align);
	setTimeout("loadAsyncSourceAvailabilityView('"+elementID+"','"+align+"')",mouseOverWaitSeconds*1000);
}

//---------------------------------------------------------------------------------------------------------
// Java Function: loadAsyncSourceAvailabilityView - load element option section via async
// Params       : elementID,align(left,center)
// Requires     : global xmlAsyncSourceAvailabilityViewHttp var, createXMLHttpRequest(asyncCommon.js),
//                handleAsyncSourceAvailabilityViewStateChange(this js), global baseElementOptionLoadAsyncURL var
//---------------------------------------------------------------------------------------------------------
function loadAsyncSourceAvailabilityView(elementID,align)
{
    displayHTMLID = "element"+elementID;
    
    // AC - 11/11/06
    // This method is being called directly, so set lastMouseOverElementID to elementID to force a true
    // Also force init since wait method is not called
    initDataAvailabilityLayers(displayHTMLID);
	lastMouseOverElementID = elementID;
    sePlotAvailabilitytXY(displayHTMLID,align);
    
//    alert("after timeout lastMouseOverElementID:"+lastMouseOverElementID+"  elementID:"+elementID+"  displayHTMLID:"+displayHTMLID);
	if (lastMouseOverElementID == elementID )
    {
        //alert("after timeout ==");
        allowViewPopup = true;

        //alert("isIE:"+isIE+"  isNN:"+isNN+"  isN4:"+isN4);

        var url = baseBodyContentAsyncURL + 
                  "&subAction=availability";

//        alert("URL: "+url);

        xmlAsyncSourceAvailabilityViewHttp = createXMLHttpRequest();
        xmlAsyncSourceAvailabilityViewHttp.onreadystatechange = handleAsyncSourceAvailabilityViewStateChange;
        xmlAsyncSourceAvailabilityViewHttp.open("GET", url, true);
        xmlAsyncSourceAvailabilityViewHttp.send(null);
    }

}

//---------------------------------------------------------------------------------------------------------
// Java Function: handleAsyncSourceAvailabilityViewStateChange - handle state change for element option
// Requires     : global xmlAsyncSourceAvailabilityViewHttp var
//---------------------------------------------------------------------------------------------------------
function handleAsyncSourceAvailabilityViewStateChange()
{
    // Could be null from Plot or Export doGet submit
    if ( xmlAsyncSourceAvailabilityViewHttp )
    {
        if (xmlAsyncSourceAvailabilityViewHttp.readyState==4)
        {
            if (xmlAsyncSourceAvailabilityViewHttp.status == 200)
            {
                if ( verifyAsyncErrorMessage(xmlAsyncSourceAvailabilityViewHttp.responseXML) == true )
                    return;
                
                updateAsyncSourceAvailabilityView();
            }
            else if (xmlAsyncSourceAvailabilityViewHttp.status == 998)
            {
                document.getElementById("bodyContent").innerHTML = xmlAsyncSourceAvailabilityViewHttp.responseText;
            }
            else if (xmlAsyncSourceAvailabilityViewHttp.status == 999)
            {
                window.location.href = window.location;
            }
        }
    }
}

//---------------------------------------------------------------------------------------------------------
// Java Function: updateAsyncSourceAvailabilityView - process change
// Requires     : global xmlAsyncSourceAvailabilityViewHttp var, global var chartDataAsyncRefreshSeconds
//---------------------------------------------------------------------------------------------------------
function updateAsyncSourceAvailabilityView()
{
    //alert( "Load plotSourceAvailabilityViewSection");
    
    document.getElementById("plotSourceAvailabilityViewSection").innerHTML = xmlAsyncSourceAvailabilityViewHttp.responseText;

    showSourceAvailabilityView();
}



isIE=document.all;
isNN=!document.all&&document.getElementById;
isN4=document.layers;
var dataAvailabilityViewLayer=null;

function initDataAvailabilityLayers(displayHTMLID)
{
    if ( dataAvailabilityViewLayer == null )
    {
        dataAvailabilityViewLayer=isIE ? document.all.plotSourceAvailabilityView : document.getElementById("plotSourceAvailabilityView");  
    
        sePlotAvailabilitytXY(displayHTMLID);
    }
}

function hideSourceAvailabilityView()
{
    allowViewPopup = false;
    lastMouseOverElementID = -1;
  if (isIE||isNN) dataAvailabilityViewLayer.style.visibility="hidden";
  else if (isN4) document.plotSourceAvailabilityView.visibility="hide";
  dataAvailabilityViewLayer.style.border = "0px";
}

function showSourceAvailabilityView()
{
    if ( allowViewPopup == true )
	{
        if (isIE||isNN)
         {
            dataAvailabilityViewLayer.style.top=dispY;
            dataAvailabilityViewLayer.style.left=dispX;
            dataAvailabilityViewLayer.style.visibility="visible";
        }
        else if (isN4) document.plotSourceAvailabilityView.visibility="show";
        dataAvailabilityViewLayer.style.border = "black 2px solid";
    }
}

function sePlotAvailabilitytXY(elementID,align) 
{
    offsetEl = document.getElementById(elementID);
    
    //var end = offsetEl.offsetWidth;
    //var left = calculateOffset(offsetEl.offsetParent,"offsetLeft");
    var left = calculateOffset(offsetEl,"offsetLeft");
    var top = calculateOffset(offsetEl,"offsetTop");
    var height = offsetEl["offsetHeight"];
    var width = offsetEl["offsetWidth"];

    //alert("X:"+left+"  Y:"+top+"  Wth:"+width+"  Ht:"+height);

    // Center 300 pixel window in the element width
    if ( align == "left" )
    {
        dispX = left + "px";
        dispY = (top+height) + "px"
    }
    else if ( align == "center" )
    {
        dispX = Math.round(left-(300/2)) + "px";
        dispY = (top+height) + "px"
    }
    else if ( align == "right" )
    {
        dispX = (left+width) + "px";
        dispY = top + "px"
    }
    else
    {
        dispX = left + "px";
        dispY = (top+height) + "px"
    }
    //alert("DispX:"+dispX+"  DispY:"+dispY);
}

function calculateOffset(field, attr) {
  var offset = 0;
  while(field) {
    offset += field[attr]; 
    field = field.offsetParent;
  }
  return offset;
}

function disablePlotElements(disabledValue)
{
    if ( document.contentInputForm.selectedElementIDs &&
         document.contentInputForm.selectedElementIDs.length > 0 )
    {
        for (var i=0;i<document.contentInputForm.selectedElementIDs.length;i++)
        {
            document.contentInputForm.selectedElementIDs[i].disabled = disabledValue;
        }
    }
}


// Javascript ends - finish hiding from old browers with this line -->


