var map, box, tmp, adress, point, directionsPanel, directions, homeort, homeadresse;
var typecontrol = new GMapTypeControl(true);
var icon = new GIcon();
var xmlHttp = null; var xmlHttp1 = null; var id = ""; var table = "";


var chosen = [];
var layers = [
{ name: "Pano", obj: new GLayer("com.panoramio.all") },
{ name: "Tube", obj: new GLayer("com.youtube.all") },
{ name: "Wiki", obj: new GLayer("org.wikipedia.de") }
];


function load(homestrasse,homehausnummer,homeplz,homeort,nr,anznr,bild,homeortsbezeichnung,id)	{
if (document.getElementById("routenplanerForm").style.display == "block") document.getElementById("routenplanerForm").style.display = "none";
if (document.getElementById("anfahrtsBeschreibung").style.display == "inline")  document.getElementById("anfahrtsBeschreibung").style.display == "none";

var ortnr;
var homeadresse = homestrasse + ' ' + homehausnummer + ', ' + homeplz + ' ' + homeort;
var homeadresseAnz = homeplz + ' ' + homeort + ', ' + homestrasse + ' ' + homehausnummer;

if (homeort == "Eching") { 
alert("Information:\nDerzeit noch falscher Straßenname bei Google-Maps.\nAngezeigt wird (falsch) Maria-Link-Straße statt (richtig) Roßberger Straße."); 
homestrasse = "Maria-Link-Straße";
homeadresse = homestrasse + ' ' + homehausnummer + ', ' + homeplz + ' ' + homeort;
}

anznr -=1;
for(i=0;i<=anznr;++i)	{ ortnr = 'ort' + i; document.getElementById(ortnr).style.color = "black"; }
ortnr = 'ort' + nr;
var geocoder = new GClientGeocoder();
geocoder.getLatLng(homeadresse,function(point) { 
if (point) { 
document.getElementById("adresse").innerHTML = homeortsbezeichnung + '<br/>' + homeadresseAnz; 
document.getElementById(ortnr).style.color = "#00cccc"; 
loadMap(point,homestrasse,homehausnummer,homeplz,homeort,bild,id); 
} 
} );
}

window.onunload = function() {
GUnload();
}

function loadMap(point,homestrasse,homehausnummer,homeplz,homeort,bild,id) {
if(GBrowserIsCompatible()) {
document.getElementById("mapText").style.display = "block";
map = new GMap2(document.getElementById("mapKarte"));
map.setCenter(point, 14, G_NORMAL_MAP);
map.addControl(new GSmallZoomControl());
var markerbild = '<img src=\"../download/image/' + bild + '\"><br/>' + homeort;
marker = new PdMarker(point);
marker.setTooltip(markerbild);
marker.setOpacity(0);
map.addOverlay(marker);
map.addControl(new RouterOpenControl(point,homestrasse,homehausnummer,homeplz,homeort));
//map.addControl(new MoreControl());
}

anfahrtsBeschreibung(id);

}

function routenplanerDisplay(point,homestrasse,homehausnummer,homeplz,homeort) {

if (homeort == "Memmingen") { homehausnummer = ""; }
if (homeort == "Eching") { 
alert("Information:\nDerzeit noch falscher Straßenname bei Google-Maps.\nAngezeigt wird (falsch) Maria-Link-Straße statt (richtig) Roßberger Straße."); 
homestrasse = "Maria-Link-Straße";
}

document.routeform.homestrasse.value = ""; document.routeform.homehausnummer.value = ""; document.routeform.homeplz.value = ""; document.routeform.homeort.value = "";

document.routeform.homestrasse.value = homestrasse;
document.routeform.homehausnummer.value = homehausnummer;
document.routeform.homeplz.value = homeplz;
document.routeform.homeort.value = homeort;
document.getElementById("mapText").style.display = "none";
document.getElementById("routenplanerForm").style.display = "block";
document.getElementById("pruefungsadresse").innerHTML = homeplz + ' ' + homeort + ', ' + homestrasse + ' ' + homehausnummer;
document.routeform.plz.focus(); 
}

function routenplanerOpen() {
if (document.routeform.plz.value == "" || document.routeform.ort.value == "") { 
alert("Bitte Postleitzahl und Ort eingeben - Pflichtfelder"); 
if (document.routeform.ort.value == "") document.routeform.ort.focus(); 
if (document.routeform.plz.value == "") document.routeform.plz.focus(); 
return; 
}
document.getElementById("routenplanerKarte").style.display = "block";
document.getElementById("routenplanerText").style.display = "block";
document.getElementById("mapText").style.display = "none";
document.getElementById("ortsListe").style.display = "none";
document.getElementById("routenplanerForm").style.display = "none";
document.getElementById("anfahrtsBeschreibung").style.display = "none";

var strasse = "";
var plz = "";
var ort = "";
var homestrasse = "";
var homehausnummer = "";
var homeplz = "";
var homeort = "";

strasse = document.routeform.strasse.value;
plz = document.routeform.plz.value;
ort = document.routeform.ort.value;
homestrasse = document.routeform.homestrasse.value;
homehausnummer = document.routeform.homehausnummer.value;
homeplz = document.routeform.homeplz.value;
homeort = document.routeform.homeort.value;

var homeadresse = "";
if (homestrasse) homeadresse += homestrasse;
if (homehausnummer) homeadresse += ' ' + homehausnummer;
if (homestrasse || homehausnummer) homeadresse += ', ';
homeadresse += homeplz + ' ' + homeort;

var zieladresse = "";
zieladresse = 'from: ';
// if (strasse) zieladresse += strasse + ', ';
zieladresse += plz + ' ' + ort;
zieladresse += ' to: ' + homeadresse;

map = new GMap2(document.getElementById("routenplanerKarte"));
map.setCenter(new GLatLng(48.16013140577114, 11.522190570831299), 7);
map.addControl(new GSmallZoomControl());
map.addControl(new RouterCloseControl());
directionsPanel = document.getElementById("routenplanerText");
directions = new GDirections(map, directionsPanel);
//GEvent.addListener(directions, "error", routenplanerOpenErrors);
directions.load(zieladresse);
}

function routenplanerOpenErrors(){
if (directions.getStatus().code == G_GEO_UNKNOWN_ADDRESS)	{
alert("Die Zieladresse konnte nicht gefunden werden.\nMöglicherweise ist die Adresse relativ neu oder wurde in der Google-Datenbank nicht gefunden."); 
routenplanerClose();
}
else { alert("Ein unbekannter Fehler ist aufgetreten."); routenplanerClose(); }
}

function RouterOpenControl(point,homestrasse,homehausnummer,homeplz,homeort) { 
this.point_ = point; 
this.homestrasse_ = homestrasse; 
this.homehausnummer_ = homehausnummer; 
this.homeplz_ = homeplz;
this.homeort_ = homeort; 
}

RouterOpenControl.prototype = new GControl();
RouterOpenControl.prototype.initialize = function(map) {
var container = document.createElement("div");
container.title = "Routenplaner öffnen";
var rocDiv = document.createElement("div");
rocDiv.id = "rb";
this.setButtonStyle_(container,rocDiv);
container.appendChild(rocDiv);
rocDiv.appendChild(document.createTextNode(" Routenplaner"));
var point = this.point_; 
var homestrasse = this.homestrasse_; 
var homehausnummer = this.homehausnummer_; 
var homeplz = this.homeplz_; 
var homeort = this.homeort_;

GEvent.addDomListener(container, "click", function() { routenplanerDisplay(point,homestrasse,homehausnummer,homeplz,homeort); });
GEvent.addDomListener(container, 'mouseover', function() { rocDiv.style.color = "#00cccc";  rocDiv.style.fontWeight = "bold"; });
GEvent.addDomListener(container, 'mouseout', function() { rocDiv.style.color = "black"; rocDiv.style.fontWeight = "normal"; }); 
map.getContainer().appendChild(container);
return container;
}


RouterOpenControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(40, 7)); }

RouterOpenControl.prototype.setButtonStyle_ = function(container,button) {
container.style.backgroundColor = "white";
container.style.border = "1px solid black";
container.style.padding = "0px";
container.style.marginBottom = "0px";
container.style.width = "90px";
container.style.height = "15px";
container.style.cursor = "pointer";
button.style.textAlign = "center";
button.style.color = "black";
button.style.fontFamily = "Arial";
button.style.fontSize = "11px";
button.style.width = "89px";
button.style.height = "14px";
button.style.borderRight = "1px solid #c0c0c0";
button.style.borderBottom = "1px solid #dedede";
}


function RouterCloseControl() {}

RouterCloseControl.prototype = new GControl();
RouterCloseControl.prototype.initialize = function(map) {
var container = document.createElement("div");
container.title = "Routenplaner schließen - zurück zur Übersicht";
var rccDiv = document.createElement("div");
this.setButtonStyle_(container,rccDiv);
container.appendChild(rccDiv);
rccDiv.appendChild(document.createTextNode("Routenplaner schließen"));
GEvent.addDomListener(rccDiv, "click", function() { routenplanerClose(); });
GEvent.addDomListener(rccDiv, 'mouseover', function() { rccDiv.style.fontWeight = "bold"; rccDiv.style.color = "red"; });
GEvent.addDomListener(rccDiv, 'mouseout', function() { rccDiv.style.fontWeight = "normal"; rccDiv.style.color = "black"; }); 
map.getContainer().appendChild(container);
return container;
}

RouterCloseControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(40, 7)); }
RouterCloseControl.prototype.setButtonStyle_ = function(container,button) {

container.style.backgroundColor = "white";
container.style.border = "1px solid black";
container.style.padding = "0px";
container.style.marginBottom = "0px";
container.style.width = "146px";
container.style.height = "15px";
container.style.cursor = "pointer";

button.style.textAlign = "center";
button.style.color = "black";
button.style.fontFamily = "Arial";
button.style.fontSize = "11px";
button.style.width = "145px";
button.style.height = "14px";
button.style.borderRight = "1px solid #c0c0c0";
button.style.borderBottom = "1px solid #dedede";

}

function routenplanerClose() {
document.getElementById("routenplanerKarte").style.display = "none";
document.getElementById("routenplanerText").style.display = "none";
document.getElementById("mapText").style.display = "block";
document.getElementById("ortsListe").style.display = "block";
document.getElementById("routenplanerForm").style.display = "none";
directions.clear();
}

function anfahrtsBeschreibung(id) {
xmlHttp1 = "";
if (window.ActiveXObject) {
try { 
xmlHttp1= new ActiveXObject("Msxml2.XMLHTTP"); 
} 
catch (e) {
try { 
xmlHttp1= new ActiveXObject("Microsoft.XMLHTTP"); 
} 
catch (e) { 
}
}
} 
else if (window.XMLHttpRequest) {
try { xmlHttp1 = new XMLHttpRequest(); } 
catch (e) { }
}

if (xmlHttp1) {
xmlHttp1.open('GET', 'http://www.steuerberaterpruefung-suedbayern.de/pruefung/spa.php?id=' + id, true);
xmlHttp1.onreadystatechange = getDaten;
xmlHttp1.send(null);
}
}


function getDaten() {
var text = '';
if (xmlHttp1.readyState == 4) {
text = xmlHttp1.responseText;
if (text !="")	{
document.getElementById("anfahrtsBeschreibung").style.display = "inline";
document.getElementById("anfahrtsBeschreibungText").innerHTML = text;
}
else	{ document.getElementById("anfahrtsBeschreibung").style.display = "none"; }
}
return;
}



function changeClass(id, cl) {
var box = document.getElementById(id);
box.className = cl;
}


function MoreControl() {};
MoreControl.prototype = new GControl();
MoreControl.prototype.initialize = function(map) {

var more = document.getElementById("mehrBoxOuter");
var buttonDiv = document.createElement("div");
buttonDiv.id = "mehrButton";
buttonDiv.title = "Mehr Informationen einblenden";
buttonDiv.style.border = "1px solid black";
buttonDiv.style.width = "86px";
var textDiv = document.createElement("div");
textDiv.id = "mehrBoxInner";
textDiv.appendChild(document.createTextNode("Mehr..."));
buttonDiv.appendChild(textDiv);
more.onmouseover = showLayerbox;
more.onmouseout = setClose;
buttonDiv.onclick = toggleLayers();
more.insertBefore(buttonDiv, document.getElementById("mehrBox").parentNode);
map.getContainer().appendChild(more);
return more;
}

MoreControl.prototype.getDefaultPosition = function() {
return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(140, 7));
}

function hideAll() {
var boxes = document.getElementsByName("mehrBoxMark");
for(var i = 0; i < boxes.length; i++) {
if(boxes[i].checked) {
boxes[i].checked = false;
switchLayer(false, layers[i].obj);
chosen.push(i);
}
}
}


function checkChecked() {
var boxes = document.getElementsByName("mehrBoxMark");
for(var i = 0; i < boxes.length; i++) {
if(boxes[i].checked) return true;
}
return false;
}

function switchLayer(checked, layer) {
var layerbox = document.getElementById("mehrBox");
var boxlink = document.getElementById("mehrBoxLink");
var button = document.getElementById("mehrBoxInner");
if(checked) {
map.addOverlay(layer);
chosen.length = 0;
boxlink.className ="highlight";
layerbox.className ="highlight";
button.className ="highlight";
}
else {
map.removeOverlay(layer);
if(!checkChecked()) {
boxlink.blur();
boxlink.className ="";
layerbox.className ="";
button.className ="";
}
}
}

function showLayerbox() {
if(window.timer) clearTimeout(timer);
document.getElementById("mehrBox").style.display = "block";
var button = document.getElementById("mehrBoxInner");
button.style.borderBottomWidth = "4px";
button.style.borderBottomColor = "white";
}

function setClose() {
var layerbox = document.getElementById("mehrBox");
var button = document.getElementById("mehrBoxInner");
var bottomColor = checkChecked() ? "#6495ed" : "#c0c0c0";
timer = window.setTimeout(function() {
layerbox.style.display = "none";
button.style.borderBottomWidth = "1px";
button.style.borderBottomColor = bottomColor;
}, 400);
}

function toggleLayers() {
if(chosen.length > 0 ) {
var copy = chosen.slice();
for(var i = 0; i < copy.length; i++) {
var index = parseInt(copy[i]);
switchLayer(true, layers[index].obj);
document.getElementsByName("mehrBoxMark")[index].checked = true;
}
}
else {
hideAll();
}
}

