// ==UserScript==
// @name hadoken
// @namespace hadoken
// @description highlight
// @include http://hadoken.free.fr/board/*
// @include *D:/test/*
// ==/UserScript==
// VERSION 1.0.1
//---------------------------------------------------------------------------
// Paramètre du highlight
var MyHighLightColor="#114477"; // Couleur de fond
var MyBorder="1px solid silver"; // Couleur de la bordure
// Paramètre du login
var MyHorlogeColor="lightgreen"; // Couleur de l'horloge
var MyLoginColor="red"; // Couleur du GLogin
//---------------------------------------------------------------------------
// Variables globales
var GFloatPanel;
var GPageYOffset =0;
var GLogin="";
var GMyPosts= new Array();
function addGlobalStyle(css) {
style = document.createElement("style");
style.type = "text/css";
style.innerHTML = css;
var t = document.getElementsByTagName('head');
if(t) t[0].appendChild(style);
}
//---------------------------------------------------------------------------
function add_css() {
addGlobalStyle("input { width:100%; }");
addGlobalStyle(".post { border:1px solid transparent; }");
addGlobalStyle(" #highlight { position: fixed; display: block; top: 0px; " +
"left: 0px; right: 0px; margin: 0px; background: #114477; " +
"border: 1px solid black; text-align: left !important; "+
"color: black; border: 1px solid silver}");
addGlobalStyle(".rightbar img { display:none;}");
}
//---------------------------------------------------------------------------
function add_highlight_div() {
GFloatPanel = document.createElement("div");
GFloatPanel.setAttribute('id','highlight');
GFloatPanel.style.display='none';
document.getElementById("b").appendChild(GFloatPanel);
}
//---------------------------------------------------------------------------
function get_items(xpath_expr) {
return document.evaluate(xpath_expr,
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
}
//---------------------------------------------------------------------------
function load() {
add_css();
add_highlight_div();
div_items = get_items('//div[@class=\'post\']/div[@class=\'left horloge my\']');
for (var i = 0; i < div_items.snapshotLength; i++) {
div_item = div_items.snapshotItem(i);
div_item.className='left horloge';
GLogin=div_item.parentNode.childNodes[3].innerHTML;
GMyPosts[GMyPosts.length+1]=div_item.innerHTML;
}
div_items = get_items('//div[@class=\'left horloge\']');
for (var i = 0; i < div_items.snapshotLength; i++) {
div_item = div_items.snapshotItem(i);
div_item.style.border="1px solid transparent";
div_item.addEventListener( 'mouseover',
function(event) {
div_items = get_items( '//span[@class=\'horloge horloge_\']');
sub_hightlight2(this, div_items, MyHighLightColor);
GFloatPanel.style.display='none';
}
,true);
div_item.addEventListener( 'mouseout',
function(event) {
div_items = get_items( '//span[@class=\'horloge horloge_\']');
sub_hightlight2(this, div_items, 'transparent');
GFloatPanel.style.display='none';
}
,true);
}
div_items = get_items('//span[@class=\'horloge horloge_\']');
for (var i = 0; i < div_items.snapshotLength; i++) {
div_item = div_items.snapshotItem(i);
div_item.style.border="1px solid transparent";
div_item.addEventListener( 'mouseover',
function(event) {
highlight (this);
if (GPageYOffset<=window.pageYOffset)
GFloatPanel.style.display='block';
}, true);
div_item.addEventListener( 'mouseout',
function(event) {
unhightlight (this);
GFloatPanel.style.display='none';
}, true);
for (var j=0; j < GMyPosts.length; j++) {
if ( div_item.innerHTML==GMyPosts[j] ) {
div_item.style.color=MyHorlogeColor;
}
}
}
div_items = get_items('//div[@class=\'center login\']');
for (var i = 0; i < div_items.snapshotLength; i++) {
div_item = div_items.snapshotItem(i);
if (div_item.innerHTML==GLogin) { div_item.style.color=MyLoginColor; }
}
}
//---------------------------------------------------------------------------
function sub_hightlight(d, div_items, color, border) {
d.style.backgroundColor=color;
for (var i = 0; i < div_items.snapshotLength; i++) {
div_item = div_items.snapshotItem(i);
if (div_item.innerHTML.indexOf(d.innerHTML)>-1) {
GPageYOffset =div_item.offsetTop;
if (div_item.parentNode) {
div_item.parentNode.style.backgroundColor=color;
div_item.parentNode.style.border=border;
GFloatPanel.innerHTML=div_item.parentNode.innerHTML;
} else {
GFloatPanel.innerHTML=div_item.innerHTML;
}
}
}
}
//---------------------------------------------------------------------------
function sub_hightlight2(d, div_items, color) {
d.style.backgroundColor=color;
if (color.indexOf("transparent")==-1) {
d.style.border=MyBorder;
} else {
d.style.border="1px solid transparent";
}
for (var i = 0; i < div_items.snapshotLength; i++) {
div_item = div_items.snapshotItem(i);
if (div_item.innerHTML.indexOf(d.innerHTML)>-1) {
div_item.style.backgroundColor=color;
if (color.indexOf("transparent")==-1) {
div_item.style.border=MyBorder;
} else {
div_item.style.border="1px solid transparent";
}
}
}
}
//---------------------------------------------------------------------------
function highlight(d, color) {
div_items = get_items('//div[@class=\'left horloge\']');
sub_hightlight(d, div_items, MyHighLightColor, MyBorder);
div_items = get_items( '//span[@class=\'horloge horloge_\']');
sub_hightlight2(d, div_items, MyHighLightColor);
}
//---------------------------------------------------------------------------
function unhightlight(d) {
div_items = get_items('//div[@class=\'left horloge\']');
sub_hightlight(d, div_items, "transparent", "1px solid transparent");
div_items = get_items( '//span[@class=\'horloge horloge_\']');
sub_hightlight2(d, div_items, "transparent");
}
window.addEventListener('load', function() { load(); }, true);