98 lines
3.6 KiB
JavaScript
98 lines
3.6 KiB
JavaScript
"use strict"
|
|
// Функция для определения координат указателя мыши
|
|
function defPosition(event) {
|
|
let x = 0;
|
|
let y = 0;
|
|
if (document.attachEvent != null) { // Internet Explorer & Opera
|
|
x = window.event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
|
|
y = window.event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
|
|
if (window.event.clientY + 72 > document.body.clientHeight) { y-=68 } else { y-=2 }
|
|
} else if (!document.attachEvent && document.addEventListener) { // Gecko
|
|
x = event.clientX + window.scrollX;
|
|
y = event.clientY + window.scrollY;
|
|
if (event.clientY + 72 > document.body.clientHeight) { y-=68 } else { y-=2 }
|
|
} else {
|
|
// Do nothing
|
|
}
|
|
return {x:x, y:y};
|
|
}
|
|
|
|
var clip = new ZeroClipboard.Client();
|
|
clip.setHandCursor( true );
|
|
clip.setCSSEffects(true);
|
|
|
|
clip.addEventListener( 'onComplete', function(client){
|
|
clip.hide();
|
|
cMenu();
|
|
} );
|
|
|
|
/**
|
|
* @return {boolean}
|
|
*/
|
|
function OpenMenu(evt,level){
|
|
let flagpop = 0
|
|
let login
|
|
let menu = document.getElementById("oMenu")
|
|
let html;
|
|
evt = evt || window.event;
|
|
evt.cancelBubble = true;
|
|
// Показываем собственное контекстное меню
|
|
login = (evt.target || evt.srcElement).innerHTML;
|
|
|
|
clip.setText(login);
|
|
|
|
var i1, i2;
|
|
if ((i1 = login.indexOf('['))>=0 && (i2 = login.indexOf(']'))>0) login=login.substring(i1+1, i2);
|
|
|
|
var login2 = login;
|
|
login2 = login2.replace('%', '%25');
|
|
while (login2.indexOf('+')>=0) login2 = login2.replace('+', '%2B');
|
|
while (login2.indexOf('#')>=0) login2 = login2.replace('#', '%23');
|
|
while (login2.indexOf('?')>=0) login2 = login2.replace('?', '%3F');
|
|
|
|
html = '<a href="javascript:void(0)" class="menuItem" onclick="top.AddTo(\''+login+'\');cMenu()">TO</a>'+
|
|
'<a href="javascript:void(0)" class="menuItem" onclick="top.AddToPrivate(\''+login+'\');cMenu()">PRIVATE</a>'+
|
|
'<a href="javascript:void(0)" class="menuItem" onclick="window.open(\'inf.php?login='+login+'\')"; cMenu();">INFO</a>'+
|
|
'<div class="my_clip_button" id="d_clip_button">COPY</div>';
|
|
|
|
// Если есть что показать - показываем
|
|
if (html){
|
|
menu.innerHTML = html;
|
|
menu.style.top = defPosition(evt).y + "px";
|
|
menu.style.left = defPosition(evt).x + "px";
|
|
menu.style.display = "";
|
|
}
|
|
if (flagpop === 0){
|
|
flagpop = 1;
|
|
clip.glue( 'd_clip_button' )
|
|
}
|
|
else
|
|
clip.reposition('d_clip_button');
|
|
// Блокируем всплывание стандартного браузерного меню
|
|
return false;
|
|
}
|
|
|
|
function addHandler(object, event, handler, useCapture){
|
|
if (object.addEventListener){
|
|
object.addEventListener(event, handler, useCapture ? useCapture : false);
|
|
} else if (object.attachEvent){
|
|
object.attachEvent('on' + event, handler);
|
|
} else alert("Add handler is not supported");
|
|
}
|
|
|
|
addHandler(document, "contextmenu", function(){
|
|
document.getElementById("oMenu").style.display = "none";
|
|
});
|
|
|
|
addHandler(document, "click", function(){
|
|
clip.hide();
|
|
document.getElementById("oMenu").style.display = "none";
|
|
});
|
|
|
|
function cMenu() {
|
|
/*document.all("oMenu").style.visibility = "hidden";
|
|
document.all("oMenu").style.top="0px";*/
|
|
document.getElementById("oMenu").style.display = "none";
|
|
top.frames['bottom'].window.document.F1.text.focus();
|
|
}
|
|
//-------------------------------------------------------------------------
|