//////////////////////////////////////////////////////////////////////////////
//
//  JavaScript 共通関数群定義
//
//  ※当ファイルにおいて、各関数内(ステートメント中)にコメントを記述する場合、
//    全角文字及び半角カタカナは、極力、使用しないこと。
//    文字コード(SJIS/EUC)の関係で、ブラウザによっては関数の作りがおかしくなり
//    実行出来なくなる場合がある。
//    また、alert()等で全角文字及び半角カタカナを含む文字列を出力すると、文字
//    コードの関係でブラウザによっては出力が文字化けしてしまう可能性がある為、
//    使用を避ける事。
//
//    上記事項は、外部ファイルとしてJavaScriptを読み込んでいる為に起きる現象
//    だと思われる。
//
//////////////////////////////////////////////////////////////////////////////

//****************************************************************************
//* 処理   : 入力文字列長取得
//* 引数   : string  任意の文字列
//* 戻り値 : >= 0    string のバイト長
//* 備考   : バイトサイズでチェック
//****************************************************************************
function getLen(string)
{
	var i, cnt=0;
	for(i = 0; i < string.length; i++ ){
		if( escape(string.charAt(i)).length >= 4 ) cnt+=2;
		else cnt++;
	}
	return cnt;
}

//****************************************************************************
//* 処理   : 文字列チェック
//* 引数   : db_value  処理対象文字列
//* 戻り値 : true      db_value が DB に登録可能な文字列である。(正常)
//*          false     db_value が DB に登録不可能な文字を含む。(異常)
//* 備考   : \ と ' をDBに登録不可能な文字として弾く。
//****************************************************************************
function check_DB_value( db_value )
{
	var before = 0;
	
	// \ と ' は指定不可。
	for( i = 0; i < db_value.length; i++ ){
		if( db_value.charAt(i) == "'"  ||
		    db_value.charAt(i) == "\\" ||
		    db_value.charCodeAt(i) == 0xA5)
		{
			if( ! (before & 0x80) ){	// for Mac IE
				// １つ前の文字が全角
				return false;
			}

			// １つ前の文字を保存。
			// 全角を１文字として扱う場合は、１つ前の文字は半角に。
			before = db_value.charCodeAt(i);
			if( before >= 0xFF ){
				before = 0;
			}
		}
	}
	return true;
}

//****************************************************************************
//* 処理   : 表示可能文字(半角)のチェック
//* 引数   : target    任意の値
//* 戻り値 : true      正常データ
//*          false     異常データ（半角文字以外が入力されている）
//* 備考   : 
//****************************************************************************
function isPrint(target)
{
	var i, chr;

	for (i = 0; i < target.length; ++i) {
		chr = target.charAt(i);
		if (chr < '!' || chr > '~') {
			return false;
		}
	}

	return true;
}

//****************************************************************************
//* 処理   : 文字列検索
//* 引数   : target  処理対象文字列
//*          search  検索文字群
//* 戻り値 : true    target に search に含まれ無い文字がある。  (正常)
//*          false   target の文字は全て search に含まれている。(異常)
//* 備考   : 
//****************************************************************************
function un_match(target, search)
{
	var i, chr, ret;
	
	for( i = 0; i < target.length; i++ ){
		chr = target.charAt(i);
		ret = search.indexOf(chr);
		if( ret == -1 ){
			return true;
		}
	}
	return false;
}

//* この関数は、un_match() で代用化。
//****************************************************************************
//* 処理   : 数値チェック
//* 引数   : check_c   任意の値
//* 戻り値 : true      数値でない。(異常データ)
//*          false     数値である。(正常データ)
//* 備考   : 小数、指数表現等もチェック
//****************************************************************************
function chk_isnan(check_c)
{
	if( (isNaN(check_c)) ||
	    (check_c.indexOf("e",0) != -1) ||
	    (check_c.indexOf("E",0) != -1) ||
	    (check_c.indexOf("x",0) != -1) ||
	    (check_c.indexOf("X",0) != -1) ||
	    (check_c.indexOf("+",0) != -1) ||
	    (check_c.indexOf("-",0) != -1) ||
	    (check_c.indexOf(".",0) != -1) )
	{
		return true;
	}
	return false;
}

//****************************************************************************
//* 処理   : 日付チェック
//* 引数   : year   年
//*          month  月
//*          day    日
//* 戻り値 : true   正常
//*          false  異常
//* 備考   : 
//****************************************************************************
function chk_date(year, month, day)
{
	monthtbl= new Array(31,28,31,30,31,30,31,31,30,31,30,31);

	if( year >= 1000 && year <= 9999 ){
		if( month >= 1 && month <= 12 ){
			if(((year%4)==0 && (year%100)!=0) || (year%400)==0){
				monthtbl[1] = 29;
			}
			if( day >= 1 && day <= monthtbl[month - 1] ){
//				alert(year + " : " + month + " : " + day);
				return true;
			}
		}
	}
	return false;
}

//****************************************************************************
//* 処理   : ファイルパスチェック
//* 引数   : path   ファイルパス（ファイル名を含むフルパス）
//* 戻り値 : true   正常
//*          false  異常
//* 備考   : 入力されたファイルパス中に、半角英数字及び半角記号以外が
//*          含まれる場合、異常終了する（ブランクも駄目）。
//****************************************************************************
function chk_filepath(path)
{
	var i, chr;

	for(i = 0; i < path.length; i++ ){
//		if( escape(path.charAt(i)).length >= 4 ) return false;;
		chr = path.charAt(i);
		if (chr < '!' || chr > '~') return false;
	}
	return true;
}

//****************************************************************************
//* 処理　：現在日文字列返却
//* 引数　：year 年4桁
//*         month 月 
//*         day 日 
//* 戻り値：treu 正常
//*         false 異常
//**************************************************************************** 
function check_current_date( year, month, day )
{
    var currentDate = new Date();
    if ( currentDate.getFullYear() < year ){
        return false;
    }  
    if ( currentDate.getFullYear() > year ){
        return true;
    } 
    if ( currentDate.getMonth()+1 < month ){ 
        return false;
    }
    if ( currentDate.getDate() < day ){
        return false;
    }
    return true; 
}

TP_WIN_NAME = "jusco_member";
HTTP_HOST   = "http://www.aeonshop.com";
SSL_HOST    = "https://www.aeonshop.com";
DCW_FLAG    = false;


function tpshop_guide_muryou() {
  var open_url = "http://www.aeonshop.com/guide.html#muryou";
  newWin = window.open( open_url,TP_WIN_NAME,'toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=640,height=480,alwaysRaised=yes');
}

// 文字列検索 target の中から search と一致する文字があるかどうか調べる
function search_char (target, search) {
    var i, chr, ret;

    for (i = 0; i < target.length; ++i) {
        chr = target.charAt(i);
        ret = search.indexOf(chr);
        if (ret != -1) {
            return true;    // hitしたらtrueを返す
        }
    }
    return false;
}

function search_char2 (target, search) {
    var i, chr, ret;

    for (i = 0; i < target.length; ++i) {
        chr = target.charAt(i);
        ret = search.indexOf(chr);
        if (ret == -1) {
            return false;    // hitしたらfalseを返す
        }
    }
    return true;
}

// クッキー削除
function DelCookie( p_name ) {
  var exp = new Date();
  var time_dt;

  time_dt = 365 * 24 * 60 * 60 * 1000;
  exp.setTime( exp.getTime() - time_dt );
  var cval = GetCookie( p_name );
  if ( cval != null ) {
    document.cookie = p_name + "=; expires=" + exp.toGMTString() + "; path=/; ";
  }
}

// クッキーデータ取り出し
function GetCookie( p_name ) {
  var v_index;
  var v_start;
  var v_end;

  if ( document.cookie ) {
    v_index = document.cookie.indexOf( p_name, 0 );
    if ( v_index != -1 ) {
      v_start = ( document.cookie.indexOf( "=", v_index ) + 1 );
      v_end   = document.cookie.indexOf( ";", v_index );
      if ( v_end == -1 ) {
        v_end = document.cookie.length;
      }
      return( unescape( document.cookie.substring( v_start, v_end ) ) );
    }
  }
  return( null );
}

//ナビゲーション判定処理
function isNavigation(){

  var name,condition;
  condition="MSIE";

  name=navigator.appVersion;
  if(name.indexOf(condition)==-1){
    return true;
  }else{
    return false;
  }
}


// 全角変換関数
function toZenkaku(before)
{
  var hankana  = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｬｭｮｯﾞﾟ";
  var zenkana  = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホ";
  zenkana += "マミムメモヤユヨラリルレロワヲンァィゥェォャュョッ";
  var han  = "ー−―‐ｰ-";
  han += hankana;
  han += ".%";
  han += "1234567890";
  han += "abcdefghijklmnopqrstuvwxyz";
  han += "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
  var zen  = "　　　　　　";
  zen += zenkana + "　　";
  zen += "．％";
  zen += "１２３４５６７８９０";
  zen += "ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ";
  zen += "ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ";
  var d_han  = "ｳｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾊﾋﾌﾍﾎ";
  var d_zen  = "ヴガギグゲゴザジズゼゾダヂヅデドバビブベボ";
  var hd_han  = "ﾊﾋﾌﾍﾎ";
  var hd_zen  = "パピプペポ";
  var zen_kata  = zenkana + d_zen + hd_zen;
  var zen_hira  = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほ";
  zen_hira += "まみむめもやゆよらりるれろわをんぁぃぅぇぉゃゅょっ";
  zen_hira += "がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ";
  var kana = hankana + zen_kata + zen_hira;
  var bar_kana = "ー";
  var hyphen = "−";
  var zen_spc  = "　";
  var after = "";
  var b_char = "";
  var cnt = 0;
  var i = 0;
  var pre_char = "";
  var bar_cnt = 0;
  var d_cnt = 0;
  var hd_cnt = 0;
  
  for (i=0; i<before.length; i++){
    b_char = before.charAt(i);
    cnt = han.indexOf(b_char,0);
    if (cnt >= 0 && cnt < 6) {
      pre_char = before.charAt(i-1)
      bar_cnt = kana.indexOf(pre_char,0);
      if (bar_cnt >= 0){
        after += bar_kana;
      } else {
        after += hyphen;
      }
    } else if (cnt == 61 && i != 0) {
      pre_char = before.charAt(i-1);
      d_cnt = d_han.indexOf(pre_char,0);
      if (d_cnt >= 0){
        b_char = d_zen.charAt(d_cnt);
        after = after.substr(0,after.length - 1);
        after += b_char;
      }
    } else if (cnt == 62 && i != 0) {
      pre_char = before.charAt(i-1);
      hd_cnt = hd_han.indexOf(pre_char,0);
      if (hd_cnt >= 0){
        b_char = hd_zen.charAt(hd_cnt);
        after = after.substr(0,after.length - 1);
        after += b_char;
      }
    } else if (cnt == 127){
      b_char = zen_spc.charAt(0);
      after += b_char;
    } else if (cnt >= 0){
      b_char = zen.charAt(cnt);
      after += b_char;
    } else {
      after += before.charAt(i);
    }
  }
  return (after);
}

//********************************************************************************/
  // 半角カナcheck(0:カナ無し,1:カナ有り)
  function kana_check(target) {
    var kana ="ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｯｬｭｮﾞﾟｰ､｡･｢｣";
    var i, chr, ret;

    if (target.length ==0) {
      return false;
    }
    for (i = 0; i < target.length; ++i) {
        chr = target.charAt(i);
        ret = kana.indexOf(chr,0);
        if (ret >=0) {
            return true;
        }
    }
    return false;
  }
  
/*****************************************************************************************/

// 全角カナのチェック
function check_zenkakukana(string)
{
    var zenkana = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲンァィゥェォッャュョヴガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ−ー";

    if( un_match( string, zenkana ) == true ) {
        return true;
    }
    return false;
}

  
/*****************************************************************************************/

// 全角のみのチェック
function check_zenkaku(string)
{
    var i, cnt=0;
    
    for(i = 0; i < string.length; i++ ){
        if( escape(string.charAt(i)).length < 4 ) {
            return false;
        }
    }
    if ( kana_check(string) == true ){
        return false;
    }
    return true;
}

// ご購入ボタンダブルクリック防止
function send() {
    if(DCW_FLAG){
        return false;
    }
    DCW_FLAG=true;
    return true;
}

//************************************************************************************/

// add start 2007.12.5 //
// マイリストで会員変更を共通化するために、[gift_cmn.js][proper_cmn.js]からコピーしたもの //
function tpshop_memupd_e() {
    var tpshop_win_name ="jusco_tpshop";
    var open_url = SSL_HOST + "/ssl-bin/user/user_chg_input.pl";
    // windowサイズで開く高さサイズの設定 (会員情報変更に利用) //
    var win_height;
    if ( screen.height > 980 ){
         win_height = '960';
    } else {
         win_height  = screen.height - 20;
    }
    // 	ギフト用にDelCookieがありますが、必要かどうかは、不明 //
    var cart_flag;
    var alert_flag;
	// alert("入力された内容" + cart_flag);
    DelCookie(cart_flag);
    DelCookie(alert_flag);
    newWin = window.open( open_url,tpshop_win_name,'toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=640,height='+win_height+',alwaysRaised=yes');

	if(isNavigation()) newWin.focus(); 	// NN時フォーカスセット
}
// add end 2007.12.05 //

  // ギフト商品詳細画面の表示
  function tpshop_itemdtl_gift( item_no, giftno, purchase )
  {
    var win_name;
    if ( purchase == 0 ){
        win_name = "jusco_itemdtil";
    } else {
        win_name = "jusco_tpshop";
    }

    var open_url = HTTP_HOST + "/tpshop-bin/tpshop_gift_details.pl?seqno="+item_no+"&giftno="+giftno+"&purchase="+purchase;
    newWin = window.open( open_url,win_name,'toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=620,height=480,alwaysRaised=yes');

    if(isNavigation()) newWin.focus(); // NN時フォーカスセット
  }
  
function openwin1() {
  window.open("https://www.jozuni.net/qa/as_toiawase.html","newwindow","width=650,height=600,location=no,toolbar=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,alwaysRaised=yes");
}

// 郵便番号検索サイトを開く
function zip_search() {
  var zipWin = window.open("http://www.post.japanpost.jp/zipcode/index.html","zip_win","width=850,height=600,alwaysRaised=yes,scrollbars=yes");
  return;
}

function back_go(url){

  // 戻り先のURLへsubmit
  document.personal.action = url;
  document.personal.submit();

  return;
}

function go_kiyaku(){
    document.personal.action="https://www.aeonshop.com/ssl-bin/user/user_guid_kiyaku.pl";
    document.personal.submit();
}

function new_win1(){
  window.open(".html","New_Window1","width=600")
}

// 都道府県名リストの作成
function pref_listEdit( objPref, objShop, valTenpo )
{
    var opt_index = 0;
    var i;
    var num = pref_list.length;
    var valTenpoPref = "東京都";
    var num_t = tenpo_list.length;

    // 店舗コードに対応した都道府県名取得
    for ( i=0; i<num_t; i++ ){
        if ( valTenpo == tenpo_list[i][0] )
        {
            valTenpoPref = tenpo_list[i][2];
        }
    }

    objPref.length = num;

    for ( i=0; i<num; i++ ){
        objPref.options[opt_index].value = pref_list[i][0];
        objPref.options[opt_index].text  = pref_list[i][0];
        objPref.options[opt_index].selected = false;
        if ( valTenpoPref == pref_list[i][0] )  // 都道府県名が同じものを初期値にセット
        {
            objPref.options[opt_index].defaultSelected = true;
            objPref.options[opt_index].selected = true;
        }
        opt_index++;
    }
    objPref.length = opt_index;

    // 選択リストも初期設定する。
    change_list(objPref, objShop, valTenpo);

    return;

}

// 店舗地域（都道府県）の変更による、リストボックスの中身変更
function change_list( objPref , objShop, valTenpo)
{
    var opt_index = 0;
    var i;
    var num = tenpo_list.length;
    objShop.length = num+1;

    // objPrefの選択した都道府県名取得
    var ele1_selIdx  = objPref.selectedIndex;
    var ele1_selVal    = objPref[ele1_selIdx].value;

    // 各リストのヘッダ
    objShop.options[opt_index].value = '';
    objShop.options[opt_index].text  = '';
    objShop.options[opt_index].selected = true;
    opt_index++;

    for ( i=0; i<num; i++ ){
        if ( ele1_selVal == tenpo_list[i][2] )  // 都道府県名が同じものをリストに追加
        {
            objShop.options[opt_index].value = tenpo_list[i][0] + "-" + tenpo_list[i][1];
            objShop.options[opt_index].text  = tenpo_list[i][1];
            objShop.options[opt_index].selected = false;
            if ( valTenpo == tenpo_list[i][0] )  // 店舗が同じものを初期値にセット
            {
                objShop.options[opt_index].defaultSelected = true;
                objShop.options[opt_index].selected = true;
            }
            opt_index++;
        }
    }
    objShop.length = opt_index;

    return;
}


// ○入力値のチェック(詳細：共通)
function valuecheck2( personal ) {

    var num = "1234567890";
    var alpha = "abcdefghijklmnopqrstuvwxyz";
    var alNum = num+alpha+alpha.toUpperCase();
    var spcChr=" 　";

    // E-Mailアドレス
    if (personal.email.value == "") {
        alert("eメールアドレスを入力してください。");
        personal.email.focus();
        return false;
    }

    if (isPrint(personal.email.value) == false) {
        alert("eメールアドレスの文字に誤りがあります。");
        personal.email.focus();
        return false;
    }

    if (personal.email.value.indexOf("\"", 0) != -1) {
        alert("eメールアドレスの文字に誤りがあります。(「\"」は、入力不可)");
        personal.email.focus();
        return false;
    }

    if (personal.email.value.indexOf("\:", 0) != -1) {
        alert("eメールアドレスの文字に誤りがあります。(「\:」は、入力不可)");
        personal.email.focus();
        return false;
    }

    if (personal.email.value.indexOf("\/", 0) != -1) {
        alert("eメールアドレスの文字に誤りがあります。(「\/」は、入力不可)");
        personal.email.focus();
        return false;
    }

    if (check_zenkaku(personal.email.value) == true) {
        alert("eメールアドレスの文字に誤りがあります。");
        personal.email.focus();
        return false;
    }

    if (kana_check(personal.email.value) == true) {
        alert("eメールアドレスの文字に誤りがあります。");
        personal.email.focus();
        return false;
    }

    if (personal.email.value.indexOf("@", 0) == -1) {
        alert("eメールアドレスは、「xxx@xxx.xxx.xxx」の形式で入力してください。");
        personal.email.focus();
        return false;
    }

    if (personal.email.value.indexOf(".", 0) == -1) {
        alert("eメールアドレスは、「xxx@xxx.xxx.xxx」の形式で入力してください。");
        personal.email.focus();
        return false;
    }

    if (personal.email.value.indexOf(",", 0) != -1) {
        alert("eメールアドレスの文字に誤りがあります。(「,」は、入力不可)");
        personal.email.focus();
        return false;
    }

    if( getLen(personal.email.value) > 60 ){
        alert("eメールアドレスは半角英数字60文字以内で設定してください。");
        personal.email.focus();
        return false;
    }

    if( personal.email.value.match(/\.$/) != null){
        alert("eメールアドレスは、「xxx@xxx.xxx.xxx」の形で入力してください");
        personal.email.focus();
        return false;
    }

    //氏名 姓
    if ((personal.surname.value == "") ||
        (un_match(personal.surname.value, spcChr) == false)){
        alert("お名前　姓を入力してください。");
        personal.surname.focus();
        return false;
    }

    personal.surname.value = toZenkaku(personal.surname.value);

    if( getLen(personal.surname.value) > 10 ){
        alert("お名前　姓は全角５文字以内でお願いします。");
        personal.surname.focus();
        return false;
    }

    if (check_zenkaku(personal.surname.value) == false) {
        alert("お名前　姓は全角５文字以内でお願いします。");
        personal.surname.focus();
        return false;
    }


     //氏名 名
    if ((personal.given_name.value == "") ||
        (un_match(personal.given_name.value, spcChr) == false)){
        alert("お名前　名を入力してください。");
        personal.given_name.focus();
        return false;
    }

    personal.given_name.value = toZenkaku(personal.given_name.value);

    if( getLen(personal.given_name.value) > 10 ){
        alert("お名前　名は全角５文字以内でお願いします。");
        personal.given_name.focus();
        return false;
    }

    if (check_zenkaku(personal.given_name.value) == false) {
        alert("お名前　名は全角５文字以内でお願いします。");
        personal.given_name.focus();
        return false;
    }


    //氏名 姓（カナ）
    if ((personal.surname_kana.value == "") ||
        (un_match(personal.surname_kana.value, spcChr) == false)){
        alert("お名前　姓（フリガナ）を入力してください。");
        personal.surname_kana.focus();
        return false;
    }

    personal.surname_kana.value = toZenkaku(personal.surname_kana.value);

    if( getLen(personal.surname_kana.value) > 18 ){
        alert("お名前　姓（フリガナ）は全角カタカナ９文字以内でお願いします。");
        personal.surname_kana.focus();
        return false;
    }

    if (check_zenkakukana(personal.surname_kana.value) == true) {
        alert("お名前　姓（フリガナ）は全角カタカナ９文字以内でお願いします。");
        personal.surname_kana.focus();
        return false;
    }


    //氏名 名（カナ）
    if ((personal.given_name_kana.value == "") ||
        (un_match(personal.given_name_kana.value, spcChr) == false)){
        alert("お名前　名（フリガナ）を入力してください。");
        personal.given_name_kana.focus();
        return false;
    }

    personal.given_name_kana.value = toZenkaku(personal.given_name_kana.value);

    if( getLen(personal.given_name_kana.value) > 18 ){
        alert("お名前　名（フリガナ）は全角カタカナ９文字以内でお願いします。");
        personal.given_name_kana.focus();
        return false;
    }

    if (check_zenkakukana(personal.given_name_kana.value) == true) {
        alert("お名前　名（フリガナ）は全角カタカナ９文字以内でお願いします。");
        personal.given_name_kana.focus();
        return false;
    }

    // 電話番号
    var tel_no_sum;
        tel_no_sum = personal.phone1.value +
                     personal.phone2.value +
                     personal.phone3.value;
    if (personal.phone1.value == "") {
        alert("ご自宅の電話番号を入力してください。");
        personal.phone1.focus();
        return false;
    }

    if (personal.phone2.value == "") {
        alert("ご自宅の電話番号を入力してください。");
        personal.phone2.focus();
        return false;
    }

    if (personal.phone3.value == "") {
        alert("ご自宅の電話番号を入力してください。");
        personal.phone3.focus();
        return false;
    }

    if (tel_no_sum.length > 13) {
        alert("ご自宅の電話番号の長さが１３文字を越えています。");
        personal.phone1.focus();
        return false;
    }

    if (un_match(tel_no_sum, num) == true) {
        alert("ご自宅の電話番号に半角数字以外の文字が指定されました。");
        personal.phone1.focus();
        return false;
    }


    // 電話番号４桁チェック
    if (personal.phone3.value.length != 4) {
        alert("ご自宅の電話番号の指定に誤りがあります。");
        personal.phone3.focus();
        return false;
    }


    // 連絡先２の電話番号
    var fax_no_sum;
        fax_no_sum = personal.fax_no_1.value +
                     personal.fax_no_2.value +
                     personal.fax_no_3.value;
    if (personal.fax_no_1.value != "" ||
        personal.fax_no_2.value != "" ||
        personal.fax_no_3.value != "" ) {
        if (personal.fax_no_1.value == "") {
            alert("連絡先２の電話番号を入力してください。");
            personal.fax_no_1.focus();
            return false;
        }

        if (personal.fax_no_2.value == "") {
            alert("連絡先２の電話番号を入力してください。");
            personal.fax_no_2.focus();
            return false;
        }

        if (personal.fax_no_3.value == "") {
            alert("連絡先２の電話番号を入力してください。");
            personal.fax_no_3.focus();
            return false;
        }

        if (fax_no_sum.length > 13) {
            alert("連絡先２の電話番号の長さが１３文字を越えています。");
            personal.fax_no_1.focus();
            return false;
        }

        if (un_match(fax_no_sum, num) == true) {
            alert("連絡先２の電話番号に半角数字以外の文字が指定されました。");
            personal.fax_no_1.focus();
            return false;
        }

        if (personal.fax_no_3.value.length != 4) {
            alert("連絡先２の電話番号の指定に誤りがあります。");
            personal.fax_no_3.focus();
            return false;
        }
    }

    // 生年月日
    // 年 数字で４桁
    if (personal.birth_year.value == "" ){
            personal.birth_year.focus();
            alert("生年月日の年を入力してください。");
            return false;
    }

    if (personal.birth_year.value.length != 4) {
            alert("生年月日の年は西暦４桁で入力してください。");
            personal.birth_year.focus();
            return false;
    }

    if (un_match(personal.birth_year.value, num) == true) {
            alert("生年月日の年には、半角数字を使用してください。");
            personal.birth_year.focus();
            return false;
    }

    if (personal.birth_year.value < "1873" ){ 
            alert("生年月日の年の指定に誤りがあります。");
            personal.birth_year.focus();
            return false;
    }

    if (personal.birth_month.value == "" ){
            personal.birth_month.focus();
            alert("生年月日の月を入力してください。");
            return false;
    }

    if (un_match(personal.birth_month.value, num) == true) {
            alert("生年月日の月には、半角数字を使用してください。");
            personal.birth_month.focus();
            return false;
    }

    if (personal.birth_day.value == "" ){
            personal.birth_day.focus();
            alert("生年月日の日を入力してください。");
            return false;
    }

    if (un_match(personal.birth_day.value, num) == true) {
            alert("生年月日の日には、半角数字を使用してください。");
            personal.birth_day.focus();
            return false;
    }


    var byear_num = eval(personal.birth_year.value);
    var bmonth_num = eval(personal.birth_month.value);
    var bday_num = eval(personal.birth_day.value);
    var last_day = 31;

    if (bmonth_num< 1 || bmonth_num> 12) {
            alert("生年月日の月の指定に誤りがあります。");
            personal.birth_month.focus();
            return false;
    }


    if (bmonth_num == 2) {
        last_day = 28;
        if (((byear_num % 4) == 0 &&
             (byear_num % 100) != 0)||
             (byear_num % 400) == 0){
            last_day = 29;
        }

    }
    else if (bmonth_num == 4 ||
            bmonth_num == 6 ||
            bmonth_num == 9 ||
            bmonth_num == 11) {
        last_day = 30;
    }

    if (bday_num < 1 || bday_num > last_day) {
        alert("生年月日の日の指定に誤りがあります。");
        personal.birth_day.focus();
        return false;
    }


    // 現在日との確認
    if ( check_current_date( byear_num, bmonth_num, bday_num ) == false ){
        alert("生年月日に未来の日付が指定されています。" );
        personal.birth_year.focus(); 
        return false;
    }

    // 郵便番号 数字で2桁
    if (personal.zip_code_1.value == "") {
        alert("住所（郵便番号）を入力してください。");
        personal.zip_code_1.focus();
        return false;
    }

    if (personal.zip_code_2.value == "") {
        alert("住所（郵便番号）を入力してください。");
        personal.zip_code_2.focus();
        return false;
    }

    if (personal.zip_code_1.value.length != 3 ) {
        alert("郵便番号は、「XXX-XXXX」の３桁−４桁形式で入力してください。");
        personal.zip_code_1.focus();
        return false;
    }

    if (personal.zip_code_2.value == "" || 
        personal.zip_code_2.value.length != 4) {
        alert("郵便番号は、「XXX-XXXX」の３桁−４桁形式で入力してください。");
        personal.zip_code_2.focus();
        return false;
    }

    if (un_match(personal.zip_code_1.value, num) == true) {
        alert("郵便番号に半角数字以外の文字が指定されました。");
        personal.zip_code_1.focus();
        return false;
    }

    if (personal.zip_code_2.value != "" &&
            un_match(personal.zip_code_2.value, num) == true) {
        alert("郵便番号に半角数字以外の文字が指定されました。");
        personal.zip_code_2.focus();
        return false;
    }

    //都道府県
    //住所２行目
    if ((personal.city.value == "") ||
        (un_match(personal.city.value, spcChr) == false)){
        alert("住所２行目を入力してください。");
        personal.city.focus();
        return false;
    }

    personal.city.value = toZenkaku(personal.city.value);

    if( getLen(personal.city.value) > 40 ){
        alert("住所２行目は全角２０文字以内で入力してください。");
        personal.city.focus();
        return false;
    }

    if (check_zenkaku(personal.city.value) == false) {
        alert("住所２行目は全角２０文字以内で入力してください。");
        personal.city.focus();
        return false;
    }


    //住所３行目
    if (personal.address.value != "") {
        personal.address.value = toZenkaku(personal.address.value);
    }

    if((personal.address.value != "") &&
       getLen(personal.address.value) > 40 ){
        alert("住所３行目は全角２０文字以内で入力してください。");
        personal.address.focus();
        return false;
    }

    if ((personal.address.value != "") &&
        (check_zenkaku(personal.address.value) == false)) {
        alert("住所３行目は全角２０文字以内で入力してください。");
        personal.address.focus();
        return false;
    }

    // メール配信許諾
    var mailauth_flag = 0; 
    for ( i =0 ; i<= 2 ; i++ ) {
      if ( personal.mailauth[i].checked == true ) {
        mailauth_flag = 1;
      }
    }
    if (mailauth_flag != 1) {
        alert("パソコンメールのご希望についてご選択下さい。");
        personal.mailauth[0].focus();
        return false;
    }


    // 質問オブジェクトが存在する場合はuser_chg_inputからの遷移と見なし
    // 以下の処理を行う
    if (typeof(personal.mailauth_tm[0]) != 'undefined') {

        // 携帯電話のeメールアドレス
        if (personal.mailauth_tm[0].checked == true &&
            personal.email_tm.value == "") {
            alert("携帯電話メールによるイオンからのお知らせをご希望の場合は\n携帯電話のeメールアドレスを入力してください。");
            personal.email_tm.focus();
            return false;
        }
        if (personal.email_tm.value != "") {
            if (isPrint(personal.email_tm.value) == false) {
                alert("携帯電話のeメールアドレスの文字に誤りがあります。");
                personal.email_tm.focus();
                return false;
            }
            if (personal.email_tm.value.indexOf("\"", 0) != -1) {
                alert("携帯電話のeメールアドレスの文字に誤りがあります。(「\"」は、入力不可)");
                personal.email_tm.focus();
                return false;
            }

            if (personal.email_tm.value.indexOf("\:", 0) != -1) {
                alert("携帯電話のeメールアドレスの文字に誤りがあります。(「\:」は、入力不可)");
                personal.email_tm.focus();
                return false;
            }

            if (personal.email_tm.value.indexOf("\/", 0) != -1) {
                alert("携帯電話のeメールアドレスの文字に誤りがあります。(「\/」は、入力不可)");
                personal.email_tm.focus();
                return false;
            }

                if (personal.email_tm.value.indexOf(",", 0) != -1) {
                    alert("携帯電話のeメールアドレスの文字に誤りがあります。(「,」は、入力不可)");
                    personal.email_tm.focus();
                    return false;
                }
            if (personal.email_tm.value.indexOf("@", 0) == -1) {
                alert("携帯電話のeメールアドレスは、「xxx@xxx.xxx.xxx」の形で入力してください");
                personal.email_tm.focus();
                return false;
            }
            if (personal.email_tm.value.indexOf(".", 0) == -1) {
                alert("携帯電話のeメールアドレスは、「xxx@xxx.xxx.xxx」の形で入力してください");
                personal.email_tm.focus();
                return false;
            }
            if( personal.email_tm.value.match(/\.$/) != null){
                alert("携帯電話のeメールアドレスは、「xxx@xxx.xxx.xxx」の形で入力してください");
                personal.email_tm.focus();
                return false;
            }
                if (check_zenkaku(personal.email_tm.value) == true) {
                    alert("携帯電話のeメールアドレスの文字に誤りがあります。");
                    personal.email_tm.focus();
                    return false;
                }
                if (kana_check(personal.email_tm.value) == true) {
                    alert("携帯電話のeメールアドレスの文字に誤りがあります。");
                    personal.email_tm.focus();
                    return false;
                }
            if( getLen(personal.email_tm.value) > 60 ){
                alert("携帯電話のeメールアドレスは半角英数字60文字以内で設定してください。");
                personal.surname_kana.focus();
                return false;
            }
        }


        // 携帯メール配信許諾
        var mailauth_tm_flag = 0;
        for ( i =0 ; i<= 1 ; i++ ) {
          if ( personal.mailauth_tm[i].checked == true ) {
            mailauth_tm_flag = 1;
          }
        }
        if (mailauth_tm_flag != 1) {
            alert("携帯電話メールのご希望についてご選択下さい。");
            personal.mailauth_tm[0].focus();
            return false;
        }

    }

    return true;

}

//****************************************************************************
//* 処理　：半角変換
//* 引数　：文字列
//*
//* 戻り値：変換後文字列
//*
//**************************************************************************** 
function toHankaku(str) {
    work='';
    for (lp=0;lp<str.value.length;lp++) {
        unicode=str.value.charCodeAt(lp);
        if ((0xff0f<unicode) && (unicode<0xff1a)) {
            work+=String.fromCharCode(unicode-0xfee0);
        } else if ((0xff20<unicode) && (unicode<0xff3b)) {
            work+=String.fromCharCode(unicode-0xfee0);
        } else if ((0xff40<unicode) && (unicode<0xff5b)) {
            work+=String.fromCharCode(unicode-0xfee0);
        } else {
            work+=String.fromCharCode(unicode);
        }
    }
    str.value=work; /* 半角処理のみ */
    //str.value=work.toUpperCase(); /* 大文字に統一する場合に使用 */
    //str.value=work.toLowerCase(); /* 小文字に統一する場合に使用 */
}


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function numCheck( num_str ){
     var num = "1234567890";

     if ((num_str == "") || (num_str == "0") || (num_str == "00")){
         alert( "購入個数を入力してください。" );
         return false;
     }
     if (un_match(num_str, num) == true) {
         alert( "購入個数には数字を入力してください。" );
         return false;
     }
     return true;
}


//ログアウト処理メイン
// chg 2004.08.26
//function logout(){
//  var use_point="USE_POINT";
//  var user_info="JSC-DAT";
//  var cart_cookie="JUSCO_CART";
//  var pay_cookie="P-PAY";
//  var send_cookie="P-SEND";
//  var dlvday_cookie="P-DELIV-DAY";
//  var rireki_cookie="P-RIREKI-PRICE";
//  var syukka_cookie="P-SYUKKA-SET";
//  var mae_cart_cookie="M-CART";
//  var mae_pay_cookie="M-PAY";
//  var mae_send_cookie="M-SEND";
//  var mae_dlvday_cookie="M-DELIV-DAY";
//  var con_limit_cookie="P-L-DAY";
//  var close_uri="/close.html";
//  var logout_msg="ログアウトしてもよろしいですか？";
//  var cart_msg="お買い物かごに商品が入っています。かごの中身をクリアしてログアウトしてよろしいですか？";
//
//  if(GetCookie(user_info)==null){
//            loginurl=HTTP_HOST + "/tpshop-bin/tpshop_login.pl?GSTAT%3D2";
//            location.href=loginurl;
//            return;
//        }
//
//  if(GetCookie(cart_cookie)!=null){    //Cookie有り
//    if(!confirm(cart_msg)){
//      //買い物かご表示
//      tpshop_basket();
//    }else{
//      DelCookie(cart_cookie); // 買い物かごの中身を削除
//      DelCookie(user_info);   // 会員情報の削除
//      DelCookie(pay_cookie);  // 支払情報の削除
//      DelCookie(send_cookie); // 配送先情報の削除
//      DelCookie(dlvday_cookie); // 配送日情報の削除
//      DelCookie(rireki_cookie); // 履歴情報の削除
//      DelCookie(syukka_cookie); // 出荷指示情報の削除
//      DelCookie(mae_cart_cookie); // 変更前買い物かご情報の削除
//      DelCookie(mae_pay_cookie);  // 変更前支払情報の削除
//      DelCookie(mae_send_cookie); // 変更前配送先情報の削除
//      DelCookie(mae_dlvday_cookie); // 変更前配送日情報の削除
//      DelCookie(con_limit_cookie);  //コンビニ決済期限日情報の削除
//      DelCookie(use_point);         // 利用ポイント情報の削除
//
//      //ログアウト画像の変更
//
//      change_logout_image();
//
//      // トップページへ画面遷移
//
//      location.href = HTTP_HOST;
//    }
//  }else{
//    if(!confirm(logout_msg)){  //Cookie無
//      return;
//    }else{
//      DelCookie(user_info);   // 会員情報の削除
//    }
//
//    //ログアウト画像の変更
//
//    change_logout_image();
//
//    // トップページへ画面遷移
//
//    location.href = HTTP_HOST;
//  }
//}
//
//
////ログイン表示変更
//function change_logout_image(){
//  var user_info="JSC-DAT";
//  // ログアウト時
//  if (GetCookie(user_info)!=null){
//    msg = document.getElementById('loginmsg');
//    msg.firstChild.nodeValue = 'ログアウト'
//  // ログイン時
//  }else{
//    msg = document.getElementById('loginmsg');
//    msg.firstChild.nodeValue = 'ログイン'
//  }
//}
