/*
    Onload
*/

var oMap;
var oGeocoder;
var oDirections;

$(document).ready( function() {

    ie6HoverFix('afbeeldinglinks');

    //tooltips formules op homepage
    /*
    if ($('a.tooltip_formules').length > 0) {
        $('a.tooltip_formules').bstip({
            sticky: 'none',
            color: 'tooltip_formules_box',
            speed: 'fast',
            type: 'tip',
            tack: 0,
            keep: 0,
            hook: "top-mid",
            ynudge: 50,
            xnudge: 0,
            opacity: 1
        });
    }
    */

    // links met rel="external" openen in een nieuw venster
    $('A[rel="external"]').click( function() {
        window.open(jQuery(this).attr('href') );
        return false;
    } );

    // zoekformulier tekst veranderen

    // onFocus
    $("input[name=q]").focus( function() {
        if ($(this).val() == 'Wat wilt u zoeken') {
            $(this).val('');
        }
    });

    // onBlur
    $("input[name=q]").blur( function() {
        if ($(this).val() == '') {
            $(this).val('Wat wilt u zoeken');
        }
    });

});


/*
    Afbeeldingslinks (over ons subs)
*/

function ie6HoverFix(sId) {

    if ($("#"+sId+" li").length > 0) {
        $("#"+sId+" li").each( function(index) {
            $(this).hover(
                function() {
                    /* mouseover */
                    $(this).addClass('hover');
                },
                function() {
                    /* mouseout */
                    $(this).removeClass('hover');
                }
            );
        });
    }

}



/*
    Routebeschrijving
*/

function makeRoute() {

    //map en beschrijving tonen
    $("#map_canvas").css('display', 'block');
    $("#route_beschrijving").css('display', 'block');

    if (!GBrowserIsCompatible()) {
        return false;
    }

    //maak map aan
    oMap = new GMap2(document.getElementById("map_canvas"), {backgroundColor: '#ffffff'});
    oMap.setMapType(G_NORMAL_MAP);
    oMap.setUIToDefault();
    oGeocoder = new GClientGeocoder();
    oDirections = new GDirections(oMap, document.getElementById("route_beschrijving"));

    var sAdres = $("input[name='adres']").val();
    var sPlaatsnaam = $("input[name='plaatsnaam']").val();

    if ((sAdres != '') && (sPlaatsnaam != '')) {

        //clear map and directions
        oMap.clearOverlays();
        $("#route_beschrijving").html('');

        //maak adressen op
        var sOrigin = sAdres + ', ' + sPlaatsnaam;
        sOrigin = sOrigin.replace(/ /g, "+");
        var sDestination = 'Marconiweg 2c, Vianen';
        sDestination = sDestination.replace(/ /g, "+");

        query = 'from: ' + sOrigin + ' to: ' + sDestination;

        GEvent.addListener(oDirections, "error", function() {
            displayError(oDirections.getStatus().code);
        });

        oDirections.load(query, {locale: 'nl_NL'});

        GEvent.addListener(oDirections,"load", function() {
            setTimeout(function() {

            },0);
        });

    } else {
        //men heeft geen adres opgegeven
        displayError(601);
    }

    return false;

}

function displayError(errorCode) {

    mapErrors=[];
    mapErrors[200]   = "Success";
    mapErrors[400]   = "Kan geen route ophalen.";
    mapErrors[601]   = "Het adres mist.";
    mapErrors[602]   = "Onbekend adres:  Controleer het ingevulde adres.";
    mapErrors[603]   = "Onmogelijk adres:  Helaas kan om contractuele redenen het adres niet worden weergegeven.";
    mapErrors[604]   = "Onmogelijk adres: Geen route mogelijk tussen de adressen of geen route beschikbaar.";
    mapErrors[610]   = "Foute Key: Neem contact op met de systeem beheerder.";
    mapErrors[620]   = "Het maximum aantal aanvragen is overschreden.";
    mapErrors[500]   = "Server fout: De aanvraag kan op dit moment niet worden behandeld. Probeer het later nog eens.";

    $("#route_beschrijving").html('<p><b>' + mapErrors[errorCode] + '</b></p>');

    //zet winkel marker op de kaart
    oGeocoder.getLatLng('Marconiweg 2c, Vianen', function(point) {

        oMarker = new GMarker(point);
        oMap.addOverlay(oMarker);
        oMap.setCenter(point, 15);

    });

}
