$(document).ready(function() {
    BindVeil();
    BindAccordion();
    GridHeightAsLargest();
    BindDoubleArrowNavigationEvents();
    BindThumbnailHover();
    BindThumbnailAction();
    BindNewsBodyLinks();
    BindFilterLinks();
});

$(window).load(function() {
//    $('#imageCache').load("/ImagePrecaching body > *");
});
    

function BindVeil() {
    $('#veil').fadeTo(0.0, 0.0);
    $('#veil').css('display', 'inline-block');
    $('#veil').css('height', '100%');
    $('#veil').hide();
}

function BindAccordion()
{
    var h = function(obj) {
        obj.preventDefault();
        obj.stopImmediatePropagation();
        var header = $(this);
        if ($('#accordion > .rightContent:visible').index(header.next()) == -1) {
            $('#veil').css('display', 'inline-block');
            $(header.next()).load(header.attr('href') + ' .contentSlider', function() {
                if ($('#accordion > .rightContent:visible').length != 0) {
                    $('#accordion > a').removeClass('rightBoxBlue');
                    $('#accordion > a').addClass('rightBox');
                    header.removeClass('rightBox');
                    header.addClass('rightBoxBlue');
                    $('#accordion > .rightContent:visible').slideUp('slow', function() {
                        $(this).empty()
                        $(this).hide();
                        $('#accordion').animate({ 'top': (110 - header.position().top) + 'px' }, 500, function() {
                            header.next().slideDown('slow', function() {
                                GridHeightAsLargest();
                                $('#veil').hide();
                                FilterThumbs();
                            });
                        });
                    });
                }
                else {
                    header.removeClass('rightBox');
                    header.addClass('rightBoxBlue');
                    $('#accordion').animate({ 'top': (110 - $(header).position().top) + 'px' }, 500, function() {
                        header.next().slideDown('slow', function() {
                            GridHeightAsLargest();
                            $('#veil').hide();
                            FilterThumbs();
                        });
                    });
                }
            });
        }
        else {
            $('#accordion > a:first').each(function(index, element) {
                if (element == header[0]) {
                    $('#accordion .contentSlider:first #back').each(function(index, element) {
                        var baseUrl = $(this).attr('href');
                        if (!!baseUrl) {
                            var url = baseUrl + ' .filters > *';
                            var title = $('.title');
                            $('#veil').css('display', 'inline-block');
                            title.load(url, function() {
                                title.removeClass('blue');
                                title.removeClass('title');
                                title.addClass('filters');
                                url = baseUrl + ' .navigation > *';
                                $(' .navigation').load(url, function() {
                                    url = baseUrl + ' .grid > *:nth-child(2) > *';
                                    $('.grid > *:nth-child(3)').load(url, function() {
                                        SlideRight();
                                        $('#veil').hide();
                                        FilterThumbs();
                                    });
                                });
                            });
                        }
                    });
                }
            });
            /*header.removeClass('rightBoxBlue');
            header.addClass('rightBox');
            header.next().slideUp('slow', function() {
            $('#accordion').animate({ 'top': '10px' }, 500, function() {
            header.next().hide();
            $('#accordion > .rightContent:hidden').empty();
            });
            });*/
        }
        return false;
    }
    $('#accordion > a').livequery('click', h);
    $('#accordion').accordion({ collapsible: true, active: 'none', autoHeight: false, clearStyle: true });
    
    if ($('.contentSlider').length == 0) {
        $('#accordion .rightBox:last').click();
        //$('#imageCache').load("/ImagePrecaching body > *");
    }
    else {
        $('#accordion').css('top', '10px')
        var box = $('.contentSlider').parent().prev();
        $('.rightContent').empty();
        var boxPrev = box.attr('href');
        box.attr('href', document.location.href);
        box.click();
        box.attr('href', boxPrev);        
    }
}

function GridHeightAsLargest() {
    $('.grid').css('height', $('.grid > *:nth-child(3)').height() + 'px')
    
}
function BindDoubleArrowNavigationEvents() {
    $('.navigation .leftDoubleArrow').livequery('click', function(event) {
        event.preventDefault();
        var baseUrl = this.href + '';
        var url = baseUrl + ' .grid > *:nth-child(2) > *';
        $('.grid > *:nth-child(3)').load(url, null, function() {
            var url = baseUrl + ' .contentSlider .navigation > *';
            $('.contentSlider .navigation').load(url, null, function() {
                SlideRight();
                FilterThumbs();
                $('.filterLinkBlue').addClass('filterLink');
                $('.filterLinkBlue').removeClass('filterLinkBlue');
            });
        });
        return false;
    });
    
    $('.navigation .rightDoubleArrow').livequery('click', function(event) {
        event.preventDefault();
        var baseUrl = this.href + '';
        var url = this.href + ' .grid > *:nth-child(2) > *';
        $('.grid > *:nth-child(3)').load(url, null, function() {
            var url = baseUrl + ' .contentSlider .navigation > *';
            $('.contentSlider .navigation').load(url, null, function() {
                FilterThumbs();
                SlideLeft();
                $('.filterLinkBlue').addClass('filterLink');
                $('.filterLinkBlue').removeClass('filterLinkBlue');
            });
        });
        return false;
    });

    $('.navigation .text').livequery('click', function(event) {
        event.preventDefault();
        var baseUrl = this.href + '';
        var url = this.href + ' .grid > *:nth-child(2) > *';
        $('.grid > *:nth-child(3)').load(url, null, function() {
            var url = baseUrl + ' .contentSlider .navigation > *';
            $('.contentSlider .navigation').load(url, null, function() {
                SlideLeft();
            });
        });
        return false;    
    });

    $('.navigation .leftArrow').livequery('click', function(event) {
        event.preventDefault();
        var baseUrl = this.href + '';
        var url = baseUrl + ' .grid > *:nth-child(2) > *';
        $('.grid > *:nth-child(3)').load(url, null, function() {
            var url = baseUrl + ' .contentSlider .navigation > *';
            $('.contentSlider .navigation').load(url, null, function() {
                var url = baseUrl + ' .contentSlider .title > *';
                $('.contentSlider .title').load(url, null, function() {
                    SlideRight();
                });
            });
        });
        return false;
    });
    
    $('.navigation .rightArrow').livequery('click', function(event) {
        event.preventDefault();
        var baseUrl = this.href + '';
        var url = this.href + ' .grid > *:nth-child(2) > *';
        $('.grid > *:nth-child(3)').load(url, null, function() {
            var url = baseUrl + ' .contentSlider .navigation > *';
            $('.contentSlider .navigation').load(url, null, function() {
                var url = baseUrl + ' .contentSlider .title > *';
                $('.contentSlider .title').load(url, null, function() {
                    SlideLeft();
                });
            });
        });
        return false;
    });  
}

function BindThumbnailHover() {
    $('.thumb').livequery('mouseover', function() {
        $('.overlay', $(this)).css('display', 'inline-block');
    });
    $('.thumb').livequery('mouseout', function() {
        $('.overlay', $(this)).css('display', 'none');
    });
}

function BindThumbnailAction() {
    $('.thumb').livequery('click', function(event) {
        event.preventDefault();
        var baseUrl = this.href + '';
        var url = baseUrl + ' .navigation > *';
        if ($('#accordion .rightContent:first .contentSlider').length > 0) {
            $('.navigation').load(url);
            url = baseUrl + ' .title > *';
            var filters = $('.filters, .title');
            filters.load(url, null, function() {
                filters.removeClass('filters');
                filters.removeClass('blue');
                filters.removeClass('title');
                filters.addClass('blue');
                filters.addClass('title');
            });
            url = baseUrl + ' .grid > *:nth-child(2) > *';
            $('.grid > *:nth-child(3)').load(url, null, function() {
                SlideLeft();
            });
        }
        else {
            $('.rightContent .contentSlider').parent().slideUp('slow', function() {
                $(this).empty();
                var header = $('#accordion .rightContent:first');
                $('#accordion').animate({ 'top': (110 - header.position().top) + 'px' }, 500, function() {
                    var url = baseUrl + ' .contentSlider';
                    $('#accordion .rightContent:first').load(url, function() {
                        $('#accordion .rightContent:first').slideDown('slow', function() {
                        });
                    });
                });
            });

            // slide current close closed
            // slide our work open to project page.
        }
        return false;
    });
}

function BindNewsBodyLinks() {
    $('.moreNews').livequery('click', function(event) {
        event.preventDefault();
        var baseUrl = this.href + '';
        var url = baseUrl + ' .grid > *:nth-child(2) > *';
        $('.grid > *:nth-child(3)').load(url, null, function() {
            var url = baseUrl + ' .contentSlider .navigation > *';
            $('.contentSlider .navigation').load(url, null, function() {
                SlideLeft();
                GridHeightAsLargest();
            });
        });
        return false;
    });

    $('.backToNews').livequery('click', function(event) {
        event.preventDefault();
        var baseUrl = this.href + '';
        var url = baseUrl + ' .grid > *:nth-child(2) > *';
        $('.grid > *:nth-child(3)').load(url, null, function() {
            var url = baseUrl + ' .contentSlider .navigation > *';
            $('.contentSlider .navigation').load(url, null, function() {
                SlideRight();
                GridHeightAsLargest();
            });
        });
        return false;    
    });
}

function BindFilterLinks() {
    $('.filters .filterLink').livequery('click', function(event) {
        event.preventDefault();
        var link = $(this);
        $('.filterLinkBlue').addClass('filterLink');
        $('.filterLinkBlue').removeClass('filterLinkBlue');
        link.addClass('filterLinkBlue');
        link.removeClass('filterLink');
        var baseUrl = link.attr('href');
        if (!!baseUrl) {
            $('#filterLinks').fadeTo(0.0, 0.0, function() {
                $('#filterLinks').css('display', 'inline-block');
                var url = baseUrl + ' #filterLinks > *';
                $('#filterLinks').load(url, function() {
                    $('#filterLinks > *:first').fadeTo(0.0, 0.9);
                    $('#filterLinks').fadeTo('slow', 1.0);
                });
            });
        }
    });
    $('.filters .filterLinkBlue').livequery('click', function(event) {
        event.preventDefault();
        var link = $(this);
        $('.filterLinkBlue').addClass('filterLink');
        $('.filterLinkBlue').removeClass('filterLinkBlue');        
        link.addClass('filterLink');
        link.removeClass('filterLinkBlue');
        $('#filterLinks').fadeTo('slow', 0.0, function() {
            $('#filterLinks').css('display', 'none');
        });
    });
    $('#filterLinks .filterLink').livequery('click', function(event) {
        event.preventDefault();
        var link = $(this);
        var baseUrl = link.attr('href');
        if (!!baseUrl) {
            var url = baseUrl + ' #filterLinks + div:first > *';
            $('#filterLinks + div:first ').load(url, function() {
                FilterThumbs();
                url = baseUrl + ' .navigation > *';
                $('.navigation').load(url, function() {
                    $('#filterLinks').fadeTo('slow', 0.0, function() {
                        $('#filterLinks').css('display', 'none');
                        $('.filterLinkBlue').addClass('filterLink');
                        $('.filterLinkBlue').removeClass('filterLinkBlue');
                    });
                });
            });
        }
    });
}

function FilterThumbs() {
    $('.FilteredThumb').fadeTo(0.0, 0.2);
}

function SlideRight() {
    if ($('.grid > *').hasClass('left'))
        $('.grid > *').removeClass('left');
    if (!$('.grid > *').hasClass('right'))
        $('.grid > *').addClass('right');

    $('.grid > *:nth-child(1)').animate({ width: '0px' }, 'fast', 'easeInOutCubic', SwapFirstAndExpand);
}

function SlideLeft() {
    if (!$('.grid > *').hasClass('left'))
        $('.grid > *').addClass('left');
    if ($('.grid > *').hasClass('right'))
        $('.grid > *').removeClass('right');
    $('.grid > *:nth-child(1)').animate({ width: '0px' }, 'fast', 'easeInOutCubic', SwapFirstAndExpand);
}

function SwapFirstAndExpand() {
    //$('.grid > *:nth-child(1)').empty();
    $('.grid > *:nth-child(1)').remove().appendTo('.grid');
    $('.grid > *:nth-child(3)').removeAttr('style');
    $('.grid  > *:nth-child(1) iframe').replaceWith('<div style="display:inline-block; width: 790px; height: 391px"></div>');
    $('.grid  > *:nth-child(3) iframe').replaceWith('<div style="display:inline-block; width: 790px; height: 391px"></div>');
}

