dojo.require('dojo.validate.*');

function trim(s) {
  return s.replace( /^\s+/g, "" ).replace( /\s+$/g, "" );
}

function getNestedInputs(divNode) {
	return dojo.lang.toArray(divNode.getElementsByTagName('input'));
}

function countChildren(node) {
	var numChildren = 0;
	
	var child = dojo.dom.getFirstChildElement(node);
	if(child != null) {
		numChildren = 1;
		while(child = dojo.dom.getNextSiblingElement(child)) {
			++numChildren;
		}
	}
	
	return numChildren;
}

function setDisplayStyle(node, style) {
  node.style.display = style;
}

function urldecode(s) {
    return unescape(s).replace(/\+/g,' ');
}

function help_toggle(e) {
	if(e.parentNode.className=='help_box_hide') {
		e.parentNode.className='help_box_show';
	}	else { 
		e.parentNode.className='help_box_hide';
	}
}

function showHelp(e) {
		e.parentNode.className='help_box_show';
}

function hideHelp(e) {
		e.parentNode.className='help_box_hide';
}

// Parse a date in format dd-mm-yyyy and return it as a Date object
function parseDate(dateStr) {
  var jsDay = dateStr.substr(0,2);
	var jsMonth = dateStr.substr(3,2) - 1; // NOTE! 
	var jsYear = dateStr.substr(6,4);
	return new Date(jsYear, jsMonth, jsDay);
}


   function relativeSibling(base, idx) {
     if(!dojo.validate.isInteger(idx)) {
       return;
     }
     var node = base;
     if(idx > 0) {
       while(idx-- > 0) {
         node = dojo.dom.nextElement(node);
       }
     } else if(idx < 0) {
       while(idx++ < 0) {
         node = dojo.dom.prevElement(node);
       }
     }

     return node;
   }
 
