function arr(iterable) {
  if (!iterable) return [];

  if ('toArray' in Object(iterable)) return iterable.toArray();

  var length = iterable.length || 0, results = new Array(length);
  while (length--) results[length] = iterable[length];

  return results;
}



function getDOMChildElements(element, tagName) {
	
	var result = new Array();
	var elements = arr(element.childNodes);
	
	for(i=0; i<elements.length; i++){
		if(elements[i].nodeType == 1 && (tagName == undefined || elements[i].tagName == tagName)){
			result.length = result.length + 1;
			result[result.length - 1] = elements[i];
		}
	}

	return result;
}



function getDOMChildText(element, tagName) {
	var elements = arr(element.childNodes);
	var tagNode;
	for(i=0; i<elements.length; i++){
		if(elements[i].nodeType == 1 && (tagName == undefined || elements[i].tagName == tagName))
			tagNode = elements[i];
	}
	
	if (tagNode == undefined)
		return undefined;

	var node = tagNode.firstChild;

	return node == undefined ? '' : node.nodeValue;
}

function trimString(str) {
	if (str) {
		return str.replace(/^\s*/, "").replace(/\s*$/, "");
	}
	return str;
}

