/*
 * jQuery hashchange event - v1.3 - 7/21/2010
 * http://benalman.com/projects/jquery-hashchange-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);

function slideSwitch() {
    var $active = $('#courseSubjects div.active');
    
    if ( $active.length == 0 ) $active = $('#courseSubjects div:last');
    
    var $next =  $active.next().length ? $active.next()
        : $('#courseSubjects div:first');
    
    $active.addClass('last-active');
    
    $next.css({opacity: 0.0})
        .addClass('active')
        .animate({opacity: 1.0}, 1000, function() {
            $active.removeClass('active last-active');
        });
}



$(document).ready(function(){
    function expand(objItem) {
        objItem.addClass('expanded').find('.expandableContent').slideDown(500,'swing');
    }
    
    
    function contract(objItem) {
        objItem.removeClass('expanded').find('.expandableContent').slideUp(500,'swing');
    }
    
    
    function checkHash(strHash) {
        switch(strHash) {
            case '#providers':
                contract($('#bySubject'));
                expand($('#byProvider'));
                break;
            case '#subjects':
                contract($('#byProvider'));
                expand($('#bySubject'));
                break;
        }
    }
    
    
    $('.equalheight').each(function(){
        $('.column', this).equalHeights();
    });
    
    $('.expandable .nojs').removeClass('nojs');
    
    $('#mainNav a').removeClass('nojs').hover(
        function(){
            $(this).fadeTo(250,1,'swing');
        },
        function(){
            $(this).fadeTo(250,0,'swing');
        }
    ).click(function(){
        // removes the dotted outine in IE6 because it does not listen to the
        // 'outline:none' css property
        this.blur();
    });
    
    $('.links a,.indexList a').click(function(){
        // removes the dotted outine in IE6 because it does not listen to the
        // 'outline:none' css property
        this.blur();
    });
    
    $('.expandable h2 a').click(function(){
        $(this).blur().parent().parent().toggleClass('expanded').find('.expandableContent').slideToggle(500,'swing');
        return false;
    });
    
    $('#showSymbols a,#hideSymbols a').click(function(){
            $('#showSymbols,#hideSymbols,#symbols').toggle();
    });
    
    $('.searchResults tr').hover(
        // have to use the child td elements and take the performance hit
        // because IE6 does not like it when you apply the background colour
        // to the tr
        function(){$(this).find('td').addClass('hover')},
        function(){$(this).find('td').removeClass('hover')}
    );
    
    $('#courseSearch input.icon, #courseForm input.button').hover(
        function(){$(this).addClass('hover')},
        function(){$(this).removeClass('hover')}
    ).mousedown(function(){
        $(this).addClass('active');
    }).mouseup(function(){
        // blur() method call needed to get rid of the dotted line border in IE6
        $(this).removeClass('active').blur();
    });
    
    $('#fontsizeIncrease').click(function(){
        $('body').removeClass('smallFont').addClass('largeFont');
    });
    $('#fontsizeDecrease').click(function(){
        $('body').removeClass('largeFont').addClass('smallFont');
    });
    $('#fontsizeReset').click(function(){
        $('body').removeClass('largeFont').removeClass('smallFont');
    });
    
    $(window).hashchange(function() { checkHash(location.hash) });
    setInterval( "slideSwitch()", 5000 );
    checkHash(location.hash);
});

