var panel_payment =
{
	
	initialize: function()
	{
		$('.selectbox').selectbox();
		$('#searchCompany').change(panel_payment.getCompanyInfo);
		// keep 'n eye on the IDeal image
		$('#checkout_iDeal').click(panel_payment.checkoutIDeal);
		// finish reg with invoice button
		$('#checkout_invoice').click(panel_payment.checkoutInvoice);
		// finish reg with sponsor button
		$('#checkout_sponsor').click(panel_payment.checkoutSponsor);
		
		$('[id^="iDeal_"]').click(panel_payment.idealimgclicked).css('cursor','pointer');
		
		// inoive
		$('#invoice').click(panel_payment.invoice);
		
		$('img.btn_previous').click(panel_payment.previousStepClicked);		
		
		// watch the inputfields
		$('input').keyup(panel_payment.inputDataChanged);
		$('input').click(panel_payment.inputDataChanged);

		$('#show_code_input').click(function () {
			$("#paymentInfoIDeal").hide();
			$("#paymentInfoInvoice").hide();
			$("#sponsor_code_input").show();										
			$("#sponsor").hide();									
												
		});
		
		$('#chk_accept3, #chk_accept2, #chk_accept').click(panel_payment.agreementChanged);
		
		$('#submit_code').click(panel_payment.checkSponsorcode);
		
		
		
		$('input[title]').bt({
							trigger: ['focus', 'blur'],
				  			positions: ['right'],				  
							fill: 'rgba(255, 255, 255, 1)',
							cornerRadius: 10,
							strokeWidth: 2,
							strokeStyle: '#a0d0ff'
						});
		
		if($('#sponsorForm').length > 0){
			//panel_payment.validateIdealForm();
		}
		
		//$('input[type=checkbox],input[type=radio]').prettyCheckboxes();
		
		// run the validate function 
		//panel_payment.validateIdealForm();
		return true;
	},
	
	agreementChanged: function(event)
	{
		$('#chk_accept3, #chk_accept2, #chk_accept').attr('checked',event.target.checked);
	},
	
	idealimgclicked: function()
	{
            $('h2[id^="paymentMethod"], span[id^="paymentMethod"]').html($(this).attr('alt'));
            $("#paymentInfoInvoice").hide();
            $("#paymentInfoIDeal").show();
            $("#sponsor").show();
            $("#sponsor_code_input").hide();
            //panel_payment.validateIdealForm();
	},
	
	invoice: function(){
		$("#paymentInfoIDeal").hide();
		$("#paymentInfoInvoice").show();
		$("#sponsor").show();
		$("#sponsor_code_input").hide();
		//panel_payment.validateIdealForm();
	},
	
	
	
	inputDataChanged:function(event)
	{
        // From now on we only validate when the user clicks on the next step button
		//clearInterval(panel_payment.waitInterval);
		//panel_payment.waitInterval = setInterval(panel_payment.validateIdealForm, 400);
	},	
	
	update: function(paymentMethod)
	{
		
		// save the form to the database
		$.getJSON(	page.SERVERPATH+'/ajax/checkoutideal/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey+ '/paymentMethod/'+paymentMethod,
					$('#idealForm').serialize(),
					// set the paymentmethod etc
					panel_payment.editIdealForm
				 );	
		
		clearInterval(panel_payment.waitInterval);
	
	},
	
	saveInvoice: function(paymentMethod){
            // save the form to the database
            $.getJSON(	page.SERVERPATH+'/ajax/checkout/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey+ '/paymentMethod/'+paymentMethod,
                        $('#invoiceForm').serialize(),
                        // set the paymentmethod etc
                        panel_payment.finishByInvoice
                     );

            clearInterval(panel_payment.waitInterval);
        
	},
	saveSponsor: function(paymentMethod){
		    // save the form to the database
            $.getJSON(	page.SERVERPATH+'/ajax/checkout/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey+ '/paymentMethod/'+paymentMethod,
                        $('#sponsorForm').serialize(),
                        // set the paymentmethod etc
                        panel_payment.finishBySponsor
                     );

            clearInterval(panel_payment.waitInterval);
        
	},	
	getCompanyInfo: function(){
		
		var companyID = $('#searchCompany').val()
	
		$.getJSON(	page.SERVERPATH+'/ajax/getcompanyinfo/companyID/' + companyID + '/registrationkey/' + page.registrationKey,
					panel_payment.setCompanyValues
				 );	
	},
	
	setCompanyValues: function(data){

		if(data != false){
			
			$('#paymentClientCompanyName').val(data['companyName']);
			$('#paymentClientAddress').val(data['companyAddressStreet'] + ' ' + data['companyAddressNr']);
			$('#paymentClientZipcode').val(data['companyZipcode']);
			$('#paymentClientCity').val(data['companyAddressCity']);
			$('#paymentClientPhonenumber').val(data['companyPhonenumber']);
			$('#EMAIL').val(data['companyEmailadres']);
			
			//panel_payment.validateIdealForm();
			
		}else{
			$('#paymentClientCompanyName').val('');
			$('#paymentClientAddress').val('');
			$('#paymentClientZipcode').val('');
			$('#paymentClientCity').val('');
			$('#paymentClientPhonenumber').val('');
			$('#EMAIL').val('');
			
			//panel_payment.validateIdealForm();
			
			
		}
		
	},
	
	validateIdealForm: function()
	{
		if($('#paymentInfoIDeal').css('display') == 'block'){
			 formdata = $('#idealForm').serialize();				 
		}else if($('#invoiceForm').css('display') == 'block'){
			formdata = $('#invoiceForm').serialize();
		}		
		if($('#sponsorForm').length > 0){
			formdata = $('#sponsorForm').serialize();
		}
		
		
		
		// save the form to the database
		$.getJSON(	page.SERVERPATH+'/ajax/validateidealform/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey,
					formdata,
					panel_payment.otherInfoErrorsRecieved

				 );	
		
		clearInterval(panel_payment.waitInterval);
	
	},
	
	checkSponsorcode: function()
	{
		
		// save the form to the database
		$.getJSON(	page.SERVERPATH+'/ajax/checksponsorcode/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey,
					$('#sponsorcodeForm').serialize(),
					panel_payment.sponsorcodeHandle

					// set the paymentmethod etc
					//panel_payment.editForm
				 );	
		
		clearInterval(panel_payment.waitInterval);
	
	},
	
	sponsorcodeHandle: function(data){

			if(data['error'] == 'code_not_found'){
				$('#response_sponsor_code').html("<span class='error'>Opgegeven code is niet gevonden!</span>");
			}
			if(data['error'] == 'code_is_used'){
				$('#response_sponsor_code').html("<span class='error'>Opgegeven code is reeds gebruikt!</span>");
			}
			
			if(data['succes'] == 'true'){
				// lets call the controller again	
				page.loadContent(page.SERVERPATH+'/panel/payment');
			}

	},
	
	otherInfoErrorsRecieved:function(data)
	{
		$('input').removeClass('error');
		$('.selectboxError').removeClass('selectboxError');		

		if(data.message == 'error')
		{
			$.each(data.errors, function(i,item)
								{	
									element = $('[name="'+i+'"]');
									if(element.length > 0)
									{
										switch(element.attr('tagName').toLowerCase())
										{
											case 'select':
												$('#'+i+'_input').addClass('selectboxError');
												break;
											case 'input':
												switch(element.attr('type').toLowerCase())
												{
													case 'text':
													case 'password':
														$('input[name="'+i+'"]').addClass('error');
													break;
												}
											break;
										}
									}
								}
				);
            // manual check radio buttons!
            $('input[type="radio"]').each(
															 function()
															 {
																if($('[name="'+this.name+'"]:checked').length == 0)
																{
																	$('label[for^="'+this.name+'"] span').addClass('error');
																}else{
																	$('label[for^="'+this.name+'"] span').removeClass('error');
																}
															 }
														 )
		// manual check checkboxes buttons!
            $('input[type="checkbox"]').each(
															 function()
															 {
																if($('[name="'+this.name+'"]:checked').length == 0)
																{
																	$('label[for^="'+this.name+'"] span').addClass('error');
																}else{
																	$('label[for^="'+this.name+'"] span').removeClass('error');
																}
															 }
														 )
			//$('#otherinformation_next_step').hide();	
			// Verberg button
		}else{
			// laat button zien	
		}
	},	
	
	checkoutIDeal: function()
	{
        page.validating(true);
         formdata = $('#idealForm').serialize();
		// save the form to the database
		$.getJSON(	page.SERVERPATH+'/ajax/validateidealform/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey,
					formdata,
					panel_payment.checkoutIDealValidated

				 );	
		
		clearInterval(panel_payment.waitInterval);
	},

    checkoutIDealValidated:function(data)
    {
        page.validating(false);
        panel_payment.otherInfoErrorsRecieved(data);
        if($('#chk_accept3, #chk_accept2, #chk_accept').attr('checked') == true)
        {
            if($('#idealForm .error').length > 0)
            {
                alert('Je hebt niet alle gegevens correct ingevult, de punten in het rood dien je nog correct in te vullen.');
            }else{
                panel_payment.update('iDeal');
                page.loading(true);
            }
        }else{
            alert('Je dient akkoord te gaan met de algemene voorwaarden.');
        }
    },

	checkoutInvoice: function()
	{
         page.validating(true);
         formdata = $('#invoiceForm').serialize();
		// save the form to the database
		$.getJSON(	page.SERVERPATH+'/ajax/validateidealform/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey,
					formdata,
					panel_payment.checkoutInvoiceValidated

				 );
	},


    checkoutInvoiceValidated:function(data)
    {
       page.validating(false);
         panel_payment.otherInfoErrorsRecieved(data);
		if($('#chk_accept3, #chk_accept2, #chk_accept').attr('checked') == true)
        {
            if($('#invoiceForm .error').length > 0)
            {
                alert('Je hebt niet alle gegevens correct ingevult, de punten in het rood dien je nog correct in te vullen.');
            }else{
                panel_payment.saveInvoice('invoice');
                page.loading(true);
            }
        }else{
            alert('Je dient akkoord te gaan met de algemene voorwaarden.');
        }
    },

	checkoutSponsor: function()
	{
        page.validating(true);
        formdata = $('#sponsorForm').serialize();
		// save the form to the database
		$.getJSON(	page.SERVERPATH+'/ajax/validateidealform/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey,
					formdata,
					panel_payment.checkoutSponsorValidated

				 );
		
	},

    checkoutSponsorValidated:function(data)
    {
        page.validating(false);
        panel_payment.otherInfoErrorsRecieved(data);
        if($('#chk_accept3, #chk_accept2, #chk_accept').attr('checked') == true)
        {
            if($('#sponsorForm .error').length > 0)
            {
                alert('Je hebt niet alle gegevens correct ingevult, de punten in het rood dien je nog correct in te vullen.');
            }else{
                panel_payment.saveSponsor('sponsor');
                page.loading(true);
            }
        }else{
            alert('Je dient akkoord te gaan met de algemene voorwaarden.');
        }
    },
	
	editIdealForm: function(data){
		// set orderID
		$('#orderID').val(data['idealID']);
		$('#SHASign').val(data['sha']);
		$('#amount').val(data['totalAmount']);
		// submit the form
		$('#idealForm').submit();

	},
	
	finishByInvoice: function(data){
		window.location = page.SERVERPATH+'/payment/invoice/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey;
	},
	
	finishBySponsor: function(data){
		window.location = page.SERVERPATH+'/payment/sponsor/eventID/'+page.eventID+'/registrationkey/'+page.registrationKey;
	},
	
	previousStepClicked: function()
	{
		$('#btn_check').trigger('click');

	}	
	

};