$(document).ready(function() {
    // Add the hover classes to the header menus
    $("#AtoZMenu").hover(
        function() {
            $("#AtoZMenu").addClass("over").removeClass("out");
        },
        function() {
            $("#AtoZMenu").addClass("out").removeClass("over")
        }
    );
    $("#SFUOnlineMenu").hover(
        function() {
            $("#SFUOnlineMenu").addClass("over").removeClass("out");
        },
        function() {
            $("#SFUOnlineMenu").addClass("out").removeClass("over");
        }
    );
    
    // Convert thickbox to fancybox
    if ($.fancybox) {
        var flvCount = 0;
        $('#nav, #content').find('a[rel*="shadowbox"]').each(function() {
            var a = $(this);
            var r = a.attr('rel');
            var h = a.attr('href');
            if (r.indexOf('player=swf') > -1) {
                a.addClass('no_ext').click(fancyboxFlash);
            }
            else if (h.indexOf('.flv') > -1 && h.indexOf('player.swf') == -1) {
                var hp = url('/js/jwplayer/player.swf') + '?file='+h+'&amp;autostart=1';
                a.attr('href', hp).addClass('no_ext').click(fancyboxFlash);
            }
            else {
                a.addClass('iframe').addClass('no_ext').fancybox({ width: 700, height: 600 });
            }
        });
    }

    // Append the external link image to links that open in a new window   
    $('#nav, #content').find('a:not(.no_ext)').filter(function(index) {
        var a = $(this);
        var t = a.attr('target');
        var h = a.attr('href');
        if (t == '_blank') {
            return true;
        }
        if (h && h.indexOf('http://') == 0 && t != '_self') {
            if (!t) a.attr('target', '_blank');
            return true;
        }
        return false;
    }).filter(function(index) {
        var c = $(this).children();
        if (c.length == 1 && c.first().is('img')) {
            return false;
        }
        return true;
    }).append('<img src="'+url('/themed/surrey8/img/link_ext.gif')+'" class="ext" />');
    
    // Special content
    $('#content table.datatable_altrow tr:odd').css('background-color', '#EEE');
    $('#content table.datatable_altcol td:even').css('background-color', '#EEE');
});

function fancyboxFlash() {
    $.fancybox({
        'padding': 0,
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'title': (this.title ? this.title : $(this).text()),
        'width': 680,
        'height': 495,
        'href': this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
        'type': 'swf',
        'swf': { 'wmode': 'transparent', 'allowfullscreen': 'true' }
    });
    return false;
}

function siteSearch(domain, a) {
    if (a) {
        $('#searchSelector a').removeClass('active');
        $(a).addClass('active');
    }
    $('#searchResults').show();
    var q = $('#sitesearch_q').val();
    var rc = $('#searchResultsContent');
    var gws = new google.search.WebSearch();
    var listener = {
        complete:function() {
            if (gws.results.length == 0) {
                var t = 'Sorry, no pages were found that match your search terms.';
                if (domain != 'sfu.ca') { 
                    t += '<br /><br />Try searching <a href="javascript:void(0)" onclick="$(\'#siteSearchAllSfu\').trigger(\'click\')">all of sfu.ca.</a>';
                }
                rc.html(t);
            }
            else {
                rc.html('');
                for (var i = 0; i < gws.results.length; i++) {
                    var result = gws.results[i];
                    rc.append('<div class="result"><a href="'+result.url+'" class="title">'+result.title+'</a>' +
                        '<div class="description">'+result.content+'</div><div class="url">'+result.url+'</div></div>');
                }
                if (gws.cursor) {
                    rc.append('<div id="searchResultsPaging"><a href="'+gws.cursor.moreResultsUrl+'">See more results</a></div>');
                }
            }
        }
    };
    gws.setSiteRestriction(domain);
    gws.setSearchCompleteCallback(listener, listener.complete);
    gws.execute(q);
    return false;
}
