
//morrisons navigational aides object
var Morrisons = {

    nav_tabs: function () {
        var iframe = '<iframe id="navMask" href="javascript:void(0);" />';
        //new tabs - keep tab hovered
        $('#navigation_new > li').hover(function () {
            $(this).addClass('hover').children('ul').show();
            if (isIE6 == true) {
                var h = '' + $(this).children('ul').height() + 'px';
                $(iframe).css('height', h).prependTo($(this));
            }
        }, function () {
            $(this).removeClass('hover').children('ul').hide();
            if (isIE6 == true) {
                $('#navigation_new iframe').hide().remove();
            }
        });

    },

    //Get category background image from css and pop into img tag for viewport scaling
    //NB: to get this working, move the morrisons object into $(function(){ or fix whatever bug is causing the error(s)...
    /*Scale_background: {

    original_bg: $('body').css('backgroundImage'),
    //apply_bg method
    apply_bg: function () {

    var img_fldr = '/graphics/';
    var bodyOrig = morrisons.scale_background.original_bg.toString().split(')')[0];
    var img_path = bodyOrig.split('(')[1];
    var img_src = '';
    var v_height = $(window).height();

    if (isIE6 == true) {
    //do nothing for now
    } else {

    $('#wrapper_new').css({
    'position': 'relative',
    'zIndex': '2'
    });

    img_src = img_fldr + (img_path.split(img_fldr)[1]);
    var img_to_inject = $('<div id="imgInject" style="position:fixed;top:0;left:0;width:100%;height:' + v_height + 'px;overflow:hidden;z-index:1;"><img style="position:absolute;top:0;left:0;" src="' + img_src + '" width="100%" alt="' + img_src + '" border="0" /></div>');
    img_to_inject.prependTo('body');
    }
    }

    },*/

    //clear default form fields
    clear_Fields: function (input, value) {
        $(input).focus(function () {
            if ($(this).val() == value) {
                $(this).val('');
            }
        }).blur(function () {
            if ($(this).val() == '') {
                $(this).val(value);
            }
        });
    },

    Footer: {

        wrapper_el: '#footer_wrapper',

        //work out footer positioning
        //this needs to be fired anytime the window size changes - it is currently also called in jquery.faqslider.js on slidetoggle
        whichPos: function () {
            //alert('heights = #wrapper_new: ' + $('#wrapper_new').height() + 'px window: ' + $(window).height() + 'px');
            if ($('#wrapper_new').height() < $(window).height()) {
                $(Morrisons.Footer.wrapper_el).css('position', 'fixed');
                if (isIE6 == true) {
                    $(Morrisons.Footer.wrapper_el).css('position', 'absolute');
                    $('body').css('overflow', 'hidden');
                    $('#wrapper_new').css({
                        'height': '100%',
                        'overflow-y': 'auto'
                    });
                }
            } else {
                $(Morrisons.Footer.wrapper_el).css('position', 'relative').css('margin-top', '-61px');
            }
        },

        //show/hide site footer
        toggle: function () {
            var closeClass = "close";
            var content_el = $('#footer_content');
            var toggle_id = 'toggle_footer';
            var o = false;
            $('#footer').find('.container:nth-child(6n)').addClass('clear');
            content_el.hide();

            $('#ft_h2').html('<a href="#" title="Toggle footer view" id="' + toggle_id + '"><span />Quick links</a>');

            new Morrisons.Footer.whichPos();

            $('#' + toggle_id + '').live('click', function (e) {
                if (o == false) {
                    if (isIE6 == true) {
                        $('body').css('overflow', 'hidden');
                        $('#wrapper_new').css({
                            'height': '100%',
                            'overflow-y': 'auto'
                        });
                        $(Morrisons.Footer.wrapper_el).css('position', 'absolute');
                    }
                    else {
                        $(Morrisons.Footer.wrapper_el).css('position', 'fixed');
                    }
                    content_el.slideDown('normal', 'swing');
                    $(this).addClass(closeClass);
                    o = true;
                    e.preventDefault();
                    return false;
                }
                if (o == true) {
                    content_el.slideUp('fast', function () { new Morrisons.Footer.whichPos(); });
                    $(this).removeClass(closeClass);
                    o = false;
                    e.preventDefault();
                    return false;
                }

            });
        }

    }

}

$(function () {

    new Morrisons.nav_tabs();
    //new Morrisons.Scale_background.apply_bg();
    new Morrisons.clear_Fields('form .text_input', 'Town or postcode');
    new Morrisons.clear_Fields('form .text_input2', 'Enter catalogue number or keyword here');
    new Morrisons.clear_Fields('form .text_input3', '');
    new Morrisons.clear_Fields('form .text_input4', 'Enter keyword or number');
    new Morrisons.clear_Fields('form .text_input5', 'Enter catalogue number or keyword here');
    new Morrisons.clear_Fields('form .text_input6', '');
    new Morrisons.clear_Fields('form .text_input7', '');
    new Morrisons.clear_Fields('form .text_input8', '');
    new Morrisons.clear_Fields('form .text_input9', '');
    new Morrisons.clear_Fields('form .text_input10', '');
    new Morrisons.clear_Fields('form .text_input11', '');
    new Morrisons.clear_Fields('form .text_input12', '');
    new Morrisons.clear_Fields('form .text_input14', '');
    new Morrisons.clear_Fields('form .text_input15', '');
    new Morrisons.clear_Fields('div.offersEmailTop li input', 'Email address');

});

//webkit browser bug/feature: we need to wait until window.load is done before firing the footer to ensure accurate results for #wrapper_new height()
$(window).load(function () {
    new Morrisons.Footer.toggle();
});

$(window).resize(function () {
    new Morrisons.Footer.whichPos();
});
