
jQuery.fn.delayedObserver = function (callback, delay, options) {
    return this.each(function () {
        var el = $(this);
        var op = options || {};
        el.data('oldval', el.val())
                .data('delay', delay || 0.5)
                .data('condition', op.condition || function () { return ($(this).data('oldval') == $(this).val()); })
                .data('callback', callback)
                [(op.event || 'keyup')](function () {
                    if (el.data('condition').apply(el)) { return; }
                    else {
                        if (el.data('timer')) {
                            clearTimeout(el.data('timer'));
                        }
                        el.data('timer', setTimeout(function () {
                            el.data('callback').apply(el);
                        }, el.data('delay') * 1000));
                        el.data('oldval', el.val());
                    }
                });
    });
};
jQuery.fn.exists = function () {
return jQuery(this).length > 0;
};

$(document).ready(function () {

    // Page Navigation Hover
    $("#pageNavigation .level1 li").hoverIntent(function () {
        $(".level2", this).slideDown(300);
    }, function () {
        $(".level2", this).slideUp(150);
    });
    ///////////////////////////////////

    // Use to toggle the County Selector control if if included in the Page
    $('#countys .head').hover(
        function () {
            $(this).find('span').toggleClass('green');
            $(this).css('background', '#ddf1d2');
        },
        function () {
            $(this).find('span').toggleClass('green');
            $(this).css('background', 'none');
        }
    );
    $('#countys .head').toggle(function () {
        $(this).find('span').toggleClass('down');
        $(this).next('div').animate({ height: 'show' }, 300, 'easeInOutExpo');
    }, function () {
        $(this).find('span').toggleClass('down');
        $(this).next('div').animate({ height: 'hide' }, 300, 'easeInOutExpo');
    });

    //Reload Adtech Adverts
    window.AdtechAdverts = function() {

        var headertype = $('#headerBanner').attr('data-type');
        var headeradtechID = $('#headerBanner').attr('data-advertid');
        var headeradtechGroupID = $('#headerBanner').attr('data-groupid');

        $.ajax({
            type: 'GET',
            url: '/dynamicadvert?type=' + headertype + '&adtechid=' + headeradtechID + '&adtechgroupid=' + headeradtechGroupID,
            success: function (data) {
                $('#headerBanner').html('');
                $(data).load(function () {
                    $('#headerBanner').html($(this).contents().find('body').html());
                }).appendTo('#headerBanner');
            }
        });

        var skytype = $('#skyscraper').attr('data-type');
        var skyadtechID = $('#skyscraper').attr('data-advertid');
        var skyadtechGroupID = $('#skyscraper').attr('data-groupid');

        $.ajax({
            type: 'GET',
            url: '/dynamicadvert?type=' + skytype + '&adtechid=' + skyadtechID + '&adtechgroupid=' + skyadtechGroupID,
            success: function (data) {
                $('#skyscraper').html('');
                $(data).load(function () {
                    $('#skyscraper').html($(this).contents().find('body').html());
                }).appendTo('#skyscraper');
            }
        });

        var mputype = $('#mpuAdvert').attr('data-type');
        var mpuadtechID = $('#mpuAdvert').attr('data-advertid');
        var mpuadtechGroupID = $('#mpuAdvert').attr('data-groupid');

        $.ajax({
            type: 'GET',
            url: '/dynamicadvert?type=' + mputype + '&adtechid=' + mpuadtechID + '&adtechgroupid=' + mpuadtechGroupID,
            success: function (data) {
                $('#mpuAdvert').html('');
                $(data).load(function () {
                    $('#mpuAdvert').html($(this).contents().find('body').html());
                }).appendTo('#mpuAdvert');
            }
        });
    }
});

// County Picker Plugin
(function($){
    $.fn.countyPicker = function () {
        this.find('ul').css({ opacity: 0 });
        this.click(function () {
            if ($(this).hasClass('open')) {
                $('#countyPicker ul').stop().animate({ opacity: 0 }, 250, function () {
                    $('#countyPicker').slideToggle(300);
                });
                $(this).removeClass('open')
            } else {
                $('#countyPicker').slideToggle(300, function () {
                    $('#countyPicker ul').stop().animate({ opacity: 1 }, 250);
                });
                $(this).addClass('open')
            }
        });
    };
})(jQuery);

