function innertext(obj){
	if(obj.innerText)return obj.innerText;
	if(obj.nodeType==3)return obj.nodeValue;
	var s='';
	if(obj.childNodes){
		for(var i=0;i<obj.childNodes.length;i++) s+=this.innertext(obj.childNodes[i]);
	}
	return s;
}

function prevbytag(obj,tagname){
	if(!obj)return;
	tagname=tagname.toUpperCase();
	for(var o=obj.previousSibling;o;o=o.previousSibling){
		if(o.tagName && o.tagName.toUpperCase()==tagname)return o;
	}
}

function ancesbytag(obj,tagname){
	if(!obj)return;
	var tn=tagname.toUpperCase();
	for(var p=obj.parentNode;p;p=p.parentNode){
		if(p.tagName && p.tagName.toUpperCase()==tn)return p;
	}
}

function textbyid(id){
	var e=document.getElementById(id);
	if(e){
		if(e.innerText)return e.innerText;
		if(e.firstChild && e.firstChild.data)return e.firstChild.data;
	}
	return '';
}
