var counter = numberFiles = upload_limit = 0;
var allowed_types = new Array("jpeg", "jpg", "png", "gif", "bmp");
var upload_limit = 5;//The number of allowed files, 0 for unlimited

function addFile(obj){
	var valid = false;
	var filename = eval("document.getElementById(\"photo_" + counter + "\").value");
	var orig_name = filename;
	filename = filename.split("").reverse().join("");
	var ext = filename.substr(0, filename.indexOf("."));
	ext = ext.split("").reverse().join("").toLowerCase();

	for(x = 0; x < allowed_types.length; x++){
		if(allowed_types[x].toLowerCase() == ext){
			valid = true;
			break;
		}
	}

	//var caption = eval("obj.caption_" + counter + ".value");
	
	if(valid){

		//eval("obj.file_" + counter + ".display") = 'none';
		
		eval("document.getElementById(\"file_" + counter + "\").style.display = 'none'");
		
		counter++;	
		numberFiles++;
		
		var newDiv = document.createElement("div");
		newDiv.id = "file_" + counter;
		
		var newOl = document.createElement('ol');	
		
		
		var li = document.createElement('li');
		var fileLabel = document.createElement('label');
		fileLabel.appendChild(document.createTextNode('File: '));
		fileLabel.for = 'photo_' + counter;
		li.appendChild(fileLabel);
		var newFile = document.createElement("input");
		newFile.type = "file";
		newFile.name = "photo_" + counter;
		newFile.id = "photo_" + counter;
		li.appendChild(newFile);
		//newFile.onchange = function(){addFile(this);};
		newOl.appendChild(li);
/*		
		var li = document.createElement('li');
		var captionLabel = document.createElement('label');
		captionLabel.for = 'caption_' + counter;
		captionLabel.appendChild(document.createTextNode('Caption: '));
		li.appendChild(captionLabel);
		var newCaption = document.createElement("input");
		newCaption.type = "text";
		newCaption.name = "caption_" + counter;
		newCaption.id = "caption_" + counter;
		li.appendChild(newCaption);
		newOl.appendChild(li);

		
		var li = document.createElement('li');
		var activeLabel = document.createElement('label');
		activeLabel.for = 'active_' + counter;
		activeLabel.appendChild(document.createTextNode('Display Image: '));
		li.appendChild(activeLabel);		
		var newActive = document.createElement("input");
		newActive.type = "checkbox";
		newActive.name = "active_" + counter;
		newActive.id = "active_" + counter;
		newActive.value = "1";
		li.appendChild(newActive);
		newOl.appendChild(li);
*/

		if(numberFiles >= upload_limit && upload_limit > 0){
			document.getElementById("add_file").style.display = 'none';
			document.getElementById("filecontainer").style.display = 'none';
			/*
			newFile.disabled = true;
			newFile.value = '';
			newCaption.disabled = true;
			newCaption.value = '';
			*/
			document.getElementById("maxupload").style.display = 'block';
			document.getElementById("maxupload").innerHTML = '			<span class="error">You have reached your upload limit of ' + upload_limit + ' images, please save your current photos and upload again if necessary.</span>';
			

		} else {
		
		newDiv.appendChild(newOl);
		document.getElementById("filecontainer").appendChild(newDiv);
		
		}
		/*
		var newFileDiv = eval("document.getElementById(\"file_" + counter + "\")");
		
		newFileDiv.appendChild(newFile);
		newFileDiv.appendChild(newCaption);	
		newFileDiv.appendChild(newActive);		
		*/
		
		document.getElementById("filelist").innerHTML += "<div id='delete_" + counter + "'>" + orig_name + " - <a href=\"#\" onclick=\"removeFile(\'" + counter + "','" + upload_limit + "'); return;\";>Remove</a></div>";
		document.getElementById("filecount").innerHTML = (upload_limit > 0) ? numberFiles + " / " + upload_limit : numberFiles + " / *";
		
	}else{
	
		var types = "";
		for(x = 0; x < allowed_types.length; x++){
		  types += allowed_types[x] + " ";
		}
		alert("Invalid file type, the allowed types are:\n" + types);
		return;
		var newFile = document.createElement("input");
		newFile.type = "file";
		newFile.onchange = function(){addFile(this);};
		obj.parentNode.appendChild(newFile);
		obj.parentNode.removeChild(obj);
	}
}

function removeFile(id, upload_limit){
	upload_limit = upload_limit;
	var obj = document.getElementById("file_" + (id-1));
	//document.getElementById("filecontainer").removeChild(obj);
	//alert(obj);

	document.getElementById("delete_" + id).parentNode.removeChild(document.getElementById("delete_" + id));
	numberFiles--;
	
	if(numberFiles < upload_limit && upload_limit > 0){
	
		document.getElementById("add_file").style.display = 'block';
		document.getElementById("maxupload").style.display = 'none';		
		
		filecont = document.getElementById("filecontainer"); 
		
		while( filecont.hasChildNodes() ) {
		
			filecont.removeChild(filecont.childNodes.item(0));
		
		}
		
		filecont.style.display = 'block';
		
		var newDiv = document.createElement("div");
		newDiv.id = "file_" + counter;
		
		var newOl = document.createElement('ol');	
		
		
		var li = document.createElement('li');
		var fileLabel = document.createElement('label');
		fileLabel.appendChild(document.createTextNode('File: '));
		fileLabel.for = 'photo_' + counter;
		li.appendChild(fileLabel);
		var newFile = document.createElement("input");
		newFile.type = "file";
		newFile.name = "photo_" + counter;
		newFile.id = "photo_" + counter;
		li.appendChild(newFile);
		//newFile.onchange = function(){addFile(this);};
		newOl.appendChild(li);
	/*	
		var li = document.createElement('li');
		var captionLabel = document.createElement('label');
		captionLabel.for = 'caption_' + counter;
		captionLabel.appendChild(document.createTextNode('Caption: '));
		li.appendChild(captionLabel);
		var newCaption = document.createElement("input");
		newCaption.type = "text";
		newCaption.name = "caption_" + counter;
		newCaption.id = "caption_" + counter;
		li.appendChild(newCaption);
		newOl.appendChild(li);

		newDiv.appendChild(newOl);
		document.getElementById("filecontainer").appendChild(newDiv);
*/
	}	
	
	/*
	var inputs = document.getElementById(container_id).getElementsByTagName("input");
	for(x = 0; x < inputs.length; x++){
		inputs[x].disabled = false;
	}
	*/
	document.getElementById("filecount").innerHTML = (upload_limit > 0) ? numberFiles + " / " + upload_limit : numberFiles + " / *";;
}
function clearList(){d
	counter = numberFiles = 0;
	document.getElementById(container_id).innerHTML = "<input type='file' onchange='addFile(this);'>";
	document.getElementById(list_id).innerHTML = "Files: <span id='filecount'></span>";
	document.getElementById("filecount").innerHTML = (upload_limit > 0) ? numberFiles + " / " + upload_limit : numberFiles + " / *";
}
function prepareUpload(allowed_types, upload_limit, list_id, container_id){
	list_id = list_id;
	container_id = container_id;
	allowed_types = allowed_types;
	upload_limit = upload_limit;

	document.getElementById(list_id).innerHTML = "Files: <span id=\"filecount\"></span>";
	
	document.getElementById(container_id).innerHTML = '<div id="file_0"><ol>\n\t<li>\n\t<label>File:&nbsp;<input name="photo_0" id="photo_0" type="file" /></label>\n</li>\n</ol></div>';
	
	document.getElementById("filecount").innerHTML = (upload_limit > 0) ? numberFiles + " / " + upload_limit : numberFiles + " / *";
}

function begin() {
	prepareUpload(allowed_types, upload_limit, "filelist", "filecontainer");
}


