|
// ==UserScript==
// @name KaraktersizSozluk
// @namespace mea
// @description Eksi sozluk'e Turkce Karakter Girisi Icin Eklemeler Yapan Script v0.23
// @version 0.23
// @include http://sozluk.sourtimes.org/*
// @include http://eksisozluk.com/*
// @include http://www.eksisozluk.com/*
// ==/UserScript==
function de(s) { return document.getElementById(s); }
function dn(s) { return document.getElementsByName(s)[0]; }
function Karaktersiz()
{
this.charMap = {};
this.charMap[67] = "\u00e7"; // turkce c
this.charMap[71] = "\u011f"; // turkce g
this.charMap[73] = "\u0131"; // turkce i
this.charMap[79] = "\u00f6"; // turkce o
this.charMap[83] = "\u015f"; // turkce s
this.charMap[85] = "\u00fc"; // turkce u
}
Karaktersiz.prototype = {
hen2: function(o, a, b)
{
// bu kisim sozlukten:
var tmp = o.scrollTop;
o.focus();
if (document.selection && !window.opera)
{
var rg = document.selection.createRange();
if (rg.parentElement() == o)
{
rg.text = a + rg.text + b;
rg.select();
}
}
else if (o.selectionStart || o.selectionStart == '0')
{
var s = o.value;
var end = o.selectionEnd;
var start = o.selectionStart;
//o.value = s.substring(0, start) + a + s.substring(start, end) + b + s.substring(end);
o.value = s.substring(0, start) + a + s.substring(end);
end += a.length + b.length;
//o.setSelectionRange(end, end);
o.setSelectionRange(start+1, start+1);
} else o.value += a + b;
o.scrollTop = tmp;
return true;
},
convertAll: function(o)
{
if (confirm('B\u00fcy\u00fck harfleri T\u00fcrk\u00e7e kar\u015f\u0131l\u0131klar\u0131na \u00e7evirmek istiyor musunuz?'))
{
if (o)
{
var str = o.value.replace(/C/g, this.charMap[67]); // c
str = str.replace(/I/g, this.charMap[73]); // i
str = str.replace(/G/g, this.charMap[71]); // g
str = str.replace(/O/g, this.charMap[79]); // o
str = str.replace(/S/g, this.charMap[83]); // s
str = str.replace(/U/g, this.charMap[85]); // u
o.value = str;
}
}
},
hookText: function(e, target)
{
var shift = e.shiftKey;
var key = (window.event) ? key = e.keyCode : key = e.which;
if (shift) // shift?
if (this.charMap[key]) // is key in change list?
if (this.hen2(target, this.charMap[key], ''))
{
/*if (!e) event.returnValue = false;
else e.preventDefault();
return false;*/
//if (event && event.returnValue) event.returnValue = false;
if (e && e.preventDefault()) e.preventDefault();
return false;
}
},
addCharPanel: function(container, target)
{
var this_obj = this;
if (container && target)
{
var sId = "charpanel"+container.id+"_"+target.id
var pnl = de(sId);
if (!pnl)
{
pnl = document.createElement('span');
pnl.setAttribute("id", sId);
// Tumunu cevir tusu:
var btn = document.createElement('input');
btn.setAttribute('type', 'button');
btn.setAttribute('value', 'karakterleri \u00e7evir');
btn.setAttribute('class', 'but');
btn.addEventListener('click', function(e) {this_obj.convertAll( target ); }, false);
pnl.appendChild(btn);
container.appendChild(pnl);
}
}
},
hookTextBox: function(o, add_button)
{
var this_obj = this;
if (o && (o.tagName.toLowerCase()=='textarea' || (o.tagName.toLowerCase()=='input' && o.type=='text') ) )
{
if (o.addEventListener) o.addEventListener("keypress", function(e){return this_obj.hookText(e, o);}, false);
else if (o.attachEvent) o.attachEvent("onkeypress", this_obj.hookText(e, o));
if (add_button!=false)
this.addCharPanel(o.parentNode, o);
}
}
};
window.karaktersiz = new Karaktersiz();
window.karaktersiz.hookTextBox(de('d')); // entri kutusu
window.karaktersiz.hookTextBox(de('t')); // baslik kutusu
window.karaktersiz.hookTextBox(de('msg')); // mesaj kutusu
//window.karaktersiz.hookTextBox(dn('au'), false); // hayvan ara yazar
window.karaktersiz.hookTextBox(dn('kw'), false); // hayvan ara baslik
window.karaktersiz.hookTextBox(dn('rt'), false); // ispiyon mesaji
|