var urlpath = window.location.host;
var map = null;
var onMap = null;
var selectValue = null;
var marker1 = null;
var marker2 = null;
var kundenforum_lat = "52.385072";
var kundenforum_lng = "8.621432";
var textkundenforum = "<b>Kundenforum</b><br>In der T&uuml;tenbeke&nbsp;1";
var kundenforum = new GLatLng(kundenforum_lat, kundenforum_lng);

var templateIcon1 = new GIcon();
templateIcon1.iconSize = new GSize(20, 34);
templateIcon1.iconAnchor = new GPoint(9, 34);
templateIcon1.infoWindowAnchor = new GPoint(9, 2);
templateIcon1.infoShadowAnchor = new GPoint(18, 25);
var poiIcon1   = new GIcon(templateIcon1);
poiIcon1.image = 'http://'+urlpath+'/fileadmin/templates/img/marker_blau.gif';

function clearChildren(obj) {
  try {
    if(obj.hasChildNodes() && obj.childNodes) {
      while(obj.firstChild) {
        obj.removeChild(obj.firstChild);
      }
    }
  }
  catch(e) {}
}

function getLoader(){
  loader  = document.getElementById('an_loader');
  return loader;
}

function initialize() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById('an_card'));
    map.setCenter(kundenforum ,13);
    map.addControl(new GLargeMapControl()); //Small/Large als Alternative
    map.addControl(new GMapTypeControl());
    marker1 = createMarker(kundenforum, textkundenforum, 1);
    map.addOverlay(marker1);
    if(map.isLoaded()){
      setTimeout("selectedChange()", 2000);
    }
  }
}

function createMarker(markerlatlng, markertext, temp){
  onMap = new GMarker(markerlatlng, {icon: poiIcon1});
  GEvent.addListener(onMap, "click", function() {
    showBubble(markertext, temp);
  });
  return onMap;
}
  
function showBubble(bubbletext, bubbleid){
  if(bubbleid == 1){
    marker1.openInfoWindowHtml(bubbletext);
  }
  if(bubbleid == 2){
    marker2.openInfoWindowHtml(bubbletext);
  }
}

function selectedChange() {
  map.setCenter(kundenforum ,13);
  wert2 = getLoader();
  wert2.style.display = 'none';
  GEvent.trigger(marker1, "click");
}

function checkinputvon(){
  checkvalue = document.getElementById('anfahrt_von').value;
  if(checkvalue == '') {
    alert('Bitte geben sie eine Startadresse "Von" ein');
  }
  else{
    geocoder = new GClientGeocoder();
    geocoder.getLatLng(checkvalue+", Deutschland", function(point) {
      if (!point) {
          geocoder.getLatLng(checkvalue, function(point) {
            if (!point) {
              alert('Der Startpunkt "'+ checkvalue + '" wurde nicht gefunden');
            }
            else {
              createRoute(point);
            }
          });
      }
      else {
        createRoute(point);
      }
    });
  }
}

//Popup Routenplaner
var map2;
var gdir;
var geocoder = null;
var addressMarker;
 
function createRoute(point) {
  anplan = document.getElementById('an_plan');
  anplan.style.display = '';
 
  if (GBrowserIsCompatible()) {
    var map2 = new GMap2(document.getElementById("an_card2"));
    map2.addControl(new GLargeMapControl()); //Small/Large als Alternative
    map2.addControl(new GMapTypeControl());
    gdir = new GDirections(map2, document.getElementById("divText"));
    GEvent.addListener(gdir, "load", onGDirectionsLoad);
    GEvent.addListener(gdir, "addoverlay", checkHoehe);
    //GEvent.addListener(gdir, "error", handleErrors);
    //setDirections("San Francisco", "Mountain View", "en_US");
    
    ziel = kundenforum_lat+" ,"+kundenforum_lng;
    temp1 = point+"##";
    start = temp1.substring(1, 19);
    setDirections(start, ziel, "de_DE");    
  }
}

function setDirections(fromAddress, toAddress, locale) {
  gdir.load("from: " + fromAddress + " to: " + toAddress,
    { "locale": locale });
}

function onGDirectionsLoad(){ 
  // Use this function to access information about the latest load()
  // results.
  // e.g.
  // document.getElementById("getStatus").innerHTML = gdir.getStatus().code
 }
 
function checkHoehe() {
  checkdiv = document.getElementById('divText')
  hoehe = checkdiv.offsetHeight;
  if(hoehe>500) {
    scrollvisible = document.getElementById('scrollbar');
    scrollvisible.style.display = '';
  }
  scrolltextInit();
}

// Popup Routeplaner schließen
function plan_close() {
  route = document.getElementById('divText');
  clearChildren(route);
  anplan = document.getElementById('an_plan')
  anplan.style.display = 'none'; 
}

function openprint() {
  printfenster_url = 'http://'+urlpath+'/fileadmin/ap_static/print_file.html';  
  PrintFenster = window.open(printfenster_url, "PrintFenster", "width=800,height=700,left=100,top=100,scrollbars=yes");
  PrintFenster.focus();
}
 
//**************************************************************************************************
// Funktionen für scrollen bei mehreren Einträgen
//**************************************************************************************************

function lib_bwcheck(){ //Browsercheck (needed)
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=new lib_bwcheck()


/*****************

You set the width and height of the divs inside the style tag, you only have to
change the divScrollTextCont, Remember to set the clip the same as the width and height.
You can remove the divUp and divDown layers if you want. 
This script should also work if you make the divScrollTextCont position:relative.
Then you should be able to place this inside a table or something. Just remember
that Netscape crash very easily with relative positioned divs and tables.

Updated with a fix for error if moving over layer before pageload.

****************/


//If you want it to move faster you can set this lower, it's the timeout:
var speed = 30

//Sets variables to keep track of what's happening
var loop, timer

//Object constructor
function makeObj(obj,nest){
    nest=(!nest) ? "":'document.'+nest+'.'
	this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
  	this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
	this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight
	this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight
	this.up=goUp;this.down=goDown;
	this.moveIt=moveIt; this.x=0; this.y=0;
    this.obj = obj + "Object"
    eval(this.obj + "=this")
    return this
}

// A unit of measure that will be added when setting the position of a layer.
var px = bw.ns4||window.opera?"":"px";

function moveIt(x,y){
	this.x = x
	this.y = y
	this.css.left = this.x+px
	this.css.top = this.y+px
}

//Makes the object go up
function goDown(move){
  maxlaenge = -this.scrollHeight+oCont.clipHeight-55;
  if (this.y>maxlaenge){
	//if (this.y>-this.scrollHeight+oCont.clipHeight){
		this.moveIt(0,this.y-move)
			if (loop) setTimeout(this.obj+".down("+move+")",speed)
	}
}
//Makes the object go down
function goUp(move){
	if (this.y<0){
		this.moveIt(0,this.y-move)
		if (loop) setTimeout(this.obj+".up("+move+")",speed)
	}
}

//Calls the scrolling functions. Also checks whether the page is loaded or not.
function scroll(speed){
	if (scrolltextLoaded){
		loop = true;
		if (speed>0) oScroll.down(speed)
		else oScroll.up(speed)
	}
}

//Stops the scrolling (called on mouseout)
function noScroll(){
	loop = false
	if (timer) clearTimeout(timer)
}
//Makes the object
var scrolltextLoaded = false
function scrolltextInit(){
	oCont = new makeObj('divScrollTextCont')
	oScroll = new makeObj('divText','divScrollTextCont')
	oScroll.moveIt(0,0)
	//oCont.css.visibility = "visible"
	scrolltextLoaded = true
}
