var version = 0;
var temp;
var ua = navigator.userAgent.toLowerCase();
var nn = (navigator.appName.indexOf("Netscape") != -1);
var nn4 = (document.layers) ? true : false;
//support dhtml and javascript that is the same as that of IE
var ie4 = (document.all) ? true : false;
// browsers that use IE user agent

temp = 0;
if (navigator.appVersion.indexOf("MSIE")!= -1){
  temp = navigator.appVersion.split("MSIE")
  version = parseFloat(temp[1])
}

var ie4up = (document.all && ua.indexOf('msie') != -1 && version >= 4) ? true : false;
var ie5up = (document.documentElement && ua.indexOf('msie') != -1 && version >= 5) ? true : false;
var dom = (document.getElementById && !document.all) ? true : false; 
var dom_ns = false;
if (dom){ 
  dom_ns = (navigator.appName.indexOf('Netscape') > -1); //netscape, firefox
}
var op= false, op7 = false, op5or6 = false; //opera
if (window.opera) {
  op = true;
  op7 = (ua.indexOf('opera 7') != -1 || ua.indexOf('opera/7') != -1);
  if (!op7) op5or6 = (ua.indexOf('opera 5')!=-1 || ua.indexOf('opera/5') != -1 || ua.indexOf('opera 6') != -1 || ua.indexOf('opera/6') != -1);
}

var safari = (navigator.userAgent.toLowerCase().indexOf('safari') != -1) ? true : false;

var menuitemcurrent_color = "#FFCC00";
var menuitemhover_color = "#D6E9F0";
var menuitem_color = "#ADD2E0";
var colMenuItemHover_color = "#d6e9f0";
var colMenuItem_color = "#f0f0f0";
var colMenuItemCurrent_color = "#f0f0f0";
var bodyBackground_color = "#6498CD";

var nnMenuLayerColor;

var isShowFloatTop = false; //show floating image button to go to the top of page


function showNNMenu(showThisNNMenu,evt){
  var srcLayer = evt.target;
  var menuLayerID;
  var thisMenu = new String(srcLayer.name).replace(showThisNNMenu + "_menuitem","");
 	var count = parseInt(thisMenu,10);

	count += 100;
	if (count < 1000){
		menuLayerID = new String('0' + count);
	}
	else{
		menuLayerID = new String(count);
	}
  
  document.layers[showThisNNMenu + "_menuitem" + menuLayerID].visibility = "show";
  nnMenuLayerColor = srcLayer.bgColor;
  srcLayer.bgColor = menuitemhover_color;
}


function hideNNMenu(hideThisNNMenu,evt){
  var srcLayer = evt.target;
  var menuLayerID;
    
  if (evt.pageY > srcLayer.pageY) {
    var thisMenu = new String(srcLayer.name).replace(hideThisNNMenu + "_menuitem","");
 	  var count = parseInt(thisMenu,10);

	  count += 100;
	  if (count < 1000){
		  menuLayerID = new String('0' + count);
  	}
	  else{
		  menuLayerID = new String(count);
	  }
  
    document.layers[hideThisNNMenu + "_menuitem" + menuLayerID].visibility = "hidden";
  }
  //srcLayer.bgColor = menuitem_color;
  //restore layer color
  srcLayer.bgColor = nnMenuLayerColor;
}


function hideThisNNMenu(evt){
  var srcLayer = evt.target;
  
  srcLayer.visibility = "hidden";
}


function showOverMenu(thisLayer){
  thisLayer.bgColor = menuitemhover_color;
}


function showOutMenu(thisLayer){
  thisLayer.bgColor = menuitem_color;
}

/* not nn4; pull down menu: start */
function hideThisIE4Menu(hideThisMenu,evt){
  var fromElement;
  var destElement;
  var elementID, toElementID;
  var menuPrefix;
  var thisMenu;
  var hideMenu = true;
  
  if (!evt) var evt = window.event;
  fromElement = (window.event) ? evt.srcElement : evt.target;
  destElement = (evt.relatedTarget) ? evt.relatedTarget : evt.toElement;
  
  elementID = fromElement.id;
  toElementID = destElement.id;

  // name of menu + "_" + "menuitem" + 1st digit
  menuPrefix = elementID.substr(0,(hideThisMenu.length + 10));

  if (toElementID != "undefined" && toElementID != "" && toElementID != null){
    if (toElementID.indexOf(menuPrefix) != -1){
      hideMenu = false;
    }
  }
  
  thisMenu = menuPrefix + '100';
  if (hideMenu){
    if (ie4){
      document.all[thisMenu].style.visibility = "hidden";
    }
    if (dom){
      document.getElementById(thisMenu).style.visibility = "hidden";
    }
  }
}


function hideIE4Menu(hideThisMenu,evt){
  var fromElement;
  var destElement;
  var fromPrefix, destPrefix;
  var destPrefixLen;
  var hideMenu, destElement_None;
  
  hideMenu = true;
  destElement_None = false;
  
    
  if (!evt) var evt = window.event;
  fromElement = (window.event) ? evt.srcElement : evt.target;
  destElement = (evt.relatedTarget) ? evt.relatedTarget : evt.toElement;
    
  toElementID = destElement.id;

  elementID = fromElement.id;
  // name of menu + "_" + "menuitem" + 1st digit
  fromPrefix = elementID.substr(0,(hideThisMenu.length + 10));
  if (toElementID != "undefined" && toElementID != "" && toElementID != null){ 
    destPrefixLen = toElementID.length;
    if (toElementID.indexOf(fromPrefix) != -1){
      hideMenu = false;
    }
  }

  if (hideMenu == true){
    if (ie4) {  
      document.all[fromPrefix+'100'].style.visibility = "hidden";
    }
    if (dom){
      document.getElementById(fromPrefix+'100').style.visibility = "hidden";
    }
  } 
}


function showIE4Menu(showThisMenu,evt){
  if (ie4) {  
    document.all[showThisMenu].style.visibility = "visible";
  }
  if (dom){
    document.getElementById(showThisMenu).style.visibility = "visible";
  }
}
/* not nn4; pull down menu: end */


/* column menu start */
var colMenuItems = new Array(1);

var colMenuItemSeq = 0;
var colMenuItemLevel = 1;
var colMenuItemId = 2;
var colMenuItemLink = 3;
var colMenuItemDesc = 4;
var colMenuItemHeight = 5;

/* assign values in your page start */
/* 1. define your menu in colMenuItems */
/* 2. define the following values */
var colMenuId = "";
var colMenuSeq = 1;
var imgRelFolder = "\.\.\/img";
var numOfColMenuItems = colMenuItems.length;
/* move to top of web page while entering the page */
var isMoveToPageTop = true;
/* assign values in your page end */


function initTableLayers (tableName, rows, cols) {
  if (document.layers) {
    var maxHeight = new Array (rows);
    var maxWidth = new Array (cols);
    for (var r = 0; r < rows; r++)
      maxHeight[r] = 0;
    for (var c = 0; c < cols; c++)
      maxWidth[c] = 0;
    for (var r = 0; r < rows; r++)
      for (var c = 0; c < cols; c++) {
        //var cell = document[tableName + 'Cell' + r + '_' + c];
        var cell = document[tableName[r][colMenuItemId]];
        if (maxHeight[r] < cell.clip.height)
          maxHeight[r] = cell.clip.height;
      }
    for (var c = 0; c < cols; c++)
      for (var r = 0; r < rows; r++) {
        //var cell = document[tableName + 'Cell' + r + '_' + c];
        var cell = document[tableName[r][colMenuItemId]];
        if (maxWidth[c] < cell.clip.width)
          maxWidth[c] = cell.clip.width;
      }       
    for (var r = 0; r < rows; r++)
      for (var c = 0; c < cols; c++) {
        //var cell = document[tableName + 'Cell' + r + '_' + c];
        var cell = document[tableName[r][colMenuItemId]];
        cell.clip.width = maxWidth[c];
        cell.clip.height = maxHeight[r];
        cell.rowIndex = r; cell.colIndex = c;
        if (tableName[r][colMenuItemDesc] != ""){
          var ol = cell.ol = new Layer(maxWidth[c]); //adjust width of layer in order to cover the whole cell
          tableName[r][colMenuItemHeight] = maxHeight[r];
        }
        else
          var ol = cell.ol = new Layer(maxWidth[c]);
        ol.zIndex = 2;
        ol.cell = cell;
        ol.clip.height = maxHeight[r];
        ol.left = cell.pageX;
        ol.top = cell.pageY;
        ol.visibility = 'hidden';
      }
  }
}


function rewriteCell (tableName, rowNo, html) {
  if (document.layers) {
    //var cell = document[tableName + 'Cell' + rowNo + '_' + colNo];
    var cell = document[tableName[rowNo-1][colMenuItemId]];
    cell.ol.document.open();
    cell.ol.document.write(html);
    cell.ol.document.close();
    if (tableName[rowNo-1][colMenuItemDesc] != "" && tableName[rowNo-1][colMenuItemLink] != ""){
      cell.ol['onmouseover'] = colMenuLayerMouseOver;
      if (tableName[rowNo-1][colMenuItemId] == colMenuId){
        cell.ol.bgColor = colMenuItemCurrent_color;
        cell.ol['onmouseout'] = colMenuCurrentLayerMouseOut;
      }
      else {
        cell.ol.bgColor = colMenuItem_color;
        cell.ol['onmouseout'] = colMenuLayerMouseOut;
      }
    }
    cell.ol.visibility = 'show';
    cell.visibility = 'hidden';
  }
}


function colMenuLayerMouseOver (evt) {
   this.bgColor = colMenuItemHover_color;
}


function colMenuLayerMouseOut (evt) {
   this.bgColor = colMenuItem_color;
}


function colMenuCurrentLayerMouseOut (evt) {
   this.bgColor = colMenuItemCurrent_color;
}


function colMenuLayerStyle(tableName, rowNo, menuStatus) {
  if (document.layers) {
    //var cell = document[tableName + 'Cell' + rowNo + '_' + colNo];
    var cell = document[tableName[rowNo-1][colMenuItemId]];
    if (menuStatus == "hover"){
      cell.ol.bgColor = colMenuItemHover_color;
    }
    else {
      cell.ol.bgColor = colMenuItem_color;
    }
  }
}


function getColMenuClassName(menuArray,menuItem,menuStatus){
  var linkClass = "colmenulevel";
  var menuItemIndex = menuItem - 1;
  
  linkClass += menuArray[menuItemIndex][colMenuItemLevel];
  if (menuArray[menuItemIndex][colMenuItemId] == colMenuId) linkClass += "Current"; 
  if (menuStatus == "hover") linkClass += "Hover"; 
  linkClass += "_a"; 
  return(linkClass);
}


function getColMenuAClassName(menuArray,menuItem){
  var linkClass = "colmenulevel";
  var menuItemIndex = menuItem - 1;
  
  linkClass += menuArray[menuItemIndex][colMenuItemLevel];
  if (menuArray[menuItemIndex][colMenuItemId] == colMenuId) linkClass += "Current";
  linkClass += "_a_inlayer"; 
  return(linkClass);
}


function buildColMenuItem (menuArray,menuItem,menuStatus){
  var menuItemIndex = menuItem - 1; 
  var alinkClass = getColMenuAClassName(menuArray,menuItem);
  if (menuArray[menuItemIndex][colMenuItemDesc] != ""){
    var sHtml = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"139\">";
    sHtml += "<tr>";
    if (menuArray[menuItemIndex][colMenuItemLink] != ""){
      sHtml += "<td class=\"colmenulevel" + menuArray[menuItemIndex][colMenuItemLevel] + "_inlayer\" valign=\"middle\" width=\"100%\" height=\"" + menuArray[menuItemIndex][colMenuItemHeight] + "\"><a class=\"" + alinkClass + "\"  href=\"" + menuArray[menuItemIndex][colMenuItemLink] + "\">" + menuArray[menuItemIndex][colMenuItemDesc] + "<\/a><\/td>";
      <!-- replace the heigth of td width the height of clip of layer //-->
    }
    else {
      sHtml += "<td class=\"colmenulevel" + menuArray[menuItemIndex][colMenuItemLevel] + "label_inlayer\" valign=\"middle\" width=\"100%\" height=\"" + menuArray[menuItemIndex][colMenuItemHeight] + "\">" + menuArray[menuItemIndex][colMenuItemDesc] + "<\/td>";
      <!-- replace the heigth of td width the height of clip of layer //-->
    }
    sHtml += "</tr>";
    sHtml += "</table>";
  }
  else {
    if (menuArray[menuItemIndex][colMenuItemLevel] == "1")
      var sHtml = new String("<img src=\"" + imgRelFolder + "\/spacer\.gif\" width=\"1\" height=\"3\" border=\"0\" \/>");
    else if (menuArray[menuItemIndex][colMenuItemLevel] == "2")
      var sHtml = new String("<img src=\"" + imgRelFolder + "\/spacer\.gif\" width=\"1\" height=\"1\" border=\"0\" \/>");
    }
  return(sHtml);
}


function initCurrentColMenuItem(menuArray, currentColMenuItem) {
  var identity;
  
  if (dom){
    identity = document.getElementById(menuArray[currentColMenuItem-1][colMenuItemId] + "_a");
    identity.className = getColMenuClassName(menuArray,currentColMenuItem,"");
  }
  else if (ie4){
    identity = document.all[menuArray[currentColMenuItem-1][colMenuItemId] + "_a"];
    identity.className = getColMenuClassName(menuArray,currentColMenuItem,"");
  }
}


function init () {
  if (nn4) {
    document.bgColor = bodyBackground_color;
  }
  initTableLayers (colMenuItems, numOfColMenuItems, 1);
  if (nn4){
    for (var row = 1; row <= numOfColMenuItems; row++)
      rewriteCell(colMenuItems,row,buildColMenuItem(colMenuItems,row,"link"));
  }
  else {
    initCurrentColMenuItem(colMenuItems,colMenuSeq);
  }
  if ((window.location != 'http://www.groupama.com.hk/about/contacthk.htm') && (isMoveToPageTop == true)) {
    if (safari) {
	  window.location.replace('#pagetop');
	}
	else {
	  window.location.href = '#pagetop';
	}
  }
  if (isShowFloatTop) {
    runSlideShow();
  }
}


function defaultInit() {
  if (nn4) {
    document.bgColor = bodyBackground_color;
  }
}

/* column menu end */

