// JavaScript Document

var console;

Element.Events.outerClick = {
	
	base : 'click',
	
	condition : function(evt){
		//evt.stopPropagation();
		//return false;
	},
	
	onAdd : function(fn){
		this.getDocument().addEvent('click', fn);
	},
	
	onRemove : function(fn){
		this.getDocument().removeEvent('click', fn);
	}
	
};

if (!$defined(console)) console = {log:function(msg) {alert(msg)}}


var uri = new URI();


window.addEvent('domready', function() {
	
	/*
	*	MOOMODERNIZR SET UP
	*/

	$each(Browser.Features, function(item,index){
		if(item){
			$(document.body).addClass(index);
		}else{
			$(document.body).addClass('no-'+index);
		}
	});
	if (Browser.Engine.trident) $(document.body).addClass('ie');
	

	$$('input.submit').each(function(btn) {
		Button = new Element('a', {
			'class':'btn',
			'href':'#',
			'html':'<span><span>'+btn.get('value')+'</span></span>',
			'events': {
				'click': function() {
					if (this.getParent('form'))	this.getParent('form').submit();
					return false;
				}
			}
		})
		.replaces(btn);
		//btn.dispose();
	});
	
	$$('.the_email a').each(function(a) {
		email = a.get('text').replace(' AT ','@').replace(' DOT ','.');
		a.set('text', email).set('href','mailto:'+email);
	});
	
	$$('a._blank').addEvent('click', function(){
		
		window.open(this.get('href'));
		return false;
	})
	
	$$('a.backButton').addEvent('click', function(){ history.back(); return false;});
});

if (Browser.Engine.trident) {

	window.addEvent('domready', function() {
	
		$$('hr').each(function(e) {
			new Element('div',{'class':'hr '+e.get('class'), 'html':'&nbsp;'}).replaces(e)
		});
	
	})
}
	



SelectBox = new Class({

	Implements:[Options, Events],
	options:{
	
		'class':'selectBox'
		
	},
	
	initialize: function(options) {
		this.setOptions(options);
		this.selects = document.getElements('select.'+this.options["class"]);
		
		this.selects.each((function(s) {
			
			var width = s.getSize().x.toInt();
			
			var box = new Element('div', {
				'class':'selectBox '+(s.get('class')),
				'styles': {
					'width':width
				}
			});
			
			
			var label = new Element('a', {'href':'#','text':s.getSelected()[0].text}).inject(box);
			
			var arr = new Element('a',{'href':'#','class':'arrow'}).inject(label,'after');

			
			var optionsBox = new Element('ul',{'class':'select_option_box'}).inject(box);
			
			s.getElements('option').each(function(opt,index) {
				
				var li = new Element ('li', {});
				li.inject(optionsBox);
				
				new Element('a', {
					'href':'#',
					'name':opt.get('value'),
					'text':opt.get('text'),
					'class':((opt.get('value') == s.getSelected()[0].value) ? 'selected' : '')+((index==s.length-1) ? ' last' : '')
				}).inject(li);
				
				
			});
			
			box.store('select_input',s);
			
			s.set('styles',{'position':'absolute','top':-100000,'left':-100000})
			box.inject(s,'after');
			
			this.attachEvents.bind(box).run();
			
			this.close.bind(box).run();
			
		}).bind(this));

		
	},
	
	close:function() {
		this.getFirst('ul').addClass('close');
	},
	open:function() {
		this.getFirst('ul').removeClass('close');
	},
	attachEvents:function() {
		
		var box = this;
		var select_input = box.retrieve('select_input');
		var boxLabel = this.getFirst('a');
		var boxArrow = this.getFirst('a.arrow');
		
		var optionsBox = this.getFirst('ul');
		var opts = this.getElements('li>a');
		
		
		
		$$(boxLabel, boxArrow).set('events', {
			'click':function(e) {
				optionsBox.toggleClass('close');
				e.preventDefault();
				return false;
			}
		})
		
		//boxArrow.
		
		optionsBox.addEvent('outerClick', function() {
			if (!optionsBox.hasClass('close')) optionsBox.addClass('close');
		});
		
		opts.set('events', {
				 
			'click': function() {
				opts.removeClass('selected');
				this.addClass('selected')
				select_input.set('value', this.get('name'))
				boxLabel.set('text', this.get('text'));
				optionsBox.addClass('close');
				
				
				return false;
			}
		
		});
	}
		
	
	

});
window.addEvent('domready', function() {new SelectBox(); });
					 
