$(document).ready(function(){
	$("#location").change(function(){
		var loc = $("#location").val();
		var error = 0;
		
		if (loc == "") {
			$("#location").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#location").css("border", "");
		}
		
		if (error == 1) {
			alert("Select a valid location.");
			return false;
		}
		else {
			$.ajax({
				type: "post",
				url: "includes/verifylocations.php",
				data: {loc:loc},
				success: function(datos) {
					var rpt = datos;
					if (rpt == 1) {
						$("#pickup-address").css("display", "inline");
						$("#pickup-zip").css("display", "inline");
					}
					else {
						$("#pickup-address").css("display", "none");
						$("#pickup-zip").css("display", "none");
					}
				}
			});
		}
	});
	
	$("#destination").change(function(){
		var des = $("#destination").val();
		var error = 0;
		
		if (des == "") {
			$("#destination").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#destination").css("border", "");
		}
		
		if (error == 1) {
			alert("Select a valid destination.");
			return false;
		}
		else {
			$.ajax({
				type: "post",
				url: "includes/verifylocations.php",
				data: {des:des},
				success: function(datos) {
					var rpt = datos;
					if (rpt == 1) {
						$("#destination-address").css("display", "inline");
						$("#destination-zip").css("display", "inline");
					}
					else {
						$("#destination-address").css("display", "none");
						$("#destination-zip").css("display", "none");
					}
				}
			});
		}
	});
	
	$("#reserving").click(function(){
		var fec = new Date();
		var fecd = fec.getDate();
		var fecm = fec.getMonth() + 1;
		var feca = fec.getFullYear();
		var fecact = fecm+"/"+fecd+"/"+feca;
		var myfecact = Date.parse(fecact);
		
		var dig = new Date();
		var digh = String(dig.getHours());
		var digm = String(dig.getMinutes());
		var digact = digh + digm;
		var digactval = parseInt(digact) + 200;
		
		var loc = $("#location").val();
		var adloc = $("#pickup-address").attr("value");
		var zploc = $("#pickup-zip").attr("value");
		var des = $("#destination").val();
		var addes = $("#destination-address").attr("value");
		var zpdes = $("#destination-zip").attr("value");
		
		var dat = $("#date").attr("value");
		var datn = dat.split("-");
		var ndat = datn[2] + "-" + datn[0] + "-" + datn[1];
		var fecsel = datn[0] + "/" + datn[1] + "/" + datn[2];
		var myfecsel = Date.parse(fecsel);
		var hou = $("#hour").val();
		var mit = $("#minute").val();
		var digsel = hou + mit;
		
		var pas = $("#passengers").val();
		var lug = $("#luggages").val();
		
		var pna = $("#pname").val();
		var pem = $("#pemail").val();
		var pte = $("#ptelephone").val();
		var hte = $("#htelephone").val();
		
		var con = $("#reservation_form_big");
		var expnum = /^[0-9]{5}$/;
		var exptel = /^[0-9]{7,15}$/;
		var expltr = /^[a-zA-Z0-9+\-|\&|\#|\.|\,| ]{4,20}$/;
		var expnom = /^[a-zA-Z ]{4,20}$/;
		var expdat = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
		var expema = /(^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*)@([0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,3})$/;
		
		var error = 0;
		
		if (myfecsel < myfecact) {
			$("#date").css("border", "2px #F00 solid");
			error = 8;
		}
		else {
			if ((parseInt(digsel) < digactval) && (myfecsel == myfecact)) {
				$("#hour").css("border", "2px #F00 solid");
				$("#minute").css("border", "2px #F00 solid");
				error = 8;
			}
			else {
				$("#hour").css("border", "2px #0F0 solid");
				$("#minute").css("border", "2px #0F0 solid");
			}
			
			$("#date").css("border", "2px #0F0 solid");
		}
		
		if (loc == "") {
			$("#location").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#location").css("border", "");
		}
		
		if (loc > 3 && (adloc == "" || adloc == "Address")) {
			$("#pickup-address").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (loc > 3 && (adloc != "" || adloc != "Address") && !expltr.test(adloc)) {
			$("#pickup-address").css("border", "1px #F00 solid");
			error = 3;
		}
		else {
			$("#pickup-address").css("border", "");
		}
		
		/*
		if (loc > 3 && (zploc == "" || zploc == "Zip")) {
			$("#pickup-zip").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (loc > 3 && (zploc != "" || zploc != "Zip") && !expnum.test(zploc)) {
			$("#pickup-zip").css("border", "1px #F00 solid");
			error = 2;
		}
		else {
			$("#pickup-zip").css("border", "");
		}
		*/
		
		if (des == "") {
			$("#destination").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#destination").css("border", "");
		}
		
		if (des > 3 && (addes == "" || addes == "Address")) {
			$("#destination-address").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (des > 3 && (addes != "" || addes != "Address") && !expltr.test(addes)) {
			$("#destination-address").css("border", "1px #F00 solid");
			error = 3;
		}
		else {
			$("#destination-address").css("border", "");
		}
		
		/*
		if (des > 3 && (zpdes == "" || zpdes == "Zip")) {
			$("#destination-zip").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (des > 3 && (zpdes != "" || zpdes != "Zip") && !expnum.test(zpdes)) {
			$("#destination-zip").css("border", "1px #F00 solid");
			error = 2;
		}
		else {
			$("#destination-zip").css("border", "");
		}
		*/
		
		if (dat == "") {
			$("#date").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (!expdat.test(dat)) {
			$("#date").css("border", "1px #F00 solid");
			error = 4;
		}
		else {
			$("#date").css("border", "");
		}
		
		if (hou == "") {
			$("#hour").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#hour").css("border", "");
		}
		
		if (mit == "") {
			$("#minute").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#minute").css("border", "");
		}
		
		if (pas == "") {
			$("#passengers").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#passengers").css("border", "");
		}
		
		if (lug == "") {
			$("#luggages").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#luggages").css("border", "");
		}
		
		if (pna == "") {
			$("#pname").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (!expnom.test(pna)) {
			$("#pname").css("border", "1px #F00 solid");
			error = 7;
		}
		else {
			$("#pname").css("border", "");
		}
		
		if (pem == "") {
			$("#pemail").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (!expema.test(pem)) {
			$("#pemail").css("border", "1px #F00 solid");
			error = 5;
		}
		else {
			$("#pemail").css("border", "");
		}
		
		if (pte == "") {
			$("#ptelephone").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (!exptel.test(pte)) {
			$("#ptelephone").css("border", "1px #F00 solid");
			error = 6;
		}
		else {
			$("#ptelephone").css("border", "");
		}
		
		if (error == 1) {
			alert("All fields marked with red are required");
			return false;
		}
		else if (error == 2) {
			alert("Only 5 digit numbers.");
			return false;
		}
		else if (error == 3) {
			alert("Can only enter 4 to 20 alphanumeric characters, including spaces.");
			return false;
		}
		else if (error == 4) {
			alert("The date format is invalid. Select the date again.");
			return false;
		}
		else if (error == 5) {
			alert("The email is invalid.");
			return false;
		}
		else if (error == 6) {
			alert("Enter 7 to 15 numbers for the phone.");
			return false;
		}
		else if (error == 7) {
			alert("Enter only letters, 4 to 20 characters, including spaces for tha name.");
			return false;
		}
		else if (error == 8) {
			alert("The date or time selected is invalid because it is passed.");
			return false;
		}
		else {
			$.ajax({
				type: "post",
				url: "includes/savereservation.php",
				data: {loc:loc, adloc:escape(adloc), zploc:zploc, des:des, addes:escape(addes), zpdes:zpdes, ndat:ndat, hou:hou, mit:mit, pas:pas, lug:lug, pna:pna, pem:pem, pte:pte, hte:hte},
				success: function(datos) {
					setTimeout(con.html(datos), 10);
					location.href = "./";
				}
			});
		}
	});
	
	/* RESERVARION HOME */
	
	$("#reserve2").click(function(){
		var fec = new Date();
		var fecd = fec.getDate();
		var fecm = fec.getMonth() + 1;
		var feca = fec.getFullYear();
		var fecact = fecm+"/"+fecd+"/"+feca;
		var myfecact = Date.parse(fecact);
		
		var dig = new Date();
		var digh = String(dig.getHours());
		var digm = String(dig.getMinutes());
		var digact = digh + digm;
		var digactval = parseInt(digact) + 200;
		
		var loc = $("#location").val();
		var adloc = $("#pickup-address").attr("value");
		var zploc = $("#pickup-zip").attr("value");
		var des = $("#destination").val();
		var addes = $("#destination-address").attr("value");
		var zpdes = $("#destination-zip").attr("value");
		
		var dat = $("#date").attr("value");
		var datn = dat.split("-");
		var ndat = datn[2] + "-" + datn[0] + "-" + datn[1];
		var fecsel = datn[0] + "/" + datn[1] + "/" + datn[2];
		var myfecsel = Date.parse(fecsel);
		var hou = $("#hour").val();
		var mit = $("#minute").val();
		var digsel = hou + mit;
		
		var pas = $("#passengers").val();
		var lug = $("#luggage").val();
		
		var expnum = /^[0-9]{5}$/;
		var expltr = /^[a-zA-Z0-9+\-|\&|\#|\.|\,| ]{4,20}$/;
		var expdat = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;

		
		var error = 0;
		
		if (myfecsel < myfecact) {
			$("#date").css("border", "2px #F00 solid");
			error = 5;
		}
		else {
			if ((parseInt(digsel) < digactval) && (myfecsel == myfecact)) {
				$("#hour").css("border", "2px #F00 solid");
				$("#minute").css("border", "2px #F00 solid");
				error = 5;
			}
			else {
				$("#hour").css("border", "2px #0F0 solid");
				$("#minute").css("border", "2px #0F0 solid");
			}
			
			$("#date").css("border", "2px #0F0 solid");
		}
		
		if (loc == "") {
			$("#location").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#location").css("border", "");
		}
		
		if (loc > 3 && (adloc == "" || adloc == "Address")) {
			$("#pickup-address").css("border", "1px #F00 solid");
			error = 1;
		}
		else if(loc > 3 && (adloc != "" || adloc != "Address") && !expltr.test(adloc)) {
			$("#pickup-address").css("border", "1px #F00 solid");
			error = 3;
		}
		else {
			$("#pickup-address").css("border", "");
		}
		
		/*
		if (loc > 3 && (zploc == "" || zploc == "Zip")) {
			$("#pickup-zip").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (loc > 3 && (zploc != "" || zploc != "Zip") && !expnum.test(zploc)) {
			$("#pickup-zip").css("border", "1px #F00 solid");
			error = 2;
		}
		else {
			$("#pickup-zip").css("border", "");
		}
		*/
		
		if (des == "") {
			$("#destination").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#destination").css("border", "");
		}
		
		if (des > 3 && (addes == "" || addes == "Address")) {
			$("#destination-address").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (des > 3 && (addes != "" || addes != "Address") && !expltr.test(addes)) {
			$("#destination-address").css("border", "1px #F00 solid");
			error = 3;
		}
		else {
			$("#destination-address").css("border", "");
		}
		
		/*
		if (des > 3 && (zpdes == "" || zpdes == "Zip")) {
			$("#destination-zip").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (des > 3 && (zpdes != "" || zpdes != "Zip") && !expnum.test(zpdes)) {
			$("#destination-zip").css("border", "1px #F00 solid");
			error = 2;
		}
		else {
			$("#destination-zip").css("border", "");
		}
		*/
		
		if (dat == "") {
			$("#date").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (!expdat.test(dat)) {
			$("#date").css("border", "1px #F00 solid");
			error = 4;
		}
		else {
			$("#date").css("border", "");
		}
		
		if (hou == "") {
			$("#hour").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#hour").css("border", "");
		}
		
		if (mit == "") {
			$("#minute").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#minute").css("border", "");
		}
		
		if (pas == "") {
			$("#passengers").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#passengers").css("border", "");
		}
		
		if (lug == "") {
			$("#luggages").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#luggages").css("border", "");
		}
		
		if (error == 1) {
			alert("All fields marked with red are required");
			return false;
		}
		else if (error == 2) {
			alert("Only 5 digit numbers.");
			return false;
		}
		else if (error == 3) {
			alert("Can only enter 4 to 20 alphanumeric characters, including spaces.");
			return false;
		}
		else if (error == 4) {
			alert("The date format is invalid. Select the date again.");
			return false;
		}
		else if (error == 5) {
			alert("The date or time selected is invalid because it is passed.");
			return false;
		}
		else {
			location.href = "reservation.php?res=&loc="+loc+"&adloc="+escape(adloc)+"&zploc="+zploc+"&des="+des+"&addes="+escape(addes)+"&zpdes="+zpdes+"&ndat="+dat+"&hou="+hou+"&mit="+mit+"&pas="+pas+"&lug="+lug;
		}
	});
	
	$("#pickup-address").focus(function(){
		if ($("#pickup-address").val() == "Address") {
			$("#pickup-address").attr("value", "");
		}
	});
	
	$("#pickup-address").blur(function(){
		if ($("#pickup-address").val() == "") {
			$("#pickup-address").attr("value", "Address");
		}
	});
	
	$("#destination-address").focus(function(){
		if ($("#destination-address").val() == "Address") {
			$("#destination-address").attr("value", "");
		}
	});
	
	$("#destination-address").blur(function(){
		if ($("#destination-address").val() == "") {
			$("#destination-address").attr("value", "Address");
		}
	});
	
	$("#pickup-zip").focus(function(){
		if ($("#pickup-zip").val() == "Zip") {
			$("#pickup-zip").attr("value", "");
		}
	});
	
	$("#pickup-zip").blur(function(){
		if ($("#pickup-zip").val() == "") {
			$("#pickup-zip").attr("value", "Zip");
		}
	});
	
	$("#destination-zip").focus(function(){
		if ($("#destination-zip").val() == "Zip") {
			$("#destination-zip").attr("value", "");
		}
	});
	
	$("#destination-zip").blur(function(){
		if ($("#destination-zip").val() == "") {
			$("#destination-zip").attr("value", "Zip");
		}
	});
	
	/* LOGIN */
	$("#login").click(function(){
		var ema = $("#email").val();
		var pas = $("#password").val();
		var expema = /(^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*)@([0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,3})$/;
		var error = 0;
		
		if (ema == "") {
			$("#email").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#email").css("border", "");
		}
		
		if (!expema.test(ema)) {
			$("#email").css("border", "1px #F00 solid");
			error = 2;
		}
		else {
			$("#email").css("border", "");
		}
		
		if (pas == "") {
			$("#password").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#password").css("border", "");
		}
		
		if (error == 1) {
			alert("Fields marked with red are required");
			return false;
		}
		else if (error == 2) {
			alert("The mail format is not valid");
			return false;
		}
		else {
		}
	});
	
	$("#register").click(function(){
		var ema = $("#email").val();
		var pas = $("#password").val();
		var cpa = $("#conpassword").val();
		var nom = $("#name").val();
		var tel = $("#telephone").val();
		var expema = /(^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*)@([0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,3})$/;
		var exptel = /^[0-9]{7,15}$/;
		var exppas = /^[a-zA-Z0-9]*$/;
		var expnom = /^[a-zA-Z ]{4,20}$/;
		var error = 0;
		
		if (ema == "") {
			$("#email").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (!expema.test(ema)) {
			$("#email").css("border", "1px #F00 solid");
			error = 2;
		}
		else {
			$("#email").css("border", "");
		}
		
		if (pas == "") {
			$("#password").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (!exppas.test(pas) || pas.length < 6) {
			$("#password").css("border", "1px #F00 solid");
			error = 4;
		}
		else {
			$("#password").css("border", "");
		}
		
		if (cpa == "") {
			$("#conpassword").css("border", "1px #F00 solid");
			error = 1;
		}
		else {
			$("#conpassword").css("border", "");
		}
		
		if (cpa != pas) {
			$("#conpassword").css("border", "1px #F00 solid");
			error = 6;
		}
		else {
			$("#conpassword").css("border", "");
		}
		
		if (nom == "") {
			$("#name").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (!expnom.test(nom)) {
			$("#name").css("border", "1px #F00 solid");
			error = 5;
		}
		else {
			$("#name").css("border", "");
		}

		if (tel == "") {
			$("#telephone").css("border", "1px #F00 solid");
			error = 1;
		}
		else if (!exptel.test(tel)) {
			$("#telephone").css("border", "1px #F00 solid");
			error = 3;
		}
		else {
			$("#telephone").css("border", "");
		}
		
		if (error == 1) {
			alert("Fields marked with red are required");
			return false;
		}
		else if (error == 2) {
			alert("The mail format is not valid");
			$("#email").focus();
			return false;
		}
		else if (error == 3) {
			alert("Enter 7 to 15 numbers for the phone");
			$("#telephone").focus();
			return false;
		}
		else if (error == 4) {
			alert("Enter at least 6 characters between letters and numbers");
			$("#password").focus();
			return false;
		}
		else if (error == 5) {
			alert("Enter 4 to 20 letters including the space");
			$("#name").focus();
			return false;
		}
		else if (error == 6) {
			alert("The confirmation password does not match");
			$("#conpassword").focus();
			return false;
		}
		else {
		}
	});
});