
var bbh_TtV1_MinGapX = 20 // Minimum gap from tooltip to right of window
var bbh_TtV1_MinGapY = 20 // Minimum gap from tooltip to top of window
var bbh_TtV1_CloseDelay = 500; // ms Delay from leaving to close
var bbh_TtV1_IsIE = document.all;
var bbh_TtV1_IsNS = document.getElementById && !document.all;
var bbh_TtV1_IsVisible = false;
var bbh_TtV1_IsClosing = false;
var bbh_TtV1_IsOverTip = false;
var bbh_TtV1_OpenContent = "";
var bbh_TtV1_OpenWinSpec = null;
var bbh_TtV1_OpenAnchor = null;
var bbh_AfterTipKeep = false; // When mouse moves off tip - keep it visible.
var bbh_AfterTipShow = null; // When mouse moves off tip - show this new tip.
var bbh_TtV1_Tooltip = null;
var bbh_TtV1_TooltipContent = null;
var bbh_TtV1_Closing = null; // Close Timeout
var bbh_TtV1_LangSelected = "nz";
var bbh_TtV1_LangActive = "";

function TooltipV1_Show(p_Content, p_Anchor, p_Width, p_LeftOffsetType, p_LeftOffsetValue) {
  var i_X = 0;
  var i_Y = 0;
  var i_X2 = 0;
  var i_Width = 260;
  var i_WidthContent = 241;
  var i_LeftOffsetType = "Left%";
  var i_LeftOffsetValue = 50;
  var i_Content = null;
  var i_TooltipSpec = null;

  if (bbh_TtV1_Tooltip == null) {
    bbh_TtV1_Tooltip = document.all ? document.all["TooltipV1"] : document.getElementById ? document.getElementById("TooltipV1") : null;
    bbh_TtV1_TooltipContent = document.all ? document.all["TooltipV1_Content"] : document.getElementById ? document.getElementById("TooltipV1_Content") : null;
    if (bbh_TtV1_Tooltip == null || bbh_TtV1_TooltipContent == null) {
      bbh_TtV1_Tooltip = null;
      bbh_TtV1_TooltipContent = null;
      return; } }

  if (bbh_TtV1_IsClosing == true) {
    bbh_TtV1_IsClosing = false;
    clearTimeout(bbh_TtV1_Closing);
    bbh_TtV1_Closing = null; }

  if (bbh_TtV1_IsOverTip == true) {
    bbh_AfterTipShow = arguments;
    bbh_AfterTipKeep = false;
    return; }

  bbh_TtV1_OpenWinSpec = TooltipV1_GetDocSize();
  bbh_TtV1_OpenAnchor = TooltipV1_GetPosAndSize(p_Anchor);
  if (bbh_TtV1_OpenAnchor.found == false) { return; }

  if (typeof p_Width != "undefined") { i_Width = p_Width; }

  i_WidthContent = i_Width - 19;
  bbh_TtV1_Tooltip.style.width = i_Width + "px";
  bbh_TtV1_TooltipContent.style.width = i_WidthContent + "px";

  document.getElementById("TooltipV1_Flag_nz").className = "TooltipV1_Lang";
  document.getElementById("TooltipV1_Flag_german").className = "TooltipV1_Lang";
  document.getElementById("TooltipV1_Flag_french").className = "TooltipV1_Lang";
  document.getElementById("TooltipV1_Flag_japanese").className = "TooltipV1_Lang";
  document.getElementById("TooltipV1_Flag_chinese").className = "TooltipV1_Lang";
  document.getElementById("TooltipV1_Flag_korean").className = "TooltipV1_Lang";
  
  if (document.getElementById(p_Content + "_nz")) {
    if (document.getElementById(p_Content + "_german")) { document.getElementById("TooltipV1_Flag_german").style.display = "inline"; } else { document.getElementById("TooltipV1_Flag_german").style.display = "none"; }
    if (document.getElementById(p_Content + "_french")) { document.getElementById("TooltipV1_Flag_french").style.display = "inline"; } else { document.getElementById("TooltipV1_Flag_french").style.display = "none"; }
    if (document.getElementById(p_Content + "_japanese")) { document.getElementById("TooltipV1_Flag_japanese").style.display = "inline"; } else { document.getElementById("TooltipV1_Flag_japanese").style.display = "none"; }
    if (document.getElementById(p_Content + "_chinese")) { document.getElementById("TooltipV1_Flag_chinese").style.display = "inline"; } else { document.getElementById("TooltipV1_Flag_chinese").style.display = "none"; }
    if (document.getElementById(p_Content + "_korean")) { document.getElementById("TooltipV1_Flag_korean").style.display = "inline"; } else { document.getElementById("TooltipV1_Flag_korean").style.display = "none"; }
    document.getElementById("TooltipV1_Bot").style.display = "none";
    document.getElementById("TooltipV1_BotLang").style.display = "block";
    if (document.getElementById(p_Content + "_" + bbh_TtV1_LangSelected)) {
      bbh_TtV1_LangActive = bbh_TtV1_LangSelected; }
    else {
      bbh_TtV1_LangActive = "nz"; }
    bbh_TtV1_TooltipContent.innerHTML = document.getElementById(p_Content + "_" + bbh_TtV1_LangActive).innerHTML;
    document.getElementById("TooltipV1_Flag_" + bbh_TtV1_LangActive).className = "TooltipV1_LangActive"; }
  else {
    bbh_TtV1_LangActive = "";
    document.getElementById("TooltipV1_Bot").style.display = "block";
    document.getElementById("TooltipV1_BotLang").style.display = "none";
    if (document.getElementById(p_Content)) {
      bbh_TtV1_TooltipContent.innerHTML = document.getElementById(p_Content).innerHTML; }
    else {
      bbh_TtV1_TooltipContent.innerHTML = p_Content; } }

  bbh_TtV1_OpenContent = p_Content;

  i_TooltipSpec = TooltipV1_GetPosAndSize("TooltipV1");

  if (typeof p_LeftOffsetType != "undefined" && typeof p_LeftOffsetValue != "undefined") {
    i_LeftOffsetType = p_LeftOffsetType;
    i_LeftOffsetValue = p_LeftOffsetValue; }

  switch(i_LeftOffsetType){
      case "LeftPx":  i_X = bbh_TtV1_OpenAnchor.left + i_LeftOffsetValue; break;
      case "Left%":   i_X = bbh_TtV1_OpenAnchor.left + ((bbh_TtV1_OpenAnchor.width / 100) * i_LeftOffsetValue); break;
      case "RightPx": i_X = bbh_TtV1_OpenAnchor.right - i_LeftOffsetValue; break;
      case "Right%":  i_X = bbh_TtV1_OpenAnchor.right - ((bbh_TtV1_OpenAnchor.width / 100) * i_LeftOffsetValue); break;
      default:        i_X = bbh_TtV1_OpenAnchor.left + (bbh_TtV1_OpenAnchor.width * 0.5);  break; }

//  i_X = bbh_TtV1_OpenAnchor.left + (bbh_TtV1_OpenAnchor.width * 0.5);
  i_X2 = i_X + i_TooltipSpec.width - 1;
  i_Y = bbh_TtV1_OpenAnchor.top - i_TooltipSpec.height;

  if ((i_X2 + bbh_TtV1_MinGapX) > bbh_TtV1_OpenWinSpec.winRight) {
    i_X = bbh_TtV1_OpenWinSpec.winRight - i_TooltipSpec.width - bbh_TtV1_MinGapX; }
  if ((i_Y - bbh_TtV1_MinGapY) < bbh_TtV1_OpenWinSpec.winTop) {
    i_Y = bbh_TtV1_OpenAnchor.bottom + 1; }
    
//  alert("Anchor=" + bbh_TtV1_OpenAnchor.top + "," + bbh_TtV1_OpenAnchor.height + "," + bbh_TtV1_OpenAnchor.bottom + "," + bbh_TtV1_OpenAnchor.left + "," + bbh_TtV1_OpenAnchor.width + "," + bbh_TtV1_OpenAnchor.right);
//  alert("Tooltip=" + i_TooltipSpec.top + "," + i_TooltipSpec.height + "," + i_TooltipSpec.bottom + "," + i_TooltipSpec.left + "," + i_TooltipSpec.width + "," + i_TooltipSpec.right);
//  alert("Win=" + bbh_TtV1_OpenWinSpec.height + "," + bbh_TtV1_OpenWinSpec.width + "," + bbh_TtV1_OpenWinSpec.winTop + "," + bbh_TtV1_OpenWinSpec.winHeight + "," + bbh_TtV1_OpenWinSpec.winBottom + "," + bbh_TtV1_OpenWinSpec.winLeft + "," + bbh_TtV1_OpenWinSpec.winWidth + "," + bbh_TtV1_OpenWinSpec.winRight);

  bbh_TtV1_Tooltip.style.left = i_X + "px";
  bbh_TtV1_Tooltip.style.top = i_Y + "px";
  bbh_TtV1_Tooltip.style.visibility = "visible";
  bbh_TtV1_IsVisible = true;
  return false;
}


function TooltipV1_Hide() {
  if (bbh_TtV1_IsVisible == false || bbh_TtV1_IsClosing == true) { return; }

  if (bbh_TtV1_IsOverTip == true) {
    bbh_AfterTipShow = null;
    bbh_AfterTipKeep = false;
    return; }
    
  bbh_TtV1_IsClosing = true;
  bbh_TtV1_Closing = setTimeout(function(){TooltipV1_Close();}, bbh_TtV1_CloseDelay);
}


function TooltipV1_Close() {

  bbh_TtV1_IsClosing = false;
  bbh_TtV1_IsVisible = false;
  bbh_TtV1_Tooltip.style.visibility = "hidden";
  bbh_TtV1_Tooltip.style.left = "-1000px";
}


function TooltipV1_OverTip() {
  if (bbh_TtV1_IsClosing == true) {
    bbh_AfterTipKeep = false;
    bbh_TtV1_IsClosing = false;
    clearTimeout(bbh_TtV1_Closing);
    bbh_TtV1_Closing = null; }
  else {
    bbh_AfterTipKeep = true; }
  
  bbh_TtV1_IsOverTip = true;
  bbh_AfterTipShow = null;
}


function TooltipV1_OffTip() {
  bbh_TtV1_IsOverTip = false;

  if (bbh_AfterTipKeep == true) { return; }
  if (bbh_AfterTipShow == null) {
    TooltipV1_Hide();
    return; }

  TooltipV1_Show(bbh_AfterTipShow);
}


function TooltipV1_ChangeLang(p_Lang) {
  var i_TooltipSpecBefore = null;
  var i_TooltipSpecAfter = null;
  var i_Change = 0;
  var i_Y = 0;

  if (bbh_TtV1_IsVisible == false) { return; }

  bbh_TtV1_LangSelected = p_Lang;
  i_TooltipSpecBefore = TooltipV1_GetPosAndSize("TooltipV1");

  document.getElementById("TooltipV1_Flag_" + bbh_TtV1_LangActive).className = "TooltipV1_Lang";
  
  if (document.getElementById(bbh_TtV1_OpenContent + "_" + p_Lang)) {
    bbh_TtV1_LangActive = p_Lang; }
  else {
    bbh_TtV1_LangActive = "nz"; }
  bbh_TtV1_TooltipContent.innerHTML = document.getElementById(bbh_TtV1_OpenContent + "_" + bbh_TtV1_LangActive).innerHTML;
  document.getElementById("TooltipV1_Flag_" + bbh_TtV1_LangActive).className = "TooltipV1_LangActive";

  i_TooltipSpecAfter = TooltipV1_GetPosAndSize("TooltipV1");
  i_Change = i_TooltipSpecBefore.bottom - i_TooltipSpecAfter.bottom;
  if (i_Change != 0) {
    i_Y = i_TooltipSpecAfter.top + i_Change;
    bbh_TtV1_Tooltip.style.top = i_Y + "px"; }
}


function TooltipV1_GetPosAndSize(p_ID) {
  var i_Found = false;
  var i_Top = 0;
  var i_Height = 0;
  var i_Bottom = 0;
  var i_Left = 0;
  var i_Width = 0;
  var i_Right = 0;
  var i_Ele = document.getElementById(p_ID);
  var i_Working = true;

//  if (i_Ele) { alert("Found " + p_ID); } else { alert("Not Found " + p_ID); }

  if (i_Ele) {
    i_Found = true;
    i_Working = true;
    i_Width = i_Ele.offsetWidth;
    i_Height = i_Ele.offsetHeight;
    while(i_Working == true) {
      i_Top += i_Ele.offsetTop;
      i_Left += i_Ele.offsetLeft;
      i_Ele = i_Ele.offsetParent;
      if (i_Ele == null) {
        i_Working = false; }
      else {
        if (i_Ele.tagName == "BODY" || i_Ele.tagName == "body") {
          i_Working = false; } } }
    i_Bottom = i_Top + i_Height - 1;
    i_Right = i_Left + i_Width - 1; }
  return { found : i_Found, top : i_Top, height : i_Height, bottom : i_Bottom, left : i_Left, width : i_Width, right : i_Right };
}

function TooltipV1_GetDocSize() {
  var i_Height = 0;
  var i_Width = 0;
  var i_WinTop = 0;
  var i_WinHeight = 0;
  var i_WinBottom = 0;
  var i_WinLeft = 0;
  var i_WinWidth = 0;
  var i_WinBottom = 0;
  var i_IsIE = document.all;
  var i_IsNS = document.getElementById && !document.all;
  var i_BodyInIE = null;

  if (i_IsIE) {
    i_BodyInIE = (document.compatMode && document.compatMode!="BackCompat") ? document.documentElement : document.body; }

  i_Width = Math.max(
        Math.max(document.body.scrollWidth, document.documentElement.scrollWidth),
        Math.max(document.body.offsetWidth, document.documentElement.offsetWidth),
        Math.max(document.body.clientWidth, document.documentElement.clientWidth));
  i_Height = Math.max(
        Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
        Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
        Math.max(document.body.clientHeight, document.documentElement.clientHeight));

  i_WinTop = i_IsIE && !window.opera ? i_BodyInIE.scrollTop : window.pageYOffset;
  i_WinHeight = i_IsIE && !window.opera ? i_BodyInIE.clientWidth : window.innerWidth;
  i_WinBottom = i_WinTop + i_WinHeight - 1;
  i_WinLeft = i_IsIE && !window.opera ? i_BodyInIE.scrollLeft : window.pageXOffset;
  i_WinWidth = i_IsIE && !window.opera ?  i_BodyInIE.clientWidth : window.innerWidth;
  i_WinRight = i_WinLeft + i_WinWidth;

  return { height : i_Height, width : i_Width, winTop : i_WinTop, winHeight : i_WinHeight, winBottom : i_WinBottom, winLeft : i_WinLeft, winWidth : i_WinWidth, winRight : i_WinRight };
}

//
// Using PopUp code to calculate Window details...
//
//  if (typeof( window.innerWidth ) == 'number' ) {  //Non-IE
//    i_WinWidth = window.innerWidth;
//    i_WinHeight = window.innerHeight; }
//  else {
//    if (document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight)) {  //IE 6+ in 'standards compliant mode'
//      i_WinWidth = document.documentElement.clientWidth;
//      i_WinHeight = document.documentElement.clientHeight; }
//    else {
//      i_WinWidth = document.body.clientWidth;
//      i_WinHeight = document.body.clientHeight; }}
//
//  i_Top = Math.max(Math.max(document.body.scrollTop, document.documentElement.scrollTop)) + 10;


// document.onmousemove=TooltipV1_Position


