

var digit = '0123456789';
var numb = '0123456789.,+-';
var lwr = 'abcdefghijklmnopqrstuvwxyz ';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ';
var symbol = ' !"#$%&\'()*+-.,/:;<=>?@[\\]^_`{|}~';

function isValid(parm,val) {
	if (parm == "") return true;
		for (i=0; i<parm.length; i++) {
			if (val.indexOf(parm.charAt(i),0) == -1) return false;
		}
	
	return true;
}

function isDigit(parm) {return isValid(parm,digit);}
function isNumber(parm) {return isValid(parm,numb);}
function isLower(parm) {return isValid(parm,lwr);}
function isUpper(parm) {return isValid(parm,upr);}
function isAlpha(parm) {return isValid(parm,lwr+upr);}
function isAlphaNum(parm) {return isValid(parm,lwr+upr+numb);} 
function isAlphaSymbol(parm) {return isValid(parm,lwr+upr+symbol);} 
function isAlphaNumSymbol(parm) {return isValid(parm,lwr+upr+numb+symbol);} 

function ChkBoxSelected(form) {
	var count = 0;
	var num = form.elements.length;

	for (var i=0; i< num; i++){
    	if (form.elements[i].type == "checkbox" && 
    		form.elements[i].checked)
    		count++;
  	}
 	if (!count) {
//		alert("少なくとも1つの受取荷物を選択してください。");		
		alert(lang.at_least_one_received_package);				
		return false;
	}
	return true;
}

function chkSearchCustomer(frm) {
    var opt = Array("first_name","last_name");
    var opt_nm = Array("First Name", "Last Name");
    var opt_attr = Array("alphasymbol", "alphasymbol");

    var obj=frm.elements[opt[0]];
	var obj1=frm.elements[opt[1]];    
	if (obj.value == '' && obj1.value == '') {
//		alert("First NameとLast Nameの両方もしくはどちらかを入力してください");		
		alert(lang.first_name_and_or_last_name);			
		return false;	
	}
    return chkOptional(frm, opt, opt_nm, opt_attr);
}

function chkSearchCustomerNumber(frm) {
    var hissu = Array("customer_number");
/*    
    var hissu_nm = Array("顧客番号");
*/    
    var hissu_nm = Array(lang.customer_number);    
    var attr = Array("digit");

    return chkMondatory(frm, hissu, hissu_nm, attr);
}

function chkManualConfirmPayment(frm) {
    var hissu = Array("customer_number", "shipment_number");
/*    var hissu_nm = Array("顧客番号", "発送番号");*/
    var hissu_nm = Array(lang.customer_number, lang.shipment_number);
    var attr = Array("digit", "digit");

    return chkMondatory(frm, hissu, hissu_nm, attr);
}

function chkLogin(frm) {
     var hissu = Array("userid","password");
/*     var hissu_nm = Array("Eメールアドレス",	"パスワード");*/
     var hissu_nm = Array(lang.email, lang.password);     
     var attr = Array("email", "password");

     return chkMondatory(frm, hissu, hissu_nm, attr);
}

function chkRegister(frm) {
    var hissu = Array("email","email2","password","password2");
/*    
    var hissu_nm = Array("Eメールアドレス",
    					"Eメールアドレス（確認用）",
    					"パスワード",
    					"パスワード（確認用）");
*/    					
    var hissu_nm = Array(lang.email, lang.email_verify, lang.password, lang.password_verify);

    var attr = Array("email","email","password","password")
    
    if (!chkMondatory(frm,hissu, hissu_nm, attr))
    	return false;    

	var obj=frm.elements[hissu[0]];
	var obj1=frm.elements[hissu[1]];	
	
	if (obj1.value != obj2.value) {
//        alert("新しいパスワードが確認用パスワードと一致しません");
        alert(lang.new_password_not_match_verify_password);        
        return false;		
	}
	return true;    

}

function chkPassword(frm) {
    var hissu = Array("password","password2","password3");
/*    
    var hissu_nm = Array(
    					"現在のパスワード",
    					"新しいパスワード",
    					"新しいパスワード（確認用）"
    					);
*/    					
    var hissu_nm = Array(lang.current_password, lang.new_password, lang.new_password_verify);
					
    var attr = Array("password","password","password")
    
    if (!chkMondatory(frm,hissu, hissu_nm, attr))
    	return false;
    
	var obj=frm.elements[hissu[0]];
	var obj1=frm.elements[hissu[1]];	
	var obj2=frm.elements[hissu[2]];
	
	if (obj1.value != obj2.value) {
//        alert("新しいパスワードが確認用パスワードと一致しません");
        alert(lang.new_password_not_match_verify_password);        
        return false;		
	}
	if (obj.value == obj1.value) {
        alert(lang.new_password_differnt_from_current);
        return false;		
	}
	return true;
    
}

function chkEmail(frm) {
    var hissu = Array("email","email2","email3","password");
/*    
    var hissu_nm = Array(
    					"現在のEメールアドレス",
    					"新しいEメールアドレス",
    					"新しいEメールアドレス（確認用）"
    					);
*/    					
    var hissu_nm = Array(lang.current_email, 
    					 lang.new_email, 
    					 lang.new_email_verify,
    					 lang.current_password);
  
    var attr = Array("email","email","email","password");
    
    if (!chkMondatory(frm,hissu, hissu_nm, attr))
    	return false;
    
	var obj=frm.elements[hissu[0]];
	var obj1=frm.elements[hissu[1]];	
	var obj2=frm.elements[hissu[2]];
	
	if (obj1.value != obj2.value) {
//        alert("新しいEメールアドレスが確認用Eメールアドレスと一致しません");
        alert(lang.new_email_not_match_verify_email);        
        return false;		
	}
	if (obj.value == obj1.value) {
//        alert("新しいメールアドレスは現在のメールアドレスと別のものにしてください");
        alert(lang.new_email_different_from_current);        
        return false;		
	}
	return true;
    
}

function chkContact(frm) {
    var hissu = Array("name","email","subject","body");
/*    
    var hissu_nm = Array(
    					"名前",
    					"Eメールアドレス",
    					"件名",
    					"内容"
    					);
*/    					
    var hissu_nm = Array(lang.name, lang.email, lang.subject, lang.content);
 
    var attr = Array("any","email","any","any")
    
    if (!chkMondatory(frm,hissu, hissu_nm, attr))
    	return false;
    
	var opt = Array(
			  "customer_number"
			  );
			
	var opt_nm = Array(lang.customer_number);

	var opt_attr = Array(
			"digit"
			);

	if (!chkOptional(frm, opt, opt_nm, opt_attr))		
		return false;    
    
	return true;
    
}

function chkControl(frm) {
    var hissu = Array("insurance_ratio","surcharge_ratio");        
/*
    var hissu_nm = Array(    		
    					"保険料",
    					"燃料サーチャージ"
    					);
*/    					
    var hissu_nm = Array(lang.insurance_ratio, lang.oil_surcharge_ratio);

    var attr = Array("number","number")
    
    if (!chkMondatory(frm,hissu, hissu_nm, attr))
    	return false;
    
	return true;	
	
	
}

function chkHandling(frm) {
	
	for (var i = 0; i < frm.datetime.length; i ++){
	    if(frm.datetime[i].checked && frm.datetime[i].value == "manual"){
	    	if (frm.month.value == "--" || frm.day.value == "--" || frm.hour.value == "--") {
//	    		alert("発送・返品・破棄日時の月、日、または時間が選択されていません");
	    		alert(lang.select_shipping_date);	    		
	    		return false;    	
	    	}
	    }
	}	
	
	var opt = Array(
			  "tracking"
			  );
/*
	var opt_nm = Array(
				"追跡番号"
				);
*/				
	var opt_nm = Array(lang.tracking);

	var opt_attr = Array(
			"alphanumsymbol"
			);

	if (!chkOptional(frm, opt, opt_nm, opt_attr))		
		return false;

	return true;
}

function chkOrderInput(frm) {
var hissu = Array(
/*		  "customer_number",*/
		  "sender",
		  "box_length",			  
		  "box_width", 
		  "box_height",		  
		  "box_weight"  
		  );
/*
var hissu_nm = Array(
			"顧客番号",
			"出荷元",
			"立法サイズ（縦）",
			"立法サイズ（横）",
			"立法サイズ（高さ）",	
			"実重量"
			);
*/			
var hissu_nm = Array(lang.shipper, lang.box_size_length, lang.box_size_width, lang.box_size_height, lang.actual_weight);

var attr = Array(
/*		"number",*/
		"alphanumsymbol",
		"number",
		"number",
		"number",
		"number"
		);

if (!chkMondatory(frm, hissu, hissu_nm, attr))
	return false;

var opt = Array(
		  "merchandise_name",
		  "barcode"
		  );
/*
var opt_nm = Array(
			"商品名",
			"バーコード"
			);
*/			
var opt_nm = Array(lang.merchandise, lang.barcode);

var opt_attr = Array(
		"alphanumsymbol",
		"alphanumsymbol"
		);    

if (!chkOptional(frm, opt, opt_nm, opt_attr))
	return false;

for (var i = 0; i < frm.datetime.length; i ++){
    if(frm.datetime[i].checked && frm.datetime[i].value == "manual"){
    	if (frm.month.value == "--" || frm.day.value == "--" || frm.hour.value == "--") {
//    		alert("受取日時の月、日、または時間が選択されていません");
    		alert(lang.select_received_date);    		
    		return false;    	
    	}
    }
}

return true;
}

function chkOrderUpdate(frm) {
	var hissu = Array(
			  "order_number",			  
			  "customer_number",
			  "sender",
			  "box_length",					  
			  "box_width",
			  "box_height",		  
			  "box_weight",  
			  "year",  			 
			  "month",  			
			  "day",
			  "hour"			  
			  );
/*
	var hissu_nm = Array(
				"受取荷物番号",			
				"顧客番号",
				"出荷元",
				"立法サイズ（縦）",
				"立法サイズ（横）",
				"立法サイズ（高さ）",	
				"実重量",
				"受取日時（年）",
				"受取日時（月）",
				"受取日時（日）",
				"受取日時（時）"			
				);
*/				
	var hissu_nm = Array(
			lang.order_number,
			lang.customer_number,
			lang.shipper,
			lang.box_size_length,
			lang.box_size_width,
			lang.box_size_height,
			lang.actual_weight,
			lang.received_year,
			lang.received_month,
			lang.received_day,
			lang.received_hour);

	var attr = Array(
			"number",
			"number",
			"alphanumsymbol",
			"number",
			"number",
			"number",
			"number",
			"year",
			"month",
			"day",
			"hour"
			);

	if (!chkMondatory(frm, hissu, hissu_nm, attr))
		return false;
	
	var opt = Array(
			  "merchandise_name",
			  "barcode"
			  );
/*	
	var opt_nm = Array(
				"商品名",
				"バーコード"
				);
*/				
	var opt_nm = Array(lang.merchandise, lang.barcode);

	var opt_attr = Array(
			"alphanumsymbol",
			"alphanumsymbol"
			);    

	if (!chkOptional(frm, opt, opt_nm, opt_attr))
		return false;	

	return true;
}

function chkSearchOrder(frm) {

	for (var i = 0; i < frm.search_option.length; i ++){
	    if (frm.search_option[i].checked && frm.search_option[i].value == "barcode"){
	    	
	    	var hissu = Array("barcode");
/*	    	
	    	var hissu_nm = Array("バーコード");
*/	    	
	    	var hissu_nm = Array(lang.barcode);
	    	
	    	var attr = Array("alphanumsymbol");
		    if (!chkMondatory(frm, hissu, hissu_nm, attr))	    		
	    		return false;	    	
	    	
	    } else if (frm.search_option[i].checked && frm.search_option[i].value == "customer"){
	    	
	    	var hissu = Array("customer_number");
/*	    	
	    	var hissu_nm = Array("顧客番号");
*/	    	
	    	var hissu_nm = Array(lang.customer_number);	    	
	    	var attr = Array("number");
		    if (!chkMondatory(frm, hissu, hissu_nm, attr))	    		
	    		return false;	    	
	    	
	    } else if (frm.search_option[i].checked && frm.search_option[i].value == "order"){
	    	
	    	var hissu = Array("order_number");
/*	    	
	    	var hissu_nm = Array("受取荷物番号");
*/	    	
	    	var hissu_nm = Array(lang.order_number);
	    	
	    	var attr = Array("number");	    	
		    if (!chkMondatory(frm, hissu, hissu_nm, attr))	    		
	    		return false;		    	
		    	
	    } else if (frm.search_option[i].checked && frm.search_option[i].value == "date"){
			    
	    	var hissu = Array(
	   			  "start_year",
	  			  "start_month",
	  			  "start_day",
	  			  "end_year",		  
	  			  "end_month",		  
	  			  "end_day"		  
	  			  );
/*
	    	var hissu_nm = Array(
	  				"開始年",			
	  				"開始月",
	  				"開始日",
	  				"終了年",
	  				"終了月",
	  				"終了日"	
	  				);
*/	  				
	    	var hissu_nm = Array(
	  				lang.start_year,			
	  				lang.start_month,
	  				lang.start_day,
	  				lang.end_year,
	  				lang.end_month,
	  				lang.end_day);

	    	var attr = Array(
	  			"number",
	  			"number",
	  			"number",
	  			"number",
	  			"number",
	  			"number"
	  			);		    	
	    	if (!chkMondatory(frm, hissu, hissu_nm, attr))
	    		return false;		   
	    	
	    	var start_year = frm.start_year.value;
	    	var start_month = frm.start_month.value;
	    	var start_day = frm.start_day.value;
	    	var end_year = frm.end_year.value;
	    	var end_month = frm.end_month.value;
	    	var end_day = frm.end_day.value;   	
	    	
	    	var start_date = start_year * 10000 + start_month *100 + start_day;
	    	var end_date = end_year * 10000 + end_month * 100 + end_day;
	    	
	    	if (start_date > end_date) {
//	    		alert("開始日と終了日が逆転しています");
	    		alert(lang.conflict_start_end_date);
	    		return false;   	    		
	    	}
	    	
	    }

	}	

	return true;
}

function chkShipmentInput(frm) {

	var opt = Array(
					"shipment_number",
					"customer_number",
					"order_number_list",
					"shipped_year",
					"shipped_month",
					"shipped_day",
					"shipped_hour",
					"shipment_fee",
					"handling_fee",
					"insurance_fee",
					"surcharge_fee",
					"service_fee",
					"product_price",		
					"box_width",
					"box_length",
					"box_height",				
					"box_cal_weight",
					"box_weight",
					"charge_weight",
					"tracking"
			  );

	var opt_nm = Array(
			lang.shipment_number,
			lang.customer_number,
			lang.order_number,
			lang.shipped_year,
			lang.shipped_month,
			lang.shipped_day,
			lang.shipped_hour,
			lang.shipment_fee,
			lang.handling_fee,
			lang.insurance,
			lang.surcharge,
			lang.service_fee,
			lang.merchandise_price,
			lang.box_length,
			lang.box_width,
			lang.box_height,
			lang.volumetric_weight,
			lang.actual_weight,
			lang.charge_weight,
			lang.tracking
			);

	var opt_attr = Array(
			"number",
			"number",
			"number",
			"year",
			"month",
			"day",
			"hour",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"alphanumsymbol"
			);

	if (!chkOptional(frm, opt, opt_nm, opt_attr))
		return false;

	return true;
}

function chkShipmentInput2(frm) {

	var opt = Array(
					"shipment_number",
					"customer_number",
					"order_number_list",
					"shipped_year",
					"shipped_month",
					"shipped_day",
					"shipped_hour",
					"shipment_fee",
					"surcharge_fee",				
					"oversize_fee",
					"remote_fee",
					"handling_fee",
					"insurance_fee",
					"service_fee",
					"product_price",			
					"charge_weight",
					"tracking"
			  );

	var opt_nm = Array(
			lang.shipment_number,
			lang.customer_number,
			lang.order_number,
			lang.shipped_year,
			lang.shipped_month,
			lang.shipped_day,
			lang.shipped_hour,
			lang.shipment_fee,
			lang.surcharge,
			lang.oversize_fee,
			lang.remote_fee,
			lang.dispose_fee,
			lang.insurance,
			lang.special_fee,
			lang.merchandise_price,
			lang.charge_weight,
			lang.tracking
			);
	
	var opt_attr = Array(
			"number",
			"number",
			"number",
			"year",
			"month",
			"day",
			"hour",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"number",
			"alphanumsymbol"
			);    

	if (!chkOptional(frm, opt, opt_nm, opt_attr))
		return false;

	return true;
}

function chkDumpAccountingData(frm) {
		    
	    	var hissu = Array(
	   			  "start_year",
	  			  "start_month",
	  			  "start_day",
	  			  "end_year",		  
	  			  "end_month",		  
	  			  "end_day"		  
	  			  );
  				
	    	var hissu_nm = Array(
	  				lang.start_year,
	  				lang.start_month,
	  				lang.start_day,
	  				lang.end_year,
	  				lang.end_month,
	  				lang.end_day);

	    	var attr = Array(
	  			"number",
	  			"number",
	  			"number",
	  			"number",
	  			"number",
	  			"number"
	  			);		    	
	    	if (!chkMondatory(frm, hissu, hissu_nm, attr))
	    		return false;		   
	    	
	    	var start_year = frm.start_year.value;
	    	var start_month = frm.start_month.value;
	    	var start_day = frm.start_day.value;
	    	var end_year = frm.end_year.value;
	    	var end_month = frm.end_month.value;
	    	var end_day = frm.end_day.value;   	
	    	
	    	var start_date = start_year * 10000 + start_month *100 + start_day;
	    	var end_date = end_year * 10000 + end_month * 100 + end_day;
	    	
	    	if (start_date > end_date) {
	    		alert(lang.conflict_start_end_date);	    		
	    		return false;   	    		
	    	}	

	return true;
}

function chkSearchShipment(frm) {

	for (var i = 0; i < frm.search_option.length; i ++){
	    if (frm.search_option[i].checked && frm.search_option[i].value == "customer"){
	    	
	    	var hissu = Array("customer_number");
//	    	var hissu_nm = Array("顧客番号");
	    	var hissu_nm = Array(lang.customer_number);	    	
	    	var attr = Array("number");
		    if (!chkMondatory(frm, hissu, hissu_nm, attr))	    		
	    		return false;	    	
	    	
	    } else if (frm.search_option[i].checked && frm.search_option[i].value == "shipment"){
	    	
	    	var hissu = Array("shipment_number");
//	    	var hissu_nm = Array("発送荷物番号");
	    	var hissu_nm = Array(lang.shipment_number);	    	
	    	var attr = Array("number");	    	
		    if (!chkMondatory(frm, hissu, hissu_nm, attr))	    		
	    		return false;		    	
		    	
	    } else if (frm.search_option[i].checked && frm.search_option[i].value == "date"){
			    
	    	var hissu = Array(
	   			  "start_year",
	  			  "start_month",
	  			  "start_day",
	  			  "end_year",		  
	  			  "end_month",		  
	  			  "end_day"		  
	  			  );

/*	    	
	    	var hissu_nm = Array(
	  				"開始年",			
	  				"開始月",
	  				"開始日",
	  				"終了年",
	  				"終了月",
	  				"終了日"	
	  				);
*/	  				
	    	var hissu_nm = Array(
	  				lang.start_year,
	  				lang.start_month,
	  				lang.start_day,
	  				lang.end_year,
	  				lang.end_month,
	  				lang.end_day);

	    	var attr = Array(
	  			"number",
	  			"number",
	  			"number",
	  			"number",
	  			"number",
	  			"number"
	  			);		    	
	    	if (!chkMondatory(frm, hissu, hissu_nm, attr))
	    		return false;		   
	    	
	    	var start_year = frm.start_year.value;
	    	var start_month = frm.start_month.value;
	    	var start_day = frm.start_day.value;
	    	var end_year = frm.end_year.value;
	    	var end_month = frm.end_month.value;
	    	var end_day = frm.end_day.value;   	
	    	
	    	var start_date = start_year * 10000 + start_month *100 + start_day;
	    	var end_date = end_year * 10000 + end_month * 100 + end_day;
	    	
	    	if (start_date > end_date) {
//	    		alert("開始日と終了日が逆転しています");
	    		alert(lang.conflict_start_end_date);	    		
	    		return false;   	    		
	    	}
	    	
	    }

	}	

	return true;
}

function chkFee(frm) {
	var hissu = Array(
			  "handling_fee",
			  "product_price",
			  "box_weight",  		
			  "box_length",			  
			  "box_width",		  
			  "box_height"	
			  );
/*
	var hissu_nm = Array(
				"商品代金",
					"実重量",				
				"立法サイズ（縦）",
				"立法サイズ（横）",
				"立法サイズ（高さ）"	
				);
*/				
	var hissu_nm = Array(
			lang.handling_fee,
			lang.merchandise_price,
			lang.actual_weight,			
			lang.box_size_length,
			lang.box_size_width,
			lang.box_size_height
			);
	
	var attr = Array(
			"number",
			"number",			
			"number",
			"number",
			"number",
			"number"
			);

	if (!chkMondatory(frm, hissu, hissu_nm, attr))
		return false;

	return true;	
	
}

function chkFee2(frm) {
	var hissu = Array(
			  "product_price",
			  "charge_weight"
			  );  		
		
	var hissu_nm = Array(
			lang.merchandise_price,
			lang.charge_weight			
			);
	
	var attr = Array(
			"number",
			"number"
			);

	if (!chkMondatory(frm, hissu, hissu_nm, attr))
		return false;

	var opt = Array(
			  "oversize_fee",
			  "remote_fee",
			  "handling_fee",
			  "service_fee"
			  );
			
	var opt_nm = Array(
			lang.oversize_fee,
			lang.remote_fee,
			lang.dispose_fee,
			lang.special_fee
			);

	var opt_attr = Array(
			"number",
			"number",
			"number",
			"number"
			);

	if (!chkOptional(frm, opt, opt_nm, opt_attr))
		return false;
	
	return true;	
	
}


function chkEstimateFee(frm) {
	var hissu = Array(
			  "box_weight",
			  "box_length",
			  "box_width",
			  "box_height"
			  );
/*
	var hissu_nm = Array(
				"荷物数",
				"商品代金",
				"実重量"
				);
*/				
	var hissu_nm = Array(
			lang.actual_weight,
			lang.box_size_length,
			lang.box_size_width,
			lang.box_size_height
			);	

	var attr = Array(
			"number",			
			"number",			
			"number",
			"number"
			);
	
    var country = frm.country.value;
	if (country == "----") {
	    alert(lang.select_country);	    
	    return false;       
	}    	

	if (!chkMondatory(frm, hissu, hissu_nm, attr))
		return false;

	return true;	
	
}

function chkPersonInfo(frm) {
    var hissu = Array(
    				  "first_name",
     				  "last_name",
    				  "address_line1",
     				  "city",
    				  "zip_code",
    				  "home_telephone"
    				  ); 
/*
    var hissu_nm = Array(
    					"名",
    					"姓",
    					"住所 1",
    					"市町村",
      					"郵便番号",
    					"電話番号 1"
    					);
*/    
    var hissu_nm = Array(
			lang.first_name,
			lang.last_name,
			lang.address_line1,
			lang.city,
			lang.zip_code,
			lang.phone1);  
    
    var attr = Array("alpha",
    				"alpha",
    				"alphanumsymbol",
    				"alphasymbol",
    				"digit",
    				"digit"				
    				);

    if (!chkMondatory(frm, hissu, hissu_nm, attr))
    	return false;
    
     var opt = Array(
    			  "middle_name",
    			  "building",
    			  "address_line2",
    			  "mobile_phone"
    			  );     
/*
     var opt_nm = Array(
				"ミドル名",
				"建物・部屋番号",
				"住所 2",
				"電話番号 2"
				);
*/     
    var opt_nm = Array(
    			lang.middle_name,
    			lang.building,
    			lang.address_line2,
    			lang.phone2);
    
	var opt_attr = Array(
				"alpha",
				"alphanumsymbol",
				"alphanumsymbol",
				"digit"	
				);    
    
    
    if (!chkOptional(frm, opt, opt_nm, opt_attr))
    	return false;

    var prefecture = frm.prefecture.value;
    var country = frm.country.value;
    var terms = frm.terms.checked;    
	if (prefecture == "----") {
//	    alert("都道府県を選択してください");
	    alert(lang.select_prefecture);	    
	    return false;      
	}   
	if (country == "----") {
//	    alert("国を選択してください");
	    alert(lang.select_country);	    
	    return false;       
	}    
	if (!terms) {
//	    alert("会員規約への同意は必須です");
	    alert(lang.agree_to_terms);	    
	    return false;     
	}

    return true;
}

function remove_newline(text){
   text = text.replace(/\r\n/g, "");//IE
   text = text.replace(/\n/g, "");//Firefox
   return text;
} 
   
function chkMondatory(frm, hissu, hissu_nm, attr) {     
     var len=hissu.length;
     for(var i=0; i<len; i++){
    	 var obj=frm.elements[hissu[i]];   	 
         /* テキストボックス or テキストエリアが入力されているか調べる */
         if (obj.type=="text" || obj.type=="textarea" || obj.type=="password"){
             if(obj.value==""){
                 /* 入力されていなかったらアラート表示 */
//                 alert(hissu_nm[i]+"は必須入力項目です");
                 alert(hissu_nm[i]+lang.is_mondatory);                 
                 /* 未入力のエレメントにフォーカスを当てる */
                 frm.elements[hissu[i]].focus();
                 return false;
             }
/*             
             if (obj.type=="text") {
            	 var new_value = remove_newline(obj.value);
            	 frm.elements[hissu[i]].value = new_value; 
             }
*/             
         } else {
             /* radioボタンがチェックされているか調べる */
             for(var j=0, chk=0; j<obj.length; j++){
                 /* チェックされていたらchkフラグをプラス */
                 if(obj[j].checked) chk++;
             }
             if(chk==0){
                 /* 1つもチェックされていない場合はfalseを返してフォーム送信しない */
//                 alert(hissu_nm[i]+"は必須入力項目です");
                 alert(hissu_nm[i]+lang.is_mondatory);                  
                 return false;
             }
         }
         if (attr[i] == "email" && !chkRegEmail(obj.value)) {
             frm.elements[hissu[i]].focus();        	 
        	 return false;
         }
         if (attr[i] == "digit" && !isDigit(obj.value)) {
//             alert("数字を入力してください");   
             alert(lang.input_digit);               
             frm.elements[hissu[i]].focus();             
        	 return false;         
         }           
         if (attr[i] == "number" && !isNumber(obj.value)) {
//             alert("数値を入力してください");   
             alert(lang.input_number);                
             frm.elements[hissu[i]].focus();             
        	 return false;         
         }         
         if (attr[i] == "year" && (!isNumber(obj.value) || obj.value < 2010)) {
//             alert(hissu_nm[i]+"は2010以上の数字で入力してください");   
             alert(hissu_nm[i]+lang.invalid_year);               
             frm.elements[hissu[i]].focus();             
        	 return false;           	 
         }
         if (attr[i] == "month" && (!isNumber(obj.value) || obj.value < 0 || obj.value > 12)) {
//             alert(hissu_nm[i]+"は1 ~ 12の範囲で入力してください");        	
             alert(hissu_nm[i]+lang.invalid_month);                
             frm.elements[hissu[i]].focus();             
        	 return false;           	 
         }         
         if (attr[i] == "day" && (!isNumber(obj.value) || obj.value < 0 || obj.value > 31)) {
//             alert(hissu_nm[i]+"1 ~ 31の範囲で入力してください");        	
             alert(hissu_nm[i]+lang.invalid_day);                
             frm.elements[hissu[i]].focus();             
        	 return false;           	 
         }             
         if (attr[i] == "hour" && (!isNumber(obj.value) || obj.value < 0 || obj.value > 24)) {
//             alert(hissu_nm[i]+"1 ~ 24の範囲で入力してください");     
             alert(hissu_nm[i]+lang.invalid_hour);               
             frm.elements[hissu[i]].focus();             
        	 return false;           	 
         }
         if (attr[i] == "password" && obj.value.length < 8) {
//             alert("パスワードは英数半角8文字以上で入力してください");   
             alert(lang.short_password);                
             frm.elements[hissu[i]].focus();             
        	 return false;         
         }
         if (attr[i] == "alpha" && !isAlpha(obj.value)) {
//            alert("半角英文字以外が入力されています");
            alert(lang.single_byte_alphabet);            
         	frm.elements[hissu[i]].focus();
         	return false;
     	 }
         if (attr[i] == "alphanum" && !isAlphaNum(obj.value)) {
//            alert("半角英数字以外が入力されています");
            alert(lang.single_byte_alphabet);            
         	frm.elements[hissu[i]].focus();
         	return false;
     	 }           
         if (attr[i] == "alphasymbol" && !isAlphaSymbol(obj.value)) {
//            alert("半角英文字記号以外が入力されています");
            alert(lang.single_byte_alphanumeric);             
          	frm.elements[hissu[i]].focus();
          	return false;
      	 }            
         if (attr[i] == "alphanumsymbol" && !isAlphaNumSymbol(obj.value)) {
//            alert("半角英数字記号以外が入力されています");
            alert(lang.single_byte_alphanumericsymbol);            
         	frm.elements[hissu[i]].focus();
         	return false;
     	 }
/*         
         if (attr[i] == "zip" && !chkZip(obj.value)) {    	 
          	frm.elements[hissu[i]].focus();
          	return false;
      	 }           
         if (attr[i] == "tel" && !isNum(obj.value)) {        	 
           	frm.elements[hissu[i]].focus();
           	return false;
       	 }                
*/         
	 }
     /* 必須入力項目が全て入力されている場合はtrueを返してフォーム送信 */
     return true;     
}

function chkOptional(frm, hissu, hissu_nm, attr) {     
    var len=hissu.length;
    for(var i=0; i<len; i++){
   	 	var obj=frm.elements[hissu[i]];   	 
   	 	if (obj.value != '') {
/*
   	 		if (obj.type=="text") {
   	 			var new_value = remove_newline(obj.value);
   	 			frm.elements[hissu[i]].value = new_value; 
            }
*/   	 		
        if (attr[i] == "email" && !chkRegEmail(obj.value)) {
            frm.elements[hissu[i]].focus();        	 
       	 return false;
        }
        if (attr[i] == "number" && !isNumber(obj.value)) {
//            alert("数値を入力してください");   
            alert(lang.invalid_number);               
            frm.elements[hissu[i]].focus();             
       	 return false;         
        }         
        if (attr[i] == "digit" && !isDigit(obj.value)) {
//          alert("数字を入力してください");   
          alert(lang.input_digit);               
          frm.elements[hissu[i]].focus();             
     	 return false;         
        }          
        if (attr[i] == "year" && (!isNumber(obj.value) || obj.value < 2010)) {
//            alert(hissu_nm[i]+"は2010以上の数字で入力してください");    
            alert(hissu_nm[i]+lang.invalid_year);              
            frm.elements[hissu[i]].focus();             
       	 return false;           	 
        }
        if (attr[i] == "month" && (!isNumber(obj.value) || obj.value < 0 || obj.value > 12)) {
//            alert(hissu_nm[i]+"は1 ~ 12の範囲で入力してください");       
            alert(hissu_nm[i]+lang.invalid_month);               
            frm.elements[hissu[i]].focus();             
       	 return false;           	 
        }         
        if (attr[i] == "day" && (!isNumber(obj.value) || obj.value < 0 || obj.value > 31)) {
//            alert(hissu_nm[i]+"1 ~ 31の範囲で入力してください");   
            alert(hissu_nm[i]+lang.invalid_day);              
            frm.elements[hissu[i]].focus();             
       	 return false;           	 
        }             
        if (attr[i] == "hour" && (!isNumber(obj.value) || obj.value < 0 || obj.value > 24)) {
//            alert(hissu_nm[i]+"1 ~ 24の範囲で入力してください");    
            alert(hissu_nm[i]+lang.invalid_hour);                
            frm.elements[hissu[i]].focus();             
       	 return false;           	 
        }           
        if (attr[i] == "password" && obj.value.length < 8) {
//            alert("パスワードは英数半角8文字以上で入力してください");   
            alert(lang.short_password);             
            frm.elements[hissu[i]].focus();             
       	 return false;         
        }
        if (attr[i] == "alpha" && !isAlpha(obj.value)) {
//           alert("半角英文字以外が入力されています");
           alert(lang.single_byte_alphabet);           
        	frm.elements[hissu[i]].focus();
        	return false;
    	 }
        if (attr[i] == "alphanum" && !isAlphaNum(obj.value)) {
//           alert("半角英数字以外が入力されています");
           alert(lang.single_byte_alphanumeric);           
        	frm.elements[hissu[i]].focus();
        	return false;
    	 }             
        if (attr[i] == "alphanumsymbol" && !isAlphaNumSymbol(obj.value)) {
//           alert("半角英数字記号以外が入力されています");
           alert(lang.single_byte_alphanumericsymbol);           
        	frm.elements[hissu[i]].focus();
        	return false;
    	 }     
//        if (attr[i] == "zip" && !chkZip(obj.value)) {
        if (attr[i] == "zip" && !isNum(obj.value)) {            	
         	frm.elements[hissu[i]].focus();
         	return false;
     	 }           
//        if (attr[i] == "tel" && !chkTel(obj.value)) {
        if (attr[i] == "tel" && !isNum(obj.value)) {            	
          	frm.elements[hissu[i]].focus();
          	return false;
      	 }    
        
   	 	}

    }
    return true;     
}



    function chkHissu(frm, hissu, hiss_nm){

        var len=hissu.length;
        for(i=0; i<len; i++){
            var obj=frm.elements[hissu[i]];
            /* テキストボックス or テキストエリアが入力されているか調べる */
            if(obj.type=="text" || obj.type=="textarea"){
                if(obj.value==""){
                    /* 入力されていなかったらアラート表示 */
                    alert(hissu_nm[i]+lang.is_mondatory);
                    /* 未入力のエレメントにフォーカスを当てる */
                    frm.elements[hissu[i]].focus();
                    return false;
                }
            }else{
                /* radioボタンがチェックされているか調べる */
                for(var j=0, chk=0; j<obj.length; j++){
                    /* チェックされていたらchkフラグをプラス */
                    if(obj[j].checked) chk++;
                }
                if(chk==0){
                    /* 1つもチェックされていない場合はfalseを返してフォーム送信しない */
                    alert(hissu_nm[i]+lang.is_mondatory);
                    return false;
                }
            }

        }
        /* 必須入力項目が全て入力されている場合はtrueを返してフォーム送信 */
        return true;
    }
   
   
    function chkRegEmail(str){
        /* E-mail形式の正規表現パターン */
        /* @が含まれていて、最後が .(ドット)でないなら正しいとする */
          var Seiki=/[!#-9A-~]+@+[a-z0-9]+.+[^.]$/i;
        /* 入力された値がパターンにマッチするか調べる */
        if(str!=""){
            if(str.match(Seiki)){
             /*   alert(str.match(Seiki)+"\n\nメールアドレスの形式は正しいです"); */
                return true;
            }else{
                alert(lang.invalid_email);
                return false;
            }
        }else{
            /* 何も入力されていない場合はアラート表示 */
            alert(lang.input_email);
            return false;
        }
    }
 

  

