oRcsf.RegisterObject('Module_Workshops_Doneren');
var RCSF_Project_Module_Workshops_Doneren =
{
	msExtends : 'RCSF_Base_Form'
	 /*
	 *
	 */
	,OnDomLoaded : function()
	{
		$('btn_submit').observe('click',this.SubmitSubscriber.bind(this,$('donatieform')));
		$('btn_showvoorwaarden').observe('click',this.ShowVoorwaarden.bind(this))
	}
	
	,OpenVoorwaarden : function() 
	{
		if ($('voorwaarden_text')) 
		{
			new Dialog.Box('voorwaarden_text');
			$('voorwaarden_text').show();
		}
		else 
		{
			var o_request_options = {
				s_mode: 'data',
				s_module: 'content',
				s_controller: 'texts',
				s_action: 'load',
				o_scope: this,
				s_callback: 'OnVoorwaadenLoaded'
			};
			
			this.moCore.RequestServer({
				i_id: 117
			}, o_request_options);
		}
	}
	
	,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"> \
						<h2>'+oData.a_result.a_text.s_title+'</h2> \
						<a href="javascript:;" id="btn_close_voorwaarden" class="readmore_button_close">sluiten</a> \
					</div> \
				</div> \
				<div class="content"> \
					<div class="inner"> \
						'+oData.a_result.a_text.s_text+' \
					</div> \
				</div> \
			</div> \
		</div>';
	
	
		$('body_container').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();
	}
	,ShowVoorwaarden : function() 
	{
		pageTracker._trackEvent('WICF - handelingen', 'Voorwaarden bekeken','vanuit donatiepagina')
		this.OpenVoorwaarden();	
	}

	,SubmitSubscriber : function(oForm)
	{
		$('btn_submit').stopObserving('click');
		
		var o_request_options = {
			s_mode: 'data',
			s_module: 'workshops',
			s_controller: 'workshops',
			s_action: 'submitsubscriber',
			o_scope: this,
			s_callback: 'OnSubscriberSubmitted'
		};
		// Get data of form 1
		var o_data = this.GetFormData(oForm);
		
		o_data.a_main.i_workshop_id = -1;
		/*
		if($('a_main-i_workshop_id-0').checked)
		{
			o_data.a_main.i_workshop_id = 0;
		}
		if($('a_main-i_workshop_id-1').checked)
		{
			o_data.a_main.i_workshop_id = -1;
		}
		*/ 
        o_data.a_main.b_newsletterplan = 0;                                  
		// Gogo Ajax
		this.moCore.RequestServer(o_data, o_request_options);
	}
	
	,OnSubscriberSubmitted : function(oData)
	{
		this.HideFieldErrors(oData);
		
		if(oData.s_status == 'done')
		{
			pageTracker._trackEvent('WICF - bevestiging', 'Donatie succesvol')
			
			// Fill in the Ideal Form field
			$('ideal_orderID').value = oData.a_result.i_id;
			$('ideal_amount').value = oData.a_result.i_total_costs;
			$('ideal_name').value = oData.a_result.s_name;
			$('ideal_email').value = oData.a_result.s_email;
			$('ideal_signature').value = oData.a_result.s_signature;
			$('ideal_paramplus').value = 'i_workshop_id='+oData.a_result.i_workshop_id;
			
			var o_popup = new Element('div', {id: 'ideal_loading'}).update('<div class="idealpopup"><div id="loading_swf"></div><div class="loading_text">Je gegevens zijn opgeslagen<br>Zorg dat je de betaling volledig afrond en terugkomt op de bevestigingspagina van deze site.</div></div>');
			this.moDialog = new Dialog.Box(o_popup,{dimmingOpacity : 0.62 ,dimmingBackground : '#000000',closeOnClickBackground	: false});
			swfobject.embedSWF(
				this.moCore.maPaths.a_url.s_project_root + 'module/workshops/files/swf/ideal_loader.swf'
				,"loading_swf"
				,"160"
				,"160"
				,"9"
				,false
				,{}
				,{
				wmode : "transparent"
				,scale : "noScale"
				,align : "TL"
				,menu : false
				}
			); 
			this.moDialog.show();
			
			setTimeout(function(){$('ideal_form').submit()},3000);
		}
		else
		{
			pageTracker._trackEvent('WICF - bevestiging', 'Donatieformulier error')
			// Show field errors
			this.ShowFieldErrors(oData);
		}
		$('btn_submit').observe('click',this.SubmitSubscriber.bind(this,$('donatieform')));
	}
	
	/**
	 * Shows error messages
	 * 
	 * @param	Object	oData	return object with errors
	 */
	,ShowFieldErrors : 	function(oData)
	{
		this.HideFieldErrors(oData);
		var o_error_msg = $$('#' + oData.s_form_id + ' .msg').first();
		if(o_error_msg) o_error_msg.update(oData.s_message);
		var i_loop = 0;
		for (var s in oData.a_errors)
		{	
			var o_error = $(s);
			var o_error_label = $('label-' + s);
			var o_error_extralabel = $('extralabel-' + s);
			//if (!o_error) var o_error = $('a_' + oData.s_form_id + '-' + s + '-error_msg');
			
			if (o_error)
			{
				o_error.addClassName('error');
				if(i_loop == 0) o_error.focus();
				i_loop++;
			}
			if (o_error_label)
				o_error_label.addClassName('error');
			if (o_error_extralabel)
				o_error_extralabel.addClassName('error');
			
		}
	}
	/**
	 * Hides all error messages
	 * 
	 * @param	Object	oData	[id] 
	 * 							[s_form_id]
	 * 					
	 */
	,HideFieldErrors : function(oData)
	{
		var s_id = (!Object.isUndefined(oData.id)) ? oData.id : oData.s_form_id;
		var o_error_msg = $$('#' + s_id + ' .msg').first();
		
		if (o_error_msg) o_error_msg.update('');
		$$('#' + s_id + ' .error').invoke('removeClassName','error');
	}
}
