//-------------------------------------------------------------
// Desc: menus & search script
// Author: Robert.Chandler (orginal code)
// Date: 1-Jul-2008
// Changes:
//   RWC 20-Oct-2008 - Added getElementById() to the HideShow funcs. Compliance with DOCTYPE and DTD (browser in standard mode).
//     Increase menu dely off to 250 ms (was 100 ms).
//   http://www.varianinc.com/image/vimage/docs/shared/varianMenus/   
//-------------------------------------------------------------

var BrowserVersion = 0;
var BrowserIsIE = false;
var BrowserIsFF = false;
var BrowserIsOp = false;
var BrowserIsSa = false;

function detectBrowser()
{
    var ua = navigator.userAgent;
    
	//Detect FireFox
	if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
	 	BrowserVersion = parseInt(RegExp.$1); // capture x.x portion and store as a number
	 	BrowserIsFF = true;
	}
	else //IE
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
	 	BrowserVersion = parseInt(RegExp.$1); // capture x.x portion and store as a number
	 	BrowserIsIE = true;
	}
	else //Opera
	if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Opera/x.x or Opera x.x (ignoring remaining decimal places);
	 	BrowserVersion = parseInt(RegExp.$1);
	 	BrowserIsOp = true;
	}
	else //Safari
	if (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Opera/x.x or Opera x.x (ignoring remaining decimal places);
	    var verStr = "Version/";
        var verPos = ua.indexOf(verStr);
        BrowserVersion = parseInt(ua.substring(verPos + verStr.length, ua.indexOf(".", verPos)));
	 	BrowserIsSa = true;
	}
	if (isNaN(BrowserVersion))
	  BrowserVersion = 0;
}
detectBrowser();


function BrowserDoesAlphaPng() {  
  if ((BrowserIsIE) && (BrowserVersion >= 7))   //IE7 and above
    return true;
  if (BrowserIsFF) // FF 1,2,3 all handle alpha PNG
    return true;
  if ((BrowserIsOp) && (BrowserVersion >= 9))   //Only tested Opera v9
    return true;
  if ((BrowserIsSa ) && (BrowserVersion >= 3))  //Only tested Safari v3
    return true;
  return false;
}

//-------------------------------------------------------------
// General
//-------------------------------------------------------------
function HideShowPanel(eID) {
  var e = document.getElementById(eID);
  if (e.style.display == "none")
    e.style.display = "";
  else
    e.style.display = "none"; }

//-------------------------------------------------------------
// Global Sites Popup Script
//-------------------------------------------------------------
var timerID = null;
function ShowGSPanel(){
  var e = document.getElementById('GSPanel');
  e.style.display = ""; }
function HideGSPanel(){
  var e = document.getElementById('GSPanel');
  e.style.display = "none"; }
function GSKillTimer() {
  window.clearTimeout(timerID); }
function GSMenuOff_Delayed() {
  timerID = window.setTimeout("HideGSPanel()",250); }

//-------------------------------------------------------------
// Search Popup Script
//-------------------------------------------------------------
function ShowSearchPanel(){
  var e = document.getElementById('SearchPanel');
  e.style.display = ""; }
function HideSearchPanel(){
  var e = document.getElementById('SearchPanel');
  e.style.display = "none"; }
function SearchKillTimer() {
  window.clearTimeout(timerID); }
function SearchMenuOff_Delayed() {
  timerID = window.setTimeout("HideSearchPanel()",250); }

var _SearchIdx=0;  //0= Website (default search)
var _SearchGray=1;
var _SearchOptionsInitialized = false;
var searchOptionID = [];
var searchOptions = [];
var searchGroupName = [];

function InitSearchOptions() {
  _SearchOptionsInitialized = true;
  searchOptionID[0]=document.getElementById("SearchOption0");
  searchOptionID[1]=document.getElementById("SearchOption1");
  searchOptionID[2]=document.getElementById("SearchOption2");

  searchOptions[0]="Search Website...";
  searchOptions[1]="Search Technical Docs...";
  searchOptions[2]="Search Online Catalog...";
  
  searchGroupName[0]="Website";
  searchGroupName[1]="Techdocs";
  searchGroupName[2]="Products";
}

//Search option selected
function SetSearchOption(sIdx) {
  if (!_SearchOptionsInitialized)
    InitSearchOptions();
  _SearchIdx = sIdx;
  
  //Set the Forms Group (Tells Varian Search what area to search)
  document.search.group.value=searchGroupName[sIdx];

  //Update text
  var e = document.getElementById('xkeywords');
  if (_SearchGray == 1)
    e.value = searchOptions[_SearchIdx];

  //Mark the item in the Popup
  for (var n=0; n < searchOptionID.length; n++)
    searchOptionID[n].style.backgroundColor="";
  searchOptionID[sIdx].style.backgroundColor="#777777";

  //Hide Search Option panel
  document.getElementById("SearchPanel").style.display = "none";
}

//Lose focus
function SearchOnBlur() {
  var  e = document.getElementById('xkeywords');
  if ((_SearchGray == 1) || (e.value == ""))
  {
  	_SearchGray = 1;
    SetSearchOption(_SearchIdx);
    e.style.color = "#bbbbbb";
    e.value = searchOptions[_SearchIdx];
  }
}

//Get focus
function SearchOnFocus() {
  var e = document.getElementById('xkeywords');
  if (_SearchGray == 1) {
  	_SearchGray = 0;
  	e.value = "";
  	e.style.color = "#000000";
  }
}


//-------------------------------------------------------------
// Main Menu Popup Script
//-------------------------------------------------------------
var menuID = 0;
var InitMenuDone = false;

var mnuArray = [];
var mnuLink = [];
var mnuPanel = [];

//Product Expando SubMenus
var subMnu = [];
var subMnuImg = [];

function InitMenu() {
  InitMenuDone = true;
  mnuArray[0]=document.getElementById("mnu01");
  mnuArray[1]=document.getElementById("mnu02");
  mnuArray[2]=document.getElementById("mnu03");
  mnuArray[3]=document.getElementById("mnu04");
  mnuArray[4]=document.getElementById("mnu05");
  mnuArray[5]=document.getElementById("mnu06");
  
  mnuLink[0]=document.getElementById("mnuLink01");
  mnuLink[1]=document.getElementById("mnuLink02");
  mnuLink[2]=document.getElementById("mnuLink03");
  mnuLink[3]=document.getElementById("mnuLink04");
  mnuLink[4]=document.getElementById("mnuLink05");
  mnuLink[5]=document.getElementById("mnuLink06");
  
  mnuPanel[0]=document.getElementById("mnuProducts");
  mnuPanel[1]=document.getElementById("mnuSolutions");
  mnuPanel[2]=document.getElementById("mnuSupport");
  mnuPanel[3]=document.getElementById("mnuCompany");
  mnuPanel[4]=document.getElementById("mnuInvestors");
  mnuPanel[5]=null;
  
  //Items in a menu drop down panel 
  subMnu[0]=document.getElementById("sectN0");
  subMnu[1]=document.getElementById("sectN1");
  subMnu[2]=document.getElementById("sectN2");
  subMnu[3]=document.getElementById("sectN3");
  subMnu[4]=document.getElementById("sectN4");
  subMnu[5]=document.getElementById("sectN5");
  subMnu[6]=document.getElementById("sectN6");
  subMnu[7]=document.getElementById("sectN7");
  subMnu[8]=document.getElementById("sectN8");
  subMnu[9]=document.getElementById("sectV0");
  subMnu[10]=document.getElementById("sectV1");
  subMnu[11]=document.getElementById("sectV2");

  subMnuImg[0]=document.getElementById("ImgN0");
  subMnuImg[1]=document.getElementById("ImgN1");
  subMnuImg[2]=document.getElementById("ImgN2");
  subMnuImg[3]=document.getElementById("ImgN3");
  subMnuImg[4]=document.getElementById("ImgN4");
  subMnuImg[5]=document.getElementById("ImgN5");
  subMnuImg[6]=document.getElementById("ImgN6");
  subMnuImg[7]=document.getElementById("ImgN7");
  subMnuImg[8]=document.getElementById("ImgN8");
  subMnuImg[9]=document.getElementById("ImgV0");
  subMnuImg[10]=document.getElementById("ImgV1");
  subMnuImg[11]=document.getElementById("ImgV2");
  }

function HideMenu_Now() {
  if (!InitMenuDone) 
    InitMenu();
  if (menuID != 0) {
    //Kill Menu Highlight
    var e = mnuArray[menuID-1];
    e.style.color="#333333";
    e.style.backgroundColor="";
    e.style.backgroundImage="";
    
    e = mnuLink[menuID-1];
    e.style.color="#333333";
    e.style.backgroundColor="";
    
    //Kill Menu Panel
    if (mnuPanel[menuID-1] != null) {
      mnuPanel[menuID-1].style.display = "none";
      MenuDropShadow(menuID-1); //hide the drop shadow as well
    }
  }
  menuID = 0;
}

function Menu_KillTimer() {
  window.clearTimeout(timerID); }

function HideMenu() {
  timerID = window.setTimeout("HideMenu_Now()",250); }

function MnuItemOver(n) {
  if (!InitMenuDone) 
    InitMenu();
  Menu_KillTimer();
  if (menuID != n) {  //Change
    HideMenu_Now();                        //Hide old menu
    if (mnuPanel[n-1] != null) {
      mnuPanel[n-1].style.display = "";    //Show new menu
      MenuDropShadow(n-1);  //Show the drop shadow as well
    }
  }
  menuID = n;

  //Set Menu Header Color & shiney skin
  mnuArray[n-1].style.color="#dddddd";
  mnuArray[n-1].style.backgroundColor="#444444";
  mnuArray[n-1].style.backgroundImage="url(http://www.varianinc.com/image/vimage/docs/shared/varianMenus/tab0.gif)";
  
  mnuLink[n-1].style.color="#dddddd";
  mnuLink[n-1].style.backgroundColor="";
}


//-------------------------------------------------------------
// HideShow menu section
//-------------------------------------------------------------
var _lastMnuID = -1;

function HideShow_MnuSubSection(eID, anImageID) {
  if (!InitMenuDone)
    InitMenu();

  var e = document.getElementById(eID);
  var anImage = document.getElementById(anImageID);

  //If item expanded then simply contract it
  if (e.style.display == "") {
    e.style.display = "none";
    anImage.src = "http://www.varianinc.com/image/vimage/docs/shared/varianMenus/xpand_closed.gif";
  }

  //Expand item - But first contract all others that are open
  else {
    //Close all open sections
    for (var n=0; n < subMnu.length; n++)
       if (subMnu[n].style.display == "") {
         subMnu[n].style.display = "none";
         subMnuImg[n].src = "http://www.varianinc.com/image/vimage/docs/shared/varianMenus/xpand_closed.gif";
       }

    e.style.display = "";
    anImage.src = "http://www.varianinc.com/image/vimage/docs/shared/varianMenus/xpand_open.gif";
  }
  
  //If we expand menu sub sections then we need repaint the shadow
  MenuDropShadow(_lastMnuID);
}

//-------------------------------------------------------------
// Menu Drop shadow 
//-------------------------------------------------------------
// We position alpha png images around the menu to simulate a drop shadow

function MenuDropShadow(mnuID) {
  var X, T, L, R, H, W, obj;
  var win = mnuPanel[mnuID];
  
  //////////// Drop Shadows are disabled for now
  return;

  if (!BrowserDoesAlphaPng())
    return;

  try
  {
    _lastMnuID = mnuID;
  
    obj = document.getElementById("ShadowL");
    T = parseInt(win.style.top);
    if (isNaN(T)) //We didn't set .top since the default was 0 anyway so this fails but that's OK.
      T = 0;
    H = win.offsetHeight;
    W = win.offsetWidth;
    L = parseInt(win.style.left) - parseInt(obj.style.width);
    R = parseInt(win.style.left) + win.offsetWidth;
  
  
    //Something went unexpectantly wrong - give up using a shadow
    if ((isNaN(H)) || (isNaN(W)) || (isNaN(L)) || (isNaN(R)))
      return;
  
    obj.style.display=win.style.display; 
    if (obj.style.display != "none") {
      obj.style.left= L + 'px';
      obj.style.top= T + 'px';
      obj.style.height= H + 'px';
    }

    obj = document.getElementById("ShadowR");
    obj.style.display=win.style.display; 
    if (obj.style.display != "none") {
      obj.style.left= R + 'px';
      obj.style.top= T + 'px';
      obj.style.height= H + 'px';
    }

    obj = document.getElementById("ShadowBL");
    obj.style.display=win.style.display; 
    if (obj.style.display != "none") {
      obj.style.left= L + 'px';
      obj.style.top= H + 'px';
    }

    obj = document.getElementById("ShadowBR");
    obj.style.display=win.style.display; 
    if (obj.style.display != "none") {
      obj.style.left= R + 'px';
      obj.style.top= H + 'px';
    }

    obj = document.getElementById("ShadowBM");
    obj.style.display=win.style.display; 
    if (obj.style.display != "none") {
      obj.style.left= parseInt(win.style.left) + 'px';
      obj.style.top= H + 'px';
      obj.style.width= W + 'px';
    }
    
  } //try
  catch(err)   
  {
    return;
  }
}


//-------------------------------------------------------------
// Page OnLoad event
//-------------------------------------------------------------
function PageLoaded() {
  if (!InitMenuDone) 
    InitMenu();
    
  //Preload corner images
  document.getElementById("CornerTL").style.backgroundImage="url('http://www.varianinc.com/image/vimage/docs/shared/varianMenus/corner_TopLeft.gif')";
  document.getElementById("CornerTR").style.backgroundImage="url('http://www.varianinc.com/image/vimage/docs/shared/varianMenus/corner_TopRight.gif')";
  document.getElementById("cornerB1").style.backgroundImage="url('http://www.varianinc.com/image/vimage/docs/shared/varianMenus/bottom001.jpg')";
  document.getElementById("cornerB2").style.backgroundImage="url('http://www.varianinc.com/image/vimage/docs/shared/varianMenus/bottom002.jpg')";
  document.getElementById("cornerB3").style.backgroundImage="url('http://www.varianinc.com/image/vimage/docs/shared/varianMenus/bottom003.jpg')";
  //Preload Search background (edges)    
  document.getElementById("xkeywords").style.background="white url('http://www.varianinc.com/image/vimage/docs/shared/varianMenus/search_edge.gif') repeat-x left top";
  
}

