
/* form-check.js
--------------------------------------------------------------

:: CSS Index

 1 : formCheck
   : chNull
   : chNum
   : chHalf
   : chMail
   : chURL

 
--------------------------------------------------------------

2006.08.25 : Sig. added
2006.08.24 : Sig. created

-------------------------------------------------------------- */

function formCheck(form) {
	
	// 入力チェック
	if(!chNull(form.name, '名前')) return false;
	if(!chNull(form.body, '本文')) return false;
	
	// 文字数チェック
	if(!chNum(form.name,3,25, '名前')) return false;
	
	// 半角チェック
	if(!chHalf(form.mail, 'Email')) return false;
	
	// アドレスチェック
	if(!chMail(form.mail, 'Email')) return false;
	
	// URLチェック
	if(!chURL(form.track, 'トラックバック')) return false;

	return true;
}


var email = /[\w\.\-.\_]+@([\w\-]+\.)+[\w]+/ig;
var http_url = /s?https?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+/ig;
var ftp_url = /ftp:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+/ig;


/* --- chNull --- */

function chNull(obj,msg) {

	if(!obj) return true;

	if(obj.value=="") {
		window.alert(msg+'が入力されていません');
		obj.focus();
		return false;
	}
	return true;
}


/* --- chNum --- */

function chNum(obj,min,max,msg) {

	if(!obj) return true;
	
	var num = obj.value.length;
	var brw = navigator.appName;
	
	if(num < min) {
		window.alert(msg + 'は' + min + '文字以上で入力してください')
		obj.focus();
		return false;
	}
	
	if(num > max) {
		window.alert(msg + 'は' + max + '文字以下で入力してください')
		obj.focus();
		return false;
	}
	
	return true;
}


/* --- chHalf --- */

function chHalf(obj,msg){

	if(!obj) return true;

	var str = obj.value;

	for (var i=0; i<str.length; i++) {
		/* 1文字ずつ文字コードをエスケープし、その長さが4文字未満なら半角 */

		var len = escape(str.charAt(i)).length;

		if (len >= 4){
			window.alert(msg + 'に全角文字が含まれています');
			obj.focus();
			return false;
		}
	}
	return true;
}


/* --- chMail --- */

function chMail(obj,msg) {

	if(!obj) return true;

	var adr = obj.value;

	if(adr=="") return true; 
	if(email.test(adr)==false) {
		window.alert(msg + 'のアドレスが不正です');
		obj.focus();
		return false;
	}
	return true;
}


/* --- chURL --- */

function chURL(obj,msg) {

	if(!obj) return true;
	
	var url = obj.value;

	if(url=="") return true; 
	if(http_url.test(url)==false) {
		window.alert(msg + 'のURLが不正です');
		obj.focus();
		return false;
	}
	return true;
}
