

function debug(text)
{
	alert(text);
}

function ManageFileChoosers(parent_id, target_id, upload_id, submit_iframe_name)
{
	var parent = E(parent_id);
	var target = E(target_id);
	//alert([parent, target]);

	var file_choosers = new Array();
	var last_form_index = 0;
	var me = this;

	// eventi
	this.data_uploaded = new Event();
	this.file_chosen = new Event();

	AddFileChooser();
	function AddFileChooser(args)
	{
		try
		{
			// ja ir izvēlēts fails, tad izraisam attiecīgo eventu
			if (file_choosers.length > 0)
			{
				me.file_chosen.Fire();
			}

			var form_div = document.createElement("div");
			form_div.style.display = "none";
			parent.appendChild(form_div);
			var foo = new FileChoose(form_div, target, upload_id, submit_iframe_name);
			foo.file_choosen.AddCallback(AddFileChooser);
			foo.form_submited.AddCallback(function(){me.SubmitForm();});
			file_choosers.push(foo);

			if (args) args.sender_parent.style.display = "none";
			form_div.style.display = "block";
		}
		catch (e)
		{
			debug("Error in ManageFileChoosers.AddFileChooser() - " + e.message);
		}
	}

	this.SubmitForm = function()
	{
		try
		{
			// disable last chooser
			file_choosers[file_choosers.length-1].Disable();

			// ja nav izvēlēts neviens fails, tad neturpinam
			if (file_choosers.length == 1) return;


			// submito visas nesubmitotās un neatceltās formas
			for (var i=last_form_index; i<file_choosers.length; i++)
			{
				last_form_index = i;
				//file_choosers[i].form_submited.AddCallback(this.SubmitForm);
				var rez = file_choosers[i].SubmitForm();
				if (rez == true) return;
			}

			// ja esam te, tad visi faili veiksmīgi uplodēti
			//var link = "list.php?i="+upload_id;
			//alert("download link: "+link);

			// izraisam eventu, ak viss bumbās
			this.data_uploaded.Fire();

			/*
			E('file_list_link').innerHTML = "&nbsp;<a style='color: #CC6600;' href='"+link+"'>"+link+"</a>";
			E('email_list').style.display = "block";
			E('email_text_field_frame').style.display = "block";
			*/
		}
		catch (e)
		{
			debug("Error in ManageFileChoosers.SubmitForm() - " + e.message);
		}
	}

	this.DisableForms = function()
	{
		try
		{
			for (var i=0; i<file_choosers.length; i++)
			{
				file_choosers[i].Disable();
			}
		}
		catch (e)
		{
			debug("Error in ManageFileChoosers.DisableForms() - " + e.message);
		}
	}

	this.Cancel = function(uid)
	{
		try
		{
			for (var i=0; i<file_choosers.length; i++)
			{
				//alert([file_choosers[i].GetUID(), uid]);
				if (file_choosers[i].GetUID() == uid)
				{
					//alert(uid);
					file_choosers[i].Cancel();
					//E("i_"+uid).style.display = "none";
					E("frame_"+uid).style.display = "none";
					break;
				}
			}
		}
		catch (e)
		{
			debug("Error in ManageFileChoosers.Cancel() - " + e.message);
		}
	}
}


function FileChoose(parent, target, upload_id, submit_iframe_name)
{
	var me = this;
	var uid = new Date().getTime();
	uid += "" + Math.random();
	uid = "" + Math.random();
	uid = uid.replace(/\./g, "");
	//alert(uid);

	this.GetUID = function(){return uid}

	var a = new AjaxClass2();
	
	this.form_submited = new Event();
	this.file_choosen = new Event();

	var canceled = false; 
	var submited = false;
	
	this.Cancel = function(){canceled = true};

	var file_name


	var form = null;
	try
	{


		var form_html = "<form id='f_"+uid+"' enctype='multipart/form-data' "
		+ "method='post' target='"+submit_iframe_name+"' action='save_file.php?up_id="+upload_id+"' "
		+ "style='height: 20px; margin: 2px;'>"
		+ "<input type='hidden' name='MAX_FILE_SIZE' value='"+(2000*1024*1024)+"'>"
		+ "<input type='hidden' name='APC_UPLOAD_PROGRESS' value='"+uid+"'>"
		+ "<input type='file' name='"+uid+"' id='"+uid+"' size='65' style='width: 500px;'>"
		+ "</form>";
		//alert(form_html);
		//alert(['parent', parent.innerHTML.length]);
		parent.innerHTML += form_html;
		// !!! formu nevar ielikt citā formā. 
		//parent.innerHTML = "<form method=post action=''></form>";
		//alert(parent.innerHTML);
		
		//alert('f_'+uid);
		form = E('f_'+uid);
		//alert(form);
	
	}
	catch (e)
	{
		debug("Error in FileChoose - form in form? - " + e.message);
		return;
	}


	var file = E(uid);
		file.onchange = function()
			{
				file_name = GetFileName(this.value);
				try
				{
					if (this.value != "")
					{
						// target elementā pievienojam jaunu faila ierakstu
						/*var file_path_html = ""
						+ "<table border='0' cellpadding='0' id='i_"+uid+"'><tr style='height: 22px;'><td>"
						+ "<div style='width: 280px; white-space: nowrap; overflow: hidden;'>" + file_name + "</div>"
						+ "</td><td>&nbsp;&nbsp;&nbsp;</td><td width='160'><table cellpadding='0' valign='middle' border='0' ><tr>"
						+ "<td id='progress_cell_"+uid+"' style='background: url(img/bg_progrbar.gif) repeat-x; width: 200px;'>"
						+ "<img id='progress_"+uid+"' src='img/bg_progrbaron.gif' style='height: 11px; width: 0%;'>"
						+ "</td></tr></table></td><td>&nbsp;&nbsp;&nbsp;</td><td>"
						+ "<img id='cancel_"+uid+"' src='img/ic_stop.gif' title='Atcelt' OnClick='manager.Cancel(\""+uid+"\")' "
						+ "style='width: 20px; height: 21px; cursor: pointer;'></td></tr></table>";*/


						var file_path_html = ""
						+ "<div class='resultbox' id='frame_"+uid+"'><p class='inprogr'>" + file_name + "</p>"
						+ "<a href='#' title='Atcelt' id='cancel_"+uid+"' OnClick='js_manager.Cancel(\""+uid+"\")'>"
						+ "<img src='img/ic_stop.gif' alt='' class='act' /></a>"
						+ "<div><img src='img/progr.gif' style='width: 0%;' height='7' alt=''  id='progress_"+uid+"'/>"
						+ "<span><!-- progr.bar mask --></span></div><br clear='all' /></div>";

						target.innerHTML = file_path_html + target.innerHTML;
						//target.innerHTML = file_path_html;
						

						/*E("cancel_"+uid).onclick = function()
							{
								alert('cancel');
								canceled = true;
								E("i_"+uid).style.display = "none";
							}*/

						// slēpšanu veic pēc jaunas formas izveides
						//parent.style.display = "none";
						
						////file_path.innerHTML += ", paplasinajums: " + GetFileExtension(this.value);
						//file_path.style.display = "inline";
						//progress_bar.style.display = "inline";

						// metam eventu, kas fails ir izvēlēts
						me.file_choosen.Fire({sender_parent: parent});
					}
				}
				catch (e)
				{
					debug("Error in FileChoose file.onchange() - " + e.message);
				}
			}


	function CheckProgress()
	{
		try
		{
			var ajax = new AjaxClass2();
			ajax.GetText("check_progress.php?i="+uid+"&a", function(txt)
				{
					//setTimeout(function(){CheckProgress()}, 50); return;
					if (txt == txt*1)
					{
						if (txt < 100)
						{
							setTimeout(function(){CheckProgress()}, 300);
						}
						else
						{
							setTimeout(function(){CheckFile()}, 100);
						}

						// txt var arī būt -1, bet uzliekot tādu stilu būs kļūda
						var proc = Math.max(0, txt);
						E("progress_"+uid).style.width = proc+"%";
					}
					else
					{
						alert(txt);
						me.form_submited.Fire();
					}

				});
		}
		catch (e)
		{
			debug("Error in FileChoose.CheckProgress() - " + e.message);
		}
	}

	function CheckFile()
	{
		try
		{
			a.GetText("check_file.php?i="+uid, function(txt)
				{
					try
					{
						// nočekojam, vai fails ielicies db un izmetam paziņojumu

						//E("progress_cell_"+uid).style.background = "";
						if (txt == "1")
						{
							// pārveidojam ierakstu kā veiksmīgi saglabātu
							/*var foo_text = ""
							+ "<div class='resultbox'><p>" + file_name + "</p>"
							+ "<img src='img/ic_tick.gif' alt='' title='Veiksmīgi saglabāts' class='act'/>"
							+ "<p class='resultmsg'>Veiksmīgi saglabāts</p><br clear='all' /></div>";
							target.innerHTML = foo_text;*/
							
							var foo_text2 = ""
							+ "<p>" + file_name + "</p>"
							+ "<img src='img/ic_tick.gif' alt='' title='Veiksmīgi saglabāts' class='act'/>"
							+ "<p class='resultmsg'>Veiksmīgi saglabāts</p><br clear='all' />";
							E('frame_'+uid).innerHTML = foo_text2;

							/*E("progress_cell_"+uid).innerHTML = "<span style='color: #6b9c02;'><b>Veiksmīgi saglabāts!</b></span>";
							E("progress_cell_"+uid).innerHTML = "<span style='color: #6b9c02;'><b>Veiksmīgi saglabāts!</b></span>";
							E("cancel_"+uid).src = "img/ok.jpg";
							E("cancel_"+uid).title = "";
							E("cancel_"+uid).style.display = "block";
							E("cancel_"+uid).onclick = function(){};
							E("cancel_"+uid).style.cursor = "auto";*/
						}
						else
						{
							// pārveidojam ierakstu kā veiksmīgi saglabātu
							var foo_text = ""
							+ "<div class='resultbox'><p>" + file_name + "</p>"
							+ "<img src='img/ic_tick.gif' alt='' title='Nav pieglabāts' class='act'/>"
							+ "<p class='resultmsg'>Nav pieglabāts</p><br clear='all' /></div>";

							target.innerHTML = foo_text;

							//E("progress_cell_"+uid).innerHTML = "<span style='color: #FF0033;'>Nav pieglabāts</span>";
						}
						me.form_submited.Fire();
					}
					catch (e)
					{
						debug("Error in FileChoose.CheckFile(). AJAX - " + e.message);
					}
				});
		}
		catch (e)
		{
			debug("Error in FileChoose.CheckFile() - " + e.message);
		}
	}

	this.SubmitForm = function()
	{
		try
		{
			if (canceled == false && submited == false && file.value != "")
			{
				//E("cancel_"+uid).style.display = "none";
				E("cancel_"+uid).style.visibility = "hidden";

				submited = true;
				form.submit();
				CheckProgress();
				return true;
			}
			else
			{
				return false;
			}
		}
		catch (e)
		{
			debug("Error in FileChoose.SubmitForm() - " + e.message);
		}
	}

	this.Disable = function()
	{
		try
		{
			E(uid).disabled = true;
		}
		catch (e)
		{
			debug("Error in FileChoose.Disable() - " + e.message);
		}
	}





}


