14 -webkit-appearance: none;
17 border-radius: inherit;
21 background: url(sort.png) no-repeat;
24 #selector #tag-selected {
25 vertical-align: bottom;
30 vertical-align: bottom;
34 display: none !important;
39 color: rgba(0, 0, 0, 0.796875);
41 text-decoration: none;
50 background-color: rgba(0, 0, 0, 0.2);
51 -webkit-border-radius: 10px;
52 text-shadow: rgba(0, 0, 0, 0.398438) 0px 1px 0px;
55 <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
56 <script type="text/javascript">
57 function redrawWindow() {
58 $('.bookmark').removeClass('to-be-hidden')
59 $('.bookmark').removeClass('hidden');
60 $('.bookmark').each(function() {
61 if ($(this).offset().top > 10) {
62 $(this).addClass('to-be-hidden');
65 $('.to-be-hidden').addClass('hidden').removeClass('to-be-hidden');
67 function reloadBookmarks(username, bookmarks) {
69 for (var i = 0; i < bookmarks.length; i++) {
70 var bookmark = bookmarks[i];
71 var label = bookmark.name;
72 if (label.length > 27) {
73 var firstPart = label.substr(0, 12);
74 var secondPart = label.substr(label.length - 12, 12);
75 label = firstPart + "…" + secondPart;
77 output += '<a class="bookmark" title="' + bookmark.url + '" href="' + bookmark.url + '">' + label + '</a>';
79 $('#bookmarks').html(output);
82 function reloadMenu(username, tags, currentTag) {
83 var menu = $('#menu');
86 menu.append('<option value="home">My Delicious</option>');
87 menu.append('<hr />');
88 menu.append('<option id="all" value="all">All Bookmarks</option>');
89 menu.append('<optgroup id="tags" label="All Bookmarks with Tag"></optgroup>');
90 var tagContainer = menu.find('#tags');
92 for (var i = 0; i < tags.length; i++) {
94 var toAppend = '<option ';
95 if (currentTag && tag.tag == currentTag) {
96 toAppend += 'selected="selected" ';
98 toAppend += 'value="tag:' + tag.tag + '">' + tag.tag + ' (' + tag.count + ')</option>';
99 tagContainer.append(toAppend);
101 menu.append('<hr />');
103 $('#selected').html(currentTag);
104 $('#tag-selected').removeClass('hidden');
105 $('#selected').removeClass('hidden');
107 $('#menu')[0].selectedIndex = 1;
108 $('#tag-selected').addClass('hidden');
109 $('#selected').addClass('hidden');
111 $('#selector').removeClass('hidden');
112 $('#menu').removeAttr('disabled');
114 $('#selector').addClass('hidden');
115 $('#menu').attr('disabled', 'disabled');
117 menu.append('<option value="refresh">Refresh</option>');
119 function refresh(delicious) {
120 var username = delicious.username;
121 var bookmarks = delicious.bookmarks;
122 var currentTag = delicious.currentTag || '';
123 var tags = delicious.tags;
124 reloadMenu(username, tags, currentTag);
125 reloadBookmarks(username, bookmarks);
128 $(window).resize(redrawWindow);
129 $('#menu').change(function(event) {
130 if (!event.target.previousIndex) {
131 event.target.previousIndex = event.target.selectedIndex;
133 var option = event.target.options[event.target.selectedIndex];
134 if (option.value.substr(0, 4) == 'tag:') {
135 var tag = option.value.substr(4);
136 safari.extension.globalPage.contentWindow.Delicious.reloadBookmarksWithTag(tag);
137 } else if (option.value == 'all') {
138 safari.extension.globalPage.contentWindow.Delicious.reloadBookmarks();
139 } else if (option.value == 'refresh') {
140 refresh(safari.extension.globalPage.contentWindow.Delicious);
141 event.target.selectedIndex = event.target.previousIndex;
142 } else if (option.value == 'home') {
143 var tab = safari.application.activeBrowserWindow.openTab();
144 tab.url = 'http://delicious.com/home';
145 event.target.selectedIndex = event.target.previousIndex;
147 event.target.previousIndex = event.target.selectedIndex;
149 refresh(safari.extension.globalPage.contentWindow.Delicious);
152 <title>Toolbar</title>
155 <div id="selector" class="hidden">
156 <select name="menu" id="menu" disabled="disabled">
158 <img id="tag-selected" src="tag-small.png" class="hidden" />
159 <span id="selected" class="hidden"></span>