// Get the current year to use in the menus
now = new Date();
cy = now.getFullYear();
cy = 2006;
var webroot = "http://www.villa-glaeser.de";

// Netscape stuff
function NS_NS7 () {
  return (DefineBrowser() == "NS/NS7" ? 1 : 0);
}
function NS_NS6 () {
  return (DefineBrowser() == "NS/NS6" ? 1 : 0);
}
function NS_NN4() {
  return (DefineBrowser() == "NS/NN4" ? 1 : 0);
}
function NS_NS3 () {
  return (DefineBrowser() == "NS/NS3" ? 1 : 0);
}
function NS_AW67 () {
  return (DefineBrowser() == "NS/AW67" ? 1 : 0);
}
function NS_GECKO () {
  return (DefineBrowser() == "NS/GECKO" ? 1 : 0);
}

function MM_reloadPage(init) {
	
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
MM_reloadPage(true);

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}




// Microsoft stuff
function MS_IE6 () {
  return (DefineBrowser() == "MS/IE6" ? 1 : 0);
}
function MS_IE5 () {
  return (DefineBrowser() == "MS/IE5" ? 1 : 0);
}
function MS_IE4 () {
  return (DefineBrowser() == "MS/IE4" ? 1 : 0);
}
function MS_IE3 () {
  return (DefineBrowser() == "MS/IE3" ? 1 : 0);
}
// Others
function OP6_NS6 () {
  return (DefineBrowser() == "OP6/NS6" ? 1 : 0);
}
function KQ31 () {
  return (DefineBrowser() == "KQ31" ? 1 : 0);
}
function GECKO () {
  return (DefineBrowser() == "GECKO" ? 1 : 0);
}


function DefineBrowser() {

  var BrowserType = "<div class=warning>[undetermined]</div>";


  switch (navigator.appName) {

  // Netscape browsers
  case "Netscape":
    if (navigator.appVersion.search("5.") != -1) {
      if (navigator.userAgent.search("Netscape6") != -1)
        BrowserType = "NS/NS6";
      else if (navigator.userAgent.search("Netscape/7") != -1)
        BrowserType = "NS/NS7";
      else if (navigator.userAgent.search("Opera 6.0") != -1)
          BrowserType = "OP6/NS6";
      else if (navigator.userAgent.search("AppleWebKit") != -1)
          BrowserType = "NS/AW67";
      else if (navigator.userAgent.search("Gecko") != -1)
          BrowserType = "NS/GECKO";


    } else

      if (navigator.appVersion.search("4.") != -1) {
        if (navigator.userAgent.search("Opera 6.0") != -1)
          BrowserType = "OP6/NN4";
        else
          BrowserType = "NS/NN4";
        }
      else
        if (navigator.appVersion.search("3.") != -1) {
          if (navigator.userAgent.search("Opera 6.0") != -1)
            BrowserType = "OP6/NS3";
          else
            BrowserType = "NS/NS3";
       }

    break;


  // Microsoft browsers
  case "Microsoft Internet Explorer" :
    if (navigator.userAgent.search("MSIE 6") != -1 ) {
      if (navigator.userAgent.search("Opera 6.0") > 0)
        BrowserType = "OP6/IE6";
      else
        BrowserType = "MS/IE6";
      } else
      if (navigator.userAgent.search("MSIE 5") != -1 ) {
        if (navigator.userAgent.search("Opera 6.0") != -1)
          BrowserType = "OP6/IE5";
        else
          BrowserType = "MS/IE5";
        }
        else
          if (navigator.userAgent.search("MSIE 4") != -1)
            BrowserType = "MS/IE4";
          else
            if (navigator.appVersion.search("3.") != -1)
              BrowserType = "MS/IE3";

    break;


  // Other browsers
  case "Opera" :
    if (navigator.userAgent.search("Opera/6.0") != -1)
      BrowserType = "OP6";

    break;


  case "Konqueror" :
    if (navigator.userAgent.search("Konqueror/3.1") != -1)
      BrowserType = "KQ31";

    break;


  default:

    if (navigator.userAgent.search("Gecko") != -1)
       BrowserType = "GECKO";


  }

  return BrowserType;

}


function BrowserSupported(type) {

switch (type) {

  case "all":

    if (NS_NS6() || NS_NS7() || NS_AW67() || NS_GECKO() || GECKO() || MS_IE5() || MS_IE6() || KQ31() ) {
      return true;
    } else {
      return false;
    }

    break;

  case "gecko":

    if (NS_NS6() || NS_NS7() || NS_AW67() || NS_GECKO() || GECKO() || KQ31()) {
      return true;
    } else {
      return false;
    }

    break;

  case "ie":

    if ( MS_IE5() || MS_IE6() ) {
      return true;
    } else {
      return false;
    }

  }

}


function SetCookie(name,value,ExpireAfter) {

  //ExpireAfter is in minutes!

  path = "; path=/";

  if (ExpireAfter != null) {

    if (ExpireAfter == 0) {ExpireAfter = 5256000}

    expDate = new Date();
    expDate.setTime(expDate.getTime() + ExpireAfter * 60000);
    expires = "; expires=" + expDate.toGMTString();

  } else

    expires = "";

  document.cookie = name + "=" + escape(value) + path + expires;

}


function GetCookie(name) {

  var result = null;
  var myCookie = " " + document.cookie + ";";
  var searchName = " " + name + "=";
  var startOfCookie = myCookie.indexOf(searchName);
  var endOfCookie;

  if (startOfCookie != -1) {
    startOfCookie += searchName.length;
    endOfCookie = myCookie.indexOf(";",startOfCookie);
    result = unescape(myCookie.substring(startOfCookie,endOfCookie));
  }

  return result;
}



var menus = [];

// --- menu class ---
function menu (item_struct, pos, styles) {

  // browser check
  this.item_struct = item_struct;
  this.pos = pos;
  this.styles = styles;
  this.id = menus.length;
  this.items = [];
  this.children = [];

  this.add_item = menu_add_item;
  this.hide = menu_hide;

  this.onclick = menu_onclick;
  this.onmouseout = menu_onmouseout;
  this.onmouseover = menu_onmouseover;
  this.onmousedown = menu_onmousedown;

  var i;
  for (i = 0; i < this.item_struct.length; i++)
    new menu_item(i, this, this);
  for (i = 0; i < this.children.length; i++)
    this.children[i].visibility(true);
  menus[this.id] = this;
}
function menu_add_item (item) {
  var id = this.items.length;
  this.items[id] = item;
  return (id);
}
function menu_hide () {
  for (var i = 0; i < this.items.length; i++) {
    this.items[i].visibility(false);
    this.items[i].switch_style('onmouseout');
  }
}
function menu_onclick (id) {
  var item = this.items[id];
  return (item.fields[1] ? true : false);
}
function menu_onmouseout (id) {
  this.hide_timer = setTimeout('menus['+ this.id +'].hide();',
    this.pos['hide_delay'][this.active_item.depth]);
  if (this.active_item.id == id)
    this.active_item = null;
}
function menu_onmouseover (id) {
  this.active_item = this.items[id];
  clearTimeout(this.hide_timer);
  var curr_item, visib;
  for (var i = 0; i < this.items.length; i++) {
    curr_item = this.items[i];
    visib = (curr_item.arrpath.slice(0, curr_item.depth).join('_') ==
      this.active_item.arrpath.slice(0, curr_item.depth).join('_'));
    if (visib)
      curr_item.switch_style (
        curr_item == this.active_item ? 'onmouseover' : 'onmouseout');
    curr_item.visibility(visib);
  }
}
function menu_onmousedown (id) {
  this.items[id].switch_style('onmousedown');
}
// --- menu item Class ---
function menu_item (path, parent, container) {
  this.path = new String (path);
  this.parent = parent;
  this.container = container;
  this.arrpath = this.path.split('_');
  this.depth = this.arrpath.length - 1;
  // get pointer to item's data in the structure
  var struct_path = '', i;
  for (i = 0; i <= this.depth; i++)
    struct_path += '[' + (Number(this.arrpath[i]) + (i ? 4 : 0)) + ']';
  eval('this.fields = this.container.item_struct' + struct_path);
  if (!this.fields) return;

  // assign methods
  this.get_x = mitem_get_x;
  this.get_y = mitem_get_y;
  // these methods may be different for different browsers (i.e. non DOM compatible)
  this.init = mitem_init;
  this.visibility = mitem_visibility;
  this.switch_style = mitem_switch_style;

  // register in the collections
  this.id = this.container.add_item(this);
  parent.children[parent.children.length] = this;

  // init recursively
  this.init();
  this.children = [];
  var child_count = this.fields.length - 2;
  for (i = 0; i < child_count; i++)
    new menu_item (this.path + '_' + i, this, this.container);
  this.switch_style('onmouseout');
}
function mitem_init() {
  document.write (
    '<a id="mi_' + this.container.id + '_'
      + this.id +'" class="m' + this.container.id + 'l' + this.depth
      +'o" href="' + this.fields[1] + '" style="position: absolute; top: '
      + this.get_y() + 'px; left: '  + this.get_x() + 'px; width: '
      + this.container.pos['width'][this.depth] + 'px; height: '
      + this.container.pos['height'][this.depth] + 'px; visibility: hidden;'
      +' background: black; color: white; z-index: ' + this.depth + ';" '
      + 'onclick="return menus[' + this.container.id + '].onclick('
      + this.id + ');" onmouseout="menus[' + this.container.id + '].onmouseout('
      + this.id + ');' + this.fields[3] + ';" onmouseover="menus[' + this.container.id + '].onmouseover('
      + this.id + ');' + this.fields[2] + ';" onmousedown="menus[' + this.container.id + '].onmousedown('
      + this.id + ');"><div class="m'  + this.container.id + 'l' + this.depth + 'i">'
      + this.fields[0] + "</div></a>\n"
    );
  this.element = document.getElementById('mi_' + this.container.id + '_' + this.id);
}
function mitem_visibility(make_visible) {
  if (make_visible != null) {
    if (this.visible == make_visible) return;
    this.visible = make_visible;
    if (make_visible)
      this.element.style.visibility = 'visible';
    else if (this.depth)
      this.element.style.visibility = 'hidden';
  }
  return (this.visible);
}
function mitem_get_x() {
  var value = 0;
  for (var i = 0; i <= this.depth; i++)
    value += this.container.pos['block_left'][i]
    + this.arrpath[i] * this.container.pos['left'][i];
  return (value);
}
function mitem_get_y() {
  var value = 0;
  for (var i = 0; i <= this.depth; i++)
    value += this.container.pos['block_top'][i]
    + this.arrpath[i] * this.container.pos['top'][i];
  return (value);
}
function mitem_switch_style(state) {
  if (this.state == state) return;
  this.state = state;
  var style = this.container.styles[state];
  for (var i = 0; i < style.length; i += 2)
    if (style[i] && style[i+1])
      eval('this.element.style.' + style[i] + "='"
      + style[i+1][this.depth] + "';");
}

function popup (text) {

  var table =
    '<table width=200 cellpadding=0 cellspacing=0 class=popup>'
    + '<tr>'
    + '<td class=popup>'
    + '<div class=popup>' + text + '</div>'
    + '</td>'
    + '</tr>'
    + '</table>';

  return table;

}


// Image definitions for the rollover buttons




function Rollover(Bildnr,Bildobjekt)
{
  document.images[Bildnr].src = eval(Bildobjekt +".src");
}


function na_open_window(name, url, width, height)
{

  width = width + 50;
  height = height + 75;

  name = window.open('../../pict.php?url='+url,name,'left=150,top=150,width='+width+',height='+height);
  name.focus();

}



