oRcsf.RegisterObject('Container_listitem');
var RCSF_Project_Container_listitem =
{
	 msExtends	: 'RCSF_Base_Form'
	 
	/**
	 * Handles things that should be done after the document has fully loaded
	 *
	 */
	,OnDomLoaded : function()
	{
		// Assign form handlers
		if ($('btn_submit')) {
			var o_form = this.moForm = $('btn_submit').up('form');
			$('btn_submit').observe('click', this.SubmitForm.bind(this, o_form));
			$('btn_showactionvoorwaarden').observe('click', this.OpenActionVoorwaarden.bind(this));
			$('btn_close').observe('click', this.CloseActionVoorwaarden.bind(this));
			$('a_main-b_newsletter').observe('click',this.CheckForNewsletter.bind(this))
			
			$('btn_showvoorwaarden').observe('click', this.moCore.moSite.OpenVoorwaarden.bind(this));
		}
	}
	
	/**
	 * Submits the form
	 */
	,SubmitForm : function(oForm,event)
	{
		event.stop();
		
		var o_request_options = {
			s_mode			: 'data'
			,s_module		: 'content'
			,s_controller	: 'article'
			,s_action		: 'submitcontestant'
			,o_scope		: this
			,s_callback		: 'OnFormSubmitted'
		};
		
		var o_data = this.GetFormData(oForm);
		
		this.moCore.RequestServer(
			o_data	
			,o_request_options
		);
		
		return false;
	}
	
	,OnFormSubmitted : function(oData)
	{
		this.HideAllErrors();
		if(oData.s_status == 'error')
		{
			this.ShowFieldErrors(oData);
		}
		else
		{
			//alert(oData.s_confirmation);
			var i_h = $('contestantform').getHeight();
			$('contestant_confirmation').style.height = i_h + 'px';
			$('contestant_confirmation').update(oData.s_confirmation);
			
			if (oData.a_result.b_newsletter == 1) {
				pageTracker._trackEvent('Formulier', 'Nieuwsbrief aanmelden', 'vanuit winelement');
			}
			
			// track the vertelverder form
			pageTracker._trackEvent('Formulier','Winelement ingevuld',$('article_title').getAttribute('title'));
			Effect.Fade('contestantform',{duration: 0.5,afterFinish : function(){
				Effect.Appear('contestant_confirmation',{duration: 0.5 });
			}});
		}
	}
	
	,ShowFieldErrors : function(oData) 
	{
		var i_count = 0;
			
		$('winelement_msg').update(oData.s_message);
	
		for (var s_field in oData.a_errors)
		{
			// Set reference to current field
			var o_cur_label = $('label-' + s_field);
			var o_cur_field = oData.a_errors[s_field];
			
			// Check if there is an error message for that field
			if(o_cur_label)
			{
				if(i_count < 1) $(s_field).focus(); i_count++;
				o_cur_label.addClassName('error');
				$(s_field).addClassName('error');
				i_count++;
			}
		}
	}
	
	,HideAllErrors : function() 
	{
		// Swaps the old error fields to hidden
		$$('.field_info .error').each(function(oEl)
			{
				oEl.removeClassName('error');
			}
		);
	}
	
	,CheckForNewsletter : function() 
	{
		if($F('a_main-b_newsletter') == 1) {
			$('birthday_field').show();
		} else {
			$('birthday_field').hide();
		}
	}
	
	,OpenActionVoorwaarden : function() 
	{
		new Dialog.Box('actionvoorwaarden_text');
		$('actionvoorwaarden_text').show();
	}
	
	,CloseActionVoorwaarden : function() 
	{
		$('actionvoorwaarden_text').hide();
	}
	,OnVoorwaadenLoaded : function(oData) 
	{
		var s_html = '\
		<div id="voorwaarden_text" class="dialog_popup" style="display:none"> \
			<div class="inner"> \
				<div class="header"> \
					<div class="inner"> \
						<a href="javascript:;" id="btn_close_voorwaarden" class="readmore_button_close">sluiten</a> \
						<h2>'+oData.a_result.a_text.s_title+'</h2> \
					</div> \
				</div> \
				<div class="content"> \
					<div class="inner"> \
						'+oData.a_result.a_text.s_text+' \
					</div> \
				</div> \
			</div> \
		</div>';
	
	
		document.body.insert(s_html);
		
		new Dialog.Box('voorwaarden_text');
		$('voorwaarden_text').show();
		
		$('btn_close_voorwaarden').observe('click',this.CloseVoorwaarden.bind(this));
	}
	
	
	,CloseVoorwaarden : function() 
	{
		$('voorwaarden_text').hide();
	}
	
}
	