jQuery.fn.blurbMenu = function(page, action, search, mode) {
    var x = 100;
    var y = 100;
    var cookie = getCookie();
    
    if(! mode) {
        mode = 0;
    }
    if(cookie.length == 3) {
        mode = cookie[0];
        x = cookie[1];
        y = cookie[2];
    }
    
    initMenu();
    
    $(window).unload(function() {
        setCookie();
    });
    
    function initMenu() {
        var menu = $("<div id=\"blurb-menu\"></div>");
        var p = $("<p><a href=\"http://www.urbanoutfitters.com/\"><img src=\"http://blog.urbanoutfitters.com/menu/menu_h1.gif\" alt=\"Urban Outfitters\" /></a><a class=\"blurb-menu\" name=\"mode\" href=\"\"><img src=\"http://blog.urbanoutfitters.com/menu/menu.gif\" alt=\"\" /></a></p>");
        var div = $("<div class=\"blurb-menu\"></div>");
        var form = $("<form method=\"post\" action=\"\"><p><input type=\"text\" name=\"search\" value=\"\" title=\"Search\" /></p></form>");
        var ul = $("<ul></ul>");
        var li = new Array();
        li[0] = new Array("01", "Blog", "http://blog.urbanoutfitters.com/blog");
        li[1] = new Array("02", "Features", "http://blog.urbanoutfitters.com/features");
        li[2] = new Array("03", "Music", "http://lstn.urbanoutfitters.com/");
        li[3] = new Array("04", "Photos", "http://blog.urbanoutfitters.com/flickr");
        li[4] = new Array("05", "Twitter", "http://blog.urbanoutfitters.com/twitter");
        li[5] = new Array("06", "Facebook", "http://blog.urbanoutfitters.com/facebook");
        li[6] = new Array("07", "Videos", "http://blog.urbanoutfitters.com/youtube");
        li[7] = new Array("08", "Contests", "http://contests.urbanoutfitters.com/");
        li[8] = new Array("09", "Shop", "http://www.urbanoutfitters.com/");
        
        $(li).each(function() {
            ul.append("<li id=\"blurb-menu" + $(this)[0] + "\"><a href=\"" + $(this)[2] + "\"><span>" + $(this)[1] + "</span></a></li>");
        });
        if(mode == 1) {
            menu = $("<div id=\"blurb-menu-draggable\"></div>");
            p = $("<p><img src=\"http://blog.urbanoutfitters.com/menu/menu_draggable_h1.gif\" alt=\"Urban Outfitters\" /><a name=\"mode\" href=\"\"><img src=\"http://blog.urbanoutfitters.com/menu/menu_draggable.gif\" alt=\"\" /></a></p>");
        }
        div.append(p, ul, form);
        menu.append(div);
        $("body").prepend(menu); 
        if(page.length > 0) {
            $("#blurb-menu" + page).addClass("selected");
        }
        if(action) {
            initSearch();
        }
        if(mode == 1) {
            menu.css("top", y + "px").css("left", x + "px");
            menu.draggable({containment:"document"});
            menu.css("cursor", "move");
        }
        
        $("a[name='mode']").click(function() {
            if(mode == 1) {
                mode = 0;
            } else {
                mode = 1;
            }
            menu.remove();
            initMenu();
            return false;
        });
        
        setCookie();
    }
        
    function initSearch() {
        var input = $("#blurb-menu input[name='search']");
        var title;
        
        if(mode == 1) {
            input = $("#blurb-menu-draggable input[name='search']");
            input.parent().show();
        }
        
        input.css("visibility", "visible");
        input.parents("form").attr("action", action);
        if(search) {
            input.attr("value", search);
        }
        
        title = input.attr("title");
        if(title) {
            input.focus(function() {
                if(input.val() == title && input.hasClass("blurb-blur")) {
                    input.val("").removeClass("blurb-blur");
                }
            });
            input.blur(function() {
                if(input.val() == "") {
                    input.val(title).addClass("blurb-blur");
                }
            });
            $("form").submit(function() {
                   input.focus();
            });
            input.blur();
        }
    }
    
    function setCookie() {
        var expire = new Date();
        expire.setDate(expire.getDate() + 14);
        
        if(mode == 1) {
            var position = $("#blurb-menu-draggable").position();
            x = position.left;
            y = position.top;
        }
        
        document.cookie = "menu=" + mode + "," + x + "," + y + "; expires=" + expire.toUTCString() + "; path=/";
        document.cookie = "menu=" + mode + "," + x + "," + y + "; expires=" + expire.toUTCString() + "; domain=.urbanoutfitters.com; path=/";
    }
    
    function getCookie() {
        var cookie = "";
        if(document.cookie && document.cookie != "") {
            cookie = document.cookie.split(";");
            for(var i = 0; i < cookie.length; i++) {
                cookie[i] = $.trim(cookie[i]);
                if(cookie[i].substr(0, 5) == "menu=") {
                    cookie = cookie[i].substr(5).split(",");
                    break;
                }
            }
        }
        return cookie;
    }
}