function $hook(el, ev, fn) {
	if (el.addEventListener) {
		el.addEventListener(ev, fn, true);
		return true;
	} else if (el.attachEvent) {
		return el.attachEvent('on'+ev, fn);
	}

	return false;
}

function $(el) {
	if (!el) return;

	var el = (typeof(el) == 'object') ? el : document.getElementById(el);

	el.hook = function(ev, fn) {
		$hook(this, ev, fn);
	};

	return el;
}

Window = $(window);

var System = {
	upload: {
		count: 0,
		position: 0,

		add: function(n) {
			if (typeof(n) != 'number' || n <= 0)
				n = 1;

			var boxes = $('boxes');
			for (var i=0; i<n; i++) {
				var form = document.createElement('form');
				form.setAttribute('enctype', 'multipart/form-data');
				form.setAttribute('method', 'post');
				form.setAttribute('action', '?l=upload&ajax');

				$hook(form, 'submit', function() {
				});

				boxes.appendChild(form);

				var input = document.createElement('input');
				input.setAttribute('type', 'file');
				input.setAttribute('name', 'file['+System.upload.count+']');
				input.setAttribute('id', 'file['+System.upload.count+']');
				input.setAttribute('num', System.upload.count);

				$hook(input, 'change', function() {
					if (this.getAttribute('num') == System.upload.count-1)
						System.upload.add();
				});

				form.appendChild(input);

				System.upload.count++;
			}
		},

		submit: function() {
		},
	},
};

function $copy(item) {
	var item = $(item);
	item.focus();
	item.select();

	if (typeof(item.createTextRange) != 'undefined')
		item.createTextRange().execCommand('copy');
}

Window.hook('load', function() {
	switch (location.href.match(/l=(\w+)/)[1]) {
		case 'login':
			var user = $('username'), pass = $('password');

			if (user.value == '')
				user.focus();
			else
				pass.focus();
		break;

		case 'signup':
			var user = $('username'), pass = $('password');

			if (user.value == '')
				user.focus();
			else
				pass.focus();
		break;

		case 'settings':
			if (location.href.match(/edit/))
				$('password').focus();
		break;

		case 'upload':
			$('target').hook('load', function(){
				
			});
			System.upload.add();
		break;
	}
});
