
var TransitionInProgress = false;
 
jQuery.fn.fadeVisible = function() {
 
    if (TransitionInProgress == false) {
 
        // Temporarily disable back button
        TransitionInProgress = true;
 
        var o = $(this[0]); // The element whose method has been called
 
        prepRegions();
 
        o.find('.map_detail_left').hide();
        o.find('.map_detail_right').hide();
        $('#map_detail').css({ 'display': 'block' });
 
        // IE can't handle opacity properly & doesn't understand 'background-position'
        if (navigator.appName == 'Microsoft Internet Explorer') {
            o.css({ 'display': 'block', 'background-position-x': '0px' });
            o.animate({ 'background-position-x': '432px' }, 600, function() {
                o.find('.map_detail_left').slideDown(300, function() {
                    o.find('.map_detail_right').slideDown(300, function() {
                        // Re-enable back button
                        TransitionInProgress = false;
                    });
                });
            });
        } else {
            o.css({ 'display': 'block', 'background-position': '0px 12px' });
            o.animate({ opacity: 1, 'background-position': '432px 12px' }, 600, function() {
                o.find('.map_detail_left').slideDown(300, function() {
                    o.find('.map_detail_right').slideDown(300, function() {
                        // Re-enable back button
                        TransitionInProgress = false;
                    });
                });
            });
        }
 
        // IE can't handle opacity properly
        if (navigator.appName == 'Microsoft Internet Explorer') {
            $('#map').css({ 'display': 'none' });
        } else {
            $('#map').animate({ opacity: 0 }, 600, function() {
                $('#map').css({ 'display': 'none' });
            });
        }
 
    }
};
 
jQuery.fn.fadeInvisible = function() {
 
    if (TransitionInProgress == false) {
 
        // Temporarily disable back button
        TransitionInProgress = true;
 
        var o = $(this[0]); // The element whose method has been called
 
        // Hide detail
 
        // IE can't handle opacity properly
        if (navigator.appName == 'Microsoft Internet Explorer') {
            o.css({ 'display': 'none' });
            $('#map_detail').css({ 'display': 'none' });
        } else {
            o.animate({ opacity: 0 }, function() {
                $('#map_detail').css({ 'display': 'none' });
            });
        }
 
        // Show map
 
        // IE can't handle opacity properly
        if (navigator.appName == 'Microsoft Internet Explorer') {
            $('#map').css({ display: 'block' });
            // Re-enable back button
            TransitionInProgress = false;
        } else {
            $('#map').css({ opacity: 0, display: 'block' });
            $('#map').animate({ opacity: 1 }, 600, function() {
                // Re-enable back button
                TransitionInProgress = false;
            });
        }
    }
};
 
function prepRegions() {
    $('#map-scotland').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
    $('#map-north').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
    $('#map-cumbria-and-lancashire').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
    $('#map-north-midlands').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
    $('#map-cheshire-and-staffordshire').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
    $('#map-midlands').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
    $('#map-east-anglia').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
    $('#map-south-east').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
    $('#map-south-west').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
    $('#map-north-wales').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
    $('#map-wales').css({ 'display': 'none', 'position': 'absolute', 'top': 0 });
 
    // IE can't handle opacity properly
    if (navigator.appName != 'Microsoft Internet Explorer') {
        $('#map-scotland').css({ 'opacity': 0 });
        $('#map-north').css({ 'opacity': 0 });
        $('#map-cumbria-and-lancashire').css({ 'opacity': 0 });
        $('#map-north-midlands').css({ 'opacity': 0 });
        $('#map-cheshire-and-staffordshire').css({ 'opacity': 0 });
        $('#map-midlands').css({ 'opacity': 0 });
        $('#map-east-anglia').css({ 'opacity': 0 });
        $('#map-south-east').css({ 'opacity': 0 });
        $('#map-south-west').css({ 'opacity': 0 });
        $('#map-north-wales').css({ 'opacity': 0 });
        $('#map-wales').css({ 'opacity': 0 });
    }
}
 
$(document).ready(function() {
 
    $('#map').css({ 'display': 'block' });
    $('#map_detail').css({ 'display': 'none', 'position': 'absolute', 'top': '0', 'overflow': 'hidden' });
 
    prepRegions();
    
    // Scotland
    $('li#map_nav_scotland a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-344px 0' });
    });
    $('li#map_nav_scotland a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_scotland a').click(function() {
        $('#map-scotland').fadeVisible();
    });
    $('#map-scotland .map_detail_back').click(function() {
        $('#map-scotland').fadeInvisible();
    });
 
    // North
    $('li#map_nav_north a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-688px 0' });
    });
    $('li#map_nav_north a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_north a').click(function() {
        $('#map-north').fadeVisible();
    });
    $('#map-north .map_detail_back').click(function() {
        $('#map-north').fadeInvisible();
    });
 
    // Cumbria & Lancashire
    $('li#map_nav_cumbria-and-lancashire a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-1032px 0' });
    });
    $('li#map_nav_cumbria-and-lancashire a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_cumbria-and-lancashire a').click(function() {
        $('#map-cumbria-and-lancashire').fadeVisible();
    });
    $('#map-cumbria-and-lancashire .map_detail_back').click(function() {
        $('#map-cumbria-and-lancashire').fadeInvisible();
    });
 
    // North Midlands
    $('li#map_nav_north-midlands a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-1376px 0' });
    });
    $('li#map_nav_north-midlands a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_north-midlands a').click(function() {
        $('#map-north-midlands').fadeVisible();
    });
    $('#map-north-midlands .map_detail_back').click(function() {
        $('#map-north-midlands').fadeInvisible();
    });
 
    // Cheshire & Staffordshire
    $('li#map_nav_cheshire-and-staffordshire a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-1720px 0' });
    });
    $('li#map_nav_cheshire-and-staffordshire a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_cheshire-and-staffordshire a').click(function() {
        $('#map-cheshire-and-staffordshire').fadeVisible();
    });
    $('#map-cheshire-and-staffordshire .map_detail_back').click(function() {
        $('#map-cheshire-and-staffordshire').fadeInvisible();
    });
 
    // Midlands
    $('li#map_nav_midlands a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-2408px 0' });
    });
    $('li#map_nav_midlands a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_midlands a').click(function() {
        $('#map-midlands').fadeVisible();
    });
    $('#map-midlands .map_detail_back').click(function() {
        $('#map-midlands').fadeInvisible();
    });
 
    // East Anglia
    $('li#map_nav_east-anglia a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-2064px 0' });
    });
    $('li#map_nav_east-anglia a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_east-anglia a').click(function() {
        $('#map-east-anglia').fadeVisible();
    });
    $('#map-east-anglia .map_detail_back').click(function() {
        $('#map-east-anglia').fadeInvisible();
    });
 
    // South East
    $('li#map_nav_south-east a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-2752px 0' });
    });
    $('li#map_nav_south-east a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_south-east a').click(function() {
        $('#map-south-east').fadeVisible();
    });
    $('#map-south-east .map_detail_back').click(function() {
        $('#map-south-east').fadeInvisible();
    });
 
    // South West
    $('li#map_nav_south-west a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-3096px 0' });
    });
    $('li#map_nav_south-west a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_south-west a').click(function() {
        $('#map-south-west').fadeVisible();
    });
    $('#map-south-west .map_detail_back').click(function() {
        $('#map-south-west').fadeInvisible();
    });
 
    // North Wales
    $('li#map_nav_north-wales a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-3440px 0' });
    });
    $('li#map_nav_north-wales a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_north-wales a').click(function() {
        $('#map-north-wales').fadeVisible();
    });
    $('#map-north-wales .map_detail_back').click(function() {
        $('#map-north-wales').fadeInvisible();
    });
 
    // South Wales
    $('li#map_nav_wales a').mouseover(function() {
        $('ul#map_nav_regions').css({ 'background-position': '-3440px 0' });
    });
    $('li#map_nav_wales a').mouseout(function() {
        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
    });
    $('li#map_nav_wales a').click(function() {
        $('#map-wales').fadeVisible();
    });
    $('#map-wales .map_detail_back').click(function() {
        $('#map-wales').fadeInvisible();
    });
 
//    // Northern Ireland
//    $('li#map_nav_northern-ireland a').mouseover(function() {
//        $('ul#map_nav_regions').css({ 'background-position': '-4128px 0' });
//    });
//    $('li#map_nav_northern-ireland a').mouseout(function() {
//        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
//    });
//    $('li#map_nav_northern-ireland a').click(function() {
//        $('#map-northern-ireland').fadeVisible();
//    });
//    $('#map-northern-ireland .map_detail_back').click(function() {
//        $('#map-northern-ireland').fadeInvisible();
//    });
 
//    // Eire
//    $('li#map_nav_eire a').mouseover(function() {
//        $('ul#map_nav_regions').css({ 'background-position': '-4472px 0' });
//    });
//    $('li#map_nav_eire a').mouseout(function() {
//        $('ul#map_nav_regions').css({ 'background-position': '0 0' });
//    });
//    $('li#map_nav_eire a').click(function() {
//        $('#map-eire').fadeVisible();
//    });
//    $('#map-eire .map_detail_back').click(function() {
//        $('#map-eire').fadeInvisible();
//    });
 
});
