function deriveRoot()
{
  var root = window.location.protocol+'//'+window.location.hostname+'/';
  
  if ( ( pos = window.location.pathname.search('public_html') ) != -1 )
  {
    root += window.location.pathname.substring(1,pos+12);
  }
  
  return root;
}

function improveNavigation( root ) // Improve Upon CSS Implementation for JS-enabled browsers
{
  // Highlight Current Nav Item...
  area = $('body').attr('id');
  
  $('li#nav'+area+' a:first').append('<img src="'+root+'media/img/nav_current.gif" alt="current" />');
}

function improveBGforHighRes()
{
  var browser = $(window).width();
  
  if ( browser >= 1478 )
  {
    $('body').append( '<div id="flagLeft"><!-- cosmetic --></div>' )
    .append( '<div id="flagRight"><!-- cosmetic --></div>' );
    
    $('div#flagLeft,div#flagRight').width( ( Math.ceil(( browser - 1478 ) / 2 ) ));
  }
  else
  {
    $('div#flagLeft,div#flagRight').remove();
  }
}

function rolloverImages() {
    $(".rolloverImage").hover(
        function() { this.src = this.src.replace("_off.", "_on."); }
        ,
        function() { this.src = this.src.replace("_on.", "_off."); }
        );
}

function rotateExhibitorPanel() {
    $("a.exhibitorRotate").cycle({
            fx: 'fade',
            speed: 1000,
            timeout: 5500
        });
}

$(document).ready(function() {
    var root = deriveRoot();

    improveNavigation(root);

    $('div#header ul').superfish({});
    rolloverImages();
    rotateExhibitorPanel();

    improveBGforHighRes();

    $(window).resize(function() {
        improveBGforHighRes();
    });

    // Minibasket - based on Remy Sharp's http://jqueryfordesigners.com/fixed-floating-elements/
    if ($("#minibasketwrapper").length > 0) {
        var top = $('#minibasketwrapper').offset().top - parseFloat($('#minibasketwrapper').css('marginTop').replace(/auto/, 0));

        var o1 = $('#minibasketwrapper').offset();
        var o2 = $('#partners').offset();
        var dx = o1.left - o2.left;
        var dy = o1.top - o2.top;
        var distance = Math.sqrt(dx * dx + dy * dy);
        var h = $('#minibasketwrapper').height();

        $(window).scroll(function (event) {
            // what the y position of the scroll is
            var y = $(this).scrollTop();

            // bottom of form
            if (y >= top && y >= (distance - h)) {
                $('#minibasketwrapper').removeClass();
                $('#minibasketwrapper').addClass('fixedbottom');
                $('#minibasketcontainer').removeClass('start');
                $('#minibasketcontainer').addClass('static');
                $('#secondary').removeClass('relative');
            }
            // below the form
            else if (y >= top && y <= (distance - h)) {
                // if so, add the fixed class
                $('#minibasketwrapper').removeClass('fixedbottom');
                $('#minibasketwrapper').addClass('fixed');
                $('#minibasketcontainer').removeClass('static');
                $('#minibasketcontainer').addClass('start');
                $('#secondary').addClass('relative');
            }
            else {
                // otherwise remove it
                $('#minibasketwrapper').removeClass('fixed');
                $('#secondary').removeClass('relative');
            }
        });
    }
});
