var Contactform = Class.create(
{
	contactForms: new Array(),
	
	initialize: function(formClassName)
	{
		var self = this;
		if($$('.'+formClassName)[0])
		{
			$$('.'+formClassName).each(function(formElement)
			{
				self.contactForms.push(formElement);
				self.prepareContactform(formElement);
			});
		}
	},
	
	prepareContactform: function(formElement)
	{
		var ajaxServerRequest = new Element('input',{ type:'hidden', name: 'ajax', value:'true' });
		$(formElement).appendChild(ajaxServerRequest);
		this.setObserver(formElement);
	},
	
	setObserver: function(formElement)
	{
		var self = this;
		$(formElement).observe('submit', function()
		{
			self.submitForm(this);
			self._trackThis($($(formElement).getElementsByClassName('formid')[0]).getAttribute('value'), false);
		});
	},
	
	submitForm: function(formElement)
	{
		var self = this;
		var formIndex = this.contactForms.indexOf(formElement);
		new Ajax.Request('/index.php',
		{
			method: 'post',
			parameters: $(formElement).serialize(true),
			onSuccess: function(transport)
			{
				var contactFormJSON = transport.responseText.evalJSON();
				if(contactFormJSON.status)
					if(contactFormJSON.status == true)
					{
						self.showResult('<h3>Takk for henvendelsen!</h3>', formIndex);
						$($(formElement).getElementsByClassName('formid')[0]).getAttribute('value')
						self._trackThis($($(formElement).getElementsByClassName('formid')[0]).getAttribute('value')+'_success', true);
					}
					
					if(contactFormJSON.status == false)
						self.showResult('<h3>Epostadressen er ugyldig!</h3>', formIndex);
			}
		});
	},
	
	showResult: function(resultString, formIndex)
	{
		var contactForm = $(this.contactForms[formIndex]);
		var resultContainer = new Element('div', { id: 'contactFormResultContainer' });
		$(resultContainer).update(resultString);
		$(resultContainer).setStyle({ 'opacity' : '0.0' });
		$(contactForm).appendChild(resultContainer);
		new Effect.Morph(resultContainer,
		{
			style: 'opacity: 1.0',
			duration: 0.5,
			afterFinish: function()
			{
				var timer = setTimeout(function()
				{
					clearTimeout(timer);
					$(contactForm).reset();
					$(resultContainer).remove();
				},2000);
			}
		});
	},
	
	_trackThis: function(keyword, gwo)
	{
		if(typeof keyword == 'string')
		{
			if(window.pageTracker)
				window.pageTracker._trackPageview(keyword);
		}
		
		if(gwo == true)
		{
			//try {
			//	var pt=_gat._getTracker('UA-4421264-2');
			//	pt._trackPageview('/2326964188/goal');
			//}
			//catch(err){}
			if(window.pageTracker2)
				window.pageTracker2._trackPageview('/2326964188/goal');
		}
	}
});