/* メールアドレス文字チェック */
function mailCheck(str) {
   if(!str.match(/^[0-9,A-Z,a-z][0-9,a-z,A-Z,_,\.,-]+@[0-9,A-Z,a-z][0-9,a-z,A-Z,_,\.,-]+\.(af|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|ac|au|at|az|bh|bd|bb|by|bj|bm|bt|bo|ba|bw|br|io|bn|bg|bf|bi|kh|cm|ca|cv|cf|td|gg|je|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|tp|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|fx|ga|gm|ge|de|gh|gi|gd|gp|gu|gt|gn|gw|gy|ht|hm|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|kn|lc|vc|ws|sm|st|sa|sn|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sh|pm|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|bs|ky|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|uk|us|um|uy|uz|vu|va|ve|vn|vg|vi|wf|eh|ye|yu|zm|zw|com|net|org|gov|edu|int|mil|biz|info|name|pro|jp)$/i) ) {
      return false;
   }
   return true;
}

/* 電話番号文字チェック */
function telCheck(str) {
	if(!str.match(/^\d{2,5}-\d{1,4}-\d{4}$/)) {
	   return false;
	}
	return true;
}

/* 郵便番号文字チェック */
function zipCheck(str) {
	if(!str.match(/^\d{3}-\d{4}$/)) {
	   return false;
	}
	return true;
}

/* URL文字チェック */
function urlCheck(str) {
	if(!str.match(/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/)) {
	   return false;
	}
	return true;
}

/* 全角カナかな文字チェック */
function FuriganaCheck(str) {
   if( str.match( /[^ぁ-んァ-ン　\s]+/ ) ) {
	   return false;
	}
	return true;
}

/* 全角カナ文字チェック */
function KanaCheck(str) {
   if(! str.match( /^[ァ-ヶー]*$/ ) ) {
	   return false;
	}
	return true;
}

/* 半角英文字チェック */
function AlphabetCheck(str) {
   if( str.match( /[^A-Za-z\s.-]+/ ) ) {
	   return false;
	}
	return true;
}

/* 半角数字チェック */
function NumberCheck(str) {
   if( str.match( /[^0-9]+/ ) ) {
	   return false;
	}
	return true;
}

/* 半角英数字チェック */
function AlphaNumberCheck(str) {
   if(! str.match( /^[a-zA-Z0-9]+$/ ) ) {
	   return false;
	}
	return true;
}
/* 日付チェック */
function DateCheck(year,month,day) {
	var year = year;
	var month = month - 1;
	var day = day;
	if(month >= 0 && month <= 11 && day >= 1 && day <= 31){
		 var date = new Date(year, month, day);
        if(isNaN(date)){
            return false;
        }else if(date.getFullYear() == year && date.getMonth() == month && date.getDate() == day){
            return true;
        }else{
            return false;
        }
    }else{
        return false;
    }
}
/* 日付が現在より未来チェック */
function DateNowCheck(year,month,day) {
	var nowdateobject       = new Date();
	var nowyear    = nowdateobject.getYear();
	var nowyear4   = (nowyear < 2000) ? nowyear+1900 : nowyear;
	var nowmonth   = nowdateobject.getMonth() + 1;
	var nowmonth2   = (nowmonth < 10) ? "0"+String(nowmonth) : nowmonth;
	var nowday    = nowdateobject.getDate();
	var nowday2   = (nowday < 10) ? "0"+String(nowday) : nowday;
	var nowdata = String(nowyear4) + String(nowmonth2) + String(nowday2);
	
	var dateobject       = new Date();
	var year4   = (year < 2000) ? year+1900 : year;
	var month2   = month;
	var day2   = day;
	var data = String(year4) + String(month2) + String(day2);
	if(Number(nowdata) > Number(data)){
		return false;
	}
	return true;
}
