<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Developer Blog &#187; Prototype</title>
	<atom:link href="http://451f.com.ua/category/prototype/feed" rel="self" type="application/rss+xml" />
	<link>http://451f.com.ua</link>
	<description>developer blog - 451 degrees Fahrenheit</description>
	<lastBuildDate>Sun, 04 Jul 2010 21:22:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Картинка вместо стандартного checkbox</title>
		<link>http://451f.com.ua/image_insted_standart_checkbox/39</link>
		<comments>http://451f.com.ua/image_insted_standart_checkbox/39#comments</comments>
		<pubDate>Tue, 13 May 2008 13:00:42 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
				<category><![CDATA[Prototype]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mootools]]></category>

		<guid isPermaLink="false">http://451f.com.ua/?p=39</guid>
		<description><![CDATA[На самом деле checkbox и есть картинка, но в данном примере мы стандартную картинку заменим своей красивой! Собственно надоели убогие checkbox&#8217;ы и захотелось красоты, вот что было найдено на эту тему Fancy Form &#8211; http://lipidity.com/fancy-form Использует как основу javascript framework Mootools 1.11, облегченная версия которого входит в пакет загрузки Fancy Form Второй не менее интересный [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>На самом деле checkbox и есть картинка, но в данном примере мы стандартную картинку заменим своей красивой!</p></blockquote>
<p>Собственно надоели убогие checkbox&#8217;ы и захотелось красоты, вот что было найдено на эту тему</p>
<p><strong>Fancy Form</strong> &#8211; <a href="http://lipidity.com/fancy-form" target="_blank">http://lipidity.com/fancy-form</a></p>
<p><img style="border: 0pt none;" src="http://451f.com.ua/img/2008/05/fancyform.jpg" alt="Fancy Form checkbox" /></p>
<p>Использует как основу javascript framework <strong>Mootools 1.11</strong>, облегченная версия которого входит в пакет загрузки <strong>Fancy Form</strong></p>
<p>Второй не менее интересный вариант это <strong>Protocheck</strong> &#8211; <a href="http://bugrain.com/projects/protocheck/">http://bugrain.com/projects/protocheck/</a></p>
<p><img style="border: 0pt none;" src="http://451f.com.ua/img/2008/05/protocheck.jpg" alt="Protocheck checkbox" /></p>
<p>Использует javascript framework <strong>Prototype</strong> &#8211; в пакет закачки эта библиотека не входит, ее нужно отдельно скачивать на  сайте разработчика <a href="www.prototypejs.com" target="_blank">www.prototypejs.com</a></p>
<p>Я выбрал для работы Protocheck, но не из-за его качеств, а только из-за того что он использует protoype, который в данный момент уже присутствует в проекте, т.е. основная цель &#8211; это не плодить javascript библиотеки.</p>
]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/image_insted_standart_checkbox/39/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Доллар function, $() в prototype</title>
		<link>http://451f.com.ua/prototipe_triks_function/20</link>
		<comments>http://451f.com.ua/prototipe_triks_function/20#comments</comments>
		<pubDate>Mon, 10 Dec 2007 16:07:17 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://451f.com.ua/2007/12/10/prototipe_triks__function/</guid>
		<description><![CDATA[В основном, это простая ссылка на document.getElementById(), но несколько более расширенная чем просто ссылка. Ниже показан пример использования: [cc lang="php"] node = $(&#8216;elementID&#8217;); // То же самое node = document.getElementById(&#8216;elementID&#8217;); // Так же можно получать не только один елемент // В этом случае результат будет массивом DOM елементов nodes = $(&#8216;firstDiv&#8217;, &#8216;secondDiv&#8217;); [/cc] Prototype так [...]]]></description>
			<content:encoded><![CDATA[<p>В основном, это простая ссылка на <font face="Courier New"><em>document.getElementById()</em>, но несколько более расширенная чем просто ссылка. Ниже показан пример использования:</font></p>
<p>[cc lang="php"]<br />
node = $(&#8216;elementID&#8217;);</p>
<p>// То же самое<br />
node = document.getElementById(&#8216;elementID&#8217;);</p>
<p>// Так же можно получать не только один елемент<br />
// В этом случае результат будет массивом DOM елементов<br />
nodes = $(&#8216;firstDiv&#8217;, &#8216;secondDiv&#8217;);<br />
[/cc]</p>
<p><a href="http://prototypejs.org" title="prototypejs.org" target="_blank">Prototype</a> так же предлагает функцию, ее нет в ядре JavaScript, которая возвращается массив DOM елементов и как аргумент она принимает имя css класса (class name):<br />
[cc lang="php"]<br />
nodes = document.getElementByClassName(&#8216;myclass&#8217;);<br />
[/cc]</p>
<p>Однако, я думаю использовать ее вы будете редко, так как <a href="http://prototypejs.org" title="prototypejs.org" target="_blank">Prototype</a> предлагает более расширенную функцию двойной доллар, $$(). Эта фунция возвращает массив DOM елементов основанных на CSS селекторе (css selector). Таким образом код показанный выше можно записать так:</p>
<p>[cc lang="php"]<br />
nodes = $$(&#8216;.myclass&#8217;);<br />
[/cc]</p>
<p>Благодаря мощьности CSS селекторов (css selectors) вы можете парсить модель DOM по классам (class), ID, и родитель-наследник (parent-child) и предыдущий-следующий (previous-next) связям, гораздо проще чем при использовании XPath выражений. Вы можете получить доступ к элементу через сложную комбинацию селекторов:</p>
<p>[cc lang="php"]<br />
nodes = $$(&#8216;body div#main ul li.last img &gt; span.legend&#8217;);<br />
[/cc]</p>
<p>И последний пример улучшения синтаксиса предлагаемого <a href="http://prototypejs.org" title="prototypejs.org" target="_blank">Prototype</a> — это each array iterator, подобно как в PHP:</p>
<p>[cc lang="php"]<br />
var vegetables = ['Carrots', 'Lettuce', 'Garlic'];<br />
vegetables.each(function(food) { alert(&#8216;I love &#8216; + food); });<br />
[/cc]</p>
<p>Не забывайте подписывать на рассылку.</p>
<p>Дальше будет еще много интересного.</p>
]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/prototipe_triks_function/20/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обновление областей страниц на лету с помощью Ajax.Updater</title>
		<link>http://451f.com.ua/%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b5%d0%b9-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86-%d0%bd%d0%b0-%d0%bb%d0%b5%d1%82%d1%83-%d1%81/16</link>
		<comments>http://451f.com.ua/%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b5%d0%b9-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86-%d0%bd%d0%b0-%d0%bb%d0%b5%d1%82%d1%83-%d1%81/16#comments</comments>
		<pubDate>Fri, 23 Nov 2007 10:25:09 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://451f.com.ua/2007/11/23/%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b5%d0%b9-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86-%d0%bd%d0%b0-%d0%bb%d0%b5%d1%82%d1%83-%d1%81/</guid>
		<description><![CDATA[Ajax.Updater &#8211; один из методов библиотеки prototype.js В web 2.0 проектах часто приходиться обновлять некоторые области на страничке, для упрощения жизни пользователя, к примеру: Вывод системного сообщения без перезагруки страницы Показать форму входа или регистрации Обновить блок новостей это небольшой список из того, где можно использовать Ajax.Updater Хочу заметить, что через мерное применение большого количества [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://prototypejs.org/api/ajax/updater" target="_blank">Ajax.Updater</a> &#8211; один из методов библиотеки <a href="http://prototypejs.org/" target="_blank">prototype.js</a></p>
<p>В web 2.0 проектах часто приходиться обновлять некоторые области на страничке, для упрощения жизни пользователя, к примеру:</p>
<ol>
<li>Вывод системного сообщения без перезагруки страницы</li>
<li>Показать форму входа или регистрации</li>
<li>Обновить блок новостей</li>
</ol>
<p>это небольшой список из того, где можно использовать <strong><a href="http://prototypejs.org/api/ajax/updater" target="_blank">Ajax.Updater</a></strong></p>
<blockquote><p>Хочу заметить, что через мерное применение большого количества обновляемых элементов на странице не улучшает ее, а зачастую снижает общую скорость загрузки страницы, и приводит к более частым &#8220;<em>поломкам</em>&#8221; в разных броузерах.</p></blockquote>
<p>Возьмем самый простой пример, динамически без перезагрузки страницы обновим область в которую выведем коментарии, к какому либо сообщению нашего блога.</p>
<p>[cc lang="php"]<br />
<!-- Выводим текст сообщения блога --></p>
<div>
 Эта статья раскажет как обновлять старницу на лету<br />
 с помощью Ajax.Update из библиотеки prototype.js
</div>
<p><!-- Комментарии к статье --></p>
<div id="comments"> здесь будут коментарии&#8230; </div>
<p><script language="javascript">
  new Ajax.Updater('comments', '/url_to_comments/comments.php', {
    method: get
  })
</script><br />
[/cc]</p>
<p>В примере выше, <a href="http://prototypejs.org/api/ajax/updater" target="_blank">Ajax.Updater</a> вызывает файл <em>/url_to_comments/comments.php, </em>который выводить комментарии к статье, и обновляется контейнер <em>id=&#8221;comments&#8221;. </em></p>
<p>Контейнер <em>id=&#8221;comments&#8221;</em> полностью перезаписывается, поэтому в вызываемом файле <em>comments.php</em> нужно указывать открывающие и закрывающие <strong>&lt;div&gt; коментарии &lt;/div&gt;</strong> теги.</p>
<p><a href="http://prototypejs.org/api/ajax/updater" target="_blank">Ajax.Updater</a> имеет еще ряд параметров. Если сервер возвращает HTML, содержащий скрипты, и вы хотите чтоб они исполнялисть, в строке параметров нужно указать <code><strong>evalScripts: true.</strong></code></p>
<blockquote><p>Русский перевод статьи об <strong>Ajax</strong> в <a href="http://prototypejs.org" target="_blank">protoype.js</a> вы можете почитать на страницах блога <a href="http://parabola.sotakone.com/2007/01/23/prototype-ajax-tutorial/" target="_blank">Parabola</a>.</p></blockquote>
<p>Приведенный выше пример не совсем точно показывает всю прелесть обновления блоков на странице, ниже показан более правильный способ использования <a href="http://prototypejs.org/api/ajax/updater" target="_blank">Ajax.Updater</a>.</p>
<p>[cc lang="php"]</p>
<form method="POST">
<!-- Выводим текст сообщения блога --></p>
<div>
 Эта статья раскажет как обновлять старницу на лету<br />
 с помощью Ajax.Update из библиотеки prototype.js
</div>
<p><!-- Комментарии к статье --></p>
<div id="comments"> здесь будут коментарии&#8230; </div>
<input type="button" value="Показать комментарии" onclick="showComments()">
</form>
<p><script language="javascript">
  function showComments()
  {
    new Ajax.Updater('comments', '/url_to_comments/comments.php', {
      method: get
    })
  }
</script><br />
[/cc]</p>
<p>В этом примере добавиласть кнопка <em>&#8220;Показать комментарии&#8221;</em>, т.е. при первоначальной загрузки старницы, комментариев под статьей нет, в момент нажатия на кнопку <em>&#8220;показать комментарии&#8221;, </em>вызывается функция <strong>showComments()<em>. </em></strong>Которая обновляет контейнер <em>id=&#8221;comments&#8221; </em>и выводит комментарии к статье.</p>
<p>Работать с <strong><a href="http://prototypejs.org/api/ajax/updater" target="_blank">Ajax.Updater</a></strong> очень просто! Если у вас есть свои примеры использования этого метода оставляйте их в комментариях к этой статье.</p>
<p>В следующей статье я раскажу об методе Ajax.Autocompleter из библиотеки <a href="http://script.aculo.us/" target="_blank">script.aculo.us</a>, который во многом похож на Ajax.Updater и позволяет добавлять к полям формы автозаполнение по мере ввода текста в форму.</p>
<p>Не забывайте подписавать на рассылки.</p>
]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b5%d0%b9-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86-%d0%bd%d0%b0-%d0%bb%d0%b5%d1%82%d1%83-%d1%81/16/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Пишем простой Tab list с prototype.js</title>
		<link>http://451f.com.ua/tab_switcher_with_prototype/12</link>
		<comments>http://451f.com.ua/tab_switcher_with_prototype/12#comments</comments>
		<pubDate>Sat, 03 Nov 2007 14:00:05 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[ajax.updater]]></category>
		<category><![CDATA[prototype.js]]></category>
		<category><![CDATA[tab]]></category>

		<guid isPermaLink="false">http://451f.com.ua/2007/11/03/%d0%bf%d0%b8%d1%88%d0%b5%d0%bc-%d0%bf%d1%80%d0%be%d1%81%d1%82%d0%be%d0%b9-tab-list-%d1%81-prototypejs/</guid>
		<description><![CDATA[Как я написал свой Tab list и почему не использовал доступные в интернете готовые примеры. Вот примеры Tab листов, которые я раньше использовал: Dexagogo Livepipe На примерах этих tab листов, трудно понять как работает сам механизм связанный с переключаниями между tab&#8217;ами. И один из больших недостатков я не смог застивить работать эти tab листы на [...]]]></description>
			<content:encoded><![CDATA[<p>Как я написал свой Tab list и почему не использовал доступные в интернете готовые примеры.</p>
<p><a href="http://451f.com.ua/img/2007/11/tab-list.gif"><img src="http://451f.com.ua/img/2007/11/tab-list-thumb.gif" style="border-width: 0px" alt="tab_list" border="0" height="140" width="402" /></a></p>
<p>Вот примеры <strong>Tab листов</strong>, которые я раньше использовал:</p>
<ol>
<li><a href="http://tetlaw.id.au/view/blog/fabtabulous-simple-tabs-using-prototype/">Dexagogo</a></li>
<li><a href="http://vikiworks.com/2007/09/11/wp-theme-resurrection">Livepipe</a></li>
</ol>
<p>На примерах этих tab листов, трудно понять как работает сам механизм связанный с переключаниями между tab&#8217;ами.</p>
<p>И один из больших недостатков я не смог застивить работать эти tab листы на <em>динамически вызваных страницах</em>, которые вызваются через методы библиотеки <a href="http://prototypejs.org">prototype.js</a> (Ajax.Updater и др.). Вот по этой причине я решил написать свой tab лист.</p>
<p><strong>Первое</strong>, создаем простой html документ:</p>
<p>[cc lang="php"]<br />
<html><br />
<head></p>
<p>    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></p>
<style>
      /* tab */
      .panel {
      	clear: both;
      	display: none;
      	border: 3px solid #CCC;
      	padding: 1em;
      }
      .panel.active-tab-body {
      	display: block;
      }
      #tabs {
      	list-style: none;
      }</p>
<p>      #tabs li {
       float: left;	
      }</p>
<p>      #tabs a {
      	float: left;
      	padding: 2px 8px;
      	background-color: #F2F2F2;
      	text-decoration: none;
      	color: #999999;
      }</p>
<p>      #tabs a.active-tab {
      	background-color: #CCC;
      	border-top: 3px solid #999;
      	padding-top: 0px;
      	color: #000;
      }
    </style>
<p>    <script type="text/javascript" language="JavaScript" src="/js/scriptaculous/lib/prototype.js"></script><br />
</head></p>
<p><body></p>
<p></body><br />
</html><br />
[/cc]</p>
<p>Обратите внимание на кодировку в документе используется <strong>UTF-8, </strong>так как библиотека <strong>prototype.js</strong> не дружит с нашими кодировками <strong>windowds-1251</strong></p>
<blockquote><p>Если у вас все же есть необходимость использовать в работе кодировку <strong>windows-1251</strong>, вам поможет библиотека <a href="http://dklab.ru/" target="_blank">Дмитрия Котерова</a> <strong>JsHttpRequest. </strong>Которая полностью совместима с <a href="http://prototypejs.org">prototype.js</a></p></blockquote>
<p>В моем примере tab list я использую CSS стили из проекта <a href="http://tetlaw.id.au/view/blog/fabtabulous-simple-tabs-using-prototype/">Dexagogo</a>.</p>
<p>Перед закрытием тега &lt;/head&gt; , добавляем подключение библиотеки <a href="http://prototypejs.org">prototype.js</a>, которую я использую для переключения между tab&#8217;ами, и динамеческой загрузки информации в выбранный tab.</p>
<p><span id="more-12"></span></p>
<p><strong>Второе</strong>, собственно сами закладки:</p>
<p>[cc lang="php"]</p>
<div>
<ul id="tabs">
<li><a id="one" href="#one" class="active-tab" onclick="tab('one')">Первая</a></li>
<li><a id="two" href="#two" onclick="tab('two')">Вторая</a></li>
<li><a id="three" href="#three" onclick="tab('three')">Внешняя</a></li>
</ul>
</div>
<div class="panel active-tab-body" id="oneone">
  Нажали на первый таб<br />
  этот таб загружен вместе со страницей
</div>
<div class="panel" id="twotwo">
  Нажали на второй таб<br />
  этот таб так же загружен вместе со страницей
</div>
<div class="panel" id="threethree">
<script language="javascript">
  new Ajax.Updater('threethree', 'inner.html', {method: 'get'});
</script>
</div>
<p>[/cc]</p>
<p>Для приведенного кода я думаю особых объяснений не нужно. Основное, что может вызвать не монимание, это функция <strong>tab(&#8216;one&#8217;) </strong>именно вызывая ее происходит переключение, более подробоно будет описана ниже.<br />
Также в этом листинге в содержании третьего таба (<em>id=threethree</em>), вызвается метод <a href="http://prototypejs.org/api/ajax/updater">Ajax.Updater(&#8216;threethree&#8217;, &#8216;inner.html&#8217;, {method: &#8216;get&#8217;})</a>, где:</p>
<ol>
<li>&#8216;threethree&#8217; — id в innerHTML (<em>внутренность</em>) которого будет загружен внешний файл</li>
<li>&#8216;inner.html&#8217; — внешний загружаемый файл</li>
<li>{method: &#8216;get&#8217;} — передаваемый параметр, в это месте можно добавить свои значения, которые мы хотим передать внешнему файлу.</li>
</ol>
<p>более подробно об методе <a href="http://prototypejs.org/api/ajax/updater">Ajax.Updater</a> я раскажу в следующий записях моего дневника, незабудьте подписать на рассылку вконце этой записи.</p>
<p><strong>Третье</strong>, javascript функци, которые  переключают Tab&#8217;ы:</p>
<p>[cc lang="javascript"]<br />
<script language="javascript">
  function tab(id){
    active = document.getElementsByClassName('active-tab');
    active[0].className = ''
    document.getElementById(id).className = "active-tab";</p>
<p>    idbody = id + id;
    tabBody(idbody);
  }</p>
<p>  function tabBody(id){
    active = document.getElementsByClassName('panel active-tab-body');
    for (i in active){
     active[i].className = 'panel'
    }
    document.getElementById(id).className = "panel active-tab-body";
  }
</script><br />
[/cc]</p>
<p>Фукнция <strong>tab()</strong> — переключает верхние &lt;div&gt; заголовки tab&#8217;ов</p>
<p>В первой строке определяем текующий активный tab</p>
<p>[cc lang="javascript"]active = document.getElementsByClassName(&#8216;active-tab&#8217;);[/cc]</p>
<blockquote><p>Обратите внимание на метод <a href="http://prototypejs.org/api/element#method-getelementsbyclassname">getElementsByClassName</a> использовать его позволяет библиотека <a href="http://prototypejs.org">prototype.js</a></p></blockquote>
<p>Делаем текущий активный tab не активным</p>
<p>[cc lang="javascript"]active[0].className = &#8221;[/cc]</p>
<p>Назначаем новый выбранный tab активным</p>
<p>[cc lang="javascript"]document.getElementById(id).className = &#8220;active-tab&#8221;;[/cc]</p>
<blockquote><p>Библиотека <a href="http://prototypejs.org">prototype.js</a> предлагает для упрощения несколько сокращений для стандартных методов, один из них <a href="http://prototypejs.org/api/utility#method-$">$</a>, который заменяет вызов <em>document.getElementById</em>. Так можно заменить запись вида <em>document.getElementById(id)</em> на равнозначную запись <em>$(id)</em></p></blockquote>
<p>Вызываем функцию <strong>tabBody() </strong>— переключает нижние &lt;div&gt; тело tab&#8217;ов.</p>
<p>Функция <em>tabbody()</em> работает аналогично <em>tab().</em></p>
<p>Посмотреть <a href="http://451f.com.ua/practice/tab" target="_blank">Демо переключатель tab</a>, скачать все одиним архивом <a href="http://451f.com.ua/practice/tab/tab.zip" target="_blank">tab.zip</a>.</p>
<p>
Библиотека prototype.js в архив не включена, скачайте послденюю версию с офф сайта <a href="http://prototypejs.org" title="http://prototypejs.org">http://prototypejs.org</a>
</p>
<p>
Не забудьте подписаться на <a href="http://451f.com.ua/feed/" title="RSS">RSS</a> и <a href="http://feeds.feedburner.com/451f" title="feedburner">e-mail</a> рассылку.
</p>
<p>
В следующей статье я раскажу как работать с <a href="http://demo.script.aculo.us/ajax/autocompleter" target="_blank">Ajax.Autocompleter</a> и покажу недокументированные функкции, а так же основную ошибку, которую совершают при работе с этим методом от <a href="http://script.aculo.us/">http://script.aculo.us/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/tab_switcher_with_prototype/12/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
