function check_necessary(doc){var field=new Array();var number_error=new Array();var mailaddr_error=new Array();var elements=doc.getElementsByTagName("input");for(i=0;i<elements.length;++i){var elem=elements[i];var text=elem.getAttribute("gt:necessary");if(!text){continue}text="("+text+")";var attr=eval(text);var str=elem.value;str=str.trim();if(attr&&attr.necessary==1&&attr.type=="file"){var f_name=elem.name;var del_field=doc.getElementById("file_delete["+f_name+"]");if(del_field){if(del_field.checked){if(str.length==0){field[field.length]=attr.name}}}else{if(str.length==0){field[field.length]=attr.name}}}else{if(attr&&attr.necessary==1){if(str.length==0){field[field.length]=attr.name}if(attr.type=="number"){if(isNaN(str)){number_error[number_error.length]=attr.name}}else{if(attr.type=="email"){if(!check_mailaddress(elem.id)){mailaddr_error[mailaddr_error.length]=attr.name}}}}else{if(attr&&attr.necessary==0&&attr.type=="number"){if(isNaN(str)){number_error[number_error.length]=attr.name}}}}}var fields=__check_field(doc.getElementsByTagName("textarea"));if(fields.length>0){field=field.concat(fields)}fields=__check_field(doc.getElementsByTagName("file"));if(fields.length>0){field=field.concat(fields)}msg="";if(field.length>0){msg+=gt_er_notinput;for(i=0;i<field.length;++i){msg+="　『"+field[i]+"』\r\n"}}if(number_error.length>0){msg+=gt_er_failednum;for(i=0;i<number_error.length;++i){msg+="　『"+number_error[i]+"』\r\n"}}if(mailaddr_error.length>0){msg+=gt_er_failedaddr;for(i=0;i<mailaddr_error.length;++i){msg+="　『"+mailaddr_error[i]+"』\r\n"}}if(msg.length>0){alert(msg);return false}return true}function check_mailaddress(b){var a=document.getElementById(b).value;if(!a){return false}a=a.trim();if(a.match(/^[\w!#\$%&\'\*\+\/=\?\^_`{\|}~-]+[\w!#\$%&\'\*\+\/=\?\^_`{\|}~\.-]+@[\w\.-]+\.\w{2,}$/)){return true}return false}function __check_field(elements){var fields=new Array();for(i=0;i<elements.length;++i){var elem=elements[i];var text=elem.getAttribute("gt:necessary");if(!text){continue}text="("+text+")";var attr=eval(text);if(attr&&attr.necessary==1){var str=elem.value;str=str.trim();if(str.length==0){fields[fields.length]=attr.name}}}return fields}String.prototype.trim=function(){return this.replace(/^(\s|\r|\n)+|(\s|\r|\n)+$/g,"")};
