var common = new function() {

        this.init = function(e)
        {
            var self = this;
            if (jQuery.browser.safari == true)
            {
                // it was still the time where if we were here it
                // could be safari but could also be chrome so the
                // double check
                if (/chrome/.test(navigator.userAgent.toLowerCase()) != true)
                {
                    $('body').css({fontSize:'0.9em !important;'});
                }
            }
            $('div#newsletter').fadeIn();
            $('a.topnav').hoverIntent(self.showSubmenu, self.hideSubmenu);
            $('li.inner').mouseleave(self.hideSubmenu);
            $('ul.sub').mouseout(self.hideSubmenu);
            if ($('#background').length > 0) {
                $('#background img').load(function(e) {
                        var marginleft = Number($('#wrap').width()) - Number($('#background img').width());
                        $('#background').css({left:marginleft +'px'});
                    });
            }
            $('#nlsubmit').click(function(e) {
                    var error = '';
                    if ($('#nameEdit').val().length == 0) {
                        error += 'Name field cannot be blank<br />';
                    }
                    if ($('#surnameEdit').val().length == 0 && (error.length == 0)) {
                        error += 'Surname field cannot be blank<br />';
                    }
                    if ($('#emailEdit').val().length == 0 && (error.length == 0)) {
                        error += 'Email field cannot be blank<br />';
                    }
                    if (error.length > 0) {
                        e.stopPropagation();
                        e.preventDefault();
                        $('#newsletter p.error').html(error);
                        $('#newsletter p.error').show();
                    }
                });
            $('td.sidemenu li:first').css({marginTop:0});
        };

        this.showSubmenu = function(e)
        {
            var self = common;
            $('ul.sub').stop(true,true).hide();
            var sub = $(e.target).next("ul.sub");
            $(sub).slideDown();
            jQuery.each(jQuery.browser, function(i) {
                    if(! $.browser.msie){
                        $(e.target).parent('li.inner').css({paddingBottom:'6px'});
                    }
                });
        };

        this.hideSubmenu = function(e)
        {
            var self = common;
            var hide = false;
            if (self.gap_check != null) {
                clearInterval(self.gap_check);
            }
            if (e.target.className.indexOf('topnav') != -1) {

                var sub = $(e.target).next('ul.sub');
                var target = self.position(e.target);
                if (e.pageX < target.left) {
                    hide = true;
                }
                else if (e.pageX >= target.right) {
                    hide = true;
                }
                else if (e.pageY < target.top) {
                    hide = true;
                }
                if (hide) {
                    $('li.inner').css({paddingBottom:'0'});
                    $(sub).stop(true,true).hide();
                }
            }
            else if (e.target.className == 'sub') {
                var target = self.position(e.target);
                if (undefined != target) {
                    if (e.pageY >= target.bottom) {
                        hide = true;
                    }
                    else if (e.pageX <= target.left) {
                        hide = true;
                    }
                    else if (e.pageX >= target.right) {
                        hide = true;
                    }
                    if (hide) {
                        $('li.inner').css({paddingBottom:'0'});
                        $(e.target).stop(true,true).hide();
                    }
                }
            }
            else if (e.target.className == 'inner') {
                var target = self.position(e.target);
                if (undefined != target) {
                    if (e.pageX <= target.left) {
                        hide = true;
                    }
                    else if (e.pageX >= target.right) {
                        hide = true;
                    }
                    if (hide) {
                        $('li.inner').css({paddingBottom:'0'});
                        $(e.target).stop(true,true).children('ul.sub').hide();
                    }
                }
            }
            else {
                var sub = self.parent(e.target, 'sub');
                if (null != sub) {
                    var target = self.position(sub);
                    if (e.pageX < target.left) {
                        hide = true;
                    }
                    else if (e.pageX >= target.right) {
                        hide = true;
                    }
                    else if (e.pageY > target.bottom) {
                        hide = true;
                    }
                    if (hide) {
                        $('li.inner').css({paddingBottom:'0'});
                        $(sub).stop(true,true).hide();
                    }
                }
            }
        };

        this.parent = function(obj, name)
        {
            if (obj.offsetParent) {
                do {
                    if (obj.className == name) {
                        return obj;
                    }

                } while ((obj = obj.offsetParent) != null);
            }
            return null;
        };

        this.position = function(obj)
        {
            var curleft = curtop = 0;
            if (obj.offsetParent) {
                var height = $(obj).height();
                var width = $(obj).width();
                do {
                    curleft += obj.offsetLeft;
                    curtop += obj.offsetTop;

                } while ((obj = obj.offsetParent) != null);

                var curbottom = curtop + height;
                var curright = curleft + width;
                return {left:curleft,top:curtop,bottom:curbottom,right:curright};
            }
        }
    }
    $(function(){common.init();});

