function database(json){
	var a = json['data']; // JSONデータ格納
	var ImgLink = '<IMG SRC="http://ima' + 'ge.itmed' + 'ia.c' + 'o.jp';
	var currentScript = (function(e){ // コールバック関数実行後自分自身のSCRIPTタグ参照
		if(e.nodeName.toLowerCase() == 'script') return e;
		return arguments.callee(e.lastChild)
	})(document);
	if(currentScript.getAttribute('title')){ // 自分自身のSCRIPTタグTITLE属性取得
		var jstitle = currentScript.getAttribute('title');
		if(jstitle.match(/^tmpl\=([A-Z])\,loop\=\d*$/)){
			jstitle = jstitle.split(',');
			var tmpl = jstitle[0].replace('tmpl=','');
			var loop = parseInt(jstitle[1].replace('loop=',''));
			if((a.length - 1) < loop){
				loop = a.length - 1;
			}
		}else if(jstitle.match(/^tmpl\=([A-Z])$/)){
			var tmpl = jstitle.replace('tmpl=','');
			var loop = a.length - 1;
		}else if(jstitle.match(/^loop\=\d*$/)){
			var tmpl = 'default';
			var loop = parseInt(jstitle.replace('loop=',''));
			if((a.length - 1) < loop){
				loop = a.length - 1;
			}
		}else{
			var tmpl = 'default';
			var loop = a.length - 1;
		}
	}else{ // TITLEがない場合
		var tmpl = 'default';
		var loop = a.length - 1;
	}
	if(json['name'] == ''){document.write('No Template');
	}else if(json['name'] == '＠IT編集部blog新着'){ // .json name での分岐
		if(tmpl == 'default'){ // script title での分岐
			var code = '';
			code += '<div id="blog" class="rcBox"><h2><a href="http://atmarkit.blog.corp.itmedia.co.jp/" target="_blank">＠IT編集ブログ</a></h2><div><ul>';
			for(var i = 0; i < 3; i++){
				var b = a[i];
				code += '<li><a href="' + b['link'] + '">' + b['title'] + '</a><small>(' + b['date'] + ')</small></li>';
			}
			code += '</ul><span class="cal-bt"><a onclick="desig' + "nCnt('core_blog', this.hr" + 'ef)" href="http://atmarkit.blog.corp.itmedia.co.jp/">＠IT編集ブログへ</a></span></div></div>';
		}else{
			code += 'No Template';
		}
	}else if(json['name'] == 'Windows7Keyword'){
		if(tmpl == 'default'){
			var code = '';
			code += '<div class="new-article"><h2><span class="l">関連記事</span></h2>';
			for(var i = 0; i < loop; i++){
				var b = a[i];
				code += '<div class="artBox">';
				code += '<a href="' + b['link'] + '"><img src="' + b['image'] + '" alt="' + b['title'] + '" class="icon"></a>';
				code += '<h3><a href="' + b['link'] + '">' + b['title'] + '</a></h3><h4>' + b['subtitle'] + '</h4>';
				code += '<p>' + b['description'] + '</p>';
				code += '<div class="category-box"><p class="category">' + b['dcdate'] + '</p></div>';
				code += '</div>';
			}
			code += '</div>';
		}else{
			code += 'No Template';
		}
	}else if(json['name'] == 'Hyper-VKeyword'){
		if(tmpl == 'default'){
			var code = '';
			code += '<div class="new-article"><h2><span class="l">関連記事</span></h2>';
			for(var i = 0; i < loop; i++){
				var b = a[i];
				code += '<div class="artBox">';
				code += '<a href="' + b['link'] + '"><img src="' + b['image'] + '" alt="' + b['title'] + '" class="icon"></a>';
				code += '<h3><a href="' + b['link'] + '">' + b['title'] + '</a></h3><h4>' + b['subtitle'] + '</h4>';
				code += '<p>' + b['description'] + '</p>';
				code += '<div class="category-box"><p class="category">' + b['dcdate'] + '</p></div>';
				code += '</div>';
			}
			code += '</div>';
		}else{
			code += 'No Template';
		}
	}else{document.write('No Template');}
	document.write(code);
}

function twitterCallback2(twitters) {
  var statusHTML = [];
  statusHTML.push('<h2>デザインハックのTwitter（<a href="http://twitter.com/IT_D89" target="_blank" style="color:#4072b8">@IT_D89</a>）</h2>');
  statusHTML.push('<div><ul>');
  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+'">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    statusHTML.push('<li><span>'+status+' <a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'">'+relative_time(twitters[i].created_at)+'</a><br></span></li>');
  }
  statusHTML.push('</ul>');
  statusHTML.push('<a href="http://twitter.com/IT_D89" id="twitter-link" style="display:block;text-align:right;">≫ ＠IT デザインハック をTwitterでフォローする</a>');
  statusHTML.push('<a href="/fnetwork/rensai/netword01/01.html" style="display:block;text-align:right;" target="_blank" onclick="design' + "Cnt('d89_twitter_btm_about' + this.href,'/')" + ' ;"> ≫ Twitterとは<br /></div>');
  document.getElementById('twitter_div').innerHTML = statusHTML.join('');
}
function twitterCallback3(twitters) {
  var statusHTML = [];
  statusHTML.push('<h2>おばかアプリのTwitter（<a href="http://twitter.com/d89meeting" target="_blank" style="color:#4072b8">d89meeting</a>）</h2>');
  statusHTML.push('<div><ul>');
  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+'">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    statusHTML.push('<li><span>'+status+' <a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'">'+relative_time(twitters[i].created_at)+'</a><br></span></li>');
  }
  statusHTML.push('</ul>');
  statusHTML.push('<a href="http://twitter.com/d89meeting" id="twitter-link" style="display:block;text-align:right;">≫ ＠IT おばかアプリをTwitterでフォローする</a>');
  statusHTML.push('<a href="/fnetwork/rensai/netword01/01.html" style="display:block;text-align:right;" target="_blank" onclick="design' + "Cnt('d89_twitter_btm_about' + this.href,'/')" + ' ;"> ≫ Twitterとは<br /></div>');
  document.getElementById('twitter_div3').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 'less than a minute ago';
  } else if(delta < 120) {
    return 'about a minute ago';
  } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minutes ago';
  } else if(delta < (120*60)) {
    return 'about an hour ago';
  } else if(delta < (24*60*60)) {
    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  } else if(delta < (48*60*60)) {
    return '1 day ago';
  } else {
    return (parseInt(delta / 86400)).toString() + ' days ago';
  }
}
