//remove for development, enable for production - disable any JS error messages
function Err () {
  return true;
}
window.onerror = Err;

// preload rollover images
if (document.images) {
  var menu1_img = new Image(); // for the inactive image
  menu1_img.src = "/img/kopf/menu_allgemein.gif";
  var menu1_img_over = new Image(); // for the active image
  menu1_img_over.src = "/img/kopf/menu_allgemein_over.gif";

  var menu2_img = new Image();
  menu2_img.src = "/img/kopf/menu_hacienda.gif";
  var menu2_img_over = new Image();
  menu2_img_over.src = "/img/kopf/menu_hacienda_over.gif";

  var menu3_img = new Image();
  menu3_img.src = "/img/kopf/menu_prinz.gif";
  var menu3_img_over = new Image();
  menu3_img_over.src = "/img/kopf/menu_prinz_over.gif";
}


/* global stuff: menu code, dhtml library, free javascript from the web mostly, with
copyrights and sources left intact - feel free to copy it too... */

/********************************** MENU code ***********************************
 copyright/developed by Michael Hasenstein <mh at hasenstein.com>
 for DOM browsers only, forget stoneage Netscape 4
 you may copy&use the code any time, it's completely free */
var TO = 700;  // edit this: sets menu timeout in milliseconds

// these variables are 1 if the corresponding menu is to remain visible,
// because mouse if over the menu itself or over the triggering navbar image
var m1  = 0;
var m2  = 0;
var m3  = 0;
var m1t = 0;
var m2t = 0;
var m3t = 0;
var timeout;  // store timeout, to clear it

function hlOnMenuItem(obj) {
  obj.style.backgroundColor="#000";
  obj.style.color="#fff";
}
function hlOffMenuItem(obj,color) {
  obj.style.backgroundColor = color;
  obj.style.color="#000";
}

function MouseInMenu(name, n) {
  window.clearTimeout(timeout);
  timeout = window.setTimeout("menuOff('"+name+"')",TO);

  // mouse over menu N: 1/0 (y/n)
  if (name == "menu1")  m1 = n;
  if (name == "menu2")  m2 = n;
  if (name == "menu3")  m3 = n;

  // mouse no longer over trigger image of menu N
  // special case: n=1 handled in menuOn(), never here
  if (name == "menu1_I")  m1t = n;
  if (name == "menu2_I")  m2t = n;
  if (name == "menu3_I")  m3t = n;
}

function turnOn(imageName) {
  if (document.images) {
    document.images[imageName+'_img'].src = eval(imageName + '_img_over.src');
  }
}

function turnOff(imageName) {
    try {
  if (document.images) {
    document.images[imageName+'_img'].src = eval(imageName + '_img.src');
  }
    } catch (e) {
        //NOOP
    }
}

function menuOn(name) {
  turnOn(name);
  if (name != "menu1") {
    getElement("id","menu1").style.visibility = "hidden";
    turnOff("menu1");
  }
  if (name != "menu2") {
    getElement("id","menu2").style.visibility = "hidden";
    turnOff("menu2");
  }
  if (name != "menu3") {
    getElement("id","menu3").style.visibility = "hidden";
    turnOff("menu3");
  }
  getElement("id",name).style.visibility = "visible";

  // mouse now over trigger image of menu N
  if (name == "menu1")  m1t = 1;
  if (name == "menu2")  m2t = 1;
  if (name == "menu3")  m3t = 1;

  window.clearTimeout(timeout);
  timeout = window.setTimeout("menuOff('"+name+"')",TO);
}

function menuOff(name) {
  if (name == "all") {
    getElement("id","menu1").style.visibility = "hidden";
    getElement("id","menu2").style.visibility = "hidden";
    getElement("id","menu3").style.visibility = "hidden";
    turnOff("menu1");
    turnOff("menu2");
    turnOff("menu3");
    return;
  }
  if (name=="menu1" && m1==0 && m1t==0) {
    getElement("id","menu1").style.visibility = "hidden";
    turnOff("menu1");
    return;
  }
  if (name=="menu2" && m2==0 && m2t==0) {
    getElement("id","menu2").style.visibility = "hidden";
    turnOff("menu2");
    return;
  }
  if (name=="menu3" && m3==0 && m3t==0) {
    getElement("id","menu3").style.visibility = "hidden";
    turnOff("menu3");
    return;
  }

  // try again later if it couldn't be done yet
  window.clearTimeout(timeout);
  timeout = window.setTimeout("menuOff('"+name+"')",TO);
}

/* END **************************** MENU code **********************************/


/* Developed by Daniel Thoma, see
http://aktuell.de.selfhtml.org/tippstricks/dhtml/draganddrop/index.htm
only very slightly modified by us */
var dragobjekt = null;
var dragx = 0;
var dragy = 0;
var posx = 0;
var posy = 0;
function draginit() {
  document.onmousemove = drag;
  document.onmouseup = dragstop;
}
function dragstart(element) {
  dragobjekt = element;
  dragx = posx - dragobjekt.offsetLeft;
  dragy = posy - dragobjekt.offsetTop;
}
function dragstop() {
  dragobjekt=null;
}
function drag(ereignis) {
  posx = document.all ? window.event.clientX : ereignis.pageX;
  posy = document.all ? window.event.clientY : ereignis.pageY;
  if (dragobjekt && dragobjekt!=null) {
    if (document.selection) {
      document.selection.clear();
    }
    dragobjekt.style.left = (posx - dragx) + "px";
    dragobjekt.style.top = (posy - dragy) + "px";
  }
}

/* some functions, from http://www.quirksmode.org/js/ */
function createCookie(name,value,days)
{
  var expires, date;
  if (days)
  {
    date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++)
  {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function eraseCookie(name)
{
  createCookie(name,"",-1);
}
// end functions


/* DHTML-Bibliothek: http://de.selfhtml.org/dhtml/beispiele/dhtml_bibliothek.htm */
var DHTML = false, DOM = false, MSIE4 = false, NS4 = false, OP = false;

if (document.getElementById) {
  DHTML = true;
  DOM = true;
} else {
  if (document.all) {
    DHTML = true;
    MSIE4 = true;
  } else {
    if (typeof document.layers !== undefined) {
      DHTML = true;
      NS4 = true;
    }
  }
}
if (window.opera) {
  OP = true;
}

function getElement (Mode, Identifier, ElementNumber) {
  var Element, ElementList;
  if (DOM) {
    if (Mode.toLowerCase() == "id") {
      if (typeof document.getElementById(Identifier) == "object") {
        Element = document.getElementById(Identifier);
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "name") {
      ElementList = document.getElementsByName(Identifier);
      if (typeof ElementList == "object" || (OP && typeof ElementList == "function")) {
        Element = ElementList[ElementNumber];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
      ElementList = document.getElementsByTagName(Identifier);
      if (typeof ElementList == "object" || (OP && typeof ElementList == "function")) {
        Element = ElementList[ElementNumber];
      } else {
        Element = false;
      }
      return Element;
    }
    return null;
  }
  if (MSIE4) {
    if (Mode.toLowerCase() == "id") {
      if (typeof document.all[Identifier] == "object") {
        Element = document.all[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
      if (typeof document.all.tags(Identifier) == "object") {
        Element = document.all.tags(Identifier)[ElementNumber];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "name") {
      if (typeof document[Identifier] == "object") {
        Element = document[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  if (NS4) {
    if (Mode.toLowerCase() == "id" || Mode.toLowerCase() == "name") {
      if (typeof document[Identifier] == "object") {
        Element = document[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "index") {
      if (typeof document.layers[Identifier] == "object") {
        Element = document.layers[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  return false;
}

function getContent (Mode, Identifier, ElementNumber) {
  var Content;
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM && Element.firstChild) {
    if (Element.firstChild.nodeType == 3) {
      Content = Element.firstChild.nodeValue;
    } else {
      Content = "";
    }
    return Content;
  }
  if (MSIE4) {
    Content = Element.innerText;
    return Content;
  }
  return false;
}

function getAttribute (Mode, Identifier, ElementNumber, AttributeName) {
  var Attribute;
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM || MSIE4) {
    Attribute = Element.getAttribute(AttributeName);
    return Attribute;
  }
  if (NS4) {
    if (typeof Element[ElementNumber] == "object") {
      Attribute = Element[ElementNumber][AttributeName];
    } else {
      Attribute = Element[AttributeName]
    }
    return Attribute;
  }
  return false;
}

function setContent (Mode, Identifier, ElementNumber, Text) {
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM && Element.firstChild) {
    Element.firstChild.nodeValue = Text;
    return true;
  }
  if (MSIE4) {
    Element.innerText = Text;
    return true;
  }
  if (NS4) {
    Element.document.open();
    Element.document.write(Text);
    Element.document.close();
    return true;
  }
  return false;
}


/****************************************************************************
* Fading Scroller- � Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
*****************************************************************************/

// by MH: I slightly modified their version: removed stuff, added
// extra link end-color - in the orig. version links got the same color as
// regular text which is bad.

var delay = 3500; //set delay between message change (in miliseconds)
var maxsteps=30; // number of steps to take to change from start color to endcolor
var stepdelay=40; // time in miliseconds of a single step
// maxsteps*stepdelay will be total time in miliseconds of fading effect
var startcolor= new Array(255,204,0); // start color for all = background
var endcolor=new Array(0,0,0); // end color regular text
var linkendcolor=new Array(108,34,0); // end color links

var fcontent=new Array();
var begintag='';
var closetag='';
var fadecounter;
var index=0;

function changecontent() {
  if (index>=fcontent.length)
    index=0;
  if (!fcontent[index])
    fcontent[index]=" ";
  if (DOM && document.getElementById("defaultHL")) {
    document.getElementById("defaultHL").style.color="rgb("+startcolor[0]+", "+startcolor[1]+", "+startcolor[2]+")";
    document.getElementById("defaultHL").innerHTML=begintag+fcontent[index]+closetag;
    linkcolorchange(1);
    colorfade(1);
  } else if (MSIE4)
    document.all.defaultHL.innerHTML=begintag+fcontent[index]+closetag;
  index++
}

function linkcolorchange(step){
  var i, obj=document.getElementById("defaultHL").getElementsByTagName("A");
  if (obj.length>0){
    for (i=0;i<obj.length;i++)
      obj[i].style.color=getstepcolor(step,1);
  }
}

function colorfade(step) {
  if (step<=maxsteps) {
    document.getElementById("defaultHL").style.color=getstepcolor(step,0);
    linkcolorchange(step);
    step++;
    fadecounter=setTimeout("colorfade("+step+")",stepdelay);
  } else {
    clearTimeout(fadecounter);
    document.getElementById("defaultHL").style.color="rgb("+endcolor[0]+", "+endcolor[1]+", "+endcolor[2]+")";
    setTimeout("changecontent()", delay);

  }
}

function getstepcolor(step,l) {
  var diff, newcolor=new Array(3);
  for(var i=0;i<3;i++) {
    if (l)
      diff = (startcolor[i]-linkendcolor[i]);
    else
      diff = (startcolor[i]-endcolor[i]);
    if(diff > 0) {
      newcolor[i] = startcolor[i]-(Math.round((diff/maxsteps))*step);
    } else {
      newcolor[i] = startcolor[i]+(Math.round((Math.abs(diff)/maxsteps))*step);
    }
  }
  return ("rgb(" + newcolor[0] + ", " + newcolor[1] + ", " + newcolor[2] + ")");
}

if (window.addEventListener)
  window.addEventListener("load", changecontent, false);
else if (window.attachEvent)
  window.attachEvent("onload", changecontent);
else if (document.getElementById)
  window.onload=changecontent;

