var XmlTools={
	readAttribute:function(element,name){
		if(!element)return "";
		 if (Prototype.Browser.IE) {
			var t = Element._attributeTranslations.read;
		  if (t.values[name]) return t.values[name](element, name);
		  if (t.names[name]) name = t.names[name];
		  if (name.include(':')) {
			return (!element.attributes || !element.attributes[name]) ? null :
			 element.attributes[name].value;
		  }
		}
		return element.getAttribute(name);
	}
	,
	readText:function(element){
	    if(!element)return "";
		if(element.childNodes.length>0){
		    var result=element.nodeValue?element.nodeValue:"";
		    for(var i=0;i<element.childNodes.length;i++){
		        result+=this.readText(element.childNodes[i]);
		    }
		    
			return result;
		}else{
		    return element.nodeValue?element.nodeValue:"";
		}
	},
	
	
	readTextByElement:function(element,name){
	    var elements=element.getElementsByTagName(name);
	    return this.readText(elements[0]);
	},
	
	readTextByLang:function(element,name,lang){
	    var e=this.getElementByAttribute(element,name,"lang",lang);
	    if(e){
	        return this.readText(e);
	    }else return "";
	},
	
	getElementByAttribute:function(element,name,attrName,attrValue){
	    return this.getElementsByAttribute(element,name,attrName,attrValue)[0];
	},
	
	getElementsByAttribute:function(element,name,attrName,attrValue){
	    var elements=element.getElementsByTagName(name);
	    
	    //alert(name);
	    var result=[];
	    for(var i=0;i<elements.length;i++){
	        var e=elements[i];
	        
	        var v=this.readAttribute(e,attrName);
	        if(v==attrValue)result[result.length]=e;
	    }
	    return result;
	}
};