var current_section = '';
var pending_url     = '';
$(document).ready(function() {

    var flash_version = swfobject.getFlashPlayerVersion();
    var flash_version_string = flash_version['major']+'.'+flash_version['minor']+'.'+flash_version['release'];

    if( flash_version_string != '0.0.0' && flash_version['major'] > 8 && location.href.indexOf('no-flash') < 0 ) {

        var rel_url = location.href.substring( location.href.indexOf(location.host) + location.host.toString().length + 1);

        if( rel_url.indexOf('/') == rel_url.length - 1 ){ rel_url = rel_url.substring(0, rel_url.length-1); }

        var flashvars = {};

        if( rel_url.length > 2 ) {
            flashvars = {
                show_initial          : rel_url
            };
        }        

        swfobject.embedSWF("/files/swf/rm.swf", 'flash-mov', 870, 595, '9',"expressInstall.swf",flashvars);
        return false;
    } else if( $('#home-page').length ) {
        return false;
    }

    $('#main-nav>li>a').bind('click select-link', function() {  // main navigation show, highlight etc JS
    
        if( $(this).hasClass('show-header-1') ) {
            $('#header-1').slideDown();
            $('#header-2').slideUp();
        } else {
            $('#header-2').slideDown();
            $('#header-1').slideUp();
        }

        $('#main-nav a, #main-nav ul').removeClass('selected');
        
        $(this).addClass('selected').next().addClass('selected');
        
        $('#main-nav ul.selected').slideDown();
        $('#main-nav ul:not(.selected)').slideUp();
        
        return false;
    });
    
    $('#main-nav ul a').bind('click select-link', function(){
        $('#main-nav a').removeClass('selected');

        $(this).parent().parent().parent().find('a').eq(0).trigger('select-link');
        $(this).addClass('selected');
        
        return false;
    });
    
	$.address.change(function(e) {
		var workingPath = e.value;
		
		if( workingPath.indexOf(top.location.host) > -1 ) { // bloody ie adding stuff
		  var actual_path = workingPath.split(top.location.host);
		  workingPath = actual_path[1];
		}

		// Trim the leading slash to not confuse the split function
		if( e.value.charAt(0) == '/' ) {
			workingPath = workingPath.slice(1);
			if( workingPath.charAt( workingPath.length - 1 ) == '/' )
				workingPath = workingPath.slice(0, workingPath.length - 1 );
		}

		var pathParts = workingPath.split('/');

		// If the split path contains more than one segment - it's not a main nav
		if( pathParts.length > 1 ) {
			// Guess what - we're not in the MainNav
			// In that case the first part of the path will tell us which
			// section we're in
			var sectionPath = '/' + pathParts[0] + '/';

			var anchor = $("a[href='" + sectionPath + "']");
			
			// We are linking into dynamic sub-section of the site, which might not
			// be loaded at the moment. So we need to load that section first.
			// This is done using a simple scheme. If the section is not ready when
			// URL is requested, we save the URL, and force the loading of that section.
			// When the section loads, it automatically checks if there is a pending
			// URL, and loads it then.
			
			// So first we check if the section is ready to be used
			var sectionReady = ( current_section == sectionPath );

			if( !sectionReady ) {
				// Save URL
				pending_url = e.path;
				
				// The section which this link refers to has not yet been loaded
				// We go ahead and do that simply by triggering a click event
				// This also updates the nav menu, so we don't have to worry about that
				$("a[href='" + sectionPath + "']").click();

				return false;
			} else {
                // The section is ready
                var url = e.value;

				var a = $("a[href='" + url + "']");
				
                if( a.length < 1 && jQuery.browser.msie && parseInt(jQuery.browser.version) < 8 ) {
                    url = url.replace('/http://', 'http://');
                    a = $("a[href='" + url + "']");
                }

				a.trigger('select-link');

				if( a.closest('#publications-menu').length < 1 &&
				    a.closest('.services-list').length < 1 &&
				    a.closest('.people-nav').length < 1 ) {
				    if( !jQuery.browser.msie ) {
                        $('#second-page-load').fadeOut(function(){
                             $('#second-page-load').load(e.value + ' #ajax-load-thingy-second', false, function(data) {
                                $('#second-page-load').fadeIn();
                                
                                if( $('.gallery').children().length ) {
                                    $('#project-text').hide();
                                    $(".gallery").gallery();
                                }
                            });
                        });
                    } else {

                        var url = e.value;
                        if( parseInt(jQuery.browser.version) < 8 ) {
                            url = url.replace(top.location.host, '');
                            url = url.replace('http://', '');
                            url = url.replace('//', '/');
                        }

                        $.get(url, function(data) {
                            $('#second-page-load').html(data + ' #ajax-load-thingy-second');
                            $('#project-text').hide();
                            $(".gallery").gallery();
                        });
                    }
                }

                return false;
			}
		}

		var anchor = $("a[href='" + e.value + "']");

		// Check to see if this anchor is part of the main nav
		if( anchor.parents("#main-nav").size( ) > 0 ) {

            var clicker = $("a[href='" + e.path + "']").eq(0);
            clicker.trigger('select-link');
		
    		$('#page-load').fadeOut(function(){
                $('#page-load').load(e.value + ' #ajax-load-thingy', false, function(){
                    $('#publications-menu a').address(function(){
                        var url = $(this).attr('href');
                        $.address.value(url);
                        return false;
                    });

                    $('#sub-nav ul a').address(function(){
                        var url = $(this).attr('href');
                        $.address.value(url);    
                        return false;
                    });
                    
                    $('#page-load').fadeIn(function(){
                        if( $('#publications-menu').length && $('#publications-menu').height() > $('#publications-menu-container').height() )
                            $('#publi-scrollers').show();
                    });
                    current_section = e.path;

                    if( pending_url != '' ) {
        				var a = $("a[href='" + pending_url + "']");
        				a.click();
    					pending_url = '';
    				}
                });
            });

		  return false;
		}
	}); // end $.address.change 

    $('#main-nav a').address(function() {

        var url = $(this).attr('href');
        $.address.value(url);

        return false;
    });
});

$('.scroll-button').live('click', function(){   
    return false;  
});

$('.scroll-button').live('mousedown', function(){
    var speed = 15;
    
    if( $('#awards>ul').length )
        element = $('#awards>ul');
    else
        element = $('#publications-menu');

    if( $(this).text() == 'down' ) {
        // if we can scroll up
        clearTimeout(scroll_timer);
        scroll_timer = setInterval( function() { scrollme(element, -2); }, speed);

    } else if( $(this).text() == 'up' ) {
        clearTimeout(scroll_timer);
        scroll_timer = setInterval( function() { scrollme(element, 2); }, speed);
    }   
    
    return false;  
});

$('.scroll-button').live('mouseup', function(){
    clearTimeout(scroll_timer);
    return false;  
});

$('.scroll-button').live('mouseout', function(){
    clearTimeout(scroll_timer);
    return false;  
});

var scroll_timer = null;

function scrollme(element, amount) {
    var scrollTo = parseInt(element.css('marginTop')) + amount;

    if( scrollTo > 0 ) {
        element.css({ marginTop : '0px' });
        clearTimeout(scroll_timer);
    } else if( scrollTo < element.parent().height()-element.height() ) {
        element.css({ marginTop : element.parent().height()-element.height() + 'px' });
        clearTimeout(scroll_timer);
    } else {
        element.css({ marginTop : scrollTo + 'px' });
    }
}

$('.publications-link').live('click', function(){ return false; });

$('a.publications-link').live('select-link', function(){
    var trigger = $(this);
    $('#publications-menu a').removeClass('selected');
    trigger.addClass('selected');

    $('#load-publi').fadeOut(function(){
        var html = trigger.parent().find('.details').html();
        $('#load-publi').html(html);
        $('#load-publi').fadeIn();
    });

    return false;
});

$('.services-list a').live('select-link', function(){
    var trigger = $(this);
    trigger.addClass('selected');

    $('#second-page-load').fadeOut(function(){
        $(this).html(trigger.next().html());
        $("#second-page-load .gallery").gallery();
        $(this).fadeIn();
    });

    return false;
});

    $('.project-nav ul a').live('select-link', function(){
        $('.project-nav ul a').removeClass('selected');
        $(this).parent().parent().parent().find('a').eq(0).click();
        $(this).addClass('selected');
        return false;
    });

    $('.project-nav ul a').live('click', function(){
        $('#sub-nav a').removeClass('selected');
        $(this).addClass('selected').parent().parent().parent().find('a').eq(0).addClass('selected');
        
        return false;
    });

    $('.people-nav>li>a').live('click', function() {

        if( $(this) != $('#sub-nav>li>a.selected').eq(0) ) {
            $('#sub-nav>li>a.selected').parent().animate({ paddingTop : '0px' });
        }

        $('#sub-nav a, #sub-nav ul').removeClass('selected');
        
        $(this).addClass('selected').next().addClass('selected');

        if( $(this).text() != 'Directors' ) {
            $(this).parent().animate({ paddingTop : '20px' });
        }
        
        $('#sub-nav ul.selected').slideDown();
        $('#sub-nav ul:not(.selected)').slideUp();
        
        return false;
    });


    $('.people-nav ul a').live('click', function(){
        $('.people-nav ul a').removeClass('selected');
        
        var trigger = $(this);
        trigger.addClass('selected');

        $('#second-page-load').fadeOut(function(){
            $(this).html(trigger.next().html());
            $(this).fadeIn();
        });

        return false;
    });

    $('#sub-nav>li>a').live('click', function(){
        $('#sub-nav a, #sub-nav ul').removeClass('selected');
        
        $(this).addClass('selected').next().addClass('selected');
        
        $('#sub-nav ul.selected').slideDown();
        $('#sub-nav ul:not(.selected)').slideUp();
        
        if( $(this).closest('.services-list').length > 0 ) {
            var url = $(this).attr('href');
            $.address.value(url);
            return false;
        }
        
        return false;
    }); 

if( jQuery.browser.msie ) {     // fix up caching issue with ie
    $('home-image img').live('load', function(){
        $(this).attr({ src : '/files/images/main0' + (Math.floor(Math.random()*6) + 1) + '.jpg' });
    });
}