﻿var PreLoadedImages = new Array();
var PreLoadedImagesCount = 0;
//var EnableDynamicMenuPositioning = true;
var EnableDynamicMenuPositioning = false;

function preLoad(mainNavTop){
  if (typeof(mainNavTop) == "undefined" || mainNavTop == "") {
    mainNavTop = "body";
  }
  $(mainNavTop).find("a[menuid], img[imgon]").each(function(i,domelement){
    if ($(domelement).is("img")) {
      var img = new Image();
      img.src = $(domelement).attr("imgon");
      PreLoadedImages[PreLoadedImagesCount] = img;
      PreLoadedImagesCount++;
      img = new Image();
      img.src = $(domelement).attr("imgoff");
      PreLoadedImages[PreLoadedImagesCount] = img;
      PreLoadedImagesCount++;
      $(domelement).bind("mouseover", function(){ rollon(this);})
      .bind("mouseout", function(){ rolloff(this);});
    }
    if ($(domelement).is("a")) {
      var menuID = $(domelement).attr("menuid");
      if (typeof(menuID) == "undefined") { menuID = "";}
      var imgID = $(domelement).attr("imgid");
      AddImageMenuMap(imgID,menuID);
      if (menuID.indexOf("#") < 0) { menuID = "#" + menuID;}
      $(menuID).bind("mouseover", function(){ return rollon(this);})
        .bind("mouseout", function(){return rolloff(this);});
    }  
  });
  if (EnableDynamicMenuPositioning) {
    $(window).resize(function() { resetAllLeftPositioning();});
  }
}

function rollon(rollElement){
  var imgID = null;
  var menuID = null;
  if ($(rollElement).is("a")){
    imgID = $(rollElement).attr("imgid");
    menuID = $(rollElement).attr("menuid");
  }
  if ($(rollElement).is("img")){
    imgID = $(rollElement).attr("id");
    menuID = getMenuID(imgID);
  }
  if ($(rollElement).is("div")){
    menuID = $(rollElement).attr("id");
    imgID =  getImageID(menuID);
  }
  if (imgID != "") {
    if (imgID.indexOf("#") < 0) { imgID = "#" + imgID;}
    var imgSrc = $(imgID).attr("imgon");
    $(imgID).attr("src", imgSrc);
  }
  if (menuID != "") {
    var menuSelector = menuID;
    if (menuSelector.indexOf("#") < 0) { menuSelector = "#" + menuSelector;}
    if (EnableDynamicMenuPositioning) {
      if (!IsLeftPositionSet(menuID)){
        var xDisplay = $(imgID).position().left;
        $(menuSelector).css("left", xDisplay + "px");
        LeftPositionSet(menuID);
      }
      if (!IsTopPositionSet(menuID)){
        var yDisplay = $(imgID).position().top;
        yDisplay += $(imgID).height();
        $(menuSelector).css("top", yDisplay + "px");
        SetTopPositioned(menuID);
      }
    }
    if ($.browser.msie && $.browser.version == "6.0"){
      $("select").hide();
    }
    $(menuSelector).show();
  }
  return false;
}
function rolloff(rollElement){
  var imgID = null;
  var menuID = null;
  if ($(rollElement).is("a")){
    imgID = $(rollElement).attr("imgid");
    menuID = $(rollElement).attr("menuid");
  }
  if ($(rollElement).is("img")){
    imgID = $(rollElement).attr("id");
    menuID = getMenuID(imgID);
  }
  if ($(rollElement).is("div")){
    menuID =$(rollElement).attr("id");
    imgID =  getImageID(menuID);
  }
  if (imgID != "") {
    if (imgID.indexOf("#") < 0) { imgID = "#" + imgID;}
    var imgSrc = $(imgID).attr("imgoff");
    $(imgID).attr("src", imgSrc);
  }
  if (menuID != "") {
    if (menuID.indexOf("#") < 0) { menuID = "#" + menuID;}
    if ($.browser.msie && $.browser.version == "6.0"){
      $("select").show();
    }
    $(menuID).hide();
  }
  return false;
}


var ImageMenuMap = new Array();
var ImageMenuMapCount = 0;

function AddImageMenuMap(imgID, menuID){
  ImageMenuMap[ImageMenuMapCount] = new mappingImageMenu(imgID, menuID);
  ImageMenuMapCount++;
}
function mappingImageMenu(imgID, menuID){
  this.ImageID = imgID;
  this.MenuID = menuID;
  this.LeftPositioned = false;
  this.TopPositioned = false;
}
function getMenuID(imgID){
  for(var i = 0; i < ImageMenuMap.length; i++) {
    if (ImageMenuMap[i].ImageID == imgID) {
      return ImageMenuMap[i].MenuID;
    }
  }
  return "";
}
function getImageID(menuID){
  for(var i = 0; i < ImageMenuMap.length; i++) {
    if (ImageMenuMap[i].MenuID == menuID) {
      return ImageMenuMap[i].ImageID;
    }
  }
  return "";
}

function resetAllLeftPositioning(){
  for(var i = 0; i < ImageMenuMap.length; i++) {
    ImageMenuMap[i].LeftPositioned = false;
  }
}

function IsLeftPositionSet(menuID) {
   for(var i = 0; i < ImageMenuMap.length; i++) {
    if (ImageMenuMap[i].MenuID == menuID) {
      return ImageMenuMap[i].LeftPositioned;
    }
  }
  return true;
}

function LeftPositionSet(menuID) {
   for(var i = 0; i < ImageMenuMap.length; i++) {
    if (ImageMenuMap[i].MenuID == menuID) {
      ImageMenuMap[i].LeftPositioned = true;
      break;
    }
  }
}

function IsTopPositionSet(menuID) {
   for(var i = 0; i < ImageMenuMap.length; i++) {
    if (ImageMenuMap[i].MenuID == menuID) {
      return ImageMenuMap[i].TopPositioned;
    }
  }
  return true;
}

function SetTopPositioned(menuID){
  for(var i = 0; i < ImageMenuMap.length; i++) {
    if (ImageMenuMap[i].MenuID == menuID) {
      ImageMenuMap[i].TopPositioned = true;
      break;
    }
  }
}
