
(function($) {

    /*
    * Auto-growing textareas; technique ripped from Facebook
    */
    $.fn.autogrow = function(options) {

        this.filter('textarea').each(function() {

            var $this = $(this),
                minHeight = $this.height(),
                lineHeight = $this.css('lineHeight');

            var shadow = $('<div></div>').css({
                position: 'absolute',
                top: -10000,
                left: -10000,
                width: $(this).width() - parseInt($this.css('paddingLeft')) - parseInt($this.css('paddingRight')),
                fontSize: $this.css('fontSize'),
                fontFamily: $this.css('fontFamily'),
                lineHeight: $this.css('lineHeight'),
                resize: 'none'
            }).appendTo(document.body);

            var update = function() {

                var times = function(string, number) {
                    for (var i = 0, r = ''; i < number; i++) r += string;
                    return r;
                };

                var val = this.value.replace(/</g, '&lt;')
                                    .replace(/>/g, '&gt;')
                                    .replace(/&/g, '&amp;')
                                    .replace(/\n$/, '<br/>&nbsp;')
                                    .replace(/\n/g, '<br/>')
                                    .replace(/ {2,}/g, function(space) { return times('&nbsp;', space.length - 1) + ' ' });

                shadow.html(val);
                $(this).css('height', Math.max(shadow.height() + 20, minHeight));

            }

            $(this).change(update).keyup(update).keydown(update);

            update.apply(this);

        });

        return this;

    }

})(jQuery);


(function($) {
    var cache = [];
    // Arguments are image paths relative to the current page.
    $.preLoadImages = function() {
        var args_len = arguments.length;
        for (var i = args_len; i--; ) {
            var cacheImage = document.createElement('img');
            cacheImage.src = arguments[i];
            cache.push(cacheImage);
        }
    }
})(jQuery)

$(window).bind('load', function() {
    $.preLoadImages('/Lighthouse/Content/Css/lighthouse/footer_menu_contact_us.png',
        '/Lighthouse/Content/Css/lighthouse/footer_menu_legal_privacy.png',
        '/Lighthouse/Content/Css/lighthouse/footer_menu_site_map.png',
        '/Lighthouse/Content/Css/lighthouse/footer_menu_contact_us_hover.png',
        '/Lighthouse/Content/Css/lighthouse/footer_menu_legal_privacy_hover.png',
        '/Lighthouse/Content/Css/lighthouse/footer_menu_site_map_hover.png');
});

$(document).ready(function() {
    Date.format = 'mm/dd/yyyy';
    $('textarea').autogrow();
    $('.hover').mouseover(function() { $(this).addClass("onhover"); });
    $('.hover').mouseout(function() { $(this).removeClass("onhover"); });
    $(".text-box,.check-box,.list-box")
            .focus(function() {
                $(this).parent().parent().addClass('form-focus');
            })
            .blur(function() {
                $(this).parent().parent().removeClass('form-focus');
            });
})

