var session_code = "";

//
// クッキー値取得
//
function get_cookie(cn) {
  get_data = document.cookie;
  cv = new Array();
  gd = get_data.split(";");
  for (i in gd) {
    a = gd[i].split("=");
    a[0] = a[0].replace(" ","");
    cv[a[0]] = a[1];
  }
  if (cv[cn]) {
    return cv[cn];
  } else {
    return "";
  }
}

//
//
//
function guest_session() {
  //
  // クッキーから session code を得る。
  //
  var session_code = get_cookie('session_code');

  //
  // すでに session_code が設定されている場合 特に何もしない。
  //
  if (session_code == '') {
    //
    // session_code が設定されていない場合は、サーバーに問い合わせてsession_code を取得する。
    //
    var xmlhttp = false;
    if (typeof ActiveXObject != "undefined") {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        xmlhttp = false;
      }
    }
    if (!xmlhttp && typeof XMLHttpRequest != "undefined") {
      xmlhttp = new XMLHttpRequest();
    }

    date = new Date();
    xmlhttp.open("GET", "/issue.cgi?" + date.getTime(), false);
    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 &&
          xmlhttp.status == 200) {
        session_code = xmlhttp.responseText;
      }
    }
    xmlhttp.send(null);
  }

  return session_code;
}

//
// 引数
//   show_room_func : 部屋を表示する関数
//   show_user_func : ユーザー情報を表示する関数
//   room_code      : 部屋のコード
//
function guest_session_1(show_user_func) {
  //
  // session code がクッキーに設定されているかどうかチェック
  //
  session_code = get_cookie('session_code');
  if (session_code == '') {
    // session_code が設定されていない場合
    // サーバーに問い合わせてsession_code を取得する。
    var xmlhttp = false;
    if (typeof ActiveXObject != "undefined") {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        xmlhttp = false;
      }
    }
    if (!xmlhttp && typeof XMLHttpRequest != "undefined") {
      xmlhttp = new XMLHttpRequest();
    }

    date = new Date();
    xmlhttp.open("GET", "/issue.cgi?" + date.getTime(), false);
    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 &&
          xmlhttp.status == 200) {
        session_code = xmlhttp.responseText;
      }
    }
    xmlhttp.send(null);
  }

  return session_code;
}

//
// 引数
//   show_room_func : 部屋を表示する関数
//   show_user_func : ユーザー情報を表示する関数
//   room_code      : 部屋のコード
//
function guest_session_2(show_room_func, show_user_func, room_code) {
  //
  // session code がクッキーに設定されているかどうかチェック
  //
  session_code = get_cookie('session_code');
  if (session_code != "") {
    // すでに session_code が設定されている場合 特に何もしない。
    show_room_func(session_code, room_code);
    show_user_func(session_code);
  } else {
    // session_code が設定されていない場合
    // サーバーに問い合わせてsession_code を取得する。
    var xmlhttp = false;
    if (typeof ActiveXObject != "undefined") {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        xmlhttp = false;
      }
    }
    if (!xmlhttp && typeof XMLHttpRequest != "undefined") {
      xmlhttp = new XMLHttpRequest();
    }

    date = new Date();
    xmlhttp.open("GET", "/issue.cgi?" + date.getTime(), false);
    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 &&
          xmlhttp.status == 200) {
        session_code = xmlhttp.responseText;
        show_room_func(session_code, room_code);
        show_user_func(session_code);
      }
    }
    xmlhttp.send(null);
  }
}
