Form = {
	init: function () {
	
	},
	
	iActiveContacts : 1,
	
	addContact: function () {
		$('#fieldset-person' + Form.iActiveContacts + ' .add-extra-contact').hide();
		$('#fieldset-person' + Form.iActiveContacts + ' .remove-contact').hide();
		
		Form.iActiveContacts++;
		
		$('#fieldset-person' + Form.iActiveContacts).slideDown();
		$('#fieldset-person' + Form.iActiveContacts+ ' .remove-contact').show();

		$('#input-active_contacts').val(Form.iActiveContacts);
		
		Form.setNrContacts();
		
	//	console.log(Form.iActiveContacts);
	},
	
	removeContact: function () {
		$('#fieldset-person' + Form.iActiveContacts ).slideUp();
		
		Form.iActiveContacts--;
		
		$('#fieldset-person' + Form.iActiveContacts + ' .add-extra-contact').show();
		$('#fieldset-person' + Form.iActiveContacts + ' .remove-contact').show();

		$('#input-active_contacts').val(Form.iActiveContacts);
		
		Form.setNrContacts();
		
	//	console.log(Form.iActiveContacts);
	},
	
	setNrContacts: function () {
        $.ajax({
            url: aModules.form.url + '/setNrActive',
            data: { 
        		form_id: 'donor_form',
        		active_contacts: Form.iActiveContacts
        	},
        	dataType: 'json',
            success: function(oReturn){
        	//	console.log(oReturn);
            }
        });
	},
	
	/* 
	 * options:
	 * 	ElementId: string value of template element id.
	 * 	bValid: false, true or null for setting the field to 'error', 'ok', or 'neutral'
	 * 
	 */
	setStatus: function (options) {
		eltId = options.elementId;
		bValid = options.isValid;

		//set field to neutral.
		$('#form-dt-' + eltId).removeClass('error');
		$('#form-dd-' + eltId)
			.removeClass('error')
			.find('.error').hide()
			.parent().find('.ok').hide()
			;
		
		// set to 'ok' or 'error'
		if (bValid === true) {
			$('#form-dd-' + eltId).find('.ok').show();
		} else if (bValid === false) {
			$('#form-dt-' + eltId).addClass('error');
			$('#form-dd-' + eltId)
				.addClass('error')
				.find('.error').show()
				;
		}
		
	},
	
	checkField: function (options) {
		//console.log(options);
		
		if (options.elementId == 'donortype') Form.donorTypeAction ($('#input-'+options.elementId).val());
		
		formId = (options.formId == undefined) ? 'donor_form' : options.formId;
		
        $.ajax({
            url: aModules.form.url,
            dataType: 'json',
            data: { 
        		element_id: options.elementId,
        		template_id: options.templateId,
        		form_id: formId,
        		text: $('#input-'+options.elementId).val()
        	},
            success: function(oResult){
            	//oResult = JSON.parse(oReturn);
            	
            	Form.setStatus(oResult);
            }
        });
        
	},
	
	donorTypeAction: function (sDonorType) {
		if (sDonorType == 'donateur_persoon') {
			$('#fieldset-company, #fieldset-person2, #fieldset-person3').slideUp();
			$('#fieldset-person1 .add-extra-contact').hide();
		} else {
			$('#fieldset-company').slideDown();
			if (Form.iActiveContacts == 1) $('#fieldset-person1 .add-extra-contact').show();
			if (Form.iActiveContacts >= 2) $('#fieldset-person2').slideDown();
			if (Form.iActiveContacts == 3) $('#fieldset-person3').slideDown();
		}
	},
	
	log: function (sText) {
		$('#log').prepend('<div>' + sText + '</div>');
	},
	
	
	startEdit: function (groupId) {
		
		//console.log('startedit:' + groupId );
		$('#editbutton_'+groupId).hide();
		$('#savebutton_'+groupId).show();
		
		$('#fieldset-' + groupId + ' input').removeClass('inactive').removeAttr('disabled');
		
	},
	
	saveEdit: function (groupId) {
        $.ajax({
        	type: 'POST',
            url: aModules.form.url + '?group_id='+groupId,
            data:  $('#form_donor').serialize(),
        	dataType: 'json',
            success: function(oResult){

				var currentFieldElm = $('#fieldset-'+groupId);
				$('p.error', currentFieldElm).hide();
        		
	    		$('#savebutton_'+groupId).hide();
	    		$('#editbutton_'+groupId).show();
	    		$('#fieldset-' + groupId + ' input').addClass('inactive').attr('disabled', 'disabled');
	    		$('#fieldset-' + groupId + ' span.ok').hide();
	    		$('#fieldset-' + groupId + ' span.error').hide();
            	//oResult = JSON.parse(oReturn);
            	
            	//Form.setStatus(oResult);
            },
			error: function(oResult){
				var currentFieldElm = $('#fieldset-'+groupId);
				$('p.error', currentFieldElm).show();
			}
        });
		
	},
	
	visitToPost: function () {
		//console.log('123');
		$('#input-company_post_street').val($('#input-company_street').val());
		$('#input-company_post_zipcode').val($('#input-company_zipcode').val());
		$('#input-company_post_city').val($('#input-company_city').val());
		
	}
	
	
	
	
	
}
