Участник:Bouron/common.js: различия между версиями

Содержимое удалено Содержимое добавлено
Bouron (ныхас | бавæрд)
Нет описания правки
Bouron (ныхас | бавæрд)
Нет описания правки
Рæнхъ 1:
var wgAe={};
function keyboard(id, buttonid) {
wgAe.init=function(){
var pressed = false;
wgAe.APressed=false;
var out = document.getElementById(id);
wgAe.setCaret=function(pos){
var savedmousex = 0;
if (document.selection) {
var savedmousey = 0;
var savedposx = window.innerWidth;
var savedposy = 0;
var layout = new Layout();
var shiftpressed = false;
var caps = false;
var mod = "";
var displayed=false;
var aboutdisplayed=false;
function Layout() {
this.keys = [ 'q', 'w', 'e', 'r', 't' ];
for ( var i = 0; i < 47; i++) {
this.keys[i] = "ӕ";
}
else if ($('#wpTextbox1')[0].selectionStart) {
this.mods = [];
$('#wpTextbox1')[0].selectionStart = pos;ftft
this.modLayouts = new Array();
$('#wpTextbox1')[0].selectionEnd = pos;
this.modLayouts[0] = new Array();
}
this.modLayouts[0].mod = 'ф';
else if ($('#wpTextbox1')[0].selectionStart == '0') {
this.modLayouts[0].layout = new Array();
this.modLayouts[0].layout.keys = [ '45', '1', '2', '3', '4', '5', '6',
'7', '8', '9', '0', '-', '=', 'й', 'ц', 'у', 'к', 'е', 'н',
'г', 'ш', 't', 'з', "c", 'ъ', '\\', 'q', 'e', 'в', 'а', 'п',
'р', 'о', 'л', 'д', 'ж', 'æ', 'я', 'ч', 'с', 'м', 'и', 'т',
'ь', 'б', 'ю', '.' ];
this.isMod = function(key4check) {
for (key in this.mods) {
if (key4check == this.mods[key])
return true;
}
return false;
};
this.getLayout = function(mod) {
if (!mod)
return this;
for ( var i = 0; i < this.modLayouts.length; i++) {
if (mod == this.modLayouts[i]['mod']) {
return this.modLayouts[i]['layout'];
}
;
}
return this;
};
this.keys = this.shift_caps = [ 'э', '1', '2', '3', '4', '5', '6', '7',
'8', '9', '0', '-', '=', 'й', 'ц', 'у', 'к', 'е', 'н', 'г',
'ш', 'щ', 'з', "х", 'ъ', '\\', 'ф', 'ы', 'в', 'а', 'п', 'р',
'о', 'л', 'д', 'ж', 'æ', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь',
'б', 'ю', '.' ];
this.shift_keys = this.caps = [ 'Э', '!', '"', '№', ';', '%', ':', '?',
'*', '(', ')', '_', '+', 'Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г',
'Ш', 'Щ', 'З', "Х", 'Ъ', '/', 'Ф', 'Ы', 'В', 'А', 'П', 'Р',
'О', 'Л', 'Д', 'Ж', 'Æ', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь',
'Б', 'Ю', ',' ];
}
function getLayout() {
}
function onShift() {
shiftpressed = !shiftpressed;
}
function onCaps() {
caps = !caps;
}
function getLevel() {
if (!shiftpressed) {
if (!caps)
return "keys";
else
return 'caps';
} else {
if (!caps)
return "shift_keys";
else
return "shift_caps";
}
}
function deleteAtCursor() {
if (document.selection) {
out.focus();
sel = document.selection.createRange();
// sel.text = val;
}
// MOZILLA/NETSCAPE support
else if (out.selectionStart) {
var startPos = out.selectionStart;
var endPos = out.selectionEnd;
out.value = out.value.substring(0, startPos - 1)
+ out.value.substring(endPos, out.value.length);
out.selectionStart = startPos - 1;
out.selectionEnd = startPos - 1;
} else if (out.selectionStart == '0') {
}
}
function update() {
get_key_cont().innerHTML = build();
setOnClick();
}
function insertAtCursor(val) {
// IE support
out.focus();
if (document.selection) {
out.focus();
sel = document.selection.createRange();
sel.text = val;
}
// MOZILLA/NETSCAPE support
else if (out.selectionStart || out.selectionStart == '0') {
var startPos = out.selectionStart;
var endPos = out.selectionEnd;
out.value = out.value.substring(0, startPos) + val
+ out.value.substring(endPos, out.value.length);
out.selectionStart = startPos + 1;
out.selectionEnd = startPos + 1;
} else {
out.value += val;
}
out.focus();
}
var build = function() {
var i = 0;
var out = "";
var layoutArray = layout.getLayout(mod)[getLevel()];
for (; i < 13; i++) {
out += "<span class='l_key' >" + layoutArray[i] + "</span>";
}
out += "<span class='l_key' style='width:33px'>⌫</span>";
out += "<span class='l_key' style='width:33px'>Tab</span>";
for (; i < 13 + 13; i++) {
out += "<span class='l_key' >" + layoutArray[i] + "</span>";
}
out += "<span class='l_key " + (caps ? "l_pressed" : "")
+ "' style='width:38px'>Caps</span>";
for (; i < 26 + 11; i++) {
out += "<span class='l_key' >" + layoutArray[i] + "</span>";
}
out += "<span class='l_key ' style='width:43px'>Enter</span>";
out += "<span class='l_key " + (shiftpressed ? "l_pressed" : "")
+ "' style='width:53px'>Shift</span>";
for (; i < 37 + 10; i++) {
out += "<span class='l_key' >" + layoutArray[i] + "</span>";
}
out += "<span class='l_key " + (shiftpressed ? "l_pressed" : "")
+ "' style='width:53px'>Shift</span>";
out += "<span class='l_key' style='width:53px'>Alt+Gr</span>";
out += "<span class='l_key' style='width:248px'>Space</span>";
out += "<span class='l_key' style='width:53px'>Alt+Gr</span>";
return out;
};
document
.write("<div style='position:fixed;left:50%; bottom:0;'><div class='l_cont' id='keyboard'></div></div>");
// document.innerHTML+="<div class='l_cont' id='keyboard'></div>";
var button = document.getElementById(buttonid);
var cont = document.getElementById("keyboard");
// cont.style.bottom="0";
cont.innerHTML += '<style type="text/css">@charset UTF-8;.key_about{display:none;position:absolute;left:10px;bottom:10px;width:340px;height:160px;background-color:#eee;padding:10px;}.l_q{position:absolute;top:10px;right:25px;color:#FFF;cursor:pointer}.l_x{cursor:pointer}.l_cont{display:none;position:absolute;right:0px;width:380px;height:220px;bottom:0px;background-color:#555;opacity:0.85;-webkit-user-select:none;z-index:100;}.key_cont{position:absolute;left:10px;bottom:10px;width:360px;height:180px;background-color:#777;}.l_x{position:absolute;top:10px;right:10px;color:#FFF;}.l_label{cursor:move;width:340px;position:absolute;top:10px;left:10px;color:#FFF;}.l_key{width:23px;height:25px;float:left;background-color:#eee;border-spacing:0;overflow:hidden;text-align:center;padding-top:9px;margin:1px;}.l_pressed{background-color:#ace;}</style>';
cont.innerHTML += "<div class='key_cont' id='key_cont'></div>";
cont.innerHTML += "<div class='key_about' id='key_about'>Ацы амонæнуат сарæзта <a href='http://wwwtexnikon.org'>Техникон ирон æвзаджы æхсæнад</a>.</div>";
var key_cont = document.getElementById("key_cont");
function get_key_cont() {
return document.getElementById("key_cont");
}
key_cont.innerHTML = build();
cont.innerHTML += "<span class='l_x' id='l_x'>x</span><span class='l_q' id='l_q'>?</span><span id='l_label' class='l_label'>Ирон амонæнуат <span id='info'></span></span>";
document.getElementById("keyboard").onmousedown = function(e) {
if (e.stopPropagation)
e.stopPropagation();
if (e.preventDefault)
e.preventDefault();
};
document.getElementById("l_label").onmousedown = function(e) {
if (e.button == 0) {
savedmousex = e.clientX;
savedmousey = e.clientY;
pressed = true;
// cont.style.cursor = "move";
if (e.stopPropagation)
e.stopPropagation();
if (e.preventDefault)
e.preventDefault();
window.onmouseup = function(e) {
if (pressed) {
pressed = false;
offsetx = savedmousex - e.clientX;
offsety = savedmousey - e.clientY;
savedposx = savedposx - offsetx;
savedposy = savedposy - offsety;
// document.getElementById("info").innerHTML = "UP";
cont.style.cursor = "hand";
}
;
}
}
// document.getElementById("info").innerHTML = "DOWN " + savedx + " "
// + savedy;
};
cont.onmousemove = function(e) {
if (e.stopPropagation)
e.stopPropagation();
if (e.preventDefault)
e.preventDefault();
if (pressed) {
// cont.style.cursor = 'move';
offsetx = savedmousex - e.clientX;
offsety = savedmousey - e.clientY;
cont.style.top = "" + (savedposy - offsety) + "px";
cont.style.left = "" + (savedposx - offsetx) + "px";
// element.style.top="100px";
}
};
setOnClick();
function setOnClick() {
var key_cont = document.getElementById("key_cont");
var c = key_cont.childNodes;
for ( var i = 0; i < c.length; i++) {
// key_cont.childNodes[i].innerHTML="i";
key_cont.childNodes[i].style.cursor = "pointer";
key_cont.childNodes[i].onmousedown = function(e) {
if (e.stopPropagation)
e.stopPropagation();
if (e.preventDefault)
e.preventDefault();
if (e.button == 0) {
var key = this.innerHTML;
switch (key) {
case "⌫":
this.className += " l_pressed";
deleteAtCursor();
break;
case "Shift":
onShift();
update();
break;
case "Caps":
onCaps();
update();
break;
case "Space":
this.className += " l_pressed";
insertAtCursor(" ");
if (mod) {
if (shiftpressed) {
onShift();
}
mod = "";
update();
}
if (shiftpressed) {
onShift();
update();
}
break;
case "Tab":
break;
case "Alt+Gr":
break;
case "Enter":
break;
default:
this.className += " l_pressed";
if ((layout.isMod(key)) && key != mod) {
mod = key;
update();
} else if (key != mod) {
insertAtCursor(this.innerHTML);
if (mod) {
if (shiftpressed) {
onShift();
}
mod = "";
update();
}
if (shiftpressed) {
onShift();
update();
}
}
}
;
}
};
key_cont.childNodes[i].onmouseup = function() {
var key = this.innerHTML;
if (key == mod)
return;
switch (key) {
case "Shift":
case "Caps":
break;
default:
this.className = "l_key";
}
};
}
}
button.onclick = function(e) {
if(!displayed){
savedposx = -190;
savedposy = -220;
cont.style.top = "" + (-220) + "px";
cont.style.left = "" + savedposx + "px";
cont.style.display = "block";
displayed=true;}
else{
//displayed=false;
//cont.style.display="none";
}
};
out.onblur=document.getElementById("l_x").onclick=function(){
cont.style.display="none";
displayed=false;
};
document.getElementById("l_q").onclick=function(){
if(!aboutdisplayed){
document.getElementById("key_about").style.display="block";
aboutdisplayed=true;}
else{
document.getElementById("key_about").style.display="none";
aboutdisplayed=false;
}
//displayed=false;
};
}
//var kbrd=new keyboard("wpTextbox1","wpTextbox1");
//LinkFA();
}
/*function hideBots(){
wgAe.timeFlag=0;
if(mw.config.get('wgAction')=='history'){
$('#wpTextbox1').keydown(function (e){
var pageHistory=document.getElementById('pagehistory');
var code = (e.keyCode ? e.keyCode : e.which);
var reviews=pageHistory.childNodes;
varif(code re=/bot$/i= 70){
wgAe.timeFlag=$.now();
var username=''
wgAe.APressed=true;
for (var i=1;i<reviews.length;i=i+2){
}
username=document.getElementById('pagehistory').childNodes[i].childNodes[6].firstChild.innerHTML;
else if(wgAe.APressed && $.now()-wgAe.timeFlag<500){
if(username.match(re)) reviews[i].style.display='none';
if(code == 84){
var caps=false;
var caretPosition=$('#wpTextbox1').data( 'wikiEditor-context' ).$textarea.textSelection( 'getCaretPosition', { startAndEnd: true } );
val=$('#wpTextbox1').val()
var enteredKey=val.slice(caretPosition[0]-1,caretPosition[0]);
enteredKey.toUpperCase()===enteredKey?caps=true:caps=false;
var pre=val.slice(0,caretPosition[0]-1);
var ins=caps?'Ӕ':'ӕ';
var val=pre+ins+val.slice(caretPosition[0],val.length);
$('#wpTextbox1').val(val);
wgAe.setCaret(caretPosition[0]);
wgAe.APressed=false;
e.stopPropagation();
return false;
}
wgAe.APressed=false;
}
});
}
alert('Айонг кусы');
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
mw.loader.using( 'user.options', function () {
if ( mw.user.options.get('usebetatoolbar') ) {
mw.loader.using( 'ext.wikiEditor.toolbar', function () {
alert('Айонг кусы');
$(document).ready(wgAe.init);
} );
}
} );
}
addOnloadHook(hideBots);*/