﻿// Globals
// - Children 
var g_bcklnk_parent_arrChildren = new Array();

// Children registration
// - Maintanence
function bcklnk_parent_compactChildrenArray( startIndex )
{
  if ( isNaN( startIndex ) ) startIndex = 0;
  if ( startIndex >= g_bcklnk_parent_arrChildren.length ) return;
  if ( startIndex < 0 ) startIndex = 0;
  
  var nextFreeIndex = startIndex;
  for ( var i = startIndex; i < g_bcklnk_parent_arrChildren.length; i++ )
  {
    var child = g_bcklnk_parent_arrChildren[i];
    if ( null != child )
      g_bcklnk_parent_arrChildren[nextFreeIndex++] = child;
  }
  g_bcklnk_parent_arrChildren.length = nextFreeIndex;
}
function bcklnk_parent_dropChildren()
{
  for ( var i = 0; i < g_bcklnk_parent_arrChildren.length; i++ )
  {
    var current = g_bcklnk_parent_arrChildren[i];
    current.bcklnk_child_parentIsUnavailable();
  }
  g_bcklnk_parent_arrChildren.length = 0;
}
// - Callbacks
function bcklnk_parent_registerChildCallback( childWindow )
{  
  g_bcklnk_parent_arrChildren[g_bcklnk_parent_arrChildren.length] = childWindow;
}
function bcklnk_parent_unregisterChildCallback( childWindow )
{  
  for ( var i = 0; i < g_bcklnk_parent_arrChildren.length; i++ )
  {
    var current = g_bcklnk_parent_arrChildren[i];
    if ( current == childWindow )
    {
      g_bcklnk_parent_arrChildren[i] = null;
      bcklnk_parent_compactChildrenArray( i );
      return;
    }    
  }
  alert( "ERROR: Trying to unregister child window which have never registered" );
}

// Event handlers
function bcklnk_parent_openSiteDetails( programId, siteId )
{
  g_bcklnk_parent_hdnProgramId.value = programId;
  g_bcklnk_parent_hdnSiteId.value = siteId;
  g_bcklnk_parent_btnSiteDetails.click();
  focus();
}
function bcklnk_parent_openPocDetails( programId, siteId, userId )
{
  g_bcklnk_parent_hdnProgramId.value = programId;
  g_bcklnk_parent_hdnSiteId.value = siteId;
  g_bcklnk_parent_hdnUserId.value = userId;
  g_bcklnk_parent_btnPocDetails.click();
  focus();
}
function bcklnk_parent_openAssetDetails( programId, assetId )
{
  g_bcklnk_parent_hdnProgramId.value = programId;
  g_bcklnk_parent_hdnAssetId.value = assetId;
  g_bcklnk_parent_btnAssetDetails.click();
  focus();
}

// - Body life cycle
function bcklnk_parent_bodyLoaded()
{
}
function bcklnk_parent_bodyUnloaded()
{
  bcklnk_parent_dropChildren();
}
