/* FuncDepot
--------------------------------------------------------------------*/

function FuncDepot() {
  this._bullets = [];
  this.load = function(f) { try {
    this._bullets[this._bullets.length] = f;
  } catch(e) {} };
  this.shot = function() { try {
    for(var i = 0; i < this._bullets.length; this._bullets[i++]());
  } catch(e) {} };
}

/* WindowHandler
--------------------------------------------------------------------*/

function WindowHandler() {
  this._pparr = {
    "status" : 0, "directories": 0, "resizable": 0,
    "menubar": 0, "scrollbars" : 0, "location" : 0,
    "toolbar": 0
  };
  this._ppstr = "";
  this._tg = function(tg) {
    return (tg == "_blank") ? "target" + this._rn(4) : tg;
  };
  this._rn = function(dg) {
    for(var i = 0, m = Math, tmp = ""; i < dg; i++)
      tmp += m.floor(m.random() * 10).toString();
    return tmp;
  };
  this.setProp = function() {
    var a = arguments;
    for(var i = 0; i < a.length; i++) {
      if(a[i] == "ALL")
        for(var j in this._pparr) this._pparr[j] = 1;
      else if(a[i].indexOf("=") != -1)
        this._pparr[a[i].substr(0,a[i].indexOf("="))] = a[i].substr(a[i].indexOf("=") + 1);
      else
        this._pparr[a[i]] = 1;
    }
    for(var i in this._pparr) this._ppstr += "," + i + "=" + this._pparr[i];
    this._ppstr = this._ppstr.substr(1);
  };
  this.open = function(hf,tg,fg) {
    fg = (fg) ? fg : true;
    var w = window.open(hf,((tg) ? this._tg(tg) : "_self"),this._ppstr);
    if(fg) w.focus();
  };
}

/* FlashHandler
--------------------------------------------------------------------*/

function FlashHandler(ver,pro) {
  this._classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
  this._type = "application/x-shockwave-flash";
  var vertmp = ver.split(",");
  for(var i = 4; i > vertmp.length; i--)
    ver += (ver.match(/,$/)) ? "0,0" : ",0";
  this._ver  = ver;
  this._must = parseInt(ver.toString().replace(/^([0-9]+),.*$/,"$1"));
  this._pro  = (pro.match(/^https?$/)) ? pro : "http";
  this._apply = false;
  this._plugin = (
    (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"])
      ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin
      : 0
  );
  if(this._plugin) {
    var tmp = navigator.plugins["Shockwave Flash"].description;
    this._apply = (tmp.match(/\s([0-9.]*)\s/)[1] >= this._must);
  } else if(navigator.userAgent.indexOf("MSIE") != -1) {
    if(navigator.appVersion.indexOf("Win") != -1) { try {
      applytmp = false;
      execScript(
        "on error resume next : applytmp = " +
        "(IsObject(CreateObject('ShockwaveFlash.ShockwaveFlash." +
        this._must + "')))", "VBScript"
      );
      this._apply = applytmp;
    } catch(e) {} }
  }
  this.checkPlugin = function() { return this._apply; };
  this.getCode = function(id,size,param) {
    var ua = navigator.userAgent, pro = this._pro, type = this._type;
    var ids = (
      (id.match(/^[a-zA-Z].*$/))
        ? [' id="' + id + '"',' name="' + id + '"']
        : ["",""]
    );
    var tg = [
      '<object' + ids[0] + ' classid="' + this._classid +
      '" codebase="' + pro + '://download.macromedia.com/pub/' +
      'shockwave/cabs/flash/swflash.cab#version=' + this._ver + '"' +
      ' type="' + type + '" width="' + size[0] + '" height="' +
      size[1] + '">',
      '<embed' + ids[1] + ' type="' + type + '" pluginspage="' + pro +
      '://www.macromedia.com/go/getflashplayer" width="' + size[0] +
      '" height="' + size[1] + '"',
      '></embed>',
      '</object>'
    ];
    for(var i in param) {
      tg[0] += '<param name="' + i + '" value="' + param[i] + '" />';
      tg[1] += ' ' + ((i == "movie") ? 'src' : i) + '="' + param[i] + '"';
    }
    return (
      (ua.indexOf("Mac") != -1 && ua.indexOf("MSIE") != -1 && ua.indexOf("Opera") == -1)
        ? tg[1] + tg[2]
        : tg.join("")
    );
  };
}

/* ImageDepot
--------------------------------------------------------------------*/

function ImageDepot() {
  this._dep = {};
  this._setlist = function(id,g) {
    for(var i in g) {
      this._dep[id][i] = new Image(); this._dep[id][i].src = g[i];
    }
  };
  this.preload = function() {
    for(var i = 0, a = arguments; i < a.length; i++) {
      this._dep[a[i]] = {}; this._setlist(a[i++],a[i]);
    }
  };
  this.roll = function(id,fg) {
    document.getElementById(id).src = this._dep[id][fg].src;
  };
}

/* ---------------------------------------------------------------- */

/* FuncDepot */
var OnloadFunc = new FuncDepot();
window.onload = function() { OnloadFunc.shot(); };

/* WindowHandler */
var SubWin1 = new WindowHandler();
SubWin1.setProp(
  "status","resizable","scrollbars",
  "width=720","height=500","left=5","top=5"
);
var SubWin2 = new WindowHandler();
SubWin2.setProp(
  "status","resizable","scrollbars",
  "width=600","height=500","left=5","top=5"
);
var SubWin3 = new WindowHandler();
SubWin3.setProp(
  "status","resizable","scrollbars",
  "width=450","height=500","left=5","top=5"
);
function detWin(uri)  { SubWin1.open(uri,"DETAIL"); return false; } /* 詳細 */
function helpWin(uri) { SubWin2.open(uri,"HELP");   return false; } /* 使い方 */
function noteWin(uri) { SubWin2.open(uri,"NOTE");   return false; } /* 応募上の注意 */
function movieWin(uri) { SubWin3.open(uri,"MOVIE");   return false; } /* ムービー */

/* ImageDepot */
var HeaderButton = new ImageDepot();

function imgPreload() {
  var path = location.pathname.substr(1).split("/");
  var rel = "";
  for(var i = 2; i < path.length; i++) rel += "../";
  var hdg = rel + "common/images/header/";

/* 下層ヘッダナビ */
  HeaderButton.preload(
    "HDNV-ABOUT", {
      "off" : hdg + "btn_about.gif",
      "ovr" : hdg + "ovr/btn_about.gif"
    },
    "HDNV-LIST", {
      "off" : hdg + "btn_list.gif",
      "ovr" : hdg + "ovr/btn_list.gif"
    },
    "HDNV-TRIAL", {
      "off" : hdg + "btn_trial.gif",
      "ovr" : hdg + "ovr/btn_trial.gif"
    },
    "HDNV-TOP", {
      "off" : hdg + "btn_top.gif",
      "ovr" : hdg + "ovr/btn_top.gif"
    }
  );
/* 下層ヘッダ検索ボタン */
  HeaderButton.preload(
    "HDSRCH-SRCH", {
      "off" : hdg + "btn_search.gif",
      "ovr" : hdg + "ovr/btn_search.gif"
    }
  );
}
imgPreload();

/* 下層ヘッダ画像切替 */
function rollHeaderButton(e) {
  e = (e) ? e : event;
  var t = (e.target) ? e.target : e.srcElement;
  var ev = (e.type.indexOf("mouseover") != -1) ? "ovr" : "off";
  HeaderButton.roll(t.id,ev);
}

/* 下層ヘッダ イベント付与 */
function initHeaderButton() {
  var btn = [
    "HDNV-ABOUT",
    "HDNV-LIST",
    "HDNV-TEST",
    "HDNV-TRIAL",
    "HDNV-TOP",
    "HDSRCH-SRCH"
  ];
  for(var i = 0; i < btn.length; i++) { try {
    document.getElementById(btn[i]).onmouseover = rollHeaderButton;
    document.getElementById(btn[i]).onmouseout  = rollHeaderButton;
  } catch(e) {} }
}
OnloadFunc.load(initHeaderButton);

/* formのurl送信を小窓で開く
--------------------------------------------------------------------*/
/* 送信先とターゲットを指定 */
function chgActionTarget(action, target, formname){
	function openwindow(strUrl,winName,winWidth,winHeight) {
		var features = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=' + winWidth + ',height=' + winHeight;
		winName = window.open(strUrl,winName,features);
		winName.focus();
	}
	openwindow('',target,500,500);
	
	if(formname) {
		/* 送信先を指定 */
		document.forms[formname].action = action;
		/* 送信後、同ウィンドウに表示する場合は、「_self」を指定 */
		/* 別ウィンドウに表示する場合は、「ウィンドウネーム」を指定 */
		document.forms[formname].target = target;
		document.forms[formname].submit();
		return false;
	} else {
		/* 送信先を指定 */
		document.pc.action = action;
		/* 送信後、同ウィンドウに表示する場合は、「_self」を指定 */
		/* 別ウィンドウに表示する場合は、「ウィンドウネーム」を指定 */
		document.pc.target = target;
		document.pc.submit();
		return false;
	}
}


/* 外部ドメインで開いたwindowへのフォーカス */
	function focusWin(uri,target) {
		main = window.open(uri,target);
		main.focus();
		return false;
	}