/
home
/
desid573
/
public_html
/
family
/
/home/desid573/public_html/family
mkdir
upload
Name
Size
Mode
Actions
assets/
-
0755
rm
eway-rapid-php-master/
-
0755
rm
invoice/
-
0755
rm
pdd/
-
0755
rm
10.php
1941
0644
edit
dl
rm
11.php
1176
0644
edit
dl
rm
22.php
9106
0644
edit
dl
rm
array.php
2173
0644
edit
dl
rm
a_name_address.php
959
0644
edit
dl
rm
brisbaneInvoice.php
11845
0644
edit
dl
rm
class.phpmailer.php
80046
0644
edit
dl
rm
class.pop3.php
10385
0644
edit
dl
rm
class.smtp.php
24586
0644
edit
dl
rm
completedReport.php
9286
0644
edit
dl
rm
confirmAll1.php
591
0644
edit
dl
rm
dispatch.php
877
0644
edit
dl
rm
driverInvoice.php
12148
0644
edit
dl
rm
driverlocation.php
14585
0644
edit
dl
rm
eCrypt.js
68424
0644
edit
dl
rm
edit.php
780
0644
edit
dl
rm
error_log
30478123
0644
edit
dl
rm
eway-rapid-php-master.zip
57270
0644
edit
dl
rm
eWay.php
42697
0644
edit
dl
rm
family-cab_small.jpg
98853
0644
edit
dl
rm
fatigue.php
2295
0644
edit
dl
rm
incident_report.php
0
0644
edit
dl
rm
index.php
200204
0644
edit
dl
rm
index1apr2019.php
92844
0644
edit
dl
rm
index3.php
60677
0644
edit
dl
rm
index4.php
91500
0644
edit
dl
rm
index15thMay.php
92640
0644
edit
dl
rm
indexJune10.php
93053
0644
edit
dl
rm
indextest.php
91391
0644
edit
dl
rm
indexTraffic.php
86040
0644
edit
dl
rm
index_preSydney.php
60350
0644
edit
dl
rm
index_sydney.php
74126
0644
edit
dl
rm
melbAuditReport.php
10458
0644
edit
dl
rm
melbreport.php
7758
0644
edit
dl
rm
monthly.php
12046
0644
edit
dl
rm
new.php
0
0644
edit
dl
rm
perthAuditReport.php
34918
0644
edit
dl
rm
perthReport.php
7757
0644
edit
dl
rm
postcodeArray.php
1014
0644
edit
dl
rm
postcodeReport.php
21015
0644
edit
dl
rm
pre-sydneyquote.php
39158
0644
edit
dl
rm
promo.php
765
0644
edit
dl
rm
qldDriverReport.php
8568
0644
edit
dl
rm
qldreport.php
7580
0644
edit
dl
rm
quote.php
52358
0644
edit
dl
rm
quote2.php
38831
0644
edit
dl
rm
quote_sydney.php
51912
0644
edit
dl
rm
report.php
10447
0644
edit
dl
rm
search.php
854
0644
edit
dl
rm
serialize.php
157
0644
edit
dl
rm
style.json
1014
0644
edit
dl
rm
summaryReport.php
10212
0644
edit
dl
rm
sydneydispatch.php
12177
0644
edit
dl
rm
sydneyreport.php
7758
0644
edit
dl
rm
table.php
5087
0644
edit
dl
rm
test.php
3851
0644
edit
dl
rm
thankyou.php
31498
0644
edit
dl
rm
tmrReport.php
2431
0644
edit
dl
rm
tmr_trips.php
11287
0644
edit
dl
rm
unserialize.php
571
0644
edit
dl
rm
Edit:
/home/desid573/public_html/family/indexTraffic.php
(86040B)
<?php $invoice_ref = time().rand(10,5000); $dbhost = "localhost"; $dbuser = "desid573_famcab"; $dbpass = "C]+6wQySxov("; $dbname = "desid573_familycab"; $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error); $qcon=mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); /*$query1 = "SELECT * FROM prices WHERE id=0"; $result = mysqli_query($conn, $query1); $row = mysqli_fetch_assoc($result); $baseSyd = $row['base']; $kmSyd = $row['km']; $timeSyd = $row['time']; $largeSyd = $row['large_km']; $minSyd = $row['min']; $min_lateSyd = $row['min_late']; $query1 = "SELECT * FROM prices WHERE id=1"; $result = mysqli_query($conn, $query1); $row = mysqli_fetch_assoc($result); $basePer = $row['base']; $kmPer = $row['km']; $timePer = $row['time']; $largePer = $row['large_km']; $minPer = $row['min']; $min_latePer = $row['min_late'];*/ /*$query = "SELECT * FROM alert_area WHERE id=1"; $result = mysqli_query($conn, $query); $row = mysqli_fetch_assoc($result); $poly = $row['array'];*/ $client_key = '4T7y1vuKPkdhRYUQdH6msueW9hqV2wpcwnSk0Qwxkvwf7TjQn40qymPW7IJb66gUC1w1505cDMkj9IR82juQEnIp4/8nd0nDhwYDSDoqROtNBWmkqtqYmF6F4qVGMUq3HpJrY3y2kdSljCFfWzWc7LIEn4G5XY2IZAPgAO5+mhwvYrricmqwLhqzV4FBUII5AwTvJZl4awrdul4vLWkS73vJuW/XrXHseGK/nqB3oSRluZ1jKp2qDgVTwrXYEbx4rwwS42X2w0C9tLKywxf27WD2CCK8ftSeQBimVqFI0r6VuRXFVaOn6SQTOD9V/TsCfPk5Zh6/PWcfapyVKS+l1w=='; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> <title>FamilyCab Booking Page</title> <!-- Bootstrap --> <link async href="../assets/css/bootstrap.min.css" rel="stylesheet"> <link async rel="stylesheet" href="assets/intlTelInput.css"> <link async rel="stylesheet" href="assets/css/style.css" crossorigin="anonymous"> <?php if($_GET['account']==1){echo "<link rel='stylesheet' href='../assets/css/jquery-ui.min.css' type='text/css' /> <link rel='stylesheet' href='https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css'>";}?> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> <style> #map { height:300px; } body{ background-color: #ffffff; } .iti-flag {background-image: url("assets/flags.png");} .intl-tel-input{width: 100%;} @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { .iti-flag {background-image: url("assets/flags@2x.png");} } .intl-tel-input { display: table-cell; width: 100%; } .intl-tel-input .flag-container { z-index: 4; } .input-group .intl-tel-input .form-control { border-top-left-radius: 4px; border-top-right-radius: 0; border-bottom-left-radius: 4px; border-bottom-right-radius: 0; } .help-tip{ top: 0; } .help-tip:hover p{ z-index: 2; } .booking { display:none; } .lat_error_pickup, .lat2_error_pickup, .lat3_error_pickup, .lat4_error_pickup { display:none; color:#a94442; margin-bottom: 0px; margin-top: -5px; } .quotehidden { display: none; } .phone_error { display:none; color:#a94442; margin-bottom: 2px; margin-top: 5px; } .flight_time, .return_flight_time { display:none; color:#000000; margin-bottom: 1px; margin-top: 1px; } .invalidcc { display:none; color:#a94442; margin-bottom: 10px; margin-top: 5px; } .accountName { display:none; } .btn { background: #f26f18; padding-top:5px; padding-bottom:5px; } .btn-primary.active{ background: #000080; } .orangeButton:focus { background: #000080; } .btn-primary.active{ background: #000080; } .btn-primary.active:hover{ background: #000080; } .btn-primary.active:focus{ background: #000080; } .btn-success.active:focus{ background: #000080; } .btn:hover{ background: #000080; } .btn:focus{ background: #000080; } .blueButton { background: #000080; padding-top:5px; padding-bottom:5px; } .buttonText { //display: block; min-height: 20px; //background: #f26f18 ; color:#fff; font-weight:bold; } .ui-autocomplete{ z-index:50; background-color:#FFFFFF; } ul.ui-autocomplete li.ui-menu-item{text-align:left;} @media (max-width:980px) { .small-pad-top{padding-top:5px;} } @media (max-width: 768px) { .orangeButton{min-height: 30px; padding-top:2px; padding-bottom:2px;} .buttonText{font-size:11px; font-weight: normal; min-height: 15px;} } .bgloader { display: none; position: fixed; width: 100%; height: 100%; background-color:#f26f18; opacity : 0.4; z-index: 100; } .loader { display: none; position: fixed; left: 50%; top: 50%; z-index: 101; margin: -60px 0 0 -60px; border: 16px solid #f3f3f3; /* Light grey */ border-top: 16px solid #000080; /* Blue */ border-radius: 50%; width: 120px; height: 120px; animation: spin 2s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* The Modal (background) */ .modal { display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 100; /* Sit on top */ padding-top: 100px; /* Location of the box */ left: 0; top: 0; width: 100%; /* Full width */ height: 100%; /* Full height */ overflow: auto; /* Enable scroll if needed */ background-color: rgb(0,0,0); /* Fallback color */ background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ } /* Modal Content */ .modal-content { background-color: #fefefe; margin: auto; padding: 20px; border: 1px solid #888; width: 80%; } /* The Close Button */ .close { color: #aaaaaa; float: right; font-size: 28px; font-weight: bold; } .close:hover, .close:focus { color: #000; text-decoration: none; cursor: pointer; } .error-class { color:red; z-index:0; position:relative; display:block; text-align: left; } </style> <script type="text/javascript"> function setDecimal(input) { input.value = parseFloat(input.value).toFixed(2); } </script> </head> <body> <div class="loader"></div> <div class="bgloader"></div> <div id="myModal" class="modal"> <!-- Modal content --> <div class="modal-content"> <span class="close">×</span> <span id="modal-body"></span> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-xs-12 "> </div> </div> </div> <div class="container"> <form role="search" id="form1" onSubmit="myButton.disabled = true; $('#buttontext').text('Processing...'); return true;" method="POST" action="thankyou.php" data-eway-encrypt-key="<?=$client_key?>"> <input type="hidden" name="hidden_ref" value="<?=$invoice_ref?>"> <input type="hidden" id="job_city" name="job_city" value="perth"> <input type="hidden" id="lat1_value" name="lat1_value" value="" required data-validation="required"> <input type="hidden" id="lat2_value" name="lat2_value" value="" required data-validation="required"> <input type="hidden" id="lng1_value" name="lng1_value" value="" required data-validation="required"> <input type="hidden" id="lng2_value" name="lng2_value" value="" required data-validation="required"> <input type="hidden" id="lat3_value" name="lat3_value" value="" > <input type="hidden" id="lat4_value" name="lat4_value" value="" > <input type="hidden" id="lng3_value" name="lng3_value" value="" > <input type="hidden" id="lng4_value" name="lng4_value" value="" > <input type="hidden" id="account" name="account" value="<?=$_GET['account']?>"> <input type="hidden" id="km_est" name="km_est" value=""> <input type="hidden" id="time_est" name="time_est" value=""> <input type="hidden" id="traffic_est" name="traffic_est" value=""> <input type="hidden" id="return_km_est" name="return_km_est" value=""> <input type="hidden" id="return_time_est" name="return_time_est" value=""> <input type="hidden" id="onewayPrice" name="onewayPrice" value=""> <input type="hidden" id="returnPrice" name="returnPrice" value=""> <input type="hidden" id="promoCode" name="promoCode" value=""> <input type="hidden" id="promoValue" name="promoValue" value=""> <input type="hidden" id="intphone" name="intphone" value=""> <input type="hidden" id="admin" name="admin" value="<?=$_GET['admin']?>"> <input type="hidden" id="tollAmount" name="tollAmount" value="0"> <input type="hidden" id="tollDescription" name="tollDescription" value=""> <input type="hidden" id="returnTollAmount" name="returntollAmount" value="0"> <input type="hidden" id="returnTollDescription" name="returntollDescription" value=""> <div class="row quotehidden"> <div id="bookingType" class="btn-group col-xs-12 col-md-6" style="padding-bottom:10px;" data-toggle="buttons"> <label class="col-xs-6 col-md-3 btn btn-primary active"> <input type="radio" name="quoteType" id="quote" value="quote" autocomplete="off" checked>Quote </label> <label class="col-xs-6 col-md-3 btn btn-primary"> <input type="radio" name="quoteType" id="booking" value="booking" autocomplete="off">Booking </label> </div> </div> <div class="row"> <div id="journey" class="btn-group col-xs-12 col-md-6" style="margin-top: 10px; padding-bottom:10px;" data-toggle="buttons"> <label class="col-xs-6 col-md-3 btn btn-primary active"> <input type="radio" name="journeyType" id="oneway" value="oneway" autocomplete="off" checked>One Way </label> <label class="col-xs-6 col-md-3 btn btn-primary"> <input type="radio" name="journeyType" id="return" value="return" autocomplete="off">Return </label> </div> </div> <div class="row booking"> <div class="col-xs-6 col-md-3 no-padding newName"> <input type="text" required data-validation="required" class="form-control" placeholder="First Name" name="First_Name" id="First_Name"> </div> <div class="col-xs-6 col-md-3 no-padding newName"> <input type="text" required data-validation="required" class="form-control" placeholder="Last Name" name="Last_Name" id="Last_Name"> </div> </div> <div class="row"> <div class="col-xs-12 col-md-6 no-padding accountName"> <div class="form-group"> <div class="input-group"> <input type="text" data-validation="required" class="form-control" placeholder="Name" name="name" id="name"> <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span> </div> </div> </div> </div> <div class="row booking" style="margin-top: 10px"> <div class="col-xs-12 col-md-6 no-padding"> <div class="form-group"> <div class="input-group"> <input type="tel" class="form-control" placeholder="Mobile Number" name="phone" id="phone"> <span class="input-group-addon"><i class="glyphicon glyphicon-phone"></i></span> </div></div> <div class="phone_error">Invalid phone number format</div> </div> </div> <div class="row booking" style="margin-top: 10px"> <div class="col-xs-12 col-md-6"> <div class="input-group"> <input type="email" class="form-control" name="email" id="email" placeholder="Email"> <span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span> </div> </div> </div> <div class="row" style="margin-top: 10px"> <h4 style="margin-left:15px;">Pick Up Details</h4> </div> <div class="row" style="margin-top: 10px;"> <div class="btn-group col-xs-12 col-md-6" id="type1" data-toggle="buttons"> <label class="col-xs-6 col-md-3 btn btn-primary active"> <input type="radio" name="pickupType" id="search1" value="search1" autocomplete="off" checked>Search </label> <label class="col-xs-6 col-md-3 btn btn-primary"> <input type="radio" name="pickupType" id="airport1" value="airport1" autocomplete="off">Airport </label> </div> </div> <div class="row" style="margin-top: 10px;"> <span id="terminalsRow1"></span> </div> <div class="row" style="margin-top: 5px;"> <div id="searchDiv1" class="col-xs-12 col-md-6" > <div class="form-group"> <div class="input-group"> <input type="text" id="pickup" name="pickup" autocomplete="off" required class="form-control" placeholder="Pickup Address"> <span class="input-group-addon"><i class="glyphicon glyphicon-map-marker"></i></span> </div> <div class="lat_error_pickup col-xs-12 col-md-6"><br>Please select address from Google</div> </div> </div> </div> <div class="row" style="margin-top: 10px;"> <div class="btn-group col-xs-12 col-md-6" id="type2" data-toggle="buttons"> <label class="col-xs-6 col-md-3 btn btn-primary active"> <input type="radio" name="dropoffType" id="search2" value="search2" autocomplete="off" checked>Search </label> <label class="col-xs-6 col-md-3 btn btn-primary"> <input type="radio" name="dropoffType" id="airport2" value="airport2" autocomplete="off">Airport </label> </div> </div> <div class="row" style="margin-top: 10px;"> <span id="terminalsRow2"></span> </div> <div class="row" > <div id="searchDiv2" class="col-xs-12 col-md-6" > <div class="form-group"> <div class="input-group"> <input type="text" id="dropoff" name="dropoff" autocomplete="off" required class="form-control" placeholder="Drop off Address"> <span class="input-group-addon"><i class="glyphicon glyphicon-map-marker"></i></span> </div> </div> <div class="lat2_error_pickup"><br>Please select address from Google</div> </div> </div> <div class="row booking" style="margin-top: 10px"> <div class="col-xs-6 col-md-3"> <div class="form-group"> <div class='input-group date' id="date-group"> <input type="text" required class="form-control" name="date" id="date" placeholder="Date" autocomplete="off"> <span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span> </div> </div> <div class="flight_time">  Flight Arrival Date</div> </div> <div class="col-xs-6 col-md-3"> <div class="form-group"> <div class="input-group bootstrap-timepicker timepicker"> <input id="time" type="text" name="time" required class="form-control input-small"> <span class="input-group-addon"><i class="glyphicon glyphicon-time"></i></span> </div> </div> <div class="flight_time">  Flight Arrival Time</div> </div> </div> <div class="pickup_div_t" style="margin-top: 0px;display:none;"> <div class="row"> <div class="col-xs-12 col-md-12 col-lg-12" style="margin-top:5px; margin-left:5px;" > We will track your flight number an adjust your pick up time accordingly.<br> Please select time for pickup after your flight arrives:  <br> (usually 20-30 mins for domestic, 45-60 mins for international)<br> </div> <div id="pickupMins" class="btn-group col-xs-12 col-md-4 col-lg-4" data-toggle="buttons"> <label class="col-xs-3 col-md-3 col-lg-3 btn btn-primary active"> <input type="radio" class="" value="20" name="pickup_time" id="pickup_time" checked> 20m </label> <label class="col-xs-3 col-md-3 col-lg-3 btn btn-primary"> <input type="radio" class="" value="30" name="pickup_time" id="pickup_time"> 30m </label> <label class="col-xs-3 col-md-3 col-lg-3 btn btn-primary"> <input type="radio" class="" value="45" name="pickup_time" id="pickup_time"> 45m </label> <label class="col-xs-3 col-md-3 col-lg-3 btn btn-primary"> <input type="radio" class="" value="60" name="pickup_time" id="pickup_time"> 60m </label> </div> <div class="col-xs-12 col-md-2 col-lg-2 small-pad-top" > <div class="form-group"> <div class="input-group"> <input type="text" id="flight_number" name="flight_number" value="N/A" autocomplete="off" class="form-control" placeholder="Flight Number"><span class="input-group-addon"><i class="glyphicon glyphicon-plane"></i></span> </div></div> </div> </div> </div> <div class="return_rows" style="display:none;"> <div class="row" style="margin-top: 10px"> <h4 style="margin-left:15px;">Return Details</h4> </div> <div class="row" style="margin-top: 10px;"> <div class="btn-group col-xs-12 col-md-6" id="type3" data-toggle="buttons"> <label class="col-xs-6 col-md-3 btn btn-primary active"> <input type="radio" name="returnPickupType" id="search3" value="search3" autocomplete="off" checked>Search </label> <label class="col-xs-6 col-md-3 btn btn-primary"> <input type="radio" name="returnPickupType" id="airport3" value="airport3" autocomplete="off">Airport </label> </div> </div> <div class="row" style="margin-top: 5px;"> <span id="terminalsRow3"></span> </div> <div class="row" style="padding-top: 5px;"> <div id="searchDiv3" class="col-xs-12 col-md-6" > <div class="form-group"><div class="input-group"><input type="text" id="return_pickup" name="return_pickup" autocomplete="off" class="form-control" placeholder="Return Pickup Address"><span class="input-group-addon glyphicon glyphicon-map-marker"></span> </div><div class="lat3_error_pickup"><br>Please select address from Google</div> </div></div> </div> <div class="row" style="margin-top: 10px;"> <div class="btn-group col-xs-12 col-md-6" id="type4" data-toggle="buttons"> <label class="col-xs-6 col-md-3 btn btn-primary active"> <input type="radio" name="returnDropoffType" id="search4" value="search4" autocomplete="off" checked>Search </label> <label class="col-xs-6 col-md-3 btn btn-primary"> <input type="radio" name="returnDropoffType" id="airport4" value="airport4" autocomplete="off">Airport </label> </div> </div> <div class="row" style="margin-top: 5px;"> <span id="terminalsRow4"></span> </div> <div class="row" style="margin-top: 5px;"> <div id="searchDiv4" class="col-xs-12 col-md-6"> <div class="form-group"><div class="input-group"><input type="text" id="return_dropoff" name="return_dropoff" autocomplete="off" class="form-control" placeholder="Drop off Address"><span class="input-group-addon glyphicon glyphicon-map-marker"></span> </div><div class="lat4_error_pickup"><br>Please select address from Google</div> </div></div> </div> <div class="row booking" style="margin-top: 10px"> <div class="col-xs-6 col-md-3"> <div class="form-group"> <div class='input-group date'> <input type="text" required class="datepicker form-control" name="return_date" id="return_date" placeholder="Return Date"> <span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span> </div> </div> <div class="return_flight_time">  Flight Arrival Date</div> </div> <div class="col-xs-6 col-md-3"> <div class="form-group"> <div class="input-group bootstrap-timepicker timepicker"> <input id="return_time" type="text" name="return_time" required class="form-control input-small"> <span class="input-group-addon"><i class="glyphicon glyphicon-time"></i></span> </div> </div> <div class="return_flight_time">  Flight Arrival Time</div> </div> </div> <div class="return_pickup_div_t" style="margin-top: 0px;display:none;"> <div class="row"> <div class="col-xs-12 col-md-12 col-lg-12" style="margin-top:5px; margin-left:5px;" > We will track your flight number an adjust your pick up time accordingly.<br> Please select time for pickup after your flight arrives:  <br> (usually 20-30 mins for domestic, 45-60 mins for international)<br> </div> <div id="returnPickupMins" class="btn-group col-xs-12 col-md-4 col-lg-4" data-toggle="buttons"> <label class="col-xs-3 col-md-3 col-lg-3 btn btn-primary active"> <input type="radio" class="" value="20" name="return_pickup_time" id="pickup_time" checked> 20m </label> <label class="col-xs-3 col-md-3 col-lg-3 btn btn-primary"> <input type="radio" class="" value="30" name="return_pickup_time" id="pickup_time"> 30m </label> <label class="col-xs-3 col-md-3 col-lg-3 btn btn-primary"> <input type="radio" class="" value="45" name="return_pickup_time" id="pickup_time"> 45m </label> <label class="col-xs-3 col-md-3 col-lg-3 btn btn-primary"> <input type="radio" class="" value="60" name="return_pickup_time" id="pickup_time"> 60m </label> </div> <div class="col-xs-12 col-md-2 col-lg-2 small-pad-top" > <div class="form-group"> <div class="input-group"> <input type="text" id="return_flight_number" name="return_flight_number" value="N/A" autocomplete="off" class="form-control" placeholder="Flight Number"><span class="input-group-addon"><i class="glyphicon glyphicon-plane"></i></span> </div></div> </div> </div> </div> </div> <div class="other_rows"> <div class="row" style="margin-top: 10px"> <h4 style="margin-left:15px;">Passenger Details</h4> </div> <div class="row" > <div class="col-xs-12 col-md-6"> <div class="row" style="margin-top: 10px"> <div class="col-xs-10 col-md-10"> Total Number of Passengers including Children <br> </div> <div class="col-xs-2 col-md-1"> <select id="passenger_count" name="passenger_count"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> </select> </div> </div> <div class="row" style="margin-top: 10px"> <div class="col-xs-10 col-md-10"> Number of children requiring rearward facing car seats / capsule <span class="help-tip"><p>Rearward Facing child seats are a legal requirement in Western Australia between birth and 6 months. Our rearward facing seats can be used up to 36 months.</p></span><br></div> <div class="col-xs-2 col-md-1"> <select id="car_seat" name="car_seat"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </div></div> <div class="row" style="margin-top: 10px"> <div class="col-xs-10 col-md-10"> Number of children requiring forward facing car seats <span class="help-tip"><p>Forward Facing child seats are a legal requirement in Western Australia between 6 months and 4 years. Our forward facing seats can be used up to 8 years.</p></span><br></div> <div class="col-xs-2 col-md-1"> <select id="ff_count" name="ff_count"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </div></div> <div class="row" style="margin-top: 10px"> <div class="col-xs-10 col-md-10"> Number of children requiring booster seats <span class="help-tip"><p>Booster seats are the minimun legal requirement between 4-7 years. Our forward facing seats can be used up to 8 years but if your child is used to having a booster seat you can select this option.</p></span><br></div> <div class="col-xs-2 col-md-1"> <select id="booster_count" name="booster_count"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> </select> </div></div> </div></div> <div class="row booking" style="margin-top: 10px"> <div class="col-xs-12 col-md-6"> Describe your luggage<br><textarea placeholder="eg: 3 large suitcases and 2 carry on / 2 large suitcases and a pram" style="width:100%;height:70px;" name="luggage" id="luggage" class="form-control"></textarea> </div></div> </div> <div class="row booking" style="margin-top: 10px"> <h4 style="margin-left:15px;">Payment Details</h4> </div> <div class="newName booking"> <div class="row" style="margin-top: 10px"> <div class="col-xs-12 col-md-6"> <div class="form-group"> <div class="input-group"> <input type="text" required class=" form-control" id="EWAY_CARDNUMBER" placeholder="Credit Card Number" maxlength="20" autocomplete="off" name="EWAY_CARDNUMBER" data-eway-encrypt-name="EWAY_CARDNUMBER" maxlength="20" onblur=" cc_number_saved = this.value; this.value = this.value.replace(/[^\d]/g, ''); if(!checkLuhn(this.value)) { this.placeholder='Invalid Credit Card Number'; this.style='background:#FF0000'; this.value = ''; } else { this.placeholder='Credit Card Number'; this.style='background:#FFFFFF'; }" onfocus=" // restore saved string if(this.value != cc_number_saved) this.value = cc_number_saved;"> <span class="input-group-addon"><i class="glyphicon glyphicon-credit-card"></i></span> </div> </div> <div class="invalidcc">Invalid Card Number</div></div></div> <div class="row" style="margin-top: 10px"> <div class="col-xs-5 col-md-2"><input class="form-control" type="text" required id="EWAY_CARDCVN" placeholder="CVC" maxlength="4" autocomplete="off" name="EWAY_CARDCVN" data-eway-encrypt-name="EWAY_CARDCVN"></div> <div class="col-xs-7 col-md-4" style="margin-top: 5px"> <span id="dd" class="pull-right" > <select id="EWAY_CARDEXPIRYMONTH" name="EWAY_CARDEXPIRYMONTH"> <option value="" selected hidden>Month</option> <option value="01">Jan</option> <option value="02">Feb</option> <option value="03">Mar</option> <option value="04">Apr</option> <option value="05">May</option> <option value="06">Jun</option> <option value="07">Jul</option> <option value="08">Aug</option> <option value="09">Sep</option> <option value="10">Oct</option> <option value="11">Nov</option> <option value="12">Dec</option> </select> <select id="EWAY_CARDEXPIRYYEAR" name="EWAY_CARDEXPIRYYEAR"> <option value="" selected hidden>Year</option> <option value="19">2019</option> <option value="20">2020</option> <option value="21">2021</option> <option value="22">2022</option> <option value="23">2023</option> <option value="24">2024</option> <option value="25">2025</option> <option value="26">2026</option> <option value="27">2027</option> </select> </span> </div> </div> </div> <div class="row" style="margin-top: 10px"> <div class="col-xs-12 col-md-6 accountName"> <input type="text" id="token" name="token" autocomplete="off" class="form-control" placeholder="Token"> </div> </div> <div class="row" style="margin-top: 10px"> <div class="col-xs-6 col-md-3"> <h4 >Quote </h4> </div> <div class="col-xs-6 col-md-3 no-padding"> </div> </div> <div class="row" style="margin-top: 10px"> <div class="col-xs-12 col-md-6"> <h5><span id="tripdesc">One Way</span>: $<span id="totalPrice"><strong>0</strong></span></h5> <div class="return_rows" style="display:none;"><h5 >Return Journey: $<span id="totalPrice2"><strong>0</strong></span></h5> <h5 >Total (First + Return): $<span id="totalPrice3"><strong>0</strong></span></h5></div> <span id="perthSpan" style="font-size:12px">From April 1 2019, 10% of the fare (upto a max of $10) is an additional levy due to <a href="https://www.transport.wa.gov.au/On-demandTransport/on-demand-passenger-transport-levy.asp">WA Taxi Plate Buyback Scheme</a></span> <span id="sydneySpan" style="font-size:12px; display:none;">This fare has an additional $1.10 levy due to <a href="https://www.pointtopoint.nsw.gov.au/passenger-service-levy">NSW Passenger Service Levy</a></a></span> <button style="margin-top: 10px" type="button" onclick="return false;" name="quoteButton" class="btn btn-primary btn-block" id="quoteButton"><span id="quoteButtonText" >Get Quote</span></button> </div> <div class="col-xs-6 col-md-3 no-padding" style="display:none"> <input type="text" class="form-control col-xs-3 col-md-2" placeholder="Promo Code" name="promo_code" id="promo_code"> <br> <button type="button" onclick="return false;" name="promoButton" style="background: #FFFFFF;padding-top:5px; padding-bottom:5px;" class="btn-block" id="promoButton"><span id="promoText" style="display: block; color: #000000;">Check</span></button> </div> </div> <div class="row" style="margin-top: 10px"> <div class="col-xs-12 col-md-6 "> <button type="button" data-toggle="button" aria-pressed="false" name="myButton" class="btn btn-primary btn-block" id="myButton"><span id="buttontext">Make Booking</span></button> </div> </div> <div class="row" style="margin-top: 10px"> <div class="col-xs-12 col-md-6"> <div id="map"></div> </div> </div> </form> <script src="https://secure.ewaypayments.com/scripts/eCrypt.min.js"></script> </div> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="../assets/js/jquery-min.js"></script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="../assets/js/bootstrap.min.js"></script> <!-- Bootstrap Date-Picker Plugin --> <? if($_GET['account']==1){echo "<script type='text/javascript' src='assets/jquery-ui.js'></script>";}?> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/js/bootstrap-datepicker.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/css/bootstrap-datepicker3.css"/> <link type="text/css" href="assets/css/bootstrap-timepicker.min.css" /> <script src="assets/js/bootstrap-timepicker.min.js"></script> <script src="assets/intlTelInput.js"></script> <script src="../assets/js/jquery.validate.min.js"></script> <!--<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>--> <script type="text/javascript"> $("#phone").intlTelInput({ //allowDropdown: true, autoHideDialCode: true, // autoPlaceholder: "off", //dropdownContainer: "body", // excludeCountries: ["us"], formatOnDisplay: true, geoIpLookup: function(callback) { $.get("http://ipinfo.io", function() {}, "jsonp").always(function(resp) { var countryCode = (resp && resp.country) ? resp.country : ""; callback(countryCode); }); }, initialCountry: "au", nationalMode: false, // onlyCountries: ['us', 'gb', 'ch', 'ca', 'do'], placeholderNumberType: "Mobile", preferredCountries: ['au', 'nz', 'gb', 'cn', 'id'], separateDialCode: true, utilsScript: "assets/utils.js" }); var airport_pickup = 0; var return_airport_pickup = 0; var price1 = 0; var discount = 1; var setCity = ""; var tolls = 0; var return_tolls = 0; var airportPoly = null; var parent = this; var mapStyle; var locations; var terminals; // Get the modal var modal = document.getElementById("myModal"); // Get the button that opens the modal var btn = document.getElementById("myBtn"); // Get the <span> element that closes the modal var span = document.getElementsByClassName("close")[0]; var quoteCheck = "<?=$_GET["quote"]?>"; var map = null ; pickUp = null ; dropOff = null; return_pickUp = null; return_dropOff= null; var directionsDisplay = null ; var directionsDisplay_return = null; var directionsService = null ; var geocoder = null; var marker1 = null; var marker2 = null; var marker3 = null; var marker4 = null; var oneway_directions_set = 0; var return_directions_set = 0; var pickupState = ""; var dropoffState = ""; var returnPickupState = ""; var returnDropoffState = ""; var googleRoute = ""; var googleReturnRoute = ""; var lastClicked = ""; $.getJSON("style.json", function(json) { //console.log(json); // this will show the info it in firebug console mapStyle = json; }); $(document).ready(function(){ getPoly(); if(quoteCheck != "1") { $('input[name="quoteType"][value="booking"]').click(); } $('#termPerth1').hide(); $('#termSyd1').hide(); $('#searchDiv1').show(); $('#termPerth2').hide(); $('#termSyd2').hide(); $('#searchDiv2').show(); $('#termPerth3').hide(); $('#termSyd3').hide(); $('#searchDiv3').show(); $('#termPerth4').hide(); $('#termSyd4').hide(); $('#searchDiv4').show(); if($('#account').val() == 1){ $('.newName').hide(); $('.accountName').show(); $("#First_Name, #Last_Name, #EWAY_CARDNUMBER, #EWAY_CARDCVN").removeAttr('required'); $("#name").attr('required', 'required'); $(function() { $("#name").autocomplete({ source: 'search.php', minLength: 1 }); }); } $("#name").on("blur", function(){ var id = $("#name").val(); var data = 'name=' + id; $.ajax({ type: "POST", url: "a_name_address.php", data: data, dataType: 'json', success: function (data) { $("#phone").val(data.mobile); $("#email").val(data.email); $("#token").val(data.token); if($("#phone").intlTelInput("isValidNumber") == true) { var intlNumber = $("#phone").intlTelInput("getNumber"); $('#intphone').val( intlNumber ); } else { $('#intphone').val( data.mobile ); } } // success }); // ajax }); }) var date_input=$("#date, #return_date"); //our date input has the name "date" var container=$('.bootstrap-iso form').length>0 ? $('.bootstrap-iso form').parent() : "body"; date_input.datepicker({ startDate: new Date(), format: 'd M, yyyy', container: container, todayHighlight: true, autoclose: true, datesDisabled: '25/12/2018', onSelect: function () { $("#form1").valid(); $("#date").trigger("change"); } }) $('#time, #return_time').timepicker({onSelect: function () { $("#time").trigger("change"); } }); $("#return_pickup, #return_dropoff, #return_date, #return_time").removeAttr('required'); $("#journey").change(function(){ var radioValue = $("input[name='journeyType']:checked").val(); if(radioValue == 'oneway'){ $(".return_rows").hide(); $("#tripdesc").text("One Way"); $("#return_pickup, #return_dropoff, #return_date, #return_time").removeAttr('required'); } if(radioValue=='return'){ $(".return_rows").show(); $("#tripdesc").text("First Journey"); $("#return_pickup, #return_dropoff, #return_date, #return_time").attr('required', 'required'); } }) $("#type1").change(function(){ var radioValue = $("input[name='pickupType']:checked").val(); if(radioValue == 'airport1'){ $("#pickup").attr('readonly', true); getTerminals("#pickup", setCity); } else if(radioValue=='search1'){ checkCity(); $("#pickup").attr('readonly', false); removeTerminals("#pickup"); $('#pickup').val(""); $(".pickup_div_t, .flight_time").hide(); } }) $("#type2").change(function(){ var radioValue = $("input[name='dropoffType']:checked").val(); if(radioValue == 'airport2'){ $("#dropoff").attr('readonly', true); getTerminals("#dropoff", setCity); } else if(radioValue=='search2') { checkCity(); $("#dropoff").attr('readonly', false); removeTerminals("#dropoff"); } }) $("#type3").change(function(){ var radioValue = $("input[name='returnPickupType']:checked").val(); if(radioValue == 'airport3'){ $("#return_pickup").attr('readonly', true); getTerminals("#return_pickup", setCity); } else if(radioValue == 'search3') { checkCity(); $("#return_pickup").attr('readonly', false); removeTerminals("#return_pickup"); $('#return_pickup').val(""); $(".return_pickup_div_t, .return_flight_time").hide(); } }) $("#type4").change(function(){ var radioValue = $("input[name='returnDropoffType']:checked").val(); if(radioValue == 'airport4'){ $("#return_dropoff").attr('readonly', true); getTerminals("#return_dropoff", setCity); } else if(radioValue == 'search4'){ checkCity(); $("#return_dropoff").attr('readonly', false); removeTerminals("#return_dropoff"); } }) $('#promoButton').on('click', function () { console.log(discount); var dataString = "promo=" + $('#promo_code').val(); $.ajax({ type: "POST", url: "promo.php", data: dataString, dataType: 'json', success: function (data) { console.log(data); if(data.response == "no"){ $('#promoButton').attr('style', 'background:#FF0000;padding-top:5px; padding-bottom:5px;'); $('#promoButton').text("Incorrect"); $('#promoCode').val(""); $('#promoValue').val(""); discount = 1; } else { if(data.expired == "") { $('#promoButton').attr('style', 'background: #00FF00;padding-top:5px; padding-bottom:5px;'); $('#promoButton').text("Valid!"); $('#promoCode').val(data.code); $('#promoValue').val(data.value); discount = data.value; console.log(discount); distance(true); console.log($('#promoCode').val()); } else { $('#promoButton').attr('style', 'background:#FF0000;padding-top:5px; padding-bottom:5px;'); $('#promoButton').text("Invalid!"); $('#promoCode').val(""); $('#promoValue').val(""); discount = 1; } } } }) }) $('#lat1_value').on('change', function () { $('.lat_error_pickup').hide(); }) function checkCity() { if($('#pickup').val() == "" && $('#dropoff').val() == "" && $('#return_pickup').val() == "" && $('#return_dropoff').val() == "") { console.log("setCity to zero called"); setCity = ""; initAutocomplete(); } } $('#pickup').on('change', function () { checkCity(); $("#lat1_value").val(''); $("#lng1_value").val(''); $('.lat_error_pickup').hide(); $('#totalPrice').text( "" ); oneway_directions_set = 0; if(marker1 != null) { marker1.setMap(null); marker1 = null; } directionsDisplay.setDirections({routes: []}); }) $('#dropoff').on('change', function () { checkCity(); $("#lat2_value").val(''); $("#lng2_value").val(''); $('.lat2_error_pickup').hide(); $('#totalPrice').text( "" ); oneway_directions_set = 0; if(marker2 != null) { marker2.setMap(null); marker2 = null; } directionsDisplay.setDirections({routes: []}); }) $('#lat2_value').on('change', function () { $('.lat2_error_pickup').hide(); }) $('#return_pickup').on('blur', function () { $(this).delay(2000).queue(function() { }) }) $('#return_pickup').on('change', function () { checkCity(); $("#lat3_value").val(''); $("#lng3_value").val(''); $('#totalPrice2').text( "" ); $('.lat3_error_pickup').hide(); return_directions_set = 0; if(marker3 != null) { marker3.setMap(null); marker3 = null; } directionsDisplay_return.setDirections({routes: []}); }) $('#lat3_value').on('change', function () { $('.lat3_error_pickup').hide(); }) $('#return_dropoff').on('blur', function () { $(this).delay(2000).queue(function() { }) }) $('#return_dropoff').on('change', function () { checkCity(); $("#lat4_value").val(''); $("#lng4_value").val(''); $('.lat4_error_pickup').hide(); $('#totalPrice2').text( "" ); return_directions_set = 0; if(marker4 != null) { marker4.setMap(null); marker4 = null; } directionsDisplay_return.setDirections({routes: []}); }) $('#lat4_value').on('change', function () { $('.lat4_error_pickup').hide(); }) $('#pickup, #dropoff, .datepicker, .timepicker, #first_name, #phone, #email').on('blur', function () { $('#totalPrice').text(""); }) $('#passenger_count, #car_seat, #ff_count, #booster_count').on('change', function() { $('#totalPrice').text(""); $('#totalPrice2').text(""); $('#totalPrice3').text(""); $('#onewayPrice').val(""); $('#returnPrice').val(''); }) $('#return_pickup, #return_dropoff, .datepicker, .timepicker, #email, #luggage, #passenger_count, #car_seat, #ff_count, #booster_count, #onewayPrice, #returnPrice, #EWAY_CARDNUMBER, #EWAY_CARDCVN, #EWAY_CARDEXPIRYMONTH, #EWAY_CARDEXPIRYYEAR, #luggage').on('blur', function () { $('#totalPrice2').text(""); $('#totalPrice3').text(""); }) $('#quoteButton').on("click", function () { if ($('#lat1_value').val() == "") { $(".lat_error_pickup").show(); return; } else if ($('#lat2_value').val() == "") { $(".lat2_error_pickup").show(); return; } else if ($('#lat3_value').val() == "" && $("input[name='journeyType']:checked").val() == "Return") { $(".lat3_error_pickup").show(); return; } else if ($('#lat4_value').val() == "" && $("input[name='journeyType']:checked").val() == "Return") { $(".lat4_error_pickup").show(); return; } else { $(".loader, .bgloader").show(); distance(); } }) span.onclick = function() { modal.style.display = "none"; } // When the user clicks anywhere outside of the modal, close it window.onclick = function(event) { if (event.target == modal) { modal.style.display = "none"; } } jQuery.validator.setDefaults({ success: "valid", modules: 'html5, logic, security', onfocusout: function(element) { // "eager" validation this.element(element); }, highlight: function(element) { $(element).closest('.form-group').addClass('has-error'); }, unhighlight: function(element) { $(element).closest('.form-group').removeClass('has-error'); }, errorElement: 'span', errorClass: 'help-block', errorPlacement: function(error, element) { if(element.parent('.input-group').length) { error.insertAfter(element.parent()); } else { error.insertAfter(element); } }, submitHandler: function(form) { $(".loader, .bgloader").show(); eCrypt.submitForm(); }, invalidHandler: function(event, validator) { this.onsubmit = null; }, }); $('#booking').on("click", function() { var pickup = $("#pickup").val(); $(".booking").show(); $("#pickup").val(pickup); }) $('#quote').on("click", function() { $(".booking").hide(); }) $('#myButton').on("click", function () { $("#job_city").val(setCity); var radioValue = $("input[name='quoteType']:checked").val(); if(radioValue == "quote") { $('input[name="quoteType"][value="booking"]').click(); return; } var phoneCheck = $("#phone").val(); if(phoneCheck == "") { $(".phone_error").show(); var offset = $("#phone").offset(); $('html, body').animate({ scrollTop: offset.top - 20, scrollLeft: offset.left }); } else { $("#form1").validate(); if($("#form1").valid() == true) { if($('#onewayPrice').val() == "") { $('#buttontext').text("Getting Quote..."); $(".loader, .bgloader").show(); distance().done(function () { if($('#onewayPrice').val() != "") { if($("input[name='journeyType']:checked").val() == "return") { if($('#returnPrice').val() == "") { distance().done(function () { if($('#returnPrice').val() != "") { $(".loader, .bgloader").show(); $( "#form1" ).submit(); } else { alert("Form incomplete"); $('#buttontext').text("Make Booking"); } }) } else { $(".loader, .bgloader").show(); $( "#form1" ).submit(); } } else { $(".loader, .bgloader").show(); $( "#form1" ).submit(); } } else { $(".loader, .bgloader").hide(); alert("Form incomplete"); $('#buttontext').text("Make Booking"); } }) } else { $(".loader, .bgloader").show(); $( "#form1" ).submit(); } } else { $('#buttontext').text("Incomplete fields.."); var input = $('.has-error:first'); var offset = input.offset(); $('html, body').animate({ scrollTop: offset.top - 20, scrollLeft: offset.left }); setTimeout(function() { $('#buttontext').text("Make Booking"); }, 2000); } } }) $("#time", "#date").on('change', function () { directions(); }) $('#phone').on('change', function () { if($("#phone").intlTelInput("isValidNumber") == true) { var intlNumber = $("#phone").intlTelInput("getNumber"); $('#intphone').val( intlNumber ); $('.phone_error').hide(); return true;; } else { $("#phone").val(""); $('.phone_error').show(); return false;; } }) function initMap() { if(map == null) { map = new google.maps.Map(document.getElementById('map'), { zoom: 12, center: {lat: -31.9535959, lng: 115.8570118}, styles: mapStyle }); } geocoder = new google.maps.Geocoder(); map.addListener("tilesloaded", function() { fitBounds(); }); directionsService = new google.maps.DirectionsService; directionsDisplay = new google.maps.DirectionsRenderer; directionsDisplay.setOptions({ suppressMarkers: true}); directionsDisplay_return = new google.maps.DirectionsRenderer; directionsDisplay_return.setOptions({ suppressMarkers: true }); directionsDisplay.setMap(map); directionsDisplay_return.setMap(map); } function geocodeAddress(geocoder, resultsMap) { var address = document.getElementById('pickup').value; geocoder.geocode({'address': address}, function(results, status) { if (status === google.maps.GeocoderStatus.OK) { var check = checkLocation(results[0].geometry.location, setCity); if(check !== false) { resultsMap.setZoom(12); resultsMap.setCenter(results[0].geometry.location); $('#lat1_value').val(results[0].geometry.location.lat()); $('#lng1_value').val(results[0].geometry.location.lng()) .trigger('change'); setMarker("#pickup", results[0].geometry.location.lat(), results[0].geometry.location.lng()); console.log(check); console.log(check.city); setCity = check.city; initAutocomplete(); if(check.airport == 1) { alert("please select terminal"); $('input[name="pickupType"][value="airport1"]').click(); } } else { alert("not to that location"); $("#pickup").val(""); } } }); } function geocodeAddress2(geocoder, resultsMap) { var address = document.getElementById('dropoff').value; geocoder.geocode({'address': address}, function(results, status) { if (status === google.maps.GeocoderStatus.OK) { var check = checkLocation(results[0].geometry.location, setCity); if(check !== false) { resultsMap.setZoom(12); resultsMap.setCenter(results[0].geometry.location); $('#lat2_value').val(results[0].geometry.location.lat()); $('#lng2_value').val(results[0].geometry.location.lng()) .trigger('change'); setMarker("#dropoff", results[0].geometry.location.lat(), results[0].geometry.location.lng()); setCity = check.city; initAutocomplete(); if(check.airport == 1) { alert("please select terminal"); $('input[name="dropoffType"][value="airport2"]').click(); } } else { alert("not to that location"); $("#dropoff").val(""); } } }); } function geocodeAddress3(geocoder, resultsMap) { var address = document.getElementById('return_pickup').value; geocoder.geocode({'address': address}, function(results, status) { if (status === google.maps.GeocoderStatus.OK) { var check = checkLocation(results[0].geometry.location, setCity); if(check !== false) { resultsMap.setZoom(12); resultsMap.setCenter(results[0].geometry.location); $('#lat3_value').val(results[0].geometry.location.lat()); $('#lng3_value').val(results[0].geometry.location.lng()) .trigger('change'); setMarker("#return_pickup", results[0].geometry.location.lat(), results[0].geometry.location.lng()); setCity = check.city; initAutocomplete(); if(check.airport == 1) { alert("please select terminal"); $('input[name="returnPickupType"][value="airport3"]').click(); } } else { alert("not to that location"); $("#return_pickup").val(""); } } }); } function geocodeAddress4(geocoder, resultsMap) { var address = document.getElementById('return_dropoff').value; geocoder.geocode({'address': address}, function(results, status) { if (status === google.maps.GeocoderStatus.OK) { var check = checkLocation(results[0].geometry.location, setCity); if(check !== false) { resultsMap.setZoom(12); resultsMap.setCenter(results[0].geometry.location); $('#lat4_value').val(results[0].geometry.location.lat()); $('#lng4_value').val(results[0].geometry.location.lng()) .trigger('change'); setMarker("#return_dropoff", results[0].geometry.location.lat(), results[0].geometry.location.lng()); setCity = check.city; initAutocomplete(); if(check.airport == 1) { alert("please select terminal"); $('input[name="returnDropffType"][value="airport4"]').click(); } } else { alert("not to that location"); $("#return_dropoff").val(""); } } }); } function calculateAndDisplayRoute(directionsService, directionsDisplay) { if($('#lat1_value').val() != "" && $('#lat2_value').val() != "") { var date = $("#date").val(); var split = date.split(" "); var day = split[0]; var monthText = split[1].replace(",", ""); //var monthArray = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"]; //var month = monthArray.indexOf(monthText); var year = split[2]; var time = $("#time").val(); var time_split = time.split(" "); var colon_split = time_split[0].split(":"); var hour = colon_split[0]; var min = colon_split[1]; var ampm = time_split[1]; if(ampm == "PM" && hour != "12") { hour = hour + 12 } if(ampm == "AM" && hour == "12") { hour = 0; } timezone = "GMT+0800"; if(setCity == "sydney" || setCity == "melbourne") { timezone = "GMT+1000"; } else if(setCity == "queensland") { timezone = "GMT+1000"; } var newDate = new Date(monthText + " " + day + " " + year + " " + hour + ":" + min + ":00 " + timezone); directionsService.route({ origin: $('#lat1_value').val()+","+$('#lng1_value').val(), destination: $('#lat2_value').val()+","+$('#lng2_value').val(), travelMode: google.maps.TravelMode.DRIVING, drivingOptions: { departureTime: newDate, trafficModel: 'pessimistic' } }, function(response, status) { if (status === google.maps.DirectionsStatus.OK) { //directionsDisplay.setDirections({routes: []}); directionsDisplay.setDirections(response); console.log(response); googleRoute = response; var dist = response.routes[0].legs[0].distance.value; var dur = response.routes[0].legs[0].duration.value; var traf = response.routes[0].legs[0].duration_in_traffic.value; $('#km_est').val(parseFloat(dist/1000).toFixed(0)); $('#time_est').val(parseFloat(dur/60).toFixed(0)); $('#traffic_est').val(parseFloat(traf/60).toFixed(0)) oneway_directions_set = 1; } else { //window.alert('Directions request failed due to ' + status); } }); } } function calculateAndDisplayRoute_return(directionsService, directionsDisplay) { if(return_directions_set != 1){ if($('#lat3_value').val() != "" && $('#lat4_value').val() != "") { directionsService.route({ origin: $('#lat3_value').val()+","+$('#lng3_value').val(), destination: $('#lat4_value').val()+","+$('#lng4_value').val(), travelMode: google.maps.TravelMode.DRIVING }, function(response, status) { if (status === google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); googleReturnRoute = response; var dist = response.routes[0].legs[0].distance.value; var dur = response.routes[0].legs[0].duration.value; $('#return_km_est').val(parseFloat(dist/1000).toFixed(0)); $('#return_time_est').val(parseFloat(dur/60).toFixed(0)); return_directions_set = 1; } else { //window.alert('Directions request failed due to ' + status); } }); } } } function fitBounds() { if(oneway_directions_set == 1 && return_directions_set == 1) { var bounds = new google.maps.LatLngBounds(); if(marker1 != null) { bounds.extend(marker1.getPosition()); } if(marker2 != null) { bounds.extend(marker2.getPosition()); } if(marker3 != null) { bounds.extend(marker3.getPosition()); } if(marker4 != null) { bounds.extend(marker4.getPosition()); } map.fitBounds(bounds); } } function containsWord(string, word) { return new RegExp('(?:[^.\w]|^|^\\W+)' + word + '(?:[^.\w]|\\W(?=\\W+|$)|$)').test(string); } function computeTotalDistance(result, returnTrip) { var dfrd1 = $.Deferred(); var total = 0; var myroute = result.routes[0]; var totalTolls=0; var funcTolls = 0; var tollsDesc = ""; var returnTollDesc = ""; for (var i = 0; i < myroute.legs.length; i++) { //console.log(myroute.legs[i].steps); for(var j=0;j<myroute.legs[i].steps.length;j++){ //console.log(myroute.legs[i].steps[j].instructions); if(containsWord(myroute.legs[i].steps[j].instructions.toLowerCase(), 'toll road')){ totalTolls+=1; } } //total += myroute.legs[i].distance.value; } total = total / 1000; //console.log(total + ' km'); //console.log("tolls: " + totalTolls); if(totalTolls > 0) { if(returnTrip != "yes") { var pickup = $('#lat1_value').val()+","+$('#lng1_value').val(); var dropoff = $('#lat2_value').val()+","+$('#lng2_value').val(); tolls = 0; } else { var pickup = $('#lat3_value').val()+","+$('#lng3_value').val(); var dropoff = $('#lat4_value').val()+","+$('#lng4_value').val(); return_tolls = 0; } if(pickup != "," + dropoff != ",") { $(".loader, .bgloader").show(); $.ajax({ type: "POST", url: "../tollster/11.php", data: {pickup: pickup, dropoff: dropoff, alternatives: "false", pickupState: pickupState, dropoffState: dropoffState, directions: JSON.stringify(result)}, dataType: 'json', success: function (data) { console.log(data); if(data.status == "OK") { $(".loader, .bgloader").hide(); var tollsData = data.tolls[0]; for (var i = 0; i < tollsData.length; i++) { funcTolls = funcTolls + + tollsData[i].cost; tollsDesc = tollsDesc + "$" + parseFloat(tollsData[i].cost).toFixed(2) + " " + tollsData[i].name + "\r\n"; } if(returnTrip == "yes") { return_tolls = funcTolls; $('#returnTollAmount').val(return_tolls); $('#returnTollDecription').val(tollsDesc); } else { tolls = funcTolls; $('#tollAmount').val(tolls); $('#tollDescription').val(tollsDesc); } dfrd1.resolve(); } else { dfrd1.resolve(); } } }) } } else { dfrd1.resolve(); } return dfrd1.promise(); } function setMarker(input, lat, lng) { if(input == "#pickup") { marker1 = new google.maps.Marker({map: map, position: {lat: lat, lng: lng}, icon: 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|e67717'}); } else if (input == "#dropoff") { marker2 = new google.maps.Marker({map: map, position: {lat: lat, lng: lng}, icon: 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|e67717'}); } else if(input == "#return_pickup") { marker3 = new google.maps.Marker({map: map, position: {lat: lat, lng: lng}, icon: 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|23327d'}); } else if(input == "#return_dropoff") { marker4 = new google.maps.Marker({map: map, position: {lat: lat, lng: lng}, icon: 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|23327d'}); } map.setCenter({lat: lat, lng: lng}); map.setZoom(12); directions(); } // This example displays an address form, using the autocomplete feature // of the Google Places API to help users fill in the information. var placeSearch, dropoff , pickup ; function initAutocomplete() { var perthBounds = new google.maps.LatLngBounds(new google.maps.LatLng(-32.787777, 115.556739), new google.maps.LatLng(-31.159266, 116.545509)); var sydBounds = new google.maps.LatLngBounds(new google.maps.LatLng(-34.102452, 150.203400), new google.maps.LatLng(-33.560598, 151.418768)); var melBounds = new google.maps.LatLngBounds(new google.maps.LatLng(-38.578357, 144.619531), new google.maps.LatLng(-37.568481, 145.576100)); var brisBounds = new google.maps.LatLngBounds(new google.maps.LatLng(-28.335180, 151.615935), new google.maps.LatLng(-26.249000, 154.189780)); if(setCity=="perth"){ var use = {types: ['geocode','establishment'], componentRestrictions:{country:"au"}, bounds: perthBounds, strictBounds: true,}; } else if(setCity=="sydney") { var use = {types: ['geocode','establishment'], componentRestrictions:{country:"au"}, bounds: sydBounds, strictBounds: true,}; } else if(setCity=="melbourne") { var use = {types: ['geocode','establishment'], componentRestrictions:{country:"au"}, bounds: melBounds, strictBounds: true,}; } else if(setCity=="queensland") { var use = {types: ['geocode','establishment'], componentRestrictions:{country:"au"}, bounds: brisBounds, strictBounds: true,}; } else { var use = {types: ['geocode','establishment'], componentRestrictions:{country:"au"}}; } console.log(use); pickup = new google.maps.places.Autocomplete((document.getElementById('pickup')),use); pickup.addListener('place_changed', function() { geocodeAddress(geocoder, map); }); dropoff = new google.maps.places.Autocomplete((document.getElementById('dropoff')),use); dropoff.addListener('place_changed', function() { geocodeAddress2(geocoder, map); }); return_pickup = new google.maps.places.Autocomplete((document.getElementById('return_pickup')),use); return_pickup.addListener('place_changed', function() { geocodeAddress3(geocoder, map); }); return_dropoff = new google.maps.places.Autocomplete((document.getElementById('return_dropoff')),use); return_dropoff.addListener('place_changed', function() { geocodeAddress4(geocoder, map); }); initMap(); } function timeCheck(time) { var hours = Number(time.match(/^(\d+)/)[1]); var minutes = Number(time.match(/:(\d+)/)[1]); var AMPM = time.match(/\s(.*)$/)[1]; if(AMPM == "PM" && hours<12){ hours = hours+12}; if(AMPM == "AM" && hours==12){ hours = hours-12}; //console.log(hours); return hours; } function distance() { var returnBooking = false; if($("input[name='journeyType']:checked").val() == "return") { returnBooking = true; } var bookingtime = timeCheck($('#time').val()); var pass = $('#passenger_count').val(); var rf = $('#car_seat').val(); var ff = $('#ff_count').val(); var boost = $('#booster_count').val(); var seats = parseFloat(rf) + parseFloat(ff) + parseFloat(boost); var dataString = {city: setCity, km: $("#km_est").val(), duration: $("#time_est").val(), pax: pass, seats: seats, time: bookingtime, traffic: $("#traffic_est").val()}; $.ajax({ type: "POST", url: "../familyPrice.php", data: dataString, async: true, dataType: 'json', success: function (data) { console.log(data); response = data; if(setCity != "perth") { computeTotalDistance(googleRoute, "no").done(function() { $(".loader, .bgloader").hide(); postPrice(response, false); if(returnBooking) { returnBookingGet(); } }) } else { $(".loader, .bgloader").hide(); postPrice(response, false); if(returnBooking) { returnBookingGet(); } } }, error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); $(".loader, .bgloader").hide(); } }) //console.log(onewayData); function returnBookingGet() { var pickup = $('#lat3_value').val()+","+$('#lng3_value').val(); var dropoff = $('#lat4_value').val()+","+$('#lng4_value').val(); var bookingtime = timeCheck($('#return_time').val()); $(".loader, .bgloader").show(); var dataString = {city: setCity, km: $("#return_km_est").val(), duration: $("#return_time_est").val(), pax: pass, seats: seats, time: bookingtime}; $.ajax({ type: "POST", url: "../familyPrice.php", data: dataString, async: true, dataType: 'json', success: function (data) { $(".loader, .bgloader").hide(); console.log(data); response = data; if(setCity != "perth") { computeTotalDistance(googleReturnRoute, "yes").done(function() { postPrice(response, true); }) } else { postPrice(response, true); } }, error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); $(".loader, .bgloader").hide(); } }) } function postPrice(data, return_booking) { var radioValue = $("#cityType").val(); if(return_booking == true) { var returnQuote = data.total; if(return_tolls > 0) { var toll_string = " + $" + parseFloat(return_tolls).toFixed(2) + " tolls"; } else { var toll_string = ""; } $('#returnPrice').val( parseFloat(returnQuote).toFixed(2) ); var price = parseFloat(returnQuote).toFixed(2); var levy = data.levy; var levy_string = ""; if(levy != "0") { levy_string = " inc. $" + parseFloat(levy).toFixed(2) + " levy"; } $('#totalPrice2').text(price + levy_string + toll_string); console.log($('#onewayPrice').val()); var total = parseFloat(returnQuote) + parseFloat($('#onewayPrice').val()); var total_tolls = tolls + return_tolls; if(total_tolls > 0) { var toll_string = " + $" + parseFloat(total_tolls).toFixed(2) + " tolls"; } else { var toll_string = ""; } $('#totalPrice3').text( parseFloat(total).toFixed(2) + toll_string); } else { var onewayQuote = data.total; var price = parseFloat(onewayQuote).toFixed(2); var levy = data.levy; var levy_string = ""; if(levy != "0") { levy_string = " inc. $" + parseFloat(levy).toFixed(2) + " levy"; } if(tolls > 0) { var toll_string = " + $" + parseFloat(tolls).toFixed(2) + " tolls"; } else { var toll_string = ""; } $('#onewayPrice').val( parseFloat(onewayQuote).toFixed(2) ); $('#totalPrice').text( parseFloat(onewayQuote).toFixed(2) + levy_string + toll_string ); } } } function directions() { if($('#lat1_value').val() != "" && $('#lat2_value').val() != "" && $("#date").val() != "" && $("#time").val() != "") { calculateAndDisplayRoute(directionsService, directionsDisplay); } if($('#lat3_value').val() != "" && $('#lat4_value').val() != "") { calculateAndDisplayRoute_return(directionsService, directionsDisplay_return); } } function isNumber(obj) { return !isNaN(parseFloat(obj)) } function checkLuhn(input) { var sum = 0; var numdigits = input.length; var parity = numdigits % 2; for(var i=0; i < numdigits; i++) { var digit = parseInt(input.charAt(i)) if(i % 2 == parity) digit *= 2; if(digit > 9) digit -= 9; sum += digit; } return (sum % 10) == 0; } function unpackLatlng(latlngarray) { var paths = []; for (var i = 0; i < latlngarray.length; i++) { paths.push(new google.maps.LatLng(latlngarray[i][0], latlngarray[i][1])); } //console.dir(paths); return paths } function checkPoint(array, point) { var coordsArray = array; var coords = unpackLatlng(coordsArray); var poly = new google.maps.Polygon({ paths: coords, }); if(google.maps.geometry.poly.containsLocation(point, poly) == true) { return true; } else { return false; } } function checkLocation(point, city) { for(var i=0; i < locations.length; i++) { if(city != "") { if(locations[i].city == city) { if(checkPoint(locations[i].array, point)) { return {city: locations[i].city, airport: locations[i].airport}; } } } else { if(checkPoint(locations[i].array, point)) { return {city: locations[i].city, airport: locations[i].airport}; } } } return false; } function setCityFromButton(city) { modal.style.display = "none"; setCity = city; initAutocomplete(); getTerminals(lastClicked, city); } function setTerminal(id, i) { var cityArray = terminals[setCity]; $(id).val(cityArray[i].name); if(id == "#pickup") { $("#lat1_value").val(cityArray[i].lat); $("#lng1_value").val(cityArray[i].long); } else if(id == "#dropoff") { $("#lat2_value").val(cityArray[i].lat); $("#lng2_value").val(cityArray[i].long); } else if(id == "#return_pickup") { $("#lat3_value").val(cityArray[i].lat); $("#lng3_value").val(cityArray[i].long); } else if(id == "#return_dropoff") { $("#lat4_value").val(cityArray[i].lat); $("#lng4_value").val(cityArray[i].long); } setMarker(id, parseFloat(cityArray[i].lat), parseFloat(cityArray[i].long)); } function removeTerminals(id) { var row; if(id == "#pickup") { airport_pickup = 0; row = "#terminalsRow1"; } else if(id == "#dropoff") { row = "#terminalsRow2"; } else if(id == "#return_pickup") { row = "#terminalsRow3"; } else if(id == "#return_dropoff") { row = "#terminalsRow4"; } $(id).val(""); $(row).html(""); } function getTerminals(id, city) { if(city == "") { lastClicked = id; modal.style.display = "block"; return; } var row; if(id == "#pickup") { airport_pickup = 5; if($("#flight_number").val() == "N/A") { $("#flight_number").val(''); } if(quoteCheck != "1") { $(".pickup_div_t, .flight_time").show(); $("#flight_number, #pickup_time").attr('required', 'required'); } document.getElementsByName('time')[0].placeholder='Flight Arrival Time'; row = "#terminalsRow1"; } else if(id == "#dropoff") { row = "#terminalsRow2"; } else if(id == "#return_pickup") { if($("#return_flight_number").val() == "N/A") { $("#return_flight_number").val(''); } if(quoteCheck != "1") { $(".return_pickup_div_t, .return_flight_time").show(); $("#return_flight_number, #return_pickup_time").attr('required', 'required'); } document.getElementsByName('return_time')[0].placeholder='Flight Arrival Time'; row = "#terminalsRow3"; } else if(id == "#return_dropoff") { row = "#terminalsRow4"; } var cityArray = terminals[city]; $(row).html(""); var col = 12 / cityArray.length; var html = '<div class="btn-group col-xs-12 col-md-6" data-toggle="buttons">'; for(var i = 0; i < cityArray.length; i++) { var x = i + 1; html += '<label onclick="setTerminal(`' + id + '`, `' + i + '`);" class="col-xs-' + col + ' btn btn-primary"><input type="radio" id="t' + x + '" value="t' + x + '" autocomplete="off">' + cityArray[i].buttonLabel + '</label>'; } html += '</div>'; $(row).html(html); } function getPoly() { $.ajax({ type: "GET", url: "array.php", dataType: 'json', success: function (data) { console.log(data.areas); locations = data.areas; var cities = new Array(); for(i = 0; i < data.areas.length; i++) { var str = data.areas[i].city; str = str.toLowerCase().replace(/\b[a-z]/g, function(letter) { return letter.toUpperCase(); }); if(jQuery.inArray(str, cities) === -1) { cities.push(str); } } cities.sort(); var html = ""; for(i = 0; i < cities.length; i++) { html += "<div style='margin-top: 10px;' class='row'><div class='col-xs-12 text-center'><div class='col-xs-3'></div><button class='btn btn-primary col-xs-6' onclick='setCityFromButton(`" + cities[i].toLowerCase() + "`)'>" + cities[i] + "</button><div class='col-xs-3'></div></div></div>"; } $("#modal-body").html(html); terminals = data.terminals; /*for(var i=0; i < data.length; i++) { var coordsArray = data[i].array; var coords = unpackLatlng(coordsArray); var poly = new google.maps.Polygon({ paths: coords, strokeColor: '#0000FF', strokeOpacity: 0.8, strokeWeight: 1, fillColor: '#0000FF', fillOpacity: 0.1 }); poly.setMap(map); }*/ } }) } </script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCq_JZBDbrE5qma5SgF06M2dVAqbiZBZ-o&libraries=places,geometry&callback=initAutocomplete" async defer></script> <script> //submitHandler: function(form) { // $(".loader, .bgloader").show(); // eCrypt.submitForm(); // }, //invalidHandler: function(event, validator) { // this.onsubmit = null; // }, </script> </body> </html>
Save
cmd:
run