<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>WSS v2</title><link>http://mindsharpblogs.com/todd/category/9.aspx</link><description>Windows SharePoint Services version 2</description><managingEditor>Todd Bleeker</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Todd Bleeker</dc:creator><title>Snow Web Part, Part Two - Crystallized</title><link>http://mindsharpblogs.com/todd/archive/2006/12/20/1431.aspx</link><pubDate>Wed, 20 Dec 2006 13:33:00 GMT</pubDate><guid>http://mindsharpblogs.com/todd/archive/2006/12/20/1431.aspx</guid><wfw:comment>http://mindsharpblogs.com/todd/comments/1431.aspx</wfw:comment><comments>http://mindsharpblogs.com/todd/archive/2006/12/20/1431.aspx#Feedback</comments><slash:comments>66</slash:comments><wfw:commentRss>http://mindsharpblogs.com/todd/comments/commentRss/1431.aspx</wfw:commentRss><trackback:ping>http://mindsharpblogs.com/todd/services/trackbacks/1431.aspx</trackback:ping><description>&lt;P&gt;&lt;FONT face="Courier New"&gt;The &lt;/FONT&gt;&lt;A href="http://mindsharpblogs.com/todd/archive/2005/12/20/906.aspx" target=_blank&gt;&lt;FONT face="Courier New"&gt;Snow Web Part&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt; I created last year still works on any SharePoint site (v2 or v3):&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New"&gt;&lt;IMG src="http://farm1.static.flickr.com/127/328789229_01449ef218_o.png"&gt;&lt;/IMG&gt; &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;You can download&amp;nbsp;last year's &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;snow.dwp&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; Web Part &lt;A href="http://mindsharpblogs.com/files/snow.zip"&gt;here&lt;/A&gt;. Just import it onto a page.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;I thought it would be fun to release another simple, holiday &lt;/FONT&gt;&lt;A href="http://office.microsoft.com/en-us/assistance/HA011608971033.aspx" target=_blank&gt;&lt;FONT face="Courier New"&gt;CEWP&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;IMG src="http://static.flickr.com/123/328413308_b40d8ae89d_o.png" border=1&gt;&amp;nbsp;&lt;BR&gt;(50 plus images in the AJAX-style slide show)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;The &lt;/FONT&gt;&lt;A href="http://mindsharp.com/" target=_blank&gt;&lt;FONT face="Courier New"&gt;Mindsharp&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt; staff enjoyed the images I showed them at &lt;/FONT&gt;&lt;A href="http://snowcrystals.com/" target=_blank&gt;&lt;FONT face="Courier New"&gt;SnowCrystals.com&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt;; so I asked the image owners if I could wrap their awesome photos into a Web Part. They gave me permission to proceed. I also thought I could use the opportunity to show off how the CEWP can use the &lt;/FONT&gt;&lt;A href="http://msdn2.microsoft.com/en-gb/library/ms448359.aspx" target=_blank&gt;&lt;FONT face="Courier New"&gt;RPC URL Protocol&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt; to access a List/Library in either WSS v2, SPS, WSS v3, or MOSS. So, &lt;/FONT&gt;&lt;A href="http://www.the-north-pole.com/carols/midi/let_snow.mid" target=_blank&gt;&lt;FONT face="Courier New"&gt;let it snow, let it snow, let it snow&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New"&gt;&lt;/IMG&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Use the following steps (generic steps given to prevent WSS version confusion) to create a standard Picture Library, add the images, and point the CEWP at the Library.&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Upload my snowcrystals.stp (&lt;/FONT&gt;&lt;A href="http://mindsharpblogs.com/files/SnowCrystalsSTPv2.zip"&gt;&lt;FONT face="Courier New"&gt;WSS v2 version&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt; or&amp;nbsp;&lt;/FONT&gt;&lt;A href="http://mindsharpblogs.com/files/SnowCrystalsSTPv3.zip"&gt;&lt;FONT face="Courier New"&gt;WSS v3 version&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt; - both custom List Templates target the STS 1033 site definition; that is Team Sites, Blank Sites, and Document Workspaces using the US English language) into your list template gallery on the top-level site of any site collection.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Create a new Picture Library using the uploaded list template.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;OR, if you are using a site based&amp;nbsp;a site definition other than STS or in a locale other than 1033, or you just want to create the Picture Library&amp;nbsp;from scratch, use these alternate instructions:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Download the &lt;/FONT&gt;&lt;A href="http://mindsharpblogs.com/files/SnowCrystals.zip"&gt;&lt;FONT face="Courier New"&gt;snow crystal images&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt; (I made them all 200x200).&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Unzip the images to your local file system.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Create a Picture Library named SnowCrystals.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Upload the images into the new Picture Library.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;After the Picture Library is created, the following steps are required:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Ensure everyone that will see the Web Part has at least read access to the new Picture Library.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Navigate to Picture Library Settings. In the URL, you will see the List as a parameter in the QueryString. It looks like the bolded section below (the v2 version will not have escape characters, either is OK):&lt;BR&gt;http://[site]/_layouts/listedit.aspx?List=&lt;STRONG&gt;%7B2F6C6FAC%2D7E9A%2D42C2%2DBA99%2DCC986C67D7AE%7D&lt;/STRONG&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Copy this List ID.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;On the page that you want to display the snow crystals:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Put my &lt;/FONT&gt;&lt;A href="http://mindsharpblogs.com/files/SnowCrystalsDWP.zip"&gt;&lt;FONT face="Courier New"&gt;snowcrystals.dwp&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt; CEWP onto any WSS page.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Choose Modify Shared Web Part from the Web Part's smart menu.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Click the Source Editor... button in the tool pane and at the top of the JavaScript modify the following constants:&lt;BR&gt;Paste the List ID you copied from the URL into the LIST_ID constant as follows:&lt;BR&gt;var LIST_ID = "%7B2F6C6FAC%2D7E9A%2D42C2%2DBA99%2DCC986C67D7AE%7D";&lt;BR&gt;&lt;BR&gt;Optionally, change the wait seconds to the number of seconds you want each image to show before displaying the next image in the library:&lt;BR&gt;var WAIT_SECS = 1;&lt;BR&gt;&lt;BR&gt;If the Picture Library&amp;nbsp;IS on the same site&amp;nbsp;as the Web Part (easiest) continue on to the next step. Otherwise, change the URL constant to the Web Application (same as v2 Virtual Server&amp;nbsp;including both&amp;nbsp;protocol and domain -&amp;nbsp;do not end with a forward slash). Also, change the ROOT_URL to the&amp;nbsp;fully qualified&amp;nbsp;location to the site where the SnowCrystals Picture Library is located.&amp;nbsp;If the library's URL is http://portal/sites/subsite/SnowCrystals/Form/AllItems.aspx, change these two lines&amp;nbsp;as follows&amp;nbsp;(they default to the&amp;nbsp;values for&amp;nbsp;the current site):&lt;BR&gt;var WEB_URL = LOC_HREF.substring(0, LOC_HREF.indexOf(document.domain))+&amp;nbsp;document.domain;&lt;BR&gt;var SITE_URL = LOC_HREF.substring(0,LOC_HREF.lastIndexOf('/'));&lt;BR&gt;&lt;BR&gt;to these:&lt;BR&gt;var WEB_URL = "http://portal";&lt;BR&gt;var SITE_URL = http://portal/sites/subsite;&lt;BR&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Click Save and then Exit Edit Mode.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face="Courier New"&gt;Be amused.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Much bigger and crisper images can be seen in the three galleries at &lt;A href="http://snowcrystals.com/" target=_blank&gt;http://snowcrystals.com&lt;/A&gt;. There&amp;nbsp;are also lots of interesting articles about snow crystals including a &lt;A href="http://www.its.caltech.edu/~atomic/snowcrystals/alike/alike.htm" target=_blank&gt;scientific discussion about whether two snow flakes could ever be alike or not&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;In my next post, I'll explain how the code inside the Web Part works and how it can be used in other scenarios.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;Todd /&amp;gt;&lt;TODD /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://mindsharpblogs.com/todd/aggbug/1431.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Todd Bleeker</dc:creator><title>From 40 to 50 to 60 to 12 in six years flat</title><link>http://mindsharpblogs.com/todd/archive/2006/12/18/1418.aspx</link><pubDate>Mon, 18 Dec 2006 14:01:00 GMT</pubDate><guid>http://mindsharpblogs.com/todd/archive/2006/12/18/1418.aspx</guid><wfw:comment>http://mindsharpblogs.com/todd/comments/1418.aspx</wfw:comment><comments>http://mindsharpblogs.com/todd/archive/2006/12/18/1418.aspx#Feedback</comments><slash:comments>36</slash:comments><wfw:commentRss>http://mindsharpblogs.com/todd/comments/commentRss/1418.aspx</wfw:commentRss><trackback:ping>http://mindsharpblogs.com/todd/services/trackbacks/1418.aspx</trackback:ping><description>&lt;P&gt;&lt;FONT face="Courier New"&gt;As was the &amp;#8220;60 Hive&amp;#8221;, the &amp;#8220;12 Hive&amp;#8221; is the starting place for everything SharePoint in WSS v3. I&amp;#8217;ve mapped some of the key IIS virtual directories and built-in site definitions below:&lt;BR&gt;&lt;A href="http://static.flickr.com/143/326353344_c88c10d666_o.png" target=_blank&gt;&lt;IMG onmouseover="JavaScript:this.src='http://static.flickr.com/143/326353344_c88c10d666_o.png'" onmouseout="JavaScript:this.src='http://static.flickr.com/143/326353344_c88c10d666_m.jpg'" src="http://static.flickr.com/143/326353344_c88c10d666_m.jpg" border=0&gt;&lt;/IMG&gt;&lt;/A&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;But what is it about Microsoft versioning that goofs up all their version numbers? You may have noticed that I've changed the name of my blog from "the 60 Hive" to "the 12 Hive" to match the new WSS v3 structure. But, 60 --&amp;gt; 12, what is Microsoft thinking? Is this twice (6.0x2=12) the release or perhaps one fifth the release (60*0.2=12)?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Not that Microsoft has a good track record on this front. Consider the Microsoft Windows operating system was first labeled with standard numerical version numbers (Windows 1.0 through Windows 3.11), then by years (Windows 95, Windows 98, Windows 2000), and also by alphanumeric codes (Windows Me, Windows XP). All the while versions of Windows from 95 on have continued the standard numerical versions internally: Windows 95 is Windows 4.0, 98 is 4.10, 2000 is (NT) 5.0, Me is 4.9, XP is (NT) 5.1, 2003 is (NT) 5.2, and Vista is (NT) 6.0 (excerpts from WikiPedia.com).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Windows Operating System Versions&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 1.0&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 2.0&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 3.0&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 3.1&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 3.11&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 3.51 (NT)&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 95&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 98&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 4 (NT)&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 2000&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows ME&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows XP&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows 2003&lt;BR&gt;&amp;#8226;&amp;nbsp;Windows Vista&lt;BR&gt;(more details here)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;While officially part of the operating system Windows SharePoint Services version 3 (WSS v3) is the foundation for Microsoft Office SharePoint Server 2007 (MOSS). Coupled with tight integration in the Office clients and WSS v3 feels like it is part of Office. But the Office team hasn&amp;#8217;t done much better on this front:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Microsoft Office Versions (excerpts pieced together from various sources and just from my memory)&lt;BR&gt;&amp;#8226;&amp;nbsp;Office 3.0 released August 30, 1992: CD-ROM version: Word 2.0c, Excel 4.0a, PowerPoint 3.0, Mail (repackaged as Office 92).&lt;BR&gt;&amp;#8226;&amp;nbsp;Office 4.0 released January 17, 1994: Word 6.0, Excel 4.0, PowerPoint 3.0. &lt;BR&gt;&amp;#8226;&amp;nbsp;Office for NT 4.2 released July 3, 1994: Word 6.0 [32-bit, i386 and Alpha], Excel 5.0 [32-bit, i386 and Alpha], PowerPoint 4.0 [16-bit], "Microsoft Office Manager".&lt;BR&gt;&amp;#8226;&amp;nbsp;Office 4.3 released June 2, 1994: the last 16-bit version; Word 6.0, Excel 5.0, PowerPoint 4.0, Mail 3.2 and in the pro version, Access 2.0. Last version to support Windows 3.x.&lt;BR&gt;&amp;#8226;&amp;nbsp;Office 95 (7.0) released August 30, 1995: Word 7 for Windows 95, etc. - coincided with the Windows 95 release.&lt;BR&gt;&amp;#8226;&amp;nbsp;Office 97 (8.0) released December 30, 1996: Word 97, etc. was published on CD-ROM as well as on a set of 45 3&amp;#189;-inch floppy disks), was Y2K safe with Service Release 2. &lt;BR&gt;&amp;#8226;&amp;nbsp;Office 2000 (9.0) released January 27, 1999: Word 2000, etc. Last version to support Windows 95. &lt;BR&gt;&amp;#8226;&amp;nbsp;Office XP (10.0) released May 31, 2001: Word 2002, etc. Last version to support Windows 98/ME. Improved support for working in restricted accounts under Windows 2000/XP &lt;BR&gt;&amp;#8226;&amp;nbsp;Office 2003 (11.0) released November 17, 2003: Word 2003, etc.&lt;BR&gt;&amp;#8226;&amp;nbsp;Office 2007 (12.0) released November 6, 2006: Word 2007, etc.&lt;BR&gt;&amp;#8226;&amp;nbsp;Office ???? (13.0) will never be released, Microsoft is skipping Version 13 and going straight to Office 14.0&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;So, I predict that a few years from now my blog will be renamed to &amp;#8220;the 14 Hive&amp;#8221; (that sounds hard to say, doesn't it?).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;As an aside, I&amp;#8217;ve been traveling and training for the last 12 (like the 12 Hive)&amp;nbsp;of 15 weeks (yikes!). My evenings have also been very full learning, writing courseware, learning, writing book chapters, and learning. Never stop learning or you become an old dog (I guess) - no new tricks, right?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Watch for new tricks in the coming weeks.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;TODD /&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;PS: 40 (four ohhh)&amp;nbsp;was FrontPage Server Extentions 2002, 50 (five ohhh - like the TV show)&amp;nbsp;was SharePoint Team Services, 60 (six ohhh) was Windows SharePoint Services 2.0, and 12 (twelve) is Windows SharePoint Services 3.0. It's not twelve ohhh but at first it's hard not to say that.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;Todd /&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src ="http://mindsharpblogs.com/todd/aggbug/1418.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Todd Bleeker</dc:creator><title>Kevin Buchan's OWA replacement CEWPs</title><link>http://mindsharpblogs.com/todd/archive/2006/08/20/1257.aspx</link><pubDate>Sun, 20 Aug 2006 18:10:00 GMT</pubDate><guid>http://mindsharpblogs.com/todd/archive/2006/08/20/1257.aspx</guid><wfw:comment>http://mindsharpblogs.com/todd/comments/1257.aspx</wfw:comment><comments>http://mindsharpblogs.com/todd/archive/2006/08/20/1257.aspx#Feedback</comments><slash:comments>37</slash:comments><wfw:commentRss>http://mindsharpblogs.com/todd/comments/commentRss/1257.aspx</wfw:commentRss><trackback:ping>http://mindsharpblogs.com/todd/services/trackbacks/1257.aspx</trackback:ping><description>&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;Kevin took the code from my recent post and created these CEWP DWPs. Each has a "New" button for its own element type. In his own words, "It's a crazy simple solution." Click on each image to download a zipped version of the DWP file.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;A href="http://mindsharpblogs.com/files/MyOutlookCalendar.zip"&gt;My Outlook Calendar&lt;/A&gt;:&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://mindsharpblogs.com/files/MyOutlookCalendar.zip"&gt;&lt;IMG src="http://static.flickr.com/61/220478722_f1b5a6c2d9_o.png" border=0&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Consolas&gt;&lt;A href="http://mindsharpblogs.com/files/MyOutlookContacts.zip"&gt;My Outlook Contacts&lt;/A&gt;:&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://mindsharpblogs.com/files/MyOutlookContacts.zip"&gt;&lt;IMG src="http://static.flickr.com/63/220478723_5e6406a584_o.png" border=0&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Consolas&gt;&lt;A href="http://mindsharpblogs.com/files/MyOutlookInbox.zip"&gt;My Outlook Inbox&lt;/A&gt;:&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://mindsharpblogs.com/files/MyOutlookInbox.zip"&gt;&lt;IMG src="http://static.flickr.com/68/220478725_3eba3abb7e_o.png" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;BR&gt;&lt;FONT face=Consolas&gt;Enjoy,&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;Todd /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://mindsharpblogs.com/todd/aggbug/1257.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Todd Bleeker</dc:creator><title>CEWP vs. OWA Web Part</title><link>http://mindsharpblogs.com/todd/archive/2006/08/17/1250.aspx</link><pubDate>Thu, 17 Aug 2006 08:59:00 GMT</pubDate><guid>http://mindsharpblogs.com/todd/archive/2006/08/17/1250.aspx</guid><wfw:comment>http://mindsharpblogs.com/todd/comments/1250.aspx</wfw:comment><comments>http://mindsharpblogs.com/todd/archive/2006/08/17/1250.aspx#Feedback</comments><slash:comments>40</slash:comments><wfw:commentRss>http://mindsharpblogs.com/todd/comments/commentRss/1250.aspx</wfw:commentRss><trackback:ping>http://mindsharpblogs.com/todd/services/trackbacks/1250.aspx</trackback:ping><description>&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;More CEWP treasures languishing on my hard drive. I haven't checked to see if others have posted similar CEWP ideas but I doubt it.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;The Out-of-the-Box (OOB) OWA Web Part initially looks like this:&lt;/FONT&gt;&lt;o:p&gt;&lt;IMG src="http://static.flickr.com/81/217689174_5f620063ea_o.png"&gt; &lt;/P&gt;&lt;/o:p&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;It must be configured (something most user&amp;#8217;s find difficult):&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;IMG src="http://static.flickr.com/55/217689175_2455b3bd3a_o.png"&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;And it has limited functionality, you are often prompted to authenticate again, and it takes longer to load than the rest of the page:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;IMG src="http://static.flickr.com/86/217689176_255ce0ee61_o.png"&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;The following CEWP lets users that have the Outlook client on their desktop work with any folder in a much richer interface than the OOB OWA Web Part. Since it just shows the local folders from Outlook, it also doesn't require configuration like the OOB OWA Web Part does. The Inbox and Tasks are used in the code sample but it could show Contacts, a public folder, etc. The sample also shows two folders but you can just show one or show a whole bunch organized within HTML however you&amp;#8217;d like to display them. Of course, it&amp;#8217;s only as up to date as Outlook:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&lt;IMG src="http://static.flickr.com/90/217694739_f9766759da_o.png"&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;!-- Copy and paste this code into a CEWP --&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;OBJECT classid="CLSID:0006F063-0000-0000-C000-000000000046"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;width="100%"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;param name="Folder" value="Inbox"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;/OBJECT&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;OBJECT classid="CLSID:0006F063-0000-0000-C000-000000000046"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;width="100%"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;param name="Folder" value="Tasks"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;/OBJECT&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;Yep, that&amp;#8217;s it --&amp;nbsp;amazing isn&amp;#8217;t it. Not really, it&amp;#8217;s just using an object already installed on the desktop along with Outlook. So, you get all the functionality that you would normally have in Outlook on the Web page.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&lt;/FONT&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;Unfortunately, none of these options&amp;nbsp;provide the ability to create a NEW email message. So, I created this CEWP that has all the code necessary to create a new message. I just call the JavaScript on the OnClick of a button. I&amp;#8217;m sure that the interface and the code could get a lot fancier (new Task, new Contact, etc.) but you get the idea (script does not work with Outlook 12):&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&lt;IMG src="http://static.flickr.com/64/217694740_241aa00e33_o.png"&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;!-- Copy and paste this code into a CEWP --&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;script language="JavaScript" type="text/JavaScript"&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;function genNewEmail()&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;{ &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;try &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;{ &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;o = new ActiveXObject("Outlook.Application"); &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if(o)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;mailFolder = o.getNameSpace("MAPI").getDefaultFolder(6);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//You could also use custom forms like IPM.Note.CustomForm &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;mailItem = mailFolder.Items.add("IPM.Note"); &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;mailItem.Display(0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;} &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;catch(e) &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;{ &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;window.status = e.Message;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;} &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;} &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;/script&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;input type="button" value="New Message" NAME="cmdNewMessage" OnClick="genNewEmail()"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;When you click on the button you should get the new message dialog from your local Outlook installation.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;Todd /&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;PS: Watch out, code pasted into a blog post like this can introduce line breaks and odd spacing that can cause problems. I try to keep my lines shorter than 80 characters but look for unnatural line breaks.&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://mindsharpblogs.com/todd/aggbug/1250.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Todd Bleeker</dc:creator><title>Menu Content Editor Web Parts</title><link>http://mindsharpblogs.com/todd/archive/2006/08/15/1242.aspx</link><pubDate>Tue, 15 Aug 2006 15:50:00 GMT</pubDate><guid>http://mindsharpblogs.com/todd/archive/2006/08/15/1242.aspx</guid><wfw:comment>http://mindsharpblogs.com/todd/comments/1242.aspx</wfw:comment><comments>http://mindsharpblogs.com/todd/archive/2006/08/15/1242.aspx#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://mindsharpblogs.com/todd/comments/commentRss/1242.aspx</wfw:commentRss><trackback:ping>http://mindsharpblogs.com/todd/services/trackbacks/1242.aspx</trackback:ping><description>&lt;P&gt;&lt;FONT face=Consolas&gt;Try this script in a Content Editor Web Part (CEWP) for dynamic generation of a mouseover menu with cascading options.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;Before Mouseover:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;IMG src="http://static.flickr.com/85/216318061_bf964ef935_o.png"&gt;&lt;BR&gt;&lt;FONT face=Consolas&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;After Mouseover:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;IMG src="http://static.flickr.com/92/216318062_f9f512b006_o.png"&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;menu id="menu_WPQ_" class="ms-SrvMenuUI"&amp;gt;&amp;lt;/menu&amp;gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;SPAN class="ms-HoverCellInActive" &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;style="CURSOR: hand" &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onmouseover="MainMenu(this);"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onmouseout="this.className='ms-HoverCellInActive'"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;nowrap valign="bottom"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;IMG SRC="/_layouts/images/Menu1.gif" border="0" /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;/SPAN&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;script type="Text/JavaScript" language="JavaScript"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;// Generate dynamic menu example&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;// todd@mindsharp.com&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;MindsharpBlogs.com/Todd&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;// CopyRight &amp;#169; 2006, All Rights Reserved&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;// Last updated 03/24/2006&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;// Please don't delete this header&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;var IMG_PATH = "/_layouts/images/";&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;var SEP = ", ";&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;var menu = document.getElementById("menu_WPQ_");&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;function MainMenu(span)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;this.className = "ms-HoverCellActiveDark";&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;var options = new Array(8);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;options[0] = "http://www.altavista.com, AltaVista";&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;options[1] = "http://web.ask.com, Ask";&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;options[2] = "http://www.google.com, Google";&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;options[3] = "http://www.hotbot.com, HotBot";&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;options[4] = "http://search.lycos.com, Lycos";&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;options[5] = "http://search.msn.com, MSN";&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;options[6] = "http://www.search.com, CNet"; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;options[7] = "http://search.yahoo.com, Yahoo!";&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//Define a WSS dynamic smart menu&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if(menu)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//Add an option&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CAMOpt(menu, "option1", &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"document.location.href=\"http://wss1\";",&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;IMG_PATH + "aca16.gif", "Menu tooltip is broken");&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//Add a Seperator&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;CAMSep(menu);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//Add a submenu with two options&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;var opts = CASubM(menu, "More Options",&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;IMG_PATH + "active.gif", "submenu tooltip also broken");&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;var opts11 = CASubM(opts, "Option 1.1",&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;IMG_PATH + "acl16.gif", "");&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CAMOpt(opts, "Option 1.2",&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"document.location.href=\"http://sps1\";",&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;IMG_PATH + "acl16.gif", "");&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;for(var i=0; i&amp;lt;options.length; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;option = options[i].split(SEP);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;optionUrl = option[0];&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;optionName = option[1];&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CAMOpt(opts11, optionName,&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"document.location.href=\"" + optionUrl + "\";","", "");&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;OMenuInt(menu_WPQ_, span, 0, 0, 0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;catch(e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;alert(e.Message);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;/script&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;Here is flatter menu based entirely on CSS (rather than JavaScript) hung on a hyperlink so it must be clicked to see the menu:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;Before Click:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;IMG src="http://static.flickr.com/71/216318063_16795d57f0_o.png"&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;After Click:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;IMG src="http://static.flickr.com/91/216318065_0036682785_o.png"&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;/o:p&gt;&lt;FONT face=Consolas&gt;&amp;lt;style&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;.ms-SrvMenuUI&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;display:none;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;.ms-HoverCellInActive &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;border: none;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;margin: 1px;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;background-color: transparent;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;.ms-HoverCellActive &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;border: #f4c660 1px solid;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;background-color: #e1ecfc;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;/style&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;menu id="myLinks" class="ms-SrvMenuUI"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;ie:menuitem&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;iconSrc="http://www.highdots.com/website-ranking-checker/images/search_engines/google.gif"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onMenuClick="window.location.href='http://google.com';"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;gt;Google&amp;lt;/ie:menuitem&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;ie:menuitem&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;iconSrc="http://www.highdots.com/website-ranking-checker/images/search_engines/msn.gif"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onMenuClick="window.location.href='http://msn.com';"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;gt;MSN&amp;lt;/ie:menuitem&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;ie:menuitem&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;iconSrc="http://www.highdots.com/website-ranking-checker/images/search_engines/altavista.gif"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onMenuClick="window.location.href='http://Altavista.com';"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;gt;Altavista&amp;lt;/ie:menuitem&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;ie:menuitem&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;iconSrc="http://www.highdots.com/website-ranking-checker/images/search_engines/ask.gif"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onMenuClick="window.location.href='http://Ask.com';"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;gt;Ask&amp;lt;/ie:menuitem&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;ie:menuitem&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;iconSrc="http://www.highdots.com/website-ranking-checker/images/search_engines/hotbot.gif"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onMenuClick="window.location.href='http://HotBot.com';"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;gt;HotBot&amp;lt;/ie:menuitem&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;ie:menuitem&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;iconSrc="http://www.highdots.com/website-ranking-checker/images/search_engines/lycos.gif"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onMenuClick="window.location.href='http://Lycos.com';"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;gt;Lycos&amp;lt;/ie:menuitem&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;ie:menuitem&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;iconSrc="http://www.highdots.com/website-ranking-checker/images/search_engines/search_com.gif"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onMenuClick="window.location.href='http://Search.com';"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;gt;Search.com&amp;lt;/ie:menuitem&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;ie:menuitem&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;iconSrc="http://www.highdots.com/website-ranking-checker/images/search_engines/yahoo.gif"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onMenuClick="window.location.href='http://Yahoo.com';"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;gt;Yahoo!&amp;lt;/ie:menuitem&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;/menu&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;div class="ms-HoverCellInActive" &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;onmouseover="this.className='ms-HoverCellActive'" &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;onmouseout="this.className='ms-HoverCellInActive'"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;a id="menuLink" &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;style="CURSOR: hand" &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;onclick="JavaScript: if(!myLinks.isOpen()) &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;myLinks.show(this, true, 0, 0, 0);"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;tabindex="0"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Search Engines&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/a&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;/div&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;I wrote these a long time ago and I didn't vet them for this post but I couldn't see waiting any longer to share them with everyone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas&gt;&amp;lt;Todd /&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://mindsharpblogs.com/todd/aggbug/1242.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Todd Bleeker</dc:creator><title>Flash Content Editor Web Part</title><link>http://mindsharpblogs.com/todd/archive/2006/08/15/1241.aspx</link><pubDate>Tue, 15 Aug 2006 15:15:00 GMT</pubDate><guid>http://mindsharpblogs.com/todd/archive/2006/08/15/1241.aspx</guid><wfw:comment>http://mindsharpblogs.com/todd/comments/1241.aspx</wfw:comment><comments>http://mindsharpblogs.com/todd/archive/2006/08/15/1241.aspx#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://mindsharpblogs.com/todd/comments/commentRss/1241.aspx</wfw:commentRss><trackback:ping>http://mindsharpblogs.com/todd/services/trackbacks/1241.aspx</trackback:ping><description>&lt;P&gt;&lt;FONT face=Consolas&gt;I played with embedding Flash content into a CEWP a long time ago. Put the following object tag&amp;nbsp;into a CEWP&amp;nbsp;did what I needed it to do:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;&amp;lt;object type="application/x-shockwave-flash" &lt;/FONT&gt;&lt;FONT face=Consolas&gt;data="&lt;/FONT&gt;&lt;FONT face=Consolas color=#0000ff&gt;http://beeks.eu/swf/Railway.swf&lt;/FONT&gt;&lt;FONT face=Consolas&gt;" &lt;/FONT&gt;&lt;FONT face=Consolas&gt;width="200" height="200"&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;&amp;lt;param name="movie" &lt;/FONT&gt;&lt;FONT face=Consolas&gt;value="&lt;/FONT&gt;&lt;FONT face=Consolas color=#0000ff&gt;http://beeks.eu/swf/Railway.swf&lt;/FONT&gt;&lt;FONT face=Consolas&gt;" /&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;&amp;lt;/object&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;It looks something like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://static.flickr.com/70/216293920_a46ecc71d0.jpg"&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;More flash clocks here: &lt;/FONT&gt;&lt;A href="http://beeks.eu/Screensaver.htm"&gt;&lt;FONT face=Consolas&gt;http://beeks.eu/Screensaver.htm&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;HTH,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;&amp;lt;Todd /&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;PS: I've had this on my blog post list for ages... where does all the time go?&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://mindsharpblogs.com/todd/aggbug/1241.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Todd Bleeker</dc:creator><title>AJAXian Web Parts in WSS v2 (SharePoint 2003)</title><link>http://mindsharpblogs.com/todd/archive/2006/08/15/1240.aspx</link><pubDate>Tue, 15 Aug 2006 14:56:00 GMT</pubDate><guid>http://mindsharpblogs.com/todd/archive/2006/08/15/1240.aspx</guid><wfw:comment>http://mindsharpblogs.com/todd/comments/1240.aspx</wfw:comment><comments>http://mindsharpblogs.com/todd/archive/2006/08/15/1240.aspx#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://mindsharpblogs.com/todd/comments/commentRss/1240.aspx</wfw:commentRss><trackback:ping>http://mindsharpblogs.com/todd/services/trackbacks/1240.aspx</trackback:ping><description>&lt;P&gt;The slides I used, a working code project, and instructions to install it were uploaded to &lt;A href="http://www.mindsharp.com/"&gt;&lt;FONT color=#009933&gt;Mindsharp&lt;/FONT&gt;&lt;/A&gt;'s &lt;A href="http://www.mindsharp.com/Default.aspx?top=PREMIUM%20CONTENT"&gt;&lt;FONT color=#009933&gt;Premium Content page&lt;/FONT&gt;&lt;/A&gt;. I will be updating this example for WSS v3 (SharePoint 2007) later this year. My plan is not to use Atlas but to leverage the underlying AJAXian framework built into WSS v3. Stay tuned.&lt;/P&gt;
&lt;P&gt;Enjoy,&lt;/P&gt;
&lt;P&gt;&amp;lt;Todd /&amp;gt;&lt;/P&gt;&lt;img src ="http://mindsharpblogs.com/todd/aggbug/1240.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Todd Bleeker</dc:creator><title>My Tech Ed Code Demos and Speaker Notes</title><link>http://mindsharpblogs.com/todd/archive/2006/06/27/1148.aspx</link><pubDate>Tue, 27 Jun 2006 12:26:00 GMT</pubDate><guid>http://mindsharpblogs.com/todd/archive/2006/06/27/1148.aspx</guid><wfw:comment>http://mindsharpblogs.com/todd/comments/1148.aspx</wfw:comment><comments>http://mindsharpblogs.com/todd/archive/2006/06/27/1148.aspx#Feedback</comments><slash:comments>45</slash:comments><wfw:commentRss>http://mindsharpblogs.com/todd/comments/commentRss/1148.aspx</wfw:commentRss><trackback:ping>http://mindsharpblogs.com/todd/services/trackbacks/1148.aspx</trackback:ping><description>&lt;P&gt;As promised, my TechEd code&amp;nbsp;demos and speaker notes from Tech Ed Boston&amp;nbsp;were posted on&amp;nbsp;&lt;A href="http://www.Mindsharp.com"&gt;Mindsharp&lt;/A&gt;'s &lt;A href="http://www.mindsharp.com/Default.aspx?top=PREMIUM%20CONTENT"&gt;Premium Content page&lt;/A&gt; last week.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Todd Bleeker's Tech Ed SharePoint Feature Demos&lt;/LI&gt;
&lt;LI&gt;Todd Bleeker's Tech Ed SharePoint Content Type Demos&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Enjoy,&lt;/P&gt;
&lt;P&gt;&amp;lt;Todd /&amp;gt;&lt;/P&gt;&lt;img src ="http://mindsharpblogs.com/todd/aggbug/1148.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Todd Bleeker</dc:creator><title>Subwebs On The Quick Launch (No Assembly Required)</title><link>http://mindsharpblogs.com/todd/archive/2006/03/17/1023.aspx</link><pubDate>Fri, 17 Mar 2006 17:15:00 GMT</pubDate><guid>http://mindsharpblogs.com/todd/archive/2006/03/17/1023.aspx</guid><wfw:comment>http://mindsharpblogs.com/todd/comments/1023.aspx</wfw:comment><comments>http://mindsharpblogs.com/todd/archive/2006/03/17/1023.aspx#Feedback</comments><slash:comments>78</slash:comments><wfw:commentRss>http://mindsharpblogs.com/todd/comments/commentRss/1023.aspx</wfw:commentRss><trackback:ping>http://mindsharpblogs.com/todd/services/trackbacks/1023.aspx</trackback:ping><description>&lt;TABLE style="BACKGROUND-IMAGE: url(/images/SubwebsOnTheQuickLaunch/st_patricks_day.jpg)" cellSpacing=0 cellPadding=0 width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center"&gt;
&lt;DIV style="FONT-SIZE: xx-large; COLOR: #ffffff" align=left noWrap&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Subwebs On The Quick Launch&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;This Web Part has been burning a hole in my TODO list since I put out the beta bits to several dozen people on December 2, 2005 (in fact, I've was working on this solution since before TechEd 2005 and during PDC last year). I've gotten tons of positive feedback on this and my updated &lt;A href="http://mindsharpblogs.com/todd/archive/2005/12/02/885.aspx"&gt;Search Web Part&lt;/A&gt; and thus far I have no bug reports. I just haven't had the wherewithal to put the finishing touches that I personally want to add before releasing the Web Part (several desirable, if minor, enhancements are listed below). But, I must face the fact that I will not have time to individually implement all these enhancements myself. So, rather than waiting another few months before releasing this, I thought I would just post what I have and see if the community can help me complete this task. You can download the zipped Subwebs On The Quick Launch DWP from the &lt;A href="https://www.mindsharp.com/?premium=default"&gt;Mindsharp Premium Content&lt;/A&gt; page. 
&lt;P&gt;As I'm sure you know, navigation in SharePoint 2003 Team Sites (WSS Webs with a Quick Launch bar) is challenging. The biggest contributor to this challenge is the fact that the subwebs of a given Web are not intuitive to find. There are a half dozen ways to navigate to them but they all require at least two unintuitive clicks from the home page. Novice SharePoint users typically cannot find these subwebs, even moments after they create one. The navigation I like to use (least clicks and scrolling) is Site Settings &amp;gt; Manage sites and workspaces. From this page I can see a categorized list of all the immediate subwebs I have access to (one of the few things in WSS that is security trimmed).&lt;/P&gt;
&lt;P&gt;So, I set about finding a way to put this list of subwebs on the home page where they can easily be discovered. I tried all sorts of approaches to this problem including AJAXian calls to SharePoint's own Web Services. But "no joy". Then, about a three quarters of a year ago I had an epiphany; since I always know the address of the page that does show the list I want to display, why not use a hidden iframe and just pull the pieces that I need out? It worked!&lt;/P&gt;
&lt;P&gt;I wanted to add&amp;nbsp;the subwebs to the Quick Launch bar in a way that would be intuitive and consistent with the links that are already there. Since everybody loves a choice, I gave the Subwebs On Quick Launch Web Part lots of options too. The default is a very basic, security trimmed, alphabetically sorted listing of the immediate subwebs. But you can choose to add sections, icons, tooltips, change the sort order; you can even add a menu I call "Down To" to the right of the "Up To" link on the top nav. These setting are managed by setting variables near the top of the embedded code. Also, I've tried to keep all the literals in variables so that Internationalization (I18N) and Localization (L10N) to another language should be relatively easy.&lt;/P&gt;
&lt;P&gt;Here is the list of additional enhancements that I'd like to see made to this component followed by a few screen shots of the Web Part in action:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Since this data doesn't change often, I'd like to implement a JavaScript call to just retrieve the HEAD of the page in the iframe. If the content length (stored in a cookie) is the same as it was before I'd like to just use the HTML previous generated (also stored in a cookie). Estimate: 3-6 hours. 
&lt;LI&gt;Add a SECTIONS_ONLY option: No subwebs would be shown, only section headers with links to the Manage Subwebs page. 
&lt;LI&gt;Add a LIMIT_DISPLAY_NUMBER option: After this many subwebs have been iterated, a More... link to the Manage Subwebs page would show. This would help where there are tons of Subwebs to a given parent Web. 
&lt;LI&gt;Add a SLIDE_QUICK_LAUNCH option: The top nav with the "Down To" menu would still show but the entire Quick Launch would be mostly hidden. It would just have the right edge showing and when the user placed their mouse over the edge, the entire Quick Launch would slide out long enough for the user to make a selection. However, if they moved their mouse off of the Quick Launch without making a selection, it would slide back to the left with just the right edge showing. 
&lt;LI&gt;Add a QUICK_LAUNCH_TOP_NAV option: Using the same technique I've used to place the subwebs into the "Down To" menu in the top nav; this option would take all five sections of the default Quick Launch and move them into the top nav (probably just under the Home link). The entire Quick Launch would then be hidden but all the options would still be available. I started this one so it might look something like this.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Please let me know if you are interested in helping me add any of these enhancements.&lt;/P&gt;
&lt;P&gt;Remember, you can get your free copy of this Web Part from the &lt;A href="https://www.mindsharp.com/?premium=default"&gt;Mindsharp Premium Content&lt;/A&gt; page.&lt;/P&gt;
&lt;P&gt;What follows are some screenshots of the Web Part in action.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The basic modified Quick Launch:&lt;BR&gt;&lt;/STRONG&gt;&lt;IMG height=575 src="/images/SubwebsOnTheQuickLaunch/SubwebsOnQuickLaunch1.GIF" width=730&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The modified quick launch with a few options enabled:&lt;BR&gt;&lt;/STRONG&gt;&lt;IMG height=675 src="/images/SubwebsOnTheQuickLaunch/SubwebsOnQuickLaunch2.GIF" width=753&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The modified top nav Up To link with a "Down To" menu option:&lt;BR&gt;&lt;/STRONG&gt;&lt;IMG height=276 src="/images/SubwebsOnTheQuickLaunch/SubwebsOnQuickLaunch3.GIF" width=753&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The modified top nav Down To menu with a few options enabled:&lt;BR&gt;&lt;IMG height=276 src="/images/SubwebsOnTheQuickLaunch/SubwebsOnQuickLaunch4.GIF" width=753&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;What other features would you like to see added to this Web Part?&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.mindsharp.com/?premium=default"&gt;Get the Subwebs On the Quick Launch DWP&lt;/A&gt; and deploy it to one of your Team Sites (or Document Workspaces, it is not intended to work with SPS Areas - they have their own navigational scheme) to see what it is like. If you like what you see but want to use it more widely across your SharePoint farm, be sure to check out my &lt;A href="http://mindsharpblogs.com/todd/archive/2006/03/10/1006.aspx"&gt;Guidelines to Centralize SharePoint Style/Script Customizations&lt;/A&gt;.&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Happy &lt;A href="http://www.historychannel.com/exhibits/stpatricksday/?page=video"&gt;St. Patrick's Day&lt;/A&gt;! Luck O' The Irish to you.&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=center&gt;&lt;A href="http://www.historychannel.com/exhibits/stpatricksday/?page=video"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" src="/images/SubwebsOnTheQuickLaunch/IrishPeople.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" src="/images/SubwebsOnTheQuickLaunch/LuckOTheIrish.jpg"&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;TODD /&gt;&lt;TODD /&gt;&lt;/P&gt;&lt;img src ="http://mindsharpblogs.com/todd/aggbug/1023.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Todd Bleeker</dc:creator><title>Guidelines to Centralize SharePoint Style/Script Customizations</title><link>http://mindsharpblogs.com/todd/archive/2006/03/10/1006.aspx</link><pubDate>Fri, 10 Mar 2006 15:25:00 GMT</pubDate><guid>http://mindsharpblogs.com/todd/archive/2006/03/10/1006.aspx</guid><wfw:comment>http://mindsharpblogs.com/todd/comments/1006.aspx</wfw:comment><comments>http://mindsharpblogs.com/todd/archive/2006/03/10/1006.aspx#Feedback</comments><slash:comments>40</slash:comments><wfw:commentRss>http://mindsharpblogs.com/todd/comments/commentRss/1006.aspx</wfw:commentRss><trackback:ping>http://mindsharpblogs.com/todd/services/trackbacks/1006.aspx</trackback:ping><description>&lt;P&gt;It's no secret that I think that the &lt;A href="http://office.microsoft.com/en-us/assistance/HA011608971033.aspx" target=_blank&gt;Content Editor Web Part&lt;/A&gt; (CEWP) rocks:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;It is easy to export and reuse elsewhere. 
&lt;LI&gt;It is easy to send to your friends for them to use. 
&lt;LI&gt;It is not tied to the site definition ID or the LCID. 
&lt;LI&gt;It always overrides any previous style/script definition (because of it's position on the page). 
&lt;LI&gt;It is easy to remove when you no longer need it.&amp;nbsp; 
&lt;LI&gt;It can be hidden from view so that only it's effects are seen. 
&lt;LI&gt;It is already on your server: &lt;EM&gt;No "Assembly" Required&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;In fact, most of my CEWP solutions start on a given page trying to solve a given problem. If you have followed some of my articles, you know that my solutions don't usually stop there.&lt;/P&gt;
&lt;P&gt;This post is intended to get you past a one-off solution (which I will continue to showcase as they are the easiest to understand) to a wider deployment that doesn't result in replicative copies of the same code being propagated across your farm. In other words, a more maintainable solution; a solution that will easily move from v2 to v3.&lt;/P&gt;
&lt;P&gt;Let's take the simple example of &lt;A href="http://mindsharpblogs.com/todd/archive/2005/10/25/801.aspx" target=_blank&gt;hiding the Quick Launch bar&lt;/A&gt; (always a great place to start). As I describe &lt;A href="http://mindsharpblogs.com/todd/archive/2005/08/04/646.aspx" target=_blank&gt;here&lt;/A&gt;: a CEWP with the code embedded in it can be placed into the Page Web Part Gallery, the Site Collection Web Part Gallery, and/or the Virtual Server Web Part Gallery so that end users can drag and drop it into situations where they will benefit from it most. Of course, each time it is placed onto a page, a copy of the code is placed onto the page embedded within the Web Part.&lt;/P&gt;
&lt;P&gt;The trouble comes when you want to alter every instance of the original code within each of the Web Parts already in use. Or, you want the effects to be realized 1) on every instance of a Web Part Page, 2) on every Web Part Page in every Web, or 3) across your entire farm.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Problem: Maintaining deployed code&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Continuing with the Quick Launch bar example, let's say that hiding the entire Quick Launch was the solution that the demanders were clamoring for. So, I created a CEWP that embedded that functionality and gave it to my users to put in whatever context they saw fit. After a few months there may be dozens, even hundreds of instances of that code on various Web Part Pages throughout my farm. The demanders are happy until one day Bob (God love him) discovers a bug in my solution (God forbid). Or perhaps on a creative day I (God love me) added a new feature to the existing code and want roll that out to everyone. I could send out an email that says something like:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P class=style1&gt;Attention everyone, Bob discovered an anomaly in the &lt;EM&gt;Hide Quick Launch Web Part&lt;/EM&gt; so if you used that Web Part on any of your pages, please remove it and add in the updated version from your Virtual Server Web Part Gallery.&lt;/P&gt;
&lt;P class=style1&gt;OR&lt;/P&gt;
&lt;P class=style1&gt;Attention everyone, you will love the new feature I added to the &lt;EM&gt;Hide Quick Launch Web Part&lt;/EM&gt; so if you used that Web Part on any of your pages, please remove it and add the updated version from your Virtual Server Web Part Gallery. You'll love it.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Of course, everyone will immediately remember everywhere that they used that Web Part and rush out to replace it, right?&lt;/P&gt;
&lt;P&gt;What to do?&lt;/P&gt;
&lt;P&gt;Fortunately, you have several options that vary in scope but each solution requires pre-use Web Part dependencies. Pre-use means: certain steps that must be taken before the Web Part can be dragged into a Web Part Zone. I detest pre-use Web Part dependencies. I much prefer my Web Parts to contain everything that they require as embedded, URL accessible class resources. But, alas, that option isn't available with the CEWP. So, lets explore the potential options:&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Solution 1: Link to the code rather than embedding it (scope remains the instance page but the source is centralized)&lt;/U&gt;&lt;/P&gt;
&lt;TABLE style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" cellSpacing=0 cellPadding=0 width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;
&lt;UL&gt;
&lt;LI&gt;Start with a working CEWP embedded with code that does something that you want to do. 
&lt;LI&gt;Copy the style/script code from the CEWP's Source Editor into a text file. The file extension that you use will not matter and the code does not require any change. 
&lt;LI&gt;Upload the text file into a document library accessible to &lt;EM&gt;everyone&lt;/EM&gt; that could potentially see the CEWP. If the file was called QuickLaunch.css and the document library was called CodeLibrary and it was located in the root of the wss1 virtual server. The fully qualified URL to the document would be:&lt;BR&gt;&amp;nbsp;&amp;nbsp; http://wss1/CodeLibrary/QuickLaunch.css&lt;BR&gt;In some circumstances, a root relative URL will suffice (I tend to use these whenever possible) but most of the time, to get portability, you will need the full URL. 
&lt;LI&gt;Remove the style/script code from the existing CEWP or add a new CEWP to a test page and set the Content Link to the URL of the text document that contains the code. So, clicking on the Source Editor... button would present an empty dialog box and the Content Link would take us to a page that contained the code that used to be in the Source Editor. Click on the Test Link link. If SharePoint asks if you want to open or save the file you know you have a valid link, you can choose cancel and continue with these steps. 
&lt;LI&gt;Click OK or Apply and you should see that the Web Part is still functioning as it was when the code was embedded. 
&lt;LI&gt;&lt;A href="http://mindsharpblogs.com/todd/archive/2005/10/25/789.aspx" target=_blank&gt;Export the Web Part as a Dashboard Web Part (DWP)&lt;/A&gt;. 
&lt;LI&gt;&lt;A href="http://mindsharpblogs.com/todd/archive/2005/08/04/646.aspx" target=_blank&gt;Place the DWP into a Gallery&lt;/A&gt; if you like.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Now users can add this Web Part to any page they like. If you need to fix Bob's bug or deploy a new feature you simply upload the text file with the new code overwriting the existing text file. Note that if the text file, the document library, the Web, or the Virtual Server are not available to the consuming page, the CEWP will cease to work properly. The crux of a pre-use Web Part dependency is it's dependency on something other than itself and the Web Part Framework.&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&lt;IMG src="/images/GuidelinesToBubble/ContentLink.gif"&gt; &amp;nbsp;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&amp;nbsp; 
&lt;P&gt;&lt;U&gt;Solution 2: Embed the code in a direct-mode page in your custom site definition (scope becomes every instance of the direct-mode page)&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;If the solution you are looking to implement is only applicable to one page in a given site definition and will always need to be implemented on that page, you may want to go straight to the source and modify the direct-mode page (&lt;A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;898631" target=_blank&gt;this is not supported by Microsoft but may be invaluable anyway&lt;/A&gt;). Of course, you will need write access to the ASPX pages in your custom site definition on each Web server to make this solution work.&lt;/P&gt;
&lt;P&gt;Also, given you have access to this page, you may want to consider other ways of accomplishing your goal. With the CEWP you only have client-side tools like JavaScript and CSS. But within this environment, you can modify everything outside of the LinkBar and WebPartZone containers and all &lt;A href="http://mindsharpblogs.com/todd/archive/2005/07/21/626.aspx" target=_blank&gt;ghosted pages&lt;/A&gt; will adopt your changes. I'm sure that you don't have any unghosted pages, but if you did, they won't see these changes unless you reghosted them using the Ghost Hunter Web Part in &lt;A href="http://www.bluedoglimited.com/Downloads/pages/Web%20Part%20Toolkit.aspx" target=_blank&gt;Maurice's Web Part Toolkit&lt;/A&gt; (a must have tool). FWIW, I run a ghosted-only shop.&lt;/P&gt;
&lt;P&gt;So, in the direct-mode page, I wouldn't hide the Quick Launch using JavaScript, I would just delete the table that generates it so that it isn't sent to the browser in the first place. However, there are many times when the style/script you want to run won't change at all.&lt;/P&gt;
&lt;P&gt;The important thing is where you place the code on this page. Remember, cascading code cascades. So, if you put your style/script overrides in the wrong place within this file; it is your code that will be overridden, not SharePoint's.&lt;/P&gt;
&lt;P&gt;I typically place my 
&lt;STYLE&gt;...&lt;/STYLE&gt;
code just before the tag. That way I can be relatively certain that my style is overriding any built-in SharePoint defined styles but any CEWP can still override these styles again on any instance page.&lt;/P&gt;
&lt;P&gt;SharePoint places most of its script wherever the &amp;lt;form&amp;gt;tag is placed. So, I typically place my &amp;lt;script&amp;gt;...&lt;/SCRIPT&gt; code immediately following the &amp;lt;form&amp;gt;tag. Keep in mind that frequently client-side JavaScript will need the DOM in the browser to be completely loaded before it can run (think of it like EnsureChildControls in a Web Part). So, running your function on window.onload will likely change the sequence in which the JavaScript executes. Similar to a left outer join in SQL requiring left outer joins on subsequent tables, when you start using window.onload to run functions you will likely need to run all subsequent functions on window.onload so that the order is preserved.&lt;/P&gt;
&lt;P&gt;Check out this cross-browser window.onload code I "kyped" from somewhere (?credit original source here?) and then modified to meet my needs:&lt;/P&gt;
&lt;P class=style2&gt;&lt;FONT face="Courier New"&gt;function AddToWindowOnload(eventToAdd)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; var SILENCE_ERRORS = true;&lt;BR&gt;&amp;nbsp; try&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(typeof window.attachEvent != "undefined")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Try using IE's attachEvent&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.attachEvent("onload", eventToAdd);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(typeof window.addEventListener != "undefined")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Then, try using Mozilla's addEventListener&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.addEventListener("load", eventToAdd, false);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(window.onload != null)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Otherwise, append to existing window.onload events,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if any, by creating a function&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var origOnload = window.onload;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.onload = function(e) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; origOnload(e);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eventToAdd();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Otherwise, assign directly to window.onload&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.onload = eventToAdd;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; catch(e)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(SILENCE_ERRORS)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.onerror = function(){return true;}}else{alert(e.message)};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Solution 3: Embed the code in an &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/tscamlproject_SV01028126.asp" target=_blank&gt;AlternateCSS or CustomJsUrl file&lt;/A&gt; (scope grows to every page in an entire site definition)&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;If the solution you are looking to implement is applicable to every page in a given site definition and will always need to be implemented, you may want add your code to the override files I explain my &lt;A href="https://www.mindsharp.com/default.aspx?premium=downloads&amp;amp;file=CustomSiteDefinition.zip" target=_blank&gt;Custom Site Definition Recommendations article&lt;/A&gt; on &lt;A href="http://www.mindsharp.com/Default.aspx?premium=default" target=_blank&gt;Mindsharp's premium content&lt;/A&gt; site (similar details are also in my &lt;A href="http://mssharepoint.advisorguide.com/doc/16799?open&amp;amp;p=5" target=_blank&gt;Advisor article&lt;/A&gt;). Of course, you will need write access to the these override files for your custom site definition in the 60 hive on each Web server to make this solution work. Unfortunately, the direct-mode pages in your custom site definition only refer to the default, farm-level ows.css file using a static HTML link. So, to support AlternateCSS, all the direct-mode pages in your entire custom site definition will need to be modified slightly. I advise changing this link to use SharePoint's CssLink server control. Fortunately, you can change this globally and simultaneously from VS.NET for all 100+ ASPX pages in your custom site definition using the following steps:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Open VS.NET and choose Edit &amp;gt; Find and Replace &amp;gt; Replace in Files (Ctrl+Shift+H) from the VS.NET menu 
&lt;LI&gt;Enter this text in the &lt;STRONG&gt;Find what&lt;/STRONG&gt; text box:&lt;BR&gt;&lt;LINK href="/_layouts/&lt;%=System.Threading.Thread.CurrentThread.CurrentUICulture.LCID%&gt;/styles/ows.css" type=text/css rel=stylesheet&gt;
&lt;LI&gt;Enter this text in the &lt;STRONG&gt;Replace with&lt;/STRONG&gt; text box:&lt;BR&gt;&lt;?XML:NAMESPACE PREFIX = SharePoint /&gt;&lt;SharePoint:CssLink DefaultUrl="/_layouts/1033/styles/ows.css" runat="server"&gt;&lt;/SharePoint:CssLink&gt;
&lt;LI&gt;Enter this text in the &lt;STRONG&gt;Look in&lt;/STRONG&gt; text box:&lt;BR&gt;C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\1033\[sitedefinition]&lt;BR&gt;where [sitedefinition] is the subdirectory where your custom site definition exists 
&lt;LI&gt;Ensure that &lt;STRONG&gt;Look in subfolders&lt;/STRONG&gt; is checked and that the &lt;STRONG&gt;File types&lt;/STRONG&gt; is changed from *.* to *.ASPX 
&lt;LI&gt;Click on the Replace All button. 
&lt;LI&gt;Confirm the warning that this can't be undone and VS.NET should replace the link in all files in the custom site definition.&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=style1&gt;&lt;IMG src="/images/GuidelinesToBubble/ReplaceInFiles.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Using CustomJSUrl requires no direct-mode page changes.&lt;/P&gt;
&lt;P&gt;Again, given you have access to these custom site definition files, you may again want to consider other ways of accomplishing your goal. But usually the client-side JavaScript and CSS that you developed using the CEWP will not require much, if any change. Just realize that this code will now be used on every page of every Web that is based on your custom site definition.&lt;/P&gt;
&lt;P&gt;This is a relatively easy change to make once your site definition is ready. You simply copy all of the code inside of the identifying tags into the appropriate file. For instance, if the CEWP had the following style code:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;style&amp;gt;&lt;BR&gt;&amp;nbsp; .ms-nav{ display: none; }&lt;BR&gt;&amp;lt;/style&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;You would copy only the following CSS code into the file identified by the AlternateCSS attribute in the Project element of your custom site definition's ONET.XML file:&lt;/P&gt;
&lt;P class=style3&gt;&lt;FONT face="Courier New"&gt;.ms-nav{ display: none; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Note that the style tags are not needed because this code is now included on the page within a file that is referenced by the href attribute of a stylesheet link in the underlying HTML:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_layouts/1033/Custom/SITEDEF/ows.css"&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Similarly, JavaScript will not need the surrounding script tags. For instance, my &lt;A href="http://mindsharpblogs.com/images/GuidelinesToBubble/DisableRightClick.zip" target=_blank&gt;Disable Right Click CEWP&lt;/A&gt; has the following script code to prevent right clicking on the page:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;script type="Text/JavaScript" language="JavaScript"&amp;gt;&lt;BR&gt;&amp;nbsp; if(typeof browseris != 'undefined' &amp;amp;&amp;amp; browseris.ie)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.oncontextmenu = function(){return false;};&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; else&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.oncontextmenu = "return false";&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;lt;/script&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;You would copy only the following JavaScript code into the file identified by the CustomJSUrl attribute of the Project element of your custom site definition's ONET.XML file:&lt;/P&gt;
&lt;P class=style3&gt;&lt;FONT face="Courier New"&gt;if(typeof browseris != 'undefined' &amp;amp;&amp;amp; browseris.ie)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; document.oncontextmenu = function(){return false;};&lt;BR&gt;}&lt;BR&gt;else&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; document.oncontextmenu = "return false";&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Note that the script tags are not needed because this code is now included on the page within a file that is referenced by the src attribute of a script tag in the underlying HTML:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;script src="/_layouts/1033/Custom/SITEDEF/ows.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Solution 4: Embed the code in one of SharePoint's built-in files (scope grow to every page in the entire farm)&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;If the solution you are looking to implement is applicable to every page in EVERY site definition and will always need to be implemented, you may want add your code to the files that are built-in to SharePoint. I don't necessarily recommend this option but for some it will be the best option, especially if you started using SharePoint with the out-of-the-box site definitions. Of course, you will need write access to both of these files and, since they are owned by Microsoft, any changes that you make to them could be overwritten by an upgrade or service pack.&lt;/P&gt;
&lt;P&gt;My approach to this has been to create my own files to keep my farm-level style/script code separate from Microsoft's and then I only have one reference in SharePoint's files to my custom code. So, I add a reference to my farm-wide custom CSS file from the built-in CSS file that is included on every Web Part page in the farm. I do this by adding the following code to the bottom of the built-in .\60\TEMPLATE\LAYOUTS\1033\STYLES\OWS.CSS file:&lt;/P&gt;
&lt;P class=style3&gt;&lt;FONT face="Courier New"&gt;@import url("/_layouts/1033/Custom/ows.css");&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;This will make the styles defined in the referenced file applicable to every page in the entire farm. Like Solution 3, the contents of the custom ows.css file should not include any style tags but, of course, you will need to create a file (in this example called ows.css in the Custom folder, even if it is initially just an empty file). Also note that on Site Settings page for a SharePoint Portal Server there is a special way of referencing farm-wide CSS file to styles unique to the farm. The URL can be set in Site Settings &amp;gt; Change portal site properties and SharePoint site creation settings &amp;gt; Custom Cascading Style Sheet. The textbox is blank by default and I haven't tested where these styles would be inserted into the cascade (I don't do much with SPS).&lt;/P&gt;
&lt;P&gt;Similarly, I add the following code to the bottom of the built-in .\60\TEMPLATE\LAYOUTS\1033\ows.js file (but above all the SIG lines):&lt;/P&gt;
&lt;P class=style2&gt;&lt;FONT face="Courier New"&gt;//Add custom script to head of every page in the farm&lt;BR&gt;try&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; var head = document.getElementsByTagName("head");&lt;BR&gt;&amp;nbsp; if(head)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var script = document.createElement("script");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; script.language = "javascript";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; script.type = "text/javascript";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; script.src = "/_layouts/1033/Custom/ows.js";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; script.defer = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; head[0].appendChild(script);&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;catch(e){ /* ignore */}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;This will append the script defined in the referenced file to the head of every page in the entire farm. This is obviously after the built-in farm JavaScript but before script inserted at the &amp;lt;form&amp;gt; tag is defined. Again, like Solution 3, the contents of the custom ows.js file should not include any script tags.&lt;/P&gt;
&lt;P&gt;I trust these tips will help everyone implement a more maintainable solution that will smoothly migrate, if needed, to the next version of SharePoint.&lt;/P&gt;
&lt;P&gt;&amp;lt;Todd /&amp;gt;&lt;/P&gt;&lt;img src ="http://mindsharpblogs.com/todd/aggbug/1006.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>