writeGameLogin("UH","アンリミテッドハーツ","JP");
var contents_id  = 420;
var downloadPage = '/start/download.aspx';
var MaintenanceStatusPage = '/inc/parts/gamestart/MaintenanceStatus.aspx';
var ChangeGamePasswordPage = '/inc/parts/gamestart/change_game_password.aspx';
var DecodePage = '/inc/parts/gamestart/decode.aspx';

var GameMaintenancePage = '/error/GameMaintenance.aspx';
var myAccount   = '';
var myPassword  = '';
var exec = '';

// ゲームスタート
function OnGameStart() {

  // 連打制御用
  if(exec == true){ return false; };
  exec = true;
  
  // 60秒後に有効化
  setTimeout('execEffective()',60*1000);

  //0. メンテナンス確認 
  $.get(MaintenanceStatusPage , OnGameStart2);
  return false;
}

function OnGameStart2(text) {

	var result = text;

  //0. メンテナンス確認 
  if ( result.indexOf('0') == 0 )
  {
    // メンテナンスページに遷移
    location.href=GameMaintenancePage ;
    return false;
  }

  //1. ログイン確認（cookieの確認）
  if(!CookieReadChild("Gamania.MyGASH", "MainID"))
  {
    deleteCookie();
    // 戻りURL
    document.cookie = "Gamania.OldPosition=" + document.URL+";domain=.gamania.co.jp;";
    // ログインページに遷移
    location.href="https://gash.gamania.co.jp/login/index.aspx";
    return false;
  }
  else
  {
    GashAccount = CookieReadChild("Gamania.MyGASH", "MainID")
  }

  //2. ActiveX存在確認
  try {
    // アクティブXのバージョン取得 （存在しない場合例外発生）
    var ActivexVersion = lcjggame.GetVersion();

    // バージョンチェック (2.0.0.1) add 2009/10/29 higashi
    if(ActivexVersion == "undefined")
    {
      alert("ActiveXが古い可能性があります。");
      // ActiveXインストールページに遷移
      location.href="http://www.gamania.co.jp/login/activex.aspx?id=" + contents_id;
      return false;
    }
  } catch ( e ) {
    // ActiveXインストールページに遷移
    location.href="http://www.gamania.co.jp/login/activex.aspx?id=" + contents_id;
    return false;
  }

  //3. GameIDの存在確認 強制パスワード変更
  // クッキーに値がない
  serviceCode = "service" + contents_id
  
  if(!CookieReadChild("GameStart", serviceCode))
  {
    $.get(ChangeGamePasswordPage + "?id=" + contents_id, kick_activeX);
    return false;
  }
  
  kick_activeX('true')
  return false;
}


// クッキーの値取得
function CookieRead(kword)
{
  if(typeof(kword) == "undefined")      // キーワードなし
    return "";                          // 何もしないで戻る
  kword = kword + "=";
  kdata = "";
  scookie = document.cookie + ";";  // クッキー情報を読み込む
  start = scookie.indexOf(kword);   // キーワードを検索
  if (start != -1){    // キーワードと一致するものあり
    end = scookie.indexOf(";", start);    // 情報の末尾位置を検索
    kdata = unescape(scookie.substring(start + kword.length, end));  // データ取り出し
  }
  return kdata;
}

function CookieReadChild(kword1, kword2)
{
  // キーワードなし
  if(typeof(kword1) == "undefined" || typeof(kword2) == "undefined")
    return "";                          // 何もしないで戻る

    value = CookieRead(kword1);
    start = value.indexOf(kword2);   // キーワードを検索
    kword2 = kword2 + "=";

    if (start != -1){    // キーワードと一致するものあり
      end = value.indexOf("&", start);    // 情報の末尾位置を検索
      if(end == -1){
        end = value.length;
      }
      startset = start + kword2.length;
      kdata = unescape(value.substring(startset, end));  // データ取り出し
    }
    else
    {
      return "";
    }

  return kdata;
}


// アクティブXの呼び出し
function kick_activeX(text)
{
	var result = text;

  if ( result.indexOf('3') >= 0 )
  {
    deleteCookie();
    // 戻りURL
    document.cookie = "Gamania.OldPosition=" + document.URL+";domain=.gamania.co.jp;";
    // 規約ページに遷移
    location.href="http://www.gamania.co.jp/login/rules.aspx?code=" + contents_id;
    return false;
  }

	if(result=="true")
	{
    getInfo ()
		return true;
	} else {
    // エラーページ
    document.cookie = "Gamania.OldPosition=" + document.URL+";domain=.gamania.co.jp;";
    location.href="http://www.gamania.co.jp/error/logout.aspx?id=GS01";
    return false;
	}

	if(result=="false")
	{
    document.cookie = "Gamania.OldPosition=" + document.URL+";domain=.gamania.co.jp;";
    location.href="http://www.gamania.co.jp/error/logout.aspx?id=GS03";
    return false;
  }
	return false;
}

// ゲームスタート情報の取得
function getInfo () {
  var url = DecodePage;
  var http = new JKL.ParseXML( url );
  http.async( getInfoCallBack );
  http.parse();
  return false;
}

function getInfoCallBack (data) {
  if ( typeof(data) == "undefined" || typeof(data.items) == "undefined" ) {
    // エラーページ
    document.cookie = "Gamania.OldPosition=" + document.URL+";domain=.gamania.co.jp;";
    location.href="http://www.gamania.co.jp/error/logout.aspx?id=GS02";
    return false;
  } else { 
    myAccount   = data["items"]["item"]["id"];
    myPassword  = data["items"]["item"]["pw"];
    
    startActiveX();
  }
}

// ゲームスタート
function startActiveX () {
    //4. クライアント存在確認
    // GameAccountとKeyCodeを渡す、200が帰ってきたら存在なし
    // 存在なし：コンテンツダウンロードへ遷移する
    try {
      var ret = lcjggame.StartClick(myAccount, myPassword)

      // add 2009/10/29 higashi
      if(ret == "undefined")
      {
        alert("ActiveXが古い可能性があります。");
        // ActiveXインストールページに遷移
        location.href="http://www.gamania.co.jp/login/activex.aspx?id=" + contents_id;
        return false;
      }

       if(ret == 200)
       {
          // コンテンツダウンロードへ遷移
          location.href = downloadPage;
          return false;
       }
       else if(ret != 999)
       {
        deleteCookie();
        // エラーページ
        // 0パディング
        ret = ("00" + ret).slice(-3)
        document.cookie = "Gamania.OldPosition=" + document.URL+";domain=.gamania.co.jp;";
        location.href="http://www.gamania.co.jp/error/logout.aspx?id=X" + ret + "&cid=" + contents_id;
       }
    } catch(e) {
      // 例外発生
      // エラーページ
      document.cookie = "Gamania.OldPosition=" + document.URL+";domain=.gamania.co.jp;";
      location.href="http://www.gamania.co.jp/error/logout.aspx?id=GS99";
      return false;
    }
}

// クッキーの削除
function deleteCookie() {
  cName = "GameStart="; // 削除するクッキー名
  dTime = new Date();
  dTime.setYear(dTime.getYear() - 1);
  document.cookie = cName + ";domain=.gamania.co.jp;expires=" + dTime.toGMTString();
}

function execEffective() {
  exec = false;
}
