//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Funktionen fuer das Meneu
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var undefined;
var istbild=0;
var warbild=0;
var uistbild=0;
var uwarbild=0;
var sistbild=0;
var swarbild=0;


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Allgemeine Funktionen
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// onMouseover Funktion Hauptmenü
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var menu=new Array;
var menu2=new Array;
var menu3=new Array;
var menu4=new Array;

for (var i=1;i<11;i++){
  menu[i] = new Image();
  menu2[i] = new Image();
  menu3[i] = new Image();
  menu4[i] = new Image();
  menu[i].src="../grafik/hmen_"+i+".gif";
  menu2[i].src="../grafik/hmen_"+i+"_.gif";
  menu3[i].src="../grafik/hmen_"+i+"__.gif";
  menu4[i].src="../grafik/hmen_"+i+"___.gif";
}

function over(x){
  warbild=istbild;
  if (warbild != x){
    document.images["hmen"+x].src=menu3[x].src;
  }
}

function einelinie(x)
{
  if (moveISRunning)
  {
    warbild=istbild;
		if (warbild != x)
		{
		  document.images["hmen"+x].src=menu4[x].src;
    }
  }
  
  warbild=istbild;

  if (warbild != x)
  {
	  document.images["hmen"+x].src=menu2[x].src;
  }
}



function out(x){
  warbild=istbild;
  if (warbild != x){
    document.images["hmen"+x].src=menu[x].src;
  }
}

function fix(x){
  if (moveISRunning){
    return;
  }
  warbild=istbild;

  if (warbild != 0){
    document.images["hmen"+warbild].src=menu[warbild].src;
  }
  if (x != 0){
    document.images["hmen"+x].src=menu2[x].src;
  }
  istbild=x;
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// onMouseover Funktion Untermenü
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var umenu=new Array;
var umenu2=new Array;

for (var i=1;i<21;i++){
  umenu[i] = new Image();
  umenu2[i] = new Image();
  umenu[i].src="http://www.urbans-hof.de/grafik/umenue_"+i+".gif";
  umenu2[i].src="http://www.urbans-hof.de/grafik/umenue_"+i+"_.gif";
}

function u_over(x){
  document.images["umen"+x].src=umenu2[x].src;
}

function u_out(x){
  uwarbild=uistbild;
  if (uwarbild != x){
    document.images["umen"+x].src=umenu[x].src;
  }
}

function u_steht(x){
  uwarbild=uistbild;

  if (uwarbild != 0){
    document.images["umen"+uwarbild].src=umenu[uwarbild].src;
  }
  if (x != 0){
    document.images["umen"+x].src=umenu2[x].src;
  }
  uistbild=x;
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// onMouseover Funktion Servicemenü
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var smenu=new Array;
var smenu2=new Array;

for (var i=1;i<5;i++){
  smenu[i] = new Image();
  smenu2[i] = new Image();
  smenu[i].src="http://www.urbans-hof.de/grafik/service_"+i+".gif";
  smenu2[i].src="http://www.urbans-hof.de/grafik/service_"+i+"_.gif";
}

function s_over(x){
  document.images["smen"+x].src=smenu2[x].src;
}

function s_out(x){
  swarbild=sistbild;
  if (swarbild != x){
    document.images["smen"+x].src=smenu[x].src;
  }
}



//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Funktion zum dynamischen Setzen eines layer-Ausdrucks
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++

function ausdruckSetzen()
{

  var idname = ausdruckSetzen.arguments[0];

  if (document.getElementById(idname))
  {
    return document.getElementById(idname);
  }
  else
  {
    //alert('Es gibt keinen Layer mit der id \'' + idname + '\'');
    return undefined;
  }

}


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Untermenü ein-/ausblenden
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++

var waruntermen = 0;
var istuntermen = 0;
var moveISRunning = false;

function untermenue(name,x,aElem)
{
  if (moveISRunning){
    return;
  }
  waruntermen = istuntermen;

  if (waruntermen != 0)
  {
    var id = String(name + waruntermen);
    var ausdruck = ausdruckSetzen(id);
    ausdruck.className = 'untermenu';

    if (ausdruck != undefined)
    {
     
      var origHeight = getElementHeight(ausdruck);
      if (origHeight == undefined){
        origHeight = parseFloat(ausdruck.offsetHeight);
      }
      ausdruck.style.height = origHeight + 'px';
      var timeoutHide = undefined;   
      function moveUntermenuHide(elem, origHeight, aElem, e){
        moveISRunning = true;
        if (timeoutHide){
          window.clearTimeout(timeoutHide);
        }
        if (parseFloat(elem.style.height) <= 0) {
          elem.style.display = 'none';
          elem.style.height = 'auto';
          moveISRunning = false;
          if (aElem && aElem.href && (! aElem.href.match(/^javascript/))){
            window.location = aElem.href;
          }
          return;
        }
        var diff = 3;
        if (parseFloat(elem.style.height) < diff){
          diff = parseFloat(elem.style.height);
        }
        elem.style.display = 'block';
        elem.style.height = parseFloat(parseFloat(elem.style.height) - diff) + 'px';
        var f = function (e) {moveUntermenuHide(elem, origHeight, aElem, e)};
        return timeoutHide = window.setTimeout(f,'15');
      }
      moveUntermenuHide(ausdruck, origHeight, aElem);
      //ausdruck.style.display = 'none';
    }
  } else {
    if (aElem && aElem.href && (! aElem.href.match(/^javascript/))){
      window.location = aElem.href;
    }
  }

  if (x != 0)
  {
    if (x != waruntermen)
    {
      var id = String(name + x);
      var ausdruck = ausdruckSetzen(id);

      if (ausdruck != undefined)
      {
        var origHeight = getElementHeight(ausdruck);
        ausdruck.style.height = '0px';
        ausdruck.style.overflow = 'hidden';
     
        var timeoutShow = undefined;   
        function moveUntermenuVisible(elem, origHeight, e){
          moveISRunning = true;
          if (timeoutShow){
            window.clearTimeout(timeoutShow);
          }
          if (parseFloat(elem.style.height) >= origHeight) {
            moveISRunning = false;
            return;
          }
          var diff = 3;
          if (parseFloat(origHeight - parseFloat(elem.style.height)) < diff){
            diff = parseFloat(origHeight - parseFloat(elem.style.height));
          }
          elem.style.display = 'block';
          elem.style.height = parseFloat(parseFloat(elem.style.height) + diff) + 'px';
          var f = function (e) {moveUntermenuVisible(elem, origHeight, e)};
          return timeoutShow = window.setTimeout(f,'50');
        }
        moveUntermenuVisible(ausdruck, origHeight, aElem);
      }
    }
  }

  if (waruntermen == x)
  {
    istuntermen = 0;
  }
  else
  {
    istuntermen = x;
  }

}


function getElementHeight(elem){
  if (! elem){
    return;
  }
  
  var clone = elem.cloneNode(true);
  clone.style.visibility = 'visible';
  clone.style.display = 'block';
  document.getElementsByTagName("body")[0].appendChild(clone);
  var h =  parseFloat(clone.offsetHeight);
  document.getElementsByTagName("body")[0].removeChild(clone);
  return h;
  
  //return parseFloat(elem.offsetHeight);
}


var undefined;

function Menu() {
  
}

Menu._unsetFocusBorder = function () {
  var arr = document.getElementsByTagName('a');
  if (arr){
    for (var i=0; i<arr.length; i++) {
      arr[i].onfocus = arr[i].blur;
    }
  }
}

Menu._getOnLoadActiveItem = function () {
  var arr = document.getElementsByTagName('div');
  if (arr){
    for (var i=0; i<arr.length; i++) {
      var elem = arr[i];
      if (! (elem.className && elem.className.toString().match(/active\-item/))){
        continue;
      }
      var idx = elem.id.toString().replace(/^o/,'');
      Menu.setLoadActiveItem(idx);
      return; 
    }
  }
}

Menu.init = function () {
  Menu._unsetFocusBorder();
  Menu._getOnLoadActiveItem();
}

Menu.setLoadActiveItem = function (idx) {
  if (arguments.length != 1){
    return undefined; 
  }
  var elem = document.getElementById(idx);
  if (! elem){
    return;
  }
  Menu._activeItem = elem;
}

Menu.displayItem = function (elem, status) {
  if (Menu._inUse){
    return;
  }
  if (arguments.length != 2){
    return;
  }
  if (Menu._activeItem == elem){
    return;
  }
  var outerElem = Menu._getOuterElem(elem);
  if (! outerElem){
    return;
  }
  if (status == 'on'){
    outerElem.style.height = outerElem.offsetHeight + 'px';
    Menu._setOutElemClassActive(outerElem); 
    if (document.all){
      Menu._updateIEBackgroundPosition(outerElem);
    }
  } else {
    Menu._setOutElemClassInActive(outerElem);
  }
}       

Menu.clickItem = function (elem) {
  if (Menu._inUse){
    return;
  }
  if (arguments.length != 1){
    return;
  }
  var outerElem = Menu._getOuterElem(elem);
  var activeOuterElem = Menu._getOuterElem(Menu._activeItem);
  if (! outerElem){
    return;
  }
  if (elem == Menu._activeItem){
    Menu._closeItem(outerElem);
    Menu._activeItem = undefined;
    return;
  }
  var returnMehtod = undefined;
  outerElem.style.height = outerElem.offsetHeight + 'px';
  Menu._setOutElemClassActive(outerElem); 
  if (Menu._activeItem && activeOuterElem){
    returnMehtod = function () {Menu._openItem(outerElem, undefined, Menu._openURL(elem))};
    Menu._closeItem(activeOuterElem, undefined, returnMehtod);
  } else {
    Menu._openItem(outerElem, undefined, Menu._openURL(elem));
  }
  Menu._activeItem = elem;
}      

Menu._openItem = function (outerElem, endPoint, returnMehtod) {
  if (Menu._timeOut){
    window.clearTimeout(Menu._timeOut);
  }
  if (arguments.length < 1){
    Menu._inUse = false;
    return; 
  }
  Menu.displayItem(Menu._getElemFromOuter(outerElem), 'on');
  var subElem = Menu._getSubElem(outerElem);
  if (! subElem){
    Menu._setOutElemClassActive(outerElem);
    Menu._inUse = false;
    if (returnMehtod){
      returnMehtod();
    }
    return;
  }
  Menu._inUse = true;
  if (endPoint == undefined){
    endPoint = parseFloat(Menu._getElemFromOuter(outerElem).offsetHeight + subElem.offsetHeight);
  }
  if (parseFloat(outerElem.offsetHeight) == endPoint){
    Menu._setOutElemClassActive(outerElem);
    Menu._inUse = false;
    if (returnMehtod){
      returnMehtod();
    }
    return;
  }
  var height = parseFloat(outerElem.offsetHeight + Menu._pxRate);
  if (height > endPoint){
    height = endPoint;
  }
  outerElem.style.height = height + 'px'; 
  if (document.all){
    Menu._updateIEBackgroundPosition(outerElem);
  }
  var func = function () {
    Menu._openItem(outerElem, endPoint, returnMehtod);
  }
  Menu._timeOut = window.setTimeout(func, Menu._timeDelay);
}         

Menu._closeItem = function (outerElem, endPoint, returnMehtod) {
  if (Menu._timeOut){
    window.clearTimeout(Menu._timeOut);
  }
  if (arguments.length < 1){
    Menu._inUse = false;
    return; 
  }
  var subElem = Menu._getSubElem(outerElem);
  if (! subElem){
    Menu._setOutElemClassInActive(outerElem);
    Menu._inUse = false;
    if (returnMehtod){
      returnMehtod();
    }
    return;
  }
  Menu._inUse = true;
  if (endPoint == undefined){
    endPoint = parseFloat(Menu._getElemFromOuter(outerElem).offsetHeight);
  }
  if (outerElem.offsetHeight <= endPoint){
    Menu._setOutElemClassInActive(outerElem);
    Menu._inUse = false;
    if (returnMehtod){
      returnMehtod();
    }
    return;
  }
  var height = parseFloat(outerElem.offsetHeight - Menu._pxRate);
  if (height < endPoint){
    height = endPoint;
  }
  outerElem.style.height = height + 'px'; 
  if (document.all){
    Menu._updateIEBackgroundPosition(outerElem);
  }
  var func = function () {
    Menu._closeItem(outerElem, endPoint, returnMehtod);
  }
  Menu._timeOut = window.setTimeout(func, Menu._timeDelay);
} 

Menu._openURL = function (elem){
  if (arguments.length != 1){
    return undefined; 
  }
  if (! elem){
    return;
  }
  if (! elem.href){
    return;
  }  
  if (elem.href.toString().toLowerCase().match(/^javascript/)){
    return;
  }
  window.location = elem.href;
}

Menu._updateIEBackgroundPosition = function (outerElem) {
  if (arguments.length != 1){
    return undefined; 
  }
  if (!outerElem) {
    return undefined; 
  }
  var posTop = parseFloat(outerElem.offsetHeight-1);
  outerElem.style.backgroundPosition = '0 ' + posTop + 'px';
  return;
}       

Menu._getOuterElem = function (elem) {
  if (arguments.length != 1){
    return undefined; 
  }
  if (!elem) {
    return undefined; 
  }
  var idx = elem.id;
  var outerIdx = Menu._idxPrefixOuterElem + '' + idx;
  var outerElem = document.getElementById(outerIdx);
  return outerElem;
}      

Menu._getElemFromOuter = function (outerElem) {
  if (arguments.length != 1){
    return undefined; 
  }
  if (!outerElem) {
    return undefined; 
  }
  var idx = outerElem.id.toString().replace(/^o/,'');
  var elem = document.getElementById(idx);
  return elem;
} 

Menu._getSubElem = function (outerElem) {
  if (arguments.length != 1){
    return undefined; 
  }
  if (! outerElem){
    return undefined; 
  }
  for (var i=0; i<outerElem.childNodes.length; i++){
    var child = outerElem.childNodes[i];
    if (child.nodeName.toLowerCase() != 'div'){
      continue;
    }
    if (child.className != Menu._subItemClass){
      continue;
    }
    return child;
  }
  return undefined;
}

Menu._setOutElemClassActive = function (outerElem){
  outerElem.className = Menu._outerItemActiveClass;
}

Menu._setOutElemClassInActive = function (outerElem){
  outerElem.className = Menu._outerItemClass;
}

Menu._ItemLength = 9;
Menu._idxPrefixOuterElem = 'o';
Menu._activeItem = undefined;
Menu._inUse = false;
Menu._timeOut = undefined;
Menu._timeDelay = 100;
Menu._subItemClass = 'sub-menu-item';
Menu._outerItemClass = 'main-menu-item'; 
Menu._outerItemActiveClass = 'main-menu-item active-item';
Menu._pxRate = 4;
Menu._mouseOverElem = undefined;
