example.htm 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>RateIt</title>
  5. <link href="../src/rateit.css" rel="stylesheet" type="text/css">
  6. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
  7. <style>
  8. body
  9. {
  10. font-family: Tahoma;
  11. font-size: 12px;
  12. }
  13. h1
  14. {
  15. font-size: 1.7em;
  16. }
  17. h2
  18. {
  19. font-size: 1.5em;
  20. }
  21. h3
  22. {
  23. font-size: 1.2em;
  24. }
  25. ul.nostyle
  26. {
  27. list-style: none;
  28. }
  29. ul.nostyle h3
  30. {
  31. margin-left: -20px;
  32. }
  33. </style>
  34. <!-- alternative styles -->
  35. <link href="content/bigstars.css" rel="stylesheet" type="text/css">
  36. <link href="content/antenna.css" rel="stylesheet" type="text/css">
  37. <!-- syntax highlighter -->
  38. <link href="sh/shCore.css" rel="stylesheet" type="text/css">
  39. <link href="sh/shCoreDefault.css" rel="stylesheet" type="text/css">
  40. </head>
  41. <body>
  42. <h1>
  43. RateIt plugin</h1>
  44. <h2>
  45. Prerequisites</h2>
  46. <p>
  47. In order to use RateIt you'll need:
  48. <ul>
  49. <li><a target="_blank" href="http://www.jquery.com">jQuery 1.6.0</a> or newer.</li>
  50. <li>jquery.rateit.min.js, rateit.css, delete.gif, star.gif - <a href="http://rateit.codeplex.com/releases">
  51. Download RateIt</a></li>
  52. <li>Place a reference to the rateit.css stylesheet into the page head.</li>
  53. <li>Place a script reference to jquery.rateit.js before your &lt;/body&gt; tag.
  54. </li>
  55. </ul>
  56. </p>
  57. <h2>
  58. Options</h2>
  59. Go to the <a href="http://rateit.codeplex.com">RateIt project homepage</a> to view
  60. the documentation.
  61. <h2>
  62. Examples</h2>
  63. <div style="font-weight: bold">
  64. <span id="toc"></span>
  65. </div>
  66. <ul class="nostyle" id="examples">
  67. <li id="ex_a1">
  68. <h3>
  69. 1a) Basic usage</h3>
  70. <div class="rateit">
  71. </div>
  72. <pre class="brush: xml">
  73. &lt;div class="rateit">
  74. &lt;/div>
  75. </pre>
  76. </li>
  77. <li id="ex_1b">
  78. <h3>
  79. 1a) Basic usage (inline element)</h3>
  80. <span class="rateit">
  81. </span>
  82. <pre class="brush: xml">
  83. &lt;span class="rateit">
  84. &lt;/span>
  85. </pre>
  86. </li>
  87. <li id="ex_2a">
  88. <h3>
  89. 2a) Progressive enhancement (using HTML5 range input type)
  90. </h3>
  91. <input type="range" min="0" max="7" value="0" step="0.5" id="backing2">
  92. <div class="rateit" data-rateit-backingfld="#backing2">
  93. </div>
  94. <pre class="brush: xml">
  95. &lt;input type="range" min="0" max="7" value="0" step="0.5" id="backing2">
  96. &lt;div class="rateit" data-rateit-backingfld="#backing2">&lt;/div>
  97. </pre>
  98. <button onclick="$('#backing2').toggle()">
  99. Toggle Backing Field visibility</button>
  100. </li>
  101. <li id="ex_2b">
  102. <h3>
  103. 2b) Progressive enhancement (using select)
  104. </h3>
  105. <select id="backing2b">
  106. <option value="0">Bad</option>
  107. <option value="1">OK</option>
  108. <option value="2">Great</option>
  109. <option value="3">Excellent</option>
  110. </select>
  111. <div class="rateit" data-rateit-backingfld="#backing2b">
  112. </div>
  113. <pre class="brush: xml">
  114. &lt;select id="backing2b">
  115. &lt;option value="0">Bad&lt;/option>
  116. &lt;option value="1">OK&lt;/option>
  117. &lt;option value="2">Great&lt;/option>
  118. &lt;option value="3">Excellent&lt;/option>
  119. &lt;/select>
  120. &lt;div class="rateit" data-rateit-backingfld="#backing2b">&lt;/div>
  121. </pre>
  122. </li>
  123. <li id="ex_3">
  124. <h3>
  125. 3) Readonly and preset value</h3>
  126. <div class="rateit" data-rateit-value="2.5" data-rateit-ispreset="true" data-rateit-readonly="true">
  127. </div>
  128. <pre class="brush: xml">
  129. &lt;div class="rateit" data-rateit-value="2.5" data-rateit-ispreset="true" data-rateit-readonly="true">&lt;/div>
  130. </pre>
  131. </li>
  132. <li id="ex_4">
  133. <h3>
  134. 4) More settings</h3>
  135. <input type="range" value="4" step="0.25" id="backing4">
  136. <div class="rateit" data-rateit-backingfld="#backing4" data-rateit-resetable="false" data-rateit-ispreset="true"
  137. data-rateit-min="0" data-rateit-max="10">
  138. </div>
  139. <pre class="brush: xml">
  140. &lt;input type="range" value="4" step="0.25" id="backing4">
  141. &lt;div class="rateit" data-rateit-backingfld="#backing4" data-rateit-resetable="false" data-rateit-ispreset="true"
  142. data-rateit-min="0" data-rateit-max="10">
  143. &lt;/div>
  144. </pre>
  145. </li>
  146. <li id="ex_5">
  147. <h3>
  148. 5) Javascript interaction</h3>
  149. <div class="rateit" id="rateit5" data-rateit-min="2">
  150. </div>
  151. <div>
  152. <span id="value5"></span><span id="hover5"></span>
  153. </div>
  154. <script type="text/javascript">
  155. $("#rateit5").bind('rated', function (event, value) { $('#value5').text('You\'ve rated it: ' + value); });
  156. $("#rateit5").bind('reset', function () { $('#value5').text('Rating reset'); });
  157. $("#rateit5").bind('over', function (event, value) { $('#hover5').text('Hovering over: ' + value); });
  158. </script>
  159. <pre class="brush: xml">
  160. &lt;div class="rateit" id="rateit5" data-rateit-min="2">
  161. &lt;/div>
  162. &lt;div>
  163. &lt;span id="value5">&lt;/span>
  164. &lt;span id="hover5">&lt;/span>
  165. &lt;/div>
  166. &lt;script type="text/javascript">
  167. $("#rateit5").bind('rated', function (event, value) { $('#value5').text('You\'ve rated it: ' + value); });
  168. $("#rateit5").bind('reset', function () { $('#value5').text('Rating reset'); });
  169. $("#rateit5").bind('over', function (event, value) { $('#hover5').text('Hovering over: ' + value); });
  170. &lt;/script>
  171. </pre>
  172. </li>
  173. <li id="ex_6">
  174. <h3>
  175. 6) Javascript invocation</h3>
  176. <input type="hidden" id="backing6">
  177. <div id="rateit6">
  178. </div>
  179. <script type="text/javascript">
  180. $(function () { $('#rateit6').rateit({ max: 20, step: 2, backingfld: '#backing6' }); });
  181. </script>
  182. <pre class="brush: xml">
  183. &lt;input type="hidden" id="backing6">
  184. &lt;div id="rateit6">
  185. &lt;/div>
  186. &lt;script type="text/javascript">
  187. $(function () { $('#rateit6').rateit({ max: 20, step: 2, backingfld: '#backing6' }); });
  188. &lt;/script>
  189. </pre>
  190. </li>
  191. <li id="ex_7a">
  192. <h3>
  193. 7a) Styling</h3>
  194. <p>
  195. You can change the styles of the plugin in a two ways.
  196. <ul>
  197. <li>You can change change the star.gif and delete.gif pictures (and perhaps the default
  198. starwidth, and starheight values in the javascript file). This will change the style
  199. everywhere.</li>
  200. <li>You can change individual items, by adding a stylesheet with a few rules.</li>
  201. </ul>
  202. Here I've opted for the second option.
  203. </p>
  204. <div class="rateit bigstars" data-rateit-starwidth="32" data-rateit-starheight="32">
  205. </div>
  206. <h4>
  207. Inline code</h4>
  208. <pre class="brush: xml">
  209. &lt;div class="rateit bigstars" data-rateit-starwidth="32" data-rateit-starheight="32">&lt;/div>
  210. </pre>
  211. <h4>
  212. Style sheet</h4>
  213. <pre class="brush: css">
  214. div.bigstars div.rateit-range
  215. {
  216. background: url(star-white32.png);
  217. height: 32px;
  218. }
  219. div.bigstars div.rateit-hover
  220. {
  221. background: url(star-gold32.png);
  222. }
  223. div.bigstars div.rateit-selected
  224. {
  225. background: url(star-red32.png);
  226. }
  227. div.bigstars div.rateit-reset
  228. {
  229. background: url(star-black32.png);
  230. width: 32px;
  231. height: 32px;
  232. }
  233. div.bigstars div.rateit-reset:hover
  234. {
  235. background: url(star-white32.png);
  236. }
  237. </pre>
  238. </li>
  239. <li id="ex_7b">
  240. <h3>
  241. 7b) More styling</h3>
  242. <p>
  243. Here we use one big image (actually 3), with different dimensions. Not very pretty,
  244. but it conveys the message I hope.</p>
  245. <div class="rateit antenna" data-rateit-starwidth="11" data-rateit-starheight="25">
  246. </div>
  247. <h4>
  248. Inline code</h4>
  249. <pre class="brush: xml">
  250. &lt;div class="rateit antenna" data-rateit-starwidth="11" data-rateit-starheight="25">&lt;/div>
  251. </pre>
  252. <h4>
  253. Style sheet</h4>
  254. <pre class="brush: css">
  255. div.antenna div.rateit-range
  256. {
  257. background: url(antenna-black.png) no-repeat;
  258. height: 25px;
  259. }
  260. div.antenna div.rateit-hover
  261. {
  262. background: url(antenna-yellow.png) no-repeat;
  263. }
  264. div.antenna div.rateit-selected
  265. {
  266. background: url(antenna-red.png) no-repeat;
  267. }
  268. </pre>
  269. </li>
  270. <li id="ex_8">
  271. <h3>
  272. 8) RTL support</h3>
  273. <div style="direction: rtl">
  274. Now we are in RTL mode. No changes needed to make this work.
  275. <div class="rateit">
  276. </div>
  277. </div>
  278. </li>
  279. <li id="ex_9">
  280. <h3>
  281. 9) Setting and Getting values</h3>
  282. <p>
  283. All properties can also be set on the fly. Here are a few examples:</p>
  284. <div class="rateit" id="rateit9">
  285. </div>
  286. <div>
  287. <button onclick="alert($('#rateit9').rateit('value'))">
  288. Get value</button>
  289. <button onclick="$('#rateit9').rateit('value', prompt('Input numerical value'))">
  290. Set value</button>
  291. </div>
  292. <div>
  293. <button onclick="alert($('#rateit9').rateit('max'))">
  294. Get max value</button>
  295. <button onclick="$('#rateit9').rateit('max', prompt('Input numerical value'))">
  296. Set max value</button>
  297. </div>
  298. <div>
  299. <button onclick="alert($('#rateit9').rateit('min'))">
  300. Get min value</button>
  301. <button onclick="$('#rateit9').rateit('min', prompt('Input numerical value'))">
  302. Set min value</button>
  303. </div>
  304. <div>
  305. <button onclick="alert($('#rateit9').rateit('step'))">
  306. Get step size</button>
  307. <button onclick="$('#rateit9').rateit('step', prompt('Input numerical value'))">
  308. Set step size</button>
  309. </div>
  310. <div>
  311. <button onclick="alert($('#rateit9').rateit('readonly'))">
  312. Get readonly value</button>
  313. <button onclick="$('#rateit9').rateit('readonly',!$('#rateit9').rateit('readonly'))">
  314. Toggle readonly</button>
  315. </div>
  316. <div>
  317. <button onclick="alert($('#rateit9').rateit('ispreset'))">
  318. Get ispreset value</button>
  319. <button onclick="$('#rateit9').rateit('ispreset',!$('#rateit9').rateit('ispreset'))">
  320. Toggle ispreset</button>
  321. </div>
  322. <div>
  323. <button onclick="$('#rateit9').rateit('reset')">
  324. Reset
  325. </button>
  326. </div>
  327. <pre class="brush: xml">
  328. &lt;div class="rateit" id="rateit9">
  329. &lt;/div>
  330. &lt;div>
  331. &lt;button onclick="alert($('#rateit9').rateit('value'))">Get value&lt;/button>
  332. &lt;button onclick="$('#rateit9').rateit('value', prompt('Input numerical value'))">Set value&lt;/button>
  333. &lt;/div>
  334. &lt;div>
  335. &lt;button onclick="alert($('#rateit9').rateit('max'))">Get max value&lt;/button>
  336. &lt;button onclick="$('#rateit9').rateit('max', prompt('Input numerical value'))">Set max value&lt;/button>
  337. &lt;/div>
  338. &lt;div>
  339. &lt;button onclick="alert($('#rateit9').rateit('step'))">Get step size&lt;/button>
  340. &lt;button onclick="$('#rateit9').rateit('step', prompt('Input numerical value'))">Set step size&lt;/button>
  341. &lt;/div>
  342. &lt;div>
  343. &lt;button onclick="alert($('#rateit9').rateit('readonly'))">Get readonly value&lt;/button>
  344. &lt;button onclick="$('#rateit9').rateit('readonly',!$('#rateit9').rateit('readonly'))">Toggle readonly&lt;/button>
  345. &lt;/div>
  346. &lt;div>
  347. &lt;button onclick="alert($('#rateit9').rateit('ispreset'))">Get ispreset value&lt;/button>
  348. &lt;button onclick="$('#rateit9').rateit('ispreset',!$('#rateit9').rateit('ispreset'))">Toggle ispreset&lt;/button>
  349. &lt;/div>
  350. &lt;div>
  351. &lt;button onclick="$('#rateit9').rateit('reset')">Reset&lt;/button>
  352. &lt;/div>
  353. </pre>
  354. </li>
  355. <li id="ex_10">
  356. <h3>
  357. 10) Tooltip example</h3>
  358. <p>
  359. Using tooltips is easy. Just bind to the hover event, and do your thing. Shown here
  360. is the basic tooltip, but of course you can use any tooltip you'd like.</p>
  361. <h4>
  362. Basic numbers</h4>
  363. <div class="rateit" id="rateit10">
  364. </div>
  365. <script type="text/javascript">
  366. $("#rateit10").bind('over', function (event, value) { $(this).attr('title', value); });
  367. </script>
  368. <pre class="brush: xml">
  369. &lt;div class="rateit" id="rateit10">
  370. &lt;/div>
  371. &lt;script type="text/javascript">
  372. $("#rateit10").bind('over', function (event,value) { $(this).attr('title', value); });
  373. &lt;/script>
  374. </pre>
  375. <h4>
  376. Custom text</h4>
  377. <div class="rateit" id="rateit10b" data-rateit-step="1">
  378. </div>
  379. <script type="text/javascript">
  380. var tooltipvalues = ['bad', 'poor', 'ok', 'good', 'super'];
  381. $("#rateit10b").bind('over', function (event, value) { $(this).attr('title', tooltipvalues[value - 1]); });
  382. </script>
  383. <pre class="brush: xml">
  384. &lt;div class="rateit" id="rateit10b" data-rateit-step="1">
  385. &lt;/div>
  386. &lt;script type="text/javascript">
  387. var tooltipvalues = ['bad', 'poor', 'ok', 'good', 'super'];
  388. $("#rateit10b").bind('over', function (event, value) { $(this).attr('title', tooltipvalues[value-1]); });
  389. &lt;/script>
  390. </pre>
  391. </li>
  392. <li id="ex_11">
  393. <h3>
  394. 11) AJAX example</h3>
  395. <p>
  396. Most times RateIt will be used using some Ajax. There are different ways of implementing
  397. it (with/without backing field, using data-* attributes etc.)</p>
  398. <div id="products">
  399. <div style="float: right; width: 350px; border: 1px solid #ccc; padding: 1em;">
  400. <strong>Server response:</strong>
  401. <ul id="response">
  402. </ul>
  403. </div>
  404. <ul>
  405. <li>
  406. <h4>
  407. Product X (id: 312)</h4>
  408. RateIt:
  409. <div data-productid="312" class="rateit">
  410. </div>
  411. </li>
  412. <li>
  413. <h4>
  414. Product Y (id: 423)</h4>
  415. RateIt:
  416. <div data-productid="423" class="rateit">
  417. </div>
  418. </li>
  419. <li>
  420. <h4>
  421. Product Z (id: 653)</h4>
  422. RateIt:
  423. <div data-productid="653" class="rateit">
  424. </div>
  425. </li>
  426. </ul>
  427. </div>
  428. <script type="text/javascript">
  429. //we bind only to the rateit controls within the products div
  430. $('#products .rateit').bind('rated reset', function (e) {
  431. var ri = $(this);
  432. //if the use pressed reset, it will get value: 0 (to be compatible with the HTML range control), we could check if e.type == 'reset', and then set the value to null .
  433. var value = ri.rateit('value');
  434. var productID = ri.data('productid'); // if the product id was in some hidden field: ri.closest('li').find('input[name="productid"]').val()
  435. //maybe we want to disable voting?
  436. ri.rateit('readonly', true);
  437. $.ajax({
  438. url: 'rateit.aspx', //your server side script
  439. data: { id: productID, value: value }, //our data
  440. type: 'POST',
  441. success: function (data) {
  442. $('#response').append('<li>' + data + '</li>');
  443. },
  444. error: function (jxhr, msg, err) {
  445. $('#response').append('<li style="color:red">' + msg + '</li>');
  446. }
  447. });
  448. });
  449. </script>
  450. <h4>
  451. Client</h4>
  452. <pre class="brush: xml">
  453. &lt;div id="products">
  454. &lt;div style="float:right; width:350px; border:1px solid #ccc; padding:1em;">
  455. &lt;strong>Server response:&lt;/strong>
  456. &lt;ul id="response">
  457. &lt;/ul>
  458. &lt;/div>
  459. &lt;ul>
  460. &lt;li>&lt;h4>Product X (id: 312)&lt;/h4>
  461. RateIt: &lt;div data-productid="312" class="rateit">&lt;/div>
  462. &lt;/li>
  463. &lt;li>&lt;h4>Product Y (id: 423)&lt;/h4>
  464. RateIt: &lt;div data-productid="423" class="rateit">&lt;/div>&lt;/li>
  465. &lt;li>&lt;h4>Product Z (id: 653)&lt;/h4>
  466. RateIt: &lt;div data-productid="653" class="rateit">&lt;/div>
  467. &lt;/li>
  468. &lt;/ul>
  469. &lt;/div>
  470. &lt;script type ="text/javascript">
  471. //we bind only to the rateit controls within the products div
  472. $('#products .rateit').bind('rated reset', function (e) {
  473. var ri = $(this);
  474. //if the use pressed reset, it will get value: 0 (to be compatible with the HTML range control), we could check if e.type == 'reset', and then set the value to null .
  475. var value = ri.rateit('value');
  476. var productID = ri.data('productid'); // if the product id was in some hidden field: ri.closest('li').find('input[name="productid"]').val()
  477. //maybe we want to disable voting?
  478. ri.rateit('readonly', true);
  479. $.ajax({
  480. url: 'rateit.aspx', //your server side script
  481. data: { id: productID, value: value }, //our data
  482. type: 'POST',
  483. success: function (data) {
  484. $('#response').append('&lt;li>' + data + '&lt;/li>');
  485. },
  486. error: function (jxhr, msg, err) {
  487. $('#response').append('&lt;li style="color:red">' + msg + '&lt;/li>');
  488. }
  489. });
  490. });
  491. &lt;/script>
  492. </pre>
  493. <h4>
  494. Server (ASPX) super simplified</h4>
  495. <pre class="brush: c-sharp">
  496. &lt;%@ Page Language="C#" %>
  497. &lt;%
  498. //Get value
  499. float value = float.Parse(Request.Form["value"]);
  500. int productID = int.Parse(Request.Form["id"]);
  501. Response.Write(string.Format("You voted {0} on product: {1}.&lt;br/>Time on server: {2}", value, productID, DateTime.Now.ToString()));
  502. %>
  503. </pre>
  504. </li>
  505. <li id="ex_12">
  506. <h3>
  507. 12) Resizing
  508. </h3>
  509. <p>
  510. Sometimes we would like to resize the rating controls (perhaps based on screen size). <br />
  511. This is as easy as<br />
  512. a) adding a class to the rateit control, which would change the background image.<br/>
  513. b) modifying the starwidth and starheigth properties.
  514. <br /><br />
  515. The alternative styling is taken from example <a href="#ex_7a">7a) styling</a>.
  516. </p>
  517. <div class="rateit" id="rateit12">
  518. </div>
  519. <p>Pick a size: <select id="size_12"><option data-class="" data-size="16" selected>normal</option><option data-class="bigstars" data-size="32">big</option></select></p>
  520. <script type="text/javascript">
  521. $('#size_12').change(function () {
  522. var option = $(this.options[this.selectedIndex]);
  523. $('#rateit12').removeClass('bigstars')
  524. .addClass(option.data('class'))
  525. .rateit('starwidth', option.data('size'))
  526. .rateit('starheight', option.data('size'));
  527. });
  528. </script>
  529. <pre class="brush: xml">
  530. &lt;div class=&quot;rateit&quot; id=&quot;rateit12&quot;&gt;&lt;/div&gt;
  531. &lt;p&gt;Pick a size:
  532. &lt;select id=&quot;size_12&quot;&gt;
  533. &lt;option data-class=&quot;&quot; data-size=&quot;16&quot; selected&gt;normal&lt;/option&gt;
  534. &lt;option data-class=&quot;bigstars&quot; data-size=&quot;32&quot;&gt;big&lt;/option&gt;
  535. &lt;/select&gt;
  536. &lt;/p&gt;
  537. &lt;script type=&quot;text/javascript&quot;&gt;
  538. $(&#39;#size_12&#39;).change(function () {
  539. var option = $(this.options[this.selectedIndex]);
  540. $(&#39;#rateit12&#39;).removeClass(&#39;bigstars&#39;) //remove old class
  541. .addClass(option.data(&#39;class&#39;)) //add new class
  542. .rateit(&#39;starwidth&#39;, option.data(&#39;size&#39;)) //change width
  543. .rateit(&#39;starheight&#39;, option.data(&#39;size&#39;)); //change height
  544. });
  545. &lt;/script&gt;
  546. </pre>
  547. </li>
  548. </ul>
  549. <script src="../src/jquery.rateit.js" type="text/javascript"></script>
  550. <script>
  551. //build toc
  552. var toc = [];
  553. $('#examples > li').each(function (i, e) {
  554. if (i > 0)
  555. toc.push(', ');
  556. toc.push('<a href="#')
  557. toc.push(e.id)
  558. toc.push('">')
  559. var title = $(e).find('h3:first').text();
  560. title = title.substring(title.indexOf(')') + 2);
  561. toc.push(title);
  562. toc.push('</a>');
  563. });
  564. $('#toc').html(toc.join(''));
  565. </script>
  566. <!-- syntax highlighter -->
  567. <script src="sh/shCore.js" type="text/javascript"></script>
  568. <script src="sh/shBrushJScript.js" type="text/javascript"></script>
  569. <script src="sh/shBrushXml.js" type="text/javascript"></script>
  570. <script src="sh/shBrushCss.js" type="text/javascript"></script>
  571. <script src="sh/shBrushCSharp.js" type="text/javascript"></script>
  572. <script type="text/javascript">
  573. SyntaxHighlighter.all()
  574. </script>
  575. </body>
  576. </html>