var popup_contact = {
	waitInterval:0,
    radioCheckError: false,
	changed: false,
	errors: 0,

	initialize: function()
	{
		if($('#form_contestant_custom').length > 0)
		{
			popup_contact.changed = false;
			if($('#currentType').val() == 'invite')
			{
				$('#form_contestant_invite').show();
				$('#form_contestant_custom').hide();
			}else{
				$('#form_contestant_invite').hide();
				$('#form_contestant_custom').show();					
			}
            //$('#form_contestant_custom').show();


            // We only validate if the contact is not new!
            if($('#form_contestant_custom input:text[value!=""][value!="geen"], #form_contestant_invite input:text[value!=""][value!="geen"]').length > 0)
            {
                popup_contact.contactValidate();
            }

			$('select').selectbox();			
		//	$('#contactFunction_input').change(popup_contact.contactDataChanged);
			
			//$('input[type=checkbox],input[type=radio]').prettyCheckboxes();
		
			$('#chk_invite').click(popup_contact.inviteChanged);
			$('#autoNoEventData').click(popup_contact.autoNoEventDataChanged);
			
			$('#form_contestant_custom').change(popup_contact.contactDataChanged);
			$('#form_contestant_custom input').keyup(popup_contact.contactDataChanged);
			$('#form_contestant_custom select').change(popup_contact.contactDataChanged);
			$('#form_contestant_custom input:checkbox').click(popup_contact.contactDataChanged);
			
			$('#form_contestant_invite').change(popup_contact.contactDataChanged);
			$('#form_contestant_invite input').keyup(popup_contact.contactDataChanged);
			$('#form_contestant_invite select').change(popup_contact.contactDataChanged);
			$('#form_contestant_invite input:checkbox').click(popup_contact.contactDataChanged);
			
			$('#form_contestant_custom').change(popup_contact.contactDataChanged);
			$('#form_contestant input').keyup(popup_contact.contactDataChanged);
			$('#contactFunction_input').blur(popup_contact.contactDataChanged);
		
			
			$('#contactBirthday').keyup(popup_contact.birthdayChanged);
			
			if($('script[src*="events/popup_contact_"]').length == 1)
			{
				popup_contact_extent.initialize();
			}
			
			
			
			$('input[title]').bt({
				  	trigger: ['focus', 'blur'],
				  	positions: ['right'],				   
				  	fill: 'rgba(255, 255, 255, 1)',
				  	cornerRadius: 10,
				   	strokeWidth: 2,
					strokeStyle: '#a0d0ff'
				});
		
			$('td[title]').bt({
				  	positions: ['top'],				  
				  	fill: 'rgba(255, 255, 255, 1)',
				  	cornerRadius: 10,
				   	strokeWidth: 2,
					strokeStyle: '#a0d0ff'
				});
		
			$('#btn_popup_save').unbind('click',$.unblockUI);
			$('#btn_popup_save').click(popup_contact.popupSave);
            $('#btn_popup_cancel').click(popup_contact.popopCancel);

            if($('#contactBirthday2').val() != '')
            {
                popup_contact.calculateAge($('#contactBirthday2').val());
            }


            $('#eventRunningTraining').change(popup_contact.eventRunningTrainingChanged).change();
		}
		return true;
	},
	
	inviteChanged:function(event)
	{
		if($('#'+event.target.id).attr('checked') == true)
		{
			$('#form_contestant_invite').show();
			$('#form_contestant_custom').hide();
			
			$('#type').val('invite');
			$('#contactName_invite').val($('#contactName').val());
			$('#contactEmailadres_invite').val($('#contactEmailadres').val());			
		}else{
			$('#form_contestant_invite').hide();
			$('#form_contestant_custom').show();		
			
			$('#type').val('custom');
			$('#contactName').val($('#contactName_invite').val());
			$('#contactEmailadres').val($('#contactEmailadres_invite').val());						
		}
		popup_contact.contactSave();
	},
	
	contactDataChanged:function(event)
	{
        // From now on we only validate when we try to save the contact
        //clearInterval(popup_contact.waitInterval);
		//popup_contact.waitInterval = setInterval(popup_contact.contactValidate,400);
		popup_contact.changed = true;
	},

    contactSave:function()
	{
		clearInterval(popup_contact.waitInterval);
		if($('#form_contestant_custom').css('display') != 'none')
		{
			formData = $('#form_contestant_custom').serialize();
		}else
		{
			formData = $('#form_contestant_invite').serialize();
		}
		$.getJSON(	page.SERVERPATH+'/ajax/savecontact/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey,
					formData,
					popup_contact.contactSaved
				);

	},

    contactSaved:function()
    {
        panel_contestant.contestantPanelRefresh();
    },

	contactValidate:function()
	{
		clearInterval(popup_contact.waitInterval);
		if($('#form_contestant_custom').css('display') != 'none')
		{
			formData = $('#form_contestant_custom').serialize();
		}else
		{
			formData = $('#form_contestant_invite').serialize();
		}

		$.getJSON(	page.SERVERPATH+'/ajax/validatecontact/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey,
					formData,
					popup_contact.contestantErrorsRecieved
				);
			
	},
	
	contestantErrorsRecieved:function(data)
	{
        popup_contact.errors = 0;

		$('#form_contestant_custom input').removeClass('error')
		$('#form_contestant_invite input').removeClass('error')
		$('.selectboxError').removeClass('selectboxError');
		if(data.message == 'error')
		{
			$.each(data.errors, function(i,item)
								{	
									element = $('[name="'+i+'"]');
									if(element.length > 0)
									{
                                        if(i.indexOf('event') == -1 || ($('#type').val() == 'custom' || ($('#autoNoEventData').attr('checked') == false || $('#autoNoEventData').length == 1)))
                                        {
                                            switch(element.attr('tagName').toLowerCase())
                                            {
                                                case 'select':
                                                    switch(i)
                                                    {
                                                        case 'eventRunningVeteran':
                                                            if($('#eventRunningVeteranTR').css('display') != 'none')
                                                            {
                                                                $('#'+i+'_input').addClass('selectboxError');
                                                                popup_contact.errors++;
                                                            }
                                                        break;
                                                        default:
                                                            $('#'+i+'_input').addClass('selectboxError');
                                                            popup_contact.errors++;
                                                        break;
                                                    }
                                                    break;
                                                case 'input':
                                                    switch(element.attr('type').toLowerCase())
                                                    {
                                                        case 'text':
                                                        case 'password':
                                                            $('input[name="'+i+'"]').addClass('error');
                                                            popup_contact.errors++;
                                                        break;
                                                    }
                                                break;
                                            }
                                        }
									}					
								}
				);
		}
        
	},
	
	birthdayChanged:function()
	{
       popup_contact.calculateAge($('#contactBirthday').val());
	},
	
	autoNoEventDataChanged:function(event){
		if($('#'+event.target.id).attr('checked') == true)
		{
			$('#eventInformation input').val('');
			$('#eventInformation select').val('geen').trigger('change');
			$('#eventInformation').hide();
            popup_contact.errors = 0;
		}else{
			$('#eventInformation').show();			
			$('#eventInformation select').trigger('change');
		}
	},
	
	popupSave:function()
	{
        clearInterval(popup_contact.waitInterval);
		if($('#form_contestant_custom').css('display') != 'none')
		{
			formData = $('#form_contestant_custom').serialize();
		}else
		{
			formData = $('#form_contestant_invite').serialize();
		}

		$.getJSON(	page.SERVERPATH+'/ajax/validatecontact/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey,
					formData,
					popup_contact.popupSaveValidated
				);
        page.validating(true);
	},

    popupSaveValidated:function(data)
    {
        page.validating(false);
        popup_contact.contestantErrorsRecieved(data);
        if(popup_contact.errors > 0 && $('#autoNoEventData').attr('checked') == false)
        {
            response = confirm('Je hebt nog niet alle gegevens correct ingevult, controleer de in het rood aangegeven velden. Het venster kan gesloten worden maar je dient deze informatie wel volledig in te vullen voor je door kan gaan naar de volgende stap.\r\n\r\nWeet je zeker dat je het venster wilt sluiten?');
        }else{
            response = true;
        }

        if(response == true)
        {
            popup_contact.contactSave();
            page.hidePopup();
        }
    },

    popopCancel:function()
    {
        if(popup_contact.changed == false && $('#new').length > 0 || page.activePopup == 'contactNew' ){
            panel_contestant.contactDeleteAction($('#contactKey').val());
        }
        panel_contestant.contestantPanelRefresh();
        page.hidePopup();
    },


    calculateAge:function(birthday)
    {
        $.getJSON(	page.SERVERPATH+'/ajax/calculateage/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey,
					{birthday: birthday},
					popup_contact.calculateAgeRecieved
				);
    },

    calculateAgeRecieved:function(data)
    {
        if(data.message == 'succes')
        {

           if(data.age < 35)
           {
                if($('#eventRunningVeteran').length > 0)
                {
                    $('#eventRunningVeteran').val('Nee').trigger('change');
                    $('#eventRunningVeteran_input').removeClass('selectboxError');
                    $('#eventRunningVeteranTR').hide();
                }
           }else{
               $('#eventRunningVeteranTR').show();
           }
        }
    },


    eventRunningTrainingChanged:function()
    {
        if($('#eventRunningTraining').val() == 'Ja'){
            $('#eventRunningTrainingDays_tr').show();
        }else{
            $('#eventRunningTrainingDays_tr').hide();
            $('[id^="eventRunningTrainingDays"][type="checkbox"]').attr('checked',false);
        }
    }
}