$(document).ready(function () {

    //////////////////////////////////////
    // Email Form 
    //////////////////////////////////////

    $('.emailForm p.text label').css("display", "none");
    $('.emailForm input[title], .emailForm textarea[title]').each(function () {
        if ($(this).val() === '') {
            $(this).val($(this).attr('title'));
        }

        $(this).focus(function () {
            if ($(this).val() === $(this).attr('title')) {
                $(this).val('').addClass('focused');
            }
        });

        $(this).blur(function () {
            if ($(this).val() === '') {
                $(this).val($(this).attr('title')).removeClass('focused');
            }
        });
    });

    $(".attach-file-link a").click(function (e) {
        e.preventDefault();
        $(".attach-file").slideToggle("fast");
    });

    $(".onDemandCheck").click(function () {
        $(".onDemandInfo").slideToggle("fast");
        $(".onDemandInfo input").toggleClass("required");
    });

    $(".emailForm").submit(function (e) {
        $('.invalid').removeClass('invalid');
        clearErrors();

        var isValid = true;
        $('.required').each(function () {
            var $field = $(this);
            if (isEmpty($field)) {
                $field.addClass('invalid');
                isValid = false;
                var title = $field.attr('title');
                addError(title + " is required.");
                $('.error-messages').addClass("has-errors");
            }
        });

        $('.email').each(function (isValid) {
            var $field = $(this);
            if (!isEmail($field)) {
                $field.addClass('invalid');
                isValid = false;
                addError("Email address must be valid.");
            }
        });

        if (!isValid) {
            e.preventDefault();
        }
        return isValid;

    });

    function isEmpty($element) {
        var inputText = jQuery.trim($element.val());
        var title = jQuery.trim($element.attr('title'));
        return inputText == "" || inputText.toLowerCase() == title.toLowerCase();
    }

    function isEmail($element) {
        var regex = /^[A-Za-z0-9](([_\.\-+]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/i
        var inputText = jQuery.trim($element.val());
        var title = jQuery.trim($element.attr('title'));
        return regex.test(inputText) || inputText.toLowerCase() == title.toLowerCase();
    }

    function clearErrors() {
        $('.error-messages li').remove();
        $('.error-messages').removeClass("has-errors");
    }

    function addError(errorText) {
        $('.error-messages').append("<li>" + errorText + "</li>");
        $('.error-messages').addClass("has-errors");
    }

    //////////////////////////////////////
    // Blog
    //////////////////////////////////////
    $('.blog .post img').each(function () {
        resizeImage($(this));
    });

    $('.blog .post img').load(function () {
        resizeImage($(this));
    });

    function resizeImage($img) {
        var width = $img.width();
        var maxWidth = $('.blog .post').width() - 40; //-40 for gutter
        if (width > maxWidth) {
            var scale = maxWidth / width;
            width = width * scale;
            var height = $img.height();
            height = height * scale;

            $img.css('width', width + 'px');
            $img.css('height', height + 'px');
        }
    }


    //////////////////////////////////////
    // Make Better Software
    //////////////////////////////////////
    $(".make-better-software .trailer-placeholder").click(function () {
      $(this).hide();
      $(".make-better-software .trailer").show();
    });

});
