//
function createRequestObject() {
    var xmlHttp = false;
    try {
      xmlHttp = new XMLHttpRequest();
    }catch(trymicrosoft){
      try {
        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
      }catch(othermicrosoft){
        try {
          xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    　　}catch(failed){
          xmlHttp=false;
        }
      }
    }
    return xmlHttp;
}
var http = createRequestObject(); 

//ログイン
function logincheck()   
{
  var usrnm = document.getElementById("user_name").value;
  var pwd = document.getElementById("user_password").value;

  if (checkusrnm(usrnm) && checkpwd(pwd))
  {
    document.sdkform.action="index.php?mode=2";
    document.sdkform.submit();
  }

}

//パスワード送信
function getpassword()   
{
  var usrnm = document.getElementById("user_name").value;
  var mail = document.getElementById("pc_mail").value;
  if (checkusrnm(usrnm) && checkmail(mail))
  {
    document.sdkform.action="index.php?mode=5";
    document.sdkform.submit();  
  }
}

//難易度設定
function setlevel()   
{
  document.sdkform.action="index.php?mode=22";   
  document.sdkform.submit();   
}

//保存
function doSave()
{
  var s1 = "12";
  var s2 = document.getElementById("sdkno").value;
  var s3 = document.getElementById("timer").value;
  var s4 = getSavQues();
  var s5 = document.getElementById("level").value;
  http.open("get", "doajax.php?s1=" + s1 + "&s2=" + s2 + "&s3=" + s3 + "&s4=" + s4 + "&s5=" + s5); 
  http.onreadystatechange = saveResponse; 
  http.send(null); 
}

function saveResponse() 
{ 
   if(http.readyState == 4)
   {
      var response = http.responseText; 
      var update = new Array(); 
      update = response.split();
      if (update == "1")
      {
        alert("保存しました、次回は「続きから」で再開できます。");
      }
    } 
}

// 画面リロード
function doNext() 
{ 
  if (checkallnull())
  {
      document.sdkform.action="index.php?mode=11";   
      document.sdkform.submit();   
  } else {
    var cfm=window.confirm("今ご利用中の数独を廃棄し、新しい数独を開始します。よろしいですか？");
    if (cfm)
    {
      document.sdkform.action="index.php?mode=11";   
      document.sdkform.submit();   
    }
  }
} 

// 完了
function doComplete()
{
  var s1 = "15";
  var s2 = document.getElementById("sdkno").value;
  var s3 = document.getElementById("timer").value;
  var s4 = getAnswer();
  var s5 = document.getElementById("level").value;
  http.open("get", "doajax.php?s1=" + s1 + "&s2=" + s2 + "&s3=" + s3 + "&s4=" + s4 + "&s5=" + s5);
  http.onreadystatechange = completeResponse; 
  http.send(null); 
}

function completeResponse() 
{ 
   if(http.readyState == 4)
   {
      var response = http.responseText; 
      var update = new Array(); 
      update = response.split();
      if (update == "1")
      {
        alert("おめでとうございます！");
      }

      var cfm=window.confirm("今すぐ新しい数独を開始しますか？");
      if (cfm)
      {
        document.sdkform.action="index.php?mode=11";   
        document.sdkform.submit();   
      }
    } 
}

//数独解答
function doSolve(){

  if (getsdknum() < 17)
  {
    alert("現時点で問題として成立する初期配置の数字の最少個数は\n17に足りないので、もう一度お確かめください。");
    return;
  }

  ret = checkdupnocolor()
  if (!ret)
  {
    alert("重複の入力があります。\n赤いセルをご確認ください。");
    return;
  }
  var s1 = "62";
  var s2 = getQuestion();
  http.open("get", "doajax.php?s1=" + s1 + "&s2=" + s2);
  http.onreadystatechange = solveResponse; 
  http.send(null); 
}

function solveResponse() 
{ 
   if(http.readyState == 4)
   {
      var response = http.responseText; 
      var update = new Array(); 
      update = response.split("-");
      if (update[0] == "1")
      {
        setAnswer(update[1]);
        alert("ご入力の数独問題を解答しました。");
        document.getElementById("msg6").value = "ご入力の数独問題を解答しました。";
        document.getElementById("solve").style.visibility = 'hidden';
      }else if (update[0] == "2"){
        document.getElementById("msg6").value = "ご入力の数独問題が解答できません。";
        alert("ご入力の数独問題が解答できません。\n数独問題をもう一度確認してください。\n入力の問題がなれば、「お問い合わせ」で教えてください。");
      } else if (update[0] == "3"){
        document.getElementById("msg6").value = "楽しい数独で出る問題は解答しません。";
        alert("楽しい数独を挑戦する場合、数独円が獲得しますので、楽しい数独の問題は解答しません。");
      }
    } 
}

function chg_user_pref(idx, urc){
  if (idx == "")
  {
      var obj  = document.all["user_city"];
      obj.length = 1;
      obj.options[0] = new Option("市町村を選択", "");
      return;
  }
  var s1 = "x1";
  http.open("get", "doajax.php?s1=" + s1 + "&s2=" + idx);
  http.onreadystatechange = function(){prefResponse(urc)}; 
  http.send(null); 
}

function prefResponse(urc) 
{ 
   if(http.readyState == 4)
   {
      var response = http.responseText; 
      var update = new Array(); 
      update = response.split(";");
      var obj  = document.all["user_city"];
      obj.length = update.length;
      obj.options[0] = new Option("市町村を選択", "");
      for(var i = 0; i < update.length - 1; i++) {
        var city = new Array(); 
        city = update[i].split(":");
        obj.options[i + 1] = new Option(city[1], city[0]);
        if (urc != "" && city[0] == urc)
        {
          obj.options[i + 1].selected = true;
        }
      }
    } 
}

function chgdupusr(val){
  if (val == "")
  {
    document.getElementById("user_name_msg").value = "";
    document.getElementById("user_name").style.background = "#FFFFFF";
    return;
  }
  var s1 = "x2";
  http.open("get", "doajax.php?s1=" + s1 + "&s2=" + val);
  http.onreadystatechange = dupUsrResponse; 
  http.send(null); 
}

function dupUsrResponse() 
{ 
   if(http.readyState == 4)
   {
      var response = http.responseText; 
      var update = new Array();
      update = response.split();
      if (update == "1")
      {
        document.getElementById("user_name_msg").value = "既に登録されております。";
        document.getElementById("user_name").style.background = "#FF0000";
      } else {
        document.getElementById("user_name_msg").value = "";
        document.getElementById("user_name").style.background = "#FFFFFF";
      }
    } 
}

function chgdupmail(val){
  if (val == "")
  {
    document.getElementById("user_email_msg").value = "";
    document.getElementById("user_email").style.background = "#FFFFFF";
    return;
  }
  var s1 = "x3";
  http.open("get", "doajax.php?s1=" + s1 + "&s2=" + val);
  http.onreadystatechange = dupMailResponse; 
  http.send(null); 
}

function dupMailResponse() 
{ 
   if(http.readyState == 4)
   {
      var response = http.responseText; 
      var update = new Array();
      update = response.split();
      if (update == "1")
      {
        document.getElementById("user_email_msg").value = "既に登録されております。";
        document.getElementById("user_email").style.background = "#FF0000";
      } else {
        document.getElementById("user_email_msg").value = "";
        document.getElementById("user_email").style.background = "#FFFFFF";
      }
    } 
}

function userreg()
{

  //入力チェック
  if (!checkurg())
  {
    return false;
  }

  document.sdkform.action="register.php?step=1";   
  document.sdkform.submit(); 
}

function editnorm()
{

  //入力チェック
  if (!checkued())
  {
    return false;
  }

  document.sdkform.action="edituser.php?mode=2";   
  document.sdkform.submit(); 
}

function editpwd()
{

  //入力チェック
  if (!checkchgpwd())
  {
    return false;
  }

  document.sdkform.action="edituser.php?mode=5";   
  document.sdkform.submit(); 
}

function editfpwd()
{

  //入力チェック
  if (!checkchgpwd())
  {
    return false;
  }

  document.sdkform.action="edituser.php?mode=7";   
  document.sdkform.submit(); 
}

function docontact()
{
  //入力チェック
  if (!checkcont())
  {
    return false;
  }

  document.sdkform.action="contact.php?send=ok";
  return true;
}
