function getSimpleValue(tree, parent) {
	var value = getValues(tree, parent);
	return value.length != 0 ? value[0] : "";
}

function getValues(tree, parent) {
	var rst = new Array(), recRst;
	var cnt, child;
	var tags;

	if	(tree == "") {
		// 値を返す
		var value = parent.textContent != undefined ? parent.textContent : (parent.firstChild ? parent.firstChild.nodeValue : "");
		rst.push(value);
		return rst;
	}

	var split = tree.split("/");

	for	(cnt = 0; cnt < split.length; cnt++) {
		tags = parent.getElementsByTagName(split[cnt]);

		if	(tags.length > 0) {
			split.shift();
			tree = split.join("/");

			for	(child = 0; child < tags.length; child++) {
				recRst = getValues(tree, tags[child]);

				if	(recRst.length != 0) {
					// 連結
					rst = rst.concat(recRst);
				}
			}
		}
	}

	return rst;
}

function getSearchValues(tree, keywords, node) {
	for	(var cnt = 0; cnt < keywords.length; cnt++) {
		var rst = getValues(tree + "/" + keywords[cnt], node);

		if	(rst.length != 0) {
			return rst;
		}
	}

	return new Array(0);
}

function getNode(tree, parent) {
	var rst = new Array();

	if	(tree == "") {
		rst.push(parent);
		return rst;
	}

	var split = tree.split("/");
	var childs = parent.childNodes;
	var cnt;
	var current = split[0];

	// 次に渡すツリー
	split.shift();
	var passTree = split.join("/");

	for	(cnt = 0; cnt < childs.length; cnt++) {
		if	(childs[cnt].tagName == current) {
			var findNode = getNode(passTree, childs[cnt]);
			if	(findNode.length != 0) {
				rst = rst.concat(findNode);
			}
		}
	}

	return rst;
}

function getAttributes(node) {
	var rst = new Array();
	var attr = node.attributes;
	var cnt;

	for	(cnt = 0; cnt < attr.length; cnt++) {
		rst["-"+attr[cnt].name] = attr[cnt].value;
	}

	return rst;
}
