function insertAfter( referenceNode, newNode ){
	referenceNode.parentNode.insertBefore( newNode, referenceNode.nextSibling );
}
function addInit(end) {
	//Specify which form
	var form = document.getElementById('uploadform');
	
	//Get which fields need "add new" functionality
	var needed = document.getElementById('addFields');
	var fields = needed.value.split(":");
	
	//Iterate through fields and create required hidden controls.
	for (var i=1;i<=end;i=i+1) {
		//create [name]Total
		var total = document.createElement('input');
		total.setAttribute('type','hidden');
		total.setAttribute('name',fields[i]+'Total');
		total.setAttribute('id',fields[i]+'Total');
		total.setAttribute('value','1');
		//create [name]Num
		var num = document.createElement('input');
		num.setAttribute('type','hidden');
		num.setAttribute('name',fields[i]+'Num');
		num.setAttribute('id',fields[i]+'Num');
		num.setAttribute('value','1');
		//add to form
		form.insertBefore(total,needed);
		form.insertBefore(num,needed);
	}
}
function addElement(where) {
	//Grab Values
	var ni = document.getElementById(where+'TR1');
	var num = (document.getElementById(where+'Num').value-1)+ 2;
	var numkeep = document.getElementById(where+'Num');
	var total = document.getElementById(where+'Total');
	var update = document.getElementById(where+'Total').value;
	numkeep.value = num; total.value = update+":"+num;
	
	//Create Elements
	var newtr = document.createElement('tr');
	var td1 = document.createElement('td');
	var td2 = document.createElement('td');
	var td3 = document.createElement('td');
	var td3span = document.createElement('span');
	var inFile = document.createElement('input');
	var desc = document.createElement('input');
	var newremove = document.createElement('a');
		
	
	//Set Naming conventions
	var newIdName = where+'TR'+num;
	var inFileName = where+'_file'+num;
	var descName = where+'_desc'+num;
	var removeId = 'remove_input_'+num;
	
	//Set Attributes
	newtr.setAttribute('id',newIdName);
	newtr.setAttribute('name',newIdName);
	
	td1.setAttribute('class',"bodytext"); //td1.setAttribute('width',"107"); td1.setAttribute('height',"15");
	td2.setAttribute('class',"bodytext"); //td2.setAttribute('width',"107");
	td3.setAttribute('class',"bodytext"); //td3.setAttribute('width',"107");
	td3.setAttribute('class',"bodytext");
	
	newremove.setAttribute('id',removeId);
	newremove.setAttribute('href','javascript:removeElement(\''+where+'\',\''+newIdName+'\',\''+num+'\');');

	
	inFile.setAttribute('type','file'); inFile.setAttribute('name',inFileName); inFile.setAttribute('size','20');
	desc.setAttribute('type','text'); desc.setAttribute('name',descName); desc.setAttribute('size','25');
	
	//Define innerHTML
	td1.innerHTML ='';
	td2.innerHTML ='';
	td3.innerHTML ='';
	td3span.innerHTML +='Description:';
	newremove.innerHTML = 'Remove';
	
	//Append Children
	td1.appendChild(newremove);
	td2.appendChild(inFile);
	td3.appendChild(td3span);
	td3span.appendChild(desc);
	newtr.appendChild(td1);
	newtr.appendChild(td2);
	newtr.appendChild(td3);
	insertAfter(ni,newtr);
}
function removeElement(where,what,which) {
	var d = document.getElementById(where+'Input');
	var numi = document.getElementById(where+'Total');
	var val = document.getElementById(where+'Total').value;
	var num= val.replace(":"+which,"");
	numi.value = num;
	var olddiv = document.getElementById(what);
	d.removeChild(olddiv);
}
