/*
* @title kokomadeyonda
* @description This works as siori.
* @include http://*
* @license MIT License
* @require
* @see http://tax4.blog115.fc2.com/blog-entry-35.html
*/
(function (param_time)
{
var domainId = "tax4_blog115_fc2_com_siori";
var ckk = domainId + "_cookie";
var d = document;
var de = d.documentElement;
var db = d.body;
var ac = function (x, y)
{
return x.appendChild(y);
};
var dd = function (x, id)
{
if (x) { }
else {
x = "div";
};
if (id)
{
var gomi = dd();
gomi.innerHTML = "<" + x + " id=\"" + id + "\"></" + x + ">";
return gomi.firstChild;
}
else {
return d.createElement(x);
};
};
/* save-load */
var ck =
{
set : function (key, val)
{
var dt = new Date();
dt.setFullYear((Number(dt.getFullYear()) + 1) + "");
d.cookie = key + "=" + escape(val) + ";" + "path=" + location.pathname + ";" + "expires=" + dt.toGMTString() + ";";
},
get : function (key)
{
var cs = d.cookie.split("; ");
for (var i in cs)
{
if ("string" == typeof (cs[i])) {
var c = cs[i].split("=");
var k = c[0];
var v = unescape(c[1]);
if (k == key) {
return v;
};
}
};
return null;
}
};
var cb = function (v, f)
{
var x = dd();
x.innerHTML = "<input type=\"button\"></input>";
var b = x.firstChild;
if (v) {
b.value = v;
};
if (f) {
b.onclick = f;
};
x.removeChild(b);
return b;
};
var o =
{
mdiv : null, _menudiv : null, _contentdiv : null,
init : function ()
{
var me = this;
var m = me.mdiv = dd();
var ms = m.style;
ms.position = "absolute";
ms.width = "200px";
ms.top = this.getTop() + "px";
ms.left = this.getLeft() + "px";
var menu = this._menudiv = dd();
menu.style.backgroundColor = "LightCyan";
var addb = cb("追加", function ()
{
me.add();
});
var content = this._contentdiv = dd();
ac(menu, addb);
ac(m, menu);
ac(m, content);
ac(d.body, m);
this.load();
},
add : function ()
{
var s = prompt("タイトル", "");
var x = this.getLeft();
var y = this.getTop();
this.addSiori(s, x, y);
this.save();
},
getTop : function ()
{
return de.scrollTop || db.scrollTop;
},
getLeft : function ()
{
return de.scrollLeft || db.scrollLeft;
},
addSiori : function (s, x, y)
{
var a = dd();
a.siori = x + "_" + y + "_" + s;
var disp = dd("span");
disp.innerHTML = s;
disp.title = a.siori;
disp.style.fontColor = "gray";
addEvent("click", disp, function ()
{
window.scrollTo(x, y);
} );
var del = dd("span");
del.innerHTML = "■";
var me = this;
addEvent("dblclick", del, function ()
{
a.parentNode.removeChild(a);
me.save();
} );
a.style.backgroundColor = "AliceBlue";
ac(a, del);
ac(a, disp);
ac(this._contentdiv, a);
},
save : function ()
{
var es = this._contentdiv.childNodes;
var str = "";
for (i in es) {
var e = es[i];
if (e.siori) {
str += e.siori + "\n";
};
};
ck.set(ckk, str);
},
load : function ()
{
var str = ck.get(ckk);
if (!str) {
str = "";
};
var r = RegExp;
for (var i = 0, strs = str.split("\n"), len = strs.length; i < len; i++)
{
var data = strs[i];
if (data.match(new RegExp("(\\d+)_(\\d+)_(.*)"))) {
this.addSiori(r.$3, r.$1, r.$2);
};
};
}
};
o.init();
var omd = o.mdiv;
setTimeout(function ()
{
omd.parentNode.removeChild(omd);
},
parseInt(param_time * 1000));
function addEvent(str, elem, f)
{
if (elem.addEventListener) {
elem.addEventListener(str, f, false);
}
else {
elem.attachEvent("on" + str, f);
}
}
})(3)