var options = { 
        //target:        '#output1',   // target element(s) to be updated with server response 
        beforeSubmit:  validate,  // pre-submit callback 
		//timeout: 10000,
		error: showError,
		success:       showResponse  // post-submit callback 
		
        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    };

// prepare the form when the DOM is ready 
jQuery(document).ready(function() {  
    // bind form using 'ajaxForm' 
    jQuery('#ajaxForm').ajaxForm(options); 
}); 

function showError()  {
	alert('Wystąpił błąd!');
} 
 
function showResponse(responseText, statusText, xhr, $form)  { 
	//alert(responseText);
	
	if(responseText == 'OK_RESERVD_PL') {
		jQuery("#ajaxForm").remove();
		jQuery(".Content").append("Dziękujemy za dokonanie wstępnej rezerwacji. Wkrótce się z Państwem skontaktujemy.");
	} else if(responseText == 'OK_RESERVD_DE') {
		jQuery("#ajaxForm").remove();
		jQuery(".Content").append("Wir bedanken uns für die vorgenommene Buchung. Wir setzen uns umgehend mit Ihnen in Verbindung.");
	} else if(responseText == 'OK_RESERVD_EN') {
		jQuery("#ajaxForm").remove();
		jQuery(".Content").append("Thank you for making your reservation. We will son get back to you.");
	} else if(responseText == 'OK_RESERVD_FR') {
		jQuery("#ajaxForm").remove();
		jQuery(".Content").append("Merci d’avoir effectué votre réservation. Nous prendrons prochainement contact avec vous.");
	} else if(responseText == 'OK_MAIL_PL') { 
		jQuery("#ajaxForm").remove();
		jQuery(".Content").append("Dziękujemy za wysłanie wiadomości.");
	} else if(responseText == 'OK_MAIL_DE') { 
		jQuery("#ajaxForm").remove();
		jQuery(".Content").append("Wir bedanken uns für Ihre Nachricht.");
	} else if(responseText == 'OK_MAIL_EN') { 
		jQuery("#ajaxForm").remove();
		jQuery(".Content").append("Thank you for sending the information.");
	} else if(responseText == 'OK_MAIL_FR') { 
		jQuery("#ajaxForm").remove();
		jQuery(".Content").append("Merci pour l’envoi de l’information.");
	} else if(responseText == 'ERROR_PL') { 
		alert("Wystąpił nieoczekiwany błąd. Za problemy przepraszamy.");
	} else if(responseText == 'ERROR_DE') { 
		alert("Es ist ein Fehler aufgetreten. Wir bitten um Entschuldigung.");
	} else if(responseText == 'ERROR_EN') { 
		alert("An error has occured. Please accept our apologies.");
	} else if(responseText == 'ERROR_FR') { 
		alert("Une erreur est survenue. Veuillez nous en excuser.");
	} else if(responseText == 'ERROR_DATE_PL') { 
		alert("W wybranym terminie apartament jest zajęty. Prosimy zmienić termin.");
	} else if(responseText == 'ERROR_DATE_DE') { 
		alert("Leider ist die Ferienwohnung in dem gewünschten Zeitraum bereits ausgebucht.");
	} else if(responseText == 'ERROR_DATE_EN') { 
		alert("Apartment not available on selected dates. Please select another date.");
	} else if(responseText == 'ERROR_DATE_FR') { 
		alert("Appartement indisponible aux dates choisies. Merci de choisir une autre date.");
	} else if(responseText == 'ERROR_AGAIN_PL') { 
		alert("Rezerwacja została już dokonana dla danego apartamentu.");
	} else if(responseText == 'ERROR_AGAIN_DE') { 
		alert("Die Buchung für das entsprechende Appartement wurde bereits vorgenommen.");
	} else if(responseText == 'ERROR_AGAIN_EN') { 
		alert("The reservation of the selected apartment has already been confirmed.");
	} else if(responseText == 'ERROR_AGAIN_FR') { 
		alert("La réservation de l’appartement sélectionné a déjà été effectuée.");
	} else if(responseText == 'ERROR_AGAIN_MAIL_PL') { 
		alert("Twoja wiadomość została już wysłana.");
	} else if(responseText == 'ERROR_AGAIN_MAIL_DE') { 
		alert("Ihre Nachricht  wurde bereits versendet.");
	} else if(responseText == 'ERROR_AGAIN_MAIL_EN') { 
		alert("Your request has been sent.");
	} else if(responseText == 'ERROR_AGAIN_MAIL_FR') { 
		alert("Votre demande a été envoyée.");
	} else {
		alert("Wystąpił nieoczekiwany błąd. Za problemy przepraszamy. Es ist ein Fehler aufgetreten. Wir bitten um Entschuldigung. An error has occured. Please accept our apologies. Une erreur est survenue. Veuillez nous en excuser. (ERROR)");
	}
} 

function validate(formData, jqForm, options) { 
	//var queryString = jQuery.param(formData); 
	//	alert(queryString); 	
	var form = jqForm[0];
	var lang = jQuery("#ajaxForm").attr("lang");
	
	if(form.przy_date_act) {
		if(form.przy_date_act.value == '0-0-0') {
			if(lang == 'pl') {
				alert("Wybierz datę przyjazdu. (aby to zrobic należy kliknąć datę na kalendarzu)");
			} else if(lang == 'de') {
				alert("Geben Sie bitte das Anreisedatum an.");
			} else if(lang == 'en') {
				alert("Select date of arrival.");
			} else if(lang == 'fr') {
				alert("Choisir la date d’arrivée.");
			}
			return false;
		}
		
		if(form.wyj_date_act.value == '0-0-0') {
			if(lang == 'pl') {
				alert("Wybierz datę wyjazdu. (aby to zrobic należy kliknąć datę na kalendarzu)");
			} else if(lang == 'de') {
				alert("Geben Sie bitte das Abreisedatum an.");
			} else if(lang == 'en') {
				alert("Select date of departure.");
			} else if(lang == 'fr') {
				alert("Choisir la date de départ.");
			}
			return false;
		}
		
		var date1 = form.przy_date_act.value;
		date1 = date1.split("-");
		
		var date2 = form.wyj_date_act.value;
		date2 = date2.split("-");
		
		if(date1[0] > date2[0] || (date1[1] > date2[1] && date1[0] == date2[0]) || (date1[2] > date2[2] && date1[1] == date2[1] && date1[0] == date2[0])) {
			if(lang == 'pl') {
				alert("Data wyjazdu nie może być wcześniejsza niż data przyjazdu.");
			} else if(lang == 'de') {
				alert("Das Abreisedatum darf nicht vor dem Anreisedatum liegen.");
			} else if(lang == 'en') {
				alert("of departure cannot be prior to date of arrival.");
			} else if(lang == 'fr') {
				alert("La date de départ ne peut être antérieure à la date d’arrivée.");
			}
			return false; 
		} else if (date1[2] == date2[2] && date1[1] <= date2[1] && date1[0] <= date2[0]) {
			if(lang == 'pl') {
				alert("Termin przyjazdu i wyjazdu nie może odbywać się jednego dnia.");
			} else if(lang == 'de') {
				alert("Die An- und Abreise dürfen nicht an gleichem Tag stattfinden.");
			} else if(lang == 'en') {
				alert("Arrival and departure cannot take place on the same day.");
			} else if(lang == 'fr') {
				alert("L’arrivée et le départ ne peuvent avoir lieu le même jour.");
			}
			return false;
		}
		
		if(isNaN(form.fOsob.value)) { 
			if(lang == 'pl') {
				alert('Błędnie wprowadzona ilość osób.');
			} else if(lang == 'de') {
				alert('Die Anzahl der Personen wurde falsch eingetragen.');
			} else if(lang == 'en') {
				alert('Wrong entry. Check number of guests.');
			} else if(lang == 'fr') {
				alert('Vérifier le nombre de personnes.');
			}			
			return false;
		}
	}
	
    for (var i=0; i < formData.length; i++) { 
		if (!formData[i].value) { 
			if(formData[i].name == 'fUwagi') continue;
			
			if(lang == 'pl') {
				 alert("Wypełnji wszystkie pola.");
			} else if(lang == 'de') {
				 alert("Bitte füllen Sie alle Felder aus.");
			} else if(lang == 'en') {
				 alert("Fill all spaces.");
			} else if(lang == 'fr') {
				 alert("Compléter tous les champs.");
			}	
            return false; 
        }
    }
	
	if(!validateEmail(form.fEmail.value,lang)) { return false; }
	
	if(form.fRegulamin) {
		if(!form.fRegulamin.checked) {
			if(lang == 'pl') {
				 alert("W celu dokonania rezerwacji musisz potwierdzić regulamin.");
			} else if(lang == 'de') {
				 alert("Um die Buchung durchführen zu können, müssen unsere Nutzungsbedingungen akzeptiert werden.");
			} else if(lang == 'en') {
				 alert("You must confirm that you read and agree with the terms before continuing to make your reservation.");
			} else if(lang == 'fr') {
				 alert("Vous devez confirmer avoir lu le règlement avant de continuer la réservation.");
			}
			return false; 
		}
	}
}
function validateEmail(email,lang) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(email) == false) {
	if(lang == 'pl') {
		alert('Błędny adres e-mail.');
	} else if(lang == 'de') {
		alert('Falsche E-Mail-Adresse.');
	} else if(lang == 'en') {
		alert('Wrong email address.');
	} else if(lang == 'fr') {
		alert('Adresse email incorrecte.');
	}
      return false;
   } else return true;
}
