/*---------------------------------------------------------------*/
/**
 * textをdomオブジェクトに変換
 */
/*---------------------------------------------------------------*/

function parseXml(xmlText)
{
  if (window.ActiveXObject)
  {
    var domDoc = new ActiveXObject('Microsoft.XMLDOM');
    domDoc.async = false;
    domDoc.loadXML(xmlText);
    return domDoc;
  }
  else if(window.DOMParser)
  {
    var domParser = new DOMParser();
    return domParser.parseFromString(xmlText, "application/xml");
  }
  else
  {
    return null;
  }
}




/*---------------------------------------------------------------*/
/**
 * 住所検索関数
 */
/*---------------------------------------------------------------*/

function searchAddress()
{

  // get value
  if($("#zip1") && $("#zip2"))
  {
    var zip1 = removeSpace($("#zip1").val());
    var zip2 = removeSpace($("#zip2").val());
    var errMsg = "";

    // 郵便番号チェック
    errMsg = checkZip(zip1, zip2);

    // エラー表示
    if(errMsg == null)
    {
      return;
    }

    if(errMsg != "")
    {
      $("#search_address_error").html(errMsg);
      return;
    }

    var url     = "getZipInfo.php";
	$.get(url,
  			{ zip1: zip1, zip2: zip2 },
			function(data){
    			successSearchAddress(data);
  			}
		);
  }
}


/*---------------------------------------------------------------*/
/**
 * 呼び出しが成功した時の処理
 */
/*---------------------------------------------------------------*/

function successSearchAddress(xmlText)
{
    xmlObj = parseXml(xmlText);

    if(xmlObj)
    {
      // 結果コードを取得
      var result = getDataByTagName(xmlObj, "result");

      if(!result == null || result != 0)
      {
        // エラーがあれば取得
        var error = getDataByTagName(xmlObj, "error_message");
        if(error.length > 0)
        {
          $("#search_address_error").html(error);
        }
        else
        {
       	$("#search_address_error").html("該当する住所が見つかりませんでした。");
        }

         // タグからデータを取得
      // 都道府県
      if ($("#prefecture"))
        $("#prefecture").val("");

      // 郡市区（島?国名）
      if ($("#city"))
        $("#city").val("");

      // それ以降の住所
      if ($("#street"))
        $("#street").val("");

        return;

      }

      // タグからデータを取得
      // 都道府県
      if ($("#prefecture"))
      {
        var prefectureId = getDataByTagName(xmlObj, "prefecture");
        $("#prefecture").val(prefectureId);
      }

      // 郡市区（島?国名）
      if ($("#city"))
      {
		  var cityname = getDataByTagName(xmlObj, "city");
        $("#city").val(cityname);
      }

      // それ以降の住所
      if ($("#street"))
      {
		  streetname = getDataByTagName(xmlObj, "street");
        $("#street").val(streetname);
      }

      // エラー表示欄をクリア
      $("#search_address_error").html("");
   }

}














/*---------------------------------------------------------------*/
/**
 * 住所検索関数
 */
/*---------------------------------------------------------------*/

function searchOtherAddress()
{

  // get value
  if($("#other_zip1") && $("#other_zip2"))
  {
    var zip1 = removeSpace($("#other_zip1").val());
    var zip2 = removeSpace($("#other_zip2").val());
    var errMsg = "";

    // 郵便番号チェック
    errMsg = checkZip(zip1, zip2);

    // エラー表示
    if(errMsg == null)
    {
      return;
    }

    if(errMsg != "")
    {
      $("#search_otheraddress_error").html(errMsg);
      return;
    }

    var url     = "getZipInfo.php";
	$.get(url,
  			{ zip1: zip1, zip2: zip2 },
			function(data){
    			successSearchOtherAddress(data);
  			}
		);
  }
}


/*---------------------------------------------------------------*/
/**
 * 呼び出しが成功した時の処理
 */
/*---------------------------------------------------------------*/

function successSearchOtherAddress(xmlText)
{
    xmlObj = parseXml(xmlText);

    if(xmlObj)
    {
      // 結果コードを取得
      var result = getDataByTagName(xmlObj, "result");

      if(!result == null || result != 0)
      {
        // エラーがあれば取得
        var error = getDataByTagName(xmlObj, "error_message");
        if(error.length > 0)
        {
          $("#search_otheraddress_error").html(error);
        }
        else
        {
       	$("#search_otheraddress_error").html("該当する住所が見つかりませんでした。");
        }

         // タグからデータを取得
      // 都道府県
      if ($("#other_prefecture"))
        $("#other_prefecture").val("");

      // 郡市区（島?国名）
      if ($("#other_city"))
        $("#other_city").val("");

      // それ以降の住所
      if ($("#other_street"))
        $("#other_street").val("");

        return;

      }

      // タグからデータを取得
      // 都道府県
      if ($("#other_prefecture"))
      {
        var prefectureId = getDataByTagName(xmlObj, "prefecture");
        $("#other_prefecture").val(prefectureId);
      }

      // 郡市区（島?国名）
      if ($("#other_city"))
      {
		  var cityname = getDataByTagName(xmlObj, "city");
        $("#other_city").val(cityname);
      }

      // それ以降の住所
      if ($("#other_street"))
      {
		  streetname = getDataByTagName(xmlObj, "street");
        $("#other_street").val(streetname);
      }

      // エラー表示欄をクリア
      $("#search_otheraddress_error").html("");
   }

}

/*---------------------------------------------------------------*/
/**
 * エラー発生時に呼び出される関数
 */
/*---------------------------------------------------------------*/

function errorSearchAddress(t)
{
  setInnerError("search_address_error", "現在この機能はご利用できません。" + t.status + ' -- ' + t.statusText);
}

/*---------------------------------------------------------------*/
/**
 * タグからデータを取得
 */
/*---------------------------------------------------------------*/

function getDataByTagName(xmlObj, tagName)
{
  var data = "";
  if(xmlObj && tagName)
  {
    var item = xmlObj.getElementsByTagName(tagName).item(0);
    if(item && item.firstChild)
    {
      data = item.firstChild.data;
      if(!data)
      {
        data = "";
      }
    }
  }
  return data;
}

/*---------------------------------------------------------------*/
/**
 * 空白の削除
 */
/*---------------------------------------------------------------*/

function removeSpace(strIn)
{
  if(strIn)
  {
    while(strIn.indexOf(" ") != -1)
    {
      strIn = strIn.replace(" ", "");
    }
  }
  return strIn;
}

/*---------------------------------------------------------------*/
/**
 * 郵便番号チェック
 */
/*---------------------------------------------------------------*/

function checkZip(zip1, zip2)
{
  if(zip1 != null && zip2 != null)
  {
    // 空白削除
    zip1 = removeSpace(zip1);
    zip2 = removeSpace(zip2);
    var zip = (zip1 + zip2);

    // 数値チェック
    if(isNaN(zip) || zip == "")
    {
      return ("郵便番号に誤りがあります。");
    }
    // 桁数チェック
    if(zip.length != 7)
    {
      return ("郵便番号に誤りがあります。");
    }

    return "";
  }

  return null;
}

/*---------------------------------------------------------------*/
/**
 * idで指定されたdivのinnerHTMLへエラー文言を表示
 */
/*---------------------------------------------------------------*/

function setInnerError(id, errMsg)
{
  if($("#".id))
  {
    $(id).innerHTML = "<a style=\"color:#ff0000;\">" + errMsg + "</a>";
  }
}

/*---------------------------------------------------------------*/
/**
 * idで指定されたinnerHTMLをクリア
 */
/*---------------------------------------------------------------*/

function clearInnerHTML(id)
{
  if($(id))
  {
    $(id).innerHTML = "&nbsp;";
  }
}






function checkLoginId(xmlText)
{
    xmlObj = parseXml(xmlText);
	LoginIdError = '';

    if(xmlObj)
    {
      var result = getDataByTagName(xmlObj, "result");
      var returnmsg = getDataByTagName(xmlObj, "return");
      if(result != 0)
      {

        if(returnmsg.length > 0)
        {
          $("#loginid_error").html(returnmsg);
		  $("#loginid_error").css("color","#FF0000");
        }

		LoginIdError = returnmsg;

        return;

      }

      if (returnmsg.length > 0)
      {
             $("#loginid_error").html(returnmsg);
 		     $("#loginid_error").css("color","#333333");
      }

   }

}