// AJAX
var xmlhttp;
function getData(evnt) {
    if (!xmlhttp) xmlhttp = aaGetXmlHttpRequest();
    if (!xmlhttp) return;
    // var target = encodeURIComponent(document.cntFrm.zip_id.value);
    // var CMT = document.cntFrm.M5WebChoice.value;
    // var adhnr = document.cntFrm.cust_adhnr.value;
    // var qry = "zip_id=" + target;
    var url = 'contact.php';
    xmlhttp.open('GET', url, true);
    xmlhttp.onreadystatechange = printData;
    xmlhttp.send(null);
    if (evnt && evnt.preventDefault()) evnt.preventDefault();
    return false;
}
function printData() {
    if (!xmlhttp.readyState == 4) {
        // document.getElementById('m5streetname').innerHTML = 'Zoekt adres...';
    } else if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        var resultStr = xmlhttp.responseText;
       	document.getElementById('blacklayer').style.visibility = 'visible';
       	document.getElementById('blacklayer').style.display = 'block';
       	document.getElementById('ajxcontent').style.visibility = 'visible';
       	document.getElementById('ajxcontent').style.display = 'block';
       	// document.getElementById('ajxcontent').innerHTML = resultStr;
        // document.getElementById('iframe').src = 'contact.php';
    }
}
window.onload = function() {
    if (aaScreenIE()) return;
    document.getElementById('myform').onsubmit = getData;
};
function setTarget(target,source) {
	document.getElementById('blacklayer').style.visibility = 'visible';
   	document.getElementById('blacklayer').style.display = 'block';
   	document.getElementById('ajxcontent').style.visibility = 'visible';
   	document.getElementById('ajxcontent').style.display = 'block';
    document.getElementById('iframe').src = target+'?doek='+source;
}

function closeObject() {
	document.getElementById('blacklayer').style.visibility = 'hidden';
   	document.getElementById('blacklayer').style.display = 'none';
   	document.getElementById('ajxcontent').style.visibility = 'hidden';
   	document.getElementById('ajxcontent').style.display = 'none';
    document.getElementById('iframe').src = "";	
}

function checkForm() {
	var txtfield = ""
	var fields = document.contact.getElementsByTagName('input');
	for(var i=0;i<fields.length;i++) {
		if(fields[i].value == "" && fields[i].name.substring(0,2) == "vp") {
			txtfield += fields[i].id+', ';	
		} 	
	}
	if(!txtfield == "") {
		alert('De volgende velden zijn niet (juist) ingevuld: '+txtfield);	
	} else {
		document.contact.submit();	
	}
}

function setVisible(obj) {
    obj = document.getElementById(obj);
    obj.style.visibility = (obj.style.visibility == 'visible') ? 'hidden': 'visible';
    obj.style.display = (obj.style.display == 'block') ? 'none': 'block';
}
function setInvisible(obj) {
    obj = document.getElementById(obj);
    obj.style.visibility = (obj.style.visibility == 'hidden') ? 'visible': 'hidden';
    obj.style.display = (obj.style.display == 'none') ? 'block': 'none';
}
function clearValue(obj) {
    var Cnt = '';
    document.cntFrm.pmu_pwd.value = Cnt;
}
function jumpTo(url) {
    if (!url == "") {
        location = url;
    }
} //<![CDATA[
function handleErrors() {
    if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS) alert("Uw ingevoerde adres kan niet worden verwerkt, probeert u het alstublieft nog eens. U kunt simpelweg uw straat en woonplaats invoeren, bijvoorbeeld: Hoofdstraat, Utrecht. U kunt ook een route plannen naar een filiaal door enkel uw plaatsnaam in te voeren.");
    else if (gdir.getStatus().code == G_GEO_SERVER_ERROR) alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);
    else if (gdir.getStatus().code == G_GEO_MISSING_QUERY) alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code);
    else if (gdir.getStatus().code == G_GEO_BAD_KEY) alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);
    else if (gdir.getStatus().code == G_GEO_BAD_REQUEST) alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);
    else alert("An unknown error occurred.");
}
var map;
var geocoder;
var directionsPanel;
var directions;
var PlaceInserted;
var place;
var AddressMarker
function TextualZoomInControl() {}
TextualZoomInControl.prototype = new GControl();
TextualZoomInControl.prototype.initialize = function(map) {
    var container = document.createElement("div");
    var zoomInDiv = document.createElement("div");
    this.setButtonStyle_(zoomInDiv);
    container.appendChild(zoomInDiv);
    zoomInDiv.appendChild(document.createTextNode("Zoom In"));
    GEvent.addDomListener(zoomInDiv, "click",
    function() {
        map.zoomIn();
    });
    map.getContainer().appendChild(container);
    return container;
}
TextualZoomInControl.prototype.getDefaultPosition = function() {
    return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(5, 5));
}
TextualZoomInControl.prototype.setButtonStyle_ = function(button) {
    button.className = "ZoomButton";
}
function TextualZoomOutControl() {}
TextualZoomOutControl.prototype = new GControl();
TextualZoomOutControl.prototype.initialize = function(map) {
    var container = document.createElement("div");
    var zoomOutDiv = document.createElement("div");
    this.setButtonStyle_(zoomOutDiv);
    container.appendChild(zoomOutDiv);
    zoomOutDiv.appendChild(document.createTextNode("Zoom Out"));
    GEvent.addDomListener(zoomOutDiv, "click",
    function() {
        map.zoomOut();
    });
    map.getContainer().appendChild(container);
    return container;
}
TextualZoomOutControl.prototype.getDefaultPosition = function() {
    return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(88, 5));
}
TextualZoomOutControl.prototype.setButtonStyle_ = function(button) {
    button.className = "ZoomButton";
}
function TextualMapTypeKaartControl() {}
TextualMapTypeKaartControl.prototype = new GControl();
TextualMapTypeKaartControl.prototype.initialize = function(map) {
    var TypeContainer = document.createElement("div");
    var MapTypeKaartDiv = document.createElement("div");
    this.setButtonStyle_(MapTypeKaartDiv);
    TypeContainer.appendChild(MapTypeKaartDiv);
    MapTypeKaartDiv.appendChild(document.createTextNode("Kaart"));
    GEvent.addDomListener(MapTypeKaartDiv, "click",
    function() {
        map.setMapType(G_MAP_TYPE);
    });
    map.getContainer().appendChild(TypeContainer);
    return TypeContainer;
}
TextualMapTypeKaartControl.prototype.getDefaultPosition = function() {
    return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(171, 5));
}
TextualMapTypeKaartControl.prototype.setButtonStyle_ = function(button) {
    button.className = "MapTypeButton";
}
function TextualMapTypeSatellietControl() {}
TextualMapTypeSatellietControl.prototype = new GControl();
TextualMapTypeSatellietControl.prototype.initialize = function(map) {
    var TypeContainer = document.createElement("div");
    var MapTypeSatellietDiv = document.createElement("div");
    this.setButtonStyle_(MapTypeSatellietDiv);
    TypeContainer.appendChild(MapTypeSatellietDiv);
    MapTypeSatellietDiv.appendChild(document.createTextNode("Satelliet"));
    GEvent.addDomListener(MapTypeSatellietDiv, "click",
    function() {
        map.setMapType(G_SATELLITE_MAP);
    });
    map.getContainer().appendChild(TypeContainer);
    return TypeContainer;
}
TextualMapTypeSatellietControl.prototype.getDefaultPosition = function() {
    return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(88, 5));
}
TextualMapTypeSatellietControl.prototype.setButtonStyle_ = function(button) {
    button.className = "MapTypeButton";
}
function TextualMapTypeBothControl() {}
TextualMapTypeBothControl.prototype = new GControl();
TextualMapTypeBothControl.prototype.initialize = function(map) {
    var TypeContainer = document.createElement("div");
    var MapTypeSatellietDiv = document.createElement("div");
    this.setButtonStyle_(MapTypeSatellietDiv);
    TypeContainer.appendChild(MapTypeSatellietDiv);
    MapTypeSatellietDiv.appendChild(document.createTextNode("Beide"));
    GEvent.addDomListener(MapTypeSatellietDiv, "click",
    function() {
        map.setMapType(G_HYBRID_MAP);
    });
    map.getContainer().appendChild(TypeContainer);
    return TypeContainer;
}
TextualMapTypeBothControl.prototype.getDefaultPosition = function() {
    return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(5, 5));
}
TextualMapTypeBothControl.prototype.setButtonStyle_ = function(button) {
    button.className = "MapTypeButton";
}
function getMarkerNode(xmlMarker, strSearchTag) {
    var sResult;
    sResult = 'nog niks';
    if (navigator.appName != "Netscape") {
        sResult = xmlMarker.getElementsByTagName(strSearchTag)(0).text;
    } else {
        var strTagName;
        var iCount;
        strTagName = '';
        iCount = 0;
        while ((strTagName != strSearchTag) & (iCount < xmlMarker.childNodes.length)) {
            iCount++;
            strTagName = xmlMarker.childNodes[iCount].nodeName;
        }
        if (strTagName == strSearchTag) {
            try {
                sResult = xmlMarker.childNodes[iCount].childNodes[0].textContent;
            } catch(err) {
                sResult = "";
            }
        }
    }
    return sResult;
}
function load() {
    if (GBrowserIsCompatible()) {
        G_NORMAL_MAP.getTileLayers()[0].getOpacity = function() {
            return 0.9;
        };
        G_SATELLITE_MAP.getTileLayers()[0].getOpacity = function() {
            return 0.9;
        };
        G_HYBRID_MAP.getTileLayers()[0].getOpacity = function() {
            return 0.9;
        };
        G_HYBRID_MAP.getTileLayers()[1].getOpacity = function() {
            return 0.9;
        };
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(52.083, 5.133), 7);
        map.addControl(new TextualZoomInControl());
        map.addControl(new TextualZoomOutControl());
        map.addControl(new TextualMapTypeSatellietControl());
        map.addControl(new TextualMapTypeKaartControl());
        map.addControl(new TextualMapTypeBothControl());
        geocoder = new GClientGeocoder();
        document.getElementById("map").style.backgroundColor = "#ffffff";
        gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "error", handleErrors);
        icon = new GIcon();
        icon.image = "http://localhost/mambo/templates/gap2008/location2.gif";
        icon.iconSize = new GSize(10, 29);
        icon.iconAnchor = new GPoint(8, 30); //ördinaat moet staan
        icon.infoWindowAnchor = new GPoint(5, 1); // De plek tov het icoontje waar infoballonnetjes moeten verschijnen
        // Transparante Icon voor zoekopdracht
        icon2 = new GIcon();
        icon2.image = "http://localhost/mambo/templates/gap2008/location2.gif"; // De URL van de afbeelding die je wilt gebruiken
        icon2.iconSize = new GSize(10, 29); // De grootte van het icoontje
        icon2.iconAnchor = new GPoint(8, 30); // Anker van het icoontje, dus de plek op de afbeelding die precies op het coördinaat moet staan
        icon2.infoWindowAnchor = new GPoint(5, 1); // De plek tov het icoontje waar infoballonnetjes moeten verschijnen
        GDownloadUrl("http://localhost/mambo/templates/gap2008/locatie.xml",
        function(data, responseCode) {
            var xml = GXml.parse(data);
            var company
            var plaatje
            var address
            var plaats
            var geocoder
            var markers = xml.documentElement.getElementsByTagName("locatie");

            for (var i = 0; i < markers.length; i++) {
				
                var point = new GLatLng(parseFloat(getMarkerNode(markers[i], 'x')), parseFloat(getMarkerNode(markers[i], 'y')));
                company = getMarkerNode(markers[i], 'locationname');
                plaatje = getMarkerNode(markers[i], 'image');
                address = getMarkerNode(markers[i], 'street');
                housenr = getMarkerNode(markers[i], 'housenr');
                plaats = getMarkerNode(markers[i], 'city');
                memo = getMarkerNode(markers[i], 'memo');

                map.addOverlay(createMarker(point, i + 1, company, plaatje, address, housenr, plaats, memo));
            }
        });

        // Info popup aan marker koppelen
        function createMarker(point, number, company, plaatje, address, housenr, plaats, memo) {
            var marker = new GMarker(point, icon);
            GEvent.addListener(marker, "click",
            function() {           
                document.getElementById("MyMasterPage_CPH_Content_lblVestiging").innerHTML = company;
                document.getElementById("MyMasterPage_CPH_Content_lblAddress").innerHTML = address + " " + housenr;
                document.getElementById("MyMasterPage_CPH_Content_lblPlaats").innerHTML = plaats;
                document.getElementById("MyMasterPage_CPH_Content_lblMemo").innerHTML = memo;
                // document.getElementById("MyMasterPage_CPH_Content_tbNaar").value = address + " " + housenr + " " + plaats; //Gegevens vestiging meesturen
                //CPH_Content_
                // document.getElementById("MyMasterPage_ContentPlace HolderLeft_hidID").value;
                marker.openInfoWindow(document.getElementById("MyMasterPage_CPH_Content_MarkerForm").cloneNode(true));
            });
            return marker;
        }

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

        function onGDirectionsLoad() {}

    } // Einde Browsercompatible
} // Einde load
function addAddressToMap(response) {
    if (!response || response.Status.code != 200) {
        alert("Uw ingevoerde plaatsnaam kan niet worden herkend, probeert u het alstublieft nog eens.");
    } else {
        map.closeInfoWindow();
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
        AddressMarker = new GMarker(point, icon2);
        map.addOverlay(AddressMarker);
        map.setCenter(new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]), 10);
        PlaceInserted = place.Point.coordinates[1],
        place.Point.coordinates[0];
    }
}

function showLocation() {
    var address = document.getElementById("MyMasterPage_CPH_Content_tbInputt").value;
    if (address == document.getElementById("MyMasterPage_CPH_Content_tbInputt").defaultValue) {
        alert("Voer eerst een plaatsnaam in.");
    } else {
        //Zwolle wordt door Google in USA getoond, land toevoegen bij zoeken
        if (address.toLowerCase() == "zwolle") {
            address = address + ", NL";
        }
        geocoder.getLocations(address, addAddressToMap);
    }
}

//]]> 

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

function ClearAddressMarker() {
    try {
        map.closeInfoWindow();
    } catch(err) {
        // Geen infowindow open
    }

    gdir.clear();
    // document.getElementById("DivRoute").style.visibility = "hidden"; 
    if (document.getElementById("MyMasterPage_CPH_Content_tbLocale").value == 'nl_NL') {
        map.setCenter(new GLatLng(52.083, 5.133), 7);
    }
    if (document.getElementById("MyMasterPage_CPH_Content_tbLocale").value == 'nl_BE') {
        map.setCenter(new GLatLng(50.7, 4.7), 7);
    }
    if (document.getElementById("MyMasterPage_CPH_Content_tbLocale").value == 'fr_BE') {
        map.setCenter(new GLatLng(50.7, 4.7), 7);
    }

    document.getElementById("DivRoute").style.visibility = "hidden";
    document.getElementById("DivRoute").style.display = "none";

}

function showRoute() {
    document.getElementById("DivRoute").style.visibility = "visible";
    document.getElementById("DivRoute").style.display = "block";
}

function findRoute() {
    var strVan = document.getElementById("MyMasterPage_CPH_Content_tbVan").value;
    var strNaar = document.getElementById("MyMasterPage_CPH_Content_tbNaar").value;
    var strLocale = document.getElementById("MyMasterPage_CPH_Content_tbLocale").value;
    setDirections(strVan, strNaar, strLocale);
}

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