var file_num_max = 0;

function file_init() {
	var files = $$('.file_input');
	for(var i=0;i<files.length;i++) {
		files[i].onchange = file_input.bindAsEventListener(this,files[i]);
		file_input(this,files[i]);
	}
	var files_mc_add = $$('.file_multiple_control_add');
	for(var i=0;i<files_mc_add.length;i++) {
		files_mc_add[i].onclick = file_mc_add.bindAsEventListener(this,files_mc_add[i]);
	}
	var files_mc_remove = $$('.file_multiple_control_remove');
	for(var i=0;i<files_mc_remove.length;i++) {
		files_mc_remove[i].onclick = file_mc_remove.bindAsEventListener(this,files_mc_remove[i]);
	}
}

function file_input(e,fi) {
	if(fi.value) {
		$(fi.id+'_file_property').style.display = 'block';
	}
	else {
		$(fi.id+'_file_property').style.display = 'none';
	}
}

function file_remove(url,id) {
	var pars = 'remove=1';

	if(confirm($('file_remove_'+id).getAttribute('title'))) {
		var myAjax = new Ajax.Request(
			url, 
			{
				method: 'post', 
				parameters: pars, 
				onComplete: file_remove_response
			});
	}
}

function file_remove_response(originalRequest) {
	if(file_id = parseInt(originalRequest.responseText)) {
		if($('file_remove_'+file_id)) {
			$('file_remove_'+file_id).parentNode.remove();
		}
	}
	else {
		alert("You couldn't remove this file!");
	}
}

function file_mc_add(e,element) {
	var fe			= element.parentNode.parentNode;
	var fe_clone	= fe.cloneNode(true);
	var fe_new		= fe.parentNode.appendChild(fe_clone);

	//var id_old	= fe_new.childNodes[1].id;
	Element.extend(fe_new);
	var id_olds	= fe_new.getElementsByClassName('file_input');
	var id_old	= id_olds[0].id;
		
	var num		= parseInt(id_old.substr(id_old.indexOf(':')+1));
	var num_max	= Math.max(num,fe_new.getElementsByClassName('form_element_file').length);
	num_max		= Math.max(num_max,file_num_max);
	var num_new	= num_max+1;
	var id_new	= id_old.replace(num,num_new);

	file_num_max = num_new;
	
	//fe_new.childNodes[1].value = "";

	// input
	var fis = fe_new.getElementsByTagName('input');
	for(var i=0;i<fis.length;i++) {
		fis[i].value = "";
		fis[i].id = fis[i].id.replace(id_old,id_new);
	}
	// textarea
	var fts = fe_new.getElementsByTagName('textarea');
	for(var i=0;i<fts.length;i++) {
		fts[i].value = "";
		fts[i].id = fts[i].id.replace(id_old,id_new);
	}
	// label
	var fls = fe_new.getElementsByTagName('label');
	for(var i=0;i<fls.length;i++) {
		fls[i].id = fls[i].id.replace(id_old,id_new);
	}
	// property
	var fps = fe_new.getElementsByClassName('file_property');
	for(var i=0;i<fps.length;i++) {
		fps[i].id = fps[i].id.replace(id_old,id_new);
	}
	// download
	var fds = fe_new.getElementsByClassName('form_element_download');
	for(var i=0;i<fds.length;i++) {
		fds[i].remove();
	}

	file_init();
}

function file_mc_remove(e,element) {
	var fe = element.parentNode.parentNode;
	if(fe.parentNode.getElementsByClassName('form_element_file').length>1) {
		if(fe.getElementsByClassName('form_element_download').length==0) {
			fe.remove();
		}
	}
}

Event.observe(window,'load',file_init,false);
