var fileId         = 1;
var attachedFiles  = new Array();
var uploadingFiles = new Array();
var errorFiles     = new Array();

function attachFile()
{
	var container    = $('attached_files');
	var attachedFile = $('file' + fileId);
	var fileInput    = attachedFile.select('input[type=file]').first();
	var fileName     = attachedFile.select('.file_name').first();
	var fileNameText = fileInput.value.replace(/.*\\/,'');
	
	if(attachedFiles.indexOf(fileNameText) != -1 || uploadingFiles.indexOf(fileNameText) != -1 || errorFiles.indexOf(fileNameText) != -1)
	{
		fileInput.form.reset();
		showMessageBox(ERROR, FILE_IS_ATTACHED, "error", ['ok']);
		return;
	}
		
	//create new file	
	var re1					  = new RegExp('file' + fileId, "g");
	var re2 				  = new RegExp('iframe' + fileId, "g");
	var newFileId       	  = fileId + 1;	
	var newAttachedFile       = attachedFile.cloneNode(true);
	newAttachedFile.id        = 'file' + newFileId;
	newAttachedFile.innerHTML = newAttachedFile.innerHTML.replace(re1, 'file' + newFileId);
	newAttachedFile.innerHTML = newAttachedFile.innerHTML.replace(re2, 'iframe' + newFileId);
	container.insert(newAttachedFile);
	newAttachedFile.select('input[type=file]').first().form.reset();
	
	//show attached file
	$('attached_files_title').show();
	fileName.innerHTML = fileNameText;
	checkFileType(fileId);
	attachedFile.removeClassName('new');
			
	//upload file and observe upload result
	fileInput.form.submit();
	fileAttached(fileId);
	fileId = newFileId;
	uploadingFiles[uploadingFiles.size()] = fileNameText;
	$('contact_submit').disable();
}

function checkFileType(id)
{
	var attachedFile     = $('file' + id);
	var attachedFileName = attachedFile.select('.file_name').first();
	var attachedFileIcon = attachedFile.select('.file_icon').first();
	var fileExt          = attachedFileName.innerHTML.replace(/.*\./,"").toLowerCase();
	attachedFileIcon.addClassName(fileExt);	
}

function deleteAttachedFile(fileId)
{
	var attachedFile     = $(fileId);
	var attachedFileName = attachedFile.select('.file_name').first();
	var buttons = [['yes', 'javascript: deleteAttachedFileConfirmed("' + fileId + '");messageBox.close();'], 'no'];
		
	showMessageBox(NOTICE, DELETE_ATTACHMENT + " <strong>" + attachedFileName.innerHTML + "</strong>?", "notice", buttons)
}

function deleteAttachedFileConfirmed(fileId)
{
	var attachedFile         = $(fileId);
	var attachedFileNameText = attachedFile.select('.file_name').first().innerHTML;
	
	new Ajax.Request('delete-attachment.html',{
									  method:'get',
									  parameters: { id: fileId , file: attachedFileNameText, token: $('token').value},
									  onSuccess:
									  	function(transport) 
									  	{
										  	var data = transport.responseText.evalJSON();
											var attachedFile = $(data.id);
											var fileNameText = attachedFile.select(".file_name").first().innerHTML;
											attachedFiles    = attachedFiles.without(fileNameText);
											errorFiles       = errorFiles.without(fileNameText);
											attachedFile.remove();
										
											if(attachedFiles.size() == 0)
											{
												$('attached_files_title').hide();
											}	
											
											//refresh input file position...stupid IE 6 hack
											var newAttachedFileInput = $$("#attached_files .attached_file:last-child .file_input").first();
											var bottomPosition = newAttachedFileInput.style.bottom;
											newAttachedFileInput.style.bottom = "0px";
											newAttachedFileInput.style.bottom = bottomPosition;

									  	}
									  });
	
	
	
}

function fileAttached(id)
{
	var iframe  = $('iframe' + id);
	var content = null;
	
	if(iframe.contentWindow)
	{
		content = iframe.contentWindow.document.body.innerHTML;
	}
				
	if(content != null && !content.blank())
	{
		var data          = content.evalJSON();
		var attachedFile  = $('file' + id);
		var fileStatus    = attachedFile.select(".file_status").first();
		var fileDelete    = attachedFile.select(".file_delete").first();
		var fileUploading = attachedFile.select(".file_uploading").first();
		var fileSize      = attachedFile.select(".file_size").first();
		var fileNameText  = attachedFile.select(".file_name").first().innerHTML;
		
		fileStatus.addClassName(data.scanResult);
		fileStatus.innerHTML = data.scanMessage;
		if(data.fileSize)
		{
			fileSize.addClassName(data.fileSizeLimitResult);
			fileSize.innerHTML = data.fileSize;
		}
		fileUploading.hide();
		fileStatus.show();
		fileDelete.show();
		
		if(data.scanResult == "ok")
		{
			attachedFiles[attachedFiles.size()] = fileNameText;
		}
		else
		{
			errorFiles[attachedFiles.size()] = fileNameText;
		}
		
		uploadingFiles = uploadingFiles.without(fileNameText);
		if(uploadingFiles.size() == 0)
		{
			$('contact_submit').enable();
		}
		
	}
	else
	{
		setTimeout("fileAttached('" + id + "')", 500);		
	}
}

function sendContactForm()
{
	$('files_count').value = attachedFiles.size();
	$('contact_form').submit();
}

function fileInputOver()
{
	mouseOver($('attach_file'));
}

function fileInputOut()
{
	mouseOut($('attach_file'));
}