/* :focus Selector implementieren (für jQuery pre-1.6) */
jQuery.expr[':'].focus = function( elem ) {
  return elem === document.activeElement && ( elem.type || elem.href );
};

(function ($) {

/**
*  Navigationsmenü:
*  Die Elemente der Navigation sind Blöcke, deren Inhalt mittels
*  CSS standardmäßig verborgen wird. Bei Mouseover des Titels wird
*  der Inhalt ein-, bei Mouseout ausgeblendet.
*  Erhält ein Input-Feld eines Blocks Fokus, wird der Ausblendemechanismus
*  ausgeschalten, bis das Feld den Fokus wieder verliert.
*/

var dontHide = false;
var visEl;

function showMenuElement(el) {
  visEl = el;
  el.children(".content").show(); //slideDown("fast");
}
  
function hideMenuElement(el) {
  el.children(".content").hide(); //slideUp("fast");
}
  
$(document).ready(function(){
  var expand = $("#navigation div.region-navigation > div.block:not(#block-system-main-menu)");
  expand.hover(
    function(){  // mouseenter:
      $(this).data('mouseIn', true);
      if(! dontHide) {
        showMenuElement($(this));
      }
    },
    function(){  // mouseleave:
      $(this).data('mouseIn', false);
      if(! dontHide) {
        hideMenuElement($(this));
      }
    });
  expand.find("input").focus(function() {
    dontHide = true;
  }).focusout(function() {
    var el = $(this).closest("div.block");
    if($(":focus").parents().filter(el).length == 0) {
      dontHide = false;
      if(! el.data('mouseIn')) {
        hideMenuElement(el);
      }
    }
  });
  expand.find("h2.block-title").click(function(){ // Klick auf Titel:
    if(! ($(this).get(0) === visEl.find("h2.block-title").get(0))) {
      showMenuElement($(this).closest("div.block"));
    }
  });
  
  // Login-Formular
  $('#navigation label[for^="edit-name"], #navigation label[for^="edit-pass"]').hide();
  var eName = $('#navigation input[name="name"]');
  var eNLabel = $('#navigation label[for^="edit-name"]').text();
  eNLabel = eNLabel.substr(0, eNLabel.length-2);
  if(eName.val() === '') {
    eName.val(eNLabel);
  }
  eName.focus(function() {
    if(eName.val() == eNLabel) {
      eName.val('');
    }
  }).blur(function() {
    if(eName.val() === '') {
      eName.val(eNLabel);
    }
  });

  var ePass = $('#navigation input[name="pass"]').hide();
  var ePLabel = $('label[for^="edit-pass"]').text();
  ePLabel = ePLabel.substr(0, ePLabel.length-2);
  var ePassText = document.createElement("input");
  ePassText.setAttribute("id", "edit-pass-text");
  ePassText.setAttribute("type","text");
  ePassText.value = ePLabel;
  ePass.after(ePassText);
  $('#edit-pass-text').focus(function() {
    $('#edit-pass-text').hide();
    ePass.show().focus();
  });
  ePass.blur(function() {
    if (ePass.val() === '') {
      ePass.hide();
      $('#edit-pass-text').show();
    }
  });
});
 
}(jQuery));
;

