function addLinkEntityEncode(str){
str=str.replace(/(
|
|
)/gim, '::br::');
str=new Option(str).innerHTML;
return str.replace(/"/g, '"').replace(/::br::/g, '
');
}
function addLinkCopiedContent(){
var body_element=document.getElementsByTagName("body")[0],
breaks="",
params=astx_add_link_copied_text,
site_name=Array(),
site_url=params.addlinktosite ? params.siteurl:document.URL,
selection=window.getSelection ? window.getSelection():document.selection,
selection1=selection;
for (var i=0; i ";
if(params.usetitle)
site_name.push(addLinkEntityEncode(params.pagetitle));
if(params.addsitename)
site_name.push(addLinkEntityEncode(params.sitename));
if(site_name.length==0)
site_name.push(site_url);
var pagelink=breaks + " " + addLinkEntityEncode(params.readmore) + " " + "";
if(!params.addlinktosite&¶ms.usesitenameaslink&&!params.frontpage){
site_name.push(addLinkEntityEncode(params.sitename));
pagelink +=site_name[0] + " | " + site_name[1] + "";
}
else
pagelink +=site_name.join(" | ") + "";
if(params.cleartext||params.replaced_text.length){
selection1="";
if(window.getSelection)
selection.removeAllRanges();
else
window.clipboardData.clearData();
if(params.cleartext)
return;
}
if(params.replaced_text.length)
selection1=addLinkEntityEncode(params.replaced_text);
var copytext=selection1 + pagelink;
var appendeddiv=document.createElement("div");
appendeddiv.style.position="absolute";
appendeddiv.style.left="-99999px";
body_element.appendChild(appendeddiv);
appendeddiv.innerHTML=copytext;
var d=function(){
var r=document.body.createTextRange();
r.moveToElementText(appendeddiv);
r.select();
};
if(!params.cleartext&¶ms.replaced_text.length==0)
if(window.getSelection)
selection.selectAllChildren(appendeddiv);
else
d();
else if(window.getSelection)
selection.selectAllChildren(appendeddiv);
else
d();
window.setTimeout(function(){
body_element.removeChild(appendeddiv);
}, 0);
}
if(document.addEventListener)
document.addEventListener("copy", addLinkCopiedContent, true);
else if(document.attachEvent)
document.documentElement.attachEvent("oncopy", addLinkCopiedContent);
else
document.oncopy=addLinkCopiedContent;
(function(){
var supportsPassive=false;
try {
var opts=Object.defineProperty({}, 'passive', {
get:function(){
supportsPassive=true;
}});
window.addEventListener('testPassive', null, opts);
window.removeEventListener('testPassive', null, opts);
} catch(e){}
function init(){
var input_begin='';
var keydowns={};
var lastKeyup=null;
var lastKeydown=null;
var keypresses=[];
var modifierKeys=[];
var correctionKeys=[];
var lastMouseup=null;
var lastMousedown=null;
var mouseclicks=[];
var mousemoveTimer=null;
var lastMousemoveX=null;
var lastMousemoveY=null;
var mousemoveStart=null;
var mousemoves=[];
var touchmoveCountTimer=null;
var touchmoveCount=0;
var lastTouchEnd=null;
var lastTouchStart=null;
var touchEvents=[];
var scrollCountTimer=null;
var scrollCount=0;
var correctionKeyCodes=[ 'Backspace', 'Delete', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End', 'PageUp', 'PageDown' ];
var modifierKeyCodes=[ 'Shift', 'CapsLock' ];
var forms=document.querySelectorAll('form[method=post]');
for(var i=0; i 1){
keypress.push(keydowns[ e.key ][1]);
}
keypresses.push(keypress);
}}
delete keydowns[ e.key ];
lastKeyup=keyupTime;
}, supportsPassive ? { passive: true }:false);
form.addEventListener("focusin", function(e){
lastKeydown=null;
lastKeyup=null;
keydowns={};}, supportsPassive ? { passive: true }:false);
form.addEventListener("focusout", function(e){
lastKeydown=null;
lastKeyup=null;
keydowns={};}, supportsPassive ? { passive: true }:false);
}
document.addEventListener('mousedown', function(e){
lastMousedown=(new Date()).getTime();
}, supportsPassive ? { passive: true }:false);
document.addEventListener('mouseup', function(e){
if(! lastMousedown){
return;
}
var now=(new Date()).getTime();
var mouseclick=[];
mouseclick.push(now - lastMousedown);
if(lastMouseup){
mouseclick.push(lastMousedown - lastMouseup);
}
mouseclicks.push(mouseclick);
lastMouseup=now;
lastKeydown=null;
lastKeyup=null;
keydowns={};}, supportsPassive ? { passive: true }:false);
document.addEventListener('mousemove', function(e){
if(mousemoveTimer){
clearTimeout(mousemoveTimer);
mousemoveTimer=null;
}else{
mousemoveStart=(new Date()).getTime();
lastMousemoveX=e.offsetX;
lastMousemoveY=e.offsetY;
}
mousemoveTimer=setTimeout(function(theEvent, originalMousemoveStart){
var now=(new Date()).getTime() - 500;
var mousemove=[];
mousemove.push(now - originalMousemoveStart);
mousemove.push(Math.round(Math.sqrt(Math.pow(theEvent.offsetX - lastMousemoveX, 2) +
Math.pow(theEvent.offsetY - lastMousemoveY, 2)
)
)
);
if(mousemove[1] > 0){
mousemoves.push(mousemove);
}
mousemoveStart=null;
mousemoveTimer=null;
}, 500, e, mousemoveStart);
}, supportsPassive ? { passive: true }:false);
document.addEventListener('touchmove', function(e){
if(touchmoveCountTimer){
clearTimeout(touchmoveCountTimer);
}
touchmoveCountTimer=setTimeout(function (){
touchmoveCount++;
}, 500);
}, supportsPassive ? { passive: true }:false);
document.addEventListener('touchstart', function(e){
lastTouchStart=(new Date()).getTime();
}, supportsPassive ? { passive: true }:false);
document.addEventListener('touchend', function(e){
if(! lastTouchStart){
return;
}
var now=(new Date()).getTime();
var touchEvent=[];
touchEvent.push(now - lastTouchStart);
if(lastTouchEnd){
touchEvent.push(lastTouchStart - lastTouchEnd);
}
touchEvents.push(touchEvent);
lastTouchEnd=now;
lastKeydown=null;
lastKeyup=null;
keydowns={};}, supportsPassive ? { passive: true }:false);
document.addEventListener('scroll', function(e){
if(scrollCountTimer){
clearTimeout(scrollCountTimer);
}
scrollCountTimer=setTimeout(function (){
scrollCount++;
}, 500);
}, supportsPassive ? { passive: true }:false);
}
function prepare_timestamp_array_for_request(a, limit){
if(! limit){
limit=100;
}
var rv='';
if(a.length > 0){
var random_starting_point=Math.max(0, Math.floor(Math.random() * a.length - limit));
for(var i=0; i =2){
rv +="," + a[ random_starting_point + i ][1];
}
rv +=";";
}}
return rv;
}
if(document.readyState!=='loading'){
init();
}else{
document.addEventListener('DOMContentLoaded', init);
}})();