var upload_range = 1;
var allow_extensions = '(wma|wmv|mpg3|mpg|mpeg|avi|mov|jpg|jpeg|gif|bmp|png|tiff)';

function addUploadSlot(num){
	if(upload_range < 3){
		if(num == upload_range){
			var up = document.getElementById('upload_slots');
			var dv = document.createElement("p");

			dv.innerHTML = '<input type="text" class="desc" name="desc_'+upload_range+'" size="30" />&nbsp;<input type="file" class="upload" name="file_' + upload_range + '" size="48" onChange="addUploadSlot('+(upload_range + 1)+')" >';
			up.appendChild(dv);
			upload_range++;
			up = null;
			dv = null;
		}
	}
}

function checkFileNameFormat(){

	for(var i = 0; i < upload_range; i++){
		if(document.form_upload.elements['file_' + i].value != ""){
			var string = document.form_upload.elements['file_' + i].value;
			var num_of_last_slash = string.lastIndexOf("\\");

			if(num_of_last_slash < 1){ num_of_last_slash = string.lastIndexOf("/"); }

			var file_name = string.slice(num_of_last_slash + 1, string.length);
			var re = /^[\w][\w\.\-\s]{1,48}$/i;

			if(!re.test(file_name)){
				alert("Извините, загрузка файлов с таким именем невозможна. Пожалуйста убедитесь, что имя файла удовлетворяет следующим критериям:\n\n1. Длина не более 48 символов\n2. Формат должен быть таким: имя файла.расширение или просто имя файла\n3. Можно использовать символы: 1-9, a-z, A-Z, _, -, пробел\n");
				return true;
			}
		}
	}
	return false;
}

function checkAllowFileExtensions(){

	for(var i = 0; i < upload_range; i++){
		if(document.form_upload.elements['file_' + i].value != ""){
			if(!document.form_upload.elements['file_' + i].value.match(allow_extensions)){
				var string = document.form_upload.elements['file_' + i].value;
				var num_of_last_slash = string.lastIndexOf("\\");

				if(num_of_last_slash < 1){ num_of_last_slash = string.lastIndexOf("/"); }

				var file_name = string.slice(num_of_last_slash + 1, string.length);
				var file_extension = file_name.slice(file_name.indexOf(".")).toLowerCase();

				alert('Извините, загрузка файлов с расширением "' + file_extension + '" невозможна.');
				return true;
			}
		}
	}
	return false;
}

function checkDuplicateFileCount(){

	var duplicate_flag = false;
	var file_count = 0;
	var duplicate_msg = "Замечены дубликаты среди закачиваемых файлов.\n\n";
	var file_name_array = new Array();

	for(var i = 0; i < upload_range; i++){
		if(document.form_upload.elements['file_' + i].value != ""){
			var string = document.form_upload.elements['file_' + i].value;
			var num_of_last_slash = string.lastIndexOf("\\");

			if(num_of_last_slash < 1){ num_of_last_slash = string.lastIndexOf("/"); }

			var file_name = string.slice(num_of_last_slash + 1, string.length);

			file_name_array[i] = file_name;
		}
	}

	var num_files = file_name_array.length;

	for(var i = 0; i < num_files; i++){
		for(var j = 0; j < num_files; j++){
			if(file_name_array[i] == file_name_array[j] && file_name_array[i] != null){ file_count++; }
		}
		if(file_count > 1){
			duplicate_msg += 'Дубликат "' + file_name_array[i] + '" замечен в ' + (i + 1) + " поле.\n";
			duplicate_flag = true;
		}
		file_count = 0;
	}

	if(duplicate_flag){
		alert(duplicate_msg);
		return true;
	}
	else{ return false; }
}

function cf(){
	if(checkFileNameFormat()){ return false; }
	if(checkAllowFileExtensions()){ return false; }
	if(checkDuplicateFileCount()){ return false; }
	return true;
}
