

var Effects = new Class({
	initialize: function() {
		this.nav();
		this.header();
		this.content();
		this.promo();
	},
	// Header Navigation effect
	header: function() {
		var nodes = $(document.body).getElement('div.header').getElement('ul').getChildren('li');
		nodes.each(function(element) {
			var anchor = element.getElement('a');
			var fx = new Fx.Morph(anchor, {duration: 500, link: 'cancel'});
			anchor.addEvent('mouseenter', function(){ fx.start({'color': '#ed1c24', 'text-decoration': 'underline'}); });
			anchor.addEvent('mouseleave', function(){ fx.start({'color': '#333333', 'text-decoration': 'none'}); });
		});
		
	},
	// Navigation
	nav: function() {
		var nodes = $(document.body).getElement('div.nav').getElement('ul').getChildren('li');
		var count = 0;
		nodes.each(function(element) {
			count++;
			if (count==1) var color = '666666';
			else color = '000000';
			var anchor = element.getElement('a');
			var fx = new Fx.Morph(anchor, {duration: 400, link: 'cancel'});
			anchor.addEvent('mouseenter', function(){ fx.start({'background-color': '#e4e7e9', 'color': '#ed1c24', 'padding-right': '10px'}); });
			if (anchor.hasClass('focus'))
				anchor.addEvent('mouseleave', function(){ fx.start({'background-color': '#edeeef', 'color': '#ed1c24', 'padding-right': '20px'}); });
			else
				anchor.addEvent('mouseleave', function(){ fx.start({'background-color': '#edeeef', 'color': '#'+color, 'padding-right': '20px'}); });
		});
		var blurs = $(document.body).getElement('div.nav').getElements('ul.blur');
		blurs.each(function(element) {
			var nodes = element.getChildren('li');
			nodes.each(function(element) {
				var anchor = element.getElement('a');
				var fx = new Fx.Morph(anchor, {duration: 400, link: 'cancel'});
				if (anchor.hasClass('focus'))
					anchor.addEvent('mouseenter', function(){ fx.start({'background-color': '#e4e7e9', 'color': '#ed1c24', 'padding-right': '10px'}); });
				else
					anchor.addEvent('mouseenter', function(){ fx.start({'background-color': '#e4e7e9', 'color': '#000000', 'padding-right': '10px'}); });
				if (anchor.hasClass('focus'))
					anchor.addEvent('mouseleave', function(){ fx.start({'background-color': '#edeeef', 'color': '#ed1c24', 'padding-right': '20px'}); });
				else
					anchor.addEvent('mouseleave', function(){ fx.start({'background-color': '#edeeef', 'color': '#808080', 'padding-right': '20px'}); });
			});
		});
	},
	// Content links
	content: function() {
		var paragraphs = $(document.body).getElement('div.content').getElements('p');
		paragraphs.each(function(element){
			if (!element.hasClass('nolink')) {
				element.getElements('a').each(function(element){
					var fx = new Fx.Morph(element, {duration: 500, link: 'cancel'});
					element.addEvent('mouseenter', function(){ fx.start({'color': '#000000', 'text-decoration': 'underline'}); });
					element.addEvent('mouseleave', function(){ fx.start({'color': '#ed1c24', 'text-decoration': 'none'}); });
				});
			}
		});
	},
	// Promo effect
	promo: function() {
	//	var promo = $(document.body).getElement('div.promo').getElements('a');
	}
});

var iefix = function() {
	if (Browser.Engine.trident) {
		// Fix clears
		var clear = $(document.body).getElements('br');
		clear.each(function(element){
			if ($chk(element.get("style"))) {
				new Element('div', {'html': '<!-- Internet Explorer Fix -->', 'styles': {'clear': 'both'}}).inject(element, 'after');
				element.destroy();
			}
		});
		// Fix white space under images
		var images = $(document.body).getElements('img');
		images.each(function(element){
			element.addEvent('load', function(element) { this.set('alt', ''); });
			element.setStyle('display', 'block');
			element.set('GALLERYIMG', 'no');
		});
		// Fix Telephone hover
		var phone = $(document.body).getElement('div.header').getElement('a.phone');
		phone.addEvent('mouseenter', function() { this.setStyle('background-position', '8px -18px'); });
		phone.addEvent('mouseleave', function() { this.setStyle('background-position', '8px 1px'); });
		// Fix HR
		var hr = $(document.body).getElements('hr');
		hr.each(function(element){
			new Element('div', {'html': '<!-- Internet Explorer Fix -->', 'class': 'hr'}).inject(element, 'after');
			element.destroy();
		});
		// Fix Contacts
		var contact = $(document.body).getElement('ul.team');
		if ($chk(contact)) {
			var contacts = contact.getElements('li');
			contacts.each(function(element){
				element.addEvent('mouseenter', function() { this.getElement('span').setStyle('text-decoration', 'underline'); });
				element.addEvent('mouseleave', function() { this.getElement('span').setStyle('text-decoration', 'none'); });
			});
		}
	}
}

var buttons = function(button) {
	var buttons;
	if (button==false) { buttons = $(document.body).getElements('a.button'); }
	else { buttons[0] = button; }
	buttons.each(function(element){
		if (!$chk(element.getElement('span'))) {
			var inner = element.get('html');
			element.empty();
			new Element('span').inject(element, 'top');
			new Element('span', {'html': inner}).inject(element.getElement('span'), 'top');
			var down = function() {
				element.setStyle('background-position', '0 -72px');
				element.getElement('span').setStyle('background-position', 'right -96px');
				element.getElement('span').getElement('span').setStyle('background-position', '0 -120px');
			};
			var up = function() {
				element.setStyle('background-position', '0 0');
				element.getElement('span').setStyle('background-position', 'right -24px');
				element.getElement('span').getElement('span').setStyle('background-position', '0 -48px');
			};
			element.addEvent('mousedown', down);
			element.addEvent('mouseup', up);
			element.addEvent('mouseleave', up);
		}
	}); 
};

var labels = function() {
	var nodes = $(document.body).getElements('label.inside');
	for(i = 0; i < nodes.length; i++) {
		var label = nodes[i];
		var input = $(label.get('for'));
		if ($chk(input)) {
			input.set('value', label.get('html'));
			input.addEvent('focus', function() { if (input.get('value')==label.get('html')) input.set('value', null); });
			input.addEvent('blur', function() { if (!$chk(input.get('value'))) input.set('value', label.get('html')); });
		}
	}
};

var effects;

window.addEvent('domready', function() {
	
	iefix.run();
	effects = new Effects;
	
	buttons.run(false);
	labels.run();
	
	
});