$(document).ready(function() {
    icons_nav.init();
});

var icons_nav = window.icons_nav = function($) {

function init() {

    $('a[rel=external]').attr('target', 'blank');
    
        $('#nav div.two ul').each(function() {
            var max = 10;
            var original = $(this);
            var count = original.children('li').length;
            var cols = Math.ceil(count / max);
            for (var i = 0; i < cols; i++) {
                var list = $('<ul>').addClass('nav');
                for (var j = 0; j < Math.ceil(count / cols); j++) {
                    original.children().eq(0).appendTo(list);
                }
                original.parent().append(list);
            }
            original.remove();
        });

        $('#nav div.two').each(function() {
            var div = $(this);
            var width = 0;
            div.children('ul').each(function() {
                width += $(this).getHiddenDimensions(true).outerWidth;
            });
            div.css('width', width + 'px');
        });

        // Remove Arrows for Non-parents
        $('#nav div.one li').each(function() {
            if (!($(this).children().size() > 1)) {
                $(this).children('#nav li ul li a').not('#nav li ul li ul a').css('background', 'none');
            }
        });

        // Internet Explorer 6
        if ($.browser.msie && $.browser.version == 6) {
            // Hover States
            $('#nav li:hover').hover(function() {
                $(this).addClass('hover');
            }, function() {
                $(this).removeClass('hover');
            });
        }

        // Internet Explorer 7
        if ($.browser.msie && parseInt($.browser.version) <= 8) {
            //Dropdown Styling
            $('#nav div.one').addClass('forIe');
            $('#nav li ul li:first-child div').addClass('forIe');
            $('#nav div.two').not('#nav li ul li:first-child div').css('background', '#fcfcfc');
        }
    }
    return {
        init: init
    };
} (jQuery);

//Optional parameter includeMargin is used when calculating outer dimensions
	(function($) {
	    $.fn.getHiddenDimensions = function(includeMargin) {
	        var $item = this,
	        props = { position: 'absolute', visibility: 'hidden', display: 'block' },
	        dim = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 },
	        $hiddenParents = $item.parents().andSelf().not(':visible'),
	        includeMargin = (includeMargin == null) ? false : includeMargin;

	        var oldProps = [];
	        $hiddenParents.each(function() {
	            var old = {};

	            for (var name in props) {
	                old[name] = this.style[name];
	                this.style[name] = props[name];
	            }

	            oldProps.push(old);
	        });

	        dim.width = $item.width();
	        dim.outerWidth = $item.outerWidth(includeMargin);
	        dim.innerWidth = $item.innerWidth();
	        dim.height = $item.height();
	        dim.innerHeight = $item.innerHeight();
	        dim.outerHeight = $item.outerHeight(includeMargin);

	        $hiddenParents.each(function(i) {
	            var old = oldProps[i];
	            for (var name in props) {
	                this.style[name] = old[name];
	            }
	        });

	        return dim;
	    }
	} (jQuery));

