function check_pesel(pesel)
{
	
	var wagi = new Array(1,3,7,9,1,3,7,9,1,3);
	var cyfraKont;
	var kont = 0;
	
	//Jeżlei podał same 0 lub też wklepał litery to kierunek zeschłe kaktusy
	if(parseInt(pesel) == 0 || !parseInt(pesel) || pesel.split("").length!=11){
		//alert("proszę podać poprawny numer PESEL");
		return false;
	}
	
	for(i=0; i<10; i++)
	{
		//alert(pesel.charAt(i))
		kont += wagi[i]*parseInt(pesel.charAt( i));
	}
	
	if(parseInt(pesel.charAt(10)) == ((10-kont%10)%10))
	{
		return true;
	}
	else
	{
		//podobno istnieją w obiegu niepoprawne pesele
		//alert("Pesel może być niepoprawny");
		return false;
	}
} 

function checkDate(form)
{
	var d1 = form.dateString_podst.value;
	var t1 = form.timeString_podst.value;
	var d2 = form.dateString_powrot.value;
	var t2 = form.timeString_powrot.value;
	
	var adata = d1.split('.');
	adata = adata.reverse();
	var dtxt = adata.join('');
	adata = t1.split(':');
	adata = dtxt + adata.join('');
	
	d1 = parseInt(adata, 10);
	
	adata = d2.split('.');
	adata = adata.reverse();
	dtxt = adata.join('');
	adata = t2.split(':');
	adata = dtxt + adata.join('');
	
	d2 = parseInt(adata, 10);
	
	//alert("Odczytane daty: d1: " + d1 + " d2: "+ d2);
	
	var is_ok = true; 
	if (d1 >= d2)
	{
		alert("Data powrotu musi być późniejsza niż data podstawienia");
		is_ok = false;
	}
	
	return is_ok;
}



function att(form, names)
{	
	var is_ok = true;
	var ret = true;
	//alert("att(): names:" + names + " names.length: " +names.length+" names[0]:" + names[0] + " | form: " + form);
	
    for(var i=0; i<names.length; i++)
    {
    	//alert("plik: "+names[i] + "value: " +form[names[i]].value + "   length:"+form[names[i]].value.length);
    	if (form[names[i]].value.length == 0) 
    		is_ok = false;
    }

	if(!is_ok)
	{
		ret = confirm("Nie załączono wszystkich plików, kontynuować mimo to?")
	}

	return ret;
}


$(document).ready(function(){
	
	//$.validator.setDefaults({
	//	submitHandler: function() { alert("submitted!"); }
	//});
	
	$.validator.addMethod("zipcode", function(value) {
		  //var regex = /^[0-9]{2}\-[0-9]{3}$/;
		var regex = /^\d{2}\-\d{3}$/;
		return regex.test(value);
	}, 'Proszę podać poprawy kod pocztowy dd-ddd');
		
	$.validator.addMethod("pesel", function(value) {
		return check_pesel(value);
	}, 'Proszę podać poprawny PESEL');
	
	$.validator.addMethod("phone", function(value) {
		  //var regex = /^[0-9]{2}\-[0-9]{3}$/;
		var regex1 = /^\+?[\d\- ]{5,20}\d$/
		//var regex2 = /^\+?([\d] *){6,}&/;
		return (regex1.test(value));
	}, 'Proszę podać poprawy numer telefonu');
	
	$.validator.addMethod(
			"datePL",
			function(value, element) {
				var check = false;
				var re = /^\d{1,2}\.\d{1,2}\.\d{4}$/;
				if( re.test(value)){
					var adata = value.split('.');
					var gg = parseInt(adata[0],10);
					var mm = parseInt(adata[1],10);
					var aaaa = parseInt(adata[2],10);
					var xdata = new Date(aaaa,mm-1,gg);
					if ( ( xdata.getFullYear() == aaaa ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == gg ) )
						check = true;
					else
						check = false;
				} else
					check = false;
				return this.optional(element) || check;
			}, 
			"Please enter a correct date"
		);

	$.validator.addMethod("time", function(value) {
		  //var regex = /^[0-9]{2}\-[0-9]{3}$/;
		var regex = /^\d{1,2}:\d{2}$/;
		if (!regex.test(value))
			return false;
		
		var time = value.split(":");
		var h = parseInt(time[0], 10);
		var m = parseInt(time[1], 10);
		
		return (h>=0 && h<24 && m>=0 && m<60);
		
	}, 'Proszę podać poprawy czas');
	
		
			
	$('#buskarta').validate({
		rules: 	{
				Karta_nazwisko: "required",
				Karta_imie: "required",
				Karta_adres: "required",
				Karta_kod: {
					required: true,
					zipcode: true
				},
				Karta_poczta: "required",
				Karta_pesel: {
					required: true,
					digits:true,
					pesel:true
				},				
				Karta_tel: {
					required: true,
					phone: true
				},
				Karta_foto:{
					minlength: 2
				}
		},
		messages: {
					Karta_nazwisko: "Proszę podać nazwisko",
					Karta_imie: "Proszę podać imię",
					Karta_adres: "Proszę podać adres zamieszkania",
					Karta_kod: "Proszę podać poprawy kod pocztowy (dd-ddd)",
					Karta_poczta: "Proszę podać pocztę",
					Karta_pesel: "Proszę podać poprawny PESEL",
					Karta_tel: "Proszę podać poprawny numer telefonu"					
				},				
	   submitHandler: function(form) {
				
				if (att(form, ["Karta_foto", "Karta_wplata"]))
				{
					form.submit();
				}
			}

	});
	
	$("#zamowienie_form").validate({
		rules: 	{
				zamowienie_nazwisko: "required",
				zamowienie_adres: "required",
				zamowienie_kod: {
					required:true,
					zipcode:true
				},
				zamowienie_tel: {
					required:true,
					phone: true
				},
				zamowienie_mail: {
					required:true,
					email:true
				},
				dateString_podst: {
					required: true,
					datePL: true
				},
				dateString_powrot:{
					required: true,
					datePL: true
				},
				timeString_podst:{
					required: true,
					time: true
				},
				timeString_powrot: {
					required: true,
					time: true
				}
			},
			messages: {
				zamowienie_nazwisko: "Proszę podać imię i nazwisko",
				zamowienie_adres: "Proszę podać adres",
				zamowienie_kod: "Proszę podać poprawny kod pocztowy (dd-ddd)",
				zamowienie_tel: "Proszę podać poprawny numer telefonu",
				zamowienie_mail: "Proszę podać poprawny adres email",
				dateString_podst: "Proszę podać poprawną datę (dd.mm.yyyy)",
				dateString_powrot: "Proszę podać poprawną datę (dd.mm.yyyy)",
				timeString_pod: "Proszę podać poprawny czas",
				timeString_powrot: "Proszę podać poprawny czas"
			},
			submitHandler: function(form) {

				if (checkDate(form) && att(form, ["zamowienie_program"]))
				{
					form.submit();
				}
	
			}
	});
	
	$("#wynajem_form").validate({
		rules: {
				wycena_nazwisko: "required",
				wycena_adres: "required",
				wycena_kod:{
					required: true,
					zipcode: true
				},
				wycena_tel:{
					required: true,
					phone: true
				},
				wycena_mail:{
					required: true,
					email: true
				},
				dateString_podst: {
					required: true,
					datePL: true
				},
				timeString_podst: {
					required: true,
					time: true
				},
				dateString_powrot: {
					required: true,
					datePL: true
				},
				timeString_powrot: {
					required: true,
					time: true
				}
		},
		messages: {
				wycena_nazwisko: "Proszę podać imię i nazwisko",
				wycena_adres: "Proszę podać adres",
				wycena_kod: "Proszę podać poprawny kod pocztowy (dd-ddd)",
				wycena_tel: "Proszę podać porawny numer telefonu",
				wycena_mail: "Proszę podać poprawny adres email",
				dateString_podst: "Proszę podać poprawną datę",
				timeString_podst: "Proszę podać poprawny czas",
				dateString_powrot: "Proszę podać poprawną datę",				
				timeString_powrot: "Proszę podać poprawny czas"
		},
		submitHandler: function(form) {

			if (checkDate(form) && att(form, ["wycena_program_file"]))
			{
				//alert("Submited");
				//return false;
				form.submit();
			}

		}
	});
	
	
});




