jQuery.fn.siteUtils = function(settings) {
    settings = jQuery.extend(
	{
	    defaultText: "text-default",
	    fadeSpeed: 200
	}, settings);

    return this.each(function() {

        $("body").addClass(settings.defaultText);

        var uPrint = "<!--<ul id='utils-print'>" +
						"<li><a href='#' class='print' title='Print this page'>Print</a><span>Print</span></li>" +
						"<li><a href='#' class='textplus' title='Increase text size'>Plus</a><a href='#' class='textminus' title='Decrease text size'>Minus</a><span>Change Text Size</span></li>" +
						"</ul>-->";

        var uLinks = "<!--<ul id='utils-links'>" +
						"<li><a href='#' class='glossary' title='View the Glossary section'>Glossary</a></li>" +
						"<li><a href='#' class='press' title='View the Press &amp; Marketing section'>Press & Marketing</a></li>" +
						"<li><a href='#' class='newsletter' title='Sign-up for our Newsletter'>Newsletter</a></li>" +
						"</ul>-->";

        var uShare = "<!--<div id='utils-share'>" +
						"<a href='#' class='closed'>Share<b></b></a>" +
						"<ul>" +
							"<li><a href='#'>Share on Delicious</a></li>" +
							"<li><a href='#'>Share on Digg</a></li>" +
							"<li><a href='#'>Share on Facebook</a></li>" +
							"<li><a href='#'>Share on Stumbleupon</a></li>" +
						"</ul>" +
						"</div>-->";

        var uBar = "<!--<div id='site-utils' class='visible'>" +
						"<div class='inner'>" +
							"<div class='line'>" +
								"<div id='bar'>" +
									"<a href='#' id='utils-login'>Login</a>-->" +
										//uPrint + uLinks + uShare +
									"<!--<a href='#' id='utils-hide' title='Hide utilities bar'>Hide</a>" +
								"</div>" +
								"<a href='#' id='utils-show' title='Show utilities bar'>Show</a>" +
							"</div>" +
						"</div>" +
					"</div>-->" +
					"<div id='msg-large' class='promo-overlay warning'>" +
						"<p>You are at the maximum text size</p>" +
					"</div>" +
					"<div id='msg-small' class='promo-overlay warning'>" +
						"<p>You are at the minimum text size</p>" +
					"</div>";

        $(uBar).insertAfter($(this));
        if (($.cookies.test()) && ($.cookies.get("TGC_utils_status") === "hidden")) {
            $("#site-utils").removeClass("visible").addClass("hidden");
        }
        $("#msg-large").overlay({ top: "center" });
        $("#msg-small").overlay({ top: "center" });

        $("#utils-login").live("click", function() {
            return false;
        });

        $("#utils-print a.print").live("click", function() {
            window.print();
            return false;
        });

        $("#utils-print a.textplus").live("click", function(ap1, ap2) {
            var textSmall = $("body").hasClass("text-small"),
				textDefault = $("body").hasClass("text-default"),
				textLarge = $("body").hasClass("text-large"),
		        textXLarge = $("body").hasClass("text-xlarge");

            //var api1 = $("#msg-large").data("overlay");
            //var api2 = $("#msg-small").data("overlay");

            //if ($("#msg-large:visible")) {
            //    api1.close();
            //}
            //if ($("#msg-small:visible")) {
            //    api2.close();
            //}
            if (textSmall) {
                $("body").css("font-size", "10px").removeClass("text-small").addClass("text-default");
            }
            if (textDefault) {
                $("body").css("font-size", "12px").removeClass("text-default").addClass("text-large");
            }
            if (textLarge) {
                $("body").css("font-size", "14px").removeClass("text-large").addClass("text-xlarge");
            }
            //if (textXLarge) {
            //    if ($("#msg-large:hidden")) {
            //        api1.load();
            //    }
            //}
            return false;
        });

        $("#utils-print a.textminus").live("click", function(api1, api2) {
            var textSmall = $("body").hasClass("text-small"),
				textDefault = $("body").hasClass("text-default"),
				textLarge = $("body").hasClass("text-large"),
		        textXlarge = $("body").hasClass("text-xlarge");

            //var api1 = $("#msg-large").data("overlay");
            //var api2 = $("#msg-small").data("overlay");

            //if ($("#msg-large:visible")) {
            //    api1.close();
           // }

            //if (textSmall && !api2.isOpened()) {
            //    api2.load();
            //}
            if (textDefault) {
                $("body").css("font-size", "8px").removeClass("text-default").addClass("text-small");
            }
            if (textLarge) {
                $("body").css("font-size", "10px").removeClass("text-large").addClass("text-default");
            }
            if (textXlarge) {
                $("body").css("font-size", "12px").removeClass("text-xlarge").addClass("text-large");
            }
            return false;
        });

        $("#utils-share a").live("click", function() {
            if ($(this).hasClass("closed")) {
                $("#utils-share a.closed").removeClass("closed").addClass("open");
                $("#utils-share ul").fadeIn(settings.fadeSpeed);
            }
            else {
                $("#utils-share a.open").removeClass("open").addClass("closed");
                $("#utils-share ul").fadeOut(settings.fadeSpeed);
            }
            return false;
        });

        $("#utils-hide").live("click", function() {
            if ($.cookies.test()) {
                $.cookies.set("TGC_utils_status", "hidden");
            }
            $("#site-utils").removeClass("visible").addClass("hidden");
            return false;
        });

        $("#utils-show").live("click", function() {

            if ($.cookies.test()) {
                $.cookies.set("TGC_utils_status", "visible");
            }
            $("#site-utils").removeClass("hidden").addClass("visible").fadeIn();
            return false;
        });
    });
};
