Element.addMethods({
	position: function(el) {
		var pos = Position.cumulativeOffset(el);
		var dim = $(el).getDimensions();
		return {left: pos[0], top: pos[1], width: dim.width, height: dim.height};
	},
	positionBelow: function(el, el_reference, position) {
		var pos = $(el_reference).position();
		$(el).setStyle({
			'position': 'absolute',
			'top': (pos.top + pos.height) + 'px',
			'left': (pos.left) + 'px'
		});
		return $(el);
	}
});
Event.observe(window, 'load', function() {
	Event.observe('emailPage', 'click', function(e) {
		Event.stop(e);
		/*if($('email_popup') != null) {
			$('email_popup').toggle();
			return;
		}*/
		var pos = $(Event.element(e)).position();
		var create_div = false;
		if($('email_popup') == null) {
			create_div = true;
			var div = document.createElement('div');
			div.setAttribute('id', 'email_popup');
		} else {
			var div = $('email_popup');
		}
		new Ajax.Updater(div, $(Event.element(e)).href + '&js=1', {onComplete: function(){
			if(create_div)
				document.body.appendChild(div);
			div.setStyle({
				'width': '350px',
				'display': 'none',
				'position': 'absolute',
				'top': (pos.top + pos.height) + 'px',
				'left': (pos.left - 350) + 'px'
			});
			div.show();
			Event.observe('email_form', 'submit', function(e){
				$$('#email_popup .error').each(function(el){
					el.removeClassName('error');
				});
				Event.stop(e);
				var req = new Ajax.Request($('email_form').action, {
					method: 'POST',
					parameters: $('email_form').serialize(true),
					onComplete: function(request, json) {
						if(json.response.success) {
							for(i in json.omniture) {
								s[i] = json.omniture[i];
							}
							s.tl();
							new Ajax.Updater(div, $('email_form').title);
						} else {
							for(i in json.response) {
								$('label_' + i).addClassName('error');
							}
						}
					}
				});
			});
		}});
		
		
	});
});