
function hasAttribute(element, name){
	element = typeof(element) == 'string' ? document.getElementById(element) : element;
	if (!element) {
		return false;
	}
	if (typeof(element.hasAttribute) == 'function') {
		return element.hasAttribute(name);
	}
	else {
		return (typeof(element.attributes[name]) != 'undefined') ? true : false;
	}
}
function readAttribute(element, name){
	element = typeof(element) == 'string' ? document.getElementById(element) : element;
	if (!element) {
		return false;
	}
	if (typeof(element.getAttribute) == 'function') {
		return element.getAttribute(name);
	}
	else {
		return (typeof(element.attributes[name]) != 'undefined') ? element.attributes[name].value : false;
	}
}

function itext(inp,onoff){
	var cn,i,cname,crep,status=typeof(onoff)=='undefined'?true:onoff;
	cn=inp;
	cname=status ? /^(.*)(\s*)(itextcont)(\s+\w+|)$/ : /(.*)(\s*)((itextcont)[f]{1})(\s*)(.*)/;
	crep=status ? "$1$2$3f$4":"$1$2$4$5$6";
	while (null!=(cn=cn.nextSibling)){
		if (cn.nodeType==1 && cn.className.match(cname)){
			cn.className=cn.className.replace(cname,crep);
		}
	}
	cn=inp;
	i=0;
	while ((cn=cn.parentNode)!=null && i++<2) {
		if (cn.nodeType==1 && cn.className.match(cname)){
			cn.className=cn.className.replace(cname,crep);
		}
	}
	if (hasAttribute(inp,'rel')){
		var rel=readAttribute(inp,'rel');
		if (status){
			if (inp.value==rel){
				inp.value='';
			}
		}else{
			if (inp.value==''){
				inp.value=rel;
			}
		}
	}
}
