String.prototype.times = function(times) {
	if (!times || times < 0) return "";
	var ret = "";
	for (var i=0; i<times; i++) {
		ret += this;
	}
	return ret;
};

function makeTree(select, nodes, selectedValue, value, name, children, level) {
	value = value || "id";
	name = name || "text";
	children = children || "children";
	level = level || 0;
	var html = "";
	for (var i=0; i<nodes.length; i++) {
		var node = nodes[i];
		var selected = (node[value] == selectedValue) ? 'selected="selected"' : '';
		var isLeaf = node[children].length ? "isLeaf='1'" : "";
		var opt = document.createElement("option");
		opt.value = node[value];
		if (node[children].length == 0) {
			opt.setAttribute("isLeaf", "1");
		}
		if (node[value] == selectedValue) {
			opt.selected = "selected";
		}
		opt.text = "&nbsp;".times(level-1) + (level > 0 ? "┞" : "") + node[name];
		select.options[select.options.length] = opt;
		if (node[children]) {
			makeTree(select, node[children], selectedValue, value, name, children, level+1);
		}
	}
	return html;
}

function appendSelect(selectId, nodesString, selectedValue) {
	if (nodesString) {
		var nodes = eval('(' + nodesString + ')');
		var select = document.getElementById(selectId);
		makeTree(select, nodes, selectedValue);
	}
}

function hasSpecSymbolforInfo(v) {
		return !/^[a-zA-Z0-9０-９\u4E00-\u9FA5“”‘’"" '' ，。、；！（）〔〕%％..%《》:：？\?]*$/.test(v);
		                          
}
