﻿$(document).ready(function() {

    // Newsletter
    $(".linkNewsletter").click(function() {
        $(".newsletterContainer").show();
        $(".linkNewsletter").fadeOut("slow");
        $(".newsletterSlider").toggle("slide", { direction: "right" }, 1000);
    });
    $(".newsletterSlider .close").click(function() {
        $(".linkNewsletter").fadeIn("slow");
        $(".newsletterContainer").fadeOut("slow");
        $(".newsletterSlider").toggle("slide", { direction: "right" }, 1000);
    });

    // Cases
    $("#case01 .teaser").flash({
        src: "/App_SinglePage/Flash/TestimonialTeasers/PlayTeaser.swf",
        width: 400,
        height: 225,
        flashvars: { videoUrl: "/App_SinglePage/Flash/TestimonialTeasers/AnthonyAntoine.flv" }
    });
    $("#case02 .teaser").flash({
        src: "/App_SinglePage/Flash/TestimonialTeasers/PlayTeaser.swf",
        width: 400,
        height: 225,
        flashvars: { videoUrl: "/App_SinglePage/Flash/TestimonialTeasers/BertSmits.flv" }
    });
    $("#case03 .teaser").flash({
        src: "/App_SinglePage/Flash/TestimonialTeasers/PlayTeaser.swf",
        width: 400,
        height: 225,
        flashvars: { videoUrl: "/App_SinglePage/Flash/TestimonialTeasers/StevenWouters.flv" }
    });

    // References
    $("#referencesMore").click(function() {
        $("#referencesAll").slideToggle("slow");
    });
    $(".referencesAll .less").click(function() {
        $("#referencesAll").slideToggle("slow");
    });

    // Render tooltips
    generateToolTips(1, "leftMiddle");
    generateToolTips(2, "leftMiddle");
    generateToolTips(3, "rightMiddle");

    // Newsleter subscribe
    $(".newsletterSlider #newsletterName").DefaultValue("Naam", $(".newsletterSlider #btnNewsletter"));
    $(".newsletterSlider #newsletterEmail").DefaultValue("E-mailadres", $(".newsletterSlider #btnNewsletter"));

    $(".newsletterSlider #btnNewsletter").click(function() {
        $("#frm").validate({
            messages: {
                newsletterName: "",
                newsletterEmail: ""
            }
        }).element(".newsletterSlider #newsletterName");
        $("#frm").validate().element(".newsletterSlider #newsletterEmail");

        if (
            $(".newsletterSlider #newsletterName").valid() &&
            $(".newsletterSlider #newsletterEmail").valid()
            ) {
            // send form
            PageMethod(
                "NewsletterSubscribe",
                [
                    "newsletterName", $(".newsletterSlider #newsletterName").val(),
                    "newsletterEmail", $(".newsletterSlider #newsletterEmail").val()
                ],
                function(result) {
                    if (result.d == "200") {
                        // set message
                        $(".newsletterSlider .errorMessage").hide();
                        $(".newsletterSlider .errorMessage500").hide();
                        $(".newsletterSlider .confirmMessage").show();
                        // reset form
                        $(".newsletterSlider #newsletterName").val("");
                        $(".newsletterSlider #newsletterEmail").val("");
                    } else {
                        $(".newsletterSlider .errorMessage").html(result.d);
                        $(".newsletterSlider .confirmMessage").hide();
                        $(".newsletterSlider .errorMessage").show();
                        $(".formContainer .errorMessage500").hide();
                    }
                },
                function(xhr, ajaxOptions, thrownError) {
                    // set message
                    $(".newsletterSlider .errorMessage").hide();
                    $(".newsletterSlider .errorMessage500").show();
                    $(".newsletterSlider .confirmMessage").hide();
                },
                "/App_SinglePage/WebMethods/WebMethods.aspx"
            );
        } else {
            $(".newsletterSlider .errorMessage").html("Fouten: zie formulier.");
            $(".newsletterSlider .confirmMessage").hide();
            $(".newsletterSlider .errorMessage").show();
            $(".formContainer .errorMessage500").hide();
        }
    });

    // Send contactform
    $(".formContainer .submit").click(function() {
        $("#frm").validate({
            messages: {
                name: "",
                email: "",
                phone: "",
                remarks: ""
            }
        }).element(".formContainer #name");
        $("#frm").validate().element(".formContainer #email");
        $("#frm").validate().element(".formContainer #phone");
        $("#frm").validate().element(".formContainer #remarks");

        if (
            $(".formContainer #name").valid() &&
            $(".formContainer #email").valid() &&
            $(".formContainer #phone").valid() &&
            $(".formContainer #remarks").valid()
            ) {
            var listAbout = new Array();
            if ($(".formContainer #webdesign").attr('checked')) { listAbout.push("webdesign") };
            if ($(".formContainer #webdevelopment").attr('checked')) { listAbout.push("webdevelopment") };
            if ($(".formContainer #emarketing").attr('checked')) { listAbout.push("emarketing") };

            // send form
            PageMethod(
                "ContactFormSend",
                [
                    "name", $(".formContainer #name").val(),
                    "company", $(".formContainer #company").val(),
                    "email", $(".formContainer #email").val(),
                    "phone", $(".formContainer #phone").val(),
                    "about", listAbout.join(", "),
                    "remarks", $(".formContainer #remarks").val(),
                ],
                function(result) {
                    // set message
                    $(".formContainer .errorMessage").hide();
                    $(".formContainer .errorMessage500").hide();
                    $(".formContainer .confirmMessage").show();
                    // reset form
                    $(".formContainer #name").val("");
                    $(".formContainer #company").val("");
                    $(".formContainer #email").val("");
                    $(".formContainer #phone").val("");
                    $(".formContainer #remarks").val("");
                    $(".formContainer #webdesign").attr('checked', false);
                    $(".formContainer #webdevelopment").attr('checked', false);
                    $(".formContainer #emarketing").attr('checked', false);
                },
                function(xhr, ajaxOptions, thrownError) {
                    // set message
                    $(".formContainer .errorMessage").hide();
                    $(".formContainer .errorMessage500").show();
                    $(".formContainer .confirmMessage").hide();
                },
                "/App_SinglePage/WebMethods/WebMethods.aspx"
            );
        } else {
            $(".formContainer .confirmMessage").hide();
            $(".formContainer .errorMessage").show();
            $(".formContainer .errorMessage500").hide();
        }
    });

});

// Generate tooltips function
function generateToolTips(index, alignment) {
    $('#case0' + index).qtip({
        content: $('#case0' + index + ' .teaser'),
        hide: { fixed: true },
        position: {
            target: 'mouse',
            corner: {
                tooltip: alignment
            }
        },
        style: {
            name: 'dark',
            width: 425
        },
        api: {
            onHide: function() {
                this.destroy();
                generateToolTips(index, alignment);
            }
        }
    })
}

// Pagemethod (Web Methods)
function PageMethod(fn, paramArray, successFn, errorFn, baseUrl) {
    var pagePath = window.location.pathname;
    if (baseUrl != undefined) { pagePath = baseUrl; }
    var paramList = '';
    if (paramArray.length > 0) {
        for (var i = 0; i < paramArray.length; i += 2) {
            if (paramList.length > 0) paramList += ',';
            paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
        }
    }
    paramList = '{' + paramList + '}';
    $.ajax({
        type: "POST",
        url: pagePath + "/" + fn,
        contentType: "application/json; charset=utf-8",
        data: paramList,
        dataType: "json",
        success: successFn,
        error: errorFn
    });
}

function AjaxSucceeded(result) {
    alert(result.d);  
}
function AjaxFailed(xhr, ajaxOptions, thrownError) {
    alert('ERROR: ' + xhr.statusText + ' - ' + thrownError);
}