/*******************************************
	PC版共通Javascript
*******************************************/

// ボタン２度押し禁止
function CheckHittingRepeatedly(obj){
	if(obj.CheckHitting.value == 1){
		// 連打されている
		return false;
	}
	// １回目処理フラグを立てる
	obj.CheckHitting.value = 1;
	return true;
}
// ボタン２度押し禁止(onload戻し)
function CheckHittingRepeatedlyNo(obj){
	obj.CheckHitting.value = 0;
}


// 電話番号ﾁｪｯｸ(携帯)
function CheckTelNo(str){
	if(str.match(/^0[8-9]0[0-9]{8}$/)){
		return true;
	}

	return false;
}

// 電話番号ﾁｪｯｸ
function CheckTelNo2(str){
	if(str.match(/^0[0-9]{9,10}$/)){
		return true;
	}

	return false;
}


// パスワードﾁｪｯｸ
function CheckPass(str){
	if(str.match(/^[0-9]{4}$/)){
		return true;
	}

	return false;
}


// メールアドレスチェック
function CheckMailAdd(str){
	if(str.match(/^[\w_\.-]+@[\w\.-]+\.\w{2,}$/)){
		return true;
	}

	return false;
}


// メールアドレスチェック(ドメイン以外)
function CheckMailAdd2(str){
	if(str.match(/^[\w_-]+$/)){
		return true;
	}

	return false;
}


// 生年月日ﾁｪｯｸ
function CheckDofB(str){
	// 8桁制限をかける
	if(!str.match(/^[0-9]{8}$/)){
		return false;
	}

	// 誕生年月日の取得
	birthyear  = str.substring(0,4);
	birthmonth = str.substring(4,6);
	birthday   = str.substring(6,8);

	// 日付の妥当性判断
	if(CheckDate(birthyear, birthmonth, birthday) == false){
		return false;
	}

	return true;
}


// 日付の正当性確認
function CheckDate(vYear, vMonth, vDay){
	vYear  = vYear; 
	vMonth = vMonth - 1; // Javascriptは、0-11で表現 
	vDay   = vDay; 

	// 月,日の妥当性チェック 
	if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){ 
		var vDt = new Date(vYear, vMonth, vDay);
		if(isNaN(vDt)){
			return false;
		}else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){
			return true;
		}else{
			return false;
		}
	}else{
		return false; 
	}
}


// 年齢確認(歳以上)
function CheckAge1(str){
	// 誕生年月日の取得
	birthyear  = str.substring(0,4);
	birthmonth = str.substring(4,6);
	birthday   = str.substring(6,8);

	var age = 0;
	now = new Date();
	y = now.getYear();
	m = now.getMonth()+1;
	d = now.getDate();
	if(y < 1900){
		y = y + 1900;
	}
	if(m < birthmonth){
		age = y - birthyear - 1;
	}
	if(m > birthmonth){
		age = y - birthyear;
	}
	if(m == birthmonth){
		if(d < birthday){
			age = y - birthyear - 1;
		} else{
			age = y - birthyear;
		}
	}

	// 16歳〜100歳までを正常とする
	if(age >= 16){
		return true;
	}

	return false;
}


// 年齢確認(歳以下)
function CheckAge2(str){
	// 誕生年月日の取得
	birthyear  = str.substring(0,4);
	birthmonth = str.substring(4,6);
	birthday   = str.substring(6,8);

	var age = 0;
	now = new Date();
	y = now.getYear();
	m = now.getMonth()+1;
	d = now.getDate();
	if(y < 1900){
		y = y + 1900;
	}
	if(m < birthmonth){
		age = y - birthyear - 1;
	}
	if(m > birthmonth){
		age = y - birthyear;
	}
	if(m == birthmonth){
		if(d < birthday){
			age = y - birthyear - 1;
		} else{
			age = y - birthyear;
		}
	}

	// 〜100歳までを正常とする
	if(age <= 100){
		return true;
	}

	return false;
}


// 入力文字数ﾁｪｯｸ
function CheckDataByte( checkmsg, MinCnt, MaxCnt ){
    var ErrMsg = '';
    var StrCnt = 0;
    ( StrCnt ) = jstrlen(checkmsg);
   if ( StrCnt < MinCnt ){
		return false;
    } else if ( StrCnt > MaxCnt ){
		return false;
    }
   return true;
}

// 引数で渡された文字のバイト数を確認する
function jstrlen(str){
    var len = 0;
    var tempstr = escape(str);
    for( i = 0; i < tempstr.length; i++,len++){
		if( tempstr.charAt(i) == "%" ){
            if( tempstr.charAt(++i) == "u" ){
                i+=3;
                len++;
            }
            i++;
        }
    }
    return len;
}

// 日本語入力チェック
/*
function checkJapanese(str){
	if(str.match(/[あ-んア-ンｱ-ﾝ]/)){
		return false;
	}

    return true;
}
*/
// 半角英数字の判別
function checkJapanese(msg){
    var i,msg2;
    //許容範囲を増やす場合はここで文字を増やせばよい
    var checkStr = new String ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!`@/-_'.,()[]{}<>?:;~^*+&%$#=\\ \x0D\x0A|\x0D|\x0A\"");
    //スペースを取り除く
    msg2 = msg.replace(/ /g,"");
    if(msg2.length == 0){
//        return false;
        return true;
    }
    for(i=0;i<msg2.length;i++){
        if(checkStr.indexOf(msg2.charAt(i),0) == -1){
            return false;
        }
    }
    return true;
}

function setPullDown(obj, hourflg){

	// 検索開始年月日の取得
	staYear  = obj.staYear.value;
	staMonth = obj.staMonth.value;
	staDay   = 1;
	// 来月の取得を行い検索終了年月日の作成
	dd = new Date(staYear, eval(staMonth)+1, staDay);
	endYear  = dd.getYear();
	endMonth = dd.getMonth();
	endDay   = 1;
	// 時間部分の設定
	staHour = 0;
    endHour = 0;

	// プルダウンを変化させる。設定は配列なので-1する。
	obj.staMonth.selectedIndex = staMonth - 1; 
	obj.staDay.selectedIndex = staDay - 1;
	obj.endMonth.selectedIndex = endMonth - 1;
	obj.endDay.selectedIndex = endDay - 1;
	// 検索終了月が１月(endMonth == 1)ならば検索終了年を１年インクリメントする。
	if(endMonth == 1){
		obj.endYear.selectedIndex = obj.staYear.selectedIndex + 1;
	}
	// 時間調整フラグが立っていれば実行
	if( hourflg == 1 ){
		obj.staHour.selectedIndex = staHour;
		obj.endHour.selectedIndex = endHour;
	}
}

// 画像表示切替
var defimg = "";
function OnChangImg(itemname, filename, filename2){
	// 指定された画像にする
	document.images[itemname].src = filename2; 

	// 元の画像名を保存
	defimg = filename;
}
function OffChangImg(itemname){
	// 元の画像に戻す
	document.images[itemname].src = defimg; 

	// 変数の初期化
	defimg = "";
}

/*******************************************
各種集計部分で１ヶ月調整ボタンを押下されたら
検索期間のプルダウン内容を変更する。
開始：年、月、日、時
終了：年、月、日、時
*******************************************/
function setPullDown(obj, hourflg){

	// 検索開始年月日の取得
	staYear  = obj.staYear.value;
	staMonth = obj.staMonth.value;
	staDay   = 1;
	// 来月の取得を行い検索終了年月日の作成
	dd = new Date(staYear, eval(staMonth), staDay);
	endYear  = dd.getYear();
	endMonth = dd.getMonth()+1;
	endDay   = 1;
	// 時間部分の設定
	staHour = 0;
    endHour = 0;

	// プルダウンを変化させる。設定は配列なので-1する。
	obj.staMonth.selectedIndex = staMonth - 1; 
	obj.staDay.selectedIndex = staDay - 1;
	obj.endMonth.selectedIndex = endMonth - 1;
	obj.endDay.selectedIndex = endDay - 1;
	// 検索終了月が１月(endMonth == 1)ならば検索終了年を１年インクリメントする。
	if(endMonth == 1){
		obj.endYear.selectedIndex = obj.staYear.selectedIndex + 1;
	} else{
		obj.endYear.selectedIndex = obj.staYear.selectedIndex;
	}
	// 時間調整フラグが立っていれば実行
	if( hourflg == 1 ){
		obj.staHour.selectedIndex = staHour;
		obj.endHour.selectedIndex = endHour;
	}
}

// ポップアップ画面からの教えてPlease押下時、ポイント不足だった
function PushPleaseClose(str, id, domain){
	// 親画面をポイント追加ページに変更する
	window.opener.document.location.href='http://'+domain+'/index.php?M='+str+'&ID='+id+'';
	// POPUP画面を閉じる
	window.close();
}

// 動的文字数確認
var previous_body  = '';
var previous_title = '';
function count_subject(obj, strcnt, pflg) {
	var target = obj.subject.value;
	var length = jstrlen(target);

	obj.tlen.value = length;
	if (length > strcnt) {
		if(pflg == 1){
			// 英語出力
			alert ("You have exceeded the character limit.");
		} else{
			// 日本語出力
			alert ("文字限度を越えました。");
		}
		if(previous_title != ""){
			obj.subject.value = previous_title;
			obj.tlen.value  = jstrlen(previous_title);
		}
	} else {
		previous_title = target;
	}
}
function count_title(obj, strcnt, pflg) {
	var target = obj.title.value;
	var length = jstrlen(target);

	obj.tlen.value = length;
	if (length > strcnt) {
		if(pflg == 1){
			// 英語出力
			alert ("You have exceeded the character limit.");
		} else{
			// 日本語出力
			alert ("文字限度を越えました。");
		}
		if(previous_title != ""){
			obj.title.value = previous_title;
			obj.tlen.value  = jstrlen(previous_title);
		}
	} else {
		previous_title = target;
	}
}
function count_body(obj, strcnt, pflg) {
	var target = obj.body.value;
	var length = jstrlen(target);

	obj.blen.value = length;
	if (length > strcnt) {
		if(pflg == 1){
			// 英語出力
			alert ("You have exceeded the character limit.");
		} else{
			// 日本語出力
			alert ("文字限度を越えました。");
		}
		obj.body.value = previous_body;
		obj.blen.value = jstrlen(previous_body);
	} else {
		previous_body = target;
	}
}
function count_esummary(obj, strcnt, pflg) {
	var target = obj.esummary.value;
	var length = jstrlen(target);

	obj.blen.value = length;
	if (length > strcnt) {
		if(pflg == 1){
			// 英語出力
			alert ("You have exceeded the character limit.");
		} else{
			// 日本語出力
			alert ("文字限度を越えました。");
		}
		obj.esummary.value = previous_body;
		obj.blen.value = jstrlen(previous_body);
	} else {
		previous_body = target;
	}
}
function count_qdata(obj, strcnt, pflg) {
	var target = obj.QDATA.value;
	var length = jstrlen(target);

	obj.blen.value = length;
	if (length > strcnt) {
		if(previous_body != ""){
			// 入力で超えた場合
			alert ("文字限度を越えました。");
			obj.QDATA.value = previous_body;
			obj.blen.value = jstrlen(previous_body);
		} else{
			// メール受信からの教えてPleaseの場合
			alert ("文字限度を越えてます。");
		}
	} else {
		previous_body = target;
	}
}
function count_str(str) {
	var length = jstrlen(str);
	if (length & 1 == 1) {
		length = (length >> 1) + 1;
	} else {
		length = length >> 1;
	}
	return length;
}
function jstrlen(str) {
	var len = 0;
	str = escape(str);
	for (i = 0; i < str.length; i++, len++) {
		if (str.charAt (i) == "%") {
			if (str.charAt (++i) == "u") {
				len++;
				i += 3;
			}
			i++;
		}
	}
	return len;
}


//==================================================================
//	ポイント受け渡し
//------------------------------------------------------------------
//	サブウィンドウから親（iframe内のページ）へデータを渡す
//==================================================================
function PointData(point) {
	var Data = point;
	window.opener.PointLoad(Data);
}

//==================================================================
//	ポイント受け取り・書き込み
//------------------------------------------------------------------
//	iframe内のページから親（M_M_FRAME）のボックスへデータを渡す
//==================================================================
function PointLoad(point) {
	var Data = point;
	// undefined対策
	if(!Data){
		Data = 0;
	}
	parent.document.PointResult.PointDate.value = Data;
}

//==================================================================
//	ボタン、バナーのマウスオーバー
//------------------------------------------------------------------
//	emeで加筆2008/11/26
//==================================================================
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.01
  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 && d.getElementById) x=d.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];}
}

//=====================================================================================
//	FORMボタン、のマウスオーバー  n=0:入力チェックJavaScriptあり,n=1:チェックなし
//------------------------------------------------------------------
//	emeで加筆2008/11/26
//=====================================================================================
function  fmCheckSend(obj,n){
if(n == 0){ var flag = check_form(obj)};
if(n == 1){ var flag = true };
 if(flag == true){
	 obj.submit ();
  }else{
	  return false;
  }
}

//=====================================================================================
//	ユーザーログインチェック　PC_M_T_index.jsからコピペ-->トップページ外もチェックさせるため
//------------------------------------------------------------------
//	emeで加筆2008/11/26
//=====================================================================================
// onloadチェック
function onload_check_form(obj){
	// 入力チェック
	if(obj.ERROR.value == 1){
		window.open('http://localhost/index.php?M=PC_POPUP_ERROR', 'ERROR', 'width=500,height=200');
	}

	return true;
}


function check_form(obj){
	// 入力チェック
	// ID or 電話番号
	if(CheckTelNo(obj.tn.value) == false){
		alert('電話番号を見直して下さい。');
		return false;
	}
	// パスワード
	if(CheckPass(obj.ps.value) == false){
		alert('パスワードを見直して下さい。');
		return false;
	}

	return true;
}

