var lsSelect = new Class({
	initialize: function(element) {
		var thisElement = $(element);
		thisElement.setStyle('display', 'none');
		var val = thisElement.options[thisElement.options.selectedIndex].text;
		var sel = new Element('div', {'class': 'ls-select'}).set('text', val);
		var drop = new Element('div', {'class': 'ls-select-drop'}).setStyle('display', 'none');
		var ul = new Element('ul');
		for (var c = 0; c < thisElement.options.length; c++ ) {
			var li = new Element('li');
			var lia = new Element('a', {'index': c}).set('text' , thisElement.options[c].text).set('href', '#');
			if (thisElement.options[c].selected) lia.setProperty('class', 'active');
			lia.addEvent('click', function() {
				sel.set('text', this.get('text'));
				thisElement.options.selectedIndex = this.get('index');
				thisElement.fireEvent('change');
				$each(ul.getChildren(), function(el, index) {
					if(el.getFirst().getProperty('class') == 'active') el.getFirst().setProperty('class');
				});
				this.setProperty('class', 'active');
				drop.setStyle('display', 'none');
				return!1;
			});
			li.adopt(lia);
			ul.adopt(li);
		}
		drop.adopt(ul);
		$('body').adopt(drop);
		sel.addEvent('click', function() {
			if(drop.getStyle('display') != 'block')	{
				var c = sel.getCoordinates();
				drop.setStyle('top', (c.bottom + 4) + 'px');
				drop.setStyle('left', (c.left - 5) + 'px');
				drop.setStyle('width', (c.width + 8) + 'px');
				drop.setStyle('display', 'block');
			}
			else drop.setStyle('display', 'none');
		});
		var timer = null;
		sel.addEvent('mouseleave', function() {
			timer = setTimeout(function() {
				drop.setStyle('display', 'none');
			}, 100);
		});
		drop.addEvent('mouseenter', function() {
			clearTimeout(timer);
		});
		drop.addEvent('mouseleave', function() {
			drop.setStyle('display', 'none');
		})
		sel.inject(thisElement, 'after');
	}
});

var lsFile = new Class({
	initialize: function(element) {
		var thisElement = $(element);
        thisElement.addEvent('change', function() {
			var file = this.value;
    	    reWin = /.*\\(.*)/;
        	var title = file.replace(reWin, "$1");
	        reUnix = /.*\/(.*)/;
    	    title = title.replace(reUnix, "$1");
			this.getNext().set('text', title);
		}).getParent().adopt(new Element('div', {'class': 'ls-file'}).wraps(thisElement).adopt(new Element('div')));
	}
});
