var Newsletter = Class.create(
{
	initialize: function(formId, lightboxObj)
	{
		this.formId = formId;
		this.lightboxObj = lightboxObj;
		this.setObservers();
	},
	
	setObservers: function()
	{
		$('nl-subscribe').observe('click', function()
		{
			$('nl-subscribe').setAttribute('checked', 'checked');
				$('newsletter-submit').value = 'Abonnér';
			
		});
		$('nl-unsubscribe').observe('click', function()
		{
			$('nl-unsubscribe').setAttribute('checked', 'checked');
			$('newsletter-submit').value = 'Avslutt abonnement';
		});
		$(this.formId).observe('submit', function()
		{
			this.send();
		}.bind(this));
	},
	
	send: function()
	{
		var self = this;
		new Ajax.Request('/index.php',
		{
			method: 'post',
			parameters: $(self.formId).serialize(true),
			onSuccess: function(transport)
			{
				self.changeScreen();
				$(self.overlay).update(transport.responseText);
				new Effect.Morph(self.overlay,
				{
					style:'opacity:1.0',
					duration: 0.4
				});
				if(transport.responseText == 'true')
				{
					$(self.overlay).update('<h3>Du er nå meldt på nyhetsbrevet!</h3><a class="finish-box" id="finish-newsletter" href="#" onclick="return false">Close</a>');
					$('finish-newsletter').observe('click', function()
					{
						$(self.formId).reset();
						self.lightboxObj.end();
						$(self.overlay).remove();
					});
				}
				else
				{
					setTimeout(function()
					{
						new Effect.Morph(self.overlay,
						{
							style: 'opacity:0.0',
							afterFinish: function()
							{
								self.overlay.remove();
							},
							duration: 0.5
						});
					}, 2500);
				}	
			}
		});
	},
	
	changeScreen: function()
	{
		this.overlay = document.createElement('div');
		this.overlay.className = 'newsletter-overlay';
		this.overlay.id = 'message-wrap';
		$(this.overlay).setStyle({
			opacity: '0.0',
			height: '160px'
		});
		
		$(this.formId).appendChild(this.overlay);
		return false;
	}
});

var TipAFriend = Class.create(
{
	initialize: function(formId, lightboxObj)
	{
		this.formId = formId;
		this.lightboxObj = lightboxObj;
	},
	
	send: function(articleId, friendEmail, yourEmail, message)
	{
		var self = this;
		new Ajax.Request('/index.php',
		{
			method: 'get',
			parameters: {
				'c_':'NTV_TipAFriend',
				'm_':'sendTip',
				'articleId': articleId,
				'femail':friendEmail,
				'yemail':yourEmail,
				'comment': message
			},
			onSuccess: function(transport)
			{
				self.changeScreen();
				$(self.overlay).update(transport.responseText);
				new Effect.Morph(self.overlay,
				{
					style:'opacity:1.0',
					duration: 0.4
				});
				if(transport.responseText == 'true')
				{
					$(self.overlay).update('<h2>Tusen takk!</h2><h3>Din e-post er sendt</h3><a class="finish-box" id="finish-tip-a-friend" href="#" onclick="return false;">Close</a>');
					$('finish-tip-a-friend').observe('click', function()
					{
						
						$($$('#'+self.formId+' form')[0]).reset();
						self.lightboxObj.end();
						$(self.overlay).remove();
					});
				}
				else
				{
					setTimeout(function()
					{
						new Effect.Morph(self.overlay,
						{
							style: 'opacity:0.0',
							afterFinish: function()
							{
								self.overlay.remove();
							},
							duration: 0.5
						});
					}, 2500);
				}					
			}
		});
	},
	
	changeScreen: function()
	{
		this.overlay = document.createElement('div');
		this.overlay.id = 'message-wrap';
		this.overlay.className = 'tip-a-friend-overlay';
		$(this.overlay).setStyle({'opacity':'0.0'});
		
		$(this.formId).appendChild(this.overlay);
	}
});
document.observe('dom:loaded', function () 
{ 
	var myLightbox = new Lightbox();
	if($$('.tip-a-friend')[0] && $('tip-a-friend-form'))
	{
		$$('.tip-a-friend').each(function(elem)
		{
			myLightbox.elemsArray.push(elem);
			$(elem).observe('click', function()
			{
				myLightbox.currentElem = myLightbox.elemsArray.indexOf(this);
				myLightbox.imageDataContainer.hide();
				myLightbox.startElem('tip-a-friend-form');
			});	
		});
		
		
 		if ($('nl-subscribe'))
		{
			$('newsletter').observe('click', function(){
				myLightbox.imageDataContainer.hide();
				myLightbox.startElem('newsletter-form');
			});
			
			var NTVNewsletter = new Newsletter('newsletter-mainform', myLightbox);
		}
		
		if($$('.newsletter')[0])
		{
			$$('.newsletter').each(function(nltrigger)
			{
				$(nltrigger).observe('click', function(){
					myLightbox.imageDataContainer.hide();
					myLightbox.startElem('newsletter-form');
				});

				var NTVNewsletter = new Newsletter('newsletter-mainform', myLightbox);
			});
		}
		
		var TipAFriendModule = new TipAFriend('tip-a-friend-form', myLightbox);
		
		Event.observe($$('#tip-a-friend-form form')[0], 'submit', function()
		{
			TipAFriendModule.send($('articleId').value, $('taf-femail').value, $('taf-yemail').value, $('taf-message').value);
		});
		
		$$('a.close-box').each(function(close)
		{
			Event.observe($(close), 'click', function()
			{
				myLightbox.end();
			});
		});
		
	}
});
