/*jQuery MegaMenu Plugin
Author: Devadatta Sahoo
Author URI: http://www.geektantra.com */
var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;
(function($) {
  $.fn.extend({
    isChildOf: function(filter_string) {
      var parents = $(this).parents().get();
      for (j = 0; j < parents.length; j++) {
        if ($(parents[j]).is(filter_string))
          return true;
      }
      return false;
    }
  });
})(jQuery);
var clickedEle='';
var clickmenu;
var clickmenuparentno;
var clickmenucont;
var clickmenuclass;
var clickmenucontcls;
var clickmenucontopt;
var clickmenuparent;
var parentNodeID="";
jQuery.fn.megamenu = function(ContentClass, Options) {
  var lattr = $(this).attr("class");
  if (lattr == undefined) lattr = '';
  var MenuClass = lattr.split(" ")[0];
  var ParentNodeNumber = 0;
  Options = jQuery.extend({
    width: "auto",
    justify: "left"
  }, Options);
  $(ContentClass).after('  <div id="MegaMenuContentShadow" ></div><div id="MegaMenuContent" style="display: none;z-index:1000"></div>');
  $(this).click(function() {
    clickmenu = $(this);
    clickmenuclass = MenuClass;
    if (parentNodeID != "") {
      $("#" + parentNodeID.replace("td", "a")).css("color", menucolor);
      $("#" + parentNodeID).css("background-color", "");
    }
    $("#topmenu").css("background-color", "");
    //$("#topmenu").css("background-image", "url(App_Themes/Default/Images/menubarbg.jpg)");
    $(this).css("color", hovercolor);

    var ParentID = $(this).parent().attr("id");
    parentNodeID = ParentID;
    if ($('#MegaMenuContent').is(":visible")) {
      MegaMenuMouseOut(ParentNodeNumber, MenuClass, ContentClass);
      if (ParentID == clickedEle) return;
    }
    clickedEle = ParentID;
    //var MenuContent = $(this).next('.MegaMenuContent').html();
    var MenuContent = $('.MegaMenuContent', $(this.parentNode)).html();
    ParentNodeNumber = $('.' + MenuClass).index(this);
    clickmenuparentno = ParentNodeNumber;
    clickmenucont = MenuContent;
    clickmenuclass = MenuClass;
    clickmenucontcls = ContentClass;
    clickmenucontopt = Options;
    clickmenuparent = ParentID;
    MegaMenuMouseOver(ParentNodeNumber, MenuContent, "click", MenuClass, ContentClass, Options, ParentID);
  });
  $(document).bind('click', function(e) {
    var $clicked = $(e.target);
    if ($clicked.isChildOf('#MegaMenuContent') || $clicked.is('#MegaMenuContent') || $clicked.is('.' + MenuClass)) {
    }
    else {
      MegaMenuMouseOut(ParentNodeNumber, MenuClass, ContentClass);
    }
  });
};

function MegaMenuMouseOver(ParentNodeNumber, MenuContent, state, MenuLinkClass, MenuContentClass, Options, ParentID, DontHide) {
  if (MenuContent == "null")
    MenuContent = "";
  try {
    var MenuLinkClass = (typeof (MenuLinkClass) == 'undefined') ? ".MegaMenuLink" : MenuLinkClass;
    var MenuContentClass = (typeof (MenuContentClass) == 'undefined') ? ".MegaMenuContent" : MenuContentClass;

    //var Options = eval('(' + Options + ')');
    if (state == "hover")
      $('.' + MenuLinkClass).removeClass(MenuLinkClass + 'Active');
    $('.' + MenuLinkClass).eq(ParentNodeNumber).addClass(MenuLinkClass + 'Active');

    var selfNode = new Array();
    selfNode['width'] = $('.' + MenuLinkClass).eq(ParentNodeNumber).width();
    selfNode['padding-left'] = parseInt($('.' + MenuLinkClass).eq(ParentNodeNumber).css('padding-left').replace(/px/g, ''));
    selfNode['padding-right'] = parseInt($('.' + MenuLinkClass).eq(ParentNodeNumber).css('padding-right').replace(/px/g, ''));
    selfNode['border-left-width'] = parseInt($('.' + MenuLinkClass).eq(ParentNodeNumber).css('border-left-width').replace(/px/g, ''));
    selfNode['border-right-width'] = parseInt($('.' + MenuLinkClass).eq(ParentNodeNumber).css('border-right-width').replace(/px/g, ''));
    if (isIE6)
      selfNode['width'] = selfNode['width'] + 10;

    if (Options['justify'] == "left") {
      var LeftPos = $('.' + MenuLinkClass).eq(ParentNodeNumber).parent().position().left;
      if (Options['width'] == 'auto')
        LeftPos = $('.' + MenuLinkClass).eq(ParentNodeNumber).position().left - 5;

      var lpos = parseInt(ParentID.replace("td", ""));
      if ($('#tblMenu').find('tr')[1].cells.length == lpos + 1) { //final column only 
        LeftPos = LeftPos - $("#" + ParentID).width() - 30;
      }
    }
    else {
      var RightPos = $('.' + MenuLinkClass).eq(ParentNodeNumber).parent().position().left;
      if (Options['width'] == 'auto')
        RightPos = $(document).width() - 10 - $('.' + MenuLinkClass).eq(ParentNodeNumber).position().left - selfNode['width'] - selfNode['padding-left'] - selfNode['padding-right'] - selfNode['border-left-width'] - selfNode['border-right-width'];
    }

    //    var TopPos = $('.' + MenuLinkClass).eq(ParentNodeNumber).height() + $('.' + MenuLinkClass).eq(ParentNodeNumber).position().top + parseInt($('.' + MenuLinkClass).eq(ParentNodeNumber).css("padding-top").replace(/px/g, '')) + parseInt($('.' + MenuLinkClass).eq(ParentNodeNumber).css("padding-bottom").replace(/px/g, '')) + parseInt($('.' + MenuLinkClass).eq(ParentNodeNumber).css("border-top-width").replace(/px/g, ''));

    var TopPos_A = $('.' + MenuLinkClass).eq(ParentNodeNumber).height();
    var TopPos_B = $('.' + MenuLinkClass).eq(ParentNodeNumber).position().top;
    var TopPos_C = parseInt($('.' + MenuLinkClass).eq(ParentNodeNumber).css("padding-top").replace(/px/g, ''));
    var TopPos_D = parseInt($('.' + MenuLinkClass).eq(ParentNodeNumber).css("padding-bottom").replace(/px/g, ''));
    var TopPos_E = parseInt($('.' + MenuLinkClass).eq(ParentNodeNumber).css("border-top-width").replace(/px/g, ''));
    var TopPos = (isNaN(TopPos_A) ? 0 : TopPos_A) +
                  (isNaN(TopPos_B) ? 0 : TopPos_B) +
                  (isNaN(TopPos_C) ? 0 : TopPos_C) +
                  (isNaN(TopPos_D) ? 0 : TopPos_D) +
                  (isNaN(TopPos_E) ? 0 : TopPos_E);

    MenuContent = unescape(MenuContent);

    if (LeftPos || LeftPos === 0) {
      $("#MegaMenuContent").css('left', (LeftPos) + 'px');
      $("#MegaMenuContentShadow").css('left', (LeftPos) + 'px');
    }
    else {
      $("#MegaMenuContent").css('right', RightPos + 'px');
      $("#MegaMenuContentShadow").css('right', (RightPos - 4) + 'px');
    }

    TopPos = TopPos -1;
//    var pos = $("#topmenu").offset();
//    TopPos = pos.top + 46;

    $("#" + parentNodeID).css("background-color", selbgcolor);
    //$("#topmenu").css("background-color", selbgcolor);
    //$("#topmenu").css("background-image", "url(App_Themes/Default/Images/menubarbg_hover.jpg)");
    $("#MegaMenuContent").css('top', TopPos + 'px');
    $("#MegaMenuContentShadow").css('top', TopPos + 'px');
    $("#MegaMenuContent").css('border-top', 'solid 10px ' + selbgcolor);
    $("#MegaMenuContentShadow").css('border-top', 'solid 10px ' + selbgcolor);

    if (DontHide) return;
    $('#MegaMenuContentHeader').show();

    $("#MegaMenuContent").html('' + MenuContent);
    $("#MegaMenuContent").slideDown("fast");

    $("#MegaMenuContentShadow").html('' + MenuContent);
    $("#MegaMenuContentShadow").slideDown("fast");

//    $("#MegaMenuContent",$("#"+ parentNodeID)).html('' + MenuContent);
//    $("#MegaMenuContent", $("#" + parentNodeID)).slideDown("fast");

//    $("#MegaMenuContentShadow", $("#" + parentNodeID)).html('' + MenuContent);
//    $("#MegaMenuContentShadow", $("#" + parentNodeID)).slideDown("fast");

    if ($.fn._hover) {
      $("#MegaMenuContent,#MegaMenuContentShadow,#MegaMenuContentHeader")._hover(function() {
      MenuContentHoverIn(MenuLinkClass, ParentNodeNumber, MenuContent);
      }, function() {
      MenuContentHoverOut(MenuLinkClass, ParentNodeNumber, MenuContent);
      });
    } else {
      $("#MegaMenuContent,#MegaMenuContentShadow,#MegaMenuContentHeader").hover(function() {
        MenuContentHoverIn(MenuLinkClass, ParentNodeNumber);
      }, function() {
        //MenuContentHoverOut(MenuLinkClass, ParentNodeNumber);
      });
    }

    if (MenuContent == "null")
      MenuContent =""
    
    if ((document.getElementById(parentNodeID).className == "menu_link hide") || (document.getElementById(parentNodeID).className == "menu_link_lastmenu hide"))
    {
      $("#MegaMenuContent").hide();
      $("#MegaMenuContentShadow").hide();
    }
    
    if (MenuContent == "") {
      document.title = MenuContent;
      $("#MegaMenuContent").hide();
      $("#MegaMenuContentShadow").hide();
    }
    if (Options['width']) {
      /*$("#MegaMenuContent").css('width', Options['width']);
      $("#MegaMenuContentShadow").css('width', Options['width']);*/

      /*var li = 0;
      var lwid = 0;
      var llen = ParentNodeNumber;
      if (ParentID != '') llen = parseInt(ParentID.replace("td", ""));
      for (li = 0; li < llen; li++) {
      lwid += $('#td' + li).width();
      }
      var lwidth = $('#tblMenu').width();
      if (lwid < lwidth) lwidth = lwidth - lwid;
      var ldocw = $("#" + ParentID.replace("td", "tbl")).width();
      if (ldocw > lwidth) lwidth = ldocw;
      $("#MegaMenuContent").css('width', lwidth + "px");
      $("#MegaMenuContentShadow").css('width', lwidth + "px");
      $('.MegaContent').css("width", lwidth - 20 + "px");*/
    }
  } catch (e) { }
}

function MenuContentHoverIn(MenuLinkClass, ParentNodeNumber, MenuContent) {
  $('#MegaMenuContentHeader').show();
  $('#MegaMenuContent').show();
  $('#MegaMenuContentShadow').show();
  $('.' + MenuLinkClass).removeClass(MenuLinkClass + 'Active');
  $('.' + MenuLinkClass).eq(ParentNodeNumber).addClass(MenuLinkClass + 'Active');
  //alert(MenuLinkClass);
  //.MegaContent .MegaLinkHdr:hover{background-image:url(http://localhost/FAZ/dealer1/files/Menu/1_25.png)
}

function MenuContentHoverOut(MenuLinkClass, ParentNodeNumber, MenuContent) {
    try {
    
  $('#MegaMenuContentHeader').hide();
  $("#MegaMenuContentShadow").hide();
  $("#a" + ParentNodeNumber).css("color", menucolor);
  $("#" + parentNodeID).css("background-color", "");
  $("#topmenu").css("background-color", "none");
  //$("#topmenu").css("background-image", "url(App_Themes/Default/Images/menubarbg.jpg)");
  
  $("#MegaMenuContent").hide();
  $('.' + MenuLinkClass).removeClass(MenuLinkClass + 'Active');
}
catch (e) { }
}

function MegaMenuMouseOut(ParentNodeNumber, MenuLinkClass, MenuContentClass) {
  $('#MegaMenuContentHeader').hide();
  $('#MegaMenuContent').hide();
  $('#MegaMenuContentShadow').hide();

  var MenuLinkClass = (typeof (MenuLinkClass) == 'undefined') ? ".MegaMenuLink" : MenuLinkClass;
  try
    {
      $('.' + MenuLinkClass).eq(ParentNodeNumber).removeClass(MenuLinkClass + 'Active');
    }
    catch (e) { }
}

/*Found in Page Header*/
$(document).ready(function() {
  var SelfLocation = window.location.href.split('?');
  switch (SelfLocation[1]) {
    case "defined_width":
      $(".MegaMenuLink").megamenu(".MegaMenuContent", { width: "850px" });
      break;
    case "auto_width_right":
      $(".MegaMenuLink").megamenu(".MegaMenuContent", { justify: "right" });
      $('.MegaMenu').css("text-align", "right");
      break;
    case "defined_width_right":
      $(".MegaMenuLink").megamenu(".MegaMenuContent", { justify: "right", width: "850px" });
      $('.MegaMenu').css("text-align", "right");
      break;
    default:
      $(".MegaMenuLink").megamenu(".MegaMenuContent");
      break;
  }
  try {
    $("#MegaMenuContentHeader").css("top", $('#tblMenu').position().top + $('#tblMenu').height() + 'px');    
    $("#MegaMenuContentHeader").css("left", $('#tblMenu').position().left + 'px');
    $("#MegaMenuContentHeader").css("width", $('#tblMenu').width() + "px");
  } catch (e) { }

  $(window).resize(function() {
    $("#MegaMenuContentHeader").css("left", $('#tblMenu').position().left + 'px');
    $("#MegaMenuContentHeader").css("width", $('#tblMenu').width() + "px");    
    MegaMenuMouseOver(clickmenuparentno, clickmenucont, "click", clickmenuclass, clickmenucontcls, clickmenucontopt, clickmenuparent,true);
  });
  
});

/**/
