// brochures.view.js

// add datepickers
$(document).ready(function(){
	$('input.date').each(function() {
		input = $(this);
		
		settings = new Object;
		
		settings.showOn = 'both';
		settings.buttonImage = '/fileadmin/web/images/common/icons/calendar.gif';
		settings.buttonImageOnly = true;
		settings.showAnim = 'fadeIn';
		settings.minDate = new Date(2008, 1 - 1, 1);
		settings.maxDate = '+5y';
		settings.dateFormat = 'd.m.yy';
		
		if(input.val() != '') {
			date = input.val().split('.');
			settings.defaultDate =  new Date(parseInt(date[2]), parseInt(date[1]), parseInt(date[0]));
		}
		
		input.datepicker(settings);
	});
	
	// handle the automatic created departure date
	$('#form_arrival, #form_arrival2').change(function() {
		date = $(this).datepicker('getDate');
		
		$(this).parent().find('input.date:last')
			.datepicker('disable')
			.datepicker('change', {minDate: new Date(date.getTime() + (60 * 60 * 24 * 1 * 1000))})
			.datepicker('setDate', new Date(date.getTime() + (60 * 60 * 24 * 7 * 1000)))
			.datepicker('enable');
	});
});

// form validation
$(document).ready(function(){
	var errors = 0;
	
	// ie hack
	$('input[type=checkbox]').focus(function() {
		$(this).trigger('change');
	});
	
	$('input[type=checkbox]').blur(function() {
		$(this).trigger('change');
	});
	
	// Update linked depencies
	$('#form_brochure_place').change(function() {
		if ($(this).attr('checked')) {
			
			//$('#form_brochure_mail').removeAttr('checked');
			//$('#form_brochure_email').removeAttr('checked');
			
			// hide unneeded fieldsets
			if($(this).attr('checked') && !$('#form_brochure_mail').attr('checked') && !$('#form_brochure_email').attr('checked')) {
				$('fieldset.date:visible, fieldset.persons:visible, fieldset.accomodation:visible').slideUp(100);
			} else {
				$('fieldset.date:hidden, fieldset.persons:hidden, fieldset.accomodation:hidden').slideDown(100);
			}
			
			// update non-required fields
			
			//$('#form_email').removeClass('required');
			//$('#form_arrival').removeClass('required');
			//$('#form_departure').removeClass('required');
			
			$('#form_first_name').addClass('required');
			$('#form_last_name').addClass('required');
			$('#form_street').addClass('required');
			$('#form_postcode').addClass('required');
			$('#form_location').addClass('required');
			$('#form_country').addClass('required');
			
		} else {
			if(!$('#form_brochure_mail').attr('checked')) {
				
				$('#form_street').removeClass('required');
				$('#form_postcode').removeClass('required');
				$('#form_location').removeClass('required');
				$('#form_country').removeClass('required');
				
			}
		}
		
		$('input, span.note, select, textarea, #error').removeClass('error');
	});
	
	$('#form_brochure_mail').change(function() {
		if($(this).attr('checked')) {
			//$('#form_brochure_place').removeAttr('checked');
			
			// show unneeded fieldsets
			$('fieldset.date:hidden, fieldset.persons:hidden, fieldset.accomodation:hidden').slideDown(100);
			
			// show email as mandatory
			$('#form_arrival').addClass('required');
			$('#form_departure').addClass('required');
			$('#form_first_name').addClass('required');
			$('#form_last_name').addClass('required');
			$('#form_street').addClass('required');
			$('#form_postcode').addClass('required');
			$('#form_location').addClass('required');
			$('#form_country').addClass('required');
		} else {
			if(!$('#form_brochure_email').attr('checked')) {
				//$('#form_first_name').removeClass('required');
				//$('#form_last_name').removeClass('required');
				
				$('fieldset.date:visible, fieldset.persons:visible, fieldset.accomodation:visible').slideUp(100);
			}
			
			if(!$('#form_brochure_place').attr('checked')) {
				$('#form_street').removeClass('required');
				$('#form_postcode').removeClass('required');
				$('#form_location').removeClass('required');
				$('#form_country').removeClass('required');
			}
		}
		
		$('input, span.note, select, textarea, #error').removeClass('error');
	});
	
	$('#form_brochure_email').change(function() {
		if($(this).attr('checked')) {
			if($('#form_brochure_place').attr('checked')) {
				//$('#form_brochure_place').removeAttr('checked');
				
				$('#form_street').removeClass('required');
				$('#form_postcode').removeClass('required');
				$('#form_location').removeClass('required');
				$('#form_country').removeClass('required');
			}
			
			// show unneeded fieldsets
			$('fieldset.date:hidden, fieldset.persons:hidden, fieldset.accomodation:hidden').slideDown(100);
			
			// show email as mandatory
			$('#form_first_name').addClass('required');
			$('#form_last_name').addClass('required');
			$('#form_email').addClass('required');
			$('#form_arrival').addClass('required');
			$('#form_departure').addClass('required');
		} else {
			if(!$('#form_brochure_mail').attr('checked')) {
				//$('#form_first_name').removeClass('required');
				//$('#form_last_name').removeClass('required');
				
				$('fieldset.date:visible, fieldset.persons:visible, fieldset.accomodation:visible').slideUp(100);
			}
			
			$('#form_email').removeClass('required');
			$('#form_email').next().find('strong:visible').hide(0);
		}
		
		$('input, span.note, select, textarea, #error').removeClass('error');
	});
	
	// validate and submit form data
	$('#form_service').submit(function() {
		// get required input
		$(this).find('input.required, select.required').each(function() {
			if($(this).val() == '') {
				errors++;
				
				$(this).addClass('error');
			} else {
				$(this).removeClass('error');
			}
		});
		
		if($('#form_brochure_mail[checked], #form_brochure_email[checked]').size() > 0) {
			
			// get required checkboxes for board
			if($(this).find('input[name^=Verpfl][checked]').size() == 0) {
				errors++;
				
				$(this).find('p.board span.note').addClass('error');
			} else {
				$(this).find('p.board span.note').removeClass('error');
			}
			
			// get required checkboxes for housetype
			if($(this).find('input[name^=Haustyp][checked]').size() == 0) {
				errors++;
				
				$(this).find('p.housetype span.note').addClass('error');
			} else {
				$(this).find('p.housetype span.note').removeClass('error');
			}
			
			// get required checkboxes for category
			if($(this).find('input[name^=Klasse][checked]').size() == 0) {
				errors++;
				
				$(this).find('p.category span.note').addClass('error');
			} else {
				$(this).find('p.category span.note').removeClass('error');
			}
		}
		
		if($('fieldset.brochure p:first input[checked]').size() == 0) {
			errors++;
			
			$('fieldset.brochure p:first span.note').addClass('error');
		}
		
		// prevent form submission
		if(errors > 0) {
			errors = 0;
			
			$(this).find('p#error').addClass('error');
			
			return false;
		}
	});
});