Ticket #3569: safari-compat2.diff

File safari-compat2.diff, 148.9 KB (added by nickshanks, 6 years ago)

Proposesd fix

Line 
1Index: wp-login.php
2===================================================================
3--- wp-login.php        (revision 4745)
4+++ wp-login.php        (working copy)
5@@ -29,7 +29,7 @@
6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
7 <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
8 <head>
9-       <title><?php bloginfo('name'); ?> &rsaquo; <?php echo $title; ?></title>
10+       <title><?php bloginfo('name'); ?> &#8250; <?php echo $title; ?></title>
11        <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
12        <link rel="stylesheet" href="<?php bloginfo('wpurl'); ?>/wp-admin/wp-admin.css?version=<?php bloginfo('version'); ?>" type="text/css" />
13 <?php if ( ('rtl' == $wp_locale->text_direction) ) : ?>
14@@ -145,7 +145,7 @@
15                <input type="text" name="user_email" id="user_email" class="input" value="<?php echo attribute_escape(stripslashes($_POST['user_email'])); ?>" size="25" tabindex="20" /></label>
16        </p>
17 <?php do_action('lostpassword_form'); ?>
18-       <p class="submit"><input type="submit" name="submit" id="submit" value="<?php _e('Get New Password &raquo;'); ?>" tabindex="100" /></p>
19+       <p class="submit"><input type="submit" name="submit" id="submit" value="<?php _e('Get New Password &#187;'); ?>" tabindex="100" /></p>
20 </form>
21 </div>
22 
23@@ -265,7 +265,7 @@
24        </p>
25 <?php do_action('register_form'); ?>
26        <p id="reg_passmail"><?php _e('A password will be e-mailed to you.') ?></p>
27-       <p class="submit"><input type="submit" name="submit" id="submit" value="<?php _e('Register &raquo;'); ?>" tabindex="100" /></p>
28+       <p class="submit"><input type="submit" name="submit" id="submit" value="<?php _e('Register &#187;'); ?>" tabindex="100" /></p>
29 </form>
30 </div>
31 
32@@ -353,7 +353,7 @@
33 <?php do_action('login_form'); ?>
34        <p><label><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" /> <?php _e('Remember me'); ?></label></p>
35        <p class="submit">
36-               <input type="submit" name="submit" id="submit" value="<?php _e('Login'); ?> &raquo;" tabindex="100" />
37+               <input type="submit" name="submit" id="submit" value="<?php _e('Login'); ?> &#187;" tabindex="100" />
38                <input type="hidden" name="redirect_to" value="<?php echo attribute_escape($redirect_to); ?>" />
39        </p>
40 </form>
41Index: wp-blog-header.php
42===================================================================
43--- wp-blog-header.php  (revision 4745)
44+++ wp-blog-header.php  (working copy)
45@@ -6,7 +6,7 @@
46        else $path = 'wp-admin/';
47 
48   require_once( dirname(__FILE__) . '/wp-includes/functions.php');
49-  wp_die("There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started. Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>. You can <a href='{$path}setup-config.php'>create a <code>wp-config.php</code> file through a web interface</a>, but this doesn't work for all server setups. The safest way is to manually create the file.", "WordPress &rsaquo; Error");
50+  wp_die("There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started. Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>. You can <a href='{$path}setup-config.php'>create a <code>wp-config.php</code> file through a web interface</a>, but this doesn't work for all server setups. The safest way is to manually create the file.", "WordPress &#8250; Error");
51 }
52 
53 $wp_did_header = true;
54Index: wp-includes/link-template.php
55===================================================================
56--- wp-includes/link-template.php       (revision 4745)
57+++ wp-includes/link-template.php       (working copy)
58@@ -361,7 +361,7 @@
59        echo $format;
60 }
61 
62-function next_post_link($format='%link &raquo;', $link='%title', $in_same_cat = false, $excluded_categories = '') {
63+function next_post_link($format='%link &#187;', $link='%title', $in_same_cat = false, $excluded_categories = '') {
64        $post = get_next_post($in_same_cat, $excluded_categories);
65 
66        if ( !$post )
67@@ -458,7 +458,7 @@
68        }
69 }
70 
71-function next_posts_link($label='Next Page &raquo;', $max_page=0) {
72+function next_posts_link($label='Next Page &#187;', $max_page=0) {
73        global $paged, $wpdb, $wp_query;
74        if ( !$max_page ) {
75                $max_page = $wp_query->max_num_pages;
76@@ -495,7 +495,7 @@
77        }
78 }
79 
80-function posts_nav_link($sep=' &#8212; ', $prelabel='&laquo; Previous Page', $nxtlabel='Next Page &raquo;') {
81+function posts_nav_link($sep=' &#8212; ', $prelabel='&laquo; Previous Page', $nxtlabel='Next Page &#187;') {
82        global $wp_query;
83        if ( !is_singular() ) {
84                $max_num_pages = $wp_query->max_num_pages;
85Index: wp-includes/wp-db.php
86===================================================================
87--- wp-includes/wp-db.php       (revision 4745)
88+++ wp-includes/wp-db.php       (working copy)
89@@ -369,7 +369,7 @@
90 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
91 <html xmlns="http://www.w3.org/1999/xhtml">
92 <head>
93-       <title>WordPress &rsaquo; Error</title>
94+       <title>WordPress &#8250; Error</title>
95        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
96        <link rel="stylesheet" href="<?php echo $admin_dir; ?>install.css" type="text/css" />
97 </head>
98Index: wp-includes/general-template.php
99===================================================================
100--- wp-includes/general-template.php    (revision 4745)
101+++ wp-includes/general-template.php    (working copy)
102@@ -146,7 +146,7 @@
103 }
104 
105 
106-function wp_title($sep = '&raquo;', $display = true) {
107+function wp_title($sep = '&#187;', $display = true) {
108        global $wpdb;
109        global $m, $year, $monthnum, $day, $category_name, $wp_locale, $posts;
110 
111@@ -342,7 +342,7 @@
112                                $url    = get_month_link($arcresult->year,      $arcresult->month);
113                                $text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);
114                                if ( $show_post_count )
115-                                       $after = '&nbsp;('.$arcresult->posts.')' . $afterafter;
116+                                       $after = '&#160;('.$arcresult->posts.')' . $afterafter;
117                                echo get_archives_link($url, $text, $format, $before, $after);
118                        }
119                }
120@@ -354,7 +354,7 @@
121                            $url = get_year_link($arcresult->year);
122                 $text = sprintf('%d', $arcresult->year);
123                                if ($show_post_count)
124-                    $after = '&nbsp;('.$arcresult->posts.')' . $afterafter;
125+                    $after = '&#160;('.$arcresult->posts.')' . $afterafter;
126                 echo get_archives_link($url, $text, $format, $before, $after);
127             }
128                }                       
129@@ -367,7 +367,7 @@
130                                $date = sprintf('%1$d-%2$02d-%3$02d 00:00:00', $arcresult->year, $arcresult->month, $arcresult->dayofmonth);
131                                $text = mysql2date($archive_day_date_format, $date);
132                                if ($show_post_count)
133-                                       $after = '&nbsp;('.$arcresult->posts.')'.$afterafter;
134+                                       $after = '&#160;('.$arcresult->posts.')'.$afterafter;
135                                echo get_archives_link($url, $text, $format, $before, $after);
136                        }
137                }
138@@ -387,7 +387,7 @@
139                                                $url  = sprintf('%1$s/%2$s%3$sm%4$s%5$s%6$sw%7$s%8$d', get_option('home'), '', '?', '=', $arc_year, '&amp;', '=', $arcresult->week);
140                                                $text = $arc_week_start . $archive_week_separator . $arc_week_end;
141                                                if ($show_post_count)
142-                                                       $after = '&nbsp;('.$arcresult->posts.')'.$afterafter;
143+                                                       $after = '&#160;('.$arcresult->posts.')'.$afterafter;
144                                                echo get_archives_link($url, $text, $format, $before, $after);
145                                        }
146                                }
147@@ -512,17 +512,17 @@
148                get_month_link($previous->year, $previous->month) . '" title="' . sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($previous->month),
149                        date('Y', mktime(0, 0 , 0, $previous->month, 1, $previous->year))) . '">&laquo; ' . $wp_locale->get_month_abbrev($wp_locale->get_month($previous->month)) . '</a></td>';
150        } else {
151-               echo "\n\t\t".'<td colspan="3" id="prev" class="pad">&nbsp;</td>';
152+               echo "\n\t\t".'<td colspan="3" id="prev" class="pad">&#160;</td>';
153        }
154 
155-       echo "\n\t\t".'<td class="pad">&nbsp;</td>';
156+       echo "\n\t\t".'<td class="pad">&#160;</td>';
157 
158        if ( $next ) {
159                echo "\n\t\t".'<td abbr="' . $wp_locale->get_month($next->month) . '" colspan="3" id="next"><a href="' .
160                get_month_link($next->year, $next->month) . '" title="' . sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($next->month),
161-                       date('Y', mktime(0, 0 , 0, $next->month, 1, $next->year))) . '">' . $wp_locale->get_month_abbrev($wp_locale->get_month($next->month)) . ' &raquo;</a></td>';
162+                       date('Y', mktime(0, 0 , 0, $next->month, 1, $next->year))) . '">' . $wp_locale->get_month_abbrev($wp_locale->get_month($next->month)) . ' &#187;</a></td>';
163        } else {
164-               echo "\n\t\t".'<td colspan="3" id="next" class="pad">&nbsp;</td>';
165+               echo "\n\t\t".'<td colspan="3" id="next" class="pad">&#160;</td>';
166        }
167 
168        echo '
169@@ -576,7 +576,7 @@
170        // See how much we should pad in the beginning
171        $pad = calendar_week_mod(date('w', $unixmonth)-$week_begins);
172        if ( 0 != $pad )
173-               echo "\n\t\t".'<td colspan="'.$pad.'" class="pad">&nbsp;</td>';
174+               echo "\n\t\t".'<td colspan="'.$pad.'" class="pad">&#160;</td>';
175 
176        $daysinmonth = intval(date('t', $unixmonth));
177        for ( $day = 1; $day <= $daysinmonth; ++$day ) {
178@@ -601,7 +601,7 @@
179 
180        $pad = 7 - calendar_week_mod(date('w', mktime(0, 0 , 0, $thismonth, $day, $thisyear))-$week_begins);
181        if ( $pad != 0 && $pad != 7 )
182-               echo "\n\t\t".'<td class="pad" colspan="'.$pad.'">&nbsp;</td>';
183+               echo "\n\t\t".'<td class="pad" colspan="'.$pad.'">&#160;</td>';
184 
185        echo "\n\t</tr>\n\t</tbody>\n\t</table>";
186 
187@@ -934,7 +934,7 @@
188        $show_all = false;
189        $prev_next = true;
190        $prev_text = __('&laquo; Previous');
191-       $next_text = __('Next &raquo;');
192+       $next_text = __('Next &#187;');
193        $end_size = 1; // How many numbers on either end including the end
194        $mid_size = 2; // How many numbers to either side of current not including current
195        $type = 'plain';
196Index: wp-includes/js/colorpicker.js
197===================================================================
198--- wp-includes/js/colorpicker.js       (revision 4745)
199+++ wp-includes/js/colorpicker.js       (working copy)
200@@ -681,7 +681,7 @@
201                if ((i % width) == 0) { cp_contents += "<tr>"; }
202                if (use_highlight) { var mo = 'onMouseOver="'+windowRef+'ColorPicker_highlightColor(\''+colors[i]+'\',window.document)"'; }
203                else { mo = ""; }
204-               cp_contents += '<td bgcolor="'+colors[i]+'"><a href="javascript:void()" onclick="'+windowRef+'ColorPicker_pickColor(\''+colors[i]+'\','+windowRef+'window.popupWindowObjects['+cp.index+']);return false;" '+mo+'>&nbsp;</a></td>';
205+               cp_contents += '<td bgcolor="'+colors[i]+'"><a href="javascript:void()" onclick="'+windowRef+'ColorPicker_pickColor(\''+colors[i]+'\','+windowRef+'window.popupWindowObjects['+cp.index+']);return false;" '+mo+'>&#160;</a></td>';
206                if ( ((i+1)>=total) || (((i+1) % width) == 0)) {
207                        cp_contents += "</tr>";
208                        }
209@@ -690,7 +690,7 @@
210        if (document.getElementById) {
211                var width1 = Math.floor(width/2);
212                var width2 = width = width1;
213-               cp_contents += "<tr><td colspan='"+width1+"' bgcolor='#ffffff' ID='colorPickerSelectedColor'>&nbsp;</td><td colspan='"+width2+"' align='center' id='colorPickerSelectedColorValue'>#FFFFFF</td></tr>";
214+               cp_contents += "<tr><td colspan='"+width1+"' bgcolor='#ffffff' ID='colorPickerSelectedColor'>&#160;</td><td colspan='"+width2+"' align='center' id='colorPickerSelectedColorValue'>#FFFFFF</td></tr>";
215                }
216        cp_contents += "</table>";
217        if (windowMode) {
218Index: wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js
219===================================================================
220--- wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js   (revision 4745)
221+++ wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js   (working copy)
222@@ -240,7 +240,7 @@
223                                }
224 
225                                // Remove anonymous, empty paragraphs.
226-                               content = content.replace(new RegExp('<p>(\\s|&nbsp;)*</p>', 'mg'), '');
227+                               content = content.replace(new RegExp('<p>(\\s|&#160;)*</p>', 'mg'), '');
228 
229                                // Handle table badness.
230                                content = content.replace(new RegExp('<(table( [^>]*)?)>.*?<((tr|thead)( [^>]*)?)>', 'mg'), '<$1><$3>');
231@@ -586,7 +586,7 @@
232        pee = pee.replace(new RegExp('\\s*\\n', 'gi'), "<br />\n");
233        pee = pee.replace(new RegExp('(</?(?:table|thead|tfoot|caption|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6])[^>]*>)\\s*<br />', 'gi'), "$1");
234        pee = pee.replace(new RegExp('<br />(\\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)', 'gi'), '$1');
235-       pee = pee.replace(new RegExp('^((?:&nbsp;)*)\\s', 'mg'), '$1&nbsp;');
236+       pee = pee.replace(new RegExp('^((?:&#160;)*)\\s', 'mg'), '$1&#160;');
237        //pee = pee.replace(new RegExp('(<pre.*?>)(.*?)</pre>!ise', " stripslashes('$1') .  stripslashes(clean_pre('$2'))  . '</pre>' "); // Hmm...
238        return pee;
239 }
240Index: wp-includes/js/tinymce/plugins/paste/editor_plugin.js
241===================================================================
242--- wp-includes/js/tinymce/plugins/paste/editor_plugin.js       (revision 4745)
243+++ wp-includes/js/tinymce/plugins/paste/editor_plugin.js       (working copy)
244@@ -1,385 +1,385 @@
245-/**
246
247- * $Id: editor_plugin_src.js 126 2006-10-22 16:19:55Z spocke $
248
249- *
250
251- * @author Moxiecode
252
253- * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
254
255- */
256
257-
258
259-/* Import plugin specific language pack */
260
261-tinyMCE.importPluginLanguagePack('paste');
262
263-
264
265-var TinyMCE_PastePlugin = {
266
267-       getInfo : function() {
268
269-               return {
270
271-                       longname : 'Paste text/word',
272
273-                       author : 'Moxiecode Systems AB',
274
275-                       authorurl : 'http://tinymce.moxiecode.com',
276
277-                       infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_paste.html',
278
279-                       version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
280
281-               };
282
283-       },
284
285-
286
287-       initInstance : function(inst) {
288
289-               if (tinyMCE.isMSIE && tinyMCE.getParam("paste_auto_cleanup_on_paste", false))
290
291-                       tinyMCE.addEvent(inst.getBody(), "paste", TinyMCE_PastePlugin._handlePasteEvent);
292
293-       },
294
295-
296
297-       getControlHTML : function(cn) {
298
299-               switch (cn) {
300
301-                       case "pastetext":
302
303-                               return tinyMCE.getButtonHTML(cn, 'lang_paste_text_desc', '{$pluginurl}/images/pastetext.gif', 'mcePasteText', true);
304
305-
306
307-                       case "pasteword":
308
309-                               return tinyMCE.getButtonHTML(cn, 'lang_paste_word_desc', '{$pluginurl}/images/pasteword.gif', 'mcePasteWord', true);
310
311-
312
313-                       case "selectall":
314
315-                               return tinyMCE.getButtonHTML(cn, 'lang_selectall_desc', '{$pluginurl}/images/selectall.gif', 'mceSelectAll', true);
316
317-               }
318
319-
320
321-               return '';
322
323-       },
324
325-
326
327-       execCommand : function(editor_id, element, command, user_interface, value) {
328
329-               switch (command) {
330
331-                       case "mcePasteText":
332
333-                               if (user_interface) {
334
335-                                       if ((tinyMCE.isMSIE && !tinyMCE.isOpera) && !tinyMCE.getParam('paste_use_dialog', false))
336
337-                                               TinyMCE_PastePlugin._insertText(clipboardData.getData("Text"), true);
338
339-                                       else {
340
341-                                               var template = new Array();
342
343-                                               template['file']        = '../../plugins/paste/pastetext.htm'; // Relative to theme
344
345-                                               template['width']  = 450;
346
347-                                               template['height'] = 400;
348
349-                                               var plain_text = "";
350
351-                                               tinyMCE.openWindow(template, {editor_id : editor_id, plain_text: plain_text, resizable : "yes", scrollbars : "no", inline : "yes", mceDo : 'insert'});
352
353-                                       }
354
355-                               } else
356
357-                                       TinyMCE_PastePlugin._insertText(value['html'], value['linebreaks']);
358
359-
360
361-                               return true;
362
363-
364
365-                       case "mcePasteWord":
366
367-                               if (user_interface) {
368
369-                                       if ((tinyMCE.isMSIE && !tinyMCE.isOpera) && !tinyMCE.getParam('paste_use_dialog', false)) {
370
371-                                               TinyMCE_PastePlugin._insertWordContent(TinyMCE_PastePlugin._clipboardHTML());
372
373-                                       } else {
374
375-                                               var template = new Array();
376
377-                                               template['file']        = '../../plugins/paste/pasteword.htm'; // Relative to theme
378
379-                                               template['width']  = 450;
380
381-                                               template['height'] = 400;
382
383-                                               var plain_text = "";
384
385-                                               tinyMCE.openWindow(template, {editor_id : editor_id, plain_text: plain_text, resizable : "yes", scrollbars : "no", inline : "yes", mceDo : 'insert'});
386
387-                                       }
388
389-                               } else
390
391-                                       TinyMCE_PastePlugin._insertWordContent(value);
392
393-
394
395-                               return true;
396
397-
398
399-                       case "mceSelectAll":
400
401-                               tinyMCE.execInstanceCommand(editor_id, 'selectall');
402
403-                               return true;
404
405-
406
407-               }
408
409-
410
411-               // Pass to next handler in chain
412
413-               return false;
414
415-       },
416
417-
418
419-       // Private plugin internal methods
420
421-
422
423-       _handlePasteEvent : function(e) {
424
425-               switch (e.type) {
426
427-                       case "paste":
428
429-                               var html = TinyMCE_PastePlugin._clipboardHTML();
430
431-                               var r, inst = tinyMCE.selectedInstance;
432
433-
434
435-                               // Removes italic, strong etc, the if was needed due to bug #1437114
436
437-                               if (inst && (r = inst.getRng()) && r.text.length > 0)
438
439-                                       tinyMCE.execCommand('delete');
440
441-
442
443-                               if (html && html.length > 0)
444
445-                                       tinyMCE.execCommand('mcePasteWord', false, html);
446
447-
448
449-                               tinyMCE.cancelEvent(e);
450
451-                               return false;
452
453-               }
454
455-
456
457-               return true;
458
459-       },
460
461-
462
463-       _insertText : function(content, bLinebreaks) {
464
465-               if (content && content.length > 0) {
466
467-                       if (bLinebreaks) {
468
469-                               // Special paragraph treatment
470
471-                               if (tinyMCE.getParam("paste_create_paragraphs", true)) {
472
473-                                       var rl = tinyMCE.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
474
475-                                       for (var i=0; i<rl.length; i+=2)
476
477-                                               content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
478
479-
480
481-                                       content = tinyMCE.regexpReplace(content, "\r\n\r\n", "</p><p>", "gi");
482
483-                                       content = tinyMCE.regexpReplace(content, "\r\r", "</p><p>", "gi");
484
485-                                       content = tinyMCE.regexpReplace(content, "\n\n", "</p><p>", "gi");
486
487-
488
489-                                       // Has paragraphs
490
491-                                       if ((pos = content.indexOf('</p><p>')) != -1) {
492
493-                                               tinyMCE.execCommand("Delete");
494
495-
496
497-                                               var node = tinyMCE.selectedInstance.getFocusElement();
498
499-
500
501-                                               // Get list of elements to break
502
503-                                               var breakElms = new Array();
504
505-
506
507-                                               do {
508
509-                                                       if (node.nodeType == 1) {
510
511-                                                               // Don't break tables and break at body
512
513-                                                               if (node.nodeName == "TD" || node.nodeName == "BODY")
514
515-                                                                       break;
516
517-               
518
519-                                                               breakElms[breakElms.length] = node;
520
521-                                                       }
522
523-                                               } while(node = node.parentNode);
524
525-
526
527-                                               var before = "", after = "</p>";
528
529-                                               before += content.substring(0, pos);
530
531-
532
533-                                               for (var i=0; i<breakElms.length; i++) {
534
535-                                                       before += "</" + breakElms[i].nodeName + ">";
536
537-                                                       after += "<" + breakElms[(breakElms.length-1)-i].nodeName + ">";
538
539-                                               }
540
541-
542
543-                                               before += "<p>";
544
545-                                               content = before + content.substring(pos+7) + after;
546
547-                                       }
548
549-                               }
550
551-
552
553-                               if (tinyMCE.getParam("paste_create_linebreaks", true)) {
554
555-                                       content = tinyMCE.regexpReplace(content, "\r\n", "<br />", "gi");
556
557-                                       content = tinyMCE.regexpReplace(content, "\r", "<br />", "gi");
558
559-                                       content = tinyMCE.regexpReplace(content, "\n", "<br />", "gi");
560
561-                               }
562
563-                       }
564
565-               
566
567-                       tinyMCE.execCommand("mceInsertRawHTML", false, content);
568
569-               }
570
571-       },
572
573-
574
575-       _insertWordContent : function(content) {
576
577-               if (content && content.length > 0) {
578
579-                       // Cleanup Word content
580
581-                       var bull = String.fromCharCode(8226);
582
583-                       var middot = String.fromCharCode(183);
584
585-                       var cb;
586
587-
588
589-                       if ((cb = tinyMCE.getParam("paste_insert_word_content_callback", "")) != "")
590
591-                               content = eval(cb + "('before', content)");
592
593-
594
595-                       var rl = tinyMCE.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
596
597-                       for (var i=0; i<rl.length; i+=2)
598
599-                               content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
600
601-
602
603-                       if (tinyMCE.getParam("paste_convert_headers_to_strong", false)) {
604
605-                               content = content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>', 'gi'), '<p><b>$1</b></p>');
606
607-                       }
608
609-
610
611-                       content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt">', 'gi'), '">' + "--list--");
612
613-                       content = content.replace(new RegExp(bull + "(.*?)<BR>", "gi"), "<p>" + middot + "$1</p>");
614
615-                       content = content.replace(new RegExp('<SPAN style="mso-list: Ignore">', 'gi'), "<span>" + bull); // Covert to bull list
616
617-                       content = content.replace(/<o:p><\/o:p>/gi, "");
618
619-                       content = content.replace(new RegExp('<br style="page-break-before: always;.*>', 'gi'), '-- page break --'); // Replace pagebreaks
620
621-                       content = content.replace(new RegExp('<(!--)([^>]*)(--)>', 'g'), "");  // Word comments
622
623-
624
625-                       if (tinyMCE.getParam("paste_remove_spans", true))
626
627-                               content = content.replace(/<\/?span[^>]*>/gi, "");
628
629-
630
631-                       if (tinyMCE.getParam("paste_remove_styles", true))
632
633-                               content = content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)', 'gi'), "<$1$3");
634
635-
636
637-                       content = content.replace(/<\/?font[^>]*>/gi, "");
638
639-
640
641-                       // Strips class attributes.
642
643-                       switch (tinyMCE.getParam("paste_strip_class_attributes", "all")) {
644
645-                               case "all":
646
647-                                       content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");
648
649-                                       break;
650
651-
652
653-                               case "mso":
654
655-                                       content = content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)', 'gi'), "<$1$3");
656
657-                                       break;
658
659-                       }
660
661-
662
663-                       content = content.replace(new RegExp('href="?' + TinyMCE_PastePlugin._reEscape("" + document.location) + '', 'gi'), 'href="' + tinyMCE.settings['document_base_url']);
664
665-                       content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");
666
667-                       content = content.replace(/<\\?\?xml[^>]*>/gi, "");
668
669-                       content = content.replace(/<\/?\w+:[^>]*>/gi, "");
670
671-                       content = content.replace(/-- page break --\s*<p>&nbsp;<\/p>/gi, ""); // Remove pagebreaks
672
673-                       content = content.replace(/-- page break --/gi, ""); // Remove pagebreaks
674
675-
676
677-       //              content = content.replace(/\/?&nbsp;*/gi, ""); &nbsp;
678
679-       //              content = content.replace(/<p>&nbsp;<\/p>/gi, '');
680
681-
682
683-                       if (!tinyMCE.settings['force_p_newlines']) {
684
685-                               content = content.replace('', '' ,'gi');
686
687-                               content = content.replace('</p>', '<br /><br />' ,'gi');
688
689-                       }
690
691-
692
693-                       if (!tinyMCE.isMSIE && !tinyMCE.settings['force_p_newlines']) {
694
695-                               content = content.replace(/<\/?p[^>]*>/gi, "");
696
697-                       }
698
699-
700
701-                       content = content.replace(/<\/?div[^>]*>/gi, "");
702
703-
704
705-                       // Convert all middlot lists to UL lists
706
707-                       if (tinyMCE.getParam("paste_convert_middot_lists", true)) {
708
709-                               var div = document.createElement("div");
710
711-                               div.innerHTML = content;
712
713-
714
715-                               // Convert all middot paragraphs to li elements
716
717-                               var className = tinyMCE.getParam("paste_unindented_list_class", "unIndentedList");
718
719-
720
721-                               while (TinyMCE_PastePlugin._convertMiddots(div, "--list--")) ; // bull
722
723-                               while (TinyMCE_PastePlugin._convertMiddots(div, middot, className)) ; // Middot
724
725-                               while (TinyMCE_PastePlugin._convertMiddots(div, bull)) ; // bull
726
727-
728
729-                               content = div.innerHTML;
730
731-                       }
732
733-
734
735-                       // Replace all headers with strong and fix some other issues
736
737-                       if (tinyMCE.getParam("paste_convert_headers_to_strong", false)) {
738
739-                               content = content.replace(/<h[1-6]>&nbsp;<\/h[1-6]>/gi, '<p>&nbsp;&nbsp;</p>');
740
741-                               content = content.replace(/<h[1-6]>/gi, '<p><b>');
742
743-                               content = content.replace(/<\/h[1-6]>/gi, '</b></p>');
744
745-                               content = content.replace(/<b>&nbsp;<\/b>/gi, '<b>&nbsp;&nbsp;</b>');
746
747-                               content = content.replace(/^(&nbsp;)*/gi, '');
748
749-                       }
750
751-
752
753-                       content = content.replace(/--list--/gi, ""); // Remove --list--
754
755-
756
757-                       if ((cb = tinyMCE.getParam("paste_insert_word_content_callback", "")) != "")
758
759-                               content = eval(cb + "('after', content)");
760
761-
762
763-                       // Insert cleaned content
764
765-                       tinyMCE.execCommand("mceInsertContent", false, content);
766
767-
768
769-                       if (tinyMCE.getParam('paste_force_cleanup_wordpaste', true))
770
771-                               window.setTimeout('tinyMCE.execCommand("mceCleanup");', 1); // Do normal cleanup detached from this thread
772
773-               }
774
775-       },
776
777-
778
779-       _reEscape : function(s) {
780
781-               var l = "?.\\*[](){}+^$:";
782
783-               var o = "";
784
785-
786
787-               for (var i=0; i<s.length; i++) {
788
789-                       var c = s.charAt(i);
790
791-
792
793-                       if (l.indexOf(c) != -1)
794
795-                               o += '\\' + c;
796
797-                       else
798
799-                               o += c;
800
801-               }
802
803-
804
805-               return o;
806
807-       },
808
809-
810
811-       _convertMiddots : function(div, search, class_name) {
812
813-               var mdot = String.fromCharCode(183);
814
815-               var bull = String.fromCharCode(8226);
816
817-
818
819-               var nodes = div.getElementsByTagName("p");
820
821-               var prevul;
822
823-               for (var i=0; i<nodes.length; i++) {
824
825-                       var p = nodes[i];
826
827-
828
829-                       // Is middot
830
831-                       if (p.innerHTML.indexOf(search) == 0) {
832
833-                               var ul = document.createElement("ul");
834
835-
836
837-                               if (class_name)
838
839-                                       ul.className = class_name;
840
841-
842
843-                               // Add the first one
844
845-                               var li = document.createElement("li");
846
847-                               li.innerHTML = p.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--|&nbsp;', "gi"), '');
848
849-                               ul.appendChild(li);
850
851-
852
853-                               // Add the rest
854
855-                               var np = p.nextSibling;
856
857-                               while (np) {
858
859-                               // If the node is whitespace, then
860
861-                               // ignore it and continue on.
862
863-                               if (np.nodeType == 3 && new RegExp('^\\s$', 'm').test(np.nodeValue)) {
864
865-                                       np = np.nextSibling;
866
867-                                       continue;
868
869-                               }
870
871-
872
873-                                       if (search == mdot) {
874
875-                                               if (np.nodeType == 1 && new RegExp('^o(\\s+|&nbsp;)').test(np.innerHTML)) {
876
877-                                                       // Second level of nesting
878
879-                                                       if (!prevul) {
880
881-                                                               prevul = ul;
882
883-                                                               ul = document.createElement("ul");
884
885-                                                               prevul.appendChild(ul);
886
887-                                                       }
888
889-                                                       np.innerHTML = np.innerHTML.replace(/^o/, '');
890
891-                                               } else {
892
893-                                                       // Pop the stack if we're going back up to the first level
894
895-                                                       if (prevul) {
896
897-                                                               ul = prevul;
898
899-                                                               prevul = null;
900
901-                                                       }
902
903-                                                       // Not element or middot paragraph
904
905-                                                       if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
906
907-                                                               break;
908
909-                                               }
910
911-                                       } else {
912
913-                                               // Not element or middot paragraph
914
915-                                               if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
916
917-                                                       break;
918
919-                                       }
920
921-
922
923-                                       var cp = np.nextSibling;
924
925-                                       var li = document.createElement("li");
926
927-                                       li.innerHTML = np.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--|&nbsp;', "gi"), '');
928
929-                                       np.parentNode.removeChild(np);
930
931-                                       ul.appendChild(li);
932
933-                                       np = cp;
934
935-                               }
936
937-
938
939-                               p.parentNode.replaceChild(ul, p);
940
941-
942
943-                               return true;
944
945-                       }
946
947-               }
948
949-
950
951-               return false;
952
953-       },
954
955-
956
957-       _clipboardHTML : function() {
958
959-               var div = document.getElementById('_TinyMCE_clipboardHTML');
960
961-
962
963-               if (!div) {
964
965-                       var div = document.createElement('DIV');
966
967-                       div.id = '_TinyMCE_clipboardHTML';
968
969-
970
971-                       with (div.style) {
972
973-                               visibility = 'hidden';
974
975-                               overflow = 'hidden';
976
977-                               position = 'absolute';
978
979-                               width = 1;
980
981-                               height = 1;
982
983-                       }
984
985-
986
987-                       document.body.appendChild(div);
988
989-               }
990
991-
992
993-               div.innerHTML = '';
994
995-               var rng = document.body.createTextRange();
996
997-               rng.moveToElementText(div);
998
999-               rng.execCommand('Paste');
1000
1001-               var html = div.innerHTML;
1002
1003-               div.innerHTML = '';
1004
1005-               return html;
1006
1007-       }
1008
1009-};
1010
1011-
1012
1013-tinyMCE.addPlugin("paste", TinyMCE_PastePlugin);
1014
1015+/**
1016+ * $Id: editor_plugin_src.js 126 2006-10-22 16:19:55Z spocke $
1017+ *
1018+ * @author Moxiecode
1019+ * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
1020+ */
1021+
1022+/* Import plugin specific language pack */
1023+tinyMCE.importPluginLanguagePack('paste');
1024+
1025+var TinyMCE_PastePlugin = {
1026+       getInfo : function() {
1027+               return {
1028+                       longname : 'Paste text/word',
1029+                       author : 'Moxiecode Systems AB',
1030+                       authorurl : 'http://tinymce.moxiecode.com',
1031+                       infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_paste.html',
1032+                       version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
1033+               };
1034+       },
1035+
1036+       initInstance : function(inst) {
1037+               if (tinyMCE.isMSIE && tinyMCE.getParam("paste_auto_cleanup_on_paste", false))
1038+                       tinyMCE.addEvent(inst.getBody(), "paste", TinyMCE_PastePlugin._handlePasteEvent);
1039+       },
1040+
1041+       getControlHTML : function(cn) {
1042+               switch (cn) {
1043+                       case "pastetext":
1044+                               return tinyMCE.getButtonHTML(cn, 'lang_paste_text_desc', '{$pluginurl}/images/pastetext.gif', 'mcePasteText', true);
1045+
1046+                       case "pasteword":
1047+                               return tinyMCE.getButtonHTML(cn, 'lang_paste_word_desc', '{$pluginurl}/images/pasteword.gif', 'mcePasteWord', true);
1048+
1049+                       case "selectall":
1050+                               return tinyMCE.getButtonHTML(cn, 'lang_selectall_desc', '{$pluginurl}/images/selectall.gif', 'mceSelectAll', true);
1051+               }
1052+
1053+               return '';
1054+       },
1055+
1056+       execCommand : function(editor_id, element, command, user_interface, value) {
1057+               switch (command) {
1058+                       case "mcePasteText":
1059+                               if (user_interface) {
1060+                                       if ((tinyMCE.isMSIE && !tinyMCE.isOpera) && !tinyMCE.getParam('paste_use_dialog', false))
1061+                                               TinyMCE_PastePlugin._insertText(clipboardData.getData("Text"), true);
1062+                                       else {
1063+                                               var template = new Array();
1064+                                               template['file']        = '../../plugins/paste/pastetext.htm'; // Relative to theme
1065+                                               template['width']  = 450;
1066+                                               template['height'] = 400;
1067+                                               var plain_text = "";
1068+                                               tinyMCE.openWindow(template, {editor_id : editor_id, plain_text: plain_text, resizable : "yes", scrollbars : "no", inline : "yes", mceDo : 'insert'});
1069+                                       }
1070+                               } else
1071+                                       TinyMCE_PastePlugin._insertText(value['html'], value['linebreaks']);
1072+
1073+                               return true;
1074+
1075+                       case "mcePasteWord":
1076+                               if (user_interface) {
1077+                                       if ((tinyMCE.isMSIE && !tinyMCE.isOpera) && !tinyMCE.getParam('paste_use_dialog', false)) {
1078+                                               TinyMCE_PastePlugin._insertWordContent(TinyMCE_PastePlugin._clipboardHTML());
1079+                                       } else {
1080+                                               var template = new Array();
1081+                                               template['file']        = '../../plugins/paste/pasteword.htm'; // Relative to theme
1082+                                               template['width']  = 450;
1083+                                               template['height'] = 400;
1084+                                               var plain_text = "";
1085+                                               tinyMCE.openWindow(template, {editor_id : editor_id, plain_text: plain_text, resizable : "yes", scrollbars : "no", inline : "yes", mceDo : 'insert'});
1086+                                       }
1087+                               } else
1088+                                       TinyMCE_PastePlugin._insertWordContent(value);
1089+
1090+                               return true;
1091+
1092+                       case "mceSelectAll":
1093+                               tinyMCE.execInstanceCommand(editor_id, 'selectall');
1094+                               return true;
1095+
1096+               }
1097+
1098+               // Pass to next handler in chain
1099+               return false;
1100+       },
1101+
1102+       // Private plugin internal methods
1103+
1104+       _handlePasteEvent : function(e) {
1105+               switch (e.type) {
1106+                       case "paste":
1107+                               var html = TinyMCE_PastePlugin._clipboardHTML();
1108+                               var r, inst = tinyMCE.selectedInstance;
1109+
1110+                               // Removes italic, strong etc, the if was needed due to bug #1437114
1111+                               if (inst && (r = inst.getRng()) && r.text.length > 0)
1112+                                       tinyMCE.execCommand('delete');
1113+
1114+                               if (html && html.length > 0)
1115+                                       tinyMCE.execCommand('mcePasteWord', false, html);
1116+
1117+                               tinyMCE.cancelEvent(e);
1118+                               return false;
1119+               }
1120+
1121+               return true;
1122+       },
1123+
1124+       _insertText : function(content, bLinebreaks) {
1125+               if (content && content.length > 0) {
1126+                       if (bLinebreaks) {
1127+                               // Special paragraph treatment
1128+                               if (tinyMCE.getParam("paste_create_paragraphs", true)) {
1129+                                       var rl = tinyMCE.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
1130+                                       for (var i=0; i<rl.length; i+=2)
1131+                                               content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
1132+
1133+                                       content = tinyMCE.regexpReplace(content, "\r\n\r\n", "</p><p>", "gi");
1134+                                       content = tinyMCE.regexpReplace(content, "\r\r", "</p><p>", "gi");
1135+                                       content = tinyMCE.regexpReplace(content, "\n\n", "</p><p>", "gi");
1136+
1137+                                       // Has paragraphs
1138+                                       if ((pos = content.indexOf('</p><p>')) != -1) {
1139+                                               tinyMCE.execCommand("Delete");
1140+
1141+                                               var node = tinyMCE.selectedInstance.getFocusElement();
1142+
1143+                                               // Get list of elements to break
1144+                                               var breakElms = new Array();
1145+
1146+                                               do {
1147+                                                       if (node.nodeType == 1) {
1148+                                                               // Don't break tables and break at body
1149+                                                               if (node.nodeName == "TD" || node.nodeName == "BODY")
1150+                                                                       break;
1151+               
1152+                                                               breakElms[breakElms.length] = node;
1153+                                                       }
1154+                                               } while(node = node.parentNode);
1155+
1156+                                               var before = "", after = "</p>";
1157+                                               before += content.substring(0, pos);
1158+
1159+                                               for (var i=0; i<breakElms.length; i++) {
1160+                                                       before += "</" + breakElms[i].nodeName + ">";
1161+                                                       after += "<" + breakElms[(breakElms.length-1)-i].nodeName + ">";
1162+                                               }
1163+
1164+                                               before += "<p>";
1165+                                               content = before + content.substring(pos+7) + after;
1166+                                       }
1167+                               }
1168+
1169+                               if (tinyMCE.getParam("paste_create_linebreaks", true)) {
1170+                                       content = tinyMCE.regexpReplace(content, "\r\n", "<br />", "gi");
1171+                                       content = tinyMCE.regexpReplace(content, "\r", "<br />", "gi");
1172+                                       content = tinyMCE.regexpReplace(content, "\n", "<br />", "gi");
1173+                               }
1174+                       }
1175+               
1176+                       tinyMCE.execCommand("mceInsertRawHTML", false, content);
1177+               }
1178+       },
1179+
1180+       _insertWordContent : function(content) {
1181+               if (content && content.length > 0) {
1182+                       // Cleanup Word content
1183+                       var bull = String.fromCharCode(8226);
1184+                       var middot = String.fromCharCode(183);
1185+                       var cb;
1186+
1187+                       if ((cb = tinyMCE.getParam("paste_insert_word_content_callback", "")) != "")
1188+                               content = eval(cb + "('before', content)");
1189+
1190+                       var rl = tinyMCE.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
1191+                       for (var i=0; i<rl.length; i+=2)
1192+                               content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
1193+
1194+                       if (tinyMCE.getParam("paste_convert_headers_to_strong", false)) {
1195+                               content = content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>', 'gi'), '<p><b>$1</b></p>');
1196+                       }
1197+
1198+                       content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt">', 'gi'), '">' + "--list--");
1199+                       content = content.replace(new RegExp(bull + "(.*?)<BR>", "gi"), "<p>" + middot + "$1</p>");
1200+                       content = content.replace(new RegExp('<SPAN style="mso-list: Ignore">', 'gi'), "<span>" + bull); // Covert to bull list
1201+                       content = content.replace(/<o:p><\/o:p>/gi, "");
1202+                       content = content.replace(new RegExp('<br style="page-break-before: always;.*>', 'gi'), '-- page break --'); // Replace pagebreaks
1203+                       content = content.replace(new RegExp('<(!--)([^>]*)(--)>', 'g'), "");  // Word comments
1204+
1205+                       if (tinyMCE.getParam("paste_remove_spans", true))
1206+                               content = content.replace(/<\/?span[^>]*>/gi, "");
1207+
1208+                       if (tinyMCE.getParam("paste_remove_styles", true))
1209+                               content = content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)', 'gi'), "<$1$3");
1210+
1211+                       content = content.replace(/<\/?font[^>]*>/gi, "");
1212+
1213+                       // Strips class attributes.
1214+                       switch (tinyMCE.getParam("paste_strip_class_attributes", "all")) {
1215+                               case "all":
1216+                                       content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");
1217+                                       break;
1218+
1219+                               case "mso":
1220+                                       content = content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)', 'gi'), "<$1$3");
1221+                                       break;
1222+                       }
1223+
1224+                       content = content.replace(new RegExp('href="?' + TinyMCE_PastePlugin._reEscape("" + document.location) + '', 'gi'), 'href="' + tinyMCE.settings['document_base_url']);
1225+                       content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");
1226+                       content = content.replace(/<\\?\?xml[^>]*>/gi, "");
1227+                       content = content.replace(/<\/?\w+:[^>]*>/gi, "");
1228+                       content = content.replace(/-- page break --\s*<p>&#160;<\/p>/gi, ""); // Remove pagebreaks
1229+                       content = content.replace(/-- page break --/gi, ""); // Remove pagebreaks
1230+
1231+       //              content = content.replace(/\/?&#160;*/gi, ""); &#160;
1232+       //              content = content.replace(/<p>&#160;<\/p>/gi, '');
1233+
1234+                       if (!tinyMCE.settings['force_p_newlines']) {
1235+                               content = content.replace('', '' ,'gi');
1236+                               content = content.replace('</p>', '<br /><br />' ,'gi');
1237+                       }
1238+
1239+                       if (!tinyMCE.isMSIE && !tinyMCE.settings['force_p_newlines']) {
1240+                               content = content.replace(/<\/?p[^>]*>/gi, "");
1241+                       }
1242+
1243+                       content = content.replace(/<\/?div[^>]*>/gi, "");
1244+
1245+                       // Convert all middlot lists to UL lists
1246+                       if (tinyMCE.getParam("paste_convert_middot_lists", true)) {
1247+                               var div = document.createElement("div");
1248+                               div.innerHTML = content;
1249+
1250+                               // Convert all middot paragraphs to li elements
1251+                               var className = tinyMCE.getParam("paste_unindented_list_class", "unIndentedList");
1252+
1253+                               while (TinyMCE_PastePlugin._convertMiddots(div, "--list--")) ; // bull
1254+                               while (TinyMCE_PastePlugin._convertMiddots(div, middot, className)) ; // Middot
1255+                               while (TinyMCE_PastePlugin._convertMiddots(div, bull)) ; // bull
1256+
1257+                               content = div.innerHTML;
1258+                       }
1259+
1260+                       // Replace all headers with strong and fix some other issues
1261+                       if (tinyMCE.getParam("paste_convert_headers_to_strong", false)) {
1262+                               content = content.replace(/<h[1-6]>&#160;<\/h[1-6]>/gi, '<p>&#160;&#160;</p>');
1263+                               content = content.replace(/<h[1-6]>/gi, '<p><b>');
1264+                               content = content.replace(/<\/h[1-6]>/gi, '</b></p>');
1265+                               content = content.replace(/<b>&#160;<\/b>/gi, '<b>&#160;&#160;</b>');
1266+                               content = content.replace(/^(&#160;)*/gi, '');
1267+                       }
1268+
1269+                       content = content.replace(/--list--/gi, ""); // Remove --list--
1270+
1271+                       if ((cb = tinyMCE.getParam("paste_insert_word_content_callback", "")) != "")
1272+                               content = eval(cb + "('after', content)");
1273+
1274+                       // Insert cleaned content
1275+                       tinyMCE.execCommand("mceInsertContent", false, content);
1276+
1277+                       if (tinyMCE.getParam('paste_force_cleanup_wordpaste', true))
1278+                               window.setTimeout('tinyMCE.execCommand("mceCleanup");', 1); // Do normal cleanup detached from this thread
1279+               }
1280+       },
1281+
1282+       _reEscape : function(s) {
1283+               var l = "?.\\*[](){}+^$:";
1284+               var o = "";
1285+
1286+               for (var i=0; i<s.length; i++) {
1287+                       var c = s.charAt(i);
1288+
1289+                       if (l.indexOf(c) != -1)
1290+                               o += '\\' + c;
1291+                       else
1292+                               o += c;
1293+               }
1294+
1295+               return o;
1296+       },
1297+
1298+       _convertMiddots : function(div, search, class_name) {
1299+               var mdot = String.fromCharCode(183);
1300+               var bull = String.fromCharCode(8226);
1301+
1302+               var nodes = div.getElementsByTagName("p");
1303+               var prevul;
1304+               for (var i=0; i<nodes.length; i++) {
1305+                       var p = nodes[i];
1306+
1307+                       // Is middot
1308+                       if (p.innerHTML.indexOf(search) == 0) {
1309+                               var ul = document.createElement("ul");
1310+
1311+                               if (class_name)
1312+                                       ul.className = class_name;
1313+
1314+                               // Add the first one
1315+                               var li = document.createElement("li");
1316+                               li.innerHTML = p.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--|&#160;', "gi"), '');
1317+                               ul.appendChild(li);
1318+
1319+                               // Add the rest
1320+                               var np = p.nextSibling;
1321+                               while (np) {
1322+                               // If the node is whitespace, then
1323+                               // ignore it and continue on.
1324+                               if (np.nodeType == 3 && new RegExp('^\\s$', 'm').test(np.nodeValue)) {
1325+                                       np = np.nextSibling;
1326+                                       continue;
1327+                               }
1328+
1329+                                       if (search == mdot) {
1330+                                               if (np.nodeType == 1 && new RegExp('^o(\\s+|&#160;)').test(np.innerHTML)) {
1331+                                                       // Second level of nesting
1332+                                                       if (!prevul) {
1333+                                                               prevul = ul;
1334+                                                               ul = document.createElement("ul");
1335+                                                               prevul.appendChild(ul);
1336+                                                       }
1337+                                                       np.innerHTML = np.innerHTML.replace(/^o/, '');
1338+                                               } else {
1339+                                                       // Pop the stack if we're going back up to the first level
1340+                                                       if (prevul) {
1341+                                                               ul = prevul;
1342+                                                               prevul = null;
1343+                                                       }
1344+                                                       // Not element or middot paragraph
1345+                                                       if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
1346+                                                               break;
1347+                                               }
1348+                                       } else {
1349+                                               // Not element or middot paragraph
1350+                                               if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
1351+                                                       break;
1352+                                       }
1353+
1354+                                       var cp = np.nextSibling;
1355+                                       var li = document.createElement("li");
1356+                                       li.innerHTML = np.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--|&#160;', "gi"), '');
1357+                                       np.parentNode.removeChild(np);
1358+                                       ul.appendChild(li);
1359+                                       np = cp;
1360+                               }
1361+
1362+                               p.parentNode.replaceChild(ul, p);
1363+
1364+                               return true;
1365+                       }
1366+               }
1367+
1368+               return false;
1369+       },
1370+
1371+       _clipboardHTML : function() {
1372+               var div = document.getElementById('_TinyMCE_clipboardHTML');
1373+
1374+               if (!div) {
1375+                       var div = document.createElement('DIV');
1376+                       div.id = '_TinyMCE_clipboardHTML';
1377+
1378+                       with (div.style) {
1379+                               visibility = 'hidden';
1380+                               overflow = 'hidden';
1381+                               position = 'absolute';
1382+                               width = 1;
1383+                               height = 1;
1384+                       }
1385+
1386+                       document.body.appendChild(div);
1387+               }
1388+
1389+               div.innerHTML = '';
1390+               var rng = document.body.createTextRange();
1391+               rng.moveToElementText(div);
1392+               rng.execCommand('Paste');
1393+               var html = div.innerHTML;
1394+               div.innerHTML = '';
1395+               return html;
1396+       }
1397+};
1398+
1399+tinyMCE.addPlugin("paste", TinyMCE_PastePlugin);
1400Index: wp-includes/js/tinymce/tiny_mce.js
1401===================================================================
1402--- wp-includes/js/tinymce/tiny_mce.js  (revision 4745)
1403+++ wp-includes/js/tinymce/tiny_mce.js  (working copy)
1404@@ -1223,9 +1223,9 @@
1405 
1406                                                if (!elm.hasChildNodes() && !re.test(elm.nodeName)) {
1407                                                        if (dre.test(elm.nodeName))
1408-                                                               elm.innerHTML = "&nbsp;&nbsp;";
1409+                                                               elm.innerHTML = "&#160;&#160;";
1410                                                        else
1411-                                                               elm.innerHTML = "&nbsp;";
1412+                                                               elm.innerHTML = "&#160;";
1413                                                }
1414                                        }
1415                                }
1416@@ -2059,11 +2059,11 @@
1417 
1418                                html = doc.body.innerHTML;
1419                                html = tinyMCE.regexpReplace(html, "<o:p><\/o:p>", "<br />");
1420-                               html = tinyMCE.regexpReplace(html, "<o:p>&nbsp;<\/o:p>", "");
1421+                               html = tinyMCE.regexpReplace(html, "<o:p>&#160;<\/o:p>", "");
1422                                html = tinyMCE.regexpReplace(html, "<st1:.*?>", "");
1423                                html = tinyMCE.regexpReplace(html, "<p><\/p>", "");
1424                                html = tinyMCE.regexpReplace(html, "<p><\/p>\r\n<p><\/p>", "");
1425-                               html = tinyMCE.regexpReplace(html, "<p>&nbsp;<\/p>", "<br />");
1426+                               html = tinyMCE.regexpReplace(html, "<p>&#160;<\/p>", "<br />");
1427                                html = tinyMCE.regexpReplace(html, "<p>\s*(<p>\s*)?", "<p>");
1428                                html = tinyMCE.regexpReplace(html, "<\/p>\s*(<\/p>\s*)?", "</p>");
1429                        }*/
1430@@ -3285,7 +3285,7 @@
1431 
1432                                if (tinyMCE.isGecko || tinyMCE.isOpera) {
1433                                        try {
1434-                                               // Is plain text or HTML, &amp;, &nbsp; etc will be encoded wrong in FF
1435+                                               // Is plain text or HTML, &amp;, &#160; etc will be encoded wrong in FF
1436                                                if (value.indexOf('<') == -1 && !value.match(/(&#38;|&#160;|&#60;|&#62;)/g)) {
1437                                                        var r = this.getRng();
1438                                                        var n = this.getDoc().createTextNode(tinyMCE.entityDecode(value));
1439@@ -3878,8 +3878,8 @@
1440 /* file:jscripts/tiny_mce/classes/TinyMCE_Cleanup.class.js */
1441 
1442 TinyMCE_Engine.prototype.cleanupHTMLCode = function(s) {
1443-       s = s.replace(new RegExp('<p \\/>', 'gi'), '<p>&nbsp;</p>');
1444-       s = s.replace(new RegExp('<p>\\s*<\\/p>', 'gi'), '<p>&nbsp;</p>');
1445+       s = s.replace(new RegExp('<p \\/>', 'gi'), '<p>&#160;</p>');
1446+       s = s.replace(new RegExp('<p>\\s*<\\/p>', 'gi'), '<p>&#160;</p>');
1447 
1448        // Fix close BR elements
1449        s = s.replace(new RegExp('<br>\\s*<\\/br>', 'gi'), '<br />');
1450@@ -4165,7 +4165,7 @@
1451 
1452                                if (!np) {
1453                                        np = d.createElement('li');
1454-                                       np.innerHTML = '&nbsp;';
1455+                                       np.innerHTML = '&#160;';
1456                                        np.appendChild(n);
1457                                        p.insertBefore(np, p.firstChild);
1458                                } else
1459@@ -4244,23 +4244,23 @@
1460                t3 = new Date().getTime();
1461 
1462        // Post processing
1463-       nb = tinyMCE.getParam('entity_encoding') == 'numeric' ? '&#160;' : '&nbsp;';
1464+       nb = tinyMCE.getParam('entity_encoding') == 'numeric' ? '&#160;' : '&#160;';
1465        h = h.replace(/<\/?(body|head|html)[^>]*>/gi, '');
1466        h = h.replace(new RegExp(' (rowspan="1"|colspan="1")', 'g'), '');
1467        h = h.replace(/<p><hr \/><\/p>/g, '<hr />');
1468-       h = h.replace(/<p>(&nbsp;|&#160;)<\/p><hr \/><p>(&nbsp;|&#160;)<\/p>/g, '<hr />');
1469+       h = h.replace(/<p>(&#160;|&#160;)<\/p><hr \/><p>(&#160;|&#160;)<\/p>/g, '<hr />');
1470        h = h.replace(/<td>\s*<br \/>\s*<\/td>/g, '<td>' + nb + '</td>');
1471        h = h.replace(/<p>\s*<br \/>\s*<\/p>/g, '<p>' + nb + '</p>');
1472        h = h.replace(/<br \/>$/, ''); // Remove last BR for Gecko
1473        h = h.replace(/<br \/><\/p>/g, '</p>'); // Remove last BR in P tags for Gecko
1474-       h = h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*(&nbsp;|&#160;)\s*<\/p>/g, '<p>' + nb + '</p>');
1475-       h = h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*<\/p>/g, '<p>' + nb + '</p>');
1476-       h = h.replace(/<p>\s*<br \/>\s*&nbsp;\s*<\/p>/g, '<p>' + nb + '</p>');
1477+       h = h.replace(/<p>\s*(&#160;|&#160;)\s*<br \/>\s*(&#160;|&#160;)\s*<\/p>/g, '<p>' + nb + '</p>');
1478+       h = h.replace(/<p>\s*(&#160;|&#160;)\s*<br \/>\s*<\/p>/g, '<p>' + nb + '</p>');
1479+       h = h.replace(/<p>\s*<br \/>\s*&#160;\s*<\/p>/g, '<p>' + nb + '</p>');
1480        h = h.replace(new RegExp('<a>(.*?)<\\/a>', 'g'), '$1');
1481        h = h.replace(/<p([^>]*)>\s*<\/p>/g, '<p$1>' + nb + '</p>');
1482 
1483        // Clean body
1484-       if (/^\s*(<br \/>|<p>&nbsp;<\/p>|<p>&#160;<\/p>|<p><\/p>)\s*$/.test(h))
1485+       if (/^\s*(<br \/>|<p>&#160;<\/p>|<p>&#160;<\/p>|<p><\/p>)\s*$/.test(h))
1486                h = '';
1487 
1488        // If preformatted
1489@@ -4277,7 +4277,7 @@
1490        }
1491 
1492        if (s.force_br_newlines)
1493-               h = h.replace(/<p>(&nbsp;|&#160;)<\/p>/g, '<br />');
1494+               h = h.replace(/<p>(&#160;|&#160;)<\/p>/g, '<br />');
1495 
1496        // Call custom cleanup code
1497        h = tinyMCE._customCleanup(inst, on_save ? "get_from_editor" : "insert_to_editor", h);
1498@@ -4378,7 +4378,7 @@
1499                        s.extended_valid_elements = '';
1500                }
1501 
1502-               this.fillStr = s.entity_encoding == "named" ? "&nbsp;" : "&#160;";
1503+               this.fillStr = s.entity_encoding == "named" ? "&#160;" : "&#160;";
1504                this.idCount = 0;
1505        },
1506 
1507@@ -5112,9 +5112,9 @@
1508                h = h.replace(/\s\/>/g, '>');
1509 
1510                // Since MSIE auto generated emtpy P tags some times we must tell it to keep the real ones
1511-               h = h.replace(/<p([^>]*)>\u00A0?<\/p>/gi, '<p$1 mce_keep="true">&nbsp;</p>'); // Keep empty paragraphs
1512-               h = h.replace(/<p([^>]*)>\s*&nbsp;\s*<\/p>/gi, '<p$1 mce_keep="true">&nbsp;</p>'); // Keep empty paragraphs
1513-               h = h.replace(/<p([^>]*)>\s+<\/p>/gi, '<p$1 mce_keep="true">&nbsp;</p>'); // Keep empty paragraphs
1514+               h = h.replace(/<p([^>]*)>\u00A0?<\/p>/gi, '<p$1 mce_keep="true">&#160;</p>'); // Keep empty paragraphs
1515+               h = h.replace(/<p([^>]*)>\s*&#160;\s*<\/p>/gi, '<p$1 mce_keep="true">&#160;</p>'); // Keep empty paragraphs
1516+               h = h.replace(/<p([^>]*)>\s+<\/p>/gi, '<p$1 mce_keep="true">&#160;</p>'); // Keep empty paragraphs
1517 
1518                // Remove first comment
1519                e.innerHTML = tinyMCE.uniqueTag + h;
1520@@ -6789,11 +6789,11 @@
1521 
1522                                // Check if it's a empty paragraph
1523                                if (isEmpty(paraBefore))
1524-                                       paraBefore.innerHTML = "&nbsp;";
1525+                                       paraBefore.innerHTML = "&#160;";
1526 
1527                                // Check if it's a empty paragraph
1528                                if (isEmpty(paraAfter))
1529-                                       paraAfter.innerHTML = "&nbsp;";
1530+                                       paraAfter.innerHTML = "&#160;";
1531 
1532                                // Delete old contents
1533                                rng.deleteContents();
1534@@ -6815,7 +6815,7 @@
1535 
1536                                //tinyMCE.debug("1: ", paraBefore.innerHTML, paraAfter.innerHTML);
1537                        } else {
1538-                               body.innerHTML = "<" + blockName + ">&nbsp;</" + blockName + "><" + blockName + ">&nbsp;</" + blockName + ">";
1539+                               body.innerHTML = "<" + blockName + ">&#160;</" + blockName + "><" + blockName + ">&#160;</" + blockName + ">";
1540                                paraAfter = body.childNodes[1];
1541                        }
1542 
1543@@ -6853,11 +6853,11 @@
1544 
1545                // Check if it's a empty paragraph
1546                if (isEmpty(paraBefore))
1547-                       paraBefore.innerHTML = "&nbsp;";
1548+                       paraBefore.innerHTML = "&#160;";
1549 
1550                // Check if it's a empty paragraph
1551                if (isEmpty(paraAfter))
1552-                       paraAfter.innerHTML = "&nbsp;";
1553+                       paraAfter.innerHTML = "&#160;";
1554 
1555                // Create a range around everything
1556                rng = doc.createRange();
1557Index: wp-includes/js/tinymce/wp-mce-help.php
1558===================================================================
1559--- wp-includes/js/tinymce/wp-mce-help.php      (revision 4745)
1560+++ wp-includes/js/tinymce/wp-mce-help.php      (working copy)
1561@@ -155,8 +155,8 @@
1562                <tr><th>k</th><td><strike><?php _e('Strikethrough') ?></strike></td><th>r</th><td class="align right"><?php _e('Align Right') ?></td></tr>
1563                <tr><th>l</th><td><b>&bull;</b> <?php _e('List') ?></td><th>a</th><td><?php _e('Insert <span class="anchor">Anchor</span>') ?></td></tr>
1564                <tr><th>o</th><td>1. <?php _e('List') ?></td><th>s</th><td><?php _e('Unlink Anchor') ?></td></tr>
1565-               <tr><th>q</th><td>&rarr;<?php _e('Quote/Indent') ?></td><th>m</th><td><?php _e('Insert Image') ?></td></tr>
1566-               <tr><th>w</th><td>&larr;<?php _e('Unquote/Outdent') ?></td><th>t</th><td><?php _e('Insert "More" Tag') ?></td></tr>
1567+               <tr><th>q</th><td>&#8594;<?php _e('Quote/Indent') ?></td><th>m</th><td><?php _e('Insert Image') ?></td></tr>
1568+               <tr><th>w</th><td>&#8592;<?php _e('Unquote/Outdent') ?></td><th>t</th><td><?php _e('Insert "More" Tag') ?></td></tr>
1569                <tr><th>u</th><td><?php _e('Undo') ?></td><th>e</th><td><?php _e('Edit HTML') ?></td></tr>
1570                <tr><th>y</th><td><?php _e('Redo') ?></td><th>h</th><td><?php _e('Open Help') ?></td></tr>
1571        </table>
1572Index: wp-includes/js/tinymce/themes/advanced/jscripts/charmap.js
1573===================================================================
1574--- wp-includes/js/tinymce/themes/advanced/jscripts/charmap.js  (revision 4745)
1575+++ wp-includes/js/tinymce/themes/advanced/jscripts/charmap.js  (working copy)
1576@@ -292,7 +292,7 @@
1577        if (cols % charsPerRow > 0) {
1578                var padd = charsPerRow - (cols % charsPerRow);
1579                for (var i=0; i<padd-1; i++)
1580-                       html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap">&nbsp;</td>';
1581+                       html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap">&#160;</td>';
1582        }
1583        html += '</tr></table>';
1584        document.write(html);
1585Index: wp-includes/js/tinymce/themes/advanced/about.htm
1586===================================================================
1587--- wp-includes/js/tinymce/themes/advanced/about.htm    (revision 4745)
1588+++ wp-includes/js/tinymce/themes/advanced/about.htm    (working copy)
1589@@ -34,7 +34,7 @@
1590                                        <div id="plugintablecontainer">
1591                                        </div>
1592 
1593-                                       <p>&nbsp;</p>
1594+                                       <p>&#160;</p>
1595                                </div>
1596                        </div>
1597 
1598Index: wp-includes/js/tinymce/themes/advanced/charmap.htm
1599===================================================================
1600--- wp-includes/js/tinymce/themes/advanced/charmap.htm  (revision 4745)
1601+++ wp-includes/js/tinymce/themes/advanced/charmap.htm  (working copy)
1602@@ -18,10 +18,10 @@
1603         <td width="100" align="center" valign="top">
1604             <table border="0" cellpadding="0" cellspacing="0" width="100" style="height: 100px">
1605                 <tr>
1606-                    <td class="charmapOver" style="font-size: 40px; height:80px;" id="codeV">&nbsp;</td>
1607+                    <td class="charmapOver" style="font-size: 40px; height:80px;" id="codeV">&#160;</td>
1608                 </tr>
1609                 <tr>
1610-                    <td style="font-size: 10px; font-family: Arial, Helvetica, sans-serif; text-align:center;" id="codeN">&nbsp;</td>
1611+                    <td style="font-size: 10px; font-family: Arial, Helvetica, sans-serif; text-align:center;" id="codeN">&#160;</td>
1612                 </tr>
1613             </table>
1614         </td>
1615@@ -33,16 +33,16 @@
1616                     <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">HTML-Code</td>
1617                 </tr>
1618                 <tr>
1619-                    <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeA" align="center">&nbsp;</td>
1620+                    <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeA" align="center">&#160;</td>
1621                 </tr>
1622                 <tr>
1623-                    <td style="font-size: 1px;">&nbsp;</td>
1624+                    <td style="font-size: 1px;">&#160;</td>
1625                 </tr>
1626                 <tr>
1627                     <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">NUM-Code</td>
1628                 </tr>
1629                 <tr>
1630-                    <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeB" align="center">&nbsp;</td>
1631+                    <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeB" align="center">&#160;</td>
1632                 </tr>
1633             </table>
1634         </td>
1635Index: wp-includes/js/tinymce/themes/advanced/link.htm
1636===================================================================
1637--- wp-includes/js/tinymce/themes/advanced/link.htm     (revision 4745)
1638+++ wp-includes/js/tinymce/themes/advanced/link.htm     (working copy)
1639@@ -24,7 +24,7 @@
1640             <td><table border="0" cellspacing="0" cellpadding="0">
1641                                  <tr>
1642                                        <td><input id="href" name="href" type="text" value="" style="width: 200px" /></td>
1643-                                       <td id="hrefbrowsercontainer">&nbsp;</td>
1644+                                       <td id="hrefbrowsercontainer">&#160;</td>
1645                                  </tr>
1646                                </table></td>
1647           </tr>
1648Index: wp-includes/js/tinymce/themes/advanced/image.htm
1649===================================================================
1650--- wp-includes/js/tinymce/themes/advanced/image.htm    (revision 4745)
1651+++ wp-includes/js/tinymce/themes/advanced/image.htm    (working copy)
1652@@ -23,7 +23,7 @@
1653             <td><table border="0" cellspacing="0" cellpadding="0">
1654                 <tr>
1655                   <td><input id="src" name="src" type="text" value="" style="width: 200px" onchange="getImageData();"></td>
1656-                  <td id="srcbrowsercontainer">&nbsp;</td>
1657+                  <td id="srcbrowsercontainer">&#160;</td>
1658                 </tr>
1659               </table></td>
1660           </tr>
1661Index: wp-includes/js/tinymce/themes/advanced/editor_template.js
1662===================================================================
1663--- wp-includes/js/tinymce/themes/advanced/editor_template.js   (revision 4745)
1664+++ wp-includes/js/tinymce/themes/advanced/editor_template.js   (working copy)
1665@@ -909,7 +909,7 @@
1666                                html += '<a title="' + nodeData + '" href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" target="_self" class="mcePathItem">' + nodeName + '</a>';
1667 
1668                                if (i > 0) {
1669-                                       html += " &raquo; ";
1670+                                       html += " &#187; ";
1671                                }
1672                        }
1673 
1674Index: wp-includes/classes.php
1675===================================================================
1676--- wp-includes/classes.php     (revision 4745)
1677+++ wp-includes/classes.php     (working copy)
1678@@ -536,7 +536,7 @@
1679        var $db_fields = array ('parent' => 'post_parent', 'id' => 'ID'); //TODO: decouple this
1680 
1681        function start_el($output, $page, $depth, $args) {
1682-                               $pad = str_repeat('&nbsp;', $depth * 3);
1683+                               $pad = str_repeat('&#160;', $depth * 3);
1684 
1685                                $output .= "\t<option value=\"$page->ID\"";
1686                                if ( $page->ID == $args['selected'] )
1687@@ -651,7 +651,7 @@
1688        var $db_fields = array ('parent' => 'category_parent', 'id' => 'cat_ID'); //TODO: decouple this
1689 
1690        function start_el($output, $category, $depth, $args) {
1691-               $pad = str_repeat('&nbsp;', $depth * 3);
1692+               $pad = str_repeat('&#160;', $depth * 3);
1693 
1694                $cat_name = apply_filters('list_cats', $category->cat_name, $category);
1695                $output .= "\t<option value=\"".$category->cat_ID."\"";
1696@@ -660,10 +660,10 @@
1697                $output .= '>';
1698                $output .= $pad.$cat_name;
1699                if ( $args['show_count'] )
1700-                       $output .= '&nbsp;&nbsp;('. $category->category_count .')';
1701+                       $output .= '&#160;&#160;('. $category->category_count .')';
1702                if ( $args['show_last_update'] ) {
1703                        $format = 'Y-m-d';
1704-                       $output .= '&nbsp;&nbsp;' . gmdate($format, $category->last_update_timestamp);
1705+                       $output .= '&#160;&#160;' . gmdate($format, $category->last_update_timestamp);
1706                }
1707                $output .= "</option>\n";
1708 
1709Index: wp-includes/functions.php
1710===================================================================
1711--- wp-includes/functions.php   (revision 4745)
1712+++ wp-includes/functions.php   (working copy)
1713@@ -1207,7 +1207,7 @@
1714        header('Content-Type: text/html; charset=utf-8');
1715 
1716        if ( empty($title) )
1717-               $title = __('WordPress &rsaquo; Error');
1718+               $title = __('WordPress &#8250; Error');
1719 
1720        if ( strstr($_SERVER['PHP_SELF'], 'wp-admin') )
1721                $admin_dir = '';
1722Index: wp-content/themes/classic/comments.php
1723===================================================================
1724--- wp-content/themes/classic/comments.php      (revision 4745)
1725+++ wp-content/themes/classic/comments.php      (working copy)
1726@@ -4,7 +4,7 @@
1727 
1728 <h2 id="comments"><?php comments_number(__('No Comments'), __('1 Comment'), __('% Comments')); ?>
1729 <?php if ( comments_open() ) : ?>
1730-       <a href="#postcomment" title="<?php _e("Leave a comment"); ?>">&raquo;</a>
1731+       <a href="#postcomment" title="<?php _e("Leave a comment"); ?>">&#187;</a>
1732 <?php endif; ?>
1733 </h2>
1734 
1735@@ -42,7 +42,7 @@
1736 
1737 <?php if ( $user_ID ) : ?>
1738 
1739-<p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log out of this account') ?>">Logout &raquo;</a></p>
1740+<p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log out of this account') ?>">Logout &#187;</a></p>
1741 
1742 <?php else : ?>
1743 
1744Index: wp-content/themes/classic/index.php
1745===================================================================
1746--- wp-content/themes/classic/index.php (revision 4745)
1747+++ wp-content/themes/classic/index.php (working copy)
1748@@ -27,6 +27,6 @@
1749 <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
1750 <?php endif; ?>
1751 
1752-<?php posts_nav_link(' &#8212; ', __('&laquo; Previous Page'), __('Next Page &raquo;')); ?>
1753+<?php posts_nav_link(' &#8212; ', __('&laquo; Previous Page'), __('Next Page &#187;')); ?>
1754 
1755 <?php get_footer(); ?>
1756Index: wp-content/themes/default/search.php
1757===================================================================
1758--- wp-content/themes/default/search.php        (revision 4745)
1759+++ wp-content/themes/default/search.php        (working copy)
1760@@ -8,7 +8,7 @@
1761 
1762                <div class="navigation">
1763                        <div class="alignleft"><?php next_posts_link('&laquo; Previous Entries') ?></div>
1764-                       <div class="alignright"><?php previous_posts_link('Next Entries &raquo;') ?></div>
1765+                       <div class="alignright"><?php previous_posts_link('Next Entries &#187;') ?></div>
1766                </div>
1767 
1768 
1769@@ -25,7 +25,7 @@
1770 
1771                <div class="navigation">
1772                        <div class="alignleft"><?php next_posts_link('&laquo; Previous Entries') ?></div>
1773-                       <div class="alignright"><?php previous_posts_link('Next Entries &raquo;') ?></div>
1774+                       <div class="alignright"><?php previous_posts_link('Next Entries &#187;') ?></div>
1775                </div>
1776 
1777        <?php else : ?>
1778Index: wp-content/themes/default/index.php
1779===================================================================
1780--- wp-content/themes/default/index.php (revision 4745)
1781+++ wp-content/themes/default/index.php (working copy)
1782@@ -11,7 +11,7 @@
1783                                <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>
1784 
1785                                <div class="entry">
1786-                                       <?php the_content('Read the rest of this entry &raquo;'); ?>
1787+                                       <?php the_content('Read the rest of this entry &#187;'); ?>
1788                                </div>
1789 
1790                                <p class="postmetadata">Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?></p>
1791@@ -21,7 +21,7 @@
1792 
1793                <div class="navigation">
1794                        <div class="alignleft"><?php next_posts_link('&laquo; Previous Entries') ?></div>
1795-                       <div class="alignright"><?php previous_posts_link('Next Entries &raquo;') ?></div>
1796+                       <div class="alignright"><?php previous_posts_link('Next Entries &#187;') ?></div>
1797                </div>
1798 
1799        <?php else : ?>
1800Index: wp-content/themes/default/functions.php
1801===================================================================
1802--- wp-content/themes/default/functions.php     (revision 4745)
1803+++ wp-content/themes/default/functions.php     (working copy)
1804@@ -1,397 +1,397 @@
1805-<?php
1806
1807-
1808
1809-function kubrick_head() {
1810
1811-       $head = "<style type='text/css'>\n<!--";
1812
1813-       $output = '';
1814
1815-       if ( kubrick_header_image() ) {
1816
1817-               $url =  kubrick_header_image_url() ;
1818
1819-               $output .= "#header { background: url('$url') no-repeat bottom center; }\n";
1820
1821-       }
1822
1823-       if ( false !== ( $color = kubrick_header_color() ) ) {
1824
1825-               $output .= "#headerimg h1 a, #headerimg h1 a:visited, #headerimg .description { color: $color; }\n";
1826
1827-       }
1828
1829-       if ( false !== ( $display = kubrick_header_display() ) ) {
1830
1831-               $output .= "#headerimg { display: $display }\n";
1832
1833-       }
1834
1835-       $foot = "--></style>\n";
1836
1837-       if ( '' != $output )
1838
1839-               echo $head . $output . $foot;
1840
1841-}
1842
1843-
1844
1845-add_action('wp_head', 'kubrick_head');
1846
1847-
1848
1849-function kubrick_header_image() {
1850
1851-       return apply_filters('kubrick_header_image', get_option('kubrick_header_image'));
1852
1853-}
1854
1855-
1856
1857-function kubrick_upper_color() {
1858
1859-       if ( strstr( $url = kubrick_header_image_url(), 'header-img.php?' ) ) {
1860
1861-               parse_str(substr($url, strpos($url, '?') + 1), $q);
1862
1863-               return $q['upper'];
1864
1865-       } else
1866
1867-               return '69aee7';
1868
1869-}
1870
1871-
1872
1873-function kubrick_lower_color() {
1874
1875-       if ( strstr( $url = kubrick_header_image_url(), 'header-img.php?' ) ) {
1876
1877-               parse_str(substr($url, strpos($url, '?') + 1), $q);
1878
1879-               return $q['lower'];
1880
1881-       } else
1882
1883-               return '4180b6';
1884
1885-}
1886
1887-
1888
1889-function kubrick_header_image_url() {
1890
1891-       if ( $image = kubrick_header_image() )
1892
1893-               $url = get_template_directory_uri() . '/images/' . $image;
1894
1895-       else
1896
1897-               $url = get_template_directory_uri() . '/images/kubrickheader.jpg';
1898
1899-
1900
1901-       return $url;
1902
1903-}
1904
1905-
1906
1907-function kubrick_header_color() {
1908
1909-       return apply_filters('kubrick_header_color', get_option('kubrick_header_color'));
1910
1911-}
1912
1913-
1914
1915-function kubrick_header_color_string() {
1916
1917-       $color = kubrick_header_color();
1918
1919-       if ( false === $color )
1920
1921-               return 'white';
1922
1923-
1924
1925-       return $color;
1926
1927-}
1928
1929-
1930
1931-function kubrick_header_display() {
1932
1933-       return apply_filters('kubrick_header_display', get_option('kubrick_header_display'));
1934
1935-}
1936
1937-
1938
1939-function kubrick_header_display_string() {
1940
1941-       $display = kubrick_header_display();
1942
1943-       return $display ? $display : 'inline';
1944
1945-}
1946
1947-
1948
1949-add_action('admin_menu', 'kubrick_add_theme_page');
1950
1951-
1952
1953-function kubrick_add_theme_page() {
1954
1955-       if ( $_GET['page'] == basename(__FILE__) ) {
1956
1957-               if ( 'save' == $_REQUEST['action'] ) {
1958
1959-                       if ( isset($_REQUEST['njform']) ) {
1960
1961-                               if ( isset($_REQUEST['defaults']) ) {
1962
1963-                                       delete_option('kubrick_header_image');
1964
1965-                                       delete_option('kubrick_header_color');
1966
1967-                                       delete_option('kubrick_header_display');
1968
1969-                               } else {
1970
1971-                                       if ( '' == $_REQUEST['njfontcolor'] )
1972
1973-                                               delete_option('kubrick_header_color');
1974
1975-                                       else
1976
1977-                                               update_option('kubrick_header_color', $_REQUEST['njfontcolor']);
1978
1979-
1980
1981-                                       if ( preg_match('/[0-9A-F]{6}|[0-9A-F]{3}/i', $_REQUEST['njuppercolor'], $uc) && preg_match('/[0-9A-F]{6}|[0-9A-F]{3}/i', $_REQUEST['njlowercolor'], $lc) ) {
1982
1983-                                               $uc = ( strlen($uc[0]) == 3 ) ? $uc[0]{0}.$uc[0]{0}.$uc[0]{1}.$uc[0]{1}.$uc[0]{2}.$uc[0]{2} : $uc[0];
1984
1985-                                               $lc = ( strlen($lc[0]) == 3 ) ? $lc[0]{0}.$lc[0]{0}.$lc[0]{1}.$lc[0]{1}.$lc[0]{2}.$lc[0]{2} : $lc[0];
1986
1987-                                               update_option('kubrick_header_image', "header-img.php?upper=$uc&amp;lower=$lc");
1988
1989-                                       }
1990
1991-
1992
1993-                                       if ( isset($_REQUEST['toggledisplay']) ) {
1994
1995-                                               if ( false === get_option('kubrick_header_display') )
1996
1997-                                                       update_option('kubrick_header_display', 'none');
1998
1999-                                               else
2000
2001-                                                       delete_option('kubrick_header_display');
2002
2003-                                       }
2004
2005-                               }
2006
2007-                       } else {
2008
2009-
2010
2011-                               if ( isset($_REQUEST['headerimage']) ) {
2012
2013-                                       if ( '' == $_REQUEST['headerimage'] )
2014
2015-                                               delete_option('kubrick_header_image');
2016
2017-                                       else
2018
2019-                                               update_option('kubrick_header_image', $_REQUEST['headerimage']);
2020
2021-                               }
2022
2023-
2024
2025-                               if ( isset($_REQUEST['fontcolor']) ) {
2026
2027-                                       if ( '' == $_REQUEST['fontcolor'] )
2028
2029-                                               delete_option('kubrick_header_color');
2030
2031-                                       else
2032
2033-                                               update_option('kubrick_header_color', $_REQUEST['fontcolor']);
2034
2035-                               }
2036
2037-
2038
2039-                               if ( isset($_REQUEST['fontdisplay']) ) {
2040
2041-                                       if ( '' == $_REQUEST['fontdisplay'] || 'inline' == $_REQUEST['fontdisplay'] )
2042
2043-                                               delete_option('kubrick_header_display');
2044
2045-                                       else
2046
2047-                                               update_option('kubrick_header_display', 'none');
2048
2049-                               }
2050
2051-                       }
2052
2053-                       //print_r($_REQUEST);
2054
2055-                       wp_redirect("themes.php?page=functions.php&saved=true");
2056
2057-                       die;
2058
2059-               }
2060
2061-               add_action('admin_head', 'kubrick_theme_page_head');
2062
2063-       }
2064
2065-       add_theme_page('Customize Header', 'Header Image and Color', 'edit_themes', basename(__FILE__), 'kubrick_theme_page');
2066
2067-}
2068
2069-
2070
2071-function kubrick_theme_page_head() {
2072
2073-?>
2074
2075-<script type="text/javascript" src="../wp-includes/js/colorpicker.js"></script>
2076
2077-<script type='text/javascript'>
2078
2079-// <![CDATA[
2080
2081-       function pickColor(color) {
2082
2083-               ColorPicker_targetInput.value = color;
2084
2085-               kUpdate(ColorPicker_targetInput.id);
2086
2087-       }
2088
2089-       function PopupWindow_populate(contents) {
2090
2091-               contents += '<br /><p style="text-align:center;margin-top:0px;"><input type="button" value="Close Color Picker" onclick="cp.hidePopup(\'prettyplease\')"></input></p>';
2092
2093-               this.contents = contents;
2094
2095-               this.populated = false;
2096
2097-       }
2098
2099-       function PopupWindow_hidePopup(magicword) {
2100
2101-               if ( magicword != 'prettyplease' )
2102
2103-                       return false;
2104
2105-               if (this.divName != null) {
2106
2107-                       if (this.use_gebi) {
2108
2109-                               document.getElementById(this.divName).style.visibility = "hidden";
2110
2111-                       }
2112
2113-                       else if (this.use_css) {
2114
2115-                               document.all[this.divName].style.visibility = "hidden";
2116
2117-                       }
2118
2119-                       else if (this.use_layers) {
2120
2121-                               document.layers[this.divName].visibility = "hidden";
2122
2123-                       }
2124
2125-               }
2126
2127-               else {
2128
2129-                       if (this.popupWindow && !this.popupWindow.closed) {
2130
2131-                               this.popupWindow.close();
2132
2133-                               this.popupWindow = null;
2134
2135-                       }
2136
2137-               }
2138
2139-               return false;
2140
2141-       }
2142
2143-       function colorSelect(t,p) {
2144
2145-               if ( cp.p == p && document.getElementById(cp.divName).style.visibility != "hidden" )
2146
2147-                       cp.hidePopup('prettyplease');
2148
2149-               else {
2150
2151-                       cp.p = p;
2152
2153-                       cp.select(t,p);
2154
2155-               }
2156
2157-       }
2158
2159-       function PopupWindow_setSize(width,height) {
2160
2161-               this.width = 162;
2162
2163-               this.height = 210;
2164
2165-       }
2166
2167-
2168
2169-       var cp = new ColorPicker();
2170
2171-       function advUpdate(val, obj) {
2172
2173-               document.getElementById(obj).value = val;
2174
2175-               kUpdate(obj);
2176
2177-       }
2178
2179-       function kUpdate(oid) {
2180
2181-               if ( 'uppercolor' == oid || 'lowercolor' == oid ) {
2182
2183-                       uc = document.getElementById('uppercolor').value.replace('#', '');
2184
2185-                       lc = document.getElementById('lowercolor').value.replace('#', '');
2186
2187-                       hi = document.getElementById('headerimage');
2188
2189-                       hi.value = 'header-img.php?upper='+uc+'&lower='+lc;
2190
2191-                       document.getElementById('header').style.background = 'url("<?php echo get_template_directory_uri(); ?>/images/'+hi.value+'") center no-repeat';
2192
2193-                       document.getElementById('advuppercolor').value = '#'+uc;
2194
2195-                       document.getElementById('advlowercolor').value = '#'+lc;
2196
2197-               }
2198
2199-               if ( 'fontcolor' == oid ) {
2200
2201-                       document.getElementById('header').style.color = document.getElementById('fontcolor').value;
2202
2203-                       document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value;
2204
2205-               }
2206
2207-               if ( 'fontdisplay' == oid ) {
2208
2209-                       document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
2210
2211-               }
2212
2213-       }
2214
2215-       function toggleDisplay() {
2216
2217-               td = document.getElementById('fontdisplay');
2218
2219-               td.value = ( td.value == 'none' ) ? 'inline' : 'none';
2220
2221-               kUpdate('fontdisplay');
2222
2223-       }
2224
2225-       function toggleAdvanced() {
2226
2227-               a = document.getElementById('jsAdvanced');
2228
2229-               if ( a.style.display == 'none' )
2230
2231-                       a.style.display = 'block';
2232
2233-               else
2234
2235-                       a.style.display = 'none';
2236
2237-       }
2238
2239-       function kDefaults() {
2240
2241-               document.getElementById('headerimage').value = '';
2242
2243-               document.getElementById('advuppercolor').value = document.getElementById('uppercolor').value = '#69aee7';
2244
2245-               document.getElementById('advlowercolor').value = document.getElementById('lowercolor').value = '#4180b6';
2246
2247-               document.getElementById('header').style.background = 'url("<?php echo get_template_directory_uri(); ?>/images/kubrickheader.jpg") center no-repeat';
2248
2249-               document.getElementById('header').style.color = '#FFFFFF';
2250
2251-               document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value = '';
2252
2253-               document.getElementById('fontdisplay').value = 'inline';
2254
2255-               document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
2256
2257-       }
2258
2259-       function kRevert() {
2260
2261-               document.getElementById('headerimage').value = '<?php echo kubrick_header_image(); ?>';
2262
2263-               document.getElementById('advuppercolor').value = document.getElementById('uppercolor').value = '#<?php echo kubrick_upper_color(); ?>';
2264
2265-               document.getElementById('advlowercolor').value = document.getElementById('lowercolor').value = '#<?php echo kubrick_lower_color(); ?>';
2266
2267-               document.getElementById('header').style.background = 'url("<?php echo kubrick_header_image_url(); ?>") center no-repeat';
2268
2269-               document.getElementById('header').style.color = '';
2270
2271-               document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value = '<?php echo kubrick_header_color_string(); ?>';
2272
2273-               document.getElementById('fontdisplay').value = '<?php echo kubrick_header_display_string(); ?>';
2274
2275-               document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
2276
2277-       }
2278
2279-       function kInit() {
2280
2281-               document.getElementById('jsForm').style.display = 'block';
2282
2283-               document.getElementById('nonJsForm').style.display = 'none';
2284
2285-       }
2286
2287-       addLoadEvent(kInit);
2288
2289-// ]]>
2290
2291-</script>
2292
2293-<style type='text/css'>
2294
2295-       #headwrap {
2296
2297-               text-align: center;
2298
2299-       }
2300
2301-       #kubrick-header {
2302
2303-               font-size: 80%;
2304
2305-       }
2306
2307-       #kubrick-header .hibrowser {
2308
2309-               width: 780px;
2310
2311-               height: 260px;
2312
2313-               overflow: scroll;
2314
2315-       }
2316
2317-       #kubrick-header #hitarget {
2318
2319-               display: none;
2320
2321-       }
2322
2323-       #kubrick-header #header h1 {
2324
2325-               font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
2326
2327-               font-weight: bold;
2328
2329-               font-size: 4em;
2330
2331-               text-align: center;
2332
2333-               padding-top: 70px;
2334
2335-               margin: 0;
2336
2337-       }
2338
2339-
2340
2341-       #kubrick-header #header .description {
2342
2343-               font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
2344
2345-               font-size: 1.2em;
2346
2347-               text-align: center;
2348
2349-       }
2350
2351-       #kubrick-header #header {
2352
2353-               text-decoration: none;
2354
2355-               color: <?php echo kubrick_header_color_string(); ?>;
2356
2357-               padding: 0;
2358
2359-               margin: 0;
2360
2361-               height: 200px;
2362
2363-               text-align: center;
2364
2365-               background: url('<?php echo kubrick_header_image_url(); ?>') center no-repeat;
2366
2367-       }
2368
2369-       #kubrick-header #headerimg {
2370
2371-               margin: 0;
2372
2373-               height: 200px;
2374
2375-               width: 100%;
2376
2377-               display: <?php echo kubrick_header_display_string(); ?>;
2378
2379-       }
2380
2381-       #jsForm {
2382
2383-               display: none;
2384
2385-               text-align: center;
2386
2387-       }
2388
2389-       #jsForm input.submit, #jsForm input.button, #jsAdvanced input.button {
2390
2391-               padding: 0px;
2392
2393-               margin: 0px;
2394
2395-       }
2396
2397-       #advanced {
2398
2399-               text-align: center;
2400
2401-               width: 620px;
2402
2403-       }
2404
2405-       html>body #advanced {
2406
2407-               text-align: center;
2408
2409-               position: relative;
2410
2411-               left: 50%;
2412
2413-               margin-left: -380px;
2414
2415-       }
2416
2417-       #jsAdvanced {
2418
2419-               text-align: right;
2420
2421-       }
2422
2423-       #nonJsForm {
2424
2425-               position: relative;
2426
2427-               text-align: left;
2428
2429-               margin-left: -370px;
2430
2431-               left: 50%;
2432
2433-       }
2434
2435-       #nonJsForm label {
2436
2437-               padding-top: 6px;
2438
2439-               padding-right: 5px;
2440
2441-               float: left;
2442
2443-               width: 100px;
2444
2445-               text-align: right;
2446
2447-       }
2448
2449-       .defbutton {
2450
2451-               font-weight: bold;
2452
2453-       }
2454
2455-       .zerosize {
2456
2457-               width: 0px;
2458
2459-               height: 0px;
2460
2461-               overflow: hidden;
2462
2463-       }
2464
2465-       #colorPickerDiv a, #colorPickerDiv a:hover {
2466
2467-               padding: 1px;
2468
2469-               text-decoration: none;
2470
2471-               border-bottom: 0px;
2472
2473-       }
2474
2475-</style>
2476
2477-<?php
2478
2479-}
2480
2481-
2482
2483-function kubrick_theme_page() {
2484
2485-       if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>Options saved.</strong></p></div>';
2486
2487-?>
2488
2489-<div class='wrap'>
2490
2491-       <div id="kubrick-header">
2492
2493-               <h2>Header Image and Color</h2>
2494
2495-               <div id="headwrap">
2496
2497-                       <div id="header">
2498
2499-                               <div id="headerimg">
2500
2501-                                       <h1><?php bloginfo('name'); ?></h1>
2502
2503-                                       <div class="description"><?php bloginfo('description'); ?></div>
2504
2505-                               </div>
2506
2507-                       </div>
2508
2509-               </div>
2510
2511-               <br />
2512
2513-               <div id="nonJsForm">
2514
2515-                       <form method="post" action="">
2516
2517-                               <div class="zerosize"><input type="submit" name="defaultsubmit" value="Save" /></div>
2518
2519-                               <label for="njfontcolor">Font Color:</label><input type="text" name="njfontcolor" id="njfontcolor" value="<?php echo kubrick_header_color(); ?>" /> Any CSS color (<code>red</code> or <code>#FF0000</code> or <code>rgb(255, 0, 0)</code>)<br />
2520
2521-                               <label for="njuppercolor">Upper Color:</label><input type="text" name="njuppercolor" id="njuppercolor" value="#<?php echo kubrick_upper_color(); ?>" /> HEX only (<code>#FF0000</code> or <code>#F00</code>)<br />
2522
2523-                               <label for="njlowercolor">Lower Color:</label><input type="text" name="njlowercolor" id="njlowercolor" value="#<?php echo kubrick_lower_color(); ?>" /> HEX only (<code>#FF0000</code> or <code>#F00</code>)<br />
2524
2525-                               <input type="hidden" name="hi" id="hi" value="<?php echo kubrick_header_image(); ?>" />
2526
2527-                               <input type="submit" name="toggledisplay" id="toggledisplay" value="Toggle Text" />
2528
2529-                               <input type="submit" name="defaults" value="Use Defaults" />
2530
2531-                               <input type="submit" class="defbutton" name="submitform" value="&nbsp;&nbsp;Save&nbsp;&nbsp;" />
2532
2533-                               <input type="hidden" name="action" value="save" />
2534
2535-                               <input type="hidden" name="njform" value="true" />
2536
2537-                       </form>
2538
2539-               </div>
2540
2541-               <div id="jsForm">
2542
2543-                       <form style="display:inline;" method="post" name="hicolor" id="hicolor" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
2544
2545-                               <input type="button" onclick="tgt=document.getElementById('fontcolor');colorSelect(tgt,'pick1');return false;" name="pick1" id="pick1" value="Font Color"></input>
2546
2547-                               <input type="button" onclick="tgt=document.getElementById('uppercolor');colorSelect(tgt,'pick2');return false;" name="pick2" id="pick2" value="Upper Color"></input>
2548
2549-                               <input type="button" onclick="tgt=document.getElementById('lowercolor');colorSelect(tgt,'pick3');return false;" name="pick3" id="pick3" value="Lower Color"></input>
2550
2551-                               <input type="button" name="revert" value="Revert" onclick="kRevert()" />
2552
2553-                               <input type="button" value="Advanced" onclick="toggleAdvanced()" />
2554
2555-                               <input type="hidden" name="action" value="save" />
2556
2557-                               <input type="hidden" name="fontdisplay" id="fontdisplay" value="<?php echo kubrick_header_display(); ?>" />
2558
2559-                               <input type="hidden" name="fontcolor" id="fontcolor" value="<?php echo kubrick_header_color(); ?>" />
2560
2561-                               <input type="hidden" name="uppercolor" id="uppercolor" value="<?php echo kubrick_upper_color(); ?>" />
2562
2563-                               <input type="hidden" name="lowercolor" id="lowercolor" value="<?php echo kubrick_lower_color(); ?>" />
2564
2565-                               <input type="hidden" name="headerimage" id="headerimage" value="<?php echo kubrick_header_image(); ?>" />
2566
2567-                               <p class="submit"><input type="submit" name="submitform" class="defbutton" value="<?php _e('Update Header &raquo;'); ?>" onclick="cp.hidePopup('prettyplease')" /></p>
2568
2569-                       </form>
2570
2571-                       <div id="colorPickerDiv" style="z-index: 100;background:#eee;border:1px solid #ccc;position:absolute;visibility:hidden;"> </div>
2572
2573-                       <div id="advanced">
2574
2575-                               <form id="jsAdvanced" style="display:none;" action="">
2576
2577-                                       <label for="advfontcolor">Font Color (CSS): </label><input type="text" id="advfontcolor" onchange="advUpdate(this.value, 'fontcolor')" value="<?php echo kubrick_header_color(); ?>" /><br />
2578
2579-                                       <label for="advuppercolor">Upper Color (HEX): </label><input type="text" id="advuppercolor" onchange="advUpdate(this.value, 'uppercolor')" value="#<?php echo kubrick_upper_color(); ?>" /><br />
2580
2581-                                       <label for="advlowercolor">Lower Color (HEX): </label><input type="text" id="advlowercolor" onchange="advUpdate(this.value, 'lowercolor')" value="#<?php echo kubrick_lower_color(); ?>" /><br />
2582
2583-                                       <input type="button" name="default" value="Select Default Colors" onclick="kDefaults()" /><br />
2584
2585-                                       <input type="button" onclick="toggleDisplay();return false;" name="pick" id="pick" value="Toggle Text Display"></input><br />
2586
2587-                               </form>
2588
2589-                       </div>
2590
2591-               </div>
2592
2593-       </div>
2594
2595-</div>
2596
2597-<?php } ?>
2598
2599+<?php
2600+
2601+function kubrick_head() {
2602+       $head = "<style type='text/css'>\n<!--";
2603+       $output = '';
2604+       if ( kubrick_header_image() ) {
2605+               $url =  kubrick_header_image_url() ;
2606+               $output .= "#header { background: url('$url') no-repeat bottom center; }\n";
2607+       }
2608+       if ( false !== ( $color = kubrick_header_color() ) ) {
2609+               $output .= "#headerimg h1 a, #headerimg h1 a:visited, #headerimg .description { color: $color; }\n";
2610+       }
2611+       if ( false !== ( $display = kubrick_header_display() ) ) {
2612+               $output .= "#headerimg { display: $display }\n";
2613+       }
2614+       $foot = "--></style>\n";
2615+       if ( '' != $output )
2616+               echo $head . $output . $foot;
2617+}
2618+
2619+add_action('wp_head', 'kubrick_head');
2620+
2621+function kubrick_header_image() {
2622+       return apply_filters('kubrick_header_image', get_option('kubrick_header_image'));
2623+}
2624+
2625+function kubrick_upper_color() {
2626+       if ( strstr( $url = kubrick_header_image_url(), 'header-img.php?' ) ) {
2627+               parse_str(substr($url, strpos($url, '?') + 1), $q);
2628+               return $q['upper'];
2629+       } else
2630+               return '69aee7';
2631+}
2632+
2633+function kubrick_lower_color() {
2634+       if ( strstr( $url = kubrick_header_image_url(), 'header-img.php?' ) ) {
2635+               parse_str(substr($url, strpos($url, '?') + 1), $q);
2636+               return $q['lower'];
2637+       } else
2638+               return '4180b6';
2639+}
2640+
2641+function kubrick_header_image_url() {
2642+       if ( $image = kubrick_header_image() )
2643+               $url = get_template_directory_uri() . '/images/' . $image;
2644+       else
2645+               $url = get_template_directory_uri() . '/images/kubrickheader.jpg';
2646+
2647+       return $url;
2648+}
2649+
2650+function kubrick_header_color() {
2651+       return apply_filters('kubrick_header_color', get_option('kubrick_header_color'));
2652+}
2653+
2654+function kubrick_header_color_string() {
2655+       $color = kubrick_header_color();
2656+       if ( false === $color )
2657+               return 'white';
2658+
2659+       return $color;
2660+}
2661+
2662+function kubrick_header_display() {
2663+       return apply_filters('kubrick_header_display', get_option('kubrick_header_display'));
2664+}
2665+
2666+function kubrick_header_display_string() {
2667+       $display = kubrick_header_display();
2668+       return $display ? $display : 'inline';
2669+}
2670+
2671+add_action('admin_menu', 'kubrick_add_theme_page');
2672+
2673+function kubrick_add_theme_page() {
2674+       if ( $_GET['page'] == basename(__FILE__) ) {
2675+               if ( 'save' == $_REQUEST['action'] ) {
2676+                       if ( isset($_REQUEST['njform']) ) {
2677+                               if ( isset($_REQUEST['defaults']) ) {
2678+                                       delete_option('kubrick_header_image');
2679+                                       delete_option('kubrick_header_color');
2680+                                       delete_option('kubrick_header_display');
2681+                               } else {
2682+                                       if ( '' == $_REQUEST['njfontcolor'] )
2683+                                               delete_option('kubrick_header_color');
2684+                                       else
2685+                                               update_option('kubrick_header_color', $_REQUEST['njfontcolor']);
2686+
2687+                                       if ( preg_match('/[0-9A-F]{6}|[0-9A-F]{3}/i', $_REQUEST['njuppercolor'], $uc) && preg_match('/[0-9A-F]{6}|[0-9A-F]{3}/i', $_REQUEST['njlowercolor'], $lc) ) {
2688+                                               $uc = ( strlen($uc[0]) == 3 ) ? $uc[0]{0}.$uc[0]{0}.$uc[0]{1}.$uc[0]{1}.$uc[0]{2}.$uc[0]{2} : $uc[0];
2689+                                               $lc = ( strlen($lc[0]) == 3 ) ? $lc[0]{0}.$lc[0]{0}.$lc[0]{1}.$lc[0]{1}.$lc[0]{2}.$lc[0]{2} : $lc[0];
2690+                                               update_option('kubrick_header_image', "header-img.php?upper=$uc&amp;lower=$lc");
2691+                                       }
2692+
2693+                                       if ( isset($_REQUEST['toggledisplay']) ) {
2694+                                               if ( false === get_option('kubrick_header_display') )
2695+                                                       update_option('kubrick_header_display', 'none');
2696+                                               else
2697+                                                       delete_option('kubrick_header_display');
2698+                                       }
2699+                               }
2700+                       } else {
2701+
2702+                               if ( isset($_REQUEST['headerimage']) ) {
2703+                                       if ( '' == $_REQUEST['headerimage'] )
2704+                                               delete_option('kubrick_header_image');
2705+                                       else
2706+                                               update_option('kubrick_header_image', $_REQUEST['headerimage']);
2707+                               }
2708+
2709+                               if ( isset($_REQUEST['fontcolor']) ) {
2710+                                       if ( '' == $_REQUEST['fontcolor'] )
2711+                                               delete_option('kubrick_header_color');
2712+                                       else
2713+                                               update_option('kubrick_header_color', $_REQUEST['fontcolor']);
2714+                               }
2715+
2716+                               if ( isset($_REQUEST['fontdisplay']) ) {
2717+                                       if ( '' == $_REQUEST['fontdisplay'] || 'inline' == $_REQUEST['fontdisplay'] )
2718+                                               delete_option('kubrick_header_display');
2719+                                       else
2720+                                               update_option('kubrick_header_display', 'none');
2721+                               }
2722+                       }
2723+                       //print_r($_REQUEST);
2724+                       wp_redirect("themes.php?page=functions.php&saved=true");
2725+                       die;
2726+               }
2727+               add_action('admin_head', 'kubrick_theme_page_head');
2728+       }
2729+       add_theme_page('Customize Header', 'Header Image and Color', 'edit_themes', basename(__FILE__), 'kubrick_theme_page');
2730+}
2731+
2732+function kubrick_theme_page_head() {
2733+?>
2734+<script type="text/javascript" src="../wp-includes/js/colorpicker.js"></script>
2735+<script type='text/javascript'>
2736+// <![CDATA[
2737+       function pickColor(color) {
2738+               ColorPicker_targetInput.value = color;
2739+               kUpdate(ColorPicker_targetInput.id);
2740+       }
2741+       function PopupWindow_populate(contents) {
2742+               contents += '<br /><p style="text-align:center;margin-top:0px;"><input type="button" value="Close Color Picker" onclick="cp.hidePopup(\'prettyplease\')"></input></p>';
2743+               this.contents = contents;
2744+               this.populated = false;
2745+       }
2746+       function PopupWindow_hidePopup(magicword) {
2747+               if ( magicword != 'prettyplease' )
2748+                       return false;
2749+               if (this.divName != null) {
2750+                       if (this.use_gebi) {
2751+                               document.getElementById(this.divName).style.visibility = "hidden";
2752+                       }
2753+                       else if (this.use_css) {
2754+                               document.all[this.divName].style.visibility = "hidden";
2755+                       }
2756+                       else if (this.use_layers) {
2757+                               document.layers[this.divName].visibility = "hidden";
2758+                       }
2759+               }
2760+               else {
2761+                       if (this.popupWindow && !this.popupWindow.closed) {
2762+                               this.popupWindow.close();
2763+                               this.popupWindow = null;
2764+                       }
2765+               }
2766+               return false;
2767+       }
2768+       function colorSelect(t,p) {
2769+               if ( cp.p == p && document.getElementById(cp.divName).style.visibility != "hidden" )
2770+                       cp.hidePopup('prettyplease');
2771+               else {
2772+                       cp.p = p;
2773+                       cp.select(t,p);
2774+               }
2775+       }
2776+       function PopupWindow_setSize(width,height) {
2777+               this.width = 162;
2778+               this.height = 210;
2779+       }
2780+
2781+       var cp = new ColorPicker();
2782+       function advUpdate(val, obj) {
2783+               document.getElementById(obj).value = val;
2784+               kUpdate(obj);
2785+       }
2786+       function kUpdate(oid) {
2787+               if ( 'uppercolor' == oid || 'lowercolor' == oid ) {
2788+                       uc = document.getElementById('uppercolor').value.replace('#', '');
2789+                       lc = document.getElementById('lowercolor').value.replace('#', '');
2790+                       hi = document.getElementById('headerimage');
2791+                       hi.value = 'header-img.php?upper='+uc+'&lower='+lc;
2792+                       document.getElementById('header').style.background = 'url("<?php echo get_template_directory_uri(); ?>/images/'+hi.value+'") center no-repeat';
2793+                       document.getElementById('advuppercolor').value = '#'+uc;
2794+                       document.getElementById('advlowercolor').value = '#'+lc;
2795+               }
2796+               if ( 'fontcolor' == oid ) {
2797+                       document.getElementById('header').style.color = document.getElementById('fontcolor').value;
2798+                       document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value;
2799+               }
2800+               if ( 'fontdisplay' == oid ) {
2801+                       document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
2802+               }
2803+       }
2804+       function toggleDisplay() {
2805+               td = document.getElementById('fontdisplay');
2806+               td.value = ( td.value == 'none' ) ? 'inline' : 'none';
2807+               kUpdate('fontdisplay');
2808+       }
2809+       function toggleAdvanced() {
2810+               a = document.getElementById('jsAdvanced');
2811+               if ( a.style.display == 'none' )
2812+                       a.style.display = 'block';
2813+               else
2814+                       a.style.display = 'none';
2815+       }
2816+       function kDefaults() {
2817+               document.getElementById('headerimage').value = '';
2818+               document.getElementById('advuppercolor').value = document.getElementById('uppercolor').value = '#69aee7';
2819+               document.getElementById('advlowercolor').value = document.getElementById('lowercolor').value = '#4180b6';
2820+               document.getElementById('header').style.background = 'url("<?php echo get_template_directory_uri(); ?>/images/kubrickheader.jpg") center no-repeat';
2821+               document.getElementById('header').style.color = '#FFFFFF';
2822+               document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value = '';
2823+               document.getElementById('fontdisplay').value = 'inline';
2824+               document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
2825+       }
2826+       function kRevert() {
2827+               document.getElementById('headerimage').value = '<?php echo kubrick_header_image(); ?>';
2828+               document.getElementById('advuppercolor').value = document.getElementById('uppercolor').value = '#<?php echo kubrick_upper_color(); ?>';
2829+               document.getElementById('advlowercolor').value = document.getElementById('lowercolor').value = '#<?php echo kubrick_lower_color(); ?>';
2830+               document.getElementById('header').style.background = 'url("<?php echo kubrick_header_image_url(); ?>") center no-repeat';
2831+               document.getElementById('header').style.color = '';
2832+               document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value = '<?php echo kubrick_header_color_string(); ?>';
2833+               document.getElementById('fontdisplay').value = '<?php echo kubrick_header_display_string(); ?>';
2834+               document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
2835+       }
2836+       function kInit() {
2837+               document.getElementById('jsForm').style.display = 'block';
2838+               document.getElementById('nonJsForm').style.display = 'none';
2839+       }
2840+       addLoadEvent(kInit);
2841+// ]]>
2842+</script>
2843+<style type='text/css'>
2844+       #headwrap {
2845+               text-align: center;
2846+       }
2847+       #kubrick-header {
2848+               font-size: 80%;
2849+       }
2850+       #kubrick-header .hibrowser {
2851+               width: 780px;
2852+               height: 260px;
2853+               overflow: scroll;
2854+       }
2855+       #kubrick-header #hitarget {
2856+               display: none;
2857+       }
2858+       #kubrick-header #header h1 {
2859+               font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
2860+               font-weight: bold;
2861+               font-size: 4em;
2862+               text-align: center;
2863+               padding-top: 70px;
2864+               margin: 0;
2865+       }
2866+
2867+       #kubrick-header #header .description {
2868+               font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
2869+               font-size: 1.2em;
2870+               text-align: center;
2871+       }
2872+       #kubrick-header #header {
2873+               text-decoration: none;
2874+               color: <?php echo kubrick_header_color_string(); ?>;
2875+               padding: 0;
2876+               margin: 0;
2877+               height: 200px;
2878+               text-align: center;
2879+               background: url('<?php echo kubrick_header_image_url(); ?>') center no-repeat;
2880+       }
2881+       #kubrick-header #headerimg {
2882+               margin: 0;
2883+               height: 200px;
2884+               width: 100%;
2885+               display: <?php echo kubrick_header_display_string(); ?>;
2886+       }
2887+       #jsForm {
2888+               display: none;
2889+               text-align: center;
2890+       }
2891+       #jsForm input.submit, #jsForm input.button, #jsAdvanced input.button {
2892+               padding: 0px;
2893+               margin: 0px;
2894+       }
2895+       #advanced {
2896+               text-align: center;
2897+               width: 620px;
2898+       }
2899+       html>body #advanced {
2900+               text-align: center;
2901+               position: relative;
2902+               left: 50%;
2903+               margin-left: -380px;
2904+       }
2905+       #jsAdvanced {
2906+               text-align: right;
2907+       }
2908+       #nonJsForm {
2909+               position: relative;
2910+               text-align: left;
2911+               margin-left: -370px;
2912+               left: 50%;
2913+       }
2914+       #nonJsForm label {
2915+               padding-top: 6px;
2916+               padding-right: 5px;
2917+               float: left;
2918+               width: 100px;
2919+               text-align: right;
2920+       }
2921+       .defbutton {
2922+               font-weight: bold;
2923+       }
2924+       .zerosize {
2925+               width: 0px;
2926+               height: 0px;
2927+               overflow: hidden;
2928+       }
2929+       #colorPickerDiv a, #colorPickerDiv a:hover {
2930+               padding: 1px;
2931+               text-decoration: none;
2932+               border-bottom: 0px;
2933+       }
2934+</style>
2935+<?php
2936+}
2937+
2938+function kubrick_theme_page() {
2939+       if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>Options saved.</strong></p></div>';
2940+?>
2941+<div class='wrap'>
2942+       <div id="kubrick-header">
2943+               <h2>Header Image and Color</h2>
2944+               <div id="headwrap">
2945+                       <div id="header">
2946+                               <div id="headerimg">
2947+                                       <h1><?php bloginfo('name'); ?></h1>
2948+                                       <div class="description"><?php bloginfo('description'); ?></div>
2949+                               </div>
2950+                       </div>
2951+               </div>
2952+               <br />
2953+               <div id="nonJsForm">
2954+                       <form method="post" action="">
2955+                               <div class="zerosize"><input type="submit" name="defaultsubmit" value="Save" /></div>
2956+                               <label for="njfontcolor">Font Color:</label><input type="text" name="njfontcolor" id="njfontcolor" value="<?php echo kubrick_header_color(); ?>" /> Any CSS color (<code>red</code> or <code>#FF0000</code> or <code>rgb(255, 0, 0)</code>)<br />
2957+                               <label for="njuppercolor">Upper Color:</label><input type="text" name="njuppercolor" id="njuppercolor" value="#<?php echo kubrick_upper_color(); ?>" /> HEX only (<code>#FF0000</code> or <code>#F00</code>)<br />
2958+                               <label for="njlowercolor">Lower Color:</label><input type="text" name="njlowercolor" id="njlowercolor" value="#<?php echo kubrick_lower_color(); ?>" /> HEX only (<code>#FF0000</code> or <code>#F00</code>)<br />
2959+                               <input type="hidden" name="hi" id="hi" value="<?php echo kubrick_header_image(); ?>" />
2960+                               <input type="submit" name="toggledisplay" id="toggledisplay" value="Toggle Text" />
2961+                               <input type="submit" name="defaults" value="Use Defaults" />
2962+                               <input type="submit" class="defbutton" name="submitform" value="&#160;&#160;Save&#160;&#160;" />
2963+                               <input type="hidden" name="action" value="save" />
2964+                               <input type="hidden" name="njform" value="true" />
2965+                       </form>
2966+               </div>
2967+               <div id="jsForm">
2968+                       <form style="display:inline;" method="post" name="hicolor" id="hicolor" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
2969+                               <input type="button" onclick="tgt=document.getElementById('fontcolor');colorSelect(tgt,'pick1');return false;" name="pick1" id="pick1" value="Font Color"></input>
2970+                               <input type="button" onclick="tgt=document.getElementById('uppercolor');colorSelect(tgt,'pick2');return false;" name="pick2" id="pick2" value="Upper Color"></input>
2971+                               <input type="button" onclick="tgt=document.getElementById('lowercolor');colorSelect(tgt,'pick3');return false;" name="pick3" id="pick3" value="Lower Color"></input>
2972+                               <input type="button" name="revert" value="Revert" onclick="kRevert()" />
2973+                               <input type="button" value="Advanced" onclick="toggleAdvanced()" />
2974+                               <input type="hidden" name="action" value="save" />
2975+                               <input type="hidden" name="fontdisplay" id="fontdisplay" value="<?php echo kubrick_header_display(); ?>" />
2976+                               <input type="hidden" name="fontcolor" id="fontcolor" value="<?php echo kubrick_header_color(); ?>" />
2977+                               <input type="hidden" name="uppercolor" id="uppercolor" value="<?php echo kubrick_upper_color(); ?>" />
2978+                               <input type="hidden" name="lowercolor" id="lowercolor" value="<?php echo kubrick_lower_color(); ?>" />
2979+                               <input type="hidden" name="headerimage" id="headerimage" value="<?php echo kubrick_header_image(); ?>" />
2980+                               <p class="submit"><input type="submit" name="submitform" class="defbutton" value="<?php _e('Update Header &#187;'); ?>" onclick="cp.hidePopup('prettyplease')" /></p>
2981+                       </form>
2982+                       <div id="colorPickerDiv" style="z-index: 100;background:#eee;border:1px solid #ccc;position:absolute;visibility:hidden;"> </div>
2983+                       <div id="advanced">
2984+                               <form id="jsAdvanced" style="display:none;" action="">
2985+                                       <label for="advfontcolor">Font Color (CSS): </label><input type="text" id="advfontcolor" onchange="advUpdate(this.value, 'fontcolor')" value="<?php echo kubrick_header_color(); ?>" /><br />
2986+                                       <label for="advuppercolor">Upper Color (HEX): </label><input type="text" id="advuppercolor" onchange="advUpdate(this.value, 'uppercolor')" value="#<?php echo kubrick_upper_color(); ?>" /><br />
2987+                                       <label for="advlowercolor">Lower Color (HEX): </label><input type="text" id="advlowercolor" onchange="advUpdate(this.value, 'lowercolor')" value="#<?php echo kubrick_lower_color(); ?>" /><br />
2988+                                       <input type="button" name="default" value="Select Default Colors" onclick="kDefaults()" /><br />
2989+                                       <input type="button" onclick="toggleDisplay();return false;" name="pick" id="pick" value="Toggle Text Display"></input><br />
2990+                               </form>
2991+                       </div>
2992+               </div>
2993+       </div>
2994+</div>
2995+<?php } ?>
2996Index: wp-content/themes/default/page.php
2997===================================================================
2998--- wp-content/themes/default/page.php  (revision 4745)
2999+++ wp-content/themes/default/page.php  (working copy)
3000@@ -6,7 +6,7 @@
3001                <div class="post" id="post-<?php the_ID(); ?>">
3002                <h2><?php the_title(); ?></h2>
3003                        <div class="entry">
3004-                               <?php the_content('<p class="serif">Read the rest of this page &raquo;</p>'); ?>
3005+                               <?php the_content('<p class="serif">Read the rest of this page &#187;</p>'); ?>
3006 
3007                                <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
3008 
3009Index: wp-content/themes/default/single.php
3010===================================================================
3011--- wp-content/themes/default/single.php        (revision 4745)
3012+++ wp-content/themes/default/single.php        (working copy)
3013@@ -6,14 +6,14 @@
3014 
3015                <div class="navigation">
3016                        <div class="alignleft"><?php previous_post_link('&laquo; %link') ?></div>
3017-                       <div class="alignright"><?php next_post_link('%link &raquo;') ?></div>
3018+                       <div class="alignright"><?php next_post_link('%link &#187;') ?></div>
3019                </div>
3020 
3021                <div class="post" id="post-<?php the_ID(); ?>">
3022                        <h2><a href="<?php echo get_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"><?php the_title(); ?></a></h2>
3023 
3024                        <div class="entry">
3025-                               <?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>
3026+                               <?php the_content('<p class="serif">Read the rest of this entry &#187;</p>'); ?>
3027 
3028                                <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
3029 
3030Index: wp-content/themes/default/archive.php
3031===================================================================
3032--- wp-content/themes/default/archive.php       (revision 4745)
3033+++ wp-content/themes/default/archive.php       (working copy)
3034@@ -28,7 +28,7 @@
3035 
3036                <div class="navigation">
3037                        <div class="alignleft"><?php next_posts_link('&laquo; Previous Entries') ?></div>
3038-                       <div class="alignright"><?php previous_posts_link('Next Entries &raquo;') ?></div>
3039+                       <div class="alignright"><?php previous_posts_link('Next Entries &#187;') ?></div>
3040                </div>
3041 
3042                <?php while (have_posts()) : the_post(); ?>
3043@@ -48,7 +48,7 @@
3044 
3045                <div class="navigation">
3046                        <div class="alignleft"><?php next_posts_link('&laquo; Previous Entries') ?></div>
3047-                       <div class="alignright"><?php previous_posts_link('Next Entries &raquo;') ?></div>
3048+                       <div class="alignright"><?php previous_posts_link('Next Entries &#187;') ?></div>
3049                </div>
3050 
3051        <?php else : ?>
3052Index: wp-content/themes/default/comments.php
3053===================================================================
3054--- wp-content/themes/default/comments.php      (revision 4745)
3055+++ wp-content/themes/default/comments.php      (working copy)
3056@@ -73,7 +73,7 @@
3057 
3058 <?php if ( $user_ID ) : ?>
3059 
3060-<p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Log out of this account">Logout &raquo;</a></p>
3061+<p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Log out of this account">Logout &#187;</a></p>
3062 
3063 <?php else : ?>
3064 
3065Index: wp-content/themes/default/header.php
3066===================================================================
3067--- wp-content/themes/default/header.php        (revision 4745)
3068+++ wp-content/themes/default/header.php        (working copy)
3069@@ -4,7 +4,7 @@
3070 <head profile="http://gmpg.org/xfn/11">
3071 <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
3072 
3073-<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> &raquo; Blog Archive <?php } ?> <?php wp_title(); ?></title>
3074+<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> &#187; Blog Archive <?php } ?> <?php wp_title(); ?></title>
3075 
3076 <meta name="generator" content="WordPress <?php bloginfo('version'); ?>" /> <!-- leave this for stats -->
3077 
3078Index: wp-content/themes/default/attachment.php
3079===================================================================
3080--- wp-content/themes/default/attachment.php    (revision 4745)
3081+++ wp-content/themes/default/attachment.php    (working copy)
3082@@ -5,17 +5,17 @@
3083   <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
3084 
3085                <div class="navigation">
3086-                       <div class="alignleft">&nbsp;</div>
3087-                       <div class="alignright">&nbsp;</div>
3088+                       <div class="alignleft">&#160;</div>
3089+                       <div class="alignright">&#160;</div>
3090                </div>
3091 <?php $attachment_link = get_the_attachment_link($post->ID, true, array(450, 800)); // This also populates the iconsize for the next line ?>
3092 <?php $_post = &get_post($post->ID); $classname = ($_post->iconsize[0] <= 128 ? 'small' : '') . 'attachment'; // This lets us style narrow icons specially ?>
3093                <div class="post" id="post-<?php the_ID(); ?>">
3094-                       <h2><a href="<?php echo get_permalink($post->post_parent); ?>" rev="attachment"><?php echo get_the_title($post->post_parent); ?></a> &raquo; <a href="<?php echo get_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"><?php the_title(); ?></a></h2>
3095+                       <h2><a href="<?php echo get_permalink($post->post_parent); ?>" rev="attachment"><?php echo get_the_title($post->post_parent); ?></a> &#187; <a href="<?php echo get_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"><?php the_title(); ?></a></h2>
3096                        <div class="entry">
3097                                <p class="<?php echo $classname; ?>"><?php echo $attachment_link; ?><br /><?php echo basename($post->guid); ?></p>
3098 
3099-                               <?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>
3100+                               <?php the_content('<p class="serif">Read the rest of this entry &#187;</p>'); ?>
3101 
3102                                <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
3103 
3104Index: readme.html
3105===================================================================
3106--- readme.html (revision 4745)
3107+++ readme.html (working copy)
3108@@ -1,7 +1,7 @@
3109 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3110 <html xmlns="http://www.w3.org/1999/xhtml">
3111 <head>
3112-       <title>WordPress &rsaquo; ReadMe</title>
3113+       <title>WordPress &#8250; ReadMe</title>
3114        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3115        <link rel="stylesheet" href="wp-admin/install.css" type="text/css" />
3116 </head>
3117Index: wp-admin/users.php
3118===================================================================
3119--- wp-admin/users.php  (revision 4745)
3120+++ wp-admin/users.php  (working copy)
3121@@ -86,7 +86,7 @@
3122                                'total' => ceil($this->total_users_for_query / $this->users_per_page),
3123                                'current' => $this->page,
3124                                'prev_text' => '&laquo; Previous Page',
3125-                               'next_text' => 'Next Page &raquo;',
3126+                               'next_text' => 'Next Page &#187;',
3127                                'base' => 'users.php?%_%',
3128                                'format' => 'userspage=%#%',
3129                                'add_args' => array( 'usersearch' => urlencode($this->search_term) )
3130@@ -338,7 +338,7 @@
3131        <?php endif; ?>
3132 
3133        <form action="" method="get" name="search" id="search">
3134-               <p><input type="text" name="usersearch" id="usersearch" value="<?php echo attribute_escape($wp_user_search->search_term); ?>" /> <input type="submit" value="<?php _e('Search   users &raquo;'); ?>" class="button" /></p>
3135+               <p><input type="text" name="usersearch" id="usersearch" value="<?php echo attribute_escape($wp_user_search->search_term); ?>" /> <input type="submit" value="<?php _e('Search   users &#187;'); ?>" class="button" /></p>
3136        </form>
3137 
3138        <?php if ( is_wp_error( $wp_user_search->search_errors ) ) : ?>
3139@@ -419,7 +419,7 @@
3140        </ul>
3141        <p class="submit" style="width: 420px">
3142                <?php echo $referer; ?>
3143-               <input type="submit" value="<?php _e('Bulk Update &raquo;'); ?>" />
3144+               <input type="submit" value="<?php _e('Bulk Update &#187;'); ?>" />
3145        </p>
3146 </form>
3147 <?php endif; ?>
3148@@ -498,7 +498,7 @@
3149 </table>
3150 <p class="submit">
3151        <?php echo $referer; ?>
3152-       <input name="adduser" type="submit" id="addusersub" value="<?php _e('Add User &raquo;') ?>" />
3153+       <input name="adduser" type="submit" id="addusersub" value="<?php _e('Add User &#187;') ?>" />
3154 </p>
3155 </form>
3156 
3157Index: wp-admin/options-privacy.php
3158===================================================================
3159--- wp-admin/options-privacy.php        (revision 4745)
3160+++ wp-admin/options-privacy.php        (working copy)
3161@@ -24,7 +24,7 @@
3162 </tr>
3163 </table>
3164 
3165-<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
3166+<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" />
3167 <input type="hidden" name="action" value="update" />
3168 <input type="hidden" name="page_options" value="blog_public" />
3169 </p>
3170Index: wp-admin/edit-comments.php
3171===================================================================
3172--- wp-admin/edit-comments.php  (revision 4745)
3173+++ wp-admin/edit-comments.php  (working copy)
3174@@ -122,7 +122,7 @@
3175 }
3176 if ( ( $page ) * 20 < $total || -1 == $total ) {
3177        $args['apage'] = $page + 1;
3178-       $r .=  '<a class="next" href="' . add_query_arg($args) . '">'. __('Next Page') .' &raquo;</a>' . "\n";
3179+       $r .=  '<a class="next" href="' . add_query_arg($args) . '">'. __('Next Page') .' &#187;</a>' . "\n";
3180 }
3181 echo "<p>$r</p>";
3182 ?>
3183@@ -229,8 +229,8 @@
3184                <?php
3185                } // end foreach
3186        ?></table>
3187-<p class="submit"><input type="submit" name="delete_button" class="delete" value="<?php _e('Delete Checked Comments &raquo;') ?>" onclick="var numchecked = getNumChecked(document.getElementById('deletecomments')); if(numchecked < 1) { alert('<?php echo js_escape(__("Please select some comments to delete")); ?>'); return false } return confirm('<?php echo sprintf(js_escape(__("You are about to delete %s comments permanently \n  'Cancel' to stop, 'OK' to delete.")), "' + numchecked + '"); ?>')" />
3188-                       <input type="submit" name="spam_button" value="<?php _e('Mark Checked Comments as Spam &raquo;') ?>" onclick="var numchecked = getNumChecked(document.getElementById('deletecomments')); if(numchecked < 1) { alert('<?php echo js_escape(__("Please select some comments to mark as spam")); ?>'); return false } return confirm('<?php echo sprintf(js_escape(__("You are about to mark %s comments as spam \n  'Cancel' to stop, 'OK' to mark as spam.")), "' + numchecked + '"); ?>')" /></p>
3189+<p class="submit"><input type="submit" name="delete_button" class="delete" value="<?php _e('Delete Checked Comments &#187;') ?>" onclick="var numchecked = getNumChecked(document.getElementById('deletecomments')); if(numchecked < 1) { alert('<?php echo js_escape(__("Please select some comments to delete")); ?>'); return false } return confirm('<?php echo sprintf(js_escape(__("You are about to delete %s comments permanently \n  'Cancel' to stop, 'OK' to delete.")), "' + numchecked + '"); ?>')" />
3190+                       <input type="submit" name="spam_button" value="<?php _e('Mark Checked Comments as Spam &#187;') ?>" onclick="var numchecked = getNumChecked(document.getElementById('deletecomments')); if(numchecked < 1) { alert('<?php echo js_escape(__("Please select some comments to mark as spam")); ?>'); return false } return confirm('<?php echo sprintf(js_escape(__("You are about to mark %s comments as spam \n  'Cancel' to stop, 'OK' to mark as spam.")), "' + numchecked + '"); ?>')" /></p>
3191   </form>
3192 <div id="ajax-response"></div>
3193 <?php
3194@@ -269,7 +269,7 @@
3195 }
3196 if ( ( $page ) * 20 < $total || -1 == $total ) {
3197        $args['apage'] = $page + 1;
3198-       $r .=  '<a class="next" href="' . add_query_arg($args) . '">'. __('Next Page') .' &raquo;</a>' . "\n";
3199+       $r .=  '<a class="next" href="' . add_query_arg($args) . '">'. __('Next Page') .' &#187;</a>' . "\n";
3200 }
3201 echo "<p>$r</p>";
3202 ?>
3203Index: wp-admin/post-new.php
3204===================================================================
3205--- wp-admin/post-new.php       (revision 4745)
3206+++ wp-admin/post-new.php       (working copy)
3207@@ -20,7 +20,7 @@
3208 }
3209 
3210 if ( isset($_GET['posted']) && $_GET['posted'] ) : ?>
3211-<div id="message" class="updated fade"><p><strong><?php _e('Post saved.'); ?></strong> <a href="<?php echo get_permalink( $_GET['posted'] ); ?>"><?php _e('View post'); ?> &raquo;</a></p></div>
3212+<div id="message" class="updated fade"><p><strong><?php _e('Post saved.'); ?></strong> <a href="<?php echo get_permalink( $_GET['posted'] ); ?>"><?php _e('View post'); ?> &#187;</a></p></div>
3213 <?php
3214 endif;
3215 
3216@@ -41,7 +41,7 @@
3217        }
3218 
3219        if ( 15 < count($drafts) ) { ?>
3220-               , <a href="edit.php"><?php echo sprintf(__('and %s more'), (count($drafts) - 15) ); ?> &raquo;</a>
3221+               , <a href="edit.php"><?php echo sprintf(__('and %s more'), (count($drafts) - 15) ); ?> &#187;</a>
3222        <?php } ?>
3223 .</p>
3224 </div>
3225Index: wp-admin/theme-editor.php
3226===================================================================
3227--- wp-admin/theme-editor.php   (revision 4745)
3228+++ wp-admin/theme-editor.php   (working copy)
3229@@ -93,7 +93,7 @@
3230        }
3231 ?>
3232  </select>
3233- <input type="submit" name="Submit" value="<?php _e('Select &raquo;') ?>" class="button" />
3234+ <input type="submit" name="Submit" value="<?php _e('Select &#187;') ?>" class="button" />
3235  </form>
3236  </div>
3237 
3238@@ -131,7 +131,7 @@
3239 <?php if ( is_writeable($real_file) ) : ?>
3240        <p class="submit">
3241 <?php
3242-       echo "<input type='submit' name='submit' value='        " . __('Update File &raquo;') . "' tabindex='2' />";
3243+       echo "<input type='submit' name='submit' value='        " . __('Update File &#187;') . "' tabindex='2' />";
3244 ?>
3245 </p>
3246 <?php else : ?>
3247@@ -143,7 +143,7 @@
3248                echo '<div class="error"><p>' . __('Oops, no such file exists! Double check the name and try again, merci.') . '</p></div>';
3249        }
3250        ?>
3251-<div class="clear"> &nbsp; </div>
3252+<div class="clear"> &#160; </div>
3253 </div>
3254 <?php
3255 break;
3256Index: wp-admin/templates.php
3257===================================================================
3258--- wp-admin/templates.php      (revision 4745)
3259+++ wp-admin/templates.php      (working copy)
3260@@ -126,7 +126,7 @@
3261 <?php if ( is_writeable($real_file) ) : ?>
3262        <p class="submit">
3263 <?php
3264-       echo "<input type='submit' name='submit' value='        " . __('Update File &raquo;') . "' tabindex='2' />";
3265+       echo "<input type='submit' name='submit' value='        " . __('Update File &#187;') . "' tabindex='2' />";
3266 ?>
3267 </p>
3268 <?php else : ?>
3269@@ -138,7 +138,7 @@
3270                echo '<div class="error"><p>' . __('Oops, no such file exists! Double check the name and try again, merci.') . '</p></div>';
3271        }
3272        ?>
3273-<div class="clear"> &nbsp; </div>
3274+<div class="clear"> &#160; </div>
3275 </div>
3276 <div class="wrap">
3277 <h2><?php _e('Other Files') ?></h2>
3278@@ -146,7 +146,7 @@
3279        <p><?php _e('To edit a file, type its name here. You can edit any file <a href="http://codex.wordpress.org/Changing_File_Permissions" title="Read more about making files writable">writable by the server</a>, e.g. CHMOD 666.') ?></p>
3280        <form name="file" action="templates.php" method="get">
3281                <input type="text" name="file" />
3282-               <input type="submit" name="submit"  value="<?php _e('Edit file &raquo;') ?>" />
3283+               <input type="submit" name="submit"  value="<?php _e('Edit file &#187;') ?>" />
3284        </form>
3285 
3286        <p><?php _e('Note: of course, you can also edit the files/templates in your text editor of choice and upload them. This online editor is only meant to be used when you don&#8217;t have access to a text editor or FTP client.') ?></p>
3287Index: wp-admin/admin-functions.php
3288===================================================================
3289--- wp-admin/admin-functions.php        (revision 4745)
3290+++ wp-admin/admin-functions.php        (working copy)
3291@@ -877,7 +877,7 @@
3292        global $post_ID;
3293        // Exit if no meta
3294        if (!$meta ) {
3295-               echo '<tbody id="the-list"><tr style="display: none;"><td>&nbsp;</td></tr></tbody>'; //TBODY needed for list-manipulation JS
3296+               echo '<tbody id="the-list"><tr style="display: none;"><td>&#160;</td></tr></tbody>'; //TBODY needed for list-manipulation JS
3297                return;
3298        }
3299        $count = 0;
3300@@ -978,7 +978,7 @@
3301        </tr>
3302 
3303 </table>
3304-<p class="submit"><input type="submit" id="updatemetasub" name="updatemeta" tabindex="9" value="<?php _e( 'Add Custom Field &raquo;' ) ?>" /></p>
3305+<p class="submit"><input type="submit" id="updatemetasub" name="updatemeta" tabindex="9" value="<?php _e( 'Add Custom Field &#187;' ) ?>" /></p>
3306 <?php
3307 
3308 }
3309@@ -1240,7 +1240,7 @@
3310                                        continue;
3311                                }
3312                        }
3313-                       $pad = str_repeat( '&nbsp;', $level * 3 );
3314+                       $pad = str_repeat( '&#160;', $level * 3 );
3315                        if ( $item->ID == $default)
3316                                $current = ' selected="selected"';
3317                        else
3318@@ -1887,7 +1887,7 @@
3319 <input type="hidden" name="max_file_size" value="<?php echo $bytes; ?>" />
3320 </p>
3321 <p class="submit">
3322-<input type="submit" value="<?php _e( 'Upload file and import' ); ?> &raquo;" />
3323+<input type="submit" value="<?php _e( 'Upload file and import' ); ?> &#187;" />
3324 </p>
3325 </form>
3326 <?php
3327Index: wp-admin/upload-js.php
3328===================================================================
3329--- wp-admin/upload-js.php      (revision 4745)
3330+++ wp-admin/upload-js.php      (working copy)
3331@@ -88,7 +88,7 @@
3332                                h += "<img src='" + ( this.currentImage.thumb ? this.currentImage.thumb : this.currentImage.src ) + "' alt='" + this.currentImage.title + "' width='" + this.currentImage.width + "' height='" + this.currentImage.height + "' />";
3333                                h += "</a>";
3334                        } else
3335-                               h += '&nbsp;';
3336+                               h += '&#160;';
3337                        h += "</div>";
3338 
3339                        h += "<form name='uploadoptions' id='uploadoptions' class='alignleft'>";
3340@@ -119,7 +119,7 @@
3341                        h += "</td></tr>";
3342 
3343                        h += "<tr><td colspan='2'><p class='submit'>";
3344-                       h += "<input type='button' class='button' name='send' onclick='theFileList.sendToEditor(" + id + ")' value='<?php echo attribute_escape(__('Send to editor &raquo;')); ?>' />";
3345+                       h += "<input type='button' class='button' name='send' onclick='theFileList.sendToEditor(" + id + ")' value='<?php echo attribute_escape(__('Send to editor &#187;')); ?>' />";
3346                        h += "</p></td></tr></table>";
3347                        h += "</form>";
3348 
3349@@ -166,7 +166,7 @@
3350                                h += "<img src='" + ( this.currentImage.thumb ? this.currentImage.thumb : this.currentImage.src ) + "' alt='" + this.currentImage.title + "' width='" + this.currentImage.width + "' height='" + this.currentImage.height + "' />";
3351                                h += "</a>";
3352                        } else
3353-                               h += '&nbsp;';
3354+                               h += '&#160;';
3355                        h += "</div>";
3356 
3357 
3358@@ -184,7 +184,7 @@
3359                        h += "<input type='hidden' name='action' id='action-value' value='save' />";
3360                        h += "<input type='hidden' name='ID' value='" + id + "' />";
3361                        h += "<input type='hidden' name='_wpnonce' value='" + this.nonce + "' />";
3362-                       h += "<div class='submit'><input type='submit' value='<?php echo attribute_escape(__('Save &raquo;')); ?>' /></div>";
3363+                       h += "<div class='submit'><input type='submit' value='<?php echo attribute_escape(__('Save &#187;')); ?>' /></div>";
3364                        h += "</td></tr></table></form>";
3365 
3366                        new Insertion.Top('upload-content', h);
3367Index: wp-admin/custom-header.php
3368===================================================================
3369--- wp-admin/custom-header.php  (revision 4745)
3370+++ wp-admin/custom-header.php  (working copy)
3371@@ -165,7 +165,7 @@
3372 <form method="post" action="<?php echo get_option('siteurl') ?>/wp-admin/themes.php?page=custom-header&amp;updated=true">
3373 <input type="button" value="<?php _e('Hide Text'); ?>" onclick="hide_text()" id="hidetext" />
3374 <input type="button" value="<?php _e('Select a Text Color'); ?>" onclick="colorSelect($('textcolor'), 'pickcolor')" id="pickcolor" /><input type="button" value="<?php _e('Use Original Color'); ?>" onclick="colorDefault()" id="defaultcolor" />
3375-<input type="hidden" name="textcolor" id="textcolor" value="#<?php header_textcolor() ?>" /><input name="submit" type="submit" value="<?php _e('Save Changes'); ?> &raquo;" /></form>
3376+<input type="hidden" name="textcolor" id="textcolor" value="#<?php header_textcolor() ?>" /><input name="submit" type="submit" value="<?php _e('Save Changes'); ?> &#187;" /></form>
3377 <?php } ?>
3378 
3379 <div id="colorPickerDiv" style="z-index: 100;background:#eee;border:1px solid #ccc;position:absolute;visibility:hidden;"> </div>
3380@@ -178,7 +178,7 @@
3381 <label for="upload"><?php _e('Choose an image from your computer:'); ?></label><br /><input type="file" id="upload" name="import" />
3382 <input type="hidden" name="action" value="save" />
3383 <p class="submit">
3384-<input type="submit" value="<?php _e('Upload'); ?> &raquo;" />
3385+<input type="submit" value="<?php _e('Upload'); ?> &#187;" />
3386 </p>
3387 </form>
3388 
3389@@ -256,7 +256,7 @@
3390 <input type="hidden" name="height" id="height" />
3391 <input type="hidden" name="attachment_id" id="attachment_id" value="<?php echo $id; ?>" />
3392 <input type="hidden" name="oitar" id="oitar" value="<?php echo $oitar; ?>" />
3393-<input type="submit" value="<?php _e('Crop Header &raquo;'); ?>" />
3394+<input type="submit" value="<?php _e('Crop Header &#187;'); ?>" />
3395 </p>
3396 
3397 </form>
3398Index: wp-admin/moderation.php
3399===================================================================
3400--- wp-admin/moderation.php     (revision 4745)
3401+++ wp-admin/moderation.php     (working copy)
3402@@ -131,9 +131,9 @@
3403 ?>
3404 <a href="<?php echo get_permalink($comment->comment_post_ID); ?>" title="<?php echo $post_title; ?>"><?php _e('View Post') ?></a> ] &#8212;
3405  <?php _e('Bulk action:') ?>
3406-       <input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-approve" value="approve" /> <label for="comment-<?php echo $comment->comment_ID; ?>-approve"><?php _e('Approve') ?></label> &nbsp;
3407-       <input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-spam" value="spam" /> <label for="comment-<?php echo $comment->comment_ID; ?>-spam"><?php _e('Spam') ?></label> &nbsp;
3408-       <input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-delete" value="delete" /> <label for="comment-<?php echo $comment->comment_ID; ?>-delete"><?php _e('Delete') ?></label> &nbsp;
3409+       <input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-approve" value="approve" /> <label for="comment-<?php echo $comment->comment_ID; ?>-approve"><?php _e('Approve') ?></label> &#160;
3410+       <input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-spam" value="spam" /> <label for="comment-<?php echo $comment->comment_ID; ?>-spam"><?php _e('Spam') ?></label> &#160;
3411+       <input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-delete" value="delete" /> <label for="comment-<?php echo $comment->comment_ID; ?>-delete"><?php _e('Delete') ?></label> &#160;
3412        <input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-nothing" value="later" checked="checked" /> <label for="comment-<?php echo $comment->comment_ID; ?>-nothing"><?php _e('Defer until later') ?></label>
3413        </p>
3414 
3415@@ -145,7 +145,7 @@
3416 
3417 <div id="ajax-response"></div>
3418 
3419-<p class="submit"><input type="submit" name="submit" value="<?php _e('Bulk Moderate Comments &raquo;') ?>" /></p>
3420+<p class="submit"><input type="submit" name="submit" value="<?php _e('Bulk Moderate Comments &#187;') ?>" /></p>
3421 <script type="text/javascript">
3422 // <![CDATA[
3423 function markAllForDelete() {
3424Index: wp-admin/options-general.php
3425===================================================================
3426--- wp-admin/options-general.php        (revision 4745)
3427+++ wp-admin/options-general.php        (working copy)
3428@@ -11,7 +11,7 @@
3429 <h2><?php _e('General Options') ?></h2>
3430 <form method="post" action="options.php">
3431 <?php wp_nonce_field('update-options') ?>
3432-<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" /></p>
3433+<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" /></p>
3434 <table class="optiontable">
3435 <tr valign="top">
3436 <th scope="row"><?php _e('Weblog title:') ?></th>
3437@@ -78,7 +78,7 @@
3438 <?php _e('Output:') ?> <strong><?php echo gmdate(get_option('time_format'), current_time('timestamp')); ?></strong></td>
3439 </tr>
3440 <tr>
3441-<th scope="row">&nbsp;</th>
3442+<th scope="row">&#160;</th>
3443 <td><?php _e('<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date formatting</a>. Click "Update options" to update sample output.') ?> </td>
3444 </tr>
3445 <tr>
3446@@ -95,7 +95,7 @@
3447 </table>
3448 </fieldset>
3449 
3450-<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
3451+<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" />
3452 <input type="hidden" name="action" value="update" />
3453 <input type="hidden" name="page_options" value="blogname,blogdescription,siteurl,admin_email,users_can_register,gmt_offset,date_format,time_format,home,start_of_week,comment_registration,default_role" />
3454 </p>
3455Index: wp-admin/index.php
3456===================================================================
3457--- wp-admin/index.php  (revision 4745)
3458+++ wp-admin/index.php  (working copy)
3459@@ -39,10 +39,10 @@
3460 if ( $comments || $numcomments ) :
3461 ?>
3462 <div>
3463-<h3><?php _e('Comments'); ?> <a href="edit-comments.php" title="<?php _e('More comments...'); ?>">&raquo;</a></h3>
3464+<h3><?php _e('Comments'); ?> <a href="edit-comments.php" title="<?php _e('More comments...'); ?>">&#187;</a></h3>
3465 
3466 <?php if ( $numcomments ) : ?>
3467-<p><strong><a href="moderation.php"><?php echo sprintf(__('Comments in moderation (%s)'), number_format($numcomments) ); ?> &raquo;</a></strong></p>
3468+<p><strong><a href="moderation.php"><?php echo sprintf(__('Comments in moderation (%s)'), number_format($numcomments) ); ?> &#187;</a></strong></p>
3469 <?php endif; ?>
3470 
3471 <ul>
3472@@ -63,7 +63,7 @@
3473 if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' AND post_date_gmt < '$today' ORDER BY post_date DESC LIMIT 5") ) :
3474 ?>
3475 <div>
3476-<h3><?php _e('Posts'); ?> <a href="edit.php" title="<?php _e('More posts...'); ?>">&raquo;</a></h3>
3477+<h3><?php _e('Posts'); ?> <a href="edit.php" title="<?php _e('More posts...'); ?>">&#187;</a></h3>
3478 <ul>
3479 <?php
3480 foreach ($recentposts as $post) {
3481@@ -138,7 +138,7 @@
3482 
3483 <div id="planetnews"></div>
3484 
3485-<div style="clear: both">&nbsp;
3486+<div style="clear: both">&#160;
3487 <br clear="all" />
3488 </div>
3489 </div>
3490Index: wp-admin/edit-link-form.php
3491===================================================================
3492--- wp-admin/edit-link-form.php (revision 4745)
3493+++ wp-admin/edit-link-form.php (working copy)
3494@@ -1,12 +1,12 @@
3495 <?php
3496 if ( ! empty($link_id) ) {
3497        $heading = __('Edit Link');
3498-       $submit_text = __('Save Changes &raquo;');
3499+       $submit_text = __('Save Changes &#187;');
3500        $form = '<form name="editlink" id="editlink" method="post" action="link.php">';
3501        $nonce_action = 'update-bookmark_' . $link_id;
3502 } else {
3503        $heading = __('Add Link');
3504-       $submit_text = __('Add Link &raquo;');
3505+       $submit_text = __('Add Link &#187;');
3506        $form = '<form name="addlink" id="addlink" method="post" action="link.php">';
3507        $nonce_action = 'add-bookmark';
3508 }
3509@@ -237,7 +237,7 @@
3510                                        echo 'selected="selected"';
3511                                echo('>'.$r.'</option>');
3512                        }
3513-               ?></select>&nbsp;<?php _e('(Leave at 0 for no rating.)') ?>
3514+               ?></select>&#160;<?php _e('(Leave at 0 for no rating.)') ?>
3515                </td>
3516        </tr>
3517 </table>
3518Index: wp-admin/import/dotclear.php
3519===================================================================
3520--- wp-admin/import/dotclear.php        (revision 4745)
3521+++ wp-admin/import/dotclear.php        (working copy)
3522@@ -148,7 +148,7 @@
3523                echo '<p>'.__('Your DotClear Configuration settings are as follows:').'</p>';
3524                echo '<form action="admin.php?import=dotclear&amp;step=1" method="post">';
3525                $this->db_form();
3526-               echo '<p class="submit"><input type="submit" name="submit" value="'.__('Import Categories').' &raquo;" /></p>';
3527+               echo '<p class="submit"><input type="submit" name="submit" value="'.__('Import Categories').' &#187;" /></p>';
3528                echo '</form></div>';
3529        }
3530 
3531Index: wp-admin/import/textpattern.php
3532===================================================================
3533--- wp-admin/import/textpattern.php     (revision 4745)
3534+++ wp-admin/import/textpattern.php     (working copy)
3535@@ -57,7 +57,7 @@
3536                echo '<p>'.__('Your Textpattern Configuration settings are as follows:').'</p>';
3537                echo '<form action="admin.php?import=textpattern&amp;step=1" method="post">';
3538                $this->db_form();
3539-               echo '<p class="submit"><input type="submit" name="submit" value="'.__('Import Categories').' &raquo;" /></p>';
3540+               echo '<p class="submit"><input type="submit" name="submit" value="'.__('Import Categories').' &#187;" /></p>';
3541                echo '</form>';
3542                echo '</div>';
3543        }
3544Index: wp-admin/import/greymatter.php
3545===================================================================
3546--- wp-admin/import/greymatter.php      (revision 4745)
3547+++ wp-admin/import/greymatter.php      (working copy)
3548@@ -29,7 +29,7 @@
3549 <li><?php _e('Import gm-templates.') ?></li>
3550 <li><?php _e("Doesn't keep entries on top.")?></li>
3551 </ul>
3552-<p>&nbsp;</p>
3553+<p>&#160;</p>
3554 
3555 <form name="stepOne" method="get">
3556 <input type="hidden" name="import" value="greymatter" />
3557@@ -280,7 +280,7 @@
3558        }
3559        ?>
3560 </ul><strong><?php _e('Done') ?></strong></li></ul>
3561-<p>&nbsp;</p>
3562+<p>&#160;</p>
3563 <p><?php _e('Completed GreyMatter import!') ?></p>
3564 <?php
3565        $this->footer();
3566Index: wp-admin/options-misc.php
3567===================================================================
3568--- wp-admin/options-misc.php   (revision 4745)
3569+++ wp-admin/options-misc.php   (working copy)
3570@@ -12,7 +12,7 @@
3571 <h2><?php _e('Miscellaneous Options') ?></h2>
3572 <form method="post" action="options.php">
3573 <?php wp_nonce_field('update-options') ?>
3574-<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" /></p>
3575+<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" /></p>
3576 <fieldset class="options">
3577 <legend><?php _e('Uploading'); ?></legend>
3578 <table class="editform optiontable">
3579@@ -44,7 +44,7 @@
3580 <p class="submit">
3581 <input type="hidden" name="action" value="update" />
3582 <input type="hidden" name="page_options" value="hack_file,use_linksupdate,uploads_use_yearmonth_folders,upload_path" />
3583-<input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
3584+<input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" />
3585 </p>
3586 </form>
3587 </div>
3588Index: wp-admin/upload.php
3589===================================================================
3590--- wp-admin/upload.php (revision 4745)
3591+++ wp-admin/upload.php (working copy)
3592@@ -62,7 +62,7 @@
3593 <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
3594 <head>
3595 <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
3596-<title><?php bloginfo('name') ?> &rsaquo; <?php _e('Uploads'); ?> &#8212; WordPress</title>
3597+<title><?php bloginfo('name') ?> &#8250; <?php _e('Uploads'); ?> &#8212; WordPress</title>
3598 <link rel="stylesheet" href="<?php echo get_option('siteurl') ?>/wp-admin/wp-admin.css?version=<?php bloginfo('version'); ?>" type="text/css" />
3599 <?php if ( ('rtl' == $wp_locale->text_direction) ) : ?>
3600 <link rel="stylesheet" href="<?php echo get_option('siteurl') ?>/wp-admin/rtl.css?version=<?php bloginfo('version'); ?>" type="text/css" />
3601@@ -109,7 +109,7 @@
3602                                'total' => ceil($total / $per),
3603                                'current' => $paged ? $paged : 1,
3604                                'prev_text' => '&laquo;',
3605-                               'next_text' => '&raquo;'
3606+                               'next_text' => '&#187;'
3607                        ));
3608                        if ( $page_links )
3609                                $page_links = "<span id='current-tab-nav'>: $page_links</span>";
3610Index: wp-admin/edit-form-comment.php
3611===================================================================
3612--- wp-admin/edit-form-comment.php      (revision 4745)
3613+++ wp-admin/edit-form-comment.php      (working copy)
3614@@ -1,5 +1,5 @@
3615 <?php
3616-$submitbutton_text = __('Edit Comment &raquo;');
3617+$submitbutton_text = __('Edit Comment &#187;');
3618 $toprow_title = sprintf(__('Editing Comment # %s'), $comment->comment_ID);
3619 $form_action = 'editedcomment';
3620 $form_extra = "' />\n<input type='hidden' name='comment_ID' value='" . $comment->comment_ID . "' />\n<input type='hidden' name='comment_post_ID' value='".$comment->comment_post_ID;
3621Index: wp-admin/edit-form.php
3622===================================================================
3623--- wp-admin/edit-form.php      (revision 4745)
3624+++ wp-admin/edit-form.php      (working copy)
3625@@ -62,7 +62,7 @@
3626 <?php endif; ?>
3627 
3628 <?php if ('bookmarklet' != $mode) {
3629-               echo '<input name="advanced" type="submit" id="advancededit" tabindex="7" value="' .  __('Advanced Editing &raquo;') . '" />';
3630+               echo '<input name="advanced" type="submit" id="advancededit" tabindex="7" value="' .  __('Advanced Editing &#187;') . '" />';
3631        } ?>
3632        <input name="referredby" type="hidden" id="referredby" value="<?php if ( wp_get_referer() ) echo urlencode(wp_get_referer()); ?>" />
3633 </p>
3634Index: wp-admin/upload-functions.php
3635===================================================================
3636--- wp-admin/upload-functions.php       (revision 4745)
3637+++ wp-admin/upload-functions.php       (working copy)
3638@@ -15,7 +15,7 @@
3639        $innerHTML = get_attachment_innerHTML( $id, false, $dims );
3640        if ( $image_src = get_attachment_icon_src() ) {
3641                $image_rel = wp_make_link_relative($image_src);
3642-               $innerHTML = '&nbsp;' . str_replace($image_src, $image_rel, $innerHTML);
3643+               $innerHTML = '&#160;' . str_replace($image_src, $image_rel, $innerHTML);
3644                $class = 'image';
3645        }
3646 
3647@@ -70,13 +70,13 @@
3648                                        echo '</a>';
3649                        ?></h2>
3650                        <span><?php
3651-                               echo '[&nbsp;';
3652+                               echo '[&#160;';
3653                                echo '<a href="' . get_permalink() . '">' . __('view') . '</a>';
3654-                               echo '&nbsp;|&nbsp;';
3655+                               echo '&#160;|&#160;';
3656                                        echo '<a href="' . attribute_escape(add_query_arg('action', 'edit')) . '" title="' . __('Edit this file') . '">' . __('edit') . '</a>';
3657-                               echo '&nbsp;|&nbsp;';
3658+                               echo '&#160;|&#160;';
3659                                echo '<a href="' . attribute_escape(remove_query_arg(array('action', 'ID'))) . '" title="' . __('Browse your files') . '">' . __('cancel') . '</a>';
3660-                               echo '&nbsp;]'; ?></span>
3661+                               echo '&#160;]'; ?></span>
3662                </div>
3663 
3664                <div id="upload-file-view" class="alignleft">
3665@@ -110,13 +110,13 @@
3666                                        echo '</a>';
3667                        ?></h2>
3668                        <span><?php
3669-                               echo '[&nbsp;';
3670+                               echo '[&#160;';
3671                                echo '<a href="' . get_permalink() . '">' . __('view') . '</a>';
3672-                               echo '&nbsp;|&nbsp;';
3673+                               echo '&#160;|&#160;';
3674                                        echo '<a href="' . attribute_escape(add_query_arg('action', 'view')) . '">' . __('links') . '</a>';
3675-                               echo '&nbsp;|&nbsp;';
3676+                               echo '&#160;|&#160;';
3677                                echo '<a href="' . attribute_escape(remove_query_arg(array('action','ID'))) . '" title="' . __('Browse your files') . '">' . __('cancel') . '</a>';
3678-                               echo '&nbsp;]'; ?></span>
3679+                               echo '&#160;]'; ?></span>
3680                </div>
3681 
3682        <div id="upload-file-view" class="alignleft">
3683@@ -161,7 +161,7 @@
3684 <?php  endif; ?>
3685                                        <?php wp_nonce_field( 'inlineuploading' ); ?>
3686                                        <div class="submit">
3687-                                               <input type="submit" value="<?php $id ? _e('Save') : _e('Upload'); ?> &raquo;" />
3688+                                               <input type="submit" value="<?php $id ? _e('Save') : _e('Upload'); ?> &#187;" />
3689                                        </div>
3690                                </td>
3691                        </tr>
3692Index: wp-admin/link-import.php
3693===================================================================
3694--- wp-admin/link-import.php    (revision 4745)
3695+++ wp-admin/link-import.php    (working copy)
3696@@ -55,7 +55,7 @@
3697 ?>
3698 </select></p>
3699 
3700-<p class="submit"><input type="submit" name="submit" value="<?php _e('Import OPML File &raquo;') ?>" /></p>
3701+<p class="submit"><input type="submit" name="submit" value="<?php _e('Import OPML File &#187;') ?>" /></p>
3702 </form>
3703 
3704 </div>
3705Index: wp-admin/options-discussion.php
3706===================================================================
3707--- wp-admin/options-discussion.php     (revision 4745)
3708+++ wp-admin/options-discussion.php     (working copy)
3709@@ -11,7 +11,7 @@
3710 <h2><?php _e('Discussion Options') ?></h2>
3711 <form method="post" action="options.php">
3712 <?php wp_nonce_field('update-options') ?>
3713-<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" /></p>
3714+<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" /></p>
3715 <fieldset class="options">
3716 <legend><?php echo __('Usual settings for an article:').'<br /><small><em>('.__('These settings may be overridden for individual articles.').')</em></small>'; ?></legend>
3717 <ul>
3718@@ -78,7 +78,7 @@
3719 <p class="submit">
3720 <input type="hidden" name="action" value="update" />
3721 <input type="hidden" name="page_options" value="default_pingback_flag,default_ping_status,default_comment_status,comments_notify,moderation_notify,comment_moderation,require_name_email,comment_whitelist,comment_max_links,moderation_keys,blacklist_keys" />
3722-<input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
3723+<input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" />
3724 </p>
3725 </form>
3726 </div>
3727Index: wp-admin/admin-header.php
3728===================================================================
3729--- wp-admin/admin-header.php   (revision 4745)
3730+++ wp-admin/admin-header.php   (working copy)
3731@@ -16,7 +16,7 @@
3732 <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
3733 <head>
3734 <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
3735-<title><?php bloginfo('name') ?> &rsaquo; <?php echo wp_specialchars( strip_tags( $title ) ); ?> &#8212; WordPress</title>
3736+<title><?php bloginfo('name') ?> &#8250; <?php echo wp_specialchars( strip_tags( $title ) ); ?> &#8212; WordPress</title>
3737 <link rel="stylesheet" href="<?php echo get_option('siteurl') ?>/wp-admin/wp-admin.css?version=<?php bloginfo('version'); ?>" type="text/css" />
3738 <?php if ( ('rtl' == $wp_locale->text_direction) ) : ?>
3739 <link rel="stylesheet" href="<?php echo get_option('siteurl') ?>/wp-admin/rtl.css?version=<?php bloginfo('version'); ?>" type="text/css" />
3740@@ -44,7 +44,7 @@
3741 </head>
3742 <body>
3743 <div id="wphead">
3744-<h1><?php echo wptexturize(get_option(('blogname'))); ?> <span>(<a href="<?php echo get_option('home') . '/'; ?>"><?php _e('View site &raquo;') ?></a>)</span></h1>
3745+<h1><?php echo wptexturize(get_option(('blogname'))); ?> <span>(<a href="<?php echo get_option('home') . '/'; ?>"><?php _e('View site &#187;') ?></a>)</span></h1>
3746 </div>
3747 <div id="user_info"><p><?php printf(__('Howdy, <strong>%s</strong>.'), $user_identity) ?> [<a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log out of this account') ?>"><?php _e('Sign Out'); ?></a>, <a href="profile.php"><?php _e('My Profile'); ?></a>] </p></div>
3748 
3749Index: wp-admin/edit.php
3750===================================================================
3751--- wp-admin/edit.php   (revision 4745)
3752+++ wp-admin/edit.php   (working copy)
3753@@ -75,7 +75,7 @@
3754 
3755 <form name="searchform" id="searchform" action="" method="get">
3756   <fieldset>
3757-  <legend><?php _e('Search Posts&hellip;') ?></legend>
3758+  <legend><?php _e('Search Posts&#8230;') ?></legend>
3759   <input type="text" name="s" value="<?php if (isset($s)) echo attribute_escape($s); ?>" size="17" />
3760   <input type="submit" name="submit" value="<?php _e('Search') ?>" class="button" />
3761   </fieldset>
3762@@ -87,7 +87,7 @@
3763 
3764 <form name="viewarc" id="viewarc" action="" method="get">
3765        <fieldset>
3766-       <legend><?php _e('Browse Month&hellip;') ?></legend>
3767+       <legend><?php _e('Browse Month&#8230;') ?></legend>
3768        <select name='m'>
3769        <?php
3770                foreach ($arc_result as $arc_row) {
3771@@ -114,7 +114,7 @@
3772 
3773 <form name="viewcat" id="viewcat" action="" method="get">
3774        <fieldset>
3775-       <legend><?php _e('Browse Category&hellip;') ?></legend>
3776+       <legend><?php _e('Browse Category&#8230;') ?></legend>
3777        <?php wp_dropdown_categories('show_option_all='.__('All').'&hide_empty=1&hierarchical=1&show_count=1&selected='.$cat);?>
3778        <input type="submit" name="submit" value="<?php _e('Show Category') ?>" class="button" />
3779        </fieldset>
3780@@ -251,7 +251,7 @@
3781 
3782 <div class="navigation">
3783 <div class="alignleft"><?php next_posts_link(__('&laquo; Previous Entries')) ?></div>
3784-<div class="alignright"><?php previous_posts_link(__('Next Entries &raquo;')) ?></div>
3785+<div class="alignright"><?php previous_posts_link(__('Next Entries &#187;')) ?></div>
3786 </div>
3787 
3788 <?php
3789Index: wp-admin/upgrade.php
3790===================================================================
3791--- wp-admin/upgrade.php        (revision 4745)
3792+++ wp-admin/upgrade.php        (working copy)
3793@@ -17,7 +17,7 @@
3794 <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
3795 <head>
3796        <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
3797-       <title><?php _e('WordPress &rsaquo; Upgrade'); ?></title>
3798+       <title><?php _e('WordPress &#8250; Upgrade'); ?></title>
3799        <link rel="stylesheet" href="<?php echo get_option('siteurl') ?>/wp-admin/install.css?version=<?php bloginfo('version'); ?>" type="text/css" />
3800        <?php if ( ('rtl' == $wp_locale->text_direction) ) : ?>
3801        <link rel="stylesheet" href="<?php echo get_option('siteurl') ?>/wp-admin/install-rtl.css?version=<?php bloginfo('version'); ?>" type="text/css" />
3802@@ -31,7 +31,7 @@
3803                $goback = attribute_escape(stripslashes(wp_get_referer()));
3804 ?>
3805 <p><?php _e('This file upgrades you from any previous version of WordPress to the latest. It may take a while though, so be patient.'); ?></p>
3806-<h2 class="step"><a href="upgrade.php?step=1&amp;backto=<?php echo $goback; ?>"><?php _e('Upgrade WordPress &raquo;'); ?></a></h2>
3807+<h2 class="step"><a href="upgrade.php?step=1&amp;backto=<?php echo $goback; ?>"><?php _e('Upgrade WordPress &#187;'); ?></a></h2>
3808 <?php
3809                break;
3810        case 1:
3811Index: wp-admin/index-extra.php
3812===================================================================
3813--- wp-admin/index-extra.php    (revision 4745)
3814+++ wp-admin/index-extra.php    (working copy)
3815@@ -8,7 +8,7 @@
3816 $rss = @fetch_rss('http://feeds.technorati.com/cosmos/rss/?url='. trailingslashit(get_option('home')) .'&partner=wordpress');
3817 if ( isset($rss->items) && 1 < count($rss->items) ) { // Technorati returns a 1-item feed when it has no results
3818 ?>
3819-<h3><?php _e('Incoming Links'); ?> <cite><a href="http://www.technorati.com/search/<?php echo trailingslashit(get_option('home')); ?>?partner=wordpress"><?php _e('More &raquo;'); ?></a></cite></h3>
3820+<h3><?php _e('Incoming Links'); ?> <cite><a href="http://www.technorati.com/search/<?php echo trailingslashit(get_option('home')); ?>?partner=wordpress"><?php _e('More &#187;'); ?></a></cite></h3>
3821 <ul>
3822 <?php
3823 $rss->items = array_slice($rss->items, 0, 10);
3824@@ -58,7 +58,7 @@
3825        }
3826 ?>
3827 </ul>
3828-<p class="readmore"><a href="http://planet.wordpress.org/"><?php _e('Read more'); ?> &raquo;</a></p>
3829+<p class="readmore"><a href="http://planet.wordpress.org/"><?php _e('Read more'); ?> &#187;</a></p>
3830 <?php
3831 }
3832 break;
3833Index: wp-admin/options.php
3834===================================================================
3835--- wp-admin/options.php        (revision 4745)
3836+++ wp-admin/options.php        (working copy)
3837@@ -120,7 +120,7 @@
3838   <form name="form" action="options.php" method="post" id="all-options">
3839   <?php wp_nonce_field('update-options') ?>
3840   <input type="hidden" name="action" value="update" />
3841-       <p class="submit"><input type="submit" name="Update" value="<?php _e('Update Options &raquo;') ?>" /></p>
3842+       <p class="submit"><input type="submit" name="Update" value="<?php _e('Update Options &#187;') ?>" /></p>
3843   <table width="98%">
3844 <?php
3845 $options = $wpdb->get_results("SELECT * FROM $wpdb->options ORDER BY option_name");
3846@@ -158,7 +158,7 @@
3847 ?>
3848   </table>
3849 <?php $options_to_update = implode(',', $options_to_update); ?>
3850-<p class="submit"><input type="hidden" name="page_options" value="<?php echo attribute_escape($options_to_update); ?>" /><input type="submit" name="Update" value="<?php _e('Update Options &raquo;') ?>" /></p>
3851+<p class="submit"><input type="hidden" name="page_options" value="<?php echo attribute_escape($options_to_update); ?>" /><input type="submit" name="Update" value="<?php _e('Update Options &#187;') ?>" /></p>
3852   </form>
3853 </div>
3854 
3855Index: wp-admin/profile.php
3856===================================================================
3857--- wp-admin/profile.php        (revision 4745)
3858+++ wp-admin/profile.php        (working copy)
3859@@ -37,7 +37,7 @@
3860 
3861 <?php do_action('profile_personal_options'); ?>
3862 
3863-<p class="submit"><input type="submit" value="<?php _e('Update Profile &raquo;') ?>" name="submit" /></p>
3864+<p class="submit"><input type="submit" value="<?php _e('Update Profile &#187;') ?>" name="submit" /></p>
3865 
3866 <fieldset>
3867 <legend><?php _e('Name'); ?></legend>
3868@@ -142,7 +142,7 @@
3869     endif;
3870     ?>
3871   </table>
3872-<p class="submit"><input type="submit" value="<?php _e('Update Profile &raquo;') ?>" name="submit" /></p>
3873+<p class="submit"><input type="submit" value="<?php _e('Update Profile &#187;') ?>" name="submit" /></p>
3874 </form>
3875 
3876 </div>
3877Index: wp-admin/edit-category-form.php
3878===================================================================
3879--- wp-admin/edit-category-form.php     (revision 4745)
3880+++ wp-admin/edit-category-form.php     (working copy)
3881@@ -1,14 +1,14 @@
3882 <?php
3883 if ( ! empty($cat_ID) ) {
3884        $heading = __('Edit Category');
3885-       $submit_text = __('Edit Category &raquo;');
3886+       $submit_text = __('Edit Category &#187;');
3887        $form = '<form name="editcat" id="editcat" method="post" action="categories.php">';
3888        $action = 'editedcat';
3889        $nonce_action = 'update-category_' . $cat_ID;
3890        do_action('edit_category_form_pre', $category);
3891 } else {
3892        $heading = __('Add Category');
3893-       $submit_text = __('Add Category &raquo;');
3894+       $submit_text = __('Add Category &#187;');
3895        $form = '<form name="addcat" id="addcat" method="post" action="categories.php">';
3896        $action = 'addcat';
3897        $nonce_action = 'add-category';
3898Index: wp-admin/user-edit.php
3899===================================================================
3900--- wp-admin/user-edit.php      (revision 4745)
3901+++ wp-admin/user-edit.php      (working copy)
3902@@ -210,7 +210,7 @@
3903 <p class="submit">
3904        <input type="hidden" name="action" value="update" />
3905        <input type="hidden" name="user_id" id="user_id" value="<?php echo $user_id; ?>" />
3906-       <input type="submit" value="<?php _e('Update User &raquo;') ?>" name="submit" />
3907+       <input type="submit" value="<?php _e('Update User &#187;') ?>" name="submit" />
3908  </p>
3909 </form>
3910 </div>
3911Index: wp-admin/options-reading.php
3912===================================================================
3913--- wp-admin/options-reading.php        (revision 4745)
3914+++ wp-admin/options-reading.php        (working copy)
3915@@ -11,7 +11,7 @@
3916 <h2><?php _e('Reading Options') ?></h2>
3917 <form name="form1" method="post" action="options.php">
3918 <?php wp_nonce_field('update-options') ?>
3919-<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" /></p>
3920+<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" /></p>
3921 <?php if ( get_pages() ): ?>
3922 <fieldset class="options">
3923 <legend><?php _e('Front Page') ?></legend>
3924@@ -91,7 +91,7 @@
3925 <p class="submit">
3926 <input type="hidden" name="action" value="update" />
3927 <input type="hidden" name="page_options" value="posts_per_page,posts_per_rss,rss_use_excerpt,blog_charset,gzipcompression,show_on_front,page_on_front,page_for_posts" />
3928-<input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
3929+<input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" />
3930 </p>
3931 </form>
3932 </div>
3933Index: wp-admin/setup-config.php
3934===================================================================
3935--- wp-admin/setup-config.php   (revision 4745)
3936+++ wp-admin/setup-config.php   (working copy)
3937@@ -18,7 +18,7 @@
3938 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3939 <html xmlns="http://www.w3.org/1999/xhtml">
3940 <head>
3941-<title>WordPress &rsaquo; Setup Configuration File</title>
3942+<title>WordPress &#8250; Setup Configuration File</title>
3943 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3944 <style media="screen" type="text/css">
3945        <!--
3946Index: wp-admin/page-new.php
3947===================================================================
3948--- wp-admin/page-new.php       (revision 4745)
3949+++ wp-admin/page-new.php       (working copy)
3950@@ -9,7 +9,7 @@
3951 ?>
3952 
3953 <?php if ( (isset($_GET['posted']) && $_GET['posted'])  || isset($_GET['saved'])  ) : ?>
3954-<div id="message" class="updated fade"><p><strong><?php _e('Page saved.') ?></strong> <a href="edit-pages.php"><?php _e('Manage pages'); ?></a> | <a href="<?php echo get_page_link( isset($_GET['posted']) ? $_GET['posted'] : $_GET['saved'] ); ?>"><?php _e('View page') ; ?> &raquo;</a></p></div>
3955+<div id="message" class="updated fade"><p><strong><?php _e('Page saved.') ?></strong> <a href="edit-pages.php"><?php _e('Manage pages'); ?></a> | <a href="<?php echo get_page_link( isset($_GET['posted']) ? $_GET['posted'] : $_GET['saved'] ); ?>"><?php _e('View page') ; ?> &#187;</a></p></div>
3956 <?php endif; ?>
3957 
3958 <?php
3959Index: wp-admin/link-manager.php
3960===================================================================
3961--- wp-admin/link-manager.php   (revision 4745)
3962+++ wp-admin/link-manager.php   (working copy)
3963@@ -92,7 +92,7 @@
3964 
3965 printf(__('Currently showing %1$s links ordered by %2$s'), $select_cat, $select_order);
3966 ?>
3967-<input type="submit" name="action" value="<?php _e('Update &raquo;') ?>" /></p>
3968+<input type="submit" name="action" value="<?php _e('Update &#187;') ?>" /></p>
3969 </form>
3970 <?php
3971 $link_columns = array(
3972@@ -195,7 +195,7 @@
3973 
3974 <div id="ajax-response"></div>
3975 
3976-<p class="submit"><input type="submit" class="button" name="deletebookmarks" id="deletebookmarks" value="<?php _e('Delete Checked Links') ?> &raquo;" onclick="return confirm('<?php echo js_escape(__("You are about to delete these links permanently.\n'Cancel' to stop, 'OK' to delete.")); ?>')" /></p>
3977+<p class="submit"><input type="submit" class="button" name="deletebookmarks" id="deletebookmarks" value="<?php _e('Delete Checked Links') ?> &#187;" onclick="return confirm('<?php echo js_escape(__("You are about to delete these links permanently.\n'Cancel' to stop, 'OK' to delete.")); ?>')" /></p>
3978 </form>
3979 
3980 <?php } ?>
3981Index: wp-admin/install.php
3982===================================================================
3983--- wp-admin/install.php        (revision 4745)
3984+++ wp-admin/install.php        (working copy)
3985@@ -2,7 +2,7 @@
3986 define('WP_INSTALLING', true);
3987 if (!file_exists('../wp-config.php')) {
3988   require_once('../wp-includes/functions.php');
3989-  wp_die("There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started. Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>. You can <a href='setup-config.php'>create a <code>wp-config.php</code> file through a web interface</a>, but this doesn't work for all server setups. The safest way is to manually create the file.", "WordPress &rsaquo; Error");
3990+  wp_die("There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started. Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>. You can <a href='setup-config.php'>create a <code>wp-config.php</code> file through a web interface</a>, but this doesn't work for all server setups. The safest way is to manually create the file.", "WordPress &#8250; Error");
3991 }
3992 
3993 require_once('../wp-config.php');
3994@@ -18,7 +18,7 @@
3995 <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
3996 <head>
3997        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3998-       <title><?php _e('WordPress &rsaquo; Installation'); ?></title>
3999+       <title><?php _e('WordPress &#8250; Installation'); ?></title>
4000        <link rel="stylesheet" href="install.css?version=<?php bloginfo('version'); ?>" type="text/css" />
4001        <?php if ( ('rtl' == $wp_locale->text_direction) ) : ?>
4002        <link rel="stylesheet" href="install-rtl.css?version=<?php bloginfo('version'); ?>" type="text/css" />
4003@@ -34,7 +34,7 @@
4004        case 0:
4005 ?>
4006 <p><?php printf(__('Welcome to WordPress installation. We&#8217;re now going to go through a few steps to get you up and running with the latest in personal publishing platforms. You may want to peruse the <a href="%s">ReadMe documentation</a> at your leisure.'), '../readme.html'); ?></p>
4007-<h2 class="step"><a href="install.php?step=1"><?php _e('First Step &raquo;'); ?></a></h2>
4008+<h2 class="step"><a href="install.php?step=1"><?php _e('First Step &#187;'); ?></a></h2>
4009 <?php
4010                break;
4011        case 1:
4012@@ -58,7 +58,7 @@
4013                </tr>
4014        </table>
4015        <p><em><?php _e('Double-check that email address before continuing.'); ?></em></p>
4016-       <h2 class="step"><input type="submit" name="Submit" value="<?php _e('Continue to Second Step &raquo;'); ?>" /></h2>
4017+       <h2 class="step"><input type="submit" name="Submit" value="<?php _e('Continue to Second Step &#187;'); ?>" /></h2>
4018 </form>
4019 
4020 <?php
4021Index: wp-admin/bookmarklet.php
4022===================================================================
4023--- wp-admin/bookmarklet.php    (revision 4745)
4024+++ wp-admin/bookmarklet.php    (working copy)
4025@@ -49,7 +49,7 @@
4026 ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4027 <html xmlns="http://www.w3.org/1999/xhtml">
4028 <head>
4029-<title><?php bloginfo('name') ?> &rsaquo; Bookmarklet &#8212; WordPress</title>
4030+<title><?php bloginfo('name') ?> &#8250; Bookmarklet &#8212; WordPress</title>
4031 <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
4032 <link rel="stylesheet" href="wp-admin.css" type="text/css" />
4033 
4034Index: wp-admin/options-permalink.php
4035===================================================================
4036--- wp-admin/options-permalink.php      (revision 4745)
4037+++ wp-admin/options-permalink.php      (working copy)
4038@@ -104,7 +104,7 @@
4039   <h2><?php _e('Customize Permalink Structure') ?></h2>
4040 <form name="form" action="options-permalink.php" method="post">
4041 <?php wp_nonce_field('update-permalink') ?>
4042-<p class="submit"><input type="submit" name="submit" value="<?php _e('Update Permalink Structure &raquo;') ?>" /></p>
4043+<p class="submit"><input type="submit" name="submit" value="<?php _e('Update Permalink Structure &#187;') ?>" /></p>
4044   <p><?php _e('By default WordPress uses web <abbr title="Universal Resource Locator">URL</abbr>s which have question marks and lots of numbers in them, however WordPress offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links. A <a href="http://codex.wordpress.org/Using_Permalinks">number of tags are available</a>, and here are some examples to get you started.'); ?></p>
4045 
4046 <?php
4047@@ -123,19 +123,19 @@
4048 <p>
4049        <label>
4050 <input name="selection" type="radio" value="" class="tog" <?php checked('', $permalink_structure); ?> />
4051-<?php _e('Default'); ?><br /> <span> &raquo; <code><?php echo get_option('home'); ?>/?p=123</code></span>
4052+<?php _e('Default'); ?><br /> <span> &#187; <code><?php echo get_option('home'); ?>/?p=123</code></span>
4053    </label>
4054 </p>
4055 <p>
4056        <label>
4057 <input name="selection" type="radio" value="<?php echo $structures[1]; ?>" class="tog" <?php checked($structures[1], $permalink_structure); ?> />
4058-<?php _e('Date and name based'); ?><br /> <span> &raquo; <code><?php echo get_option('home') . $prefix . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/sample-post/'; ?></code></span>
4059+<?php _e('Date and name based'); ?><br /> <span> &#187; <code><?php echo get_option('home') . $prefix . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/sample-post/'; ?></code></span>
4060    </label>
4061 </p>
4062 <p>
4063        <label>
4064 <input name="selection" type="radio" value="<?php echo $structures[2]; ?>" class="tog" <?php checked($structures[2], $permalink_structure); ?> />
4065-<?php _e('Numeric'); ?><br /> <span> &raquo; <code><?php echo get_option('home') . $prefix  ; ?>/archives/123</code></span>
4066+<?php _e('Numeric'); ?><br /> <span> &#187; <code><?php echo get_option('home') . $prefix  ; ?>/archives/123</code></span>
4067    </label>
4068 </p>
4069 <p>
4070@@ -161,7 +161,7 @@
4071   <?php _e('Category base'); ?>: <input name="category_base" type="text" class="code"  value="<?php echo attribute_escape($category_base); ?>" size="30" />
4072      </p>
4073     <p class="submit">
4074-      <input type="submit" name="submit" value="<?php _e('Update Permalink Structure &raquo;') ?>" />
4075+      <input type="submit" name="submit" value="<?php _e('Update Permalink Structure &#187;') ?>" />
4076     </p>
4077   </form>
4078 <?php if ( $permalink_structure && !$usingpi && !$writable ) : ?>
4079Index: wp-admin/options-writing.php
4080===================================================================
4081--- wp-admin/options-writing.php        (revision 4745)
4082+++ wp-admin/options-writing.php        (working copy)
4083@@ -11,7 +11,7 @@
4084 <h2><?php _e('Writing Options') ?></h2>
4085 <form method="post" action="options.php">
4086 <?php wp_nonce_field('update-options') ?>
4087-<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" /></p>
4088+<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" /></p>
4089 <table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">
4090 <tr valign="top">
4091 <th width="33%" scope="row"> <?php _e('Size of the post box:') ?></th>
4092@@ -112,7 +112,7 @@
4093 <p class="submit">
4094 <input type="hidden" name="action" value="update" />
4095 <input type="hidden" name="page_options" value="default_post_edit_rows,use_smilies,ping_sites,mailserver_url,mailserver_port,mailserver_login,mailserver_pass,default_category,default_email_category,use_balanceTags,default_link_category" />
4096-<input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
4097+<input type="submit" name="Submit" value="<?php _e('Update Options &#187;') ?>" />
4098 </p>
4099 </form>
4100 </div>
4101Index: wp-admin/export.php
4102===================================================================
4103--- wp-admin/export.php (revision 4745)
4104+++ wp-admin/export.php (working copy)
4105@@ -35,7 +35,7 @@
4106 </td>
4107 </tr>
4108 </table>
4109-<p class="submit"><input type="submit" name="submit" value="<?php _e('Download Export File'); ?> &raquo;" />
4110+<p class="submit"><input type="submit" name="submit" value="<?php _e('Download Export File'); ?> &#187;" />
4111 <input type="hidden" name="download" value="true" />
4112 </p>
4113 </form>
4114Index: wp-admin/plugin-editor.php
4115===================================================================
4116--- wp-admin/plugin-editor.php  (revision 4745)
4117+++ wp-admin/plugin-editor.php  (working copy)
4118@@ -92,7 +92,7 @@
4119 <?php if ( is_writeable($real_file) ) : ?>
4120        <p class="submit">
4121        <?php
4122-               echo "<input type='submit' name='submit' value='        " . __('Update File &raquo;') . "' tabindex='2' />";
4123+               echo "<input type='submit' name='submit' value='        " . __('Update File &#187;') . "' tabindex='2' />";
4124        ?>
4125        </p>
4126 <?php else : ?>
4127@@ -104,7 +104,7 @@
4128                echo '<div class="error"><p>' . __('Oops, no such file exists! Double check the name and try again, merci.') . '</p></div>';
4129        }
4130 ?>
4131-<div class="clear"> &nbsp; </div>
4132+<div class="clear"> &#160; </div>
4133 </div>
4134 <?php
4135 break;
4136Index: wp-admin/edit-pages.php
4137===================================================================
4138--- wp-admin/edit-pages.php     (revision 4745)
4139+++ wp-admin/edit-pages.php     (working copy)
4140@@ -8,11 +8,11 @@
4141 
4142 <div class="wrap">
4143 <h2><?php _e('Page Management'); ?></h2>
4144-<p><?php _e('Pages are like posts except they live outside of the normal blog chronology and can be hierarchical. You can use pages to organize and manage any amount of content.'); ?> <a href="page-new.php"><?php _e('Create a new page &raquo;'); ?></a></p>
4145+<p><?php _e('Pages are like posts except they live outside of the normal blog chronology and can be hierarchical. You can use pages to organize and manage any amount of content.'); ?> <a href="page-new.php"><?php _e('Create a new page &#187;'); ?></a></p>
4146 
4147 <form name="searchform" action="" method="get">
4148        <fieldset>
4149-       <legend><?php _e('Search Pages&hellip;') ?></legend>
4150+       <legend><?php _e('Search Pages&#8230;') ?></legend>
4151        <input type="text" name="s" value="<?php if (isset($_GET['s'])) echo attribute_escape($_GET['s']); ?>" size="17" />
4152        <input type="submit" name="submit" value="<?php _e('Search') ?>"  />
4153        </fieldset>
4154@@ -55,7 +55,7 @@
4155 } // end if ($posts)
4156 ?>
4157 
4158-<h3><a href="page-new.php"><?php _e('Create New Page &raquo;'); ?></a></h3>
4159+<h3><a href="page-new.php"><?php _e('Create New Page &#187;'); ?></a></h3>
4160 
4161 </div>
4162 
4163Index: wp-admin/themes.php
4164===================================================================
4165--- wp-admin/themes.php (revision 4745)
4166+++ wp-admin/themes.php (working copy)
4167@@ -26,7 +26,7 @@
4168 <?php if ( ! validate_current_theme() ) : ?>
4169 <div id="message1" class="updated fade"><p><?php _e('The active theme is broken.  Reverting to the default theme.'); ?></p></div>
4170 <?php elseif ( isset($_GET['activated']) ) : ?>
4171-<div id="message2" class="updated fade"><p><?php printf(__('New theme activated. <a href="%s">View site &raquo;</a>'), get_bloginfo('home') . '/'); ?></p></div>
4172+<div id="message2" class="updated fade"><p><?php printf(__('New theme activated. <a href="%s">View site &#187;</a>'), get_bloginfo('home') . '/'); ?></p></div>
4173 <?php endif; ?>
4174 
4175 <?php