var periodAdding = false;

$(document).ready(function () {

    // Accordion functie voor Veelgestelde vragen
    if ($(".accordion").length > 0) {

        $('.accordion h3').click(function () {
            if ($(this).hasClass("active")) {
                $('.accordion h3').removeClass("active");
                $('.accordion div').hide(400);
            } else {
                $('.accordion div').hide(400);
                $('.accordion h3').removeClass("active");
                $(this).next().show(400);
                $(this).addClass("active");
            }
            return false;
        }).next().hide();

        // go to selected faq.
        if (faqId != undefined && faqId != null) {
            $(".accordion h3").each(function () {
                if ($(this).attr("reference") == faqId) {
                    $(this).click();
                }
            });
        }
    }

    // caroussel functionaliteit in de header op contentpagina's
    if ($('#caroussel').length > 0) {
        $('#caroussel').cycle({
            fx: 'fade'
        });
    }

    // IE6 fix voor PNG's
    if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
        if ($('#home').is('*')) {
            $('#headerTop, #headerFooter, #photo, #person').supersleight();
        } else {
            $('#headerTop, #headerFooter, .bigButtonLink, .buttonLinks').supersleight();
        }
    }
    $('.callme.datum').datePicker({ autoFocusNextInput: true });

    $("#extraGegevens").hide();

    $('.openContactForm').click(function () {
        $('#extraGegevens').show(400);
        $.scrollTo('.submitContactForm', 800, {});
        $(this).hide();
        trackEvent('contact', 'bellen', 'belbutton1');
        return false;
    });

    $('#uwtelefoonnummer').Watermark('Uw telefoonnummer', '#999');
    $('#uwnaam').Watermark('Uw naam', '#999');
    $('#uworganisatie').Watermark('Uw organisatie', '#999');


    setGAPdfTracking();

});

var periodCounter = 0;

function initWizard() {
    $.validator.addMethod(
    'dateNL',
    function (value, element) {
        // put your own logic here, this is just a (crappy) example
        return value.match('(((((0[1-9]|[12][0-9]|3[01])/(0[13578]|1[02]))|((0[1-9]|[12][0-9]|30)/(0[469]|11))|((0[1-9]|[1][0-9]|2[0-8]))/02)/([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})))');
    },
    "Ongeldige datum. Gebruik dd/mm/jjjj"
);

    $.validator.addMethod(
    'laterThenVan',
    function (value, element) {
        var elmVan=$('#' + element.id.replace('tot', 'van'));
        var elmTot=$(element);
        var vanParts=elmVan.val().split('/');
        var totParts=elmTot.val().split('/');
        var dateVan = new Date(vanParts[2],vanParts[1],vanParts[0]);
        var dateTot = new Date(totParts[2], totParts[1], totParts[0]);
        return (dateVan <= dateTot);
    },
    "Ongeldige datum of datum niet mogelijk"
);

//    $.validator.addMethod(
//    'earlierThenTot',
//    function (value, element) {
//        var elmTot = $('#' + element.id.replace('van', 'tot'));
//        var elmVan = $(element);
//        var vanParts = elmVan.val().split('/');
//        var totParts = elmTot.val().split('/');
//        var dateVan = new Date(vanParts[2], vanParts[1], vanParts[0]);
//        var dateTot = new Date(totParts[2], totParts[1], totParts[0]);
//        return (dateVan < dateTot);
//    },
//    "Datum niet mogelijk"
//);



    // Wizard scripts
    //if ($('#wizardForm').length > 0) {
        periodCounter = 0;
        // Datepickers
        $('#wizardForm .datum').datePicker({ autoFocusNextInput: true, startDate: '01/01/1996' });
        $('.addLine').unbind();
        $('.addLine').click(function () {
            if (periodAdding) {
                periodCounter++;
                addPeriod(periodCounter);
            }
            return false;
        });

        if ($('.dateSet').length != 0) {
            recreateDateSet();
        }

        $('.removeThisLine').live('click', function () {
            $(this).parent().remove();
            periodCounter--;
            return false;
        });

        // Helpbuttons
        $(".foldout").hide();
        $(".showMe").show();

        $(".help").click(function () {
            toggleInfo(this); return false;
        });

        // Overlap issue voortgangsindicator
        $('#tabButtons li a').each(function () {
            if ($(this).hasClass('active')) {
                $(this).parent().css('z-index', '1000');
            }
        });
    //}

    $('.maths').append("<div class='plusplus'>+</div>");
}

function recreateDateSet() {
    var ctl = $('div#periods input')[0];
    var val = $(ctl).val();
    var lines = val.split("|");
    $(lines).each(function () {
        if ($(this).length != 0) {
            var lineParts = this.split(";");
            if (lineParts[0] == '0') {
                $('input#van').val(lineParts[1].replace(/-/g, "/"));
                $('input#tot').val(lineParts[2].replace(/-/g, "/"));
                $('input#percentage').val(lineParts[3]);
            } else {
                addPeriod(lineParts[0], lineParts[1], lineParts[2], lineParts[3]);
            }
        }
    });
}

function addPeriod(counter, from, to, perc) {
    if (from == null) { from = ""; }
    if (to == null) { to = ""; }
    if (perc == null) { perc = ""; }
    from = from.replace(/-/g, "/");
    to = to.replace(/-/g, "/");
    $('.extraLines').append('<div id="period' + counter + '" class="periode"><label for="van-' + counter + '">en van <input type="text" id="van-' + counter + '" class="datum" name="van-' + counter + '" value="' + from + '"/></label> <label for="tot-' + counter + '">T/m <input type="text" id="tot-' + counter + '" class="datum" name="tot-' + counter + '" value="' + to + '" /></label><p class="procentArbeidsongeschikt">Percentage arbeidsongeschiktheid<label for="percentage' + counter + '"><input type="text" class="percentage" id="percentage-' + counter + '" name="percentage-' + counter + '" value="' + perc + '" />procent</label></p><a href="#" class="removeThisLine">Verwijder</a></div>');
    $('.extraLines .datum').datePicker({ autoFocusNextInput: true, startDate: '01/01/1996' });
    $('#van-' + counter).rules('add',{dateNL : true});
    $('#tot-' + counter).rules('add', { dateNL: true, laterThenVan: true });
    $('#percentage-' + counter).rules('add', { required: true, min: 0, max: 100, messages: { required: 'vul een waarde in', min: 'ongeldige waarde', max: 'ongeldige waarde'} });
    $('#period' + counter + ' input[type*="text"]').change(function () { processEditBlur(this); });
}

function toggleInfo(helpButton) {
    if ($(helpButton).hasClass('activeHelp')) {
        foldinFirstInfo(helpButton);
    } else {
        foldoutFirstInfo(helpButton);
    }

}

function foldoutFirstInfo(helpButton) {
    $(helpButton).parent().find(".foldout:first").fadeIn(200);
    $(helpButton).addClass("activeHelp");
}

function foldinFirstInfo(helpButton) {
    $(helpButton).parent().find(".foldout:first").fadeOut(200);
    $(helpButton).removeClass("activeHelp");
}

function sendCallMeForm() {
    var error = false;
    var elm = $('#uwtelefoonnummer');
    if ($(elm).val() == 'Uw telefoonnummer' || $(elm).val() == '') {
        $(elm).val('Uw telefoonnummer');
        $(elm).css('color', 'red');
        error = true;
    }
    elm = $('#uwnaam');
    if ($(elm).val() == 'Uw naam' || $(elm).val() == '') {
        $(elm).val('Uw naam');
        $(elm).css('color', 'red');
        error = true;
    }
    elm = $('#uworganisatie');
    if ($(elm).val() == 'Uw organisatie' || $(elm).val() == '') {
        $(elm).val('Uw organisatie');
        $(elm).css('color', 'red');
        error = true;
    }
    elm = $('#datum');
    if ($(elm).val() == '') {
        $(elm).val('Datum');
        $(elm).css('color', 'red');
    }
    if ($(elm).val().match('(((((0[1-9]|[12][0-9]|3[01])/(0[13578]|1[02]))|((0[1-9]|[12][0-9]|30)/(0[469]|11))|((0[1-9]|[1][0-9]|2[0-8]))/02)/([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})))') == null) {
        $(elm).val('dd/mm/jjjj');
        $(elm).css('color', 'red');
        error = true;
    }

    if (error != true) {

        trackEvent('contact', 'bellen', 'belbutton2');
        __doPostBack('CallMeBack', '');
    }
}

function trackPage(location) {
    _gaq.push(['_trackPageview', location]);
}

function trackEvent(cat, action, label) {
    _gaq.push(['_trackEvent', cat, action, label]);
}

function setGAPdfTracking() {
    $("a").each(function () {
        if ($(this).attr('href') != null && $(this).attr('href').substr(-4) == '.pdf') {
            $(this).click(function () {
                trackEvent('brochures', $(this).html());
            });
        }
    });

}
