﻿
function vimeo_image_callback(data) {
    $("#vimeo-" + data[0].id).attr('src',data[0].thumbnail_small);
}

function applyjQuery(data) {
    if ($(data).find('.expandable').length > 0) {
        PreloadImages('/Images/expandable-collapsed.gif', '/Images/expandable-expanded.gif');
    }

    if ($(data).find('div.case-study-container').length > 0) {
        PreloadImages('/Images/case-study-list-background-hover.gif', '/Images/case-study-list-background.png',
            '/Images/case-study-list-background-top.gif');
    }

    data.find('a.expandable').click(function () {
        if ($(this).hasClass('expanded')) {
            $(this).parent().next().fadeOut();
            $(this).removeClass('expanded').addClass('collapsed');
        }
        else {
            $('div.expandable-content').hide();
            $('a.expandable').removeClass('expanded').addClass('collapsed');
            $(this).parent().next().fadeIn();
            $(this).removeClass('collapsed').addClass('expanded');
            if ($(this).parent().next().hasClass('loaded')) {
                $(this).parent().next().fadeIn();
            }
            else {
                if (typeof (_gaq) !== 'undefined') {
                    _gaq.push(['_trackPageview', $(this).attr('href')]);
                }
                $(this).parent().next().fadeIn();
                var content_url = $(this).attr('content-url');
                if (content_url.indexOf('?') > -1) {
                    content_url += '&seed=' + Math.random();
                }
                else {
                    content_url += '?seed=' + Math.Random();
                }
                $(this).parent().next().find('div.fadein').load(content_url, function () {
                    $(this).parent().addClass('loaded');
                    $(this).parent().find('div.spinner').addClass('spinner-loaded').fadeOut();
                    $(this).parent().find('div.fadein').fadeIn();
                    applyjQuery($(this).parent().find('div.fadein'));
                });
            }
        }
        return false;
    });

    data.find('div.lightbox-gallery a').lightBox();
    
    data.find('div.case-study-container div.case-study').hover(
        function() {
            $(this).addClass('case-study-hover');
            $(this).next().show();
            $(this).next().css('top', parseInt($(this).offset().top) + parseInt($(this).outerHeight()) + 'px');
            $(this).next().css('left', Math.round($(this).offset().left) + 'px');
        },
        function() {
            $(this).removeClass('case-study-hover');
            $(this).next().hide();
        }
    );
    data.find('div.case-study-container div.case-study').live('touchend', function() {
        window.location = $(this).find('a.thumbnail').attr('href');
    });
    data.find('div.case-study-container div.case-study').click(function() {
        window.location = $(this).find('a.thumbnail').attr('href');
    });

    data.find('div.case-study-service-navigation a').click(function() {
        $('div.case-study-service-navigation a').removeClass('active');
        $(this).addClass('active');
        $('div.case-studies-containers div.case-study-container').removeClass('active');
        $('div.case-studies-containers div:nth-child(' + (($(this).index() / 2) + 1) + ')').addClass('active');
        $('div.case-study-extra').hide();
        return false;
    });

    if ((window.location + '').indexOf('#') > -1) {
        service = (window.location + '').split('#')[1];
        $('a#' + service).trigger('click');
    }  

    //Case Study Player
    data.find('div.case-study-panels div').each(function() {
        if ($(this).attr('panel-type') == 'picture') {
            $('div.case-study-panel-navigation div.thumbnails').append(
                '<div class="thumbnail"><img src="' + $(this).attr('thumbnail') + '" alt="' + escape($(this).attr('title')).replace('"', '') + '" /></div>'
            );
        }
        if ($(this).attr('panel-type') == 'video') {
            $('div.case-study-panel-navigation div.thumbnails').append(
                '<div class="thumbnail">' +
                '<script type="text/javascript" src="http://vimeo.com/api/v2/video/' + $(this).attr('source') + '.json?callback=vimeo_image_callback"></script>' +
                '<img id="vimeo-' + $(this).attr('source') + '" alt="' + escape($(this).attr('title')).replace('"', '') + '" />' +
                '</div>'
            );
        }
    });
    data.find('div.case-study-panel-navigation div.thumbnail').click(function() {
        panel = $('div.case-study-panels div:nth-child(' + ($(this).index() + 1) + ')');
        if (panel.hasClass('active')) return;
        $('div.case-study-panels div').removeClass('active');
        $('div.case-study-panels div').fadeOut(function() {
            if (!$(this).hasClass('active')) {
                $(this).html('');
            }
        });
        panel.addClass('active');
        if (panel.length > 0) {
            if (panel.attr('panel-type') == 'picture') {
                panel.append(
                    $('<img src="' + panel.attr('source') + '" alt="' + $(this).attr('title') + '" />').load(function() {
                        $('div.case-study-panels').animate({
                            height: $(this).css('height')
                        });
                    })
                );

            }
            if (panel.attr('panel-type') == 'video') {
                width = 719;
                height = panel.attr('source-height') > 0 ? parseInt(719 / panel.attr('source-width') * panel.attr('source-height')) : 404;

                panel.append(
                    '<iframe src="http://player.vimeo.com/video/' + panel.attr('source') + '?title=0&amp;byline=0&amp;portrait=0&amp;autoplay=1&amp;color=E69136" width="' + width + '" height="' + height + '" frameborder="0"></iframe>'
                );
                $('div.case-study-panels').animate({
                    height: height
                });
            }
            panel.fadeIn();
        }
    });
    data.find('div.case-study-panel-navigation div.thumbnail').first().trigger('click');
    

    //Case Study Thumbnail Scrolling
    data.find('div.case-study-panel-navigation div.thumbnails')
        .css('width', (data.find('div.case-study-panels div').length * 87) + 'px'); 
    if (parseInt(data.find('div.case-study-panel-navigation div.thumbnails').css('width')) > 689) {
        data.find('div.case-study-panel-navigation div.next-button div').addClass('active');
    }    
    data.find('div.case-study-panel-navigation div.next-button div, div.case-study-panel-navigation div.previous-button div').hover(
        function() {
            if ($(this).hasClass('active')) {
                $(this).addClass('hover');
            }
        },
        function() {
            $(this).removeClass('hover');
        }
    );
    data.find('div.case-study-panel-navigation div.next-button div').click(function() {
        if (!$(this).hasClass('active')) return;
        $('div.case-study-panel-navigation div.next-button div').removeClass('active').removeClass('hover');
        $('div.case-study-panel-navigation div.previous-button div').removeClass('active').removeClass('hover');
        $('div.case-study-panel-navigation div.thumbnails').animate({
            left: '-=696'
        }, 500, 'swing', function() {
            if (parseInt($('div.case-study-panel-navigation div.thumbnails').css('width')) + parseInt($('div.case-study-panel-navigation div.thumbnails').css('left')) > 689) {
                $('div.case-study-panel-navigation div.next-button div').addClass('active');
            }
            else {
                $('div.case-study-panel-navigation div.next-button div').removeClass('active').removeClass('hover');
            }
            if (parseInt($('div.case-study-panel-navigation div.thumbnails').css('left')) < 0) {
                $('div.case-study-panel-navigation div.previous-button div').addClass('active');
            }
            else {
                $('div.case-study-panel-navigation div.previous-button div').removeClass('active').removeClass('hover');
            }
        });
    });
    data.find('div.case-study-panel-navigation div.previous-button div').click(function() {
        if (!$(this).hasClass('active')) return;
        $('div.case-study-panel-navigation div.next-button div').removeClass('active').removeClass('hover');
        $('div.case-study-panel-navigation div.previous-button div').removeClass('active').removeClass('hover');
        $($('div.case-study-panel-navigation div.thumbnails')).animate({
            left: '+=696'
        }, 500, function() {
            if (parseInt($('div.case-study-panel-navigation div.thumbnails').css('width')) + parseInt($('div.case-study-panel-navigation div.thumbnails').css('left')) > 689) {
                $('div.case-study-panel-navigation div.next-button div').addClass('active');
            }
            else {
                $('div.case-study-panel-navigation div.next-button div').removeClass('active').removeClass('hover');
            }
            if (parseInt($('div.photo-gallery-thumbs').css('left')) < 0) {
                $('div.case-study-panel-navigation div.previous-button div').addClass('active');
            }
            else {
                $('div.case-study-panel-navigation div.previous-button div').removeClass('active').removeClass('hover');
            }
        });
    });

    data.find('div.sharing a.twitter').click(function() {
        share_url = $(this).attr('share-url');
        if (share_url == undefined || share_url == '') {
            share_url = window.location + '';
        }
        share_title = $(this).attr('share-title');
        if (share_title == undefined || share_title == '') {
            share_title = document.title;
        }

        window.open('http://twitter.com/share?url=' + escape($('a').attr('href', share_url)[0].href) + '&text=' + escape(share_title), 'sharewindow', 'status=0,toolbar=0,location=0,menubar=0,width=500,height=550');
        return false;
    });

    data.find('div.sharing a.facebook').click(function() {
        share_url = $(this).attr('share-url');
        if (share_url == undefined || share_url == '') {
            share_url = window.location + '';
        }
        share_title = $(this).attr('share-title');
        if (share_title == undefined || share_title == '') {
            share_title = document.title;
        }
        window.open('http://www.facebook.com/sharer.php?u=' + escape($('a').attr('href', share_url)[0].href) + '&t=' + escape(share_title), 'sharewindow', 'status=0,toolbar=0,location=0,menubar=0,width=500,height=550');
        return false;
    });

    data.find('div.sharing a.other').click(function() {
        return false;
    });

    data.find('div.archive div.year a').click(function() {
        if ($(this).hasClass('active')) {
            $('div.archive div.month').slideUp();
            $('div.archive div.year a').removeClass('active');
        }
        else {
            $('div.archive div.month').slideUp();
            $('div.archive div.year a').removeClass('active');
            $(this).addClass('active');
            $(this).parent().next().slideDown();
        }
        return false;
    });
    data.find('div.archive div.year a').first().addClass('active');
    data.find('div.archive div.month').first().show();

    data.find('div.facebook-container').each(function() {
        $(this).load('/Template/Ajax/FacebookStream.aspx');
    });
    
    data.find('div.twitter-container').each(function(){
        $(this).load('/Template/Ajax/TwitterStream.aspx');
    });
}

$(document).ready(function() {
    applyjQuery($(document));
    if (typeof (Sys) !== 'undefined') {
        var manager = Sys.WebForms.PageRequestManager.getInstance();
        manager.add_endRequest(EndRequestHandler);
        manager.add_pageLoaded(PageLoadedHandler);
    }
});

function EndRequestHandler(sender, args) {
    if (args.get_error() != undefined) {
        var errorMessage = args.get_error().message;
        //    alert(errorMessage);
    }
}

function PageLoadedHandler(sender, args) {
    var panels = args.get_panelsUpdated();
    if (panels.length > 0) {
        var reload_addthis = false;
        for (i = 0; i < panels.length; i++) {
            applyjQuery($(panels[i]));
        }
    }
}

function PreloadImages() {
    var args_len = arguments.length;
    for (var i = args_len; i--; ) {
        $('<img />').attr('src', arguments[i]).hide().load(function() { $('body').append($(this)) });
    }
}

