function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

addLoadEvent(addUser);




// kick things off when user clicks button #add-user
function addUser(){
	var addUserButton = document.getElementById('add-user');	
	addUserButton.onclick = addNewUser;	
}

// set fieldcount to be used in incrementing names, below
fieldcount = 1;

function addNewUser() {
	
	// grab panel & fieldset that contain form fields to clone
	var addUserPanel = document.getElementById('add-user-panel');
	var firstUserFieldset = document.getElementById('new-user');
	
	//clone #new-user
	var newUserFieldset = firstUserFieldset.cloneNode(true);	
	
	//append number to each id and for
	newUserFieldset.id = 'new-user' + fieldcount;	
	
	addNumberToAttribute('label',newUserFieldset);
	addNumberToAttribute('input',newUserFieldset);
	// note: if you're cloning other form field types like select, add them here

	
	//insert new cloned, incremented elements into page	
	addUserPanel.appendChild(newUserFieldset);	
	
	fieldcount++; //increment field count for next time
	return false; // block default behavior of submit button
}


function addNumberToAttribute(element, newUserFieldset){ 

		elementList = newUserFieldset.getElementsByTagName(element);
		for (i = 0; i < elementList.length; i++){
			numberAttribute(elementList[i], fieldcount);
		}
}

//add number to each new form field, to keep IDs unique
function numberAttribute(currentNode, numToUse) {
	
		if(currentNode.nodeType == 1 && currentNode.getAttribute('for')){
			var currentFor = currentNode.getAttribute('for');
			currentNode.setAttribute('for', (currentFor + '--' + numToUse)) ;				
		}

		if((currentNode.nodeType == 1) && currentNode.getAttribute('id')){
				var currentId = currentNode.getAttribute('id');
				currentNode.setAttribute('id', (currentId + '--' + numToUse )) ;			
		}	
		
		// note: if you added other form field types like select above, repeat the argument for these
	
}