/**
 * File: http://www.nisaconnections.com/js/main.js
 */

var signupFx;

function $E(str) {return $(document.body).getElement(str);}

function toggleSignUp() {
	$('signup').fade('toggle');
}

var Nav = new Class({
	
	wait: null,
	
	initialize: function(links, menus) {
		this.links = links;
		this.menus = menus;
		
		var i = 0;
		links.each(function(el) {
			this.attachMenu(el, el.hasClass('menu') ? menus[i++] : null);
		}, this);
	},
	
	attachMenu: function(link, menu) {
		link.addEvent('mouseover', function(evt) {
			$clear(this.wait);
			this.hideMenus();
			if ($defined(menu)) {
				menu.setStyle('display', 'block');
				
				if (link.getPosition(link.getParent()).x.toInt() + menu.getSize().x.toInt() > 828)
					var pos = 828 - menu.getSize().x.toInt();
				else
					var pos = link.getPosition(link.getParent()).x.toInt();
				
				menu.setStyles({
					'left': pos,
					'visibility': 'visible'
				});
			}
		}.bind(this));
		
		link.addEvent('mouseout', function(evt) {
			this.wait = this.hideMenus.delay(1000, this);
		}.bind(this));
		
		if ($defined(menu)) {
			menu.addEvent('mouseenter', function(evt) {
				$clear(this.wait);
			}.bind(this));
			
			menu.addEvent('mouseleave', function(evt) {
				this.wait = this.hideMenus.delay(1000, this);
			}.bind(this));
		}
	},
	
	hideMenus: function() {
		this.menus.setStyles({
			'display': 'none',
			'visibility': 'hidden'
		});
	}
	
});

var QnA = new Class({
	
	initialize: function(el, popup) {
		this.element = $(el);
		this.popup = $(popup);
		this.element.addEvent('click', this.showPopup.bind(this));
		this.popup.addEvent('click', this.popupClick.bind(this));
		document.addEvent('click', this.hidePopup.bind(this));
		$('cancelbtn').addEvent('click', this.hidePopup.bind(this));
	},
	
	showPopup: function(evt) {
		evt.stop();
		this.popup.setStyles({
			'display': 'block',
			'opacity': 0
		});
		this.placePopup();
		this.popup.fade('in');
	},
	
	hidePopup: function() {
		this.popup.setStyles({
			'display': 'none',
			'visibility': 'hidden',
			'opacity': 0
		});
	},
	
	popupClick: function(evt) {
		evt.stopPropagation();
	},
	
	placePopup: function() {
		this.popup.setStyles({
			'top': this.element.getPosition().y,
			'left': this.element.getPosition().x + this.element.getSize().x - this.popup.getSize().x
		});
	}
	
});

window.addEvent('domready', function(evt) {
	
	new Nav($$('#links a'), $$('#menus div'));
	
	$('signup').fade('hide');
	$('signup_trigger').addEvent('click', toggleSignUp);
});
