Показать сообщение отдельно
  #9 (permalink)  
Старый 28.10.2014, 12:59
Аспирант
Отправить личное сообщение для BARABANTEMO Посмотреть профиль Найти все сообщения от BARABANTEMO
 
Регистрация: 15.03.2012
Сообщений: 79

хорошо расскажу всю проблему
<style type="text/css" rel="stylesheet">
.contjil{
height: 17px;
width: 22px;
margin: 7px 7px 0 9px;
float: left;
overflow: hidden;
position: relative;
}
.flgjil{cursor: pointer;
background: url('http://www.myvideo.ge/v4_imgs/kbd_flags.png') no-repeat 0 0;
display: block;
height: 17px;
width: 50px;
position: absolute;
top:0;
left:0;
}
</style>

<!--SEARCH START-->
<form id="jilform">
<div class="contjil">
<a class="flgjil" id="cbdjil" title="ქართული კლავიატურის გათიშვა"></a>
</div>
<input id="kbdjil" style="display:none;" type="checkbox" checked="" name="geo">
<input id="message" name="message">
</form>
<!--SEARCH END-->

<script type="text/javascript">
function handleKeys(e) {
var t = window.event ? event : e;
if (t.altKey || t.ctrlKey) return true;
var n;
n = e.which;
if (e.which == 96) geoobj.checked = !geoobj.checked;
var r = formobj.value.length - 1;
if (e.which == 96) {
var i = e.target;
var s = i.selectionStart;
i.value = i.value.substring(0, i.selectionStart) + "" + i.value.substring(i.selectionStart);
i.setSelectionRange(s, s);
return false
}
if (geoobj.checked) {
for (r = 0; r <= geo.length; r++) {
if (eng[r] == e.which) {
var i = e.target;
var s = i.selectionStart;
i.value = i.value.substring(0, i.selectionStart) + String.fromCharCode(geo[r]) + i.value.substring(i.selectionEnd);
s++;
i.setSelectionRange(s, s);
return false
}
}
status = n
}
return true
}
function changeVal() {
formobj2 = document.REPLIER.Post;
geoobj2 = document.REPLIER.geo;
formobj = formobj2;
geoobj = geoobj2;
var e = new Is;
if (e.konqueror && formobj.value == "") {
formobj.value = " "
}
if (e.ie4up) {
if (event.keyCode == 96) geoobj.checked = geoobj.checked ? false : true;
if (event.keyCode == 96) event.keyCode = ""
} else if (e.nav6up || e.konqueror || e.safari) {
document.onkeypress = handleKeys
}
if (geoobj.checked) {
if (e.ie4up || e.opera && !e.opera7up) {
var t;
t = event.keyCode;
for (i = 0; i <= geo.length; i++) {
if (eng[i] == event.keyCode) {
event.keyCode = geo[i]
}
}
status = t
} else if (e.nav6up || e.opera) {
document.onkeypress = handleKeys
} else {
alert("We doesn't currently support your browser");
geoobj.checked = false
}
}
}
eng = new Array(97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 87, 82, 84, 83, 67, 74, 90);
geo = new Array(4304, 4305, 4330, 4307, 4308, 4324, 4306, 4336, 4312, 4335, 4313, 4314, 4315, 4316, 4317, 4318, 4325, 4320, 4321, 4322, 4323, 4309, 4332, 4334, 4327, 4310, 4333, 4326, 4311, 4328, 4329, 4319, 4331, 91, 93, 59, 39, 44, 46, 96);
(function () {
String.prototype.pasteTo = function (e) {
e.focus();
if (document.selection) {
var t = document.selection.createRange();
if (t) {
t.text = this
}
} else if (e.selectionStart != undefined) {
var n = e.scrollTop,
r = e.selectionStart,
i = e.selectionEnd;
var s = e.value.substring(0, r) + this + e.value.substring(i, e.value.length);
e.value = s;
e.scrollTop = n;
e.setSelectionRange(r + this.length, r + this.length)
} else {
e.value += this;
e.setSelectionRange(e.value.length, e.value.length)
}
}, String.prototype.translateToKA = function () {
var e, t, n = [],
r = "abgdevzTiklmnopJrstufqRySCcZwWxjh";
for (var i = 0; i < this.length; i++) {
t = this.substr(i, 1);
if ((e = r.indexOf(t)) >= 0) {
n.push(String.fromCharCode(e + 4304))
} else {
n.push(t)
}
}
return n.join("")
}, GeoKBD = {
browser: {
isOpera: navigator.userAgent.toLowerCase().indexOf("opera") > -1,
isIe: navigator.userAgent.toLowerCase().indexOf("msie") > -1,
isIe6: navigator.userAgent.toLowerCase().indexOf("msie 6") > -1,
isIe7: navigator.userAgent.toLowerCase().indexOf("msie 7") > -1
},
event: {
get: function (e) {
return e || window.event
},
getKeyCode: function (e) {
e = this.get(e);
return e.keyCode || e.which
},
targetIs: function (e, t) {
e = this.get(e);
var n = e.target || e.srcElement;
return n.tagName.toLowerCase() == t ? n : null
},
attach: function (e, t, n, r) {
if (e.addEventListener) {
e.addEventListener(t, n, r)
} else if (e.attachEvent) {
return e.attachEvent("on" + t, n)
} else {
e["on" + t] = n
}
},
detach: function (e, t, n, r) {
if (e.removeEventListener) {
e.removeEventListener(t, n, r)
} else if (e.detachEvent) {
e.detachEvent("on" + t, n)
} else {
e["on" + t] = null
}
},
cancel: function (e) {
e = this.get(e);
if (e.stopPropagation) {
e.stopPropagation();
e.preventDefault()
} else {
e.cancelBubble = true;
e.returnValue = false
}
}
},
keyHandlers: {},
addKeyHandler: function (e, t) {
if (typeof e == "string") {
e = e.charCodeAt(0)
}
if (!this.keyHandlers[e]) {
this.keyHandlers[e] = []
}
this.keyHandlers[e].push(t)
},
handleKey: function (e) {
if (GeoKBD.keyHandlers[e]) {
var t = null;
for (var n = 0; n < GeoKBD.keyHandlers[e].length; n++) {
t = GeoKBD.keyHandlers[e][n];
if (t.constructor && t.constructor == Array) {
t[0][t[1]].call(t[0], e)
} else {
t(e)
}
}
}
},
map: function (e, t, n) {
var r = this,
i = [],
s = [];
if (e) {
if (e.constructor) {
if (e.constructor == String) {
i.push(e)
} else if (e.constructor == Array) {
i = e
}
if (i.length) {
for (var o in i) {
if (document.forms[i[o]]) {
s.push(document.forms[i[o]])
}
}
}
} else {
s.push(e)
}
} else {
s = document.forms
}
for (var o = 0; o < s.length; o++) {
e = s[o];
if (!e.fields || e.fields == undefined) e.fields = {};
if (e.ka == undefined) e.ka = e[n] ? e[n].checked : true;
if (t) {
if (typeof t == "string") t = [t];
for (var u = 0; u < t.length; u++) {
if (e[t[u]] && !e.fields[t[u]]) e.fields[t[u]] = t[u]
}
} else {
var a, f;
for (var u = 0; u < e.elements.length; u++) {
if (e.elements[u].type) {
a = e.elements[u].name || e.elements[u].id;
f = e.elements[u].type.toLowerCase();
if (a && (f == "text" || f == "textarea")) {
e.fields[a] = a
}
}
}
}
n = n || "geo";
e.switcher = n;
e.onkeypress = function (e) {
e = r.event.get(e);
if (e.altKey || e.ctrlKey) return;
if (!r.browser.isIe && !r.browser.isOpera && !e.charCode) {
return
}
var t, i = n,
s = r.event.getKeyCode(e);
if (s == 96) {
if (this[i]) {
this.ka = this[i].checked = !this[i].checked
} else {
this.ka = !this.ka
}
return false
} else if (this[i]) {
this.ka = this[i].checked
}
if (!this.ka) return;
if (t = r.event.targetIs(e, "textarea") || r.event.targetIs(e, "input")) {
if (!this.fields[t.name || t.id]) return;
text = String.fromCharCode(s);
kaText = text.translateToKA();
if (kaText != text) {
if (GeoKBD.browser.isIe) {
e.keyCode = kaText.charCodeAt(0)
} else {
kaText.pasteTo(t);
return false
}
}
}
}
}
e = s = i = null
},
mapIFrame: function (e) {
var t = function (e) {
if (e.altKey || e.ctrlKey) return;
var t = (e.target || e.srcElement).ownerDocument;
if (t.ka == undefined) t.ka = true;
var n = GeoKBD.event.getKeyCode(e);
var r = String.fromCharCode(n);
var i, s;
if (parent.document.forms[t.parentForm]) {
i = parent.document.forms[t.parentForm];
if (i.switcher && i[i.switcher]) {
s = i[i.switcher]
}
}
if (n == 96) {
t.ka = !t.ka;
if (s) s.checked = t.ka;
GeoKBD.event.cancel(e)
} else if (s) {
t.ka = s.checked
}
i = s = null;
if (t.ka) {
var o = r.translateToKA();
if (o != r) {
if (!GeoKBD.browser.isIe) {
t.execCommand("InsertHTML", false, o)
} else {
var u = t.selection.createRange();
u.pasteHTML(o)
}
GeoKBD.event.cancel(e)
}
}
};
var n = function (e) {
if (!GeoKBD.browser.isIe) {
GeoKBD.event.attach(this.document, "keypress", t, true);
GeoKBD.event.detach(this, "focus", n, true)
} else {
GeoKBD.event.attach(this.contentWindow.document, "keypress", t, true);
this.onfocus = null
}
};
var r = window.setInterval(function () {
var t = typeof e == "string" ? document.getElementById(e) : e();
if (t) {
for (var i = t.parentNode; i && i != document.body; i = i.parentNode) {
if (/form/i.test(i.tagName)) {
if (t.contentWindow.document) {
t.contentWindow.document.parentForm = i.name || i.id
} else {
t.document.parentForm = i.name || i.id
}
break
}
}
if (!GeoKBD.browser.isIe) {
GeoKBD.event.attach(t.contentWindow, "focus", n, true)
} else {
t.onfocus = n
}
t = null;
window.clearInterval(r)
}
}, 100)
}
};
window.GeoKBD = GeoKBD
})();        
$('#cbdjil').click(function(e)
{
e.preventDefault();
$('#kbdjil').click();
if($('#kbdjil').is(":checked")) {
$(this).attr('title','ქართული კლავიატურის გათიშვა');
$(this).animate({
left:'+0px'
},'fast');
} else {
$(this).attr('title','ქართული კლავიატურის ჩართვა');
$(this).animate({
left:'-29px'
},'fast');
}
});
$("#message").keypress(function(event)
{
if(event.which == 96) {
if($('#kbdjil').is(":checked")) {
$('#cbdjil').attr('title','ქართული კლავიატურის ჩართვა');
$('#cbdjil').animate({
left:'-29px'
},'fast');
} else {
$('#cbdjil').attr('title','ქართული კლავიატურის გათიშვა');
$('#cbdjil').animate({
left:'+0px'
},'fast');
}
}
});
GeoKBD.map('jilform','message');    
</script>

это переключатель языка между грузинским и английским - в нижнем регистре всё работает хорошо а вот когда включён капслок то вместо грузинских букв пишет большие английские
как сделать чтобы и в верхнем регистре писало грузинские соответственно
ременный пример

Последний раз редактировалось BARABANTEMO, 28.10.2014 в 13:08.
Ответить с цитированием