var divid = "popupfield";
var NNX;
var NNY;
var d_div;

function init()
{
  popup_init();
  res_init();
  
  if(typeof(dl_init) == "function"){
    dl_init();
  }
  dlcount_init();
  hide_all();
  
  // Cookie復元
  if(document.cookie){
    var cookie_value = document.cookie.split('; ');
    var i;
    var cookie = new Array();
    for(i in cookie_value){
      var pair = cookie_value[i].split('=')
      cookie[pair[0]] = pair[1];
    }
    if(cookie["FORMAT"]){
      document.forms["dl_format"].elements["format"].value = decodeURI(cookie["FORMAT"]);
      set_format();
    }
  }
}

function popup_init(){
  var b_color="black";           //枠の色
  var g_color="#ffffee";          //背景の色
  var f_size="9";             //文字サイズ
  var f_color="black";           //文字色

  document.write("<div id=\"" + divid + "\" style=\"position:absolute;border:1px solid;padding:5px;");
  document.write("border-color:"+b_color+";font-size:"+f_size+"pt;background-color:"+g_color+";");
  document.write("color:"+f_color+";");
  document.write("display:none\" onClick=\"hide_popup()\"></div>");
}

function img_popup(img){
  show_popup('<img src="'+img+'" />', 10, -100);
}

function show_info(str){
  var data = info[str]
  var tree = "<h4>マップツリー:</h4>"         + "<p class=\"map_tree\">"       + data[0] + "</p>"
  var pic  = "<h4>タイトルグラフィック:</h4>" + "<p class=\"title_graphics\">" + data[1] + "</p>"
  
  show_popup(tree + pic, -10, -10)
}

function res_init(){
  var zipname;
  
  for(zipname in res){
    element = document.getElementById("res_" + zipname);
    element.innerHTML = res[zipname].length;
  }
}

function dlcount_init(){
  var zipname;
  
  for(zipname in dlcount){
    var element;

    element = document.getElementById("dl_" + zipname + ".zip");
    element.innerHTML = dlcount[zipname];
  }
}


function show_res(str){
  var data = res[str];
  var i;
  var result = new Array();

  for(i in data){
    res_data = data[i].split("<>");
    result[result.length] = "<p>" +
                            "<span class=\"res_num\">"   + res_data[0] + "</span>: " +
                            "<span class=\"res_name\">"  + (res_data[1].match("◆")  ? "<b>" + res_data[1]  + "</b>" : res_data[1]) + 
                                                           (res_data[1].match("<b>") ? "</b>" : "") + "</span>" +
                            "<span class=\"res_mail\">[" + res_data[2] + "]</span>"  +
                            "<span class=\"res_date\">"  + res_data[3] + "</span>"   + "<br />" +
                            "<span class=\"res_msg\">"   + res_data[4] + "</span>" +
                            "</p>";
  }
  show_popup(result.join("\n<hr />\n"), -50, -50);
}

function show_popup(popup, dx, dy){
  d_div = document.getElementById(divid);

  // IE
  if(document.all){
    rx = event.clientX + document.body.scrollLeft + dx;
    ry = event.clientY + document.body.scrollTop  + dy;
  // その他
  }else{
    rx = NNX + dx;
    ry = NNY + dy;
  }

  if(popup){
    d_div.style.display = "block";
    d_div.style.left = rx + "px";
    d_div.style.top  = ry + "px";
    d_div.innerHTML  = popup;
  }
}

function hide_popup(){
  d_div.style.display="none"; 
  d_div.innerHTML = ""; 
}

function MouseXY(NNevent){
  NNX = NNevent.pageX;
  NNY = NNevent.pageY;
}
window.onmousemove = MouseXY;

function link_list()
{
  return new Array("link1","link2","link3","link4","link5","link6")
}

function hide_all()
{
  var i;
  
  hide_id_list = link_list()
  for(i in hide_id_list) {
    hide(hide_id_list[i]);
  }
}

function hide(id)
{
  if(document.getElementById(id)){
    document.getElementById(id).style.display = 'none';
  }
}

function show_all()
{
  var i;
  
  show_id_list = link_list()
  for(i in show_id_list) {
    show(show_id_list[i]);
  }
}

function show(id)
{
  document.getElementById(id).style.display = 'block';
}

function display_switch(id){
  document.getElementById(id).style.display = 
    document.getElementById(id).style.display == "block"
    ? 'none'
    : 'block';
}

function set_format()
{
	a_links = document.getElementsByTagName('a')
	for(i=0 ; i < a_links.length ; i++){
		var match;
		if(match = a_links[i].getAttribute('href', 2).match(/^\.{1,2}\/dlcount\.cgi\?\d+:[a-z_0-9]+/)){
			a_links[i].setAttribute(
			  'href',
			  document.forms["dl_format"].elements["format"].value == ""
			  ? match
			  : match + ":" + encodeURI(document.forms["dl_format"].elements["format"].value)
			);
		}
	}
	// 30日後まで保存
	var date = new Date();
	date.setTime(date.getTime()+30*24*60*60*1000);
	document.cookie = 'FORMAT=' + encodeURI(document.forms["dl_format"].elements["format"].value) + '; expires=' + date.toGMTString();
}

function show_dl_format_help()
{
  show_popup([
    "<strong>■ DL名フォーマットについて</strong>",
    "<p>ダウンロードするときのファイル名のフォーマットを指定することができます。<br />",
    "たとえば、「<a href=\"./dlcount.cgi?1195553702:vip_tktk1668\">もしも弾幕STGだったら</a>」をダウンロードするとします。<br />",
    "ふつうにダウンロードすると&quot;vip_tktk1668.zip&quot;というファイル名になります。<br />",
    "ここでDL名フォーマットを&quot;&lt;TITLE&gt;.zip&quot;にすると&quot;もしも弾幕STGだったら.zip&quot;という名前になります。<br />",
    "要するに、&quot;&lt;TITLE&gt;&quot;が作品名に置換されるのです。<br />",
    "置換される文字列は以下のものがあります。<br />",
    "<ul>",
    "  <li>&lt;TITLE&gt; : タイトル / もしも弾幕STGだったら</li>",
    "  <li>&lt;YEAR&gt;  : zipのタイムスタンプの年 / 2007</li>",
    "  <li>&lt;MONTH&gt; : zipのタイムスタンプの月 / 11</li>",
    "  <li>&lt;DAY&gt;   : zipのタイムスタンプの日 / 21</li>",
    "  <li>&lt;HOUR&gt;  : zipのタイムスタンプの時 / 22</li>",
    "  <li>&lt;MIN&gt;   : zipのタイムスタンプの分 / 20</li>",
    "  <li>&lt;SEC&gt;   : zipのタイムスタンプの秒 / 26</li>",
    "  <li>&lt;ORIG&gt;  : オリジナルのファイル名 / vip_tktk1668</li>",
    "</ul>",
    "ここで設定したDL名フォーマットはクッキーで30日間保存されます。<br />",
    "また、外部からリンクする際に&quot;dlcount.cgi?1195553702:vip_tktk1668&quot;というのを&quot;dlcount.cgi?1195553702:vip_tktk1668:&lt;TITLE&gt;.zip&quot;のようにすれば",
    "&quot;もしも弾幕STGだったら.zip&quot;というファイル名でダウンロードさせることが可能です。</p>"
  ].join("\n"), -50, -50);
}

function gamesearch_on_submit()
{
	var attr_type  = document.game.attr_type;
	var attr_value = document.game.attr_value;
	var attr       = document.game.attr;

	attr.value = attr_type.value + ' STRINC ' + attr_value.value;

	return true;
}

