// ==UserScript==
// @name LDRizeExtGIS.user.js
// @namespace http://furyu.tea-nifty.com/
// @description LEGIS: LDRize Extension for Google Image Search ver.0.01d
// @include http://images.google.*
// ==/UserScript==
(function(){
// === Parameters:START
var KEYBIND={
'a' : 'AutoOpenMode'
, 'v' : 'View'
, 'o' : 'Open'
, 'r' : 'OpenRef'
, 'q' : 'AutoFitMode'
, 'm' : 'Mode'
};
KEYBIND_DESCRIPTION={
'AutoOpenMode' : 'LEGIS: Toggle auto-open mode'
, 'View' : 'LEGIS: View/Hide image in current tab'
, 'Open' : 'LEGIS: Open images in new tabs (pinned or current)'
, 'OpenForeground' : 'LEGIS: Open images in new tabs (foreground)'
, 'ViewRef' : 'LEGIS: View referrer-page in current tab'
, 'OpenRef' : 'LEGIS: Open referrer-pages in new tabs(pinned or current)'
, 'OpenForegroundRef' : 'LEGIS: Open referrer-pages in new tabs (foreground)'
, 'AutoFitMode' : 'LEGIS: Change auto-fit mode'
, 'Mode' : 'LEGIS: Show current modes'
};
var KEY_NEXT='j'; // LDRize 'Next' key
var KEY_PREV='k'; // LDRize 'Prev' key
var AUTO_OPEN=false; // default auto-open mode: true/false
var AUTO_FIT=3; // default auto-fit mode: 0=none 1=width 2=height 3=both
var CENTERING=true;
var VERT_CENTERING=false;
var FIX_POSITION=true; // use 'position:fixed'
var USE_STRIPE=true;
var POS_LEFT=0;
var POS_TOP=32;
var PADDING=4;
var MIN_MARGIN_RIGHT=18;
var MIN_MARGIN_BOTTOM=18;
var MAX_IMAGE_CACHE=5;
//var LOADING_ICON='http://furyu-tei.sakura.ne.jp/icon/nowloading1.gif';
var LOADING_ICON='data:image/gif;base64,'+
'R0lGODlhEAAQAPQAAP///8wARP36++mWsfG+z+R8nueMqvno7fTQ3OWEpO+2ye6uw/vw8/PI1vjg6Ouet+ymvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05F'+
'VFNDQVBFMi4wAwEAAAAh/h1CdWlsdCB3aXRoIEdJRiBNb3ZpZSBHZWFyIDQuMAAh/hVNYWRlIGJ5IEFqYXhMb2FkLmluZm8AIfkECQoAAAAsAAAAABAAEAAABVAgII5kaZ6lMBRsISqEYKqtmBTGkRo1'+
'gPAG2YiAW40EPAJphVCREIUBiYWijqwpLIBJWviiJGLwukiSkDiEqDUmHXiJNWsgPBMU8nkdxe+PQgAh+QQJCgAAACwAAAAAEAAQAAAFaCAgikfSjGgqGsXgqKhAJEV9wMDB1sUCCIyUgGVoFBIMwcAg'+
'QBEKTMCA8GNRR4MCQrTltlA1mCA8qjVVZFG2K+givqNnlDCoFq6ioY9BaxDPI0EACzxQNzAHPAkEgDAOWQY4Kg0JhyMhACH5BAkKAAAALAAAAAAQABAAAAVgICCOI/OQKNoUSCoKxFAUCS2khzHvM4EK'+
'OkPLMUu0SISC4QZILpgk2bF5AAgQvtHMBdhqCy6BV0RA3A5ZAKIwSAkWhSwwjkLUCo5rEErm7QxVPzV3AwR8JGsNXCkPDIshACH5BAkKAAAALAAAAAAQABAAAAVSICCOZGmegCCUAjEUxUCog0MeBqwX'+
'xmuLgpwBIULkYD8AgbcCvpAjRYI4ekJRWIBju22idgsSIqEg6cKjYIFghg1VRqYZctwZDqVw6ynzZv+AIQAh+QQJCgAAACwAAAAAEAAQAAAFYCAgjmRpnqhADEUxEMLJGG1dGMe5GEiM0IbYKAcQigQ0'+
'AiDnKCwYpkYhYUgAWFOYCIFtNaS1AWJESLQGAKq5YWIsCo4lgHAzFmPEI7An+A3sIgc0NjdQJipYL4AojI0kIQAh+QQJCgAAACwAAAAAEAAQAAAFXyAgjmRpnqhIFMVACKZANADCssZBIkmRCLCaoWAI'+
'Pm6FBUkwJIgYjR5LN7INSCwHwYktdIMqgoNFGhQQpMMt0WCoiGDAAvkQMYkIGLCXQI8OQzdoCC8xBGYFXCmLjCYhADsAAAAAAAAAAAA=';
// === Parameters:END
var w=window,d=w.document;
if (w!==top) return;
(function(){
var Minibuffer=w.Minibuffer,LDRize=w.LDRize;
if (!LDRize||!Minibuffer) {
setTimeout(arguments.callee,100);
return;
}
var $X=Minibuffer.$X;
if (USE_STRIPE) {
var sinfo=LDRize.getSiteinfo();
if (sinfo&&!sinfo.stripe) {
sinfo.stripe=true;
LDRize.setSiteinfo(sinfo);
Minibuffer.execute('LDRize::paragraph-re-collect');
}
}
var setEventHandler=(function(){
if (w.attachEvent) {
return function(obj,evt,handler){obj.attachEvent('on'+evt,handler)};
}
else if (w.addEventListener) {
return function(obj,evt,handler){obj.addEventListener(evt,handler,false)};
}
else {
return function(obj,evt,handler){var org=obj['on'+evt];obj['on'+evt]=function(){if(typeof org=='function')org();handler()}};
}
})(); // end of setEventHandler()
var getClientSize=function(){
return {
x:w.innerWidth||d.documentElement.ClientWidth||d.body.clientWidth
, y:w.innerHeight||d.documentElement.ClientHeight||d.body.clientHeight
}
}; // end of getClientSize()
var getScrollPoint=function(){
return {
x:w.scrollX||d.documentElement.scrollLeft||d.body.scrollLeft
, y:w.scrollY||d.documentElement.scrollTop||d.body.scrollTop
}
}; // end of getClientSize()
var autoOpenMode=AUTO_OPEN;
var autoFitMode=AUTO_FIT;
var cachedurl={};
var cachereq=[];
var imgBlock=d.createElement('blockquote');
imgBlock.id='LEGIS_IMAGEBOX'
with (imgBlock.style) {
//position='fixed';
position='absolute';
left=POS_LEFT+'px';
top=POS_TOP+'px';
margin='0';
padding=PADDING+'px';
zIndex='100';
border='solid 1px gray';
background='lightyellow';
display='none';
}
setEventHandler(imgBlock,'click',function(e){
imgBlock.style.display='none';
});
d.body.appendChild(imgBlock);
var locateImgBlock=function(tgtImg,inside,chgheight){
var sp=getScrollPoint();
var ibstyle=imgBlock.style;
var ofleft=POS_LEFT,oftop=POS_TOP;
var csize=getClientSize();
if (CENTERING) {
ofleft=~~((csize.x-((tgtImg)?tgtImg.width:0)+POS_LEFT-MIN_MARGIN_RIGHT)/2-PADDING);
if (ofleft'),3);
}
};
var setKeyBind=function(key){
var fn=KEYBIND[key],de=KEYBIND_DESCRIPTION[fn];
Minibuffer.addShortcutkey({key:key,command:function(e){LEGIS_functions[fn](e)},description:de});
};
for (var key in KEYBIND) {
if (KEYBIND.hasOwnProperty(key)) setKeyBind(key);
}
var shortcutkey=Minibuffer.getShortcutKey();
shortcutkey.addCommand({
key : KEY_NEXT
, command : function(){
autoopen('following');
}
});
shortcutkey.addCommand({
key : KEY_PREV
, command : function(){
autoopen('preceding');
}
});
shortcutkey.addEventListener(d,'keypress',false);
if (0