$.fn.validate = function(options){
o = {
//錯誤訊息設定
	msg_afterSubmitBtn : "( 請檢查上方欄位旁錯誤訊息 )",  //顯示在送出按鈕旁的錯誤訊息
	msg_required : "請填寫此欄位",  //必填欄位的錯誤訊息
	msg_email : "email 格式錯誤",  //email 欄位的錯誤訊息
	msg_phone : "電話格式錯誤",       //電話 欄位的錯誤訊息
	errorMsgAfter : true,		//是否在欄位後面直接顯示錯誤
	alertMsg : true,       //是否以彈出警告訊息
	
//class 設定
	class_required : "required",
	class_email : "email",
	class_phone : "phone",
	class_errormsg : "errormsg"
}
	
if(options) {
	$.extend(o, options);
}
	
function resetall(){
	error = 0;
	$("*."+o.class_errormsg).remove();
	errorMsg = '';
}

resetall();
	

//required
$(this).find("input."+o.class_required).each(
	function(){
		var iv = $(this).val();
		if(iv){
			//do not thing
		} else {
			if (o.errorMsgAfter){
				$(this).after("<span class='"+o.class_errormsg+"'>"+o.msg_required+"</span>");
			}
			errorMsg += $(this).attr('name') + ' - ' + o.msg_required + '\n';
			error ++;
		}
	});	

//email
$(this).find("input."+o.class_email).each(
	function(){
		var iv = $(this).val();
		if( iv=='' || chkemail(iv)){
			//do not thing
		} else {
			if (o.errorMsgAfter){
				$(this).after("<span class='"+o.class_errormsg+"'>"+o.msg_email+"</span>");
			}
			errorMsg += $(this).attr('name') + ' - ' + o.msg_email + '\n';
			error ++;
		}
	});

//phone
$(this).find("input."+o.class_phone).each(
	function(){
		var iv = $(this).val();
		if(iv=='' || chkphone(iv)){
			//do not thing
		} else {
			if (o.errorMsgAfter){
				$(this).after("<span class='"+o.class_errormsg+"'>"+o.msg_phone+"</span>");
			}
			errorMsg += $(this).attr('name') + ' - ' + o.msg_phone + '\n';
			error ++;
		}
	});

//process 
if (error==0){
	return true;
} else {
	if (o.errorMsgAfter){
		$(this).find("input[@type='submit']").after("<span class='"+o.class_errormsg+"'>"+o.msg_afterSubmitBtn+"</span>");
	}
	if (o.alertMsg){ alert(errorMsg); }
	return false;
}

/*****************************************/
//驗證 email 功能
function chkemail(str) 
  {
      return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
  }

/*****************************************/
//驗證 phone 功能
function chkphone(str) 
  {
      return str.match(/[\d\(\)\.\-#\*\+~]{7,}/);
  }


}
  

