var at = 0;

function addFile(x)
{
	var y = fixWrap(x.value);

	if (y.indexOf("\\") != -1)
	{
		y = y.substring(y.lastIndexOf("\\") + 1);
	}

	document.getElementById(x.id + 'path').innerHTML = y;
}

function removeFile(x)
{
	var id = x.id.replace('clear', '');

	document.getElementById(id + 'path').innerHTML = 'No file selected.';
	document.getElementById(id + 'button').removeChild(document.getElementById(id));
	
	makeBox(id);
}

function makeBox(id)
{
	var newFilebox = document.createElement('input');
	newFilebox.type = 'file';
	newFilebox.className = 'file-box';
	newFilebox.name = 'f[]';
	newFilebox.id = id;
	newFilebox.tabindex = 0;
	newFilebox.onchange = function() { addFile(newFilebox); };
	
	if (navigator.appVersion.indexOf('MSIE') !=- 1)
	{
		newFilebox.style.position = 'absolute';
	}
	
	initFilebox(newFilebox);
	document.getElementById(id + 'button').appendChild(newFilebox);
}

function fixWrap(s)
{
	while (s.indexOf(' ') != -1)
	{
		s = s.replace(' ', '&nbsp;');
	}

	return s;
}

function initFilebox(element)
{
	var elem = element;
	
	elem.style.opacity = '0';
	elem.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=0)';
	elem.style.MozOpacity = '0';

	document.getElementById(elem.id + 'button').onmousemove = function(e)
	{
		if (typeof e == 'undefined') e = window.event;

		if (typeof e.pageY == 'undefined' && typeof e.clientX == 'number' && document.documentElement)
		{
			e.pageX = e.clientX + document.documentElement.scrollLeft;
			e.pageY = e.clientY + document.documentElement.scrollTop;
		}

		var btnLeft = document.getElementById(elem.id + 'button').offsetLeft;
		
		elem.style.left = e.pageX - (btnLeft + 200) + 'px';
	}
}

function initFileboxes()
{
	var inputs = document.getElementsByTagName('input');

	for (var i = 0; i < inputs.length; i++)
	{
		var input = inputs[i];

		if (input.type == 'file' && input.className == 'file-box')
		{
			initFilebox(input);
		}
	}
}

window.onload = initFileboxes;