jQuery(document).ready(function(){

	/*Formularz */
	validateFormRegister();
	validateFormItemContact();
	validateFormOpinion();
	validateFormOpinionMail();
	validateFormReservation();
	validateFormLogin();
	validateFormRemindLogin();
	validateFormChangePasswd();
	validateFormReclamation();

});

function isNumberKey(evt)
{
	try
	{
		var charCode = (evt.which) ? evt.which : event.keyCode
	    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode!=45)
	    	return false;
	}catch(err) { }
	
	return true;
}

function ajaxSubmitForm( form, ip_resp )
{
	jQuery('#'+ip_resp+' .ajaxpreloader').removeClass('hidden');
	var url = jQuery(form).attr('action');
	var pars = jQuery(form).serialize();
	jQuery.post(url, pars, function(data){
		jQuery('#'+ip_resp+' .ajaxpreloader').addClass('hidden');
		if( ip_resp != ''){
			jQuery('#'+ip_resp).html(data);

		}
	});
}

function saveReservation( form )
{
	jQuery('#reservationformbox .ajaxpreloader').removeClass('hidden');
	
	var url = jQuery(form).attr('action');
	var pars = jQuery(form).serialize();
	jQuery.post(url, pars, function(data){
		jQuery('#reservationformbox .ajaxpreloader').addClass('hidden');
		if(data == 'false')
		{
			if(pos = strpos(document.location.href, '?')){
				document.location.href = document.location.href.substr(0, pos)+'?tab=2';
			}else{
				document.location.href = document.location.href+'?tab=2';
			}
		}else{
			jQuery('#reservationformbox').addClass('hidden');
			jQuery('#confirmreservationbox').html(data);	
		}
	});
}

function strpos (haystack, needle, offset) {
    var i = (haystack + '').indexOf(needle, (offset || 0));
    return i === -1 ? false : i;
}

function confirmReservation( form )
{
	jQuery('#confirmreservationboxinside .ajaxpreloader').removeClass('hidden');

	var url = jQuery(form).attr('action');
	var pars = jQuery(form).serialize();
	jQuery.post(url, pars, function(data){
		jQuery('#confirmreservationboxinside .ajaxpreloader').addClass('hidden');
		jQuery('#confirmreservationbox').html(data);
	});
}

function ajaxSubmitFormOpinion( form )
{
//	jQuery('#'+ip_resp+' .ajaxpreloader').removeClass('hidden');
	var url = jQuery(form).attr('action');
	var pars = jQuery(form).serialize();
	jQuery(form).each (function(){
				this.reset();
	});
	jQuery.post(url, pars, function(json){
//		jQuery('#'+ip_resp+' .ajaxpreloader').addClass('hidden');
		eval("var args = " + json);
		if (args.result == 'true'){
			jQuery.fn.colorbox({href:'/parking/newratemail?token='+args.token,iframe:true,innerHeight:"265px",innerWidth:"456px",open:true});
		}else{
			jQuery.fn.colorbox({href:'/parking/newratefailed',iframe:true,innerHeight:"255px",innerWidth:"456px",open:true});
		}

	});
}

function searchReclamation( form )
{
	jQuery('#reclamationbox .ajaxpreloader').removeClass('hidden');
	
	var url = jQuery(form).attr('action');
	var pars = jQuery(form).serialize();
//	jQuery(form).each (function(){
//				this.reset();
//	});
	jQuery.post(url, pars, function(data){
		jQuery('#reclamationbox').html(data);

	});
}
function ajaxSubmitFormRemindLogin( form )
{
	jQuery('#remindloginbox .ajaxpreloader').removeClass('hidden');
	var url = jQuery(form).attr('action');
	var pars = jQuery(form).serialize();
	jQuery(form).each (function(){
				this.reset();
	});
	jQuery.post(url, pars, function(data){
		jQuery('#remindloginbox .loginboxcontent').html(data);

	});
}

function ajaxSubmitFormChangePasswd( form )
{
	jQuery('#changepasswdbox .ajaxpreloader').removeClass('hidden');
	var url = jQuery(form).attr('action');
	var pars = jQuery(form).serialize();
	jQuery(form).each (function(){
				this.reset();
	});
	jQuery.post(url, pars, function(data){
		jQuery('#changepasswdbox .loginboxcontent').html(data);

	});
}


function validateFormLogin(){
	var vformkariera = jQuery('#formlogin').validate({
		errorPlacement: function(error, element) {
			//error.insertAfter(element.parent().children(':last-child')).css({display:"none"}).slideDown();
		},

		submitHandler: function(form) {
			form.submit();
			return false;

   		},

		errorElement: "span",

		highlight: function(element, errorClass) {
			jQuery(element).parent().parent().addClass('perror');
		},
		unhighlight: function(element, errorClass) {
			jQuery(element).parent().parent().removeClass('perror');
		},
		rules: {
	  		loginemail:{
	  			required: true,
	  			email: true
	  		},
	  		loginpasswd:{
	  			required: true
	  		}
		},
		messages: {
			loginemail:{
				required: '',
				email: ''

			},
			loginpasswd:{
				required: ''
			}
		}
	});
}
function validateFormRemindLogin(){
	var vformkariera = jQuery('#formremindlogin').validate({
		errorPlacement: function(error, element) {
			//error.insertAfter(element.parent().children(':last-child')).css({display:"none"}).slideDown();
		},

		submitHandler: function(form) {
			ajaxSubmitFormRemindLogin( form );
			return false;
   		},

		errorElement: "span",

		highlight: function(element, errorClass) {
			jQuery(element).parent().parent().addClass('perror');
		},
		unhighlight: function(element, errorClass) {
			jQuery(element).parent().parent().removeClass('perror');
		},
		rules: {
	  		remindloginemail:{
	  			required: true,
	  			email: true
	  		}
		},
		messages: {
			remindloginemail:{
				required: '',
				email: ''

			}
		}
	});
}

function validateFormChangePasswd(){
	var vformkariera = jQuery('#formchangepasswd').validate({
		errorPlacement: function(error, element) {
			//error.insertAfter(element.parent().children(':last-child')).css({display:"none"}).slideDown();
		},

		submitHandler: function(form) {
			ajaxSubmitFormChangePasswd( form );
			return false;
   		},

		errorElement: "span",

		highlight: function(element, errorClass) {
			jQuery(element).parent().parent().addClass('perror');
		},
		unhighlight: function(element, errorClass) {
			jQuery(element).parent().parent().removeClass('perror');
		},
		rules: {
	  		newpasswd:{
	  			required: true
	  		}
		},
		messages: {
			newpasswd:{
				required: ''

			}
		}
	});
}
function validateFormOpinion(){
	var vformkariera = jQuery('#formopinion').validate({
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent().children(':last-child')).css({display:"none"}).slideDown();
		},

		submitHandler: function(form) {
			ajaxSubmitFormOpinion( form );
			return false;

//			form.submit();
//			return false;

   		},

		errorElement: "span",

		highlight: function(element, errorClass) {
			jQuery(element).parent().addClass('error');
		},
		unhighlight: function(element, errorClass) {
			jQuery(element).parent().removeClass('error');
		},
		rules: {
	  		ratecontent:{
	  			required: true
	  		},
	  		ratename:{
	  			required: true
	  		},
	  		ratecar:{
	  			required: true
	  		}
		},
		messages: {
			ratecontent:{
				required: 'BŁĄD!!! Wpisz swoją opinię.'

			},
			ratename:{
				required: 'Podaj swoje imię'
			},
			ratecar:{
				required: 'Podaj swój samochód'
			}
		}
	});
}
function validateFormOpinionMail(){
	var vformopinionmail = jQuery('#formopinionmail').validate({
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent().children(':last-child')).css({display:"none"}).slideDown();
//			element.parent().parent().addClass('error');
		},

		submitHandler: function(form) {
			ajaxSubmitForm( form, 'newratemailthanks' );
			return false;
   		},

		errorElement: "span",

		highlight: function(element, errorClass) {
			jQuery(element).parent().parent().addClass('error');
		},
		unhighlight: function(element, errorClass) {
				jQuery(element).parent().parent().removeClass('error');
		},

		rules: {
	  		confirmmail:{
	  			required: true,
	  			email: true
	  		}
		},
		messages: {
			confirmmail:{
				required: 'Podaj adres e-mail',
				email: 'Niepoprawny adres e-mail'
			}
		}
	});
}


function validateFormItemContact(){
	var formrejestracja = jQuery('#itemcontactform').validate({
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent().parent().children(':first-child')).css({display:"none"}).slideDown();
		},

		submitHandler: function(form) {
			ajaxSubmitForm( form, 'itemcontactbody' );
			return false;
   		},

		errorElement: "span",

		highlight: function(element, errorClass) {
			jQuery(element).parent().parent().addClass('perror');
		},
		unhighlight: function(element, errorClass) {
				jQuery(element).parent().parent().removeClass('perror');
			},
		rules: {
	  		name:{
	  			required: true
	  		},
	  		email:{
	  			required: true,
	  			email: true
	  		},
	  		content:{
	  			required: true
	  		}
		},
		messages: {
			name:{
				required: 'Podaj swoje imię'
			},
			email:{
				required: 'Podaj adres e-mail',
				email: 'Nieprawidłowy adres e-mail'
			},
			content:{
				required: 'Wpisz treść zapytania'
			}
		}
	});
}

function validateFormRegister(){
	var formrejestracja = jQuery('#registerform').validate({
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent().parent().children(':first-child')).css({display:"none"}).slideDown();
		},

		submitHandler: function(form) {
			form.submit();
   		},

		errorElement: "span",

		highlight: function(element, errorClass) {
			jQuery(element).parent().parent().addClass('perror');
		},
		unhighlight: function(element, errorClass) {
				jQuery(element).parent().parent().removeClass('perror');
			},
		rules: {
	  		name:{
	  			required: true
	  		},
	  		street:{
	  			required: true
	  		},
	  		postal:{
	  			required: true
	  		},
	  		phone:{
	  			required: true
	  		},
	  		phone_marketing:{
	  			required: true
	  		},
	  		id_airport:{
	  			required: true
	  		},
	  		url:{
	  			required: true
	  		},
	  		email:{
	  			required: true,
	  			email: true
	  		}
		},
		messages: {
			name:{
				required: 'Podaj nazwę parkingu'
			},
			street:{
				required: 'Podaj adres parkingu'
			},
			postal:{
				required: 'Podaj kod pocztowy i miasto'
			},
			phone:{
				required: 'Podaj telefon'
			},
			phone_marketing:{
				required: 'Podaj telefon do marketingu'
			},
			id_airport:{
				required: 'Wybierz lotnisko'
			},
			url:{
				required: 'Podaj adres strony www'
			},
			email:{
				required: 'Podaj adres e-mail',
				email: 'Nieprawidłowy adres e-mail'
			}
		}
	});
}

function validateFormReclamation(){
	var newsletterForm = jQuery('#reclamationform').validate({
		errorPlacement: function(error, element) {
			//error.insertAfter(element.parent().children(':last-child')).css({display:"none"}).slideDown();
		},

		submitHandler: function(form) {
			searchReclamation(form);
   		},

		errorElement: "span",

		highlight: function(element, errorClass) {
		},
		unhighlight: function(element, errorClass) {
			},
		rules: {
	  		number:{
	  			required: true
	  		}
		},
		messages: {
			number:{
				required: ''
			}
		}
	});
}

function validateNewsletterForm(){
	var newsletterForm = jQuery('#newsletterForm').validate({
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent().children(':last-child')).css({display:"none"}).slideDown();
		},

		submitHandler: function(form) {
			saveNewsletter(form);
   		},

		errorElement: "span",

		highlight: function(element, errorClass) {
		},
		unhighlight: function(element, errorClass) {
			},
		rules: {
	  		newsletter_name:{
	  			required: true
	  		},
	  		newsletter_email:{
	  			required: true,
	  			email: true
	  		}
		},
		messages: {
			newsletter_name:{
				required: 'Pole jest wymagane!'
			},
			newsletter_email:{
				required: 'Pole jest wymagane!',
				email:	'Błędny adres e-mail!'
			}
		}
	});
}

function validateFormReservation(){
	var newsletterForm = jQuery('#reservationform').validate({
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent().parent().children(':last-child')).css({display:"none"}).slideDown();
		},

		submitHandler: function(form) {
			saveReservation(form);
   		},

		errorElement: "span",

		highlight: function(element, errorClass) {
			jQuery(element).parent().parent().children('.ok').css({display:"none"});
		},
		unhighlight: function(element, errorClass) {
			if(jQuery(element).parent().parent().children('.ok').css('display') == 'none'){
				jQuery(element).parent().parent().children('.ok').slideDown();
			}
		},
		rules: {
	  		date_start:{
	  			required: true
	  		},
	  		date_end:{
	  			required: true
	  		},
	  		name:{
	  			required: true
	  		},
	  		people:{
	  			required: true
	  		},
	  		phone:{
	  			required: true
	  		},
	  		accept:{
	  			required: true
	  		},
	  		email:{
	  			required: true,
	  			email: true
	  		}
		},
		messages: {
			date_start:{
				required: 'Podaj datę przyjazdu na parking.'
			},
			date_end:{
				required: 'Podaj datę wyjazdu z parkingu.'
			},
			name:{
				required: 'Podaj imię i nazwisko.'
			},
			people:{
				required: 'Podaj ilość osób'
			},
			phone:{
				required: 'Podaj telefon kontaktowy'
			},
			accept:{
				required: 'Zaakceptuj regulamin'
			},
			email:{
				required: 'Podaj adres e-mail.',
				email:	'Podaj prawidłowy adres e-mail.'
			}
		}
	});
}
