$(document).ready(function () {

    setupJqueryValidator();


    if (jQuery.browser.msie == true)
        $("html").addClass("ie"+parseInt(jQuery.browser.version,10));


    if ($("#divBottomLeftArticle h2:first div").height() == 0)
        $("#divBottomLeftArticle h1:first").css('margin-top', '-10px');


});

function setupJqueryValidator() {
    jQuery.validator.addMethod('phone', function (value, element) {
        return /((^06((\s{0,1})|(\-{0,1}))[0-9]{8}$)|(^[0-9]{3,4}(\s{0,1}|\-{0,1})[0-9]{6,7}$)|(^\+{1}[0-9]{2}(\s{0,1}|\-{0,1})[0-9]{2,3}(\s{0,1}|\-{0,1})[0-9]{6,7}$))/.test(value);
    }, '');

    // we willen geen error labels, die krijgen we niet als er geen errormeldingen zijn
    jQuery.validator.messages.required = "";
    jQuery.validator.messages.email = "";
    jQuery.validator.messages.phone = "";
}

// Setup om gegevens formulier geen html form dus) te valideren met jqueryValidate
// submitButtonId is de button die de validatie moet triggeren en daarna al dan niet de submitbutton
// formId is het ID van het gegevensformulier dat gevalideerd moet worden door meegeleverde knop
//  formID is dus geen htmlform maar een gegevensformulier
function setupFormValidation(submitButtonId, formId) {
    $('#' + submitButtonId).click(function () {
        var v = undefined;
        $('#' + formId + ' input').each(function () {
            if ($(this).attr("type") != "file") {
                $(this).val(this.value);

                // de watermark code overschrijft de jQuery.val() functie, deze overschrijving maakt de validatie kapot
                // dit fixen we door te kijken of de (dom) value nog overeenkomt met de (jQuery)val(), zodra dit ninet overeenkomt
                // komt dit omdat de watermark tekst er nog staat, en die overschrijven we met een lege string
                var value = this.value;
                var val = $(this).val();

                //remove watermark
                if (val !== value) { this.value = ''; }
                if (!$(this).valid()) {
                    v = false;
                }

                //restore watermark
                if (val !== value) {
                    this.value = val;
                    $(this).val(val);   // nodig om IE7 het watermark ook weer te laten tonen nadat een veld niet door de error validatie heenkomt
                }
            }
        });
        return v;
    });
}

function setupVacatureContactForm() {
    $(document).ready(function () {
        $("#form1").validate();  // setup jquery validate
        $('#tbName').watermark('Uw naam *');
        $('#tbPhone').watermark('Uw telefoonnummer *');
        $('#tbEmail').watermark('Uw e-mailadres *');
        $('#tbOpmerking').watermark('Uw motivatie');

        setupFormValidation("lnkButtonSendVacatureContactMail", "divVacatureContactForm");
    });
}

function setupSmallCallbackForm() {
    $(document).ready(function () {
        $("#form1").validate();  // setup jquery validate
        $('#tbCompany').watermark('Uw Bedrijfsnaam');
        $('#tbName').watermark('Uw naam');
        $('#tbPhone').watermark('Uw telefoonnummer');

        setupFormValidation("lnkButtonSendSmallCallBack", "divSmallContactForm");
    });
}

function setupQuestionForm() {
    $(document).ready(function () {
        $("#form1").validate();    // setup jquery validate
        $('#tbBedrijfnaam').watermark('Bedrijfsnaam');
        $('#tbVoornaam').watermark('Voornaam');
        $('#tbAchternaam').watermark('Achternaam');
        $('#tbEmail').watermark('E-mail');
        $('#tbPhone').watermark('Telefoonnummer');
        $('#tbQuestion').watermark('Vraag/opmerking');

        setupFormValidation("lnkButtonSendQuestion", "divIHaveAQuestionForm");
    });
}


function setupAppointmentForm() {
    $(document).ready(function () {
        $("#form1").validate();    // setup jquery validate
        $('#tbBedrijfAppointment').watermark('Bedrijfsnaam');
        $('#tbVoornaamAppointment').watermark('Voornaam');
        $('#tbAchternaamAppointment').watermark('Achternaam');
        $('#tbEmailAppointment').watermark('E-mail');
        $('#tbPhoneAppointment').watermark('Telefoonnummer');
        $('#tbPreferedDateAppointment').watermark('Voorkeursdatum');
        $('#tbQuestionAppointment').watermark('Vraag/opmerking');

        setupFormValidation("lnkButtonSendAppointment", "divIWantToMakeAnAppointment");
    });
}

// google maps
function initializeGoogleMaps() {
    var centerPos = new google.maps.LatLng(52.162266, 5.059776);
    var allureHq = new google.maps.LatLng(52.115033, 5.050046);
    var myOptions = {
        zoom: 11,
        center: centerPos,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var contentString = '<div id="gmInfoWindow" style="overflow:hidden; width:260px; height:85px;">' +
            '<div class="gmLeftBlock">' +
                '<img alt="" src="images/Foto-hoofdkantoor.jpg" width="82" style="padding-top:10px;">' +
            '</div>' +
            '<div class="gmRightBlock">' +
                '<h1 class="gmH1">Allure Executive Match</h1>' +
                'Kobaltweg 44<br/>' +
                '3542 CE Utrecht<br/>' +
                'Tel: 030-7210580<br/>' +
                'Fax: 030-2762325<br/>' +
            '</div>' +
        '</div>';

    var infowindow = new google.maps.InfoWindow({
        content: contentString
    });

    var marker = new google.maps.Marker({
        position: allureHq,
        map: map,
        title: 'Allure executive match'
    });
    google.maps.event.addListener(marker, 'click', function () {
        infowindow.open(map, marker);
    });
    infowindow.open(map, marker);
}

function log(s) {
    if (typeof (console) !== 'undefined' && console.log) {
        console.log(s);
    }
}
