/**
 * 繝輔か繝シ繝�譛€驕ゥ蛹褒S
 * 2015.04 螻ア蟠察assiette.co.jp
 *
 */
var fo = {'ei':'getElementById','en':'getElementsByName'};
fo.d = document;
fo.required = {};
fo.injection = {};

fo.inject = function(n,o,t) {
	// 縺薙%縺�縺阻Query縺ァ繝サ繝サ繝サ
	var f,code,
		p = fo.d[fo.en](n)[0].type;
	if (p=='radio') {
		code = "f = ($('[name="+n+"]:checked').val() " + o + " '" + t + "');";
	}
	else if (p=='checkbox') {
		code = "var node=document.getElementsByName('"+n+"'), c=0;for(var i=0; i<node.length; i++) {c += (node[i].checked && node[i].value "+o+" '"+t+"') ? 1 : 0;}f = (c>0);";

	}
	else {
		code = "f = ($('[name="+n+"]').val() " + o + " '" + t + "');";
	}
	eval(code);
	return f;

/**
	var node=document.getElementsByName('%n%'), c=0;
	for(var i=0; i<node.length; i++) {
		c += (node[i].checked && node[i].value %o% '%t%' ? 1 : 0;
	}
	f = (c>0);
*/

};
fo.check = function(f) {
	var result = {}, returnFlg = true, e = fo.d[fo.ei]('error_disp');
	if (e) e.style.display = 'none';
	for (var name in fo.required) {
		var eo = fo.d[fo.ei]('err_'+name),
			t = fo.d[fo.en](name);
		if (eo) {
			eo.innerHTML = '';
		}
		if (!t) {
			continue;
		}
		var filled = false;

		// 譚。莉カ莉倥″蠢���
		if (fo.injection[name] && fo.injection[name].length > 0) {
			if (!fo.inject(fo.injection[name][0], fo.injection[name][1], fo.injection[name][2])) {
				// 蠢��医§繧�↑縺��縺ァ謌サ繧翫∪縺�
				continue;
			}
		}

		for (var n=0; n<t.length; n++) {
			var c = t[n];
			if (c.tagName == 'INPUT') {
				if (c.type == 'text') {
					if (c.value.length > 0) {
						filled = true; break;
					}
				}
				else if (c.type == 'checkbox') {
					if (c.checked) {
						filled = true; break;
					}
				}
				else if (c.type == 'radio') {
					if (c.checked && (c.value && c.value.length>0)) {
						filled = true; break;
					}
				}
			}
			else if (c.tagName == "SELECT") {
				if (c.options[c.selectedIndex].value.length > 0) {
					filled = true; break;
				}
			}
			else if (c.tagName == "TEXTAREA") {
				if (c.value.length > 0) {
					filled = true; break;
				}
			}
		}

		if (!filled) {
			returnFlg &= filled;
			result[name] = fo.required[name];
			if (e) e.style.display = 'inline';
		}
	}

	for(var name in result) {
		var eo = fo.d[fo.ei]('err_' + name);
		if (eo) {
			eo.innerHTML = result[name] + "<br />";
		}
		if (fo.hilights == 'self') {
			var t = fo.d[fo.en](name);
		}
	}

	return returnFlg > 0 ? true : false;
};