// 入力必須文字列チェック
function chkRequiredString ( name, obj, str ) {
	var str1 = new RegExp(str);
	if(!obj.value.match(str1)){
		alert ( name + ' に ' + str + ' が含まれていません' );
		return false;
	}else{
		return true;
	}
}

// 入力チェック
function chkRequired ( name, obj ) {
	var strlength = obj.value.length;
	if(strlength!=0){
		return true;
	} else {
		alert ( name + 'は必ず入力してください' );
		return false;
	}
}
// 最大文字数チェック関数
function chkLength1 ( name, obj, required, maxlength ) {
	var Num = obj.value.length;
	if ( Num > maxlength ) {
		alert ( name + "は" + maxlength + "文字以内で入力してください。" );
		return false;
	}
	if ( required ) return chkRequired ( name, obj );
	return true;
}

// 最小文字数チェック関数
function chkMinLength ( name, obj, minlength ) {
	var Num = obj.value.length;
	if ( Num < minlength ) {
		alert ( name + "は" + minlength + "文字以上で入力してください。" );
		return false;
	}
	return true;
}

// 固定文字数チェック関数
function chkLength2 ( name, obj, required, maxlength ) {
	var Num = obj.value.length;
	if ( Num != 0 && Num != maxlength ) {
		alert ( name + "は" + maxlength + "文字で入力してください。" );
		return false;
	}
	if ( required ) return chkRequired ( name, obj );
	return true;
}

// 日付チェック関数
function chkDate ( name, obj, required ) {
	var str=obj.value;
	if ( required ) {
		if( str == '0000-00-00' || str=='' ) {
			alert( name + 'は必ず入力してください' );
			return false;
		}
	}else{
		if( str == '0000-00-00' || str=='' ) {
			return true;
		}
	}
	if( str != '' ) {
		if (!str.match(/^\d{4}-\d{2}-\d{2}$/)){
			alert( name + '：' + str + ' はyyyy-mm-dd形式で入力してください' );
			return false;
		}
		var vYear = str.substr(0, 4) - 0;
		var vMonth = str.substr(5, 2) - 1; // Javascriptは、0-11で表現
		var vDay = str.substr(8, 2) - 0;
		if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){
			var vDt = new Date(vYear, vMonth, vDay);
			if(isNaN(vDt)){
				alert( name + '：' + str + ' は不正な日付です' );
				return false;
			}else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){
				return true;
			}else{
				alert( name + '：' + str + ' は不正な日付です' );
				return false;
			}
		}else{
				alert( name + '：' + str + ' は不正な日付です' );
			return false;
		}
	}
	return true;
}

// 半角数字チェック関数
function chkNum ( name, obj, required, minlength, maxlength ) {
	var str=obj.value;
	if( str != '' ) {
		var tmp=str.match(/[0-9\-\.]+/g);
		if (tmp!=str){
			alert( name + 'は半角の数字で入力してください' );
			return false;
		}else{
			if ( !chkLength1 ( name, obj, required, maxlength ) ) return false;
			if ( minlength != 0 && !chkMinLength ( name, obj, minlength ) ) return false;
		}
	}else{
		if ( required ) return chkRequired ( name, obj );
	}
	return true;
}

// 半角チェック関数
function chkHankaku ( name, obj, required, minlength, maxlength ) {
	var str=obj.value;
	if( str!='' ) {
		var tmp=str.match(/[\s!-~]+/g);
		if (tmp!=str){
			alert( name + 'は半角で入力してください' );
			return false;
		}else{
			if ( !chkLength1 ( name, obj, required, maxlength ) ) return false;
			if ( minlength != 0 && !chkMinLength ( name, obj, minlength ) ) return false;
		}
	}else{
		if ( required ) return chkRequired ( name, obj );
	}
	return true;
}

// 半角英数字チェック関数
function chkHanNumAlpha ( name, obj, required, minlength, maxlength ) {
	var str=obj.value;
	if( str!='' ) {
		var tmp=str.match(/^\w+$/);
		if (tmp!=str){
			alert( name + 'は半角の英数字で入力してください' );
			return false;
		}else{
			if ( !chkLength1 ( name, obj, required, maxlength ) ) return false;
			if ( minlength != 0 && !chkMinLength ( name, obj, minlength ) ) return false;
		}
	}else{
		if ( required ) return chkRequired ( name, obj );
	}
	return true;
}

// 郵便番号チェック関数
function chkZip ( name, obj, required, hyphen ) {
	var str=obj.value;
	if( str!='' ) {
		if(hyphen) var tmp=str.match(/^\d+\-\d+$/);
		else      var tmp=str.match(/^\d+$/);
		if (tmp!=str){
			if(hyphen) alert( name + 'は半角の数字とハイフン(-)で入力してください' );
			else      alert( name + 'は半角の数字で入力してください' );
			return false;
		}else{
			if(hyphen){
				if ( !chkLength2 ( name, obj, required, 8 ) ) return false;
			}else{
				if ( !chkLength2 ( name, obj, required, 7 ) ) return false;
			}
		}
	}else{
		if ( required ) return chkRequired ( name, obj );
	}
	return true;
}

// 電話番号チェック関数
function chkTel ( name, obj, required, hyphen, minlength, maxlength ) {
	var str=obj.value;
	if( str!='' ) {
		if(hyphen) var tmp=str.match(/^\d+\-\d+\-\d+$/);
		else      var tmp=str.match(/^\d+$/);
		if (tmp!=str){
			if(hyphen) alert( name + 'は半角の数字とハイフン(-)で入力してください' );
			else      alert( name + 'は半角の数字で入力してください' );
			return false;
		}else{
			if ( !chkLength1 ( name, obj, required, maxlength ) ) return false;
			if ( minlength != 0 && !chkMinLength ( name, obj, minlength ) ) return false;
		}
	}else{
		if ( required ) return chkRequired ( name, obj );
	}
	return true;
}

// URLチェック関数
function chkUrl ( name, obj, required, minlength, maxlength ) {
	str = obj.value;
	if( str!='' ) {
		var Seiki=/(http|ftp):\/\/.+/;
		if(!str.match(Seiki)){
			alert ( name + 'のホームページアドレスの形式が不正です' );
			return false;
		}else{
			if ( !chkLength1 ( name, obj, required, maxlength ) ) return false;
			if ( minlength != 0 && !chkMinLength ( name, obj, minlength ) ) return false;
		}
	}else{
		if ( required ) return chkRequired ( name, obj );
	}
	return true;
}
// メールアドレスチェック関数
function chkEmail ( name, obj, required, minlength, maxlength ) {
	str = obj.value;
	if( str!='' ) {
		var Seiki=/^\S+@\S+\.\S+$/;
		if(!str.match(Seiki)){
			alert ( name + 'のメールアドレスの形式が不正です' );
			return false;
		}else{
			if ( !chkLength1 ( name, obj, required, maxlength ) ) return false;
			if ( minlength != 0 && !chkMinLength ( name, obj, minlength ) ) return false;
		}
	}else{
		if ( required ) return chkRequired ( name, obj );
	}
	return true;
}

// 全角カタカナチェック
var zenkana='アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョーガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ';
function chkZenKana ( name, obj, required, minlength, maxlength ) {
	var str=obj.value;
	if( str!='' ) {
		var mes='';
		for (var i=0; i<str.length; i++) {
			var tmp1=str.substr(i,1);
			for (var j=0; j<zenkana.length; j++) {
				var tmp2=zenkana.substr(j,1);
				if (tmp1==tmp2) {
					mes+=tmp1;
				}
			}
		}
		if(mes==str){
			if ( !chkLength1 ( name, obj, required, maxlength ) ) return false;
			if ( minlength != 0 && !chkMinLength ( name, obj, minlength ) ) return false;
			return true;
		}else{
			alert ( name + 'は全角カタカナで入力してください');
			return false;
		}
	}else{
		if ( required ) return chkRequired ( name, obj );
	}
	return true;
}

// 全角ひらがなチェック
var zenhira='あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんぁぃぅぇぉっゃゅょーがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ';
function chkZenHira ( name, obj, required, minlength, maxlength ) {
	var str=obj.value;
	if( str!='' ) {
		var mes='';
		for (var i=0; i<str.length; i++) {
			var tmp1=str.substr(i,1);
			for (var j=0; j<zenhira.length; j++) {
				var tmp2=zenhira.substr(j,1);
				if (tmp1==tmp2) {
					mes+=tmp1;
				}
			}
		}
		if(mes==str){
			if ( !chkLength1 ( name, obj, required, maxlength ) ) return false;
			if ( minlength != 0 && !chkMinLength ( name, obj, minlength ) ) return false;
			return true;
		}else{
			alert ( name + 'は全角ひらがなで入力してください');
			return false;
		}
	}else{
		if ( required ) return chkRequired ( name, obj );
	}
	return true;
}

// ユニークデータチェック
function checkUnique(t, f, v, idf, idv){
	var p = 't='  + encodeURIComponent(t)
		+ '&f=' + encodeURIComponent(f)
		+ '&v=' + encodeURIComponent(v)
		+ '&idf=' + encodeURIComponent(idf)
		+ '&idv=' + encodeURIComponent(idv);
	var ssl_url = "";
	if(location.href.match(/^https:\/\//)){
		ssl_url = "https://ssl41.heteml.jp/nakksoffice/_graziemille";
	}
	var rc = true;
	new Ajax.Request(
		ssl_url + '/yamamomo/check_unique.php',
		// '/yamamomo/check_unique.php',
		{ method: 'get', asynchronous: false, onComplete: getResponse, parameters: p }
	);
	function getResponse(req){
		var txt = decodeURIComponent(req.responseText);
		// alert(txt);
		if(txt=="TRUE") rc = true; else rc = false;
	}
	return rc;
}

// メールアドレスの存在チェック
function existsEmail(mail){
	var p = 'm='  + encodeURIComponent(mail);
	var ssl_url = "";
	if(location.href.match(/^https:\/\//)){
		ssl_url = "https://ssl41.heteml.jp/nakksoffice/_graziemille";
	}
	var rc = true;
	new Ajax.Request(
		ssl_url + '/yamamomo/exists_email.php',
		// '/yamamomo/exists_email.php',
		{ method: 'get', asynchronous: false, onComplete: getResponse, parameters: p }
	);
	function getResponse(req){
		var txt = decodeURIComponent(req.responseText);
		if(txt=="TRUE") rc = true; else rc = false;
	}
	return rc;
}

// 答えのチェック
function chkAnswer(answer){
	var p = 'a='  + encodeURIComponent(answer);
	var ssl_url = "";
	if(location.href.match(/^https:\/\//)){
		ssl_url = "https://ssl41.heteml.jp/nakksoffice/_graziemille";
	}
	var rc = true;
	new Ajax.Request(
		ssl_url + '/yamamomo/check_answer.php',
		// '/yamamomo/check_answer.php',
		{ method: 'get', asynchronous: false, onComplete: getResponse, parameters: p }
	);
	function getResponse(req){
		var txt = decodeURIComponent(req.responseText);
		if(txt=="TRUE") rc = true; else rc = false;
	}
	return rc;
}

