/******************************************************************************/
//       クッキー消去用日付設定関数
/******************************************************************************/
function clear_cookie(word){
	pst_day = past_date();
	window.document.cookie = word + "=; expires =" + pst_day + "; path=/";
}
function past_date(){
	now = new Date();
	now.setMonth(now.getMonth() - 1);
	date =now.toGMTString();
	return date;
}
/******************************************************************************/
//           クッキー設定関数
/******************************************************************************/
function setCookie(key, word){
	word = escape(word);
	ex_day = expire_date();
	window.document.cookie = key + "=" + word + "; expires=" + ex_day + "; path=/";
	return;
}
function expire_date(){
	now = new Date();
	now.setMonth(now.getMonth() + 1);
	date =now.toGMTString();
	return date;
}

/******************************************************************************/
//           クッキー読込関数
/******************************************************************************/
function getCookie(key) {
	key += "=";
	theCookie = document.cookie + ";";

	start = theCookie.indexOf(key);
	if(start != -1){
		end = theCookie.indexOf(";", start);
		Value = unescape(theCookie.substring(start + key.length, end));

		return Value;
	}
	else{
		return false;
	}
}

/******************************************************************************/
//	入力チェック関数(警告メッセージ表示)
/******************************************************************************/
function JavaChkItem(Hissu,No,Obj,Item) {
	var flg = 0;
	for (i=0; i<Obj.value.length; i++) {
		if (Obj.value.charAt(i) != " " && Obj.value.charAt(i) != "　") {
			flg = 1;
			break;
		}
	}

	if (Obj.value != "" && flg != 1 && Hissu) {
		alert(Item + 'が空白のみ入力されています..');
		Obj.focus();
		return false;
	}

	switch (No) {
	case 0:
	// 必須項目 文字チェック
		if(Obj.value == "" && Hissu) {
			alert(Item + 'が入力されていません');
			Obj.focus();
			return false;
		}
		break;

	case 1:
	// 必須項目、数値チェック
		if(Obj.value == "" && Hissu) {
			alert(Item + 'が入力されていません');
			Obj.focus();
			return false;
		}
		if(isNaN(Obj.value) == true) {
			alert(Item + 'が半角数字ではありません..');
			Obj.focus();
			return false;
		}
		break;

	case 2:
	// 必須項目 文字半角チェック
		if(Obj.value == "" && Hissu) {
			alert(Item + 'が入力されていません');
			Obj.focus();
			return false;
		}
		if(hkCheck(Obj) == false) {
			alert(Item + 'に全角文字があります..');
			Obj.focus();
			return false;
		}
		break;

	case 3:
	// 必須項目 文字全角チェック
		if(Obj.value == "" && Hissu) {
			alert(Item + 'が入力されていません');
			Obj.focus();
			return false;
		}
		if(zkCheck(Obj) == false) {
			alert(Item + 'に半角文字があります..');
			Obj.focus();
			return false;
		}
		break;

	case 4:
	// 必須項目 コンボチェック
		if(Obj.value == "" && Hissu) {
			alert(Item + 'を選択して下さい');
			return false;
		}
		break;
	}
}

/******************************************************************************/
//	入力チェック関数（エラーメッセージ取得）
/******************************************************************************/
function JavaChkItem2(Hissu,No,Obj,Item) {
	var flg = 0;
	for (i=0; i<Obj.value.length; i++) {
		if (Obj.value.charAt(i) != " " && Obj.value.charAt(i) != "　") {
			flg = 1;
			break;
		}
	}
	if (Obj.value != "" && flg != 1 && Hissu) {
		return Item + 'が空白のみ入力されています。';
	}

	switch (No) {
	case 0:
	// 必須項目 文字チェック
		if(Obj.value == "" && Hissu) {
			return Item + 'が入力されていません。';
		}
		break;

	case 1:
	// 必須項目、数値チェック
		if(Obj.value == "" && Hissu) {
			return Item + 'が入力されていません。';
		}
		if(isNaN(Obj.value) == true) {
			return Item + 'が半角数字ではありません。';
		}
		break;

	case 2:
	// 必須項目 文字半角チェック
		if(Obj.value == "" && Hissu) {
			return Item + 'が入力されていません。';
		}
		if(hkCheck(Obj) == false) {
//			return Item + 'に全角文字があります。';
			return Item + 'が正しくありません。';
		}
		break;

	case 3:
	// 必須項目 文字全角チェック
		if(Obj.value == "" && Hissu) {
			return Item + 'が入力されていません。';
		}
		if(zkCheck(Obj) == false) {
//			return Item + 'に半角文字があります。';
			return Item + 'が正しくありません。';
		}
		break;

	case 4:
	// 必須項目 コンボチェック
		if(Obj.value == "" && Hissu) {
			return Item + 'を選択して下さい。';
		}
		break;
	}

	return "";
}


/******************************************************************************/
//	半角全角チェック関数
/******************************************************************************/
function hkCheck(StrObj) {
	var ChkStr = StrObj.value;
	for (i = 0; i < ChkStr.length; i++) {
		if(ChkStr.charAt(i) < " " || (ChkStr.charAt(i) > "~" && ChkStr.charAt(i) < "｡") || ChkStr.charAt(i) > "ﾟ") {
			return false;
		}
	}
	return true;
}

function zkCheck(StrObj) {
	var ChkStr = StrObj.value;
	for (i = 0; i < ChkStr.length; i++)	{
		if((" " <= ChkStr.charAt(i) && ChkStr.charAt(i) <= "~") || ("｡" <= ChkStr.charAt(i) && ChkStr.charAt(i) <= "ﾟ")) {
			return false; 
		}
	}
	return true;
}


/******************************************************************************/
//	ラジオボタン及びチェックボックスチェック関数
/******************************************************************************/
function boxCheck(Num,Obj,Item) {
	var rad = 0;
	for(i=0;i<Num;i++){
		if(Obj[i].checked) {
			rad = 1;
			return true;
		}
	}
	if(rad != 1) {
		alert(Item+'が選択されていません..');
		Obj[0].focus();
		return false;
	}
}
function boxCheck2(Num,Obj) {
	var rad = 0;
	for(i=0;i<Num;i++){
		if(Obj[i].checked) {
			rad = 1;
			return true;
		}
	}
	if(rad != 1) {
		return false;
	}
}
function boxCheckOnlyOne(Obj,Item) {
	var rad = 0;
	if(Obj.checked) {
		rad = 1;
		return true;
	}
	if(rad != 1) {
		alert(Item+'が選択されていません..');
		Obj.focus();
		return false;
	}
}


/******************************************************************************/
//	数値範囲内チェック関数
/******************************************************************************/
function haniCheck(Hissu,sStart,sEnd,Obj,Item) {
	wNum = eval(Obj.value);
	if(isNaN(sStart) == false) {
		if(eval(sStart) > eval(wNum)) {
			alert(Item + 'の値が範囲外です..');
			Obj.focus();
			return false;
		}
	}
	if(isNaN(sEnd) == false) {
		if(eval(sEnd) < eval(wNum)) {
			alert(Item + 'の値が範囲外です..');
			Obj.focus();
			return false;
		}
	}

	return true;
}


/******************************************************************************/
//	「,」「'」チェック関数
/******************************************************************************/
function markCheck(Obj,Item) {
	var flg = 0;
	if (Obj.value == "") return true;
	for (i=0; i<Obj.value.length; i++) {
		if (Obj.value.charAt(i) == "'") {
			flg = 1;
			break;
		} else if (Obj.value.charAt(i) == ",") {
			flg = 2;
			break;
		}
	}
	if (flg == 1) {
		alert(Item + "に「 ' 」があります..");
		Obj.focus();
		return false;
	} else if (flg == 2) {
		alert(Item + "に「 , 」があります..");
		Obj.focus();
		return false;
	}
	return true;
}


/******************************************************************************/
//	日付妥当性チェック関数
/******************************************************************************/
function Datecheck(Obj1,Obj2,Obj3,Item) {
	yyyy = eval(Obj1.value);
	mm   = eval(Obj2.value);
	dd   = eval(Obj3.value);
	val = ""
	if(mm==2) {
		if((yyyy%4==0 && yyyy%100!=0) || yyyy%400==0) {
			val = haniCheckD(1,29,Obj3,Item);
			if(val != "") return val;
		} else {
			val = haniCheckD(1,28,Obj3,Item);
			if(val != "") return val;
		}
	} else if (mm==4 || mm==6 || mm==9 || mm==11) {
			val = haniCheckD(1,30,Obj3,Item);
			if(val != "") return val;
	} else {
			val = haniCheckD(1,31,Obj3,Item);
			if(val != "") return val;
	}
	return "";
}
function haniCheckD(sStart,sEnd,Obj,Item) {
	wNum = eval(Obj.value);
	if(eval(sStart) > eval(wNum)) {
		return Item+'が、誤った日付です';
	}
	if(eval(sEnd) < eval(wNum)) {
		return Item+'が、誤った日付です';
	}
	return "";
}


/******************************************************************************/
//	テキストエリア文字数チェック関数
/******************************************************************************/
function Common_MaxLenChk(TxtObj,MaxLen,Item) {
	var TextA = TxtObj.value;
	if (TextA.length > MaxLen) {
		return Item+'は'+MaxLen+'文字以内で入力して下さい';
	}
	return "";
}

/******************************************************************************/
//	郵便番号チェック関数
/******************************************************************************/
function ZipCheck(Obj) {
	var zip = Obj.value;
	var zData = zip.match(/^\d{3}-\d{4}$|^\d{3}-\d{2}$|^\d{3}$/);
	if(!zData) return "郵便番号が正しくありません。";
	return "";
}

/******************************************************************************/
//	電話番号およびFAX番号チェック関数
/******************************************************************************/
function TelFaxCheck(Obj, Item) {
	var tel = Obj.value;
	var data1 = tel.match(/^[0-9-]{6,9}$|^[0-9-]{11,12}$/);
	var data2 = tel.match(/^\d{1,6}-\d{4}$|^\d{2,6}-\d{1,4}-\d{4}$|^\d{9,10}$/);
	if(!data1 && !data2) return Item + "が正しくありません。";
	return "";
}

/******************************************************************************/
//	メールアドレスチェック関数
/******************************************************************************/
function MailCheck(Obj) {
	var mail = Obj.value;
	var mData = mail.match(/^\S+@\S+\.\S+$/);
	if (!mData) return "メールアドレスが正しくありません";
	return "";
}

/******************************************************************************/
//	全角カナチェック関数
/******************************************************************************/
function KanaCheck(Obj, Item) {
	var kana = Obj.value;
	var kData = kana.match(/^[ァ-ヶ　]+$/);
	if (!kData) return Item + "が正しくありません";
	return "";
}
