<?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>Code.ge Blog &#187; Tools</title>
	<atom:link href="http://www.code.ge/posts/tag/tools/feed" rel="self" type="application/rss+xml" />
	<link>http://www.code.ge</link>
	<description>ბლოგი ვებ პროგრამირებისა და ტექნოლოგიების შესახებ</description>
	<lastBuildDate>Fri, 03 Dec 2010 12:05:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.2</generator>
		<item>
		<title>ქართული კლავიატურის სკრიპტი</title>
		<link>http://www.code.ge/posts/georgian-keyboard</link>
		<comments>http://www.code.ge/posts/georgian-keyboard#comments</comments>
		<pubDate>Tue, 23 Oct 2007 13:09:54 +0000</pubDate>
		<dc:creator>იოსები</dc:creator>
				<category><![CDATA[GeoKBD]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.code.ge/javascript/georgian-keyboard</guid>
		<description><![CDATA[ესე იგი მინდოდა თუ არ მინდოდა ირაკლი ნადარეიშვილმა მიბიძგა და ქართული კლავიატურის სკრიპტი დავწერე&#8230; სკრიპტი ძალიან მარტივია, და მისი მიბმა შეგიძლიათ ნებისმიერ ტექსტურ ველზე, ასევე მას აქვს ქართული კლავიატურის ჩართვისა და გამორთვის მხარდაჭერა. სიმბოლოების ტრანსლირებისათვის გამოვიყენე ირაკლის მიერ წლების წინ შემუშავებული ალგორითმი (ორიგინალი შეგიძლიათ იხილოთ აქ) სკრიპტის მუშა მაგალითი შეგიძლიათ იხილოთ ამ მისამართზე სკრიპტის უახლესი [...]]]></description>
			<content:encoded><![CDATA[<p>ესე იგი მინდოდა თუ არ მინდოდა <a href="http://www.freshblurbs.com">ირაკლი ნადარეიშვილმა</a> მიბიძგა და ქართული კლავიატურის სკრიპტი დავწერე&#8230; </p>
<p>სკრიპტი ძალიან მარტივია, და მისი მიბმა შეგიძლიათ ნებისმიერ ტექსტურ ველზე, ასევე მას აქვს ქართული კლავიატურის ჩართვისა და გამორთვის მხარდაჭერა. სიმბოლოების ტრანსლირებისათვის გამოვიყენე ირაკლის მიერ წლების წინ შემუშავებული ალგორითმი (<a href="http://www.sapikhvno.org/viewtopic.php?t=47&#038;postdays=0&#038;postorder=asc&#038;start=10">ორიგინალი შეგიძლიათ იხილოთ აქ</a>)</p>
<p>სკრიპტის მუშა მაგალითი შეგიძლიათ იხილოთ <a href="http://www.code.ge/samples/geokbd.htm">ამ მისამართზე</a><br />
სკრიპტის უახლესი ვერსიის გადმოწერა შეგიძლიათ <a href="http://geokbd.googlecode.com/svn/trunk/geokbd/geokbd.js">ამ მისამართიდან</a></p>
<p>რა უპირატესობები აქვს ამ სკრიპტს? იგი არის პატარა, კოდი არის ძალიან მარტივი და გასაგები, არ აბინძურებს ვებ აპლიკაციის სკოუპს რადგან იგი მთლიანად არის ენკაპსულირებული თავისსავე სკოუპში რაც არის იმის გარანტია რომ მისი გამოყენება შეგიძლია მარტივად და უსაფრთხოდ თუნდაც სხვა ანალოგიური დანიშნულების სკრიპტებთან ერთად. </p>
<p>ასევე საგულისხმოა ის რომ <strong>String </strong> ობიექტს ემატება ორი მეთოდი ესენია:</p>
<ol>
<li><strong>translateToKA()</strong> &#8211;  მეთოდი რომელსაც შეუძლია ნებისმიერი სტრიქონის პირდაპირ გადაყვანა ქართულ უნიკოდში. რაც ნიშნავს იმას რომ ამ მეთოდის გამოყენება თამამად შეგიძლიათ თქვენს სკრიპტებში.
<p>მეთოდის გამოყენება შეგიძლიათ შემდეგნაირად:</p>
<pre>
var str = "es aris nebismieri teqsti";
alert(str.translateToKA());

//ან პირდაპირ ასე
alert("es aris text literali".translateToKA());
</pre>
</li>
<li><strong>pasteTo([html form element])</strong> &#8211; რომელსაც პარამეტრად გადაეცემა ფორმის ელემენტი. ეს მეთოდი ტექსტის კოპირებას ახდენს ან პირდაპირ თუ ელემენტის მნიშვნელობა ცარიელია, ან იმ ადგილას სადაც ზის კურსორი, ან ჩაანაცვლებს მონიშნულ ტექსტს ახალი ტექსტით.
<p>მეთოდის გამოყენება შეგიძლიათ შემდეგნაირად:</p>
<pre>
var str = "es aris nebismieri teqsti";
str.translateToKA().pasteTo(document.forms['my-form-name']['my-field-name']);
</pre>
</li>
</ol>
<p><strong>კოდი ვრცელდება MIT ლიცენზიით</strong></p>
<pre>
        /*
	 * GeoKBD 0.1 - Georgian keyboard and text convertation library
	 *
	 * Copyright (c) 2007 Ioseb Dzmanashvili (http://www.code.ge)
	 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
	 */
</pre>
<p><span id="more-81"></span></p>
<h2>გამოყენების მაგალითი</h2>
<p>HTML კოდი:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">form</span></a> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;my-form&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;checkbox&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;geo&quot;</span> <span style="color: #000066;">checked</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;checked&quot;</span><span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">br</span></a> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/textarea.html"><span style="color: #000000; font-weight: bold;">textarea</span></a> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">cols</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #000066;">rows</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;8&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/textarea.html"><span style="color: #000000; font-weight: bold;">textarea</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">form</span></a>&gt;</span><br />
<br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">br</span></a> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">form</span></a> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;another-form&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;checkbox&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;geo1&quot;</span> <span style="color: #000066;">checked</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;checked&quot;</span><span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">br</span></a> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/textarea.html"><span style="color: #000000; font-weight: bold;">textarea</span></a> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;frm&quot;</span> <span style="color: #000066;">cols</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #000066;">rows</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;8&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/textarea.html"><span style="color: #000000; font-weight: bold;">textarea</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">form</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>JavaScript კოდი:</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">GeoKBD.<span style="color: #660066;">map</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'my-form'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'post'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
GeoKBD.<span style="color: #660066;">map</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'another-form'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'frm'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'geo1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>ამ კოდის შესრულების შემდეგ ორივე ფორმაში შესაძლებელი იქნება ქართულად ბეჭდვა, კლავიატურის გადართვის გარეშე.</p>
<p>სკრიპტის მუშაობის პრინციპი მარტივია, GeoKBD ობიექტის map მეთოდს გადავცემთ სამ პარამეტრს:</p>
<ol>
<li>HTML ფორმის სახელი ან თავად HTML ფორმა</li>
<li>იმ ველის სახელი რომელშიც შესაძლებელი უნდა იყოს ქართულად ბეჭდვა ან თუ გსურთ რომ ფორმის ყველა ველში იყოს შესაძლებელი ქართულად ბეჭდვა, მაშინ ამ პარამეტრის გადაცემა არ არის აუცილებელი</li>
<li>კლავიატურის გადამრთველი ველის(checkbox) სახელი (არ არის აუცილებელი პარამეტრი, თუ ამ პარამეტრს არ გადავცმეთ გამოყენებული იქნება სახელი &#8216;geo&#8217;)</li>
</ol>
<p><strong><br />
პროგრამის სრული კოდი:</strong></p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #006600; font-style: italic;">/*<br />
&nbsp; &nbsp;* GeoKBD 0.1 - Georgian keyboard and text convertation library<br />
&nbsp; &nbsp;*<br />
&nbsp; &nbsp;* Copyright (c) 2007 Ioseb Dzmanashvili (http://www.code.ge)<br />
&nbsp; &nbsp;* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)<br />
&nbsp; &nbsp;*/</span><br />
&nbsp; <br />
&nbsp; String.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">pasteTo</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>field<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; field.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">selection</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> selection <span style="color: #339933;">=</span> document.<span style="color: #660066;">selection</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> range <span style="color: #339933;">=</span> selection.<span style="color: #660066;">createRange</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; range.<span style="color: #660066;">colapse</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>range<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; range.<span style="color: #660066;">text</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>field.<span style="color: #660066;">selectionStart</span> <span style="color: #339933;">||</span> field.<span style="color: #660066;">selectionEnd</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> scrollTop <span style="color: #339933;">=</span> field.<span style="color: #660066;">scrollTop</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> start <span style="color: #339933;">=</span> field.<span style="color: #660066;">selectionStart</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> end <span style="color: #339933;">=</span> field.<span style="color: #660066;">selectionEnd</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> value <span style="color: #339933;">=</span> field.<span style="color: #660066;">value</span>.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span>0<span style="color: #339933;">,</span> start<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">this</span> <span style="color: #339933;">+</span> field.<span style="color: #660066;">value</span>.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span>end<span style="color: #339933;">,</span> field.<span style="color: #660066;">value</span>.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; field.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> value<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; field.<span style="color: #660066;">scrollTop</span> <span style="color: #339933;">=</span> scrollTop<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; field.<span style="color: #660066;">selectionStart</span> <span style="color: #339933;">=</span> start <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; field.<span style="color: #660066;">selectionEnd</span> <span style="color: #339933;">=</span> start <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; field.<span style="color: #660066;">value</span> <span style="color: #339933;">+=</span> <span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <br />
&nbsp; <br />
&nbsp; String.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">translateToKA</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #006600; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* Original idea by Irakli Nadareishvili<br />
&nbsp; &nbsp; &nbsp;* http://www.sapikhvno.org/viewtopic.php?t=47&amp;postdays=0&amp;postorder=asc&amp;start=10<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> index<span style="color: #339933;">,</span> chr<span style="color: #339933;">,</span> text <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> symbols <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;abgdevzTiklmnopJrstufqRySCcZwWxjh&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; chr <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span> 1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>index <span style="color: #339933;">=</span> symbols.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span>chr<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;=</span> 0<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; text.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>String.<span style="color: #660066;">fromCharCode</span><span style="color: #009900;">&#40;</span>index <span style="color: #339933;">+</span> 4304<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; text.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>chr<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> text.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><br />
&nbsp; <br />
&nbsp; GeoKBD <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; event<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; get<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> e <span style="color: #339933;">||</span> window.<span style="color: #660066;">event</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; getKeyCode<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; e <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> e.<span style="color: #660066;">keyCode</span> <span style="color: #339933;">||</span> e.<span style="color: #660066;">which</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; targetIs<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #339933;">,</span> tagName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; e <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> t <span style="color: #339933;">=</span> e.<span style="color: #660066;">target</span> <span style="color: #339933;">||</span> e.<span style="color: #660066;">srcElement</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> t.<span style="color: #660066;">tagName</span>.<span style="color: #660066;">toLowerCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> tagName <span style="color: #339933;">?</span> t <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; map<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>form<span style="color: #339933;">,</span> contentFieldName<span style="color: #339933;">,</span> switcher<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> self <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; form <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> form <span style="color: #339933;">==</span> <span style="color: #3366CC;">'string'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">forms</span><span style="color: #009900;">&#91;</span>form<span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> form<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; switcher <span style="color: #339933;">=</span> switcher <span style="color: #339933;">||</span> <span style="color: #3366CC;">'geo'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; form.<span style="color: #660066;">onkeypress</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; e <span style="color: #339933;">=</span> self.<span style="color: #660066;">event</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>e.<span style="color: #660066;">altKey</span> <span style="color: #339933;">||</span> e.<span style="color: #660066;">ctrlKey</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> target<span style="color: #339933;">,</span> fieldName <span style="color: #339933;">=</span> contentFieldName<span style="color: #339933;">,</span> _switcher <span style="color: #339933;">=</span> switcher<span style="color: #339933;">,</span> keyCode <span style="color: #339933;">=</span> self.<span style="color: #660066;">event</span>.<span style="color: #660066;">getKeyCode</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>keyCode <span style="color: #339933;">==</span> 96<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#91;</span>_switcher<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">checked</span> <span style="color: #339933;">=</span> <span style="color: #339933;">!</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#91;</span>_switcher<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">checked</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#91;</span>_switcher<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">checked</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>target <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>self.<span style="color: #660066;">event</span>.<span style="color: #660066;">targetIs</span><span style="color: #009900;">&#40;</span>e<span style="color: #339933;">,</span> <span style="color: #3366CC;">'textarea'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> self.<span style="color: #660066;">event</span>.<span style="color: #660066;">targetIs</span><span style="color: #009900;">&#40;</span>e<span style="color: #339933;">,</span> <span style="color: #3366CC;">'input'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>fieldName <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>target.<span style="color: #000066;">name</span> <span style="color: #339933;">!=</span> fieldName<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text <span style="color: #339933;">=</span> String.<span style="color: #660066;">fromCharCode</span><span style="color: #009900;">&#40;</span>keyCode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; kaText <span style="color: #339933;">=</span> text.<span style="color: #660066;">translateToKA</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>kaText <span style="color: #339933;">!=</span> text<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; kaText.<span style="color: #660066;">pasteTo</span><span style="color: #009900;">&#40;</span>target<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; form <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
&nbsp; <br />
&nbsp; window.<span style="color: #660066;">GeoKBD</span> <span style="color: #339933;">=</span> GeoKBD<span style="color: #339933;">;</span><br />
<br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.code.ge/posts/georgian-keyboard/feed</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
	</channel>
</rss>

