$(document).ready(function(){
    utilities.init();
    gallery.init();
    address.init();
    rotator.init();
});


var rotator = {
    init: function(){
        var images = ["home_1.jpg", "home_2.jpg", "home_3.jpg", "home_4.jpg"];
        var random = Math.floor(Math.random() * 4);
        $('#hook img').attr('src', '/webresources/images/' + images[random]);
    }
}

var utilities = {
    init: function(){
        utilities.calendar();
        utilities.email();
		utilities.menu();
    },
    
    calendar: function(){
        if ($('.date').length > 0) {
            $('.date').datepicker({
                showOn: 'both',
                buttonImage: '/webresources/images/icons/calendar_view_day.gif',
                buttonImageOnly: true
            });
        }
    },
    email: function(){
        var emailriddlerarray = [105, 110, 102, 111, 64, 108, 111, 110, 103, 119, 111, 111, 100, 109, 103, 109, 116, 46, 99, 111, 109];
        var encryptedemail_id91 = ''
        for (var i = 0; i < emailriddlerarray.length; i++) {
            encryptedemail_id91 += String.fromCharCode(emailriddlerarray[i]);
        }
        var link = '<a href="mailto:' + encryptedemail_id91 + '?subject=Longwood Management Corporation - Inquiry">Email Us</a>';
        $('.email').html(link);
    },
    menu: function(){
        $("#header li").hover(function(){
            $(this).children("ul").show('fast');
        }, function(){
            $(this).children("ul").hide('slow');
        });
    }
}

var address = {
    init: function(){
        $('#map').bind('click', function(){
            var street = $('.street-address').text();
            var city = $('.locality').text();
            var region = $('.region').text();
            var zipcode = $('.postal-code').text();
            var address = street + " " + city + " " + region + " " + zipcode;
            var url = "http://maps.google.com/?q=" + address;
            window.open(url);
            return false;
        });
    }
}

var gallery = {
    index: 0,
    total: 0,
    init: function(){
        $('#logo, .pictures').bind('click', function(){
            var window_width = $('body').width();
            var window_height = $(window).height();
            var thumbnail = $('#gallery a:eq(0)');
            $(thumbnail).addClass('current')
            var scrollTop = $(window).scrollTop();
            gallery.total = $('#gallery a').length;
            $('body').append('<div id="overlay"></div>');
            $('#overlay').height($('body').get(0).scrollHeight + 'px');
            $('body').append('<div id="holder">\n\
                              <div id="prev"><img src="/webresources/images/previous.gif" alt="" /></div>\n\
                              <div id="image-holder"><img src="" alt="" /></div>\n\
                              <div id="next"><img src="/webresources/images/next.gif" alt="" /></div>\n\
                              <div id="attributes"><h2></h2>\n\
                              <a href="#" class="close-gallery"><img src="/webresources/images/buttons/close.gif" alt="" /></a>\n\
                              </div></div>');
            var width = $('#holder').width();
            var height = $('#holder').height();
            var top = ((window_height - height) / 2) + scrollTop;
            var left = (window_width - width) / 2;
            $('#holder').css('top', 200);
            $('#holder').css('left', left);
            $('#holder').css('display', 'block');
            $('#image-holder img').attr('src', $(thumbnail).attr('href'));
            $('#image-holder img').show("puff", {
                percent: 100
            }, 1000, function(){
                $('#attributes h2').text($(thumbnail).attr('title'));
            });
            gallery.activate();
            return false;
        });
    },
    
    activate: function(){
        $('#holder').bind('click', function(event){
            var target = $(event.target);
            if (target.is('img')) {
                var parent = $(target).parent();
                if (parent.attr('id') == 'prev') {
                    gallery.previous();
                }
                else 
                    if (parent.attr('id') == 'next') {
                        gallery.next();
                    }
                    else 
                        if (parent.attr('class') == 'close-gallery') {
                            gallery.close(event);
                        }
            }
        })
    },
    
    next: function(){
        var next_sibling = gallery.findSibling('next');
        if (next_sibling) {
            $('#gallery .current').removeClass('current');
            $(next_sibling).addClass('current');
            $("#image-holder").addClass("loading");
            gallery.display($(next_sibling).attr('href'), $(next_sibling).attr('title'), 'right');
            gallery.index++;
            if (gallery.index >= gallery.total - 1) {
                $('#next').css('visibility', 'hidden');
            }
            $('#prev').css('visibility', 'visible');
        }
    },
    
    previous: function(){
        var previous_sibling = gallery.findSibling('prev');
        if (previous_sibling) {
            $('#gallery .current').removeClass('current');
            $(previous_sibling).addClass('current');
            $("#image-holder").addClass("loading");
            gallery.display($(previous_sibling).attr('href'), $(previous_sibling).attr('title'), 'left');
            gallery.index--;
            if (gallery.index <= 0) {
                $('#prev').css('visibility', 'hidden');
            }
            $('#next').css('visibility', 'visible');
        }
    },
    
    findSibling: function(dir){
        if (dir == 'next') {
            var next_sibling = $('.current').parents('li').next('li');
            next_sibling = $('a', next_sibling);
            if (next_sibling.length > 0) {
                return next_sibling;
            }
        }
        else 
            if (dir == 'prev') {
                var previous_sibling = $('.current').parents('li').prev('li');
                previous_sibling = $('a', previous_sibling);
                if (previous_sibling.length > 0) {
                    return previous_sibling;
                }
            }
    },
    
    close: function(event){
        $('#holder').remove();
        $('#overlay').remove();
        $('#gallery img').removeClass('current');
        gallery.index = 0;
        event.preventDefault();
    },
    
    display: function(src, title, dir){
        $('#image-holder img').fadeOut("slow").remove();
        $('#attributes h2').text('');
        var largeImage = new Image();
        $(largeImage).attr('src', src).load(function(){
            $(this).hide();
            $('#image-holder').removeClass('loading').append(this);
            
            $(this).fadeIn("slow", function(){
                $('#attributes h2').text(title);
            });
            
        });
        $(largeImage).attr("src", src);
    }
}

