//共通引数--------------------------------------------------//
var i=new Number();		//カウント用
var j=new Number();		//カウント用
var n=new Number();		//汎用数字
var m=new Number();		//汎用数字
var w=new Number();		//汎用width用
var h=new Number();		//汎用height用
var x=new Number();		//汎用x座標
var y=new Number();		//汎用y座標
var str=new String();		//汎用文字列
var path=new String();		//汎用パス
var arr=new Array();		//汎用配列
var target=new Object();	//汎用Object
var img=new Image();		//汎用画像
var multiTimer=new Object();	//汎用タイマー配列


//IE判別用--------------------------------------------------//
var ie=document.all;


//IDをオブジェクトに----------------------------------------//
<!--同一ページ-->
function idobj(a){
	if(typeof(a)=="string"){
		return document.getElementById(a);
	}else{
		return a;
	}
}
<!--TOPページ-->
function tidobj(a){
	if(typeof(a)=="string"){
		return top.document.getElementById(a);
	}else{
		return a;
	}
}
<!--フレーム内-->
function cidobj(a){
	if(typeof(a)=="string"){
		return top.container.main.document.getElementById(a);
	}else{
		return a;
	}
}


//表示切替--------------------------------------------------//
<!--表示-->
function show(a){
	target=idobj(a);
	target.style.visibility="visible";
	target.style.display="block";
}
<!--非表示-->
function hide(a){
	target=idobj(a);
	target.style.visibility="hidden";
	target.style.display="none";
}
<!--aを表示してbを隠す-->
function switchobj(a,b){
	show(a);
	hide(b);
}
<!--表示・非表示を切り替え-->
function switchvis(a){
	target=idobj(a);
	if(target.style.display!="none"){
		hide(a);
	}else{
		show(a);
	}
}
<!--画像を切り替え-->
function switchimg(a,src){
	target=idobj(a);
	target.src=src;
}


//透明度関係------------------------------------------------//
<!--透明度変更（%）-->
function changeOpacity(a,opcty){
	target=idobj(a);
	if(ie){
		target.filters.alpha.opacity=opcty;
	}else{
		target.style.opacity=opcty/100;
	}
}
<!--透明度取得（%）-->
function getOpacity(a){
	target=idobj(a);
	if(ie){
		return target.filters.alpha.opacity;
	}else{
		return target.style.opacity*100;
	}
}
<!--透明度段階変化（%）-->
function morphOpacity(a,opcty,rate){
	target=idobj(a);
	clearTimeout(multiTimer[target.sourceIndex]);
	n=opcty-getOpacity(a);
	if(n!=0){
		changeOpacity(a,getOpacity(a)+Math.abs(n)/n*(Math.min(Math.abs(n),rate)));
		if(getOpacity(a)!=opcty){
			multiTimer[target.sourceIndex]=setTimeout("morphOpacity(target,"+opcty+","+rate+")",5);
		}
	}
}


//サイズ変更------------------------------------------------//
<!--サイズ変更（px）-->
function changeSize(a,w,h){
	target=idobj(a);
	target.style.width=w+"px";
	target.style.height=h+"px";
}
<!--未指定の幅取得（px）-->
function getWidth(a){
	target=idobj(a);
	if(ie){
		return target.currentStyle.width;
	}else{
		return document.defaultView.getComputedStyle(target,null).width;
	}
}
<!--未指定の高さ取得（px）-->
function getHeight(a){
	target=idobj(a);
	if(ie){
		return target.currentStyle.height;
	}else{
		return document.defaultView.getComputedStyle(target,null).height;
	}
}
<!--サイズ段階変化（px）-->
function morphSize(a,w,h,rate){
	target=idobj(a);
	target.style.width=getWidth(target);
	target.style.height=getHeight(target);
	clearTimeout(multiTimer[target.sourceIndex]);
	//変えたくない場合は、wやhに適当な文字列を指定
	if(typeof(w)=="string"){
		w=parseInt(target.style.width);
	}
	if(typeof(h)=="string"){
		h=parseInt(target.style.height);
	}
	n=w-parseInt(target.style.width);
	m=h-parseInt(target.style.height);
	if(n!=0){
		target.style.width=parseInt(target.style.width)+Math.abs(n)/n*(Math.min(Math.abs(n),rate));
	}
	if(m!=0){
		target.style.height=parseInt(target.style.height)+Math.abs(m)/m*(Math.min(Math.abs(m),rate));
	}
	if(parseInt(target.style.width)!=w||parseInt(target.style.height)!=h){
		multiTimer[target.sourceIndex]=setTimeout("morphSize(target,"+w+","+h+","+rate+")",5);
	}
}


//位置変更--------------------------------------------------//
<!--位置変更（px）-->
function changeXY(a,x,y){
	target=idobj(a);
	target.style.left=x+"px";
	target.style.top=y+"px";
}
<!--未指定のX座標取得（px）-->
function getX(a){
	target=idobj(a);
	if(ie){
		return target.currentStyle.left;
	}else{
		return document.defaultView.getComputedStyle(target,null).left;
	}
}
<!--未指定のY座標取得（px）-->
function getY(a){
	target=idobj(a);
	if(ie){
		return target.currentStyle.top;
	}else{
		return document.defaultView.getComputedStyle(target,null).top;
	}
}
<!--ドラッグで移動-->
var offsetx=new Number;
var offsety=new Number;
var tmpx=new Number;
var tmpy=new Number;
function startdrag(e,a){
	target=idobj(a);
	offsetx=e.screenX;
	offsety=e.screenY;
	tmpx=parseInt(target.style.left);
	tmpy=parseInt(target.style.top);
	drag=true;
	document.onmousemove=whiledrag;
	document.onmouseup=new Function("drag=false");
}
function whiledrag(e){
	if (ie&&drag){
		target.style.left=tmpx+event.screenX-offsetx+"px";
		target.style.top=tmpy+event.screenY-offsety+"px";
	}else if(drag){
		target.style.left=tmpx+e.screenX-offsetx+"px";
		target.style.top=tmpy+e.screenY-offsety+"px";
	}
}


//リンク----------------------------------------------------//
function linkTo(url){
	if(url.indexOf("?")<0){
		tidobj('container').src=url;
	}else{
		url=url.split("?");
		if(url[1]=="_blank"){
			window.open(url[0],null);
		}else if(url[1]=="_top"){
			top.document.location.href=url[0];
		}else{
			tidobj('container').src=url[0]+"?"+url[1];
		}
	}
}


//リンクのターゲット変更------------------------------------//
function linkTarget(a){
	for(i=0;i<document.links.length;i++){
		if(document.links[i].href.search(/^#/)==-1){
			document.links[i].setAttribute('target',a);
		}
	}
}


//インラインフレームのリンク先変更------------------------//
function changeContents(){
	path=""+document.location;
	if(idobj('main').src==""){
		if(path.indexOf("?")<0){
			idobj('main').src=path.replace(/.html?$/,"1.htm");
		}else{
			path=path.split("?");
			i=2;
			while(path[i]){
				path[1]=path[1]+"?"+path[i];
				i++;
			}
			idobj('main').src=path[1];
		}
	}else{
		return false;
	}
	mainTimer=setTimeout("hide(tidobj('menubar'))",2000);
}


//メニュー--------------------------------------------------//
var mainTimer=new Object();
var subTimer=new Object();
var menuid=new Array();
menuid=["menubar-top","menubar-profile","menubar-gallery","menubar-soft","menubar-howto","menubar-diary","menubar-link"];
<!--表示-->
function showMain(w,h){
	idobj("menubar-button").src="../image/menubar_button2.jpg";
	clearSub();
	a=tidobj("menubar")
	b=tidobj("menubar-main")
	if(ie){
		w=w+parseInt(b.currentStyle.paddingLeft)+parseInt(b.currentStyle.paddingRight);
		h=h+parseInt(b.currentStyle.paddingTop)+parseInt(b.currentStyle.paddingBottom);
	}
	x=(top.document.body.clientWidth-1000)/2+25;
	y=20;
	changeXY(a,x,y);
	changeSize(a,w,1);
	show(a);
	morphSize(a,w,h,20);
	hideMain(1000);
	b.onmouseover=stayMain;
	b.onmouseout=function(){hideMain(100)}
}
function showSub(a,b,w,h){
	b=idobj(b);
	if(ie){
		w=w+parseInt(b.currentStyle.paddingLeft)+parseInt(b.currentStyle.paddingRight);
		h=h+parseInt(b.currentStyle.paddingTop)+parseInt(b.currentStyle.paddingBottom);
	}
	b.style.top=a.offsetTop+10;
	b.style.left=a.offsetLeft+5;
	clearTimeout(subTimer);
	clearSub();
	changeSize(b,1,1);
	show(b);
	morphSize(b,w,h,10);
	hideSub(1000);
	b.onmouseover=staySub;
	b.onmouseout=function(){hideSub(100)}
}
<!--消去-->
function hideMain(a){
	clearTimeout(mainTimer);
	mainTimer=setTimeout("hide(tidobj('menubar'));idobj('menubar-button').src='../image/menubar_button1.jpg'",a);
}
function hideSub(a){
	clearTimeout(subTimer);
	subTimer=setTimeout("clearSub()",a);
}
function clearSub(){
	for(i=0;;i++){
		if(menuid[i]==undefined) break;
		hide(tidobj(menuid[i]));
	}
}
<!--表示継続-->
function stayMain(){
	clearTimeout(mainTimer);
}
function staySub(){
	clearTimeout(subTimer);
}


//画像ウィンドウ--------------------------------------------//
var picbox=new Object();
var picheader=new Object();
var picimg=new Image();
var piccmt=new Object();
var picscale=new Object();
var pic=new Image();
var piclock=new Number();
piclock=0;
<!--プレビュー表示-->
function openPicBox(src,cmt){
	picbox=tidobj("picbox");
	picheader=tidobj("picbox-header");
	picimg=tidobj("picbox-img");
	piccmt=tidobj("picbox-cmt");
	picscale=picheader.getElementsByTagName('a')[0];
	picbox.style.visibility="visible";
	picbox.style.display="block";
	if(cmt!=""){
		piccmt.style.background="#fff";
		piccmt.innerHTML=cmt;
	}else{
		piccmt.style.background="transparent";
		piccmt.innerHTML="";
	}
	picimg.innerHTML="<img>";
	pic=picimg.getElementsByTagName("img")[0];
	pic.onload=function(){
		picimg.onclick=function(){
			openWindow(src);
		}
		picscale.onclick=function(){
			openWindow(src);
		}
		if(pic.width<=pic.height*1.5 && pic.height>400){
				picscale.innerHTML="@ "+Math.round(40000/pic.height)+"%表示中";
				pic.height=400;
		}else if(pic.width>600){
				picscale.innerHTML="@ "+Math.round(60000/pic.width)+"%表示中";
				pic.width=600;
		}else{
			picscale.innerHTML="";
		}
		w=pic.width+2;
		h=pic.height+2;
		if(piclock==0){
			picbox.style.left=(top.document.body.clientWidth-w)/2+"px";
			picbox.style.top=Math.max(0,(top.document.body.clientHeight-h))/2+4+"px";
			piclock=1;
		}
		picbox.style.width=w+"px";
		picbox.style.height=h+"px";
		pic.onload="";
	}
	pic.src=src;
}
<!--別ウィンドウで表示-->
function openWindow(src){
	src="http://www.marutar.com/"+src;
	img.onload=function(){
		var picwin=window.open("","_blank","width="+img.width+",height="+img.height+
			",toolbar=0,location=0,directories=0,menubar=0,scrollbars=1,resizable=1");
		if(picwin){
			picwin.window.document.open();
			picwin.window.document.write(
				"<html><head><title>(c)まるたぁ小屋</title></head>"+
				"<body style='margin:0;padding:0;border:0;'>"+
				"<img src='"+img.src+"' width='100%'></body></html>");
			picwin.window.document.close();
		}
		img.onload=function(){};
	}
	img.src = src;
}


//アクセスチェック＆画像準備--------------------------------//
function checkRef(){
	document.write("<div id='preload'><img src='cgi/access/access.cgi?"); 
	document.write(top.document.referrer+"' width=0 height=0></div>");
}


//更新履歴をトップからインデックスへ------------------------//
var historyTimer=new Object();
function copyHistory(){
	clearTimeout(historyTimer);
	try{
		idobj("history-body").innerHTML=cidobj("history-hidden").innerHTML;
		show(idobj("history"));
		setTimeout("hide(idobj('history'))",10000);
	}catch(e){
		historyTimer=setTimeout("copyHistory()",500);
	}
}


//Twitter---------------------------------------------------//
function twitterCallback2(twitters){
	var statusHTML = [];
	for (var i=0; i<twitters.length; i++){
		var username = twitters[i].user.screen_name;
		var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url){return '<a href="'+url+'" target=_blank>'+url+'</a>';}).replace(/\B@([_a-z0-9]+)/ig, function(reply){return reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'" target=_blank>'+reply.substring(1)+'</a>';});
		statusHTML.push('<li><span>■'+status+'</span> <a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'" target=_blank>'+relative_time(twitters[i].created_at)+'</a></li>');
	}
	document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}

function relative_time(time_value) {
	var values = time_value.split(" ");
	time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
	var parsed_date = Date.parse(time_value);
	var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
	var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
	delta = delta + (relative_to.getTimezoneOffset() * 60);
	if (delta < 60) {
		return '書き込み直後';
	} else if(delta < 120) {
		return '1分くらい前';
	} else if(delta < (60*60)) {
		return (parseInt(delta / 60)).toString() + '分前';
	} else if(delta < (120*60)) {
		return '約1時間前';
	} else if(delta < (24*60*60)) {
		return '約 ' + (parseInt(delta / 3600)).toString() + '時間前';
	} else if(delta < (48*60*60)) {
		return '1日前';
	} else {
		return (parseInt(delta / 86400)).toString() + '日前';
	}
}


//日記関連--------------------------------------------------//
<!--iframeの高さ自動調整-->
function resizeIframe(a){
	if(document.body.scrollHeight){
		cidobj(a).style.height=document.body.scrollHeight+10;
	}else{
		cidobj(a).style.height=document.body.offsetHeight+10;
	}
}
<!--直リン検出＆diary.htmからの投稿を検出しURL変更-->
function checkandwarn(){
	ref=document.referrer;
	if(ref.indexOf("www.marutar.com")<0){
		document.write('<div class="box2"><font class=red>！直リンを検出しました！</font><br>この日記は『<a href="http://www.marutar.com/" target="_blank">まるたぁ小屋</a>』のコンテンツの一部であり、『<a href="http://www.marutar.com/" target="_blank">まるたぁ小屋</a>』のフレームを利用して閲覧されることを前提として作られています。<br>各記事へ直接リンクしてもかまいませんが、ブックマークへの追加は『<a href="http://www.marutar.com/" target="_blank">まるたぁ小屋</a>』にお願いします</div>');
	}else if(ref.indexOf("cgi/diary/diary.htm")>0){
		ref=ref.split(".htm");
		url=ref[0]+".htm?#diary-comment";
		location.href=url;
	}else{
		return false;
	}
}
<!--投稿者によってアイコン変更-->
var iurl=new Array();
	iurl[0]=new String("http://www.marutar.com/image/icon_taremarutar.gif");
	iurl[1]=new String("http://www.marutar.com/image/icon_g.gif");
function pasteicon(a,b){
	if(a=="marutar"){
		document.write('<img src='+iurl[0]+' title="投稿者：'+b+'">');
	}
	else if(a=="mori"){
		document.write('<img src='+iurl[1]+' title="投稿者：'+b+'">');
	}
	else{}
}
<!--cookie関係-->
expire=new Date();
function writeCookie(){
	expire.setTime(expire.getTime()+1000*60*60*24*30);
	str=escape(idobj("diary-comment-form-author").value);
	document.cookie="namedata="+str+"; expires="+expire.toGMTString();
}
function readCookie(){
	if(document.cookie!=""){
	arr=document.cookie.split("; ");
	i=0;
	while(arr[i]){
		if(arr[i].substr(0,9)=="namedata="){
			str=arr[i].substr(9,arr[i].length);
			break;
		}
		i++;
	}
	idobj("diary-comment-form-author").value=unescape(str);
	}
}