// Inspired by http://www.shauninman.com/assets/examples/styling-file-inputs/

(function upload() {

function beautifyUpload() {
	$('label.file input').each(function beautify() {
		var elem = this;
		elem.parentNode.file = elem;
		elem.parentNode.onmousemove = function uploadOnMouseMove(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 originx = 0, originy = 0;
			var elem = this;
			if (elem.offsetParent) {
				originx = elem.offsetLeft;
				originy = elem.offsetTop;
				while ((elem = elem.offsetParent)) {
					originx += elem.offsetLeft;
					originy += elem.offsetTop;
				}
			}

			var x = e.pageX - originx;
			var y = e.pageY - originy;
			var w = this.file.offsetWidth;
			var h = this.file.offsetHeight;

			this.file.style.top = y - (h / 2)  + 'px';
			this.file.style.left = x - (w - 30) + 'px';
		};
	});
}

var supported = (document.getElementsByTagName && !window.opera);
if (supported) {
	$(document).bind('ready', beautifyUpload);
	$('html').addClass('upload_supported');
}

})();
