

// Author: Kris Purdy
// Date: 03/04/2007

//======================================================================
var g_OriginalSubMenu = null;
var g_OriginalSelectedSubMenuItem = null;
var g_NavBar = [ { title: "Property news",submenu: {subtitles: [ "Hot areas", "Smart moves", "Affordable", "Rentals", "Buying abroad", "Legal Q &amp; As", "Money"],links:[ "http://es.homesandproperty.co.uk/property_news/hot_areas/hotareas.html", "http://es.homesandproperty.co.uk/property_news/smart_moves/smartmoves.html", "http://es.homesandproperty.co.uk/property_news/affordable/affordable.html", "http://es.homesandproperty.co.uk/property_news/rentals/rentals.html", "http://es.homesandproperty.co.uk/property_news/buying_abroad/buyingabroad.html", "http://es.homesandproperty.co.uk/property_news/legal_q_and_as/legal.html", "http://es.homesandproperty.co.uk/property_news/money/money.html"],windowMode: [ "SAME", "SAME", "SAME", "SAME", "SAME", "SAME", "SAME"]}},{ title: "Homes for sale",submenu: {subtitles: [ "Estate agents"],links:[ "http://www.homesandproperty.co.uk/agents/directory/a.html"],windowMode: [ "SAME"]}},{ title: "Homes to rent",submenu: {subtitles: [ "Estate agents"],links:[ "http://www.homesandproperty.co.uk/agents/directory/a.html"],windowMode: [ "SAME"]}},{ title: "Your space",submenu: {subtitles: [ "3D room designer", "Eco living", "Architecture", "Decorating &amp; DIY", "Design news", "Outdoors"],links:[ "http://es.homesandproperty.co.uk/your_space/3d_room_designer/3droomdesigner.html", "http://es.homesandproperty.co.uk/your_space/eco_living/ecoliving.html", "http://es.homesandproperty.co.uk/your_space/architecture/architecture.html", "http://es.homesandproperty.co.uk/your_space/decorating_and_diy/decoratingdiy.html", "http://es.homesandproperty.co.uk/your_space/design_news/designnews.html", "http://es.homesandproperty.co.uk/your_space/outdoors/outdoors.html"],windowMode: [ "SAME", "SAME", "SAME", "SAME", "SAME", "SAME"]}},{ title: "This weekend",submenu: {subtitles: [ "Events", "Getaways", "Recipes"],links:[ "http://es.homesandproperty.co.uk/this_weekend/events/events.html", "http://es.homesandproperty.co.uk/this_weekend/getaways/getaways.html", "http://es.homesandproperty.co.uk/this_weekend/recipes/recipes.html"],windowMode: [ "SAME", "SAME", "SAME"]}},{ title: "Shopping news",submenu: {subtitles: [ "Directory"],links:[ "http://www.homesandpropertydirectory.com/"],windowMode: [ "NEW"]}},{ title: "Shop",submenu: {subtitles: [],links:[],windowMode: []}},{ title: "Offers",submenu: {subtitles: [],links:[],windowMode: []}},{ title: "Blogs",submenu: {subtitles: [ "Pattie Barron", "Barbara Chandler", "Alex Denman", "Douglas Kent", "Katie Law", "David Spittles"],links:[ "http://anmblog.typepad.com/law/", "http://anmblog.typepad.com/chandler/", "http://anmblog.typepad.com/denman/", "http://anmblog.typepad.com/kent/", "http://anmblog.typepad.com/law/", "http://anmblog.typepad.com/david_spittles/"],windowMode: [ "SAME", "SAME", "SAME", "SAME", "SAME", "SAME"]}},{ title: "HandP back issues",submenu: {subtitles: [],links:[],windowMode: []}},{ title: "E-newsletter",submenu: {subtitles: [],links:[],windowMode: []}},{ title: "Search results",submenu: {subtitles: [],links:[],windowMode: []}},{title: "Evening Standard",submenu: {subtitles: [ "News", "Business", "Money", "Comment", "Sport", "Video", "Entertainment", "Life &amp; Style", "Showbiz"],links:[ "http://www.thisislondon.co.uk/standard/news/", "http://www.thisislondon.co.uk/standard-business/", "http://www.thisislondon.co.uk/money/", "http://www.thisislondon.co.uk/standard-home/columnist.do", "http://www.thisislondon.co.uk/standard-sport/", "http://www.thisislondon.co.uk/video/", "http://www.thisislondon.co.uk/home/", "http://www.thisislondon.co.uk/lifestyle/", "http://www.thisislondon.co.uk/showbiz/"],windowMode: [ "NEW", "NEW", "NEW", "NEW", "NEW", "NEW", "NEW", "NEW", "NEW"]}} ];

//======================================================================
function setOriginalSelectedSubMenuItem() {
//pre: A selected item on the top navigation sub menu.
//pst: The rel name of the selected item from the top level sub menu.
  if ($(".selectedTopNavSub").size() > 0) {
    g_OriginalSelectedSubMenuItem = $(".selectedTopNavSub").get(0).rel;
  }
}

//======================================================================
function assignTopNavEvents () {
//pre: All <a> under the <div class="topnav">.
//pst: Assigns hover events to all Top level navigation

  $(".topnav").hover(function(){},
    function () {
      backToNormTopNav(this);
    }    
  );
  $(".topnavmenu a").corner("round top 3px");
  $(".topnavmenu a").hover(
    function() {
      $(".topnavsubmenu").unbind();
      changeTopNavSubMenu(this,$(this).is("#ESNavLink"));
    },function() {}
  );
  $("a#ESNavLink").click(function(){
    g_OriginalSubMenu = $(".topnavsubmenu").html();
    $(".topnavmenu a").attr("class","");
    $(this).addClass("selectedTopNav");
  })
}

//======================================================================
function assignSearchBoxEvents () {
//pre: All <a> under the <div class="topnav">.
//pst: Assigns hover events to all Top level navigation
  $("#searchBox").focus(
    function() { 
      selectTextOnClick($("#searchBox").get(0)); 
    }
  );
}

//======================================================================
function changeTopNavSubMenu(a_NavButton,a_StartFromZero) {
//pre: A navigation button which is a first element of the global NavBar
//       array.
//pst: Dynamically changes the Top navigation Sub menu to the nav of the
//       currently mouse overed nav button.
  cacheOriginalSubMenu();
  if (hasSubMenu(a_NavButton) && a_NavButton.className.indexOf("selectedTopNav") < 0) {
    $(".topnavsubmenu span").fadeOut("slow",
      oldForNewSubMenu(a_NavButton,a_StartFromZero)
    );
  } else {
    showOriginalSubMenu(a_NavButton);
  }
  
  $(".topnavsubmenu").hover(
    function () {
      if (!isRestrictedNavClass(a_NavButton)) {
        a_NavButton.style.background = "url(http://es.homesandproperty.co.uk/handp/media/topnavbcksel_35.gif)";
        a_NavButton.style.backgroundPosition = "bottom";
        a_NavButton.style.color = "#FFFFFF";
      } 
    }, 
    function () {
      a_NavButton.style.backgroundImage = "";
      a_NavButton.style.color = "";
      $(".topnavsubmenu").unbind();    
    }
  );
}

//======================================================================
function hasSubMenu(a_NavButton) {
//pre: 
//pst: 
  var l_Return = false;
  var l_SubObj = findTopNavSubMenu(g_NavBar, a_NavButton.rel);
  if (l_SubObj.subtitles.length > 0) {
    l_Return = true;
  }
  return l_Return;
}

//======================================================================
function showOriginalSubMenu(args) {
//pre: 
//pst: 
  if ($(".topnavsubmenu span").html() != 
      $(g_OriginalSubMenu).html()) {
    $(".topnavsubmenu span").fadeOut("slow", 
      $(".topnavsubmenu").empty()
    );
    $(g_OriginalSubMenu).appendTo(".topnavsubmenu").fadeIn("slow");
  }  
}

//======================================================================
function isRestrictedNavClass(a_NavButton) {
//pre: A navigation button DOM object.
//pst: True if the DOM object is on the restricted list.
  var l_Return = false;
  if (a_NavButton.className == "selectedTopNav") {
    l_Return = true;
  }
  if (a_NavButton.id == "seachButton") {
    l_Return = true;
  }
  return l_Return;
}

//======================================================================
function cacheOriginalSubMenu() {
//pre: The global OriginalSubMenu var.
//pst: The original submenu stored in the global var.
  if (!g_OriginalSubMenu) {
    g_OriginalSubMenu = $(".topnavsubmenu").html();
  } 
}

//======================================================================
function oldForNewSubMenu(a_NavButton,a_SizeFromZero) {
//pre: A nav link from the toplevel navigation.
//pst: Deletes the original sub menu then inserts a hidden nav span 
//       into the page and then fades it in.
  $(".topnavsubmenu").empty();
  var l_Link = a_NavButton.rel;
  var l_SubObj = findTopNavSubMenu(g_NavBar, l_Link);
  var l_InsSubMenu = insertTopNavSubMenu(l_SubObj);
  if (!a_SizeFromZero) {
    l_InsSubMenu.get(0).style.left = parseInt(getAbsLeft(a_NavButton)
      - getAbsLeft($(".topnav").get(0)) + 5) + "px";
    l_InsSubMenu.get(0).style.width = "80%";
  } else {
    l_InsSubMenu.get(0).style.right = "25px";
  }
  l_InsSubMenu.get(0).style.display = "none";
  l_InsSubMenu.fadeIn("slow");
}

//======================================================================
function findTopNavSubMenu(a_Arr, a_Name) {
//pre: An array of submenu objects and a menu element name.
//pst: A submenu object of the name: a_Name.
  var l_Return = null;
  for (var i = 0; i < a_Arr.length; i++) {
    if (a_Arr[i].title == a_Name) {
      l_Return = a_Arr[i].submenu;
    } 
  }
  return l_Return;
}

//======================================================================
function insertTopNavSubMenu(a_NavObj) {
//pre: A submenu object.
//pst: A new span with submenu items inserted into HTML as display:none.
  var l_SubTitles = a_NavObj.subtitles;
  var l_Links = a_NavObj.links;
  var l_WindowMode = a_NavObj.windowMode;
  l_HTML = "";
  for (var i = 0; i < l_SubTitles.length; i++) {
    l_HTML += "<a rel='" + l_SubTitles[i] + "' href='" 
      + l_Links[i] +"'";
    if (l_WindowMode[i]=="NEW" ) {
      l_HTML += " target='_blank'"
    }
    if (g_OriginalSelectedSubMenuItem == l_SubTitles[i]) {
      l_HTML += " class='selectedTopNavSub'"
    }
    l_HTML += ">" + l_SubTitles[i] + "</a>"
  }
  var l_SubObj = $("<span>" + l_HTML + "</span>").appendTo(".topnavsubmenu");
  return l_SubObj;
}

//======================================================================
function backToNormTopNav(a_NavButton) {
//pre: A topmenu DOM object.
//pst: The original top navigation menus.
  //alert($(g_OriginalSubMenu).html());
  //alert($(".topnavsubmenu span").html());
  
  if (a_NavButton.className == "topnav" && g_OriginalSubMenu && 
    $(g_OriginalSubMenu).html() != $(".topnavsubmenu span").html()) {
    $(".topnavsubmenu span").fadeOut("slow", 
      $(".topnavsubmenu").empty()
    );
    $(g_OriginalSubMenu).appendTo(".topnavsubmenu").fadeIn("slow");
  }
}

