/* DHTML-Bibliothek (Basic-Funktionen)
   ---------------
*/

var DHTML = false, DOM = false, MSIE4 = false, MSIE6 = false, NS4 = false, OP = false;

if (document.getElementById) {
  DHTML = true;
  DOM = true;
  if (document.all) {  
      MSIE6 = true;
  }
} else {
  if (document.all) {
    DHTML = true;
    MSIE4 = true;
  } else {
    if (document.layers) {
      DHTML = true;
      NS4 = true;
    }
  }
}
if (window.opera) {
  OP = true;
}

function getElement (Mode, Identifier, ElementNumber) {
  var Element, ElementList;
  if (DOM) {
    if (Mode.toLowerCase() == "id") {
      Element = document.getElementById(Identifier);
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "name") {
      ElementList = document.getElementsByName(Identifier);
      Element = ElementList[ElementNumber];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
      ElementList = document.getElementsByTagName(Identifier);
      Element = ElementList[ElementNumber];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  if (MSIE4) {
    if (Mode.toLowerCase() == "id" || Mode.toLowerCase() == "name") {
      Element = document.all(Identifier);
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
      ElementList = document.all.tags(Identifier);
      Element = ElementList[ElementNumber];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  if (NS4) {
    if (Mode.toLowerCase() == "id" || Mode.toLowerCase() == "name") {
      Element = document[Identifier];
      if (!Element) {
        Element = document.anchors[Identifier];
      }
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "layerindex") {
      Element = document.layers[Identifier];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  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) {
    Attribute = Element[AttributeName]
    if (!Attribute) {
       Attribute = false;
    }
    return Attribute;
  }
  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 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;
  }
}


function showElement (Mode, Identifier, ElementNumber) {

  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (NS4) {
    Element.visibility = "show";
  } else {
    Element.style.visibility = "visible";
  }
}

function hideElement (Mode, Identifier, ElementNumber) {
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (NS4) {
    Element.visibility = "hide";
  } else {
    Element.style.visibility = "hidden";
  }
}

function showElementBlock (Mode, Identifier, ElementNumber) {

  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }

    Element.style.display = "block";

}

function hideElementBlock (Mode, Identifier, ElementNumber) {
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  Element.style.display = "none";
}


function fireEvent (eventType, elementID)
{
    var o = document.getElementById(elementID);
    if (document.createEvent)
    {
        var evt = document.createEvent("Events");
        evt.initEvent(eventType, true, true);
        o.dispatchEvent(evt);
    } else if (document.createEventObject) {
        var evt = document.createEventObject();
        o.fireEvent('on' + eventType, evt);
    }
}




/* DHTML-Bibliothek (Zusatz-Funktionen)
   ---------------
*/

var initialize = 0;
var mouseX = 0;
var mouseY = 0;

var testX = 0;
var testY = 0;


function handleMove (e) {
  //if (!ev) ev = window.event;
//  mouseX = ev.pageX ? ev.pageX : ev.clientX;
 // mouseY = ev.pageY ? ev.pageY : ev.clientY;


     e = e || window.event;
     var cursor = {x:0, y:0};
     if (e.pageX || e.pageY) {
         mouseX = e.pageX;
         mouseY = e.pageY;
         testX = e.layerX;
         testY = e.layerY;                  
     }
     else {
         var de = document.documentElement;
         var b = document.body;
         mouseX = e.clientX +
             (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
         mouseY = e.clientY +
             (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
         testX = e.offsetX;
         testY = e.offsetY;         
     }





}

  function Event_init () {
  	if (document.addEventListener) {
    	document.addEventListener("mousemove", handleMove, true);
  	} else {
    	if (NS4) {
      		document.captureEvents(Event.MOUSEMOVE);
      		document.onmousemove = handleMove;
    	} else {
      		document.body.onmousemove = handleMove;
    	}
  	}
    if (NS4){
  	    if (typeof document.NSfix == 'undefined'){
  		  document.NSfix = new Object();
  	      document.NSfix.initWidth=window.innerWidth;
  		  document.NSfix.initHeight=window.innerHeight;
  		}
    }
  }

  	if (NS4) window.onresize = function(){
  	  if (document.NSfix.initWidth!=window.innerWidth || document.NSfix.initHeight!=window.innerHeight) window.location.reload(false);
  	} // ns4 resize bug workaround
  	
      window.onerror = function(msg,url,line){
  	  alert('ERROR'
  	  + '\n------------------------------------------------------'
	  + '\nText:' + msg + '\nurl:' + url + '\nline:' + line);
	  }



function hideToolTip(divToolTip) {
	hideElementBlock("id", divToolTip);
	return false;
}


function showToolTip(divToolTip) {
    //alert("x = " + testX + "/ y = " + testY);

	var Element = getElement("id", divToolTip);
	if ( (!Element) || (divToolTip=="")) {
		return false;
	}

    if( document.body.scrollLeft )
      mouseX += document.body.scrollLeft;
    if( document.body.scrollTop  )
      mouseY += document.body.scrollTop;
    //position vom block verschieben, so dass es schön aussieht
	mouseX -=150;
	mouseY -=95;

  if (NS4) {
		Element.moveTo( mouseX, mouseY );
		Element.visibility = "show";
	} else {
		Element.style.left = mouseX+"px";
        Element.style.top  = mouseY+"px";
		//Element.style.visibility = "visible";
		Element.style.display = "block";
	}

}

