// 入力チェックJavascript
//
// 数字チェック
//<input name="Q14" type="text" onblur="isNum('Q14');" size="30" maxlength="30" />
//
// 送信時のチェック
//<form enctype="multipart/form-data" method="post" name="phpesp_response" onsubmit="return validform('Q13:名前','Q14:住所');">

function findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function isNum(nm,req) {
  var obj,val;
  obj=findObj(nm);
  val = obj.value
  if(req && val==""){
  	alert("必須項目です。数字を入力してください");
	obj.focus();
	return false;
  }
  if (isNaN(val)){
  	alert("数字を入力してください");
	obj.focus();
	return false;
  }
	return true;
}

function isReq(arg) {
  var obj,val,ret=true;
  nm = arg.split(":")[0];
  obj=findObj(nm);
  var type = obj.type;
  if(obj.length>=2){
  	type = obj[0].type;
  }
  switch (type){
  	case "text":
		val = obj.value;
		if(val==""){
			ret = false;
		}
		break;
	case "radio":
		if(obj.length==undefined){
			ret = true;
			if(!obj.checked){
				ret = false;
			}
		} else {
			var ic;
			ret = false;
			for(ic=0;ic<obj.length;ic+=1){
				if(obj[ic].checked){
					ret = true;
					break;
				}
			}
		}
		break;
	case "checkbox":
		if(obj.length==undefined){
			ret = true;
			if(!obj.checked){
				ret = false;
			}
		} else {
			var ic;
			ret = false;
			for(ic=0;ic<obj.length;ic+=1){
				if(obj[ic].checked){
					ret = true;
					break;
				}
			}
		}
  }
  if (!ret){
  		alert(arg.split(":")[1]+"は必須項目です。");
		if(obj.length>=2){
			obj[0].focus()
		} else {
			obj.focus();
		}
  }
		
  return ret;
}

function validform() {
  var i,val,obj,ret = true,args=validform.arguments;
  for (i=0; i<args.length; i+=1) {
	if(isReq(args[i])==false){
		ret = false;
		break
	}
  }
  return ret;
}
