/*
	$Id: files.js 5085 2008-02-15 03:51:11Z brad $

	This file is part of ayudaCMS
	Copyright 2007: ayuda IT
	http://www.ayuda.com.au

	For licencing details, please see LICENCE.txt in the ayudaCMS directory.
*/

	function addFile(url, parentElement, id, numFiles)
	{
		var args = new Array();
		args['parentElement'] = parentElement;
		args['id'] = id;
		args['numFiles'] = numFiles;

		url += "&parentElement=" + parentElement + "&numFiles=" + numFiles;
		retrieveURL(url, false, showAddFile, args, true);
	}

	
	function showAddFile(args)
	{
		if(document.getElementById(args['parentElement']))
		{
			var parentNode = document.getElementById(args['parentElement']);

			var div = document.createElement("DIV");

			div.id = args['parentElement'] + "_" + args['id'];
			div.className = "fileUploaded clear";

			div.innerHTML = args['response'];

			parentNode.appendChild(div);
		}

		toggleUpload(args['parentElement'], args['numFiles']);
	}


	function showFiles(args)
	{
		if(document.getElementById(args['parentElement']))
		{
			document.getElementById(args['parentElement']).innerHTML = args['response'];
		}
	}


	function deleteFile(baseURL, locationURL, id, parentElement, queryString, numFiles)
	{
		showWaiting(parentElement, baseURL, "Deleting");

		url = baseURL + locationURL + "&id=" + id;

		if(queryString != "")
		{
			url = url + queryString;
		}

		var args = new Array();
		args['parentElement'] = parentElement;
		args['id'] = parentElement + "_" + id;
		args['numFiles'] = numFiles;
		retrieveURL(url, false, showDelete, args, true);
	}


	function showDelete(args)
	{
		if(document.getElementById(args['id']))
		{
			document.getElementById(args['id']).parentNode.removeChild(document.getElementById(args['id']));
			removeWaiting(args['parentElement']);
			toggleUpload(args['parentElement'], args['numFiles']);
		} else {
			removeWaiting(args['parentElement']);
		}
	}


	function toggleUpload(parentElement, numFiles)
	{
		var upload = document.getElementById(parentElement + "_upload");
		var parentNode = document.getElementById(parentElement);

		if(upload && parentNode && numFiles > 0)
		{
			var count = 0;
			for(i = 0; i < parentNode.childNodes.length; i++)
			{
				if(parentNode.childNodes[i].nodeName == "DIV")
				{
					count++;
				}
				if(count >= numFiles)
				{
					break;
				}
			}

			if(count >= numFiles)
			{
				upload.style.display = "none";
			}
			else
			{
				upload.style.display = "block";
			}
		}
	}


	function promoteFile(baseURL, locationURL, id, parentElement, queryString)
	{
		showWaiting(parentElement, baseURL, "Moving");

		url = baseURL + locationURL + "&parentElement=" + parentElement + "&id=" + id;
		
		if(queryString != "")
		{
			url = url + queryString;
		}

		var args = new Array();
		args['parentElement'] = parentElement;
		args['id'] = parentElement + "_" + id;

		retrieveURL(url, false, showPromoteFile, args, true);
	}

	
	function showPromoteFile(args)
	{
		var parent = document.getElementById(args['parentElement']);
		if(parent)
		{
			var previous = null;

			for(var i = 0; i < parent.childNodes.length; i++)
			{
				if(parent.childNodes[i].nodeName == "DIV")
				{
					if(parent.childNodes[i].id == args['id'])
					{
						var element = parent.childNodes[i];

						if(previous)
						{
							var placeHolder = document.createElement("DIV");

							placeHolder.className = "fileUploaded clear";
							placeHolder.id = element.id;
							placeHolder.innerHTML = element.innerHTML.replace("%7E", "~");
						
							parent.insertBefore(placeHolder, previous);
							parent.removeChild(element);
						}
						break;
					}
					previous = parent.childNodes[i];
				}
			}
		}

		removeWaiting(args['parentElement']);
	}


	function demoteFile(baseURL, locationURL, id, parentElement, queryString)
	{
		showWaiting(parentElement, baseURL, "Moving");

		url = baseURL + locationURL + "&parentElement=" + parentElement + "&id=" + id;
		
		if(queryString != "")
		{
			url = url + queryString;
		}

		var args = new Array();
		args['parentElement'] = parentElement;
		args['id'] = parentElement + "_" + id;

		retrieveURL(url, false, showDemoteFile, args, true);
	}


	function showDemoteFile(args)
	{
		var parent = document.getElementById(args['parentElement']);
		if(parent)
		{
			var previous = null;

			for(var i = 0; i < parent.childNodes.length; i++)
			{
				var element = parent.childNodes[i];

				if(previous && (parent.childNodes[i].nodeName == "DIV"))
				{
					var placeHolder = document.createElement("DIV");

					placeHolder.className = "fileUploaded clear";
					placeHolder.id = element.id;
					placeHolder.innerHTML = element.innerHTML.replace("%7E", "~");
				
					parent.insertBefore(placeHolder, previous);
					parent.removeChild(element);
					break;
				}
					
				if(parent.childNodes[i].id == args['id'])
				{
					previous = parent.childNodes[i];
				}
			}
		}

		removeWaiting(args['parentElement']);
	}


	function showWaiting(parentElement, baseURL, message)
	{
		var message = message + "<br /><br /><img width=\"32\" src=\"" + baseURL + "../ayudacms/core/images/common/loading.gif\" />";

		var messageElement = document.createElement("DIV");

		messageElement.style.textAlign = "center";
		messageElement.style.opacity = "1.0";
		messageElement.style.position = "relative";
		messageElement.style.border = "1px solid #eeeeee";
		messageElement.style.paddingTop = "20px";
		messageElement.style.paddingBottom = "20px";
		messageElement.style.backgroundColor = "#ffffff";
		messageElement.style.position = "absolute";
		messageElement.style.top = "20px";
		messageElement.style.left = "50%";
		messageElement.style.marginLeft = "-150px;";
		messageElement.style.width = "300px;";
		messageElement.style.fontSize = "12px;";
		messageElement.id = "file_overlay_message";
		messageElement.innerHTML = message;
		
		var overlay = document.createElement("DIV");

		overlay.style.backgroundColor="black";
		overlay.style.opacity = "0.2";
		overlay.style.paddingTop = "20px";
		overlay.style.position = "absolute";
		overlay.style.top = "0px";
		overlay.style.width = "100%";
		overlay.style.height = "100%";
		overlay.id = "file_overlay";

		document.getElementById(parentElement).style.position="relative";
		document.getElementById(parentElement).appendChild(overlay);
		document.getElementById(parentElement).appendChild(messageElement);
	}

	
	function removeWaiting(parentElement)
	{
		var overlay = document.getElementById("file_overlay");
		var message = document.getElementById("file_overlay_message");
		document.getElementById(parentElement).removeChild(overlay);
		document.getElementById(parentElement).removeChild(message);
	}

