function newFileInput(){
	var n = document.createElement ( 'input' );
	var i = 'file' + fileNum++;
	n.type = 'file';
	n.id = i;
	n.name = i;
	n.className = 'input_file';
	n.size = 50;
	n.onchange = function(){
		if(n.value == "" || allowedExtensions.inArray(getExtension(n.value))){
			updateSelectedFiles();		
			this.style.display='none';
			if(countSelectedFiles() < maxFileSelectable){
				fileSelect.appendChild(newFileInput());
			}
		}
		else{
			alert('Filetype \''+getExtension(n.value)+'\' is not allowed.');
		}
	}
	return n;
}

function updateSelectedFiles(){

	selectedFiles.innerHTML = '';

	var c = 0;
	
	for(i = 0; i < fileNum; i++){

		if(objExists('file' + i)){
			
			var f = getObj('file' + i);

			if(f.value != ""){

				var sFile = document.createElement('li');

				if(c%2 == 0){sFile.style.background = '#EFEFEF';}
				else if(c%2 == 1){sFile.style.background = '#FFFFFF';}

sFile.innerHTML =  '<div>';
	sFile.innerHTML += '<img src="/content/images/icon.php?icon=' + getExtension(f.value) + '" style="float: left; margin: 3px 5px 0 3px;" alt="" border="0" />';
	sFile.innerHTML += '<span style="float: right; margin-left: 5px;"><a href="#" onclick="removeFile(\'file'+i+'\'); return false;">' + phrase['remove'] + '</a>&nbsp;</span>';
	sFile.innerHTML += '<span title="' + f.value + '">' + basename(f.value) + '</span>';
sFile.innerHTML += '</div>';

				selectedFiles.appendChild(sFile);
				c++;

			}

		}
	
	}

	if (c == 0) {
		
		fileSelectedStatus.innerHTML = phrase['status_none'];
		
	} else if(c == maxFileSelectable) {
		
		fileSelectedStatus.innerHTML = phrase['status_full'].replace("%1", c);
		
	} else {
		
		fileSelectedStatus.innerHTML = phrase['status_' + (c == 1 ? 'one' : 'more')].replace("%1", c);
		
	}

}

function countSelectedFiles(){
	var c = 0;
	for(i = 0; i < fileNum; i++){
		if(objExists('file' + i)){
			var f = getObj('file' + i);
			if(f.value != ""){
				c++;
			}
		}
	}	
	return c;
}

function fileExists(obj){
	for(i = 0; i < fileNum; i++){
		if(objExists('file' + i)){
			if(obj.value == f.value){
				return true;
			}
		}
	}
	return false;
}


function removeFile(file){

	var maxSelected = false;

	if(countSelectedFiles() == maxFileSelectable){
		maxSelected = true;
	}
	
	if(objExists(file)){
		fileSelect.removeChild(getObj(file));
	}

	updateSelectedFiles();

	if(maxSelected){
		fileSelect.appendChild ( newFileInput ( ) );
	}

}

fileSelect.appendChild ( newFileInput ( ) );