Commit 05f004ef authored by Mihiranga G.L.V - IT18500790's avatar Mihiranga G.L.V - IT18500790

Merge branch 'IT18500790' into 'master'

Seat Create

See merge request !23
parents 824f79b0 a4dc2a18
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE 0"
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE 0";
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result25 = mysqli_query($con,$sql25) or die(mysqli_error($con));
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result25 = mysqli_query($con,$sql25) or die(mysqli_error($con));
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
$sql2 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
$sql2 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
$sql2 = "DELETE FROM `best_seat` WHERE logUserid = $logUserid ";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$startTime = mysqli_real_escape_string($con,$_POST['startTime']);
$endTime = mysqli_real_escape_string($con,$_POST['endTime']);
$sql1 = "UPDATE `user_details` SET `start`='$startTime',`end`='$endTime' WHERE `logUserid`='$logUserid'";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
if($result1){
echo 1;
} else {
echo 0;
}
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$startTime = mysqli_real_escape_string($con,$_POST['startTime']);
$endTime = mysqli_real_escape_string($con,$_POST['endTime']);
$sql1 = "UPDATE `user_details` SET `start`='$startTime',`end`='$endTime' WHERE `logUserid`='$logUserid'";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
if($result1){
echo 1;
} else {
echo 0;
}
\ No newline at end of file
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$startTime = mysqli_real_escape_string($con,$_POST['startTime']);
$endTime = mysqli_real_escape_string($con,$_POST['endTime']);
$sql1 = "UPDATE `user_details` SET `start`='$startTime',`end`='$endTime' WHERE `logUserid`='$logUserid'";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
if($result1){
echo 1;
} else {
echo 0;
}
\ No newline at end of file
<?php
include "db_connect.php";
if(isset($_POST['logUserid'])){
$logUserid = $_POST['logUserid'];
} else {
header("Location: (index.php)");
}
?>
<!DOCTYPE html>
<html lang="zxx">
<!--[endif]-->
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<meta charset="utf-8" />
<title>User-Friendly Railway </title>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta name="MobileOptimized" content="320" />
<!--Template style -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"
/>
<link rel="stylesheet" type="text/css" href="css/xpedia.css" />
<style type="text/css">
#myBtn {
display: none;
position: fixed;
bottom: 20px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtnChat:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnChat {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtn:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
</style>
<script>
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}else {
}
}
</script>
</head>
<body onload="loadFun(); createTripPlan();">
<div id="subform"></div>
<?php include('common_header.php'); ?>
<script>
function createTripPlan(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`collapseOne`).innerHTML = req.responseText;
changeLineName();
deleteSeatDetails();
}
}
}
req.open("POST", 'sub_trip_planned_create_trip_plan.php', true);
req.send(formData);
}
}
function changeLineName(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`lineNameSec`).innerHTML = req.responseText;
}
}
}
req.open("POST", 'sub_change_line_name.php', true);
req.send(formData);
}
}
function createSeatDesign(logUserid, train_id, train_start_station, seat_design){
logUserid = logUserid;
train_id = train_id;
train_start_station = train_start_station;
seat_design = seat_design;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('seat_design', seat_design);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`seatPlanAdd`).innerHTML = req.responseText;
$(`#train_${train_id}_${train_start_station}`).modal('show');
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat.php', true);
req.send(formData);
}
}
function selectSeat(logUserid, train_id, train_start_station, row, seat, status) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('row', row);
formData.append('seat', seat);
formData.append('status', status);
if(status == 'no') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_add_to_temp.php', true);
req.send(formData);
}
} else if(status == 'yes') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_remove_from_temp.php', true);
req.send(formData);
}
}
}
function highlightBest(logUserid, train_id, train_start_station) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
var bestButton = document.getElementById(req.responseText);
bestButton.classList.add('animate__animated', 'animate__heartBeat', 'animate__infinite', 'slow');
}
}
}
req.open("POST", 'sub_check_best_seat.php', true);
req.send(formData);
}
}
</script>
<!-- hs Navigation End -->
<!-- btc tittle Wrapper Start -->
<div class="btc_tittle_main_wrapper">
<div class="btc_tittle_img_overlay"></div>
<div class="container">
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_left_heading">
<h1>Custom Trip Plan</h1>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_right_heading">
<div class="btc_tittle_right_cont_wrapper">
<ul>
<li><a href="#">Home</a> <i class="fa fa-angle-right"></i>
</li>
<li>Custom Trip Plan</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- btc tittle Wrapper End -->
<!-- x tittle num Wrapper Start -->
<div class="x_title_num_mian_Wrapper float_left">
<div class="container">
<div class="x_title_inner_num_wrapper float_left">
<div class="x_title_num_heading">
<h3>Create Custom Trip Plan</h3>
<p>Complete Your Step</p>
</div>
<div class="x_title_num_heading_cont">
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>1</p>
</div>
<h5>Fill Details</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num ">
<p>2</p>
</div>
<h5>Select Location</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>3</p>
</div>
<h5>Create plan</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>4</p>
</div>
<h5>customize Plan</h5>
</div>
<div class="x_title_num_main_box_wrapper x_title_num_main_box_wrapper3 x_title_num_main_box_wrapper_last">
<div class="x_icon_num">
<p>5</p>
</div>
<h5>done!</h5>
</div>
</div>
</div>
</div>
</div>
<!-- x tittle num Wrapper End -->
<!-- x car book sidebar section Wrapper Start -->
<div class="x_car_book_sider_main_Wrapper float_left">
<div class="container" >
<div class="row">
<div class="col-xl-3 col-lg-4 col-md-12 col-sm-12 col-12">
<div class="x_car_book_left_siderbar_wrapper float_left">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
<div class="x_slider_form_main_wrapper float_left x_slider_form_main_wrapper_ccb">
<div class="x_slider_form_heading_wrapper x_slider_form_heading_wrapper_carbooking float_left">
<h3>Let’s Create perfect Trip</h3>
</div>
<input type="text" value="<?php echo $logUserid ?>" id="logUserid" hidden>
<div class="row">
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Railway Line</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToLine(this.value);">
<?php
$sql1 = "SELECT * FROM linelist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
while($row1 = mysqli_fetch_array($result1)){
$slected_line_no = $row1['lineNo'];
$sql2 = "SELECT * FROM railway_line WHERE id = $slected_line_no";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
$row2 = mysqli_fetch_assoc($result2)
?>
<option value="<?php echo $row2['id'] ?>"><?php echo $row2['line'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Location Category</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToCat(this.value)">
<?php
$sql3 = "SELECT * FROM catlist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result3 = mysqli_query($con,$sql3) or die(mysqli_error($con));
while($row3 = mysqli_fetch_array($result3)){
$selected_cat_id = $row3['catNo'];
$sql4 = "SELECT * FROM category WHERE id = '$selected_cat_id' ";
$result4 = mysqli_query($con,$sql4) or die(mysqli_error($con));
$row4 = mysqli_fetch_assoc($result4)
?>
<option value="<?php echo $row4['id'] ?>"><?php echo $row4['name'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>Start Date</h3>
<?php
$sql5 = "SELECT * FROM user_details WHERE logUserid = $logUserid";
$result5 = mysqli_query($con,$sql5) or die(mysqli_error($con));
$row5 = mysqli_fetch_assoc($result5);
?>
<label class="cal-icon">
<input type="text" id="startTime" onchange="changeTime();" value="<?php echo $row5['start'] ?>" placeholder="Start Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>End Date</h3>
<label class="cal-icon">
<input type="text" id="endTime" onchange="changeTime();" value="<?php echo $row5['end'] ?>" placeholder="End Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function changeTime() {
let logUserid = document.getElementById(`logUserid`).value;
let startTime = document.getElementById(`startTime`).value;
let endTime = document.getElementById(`endTime`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('startTime', startTime);
formData.append('endTime', endTime);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
if(req.responseText == 1) {
createTripPlan();
}
// createTripPlan();
}
}
}
req.open("POST", 'sub_update_date.php', true);
req.send(formData);
}
}
function setToCat(value) {
let logUserid = document.getElementById(`logUserid`).value;
let catDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('catDropValue', catDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_cat.php', true);
req.send(formData);
}
}
function setToLine(value){
let logUserid = document.getElementById(`logUserid`).value;
let lineDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('lineDropValue', lineDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_line.php', true);
req.send(formData);
}
}
</script>
<div class="col-xl-9 col-lg-8 col-md-12 col-sm-12 col-12">
<div class="x_carbooking_right_section_wrapper float_left">
<div class="row">
<div class="col-md-12">
<div class="x_car_checkout_right_main_box_wrapper float_left">
<div class="car-filter order-billing margin-top-0">
<div class="heading-block text-left margin-bottom-0">
<h4>Trip Details</h4>
</div>
<hr>
<!-- <form class="billing-form">
<ul class="list-unstyled row">
<li class="col-md-6">
<label>First Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Last Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>NIC / Passport
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Passengers
<input type="text" placeholder="" class="form-control">
</label>
</li>
</form> -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div class="accordion" id="accordionExample" style="width: 100%; ">
<div class="card">
<div class="card-header" id="headingOne" style="background-color: #4f5dec;">
<h2 class="mb-0" >
<button style="color: #ffffff;" class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Best Trip Plan - <b> <span id="lineNameSec"> Main Line </span></b>
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="contect_btn contect_btn_contact">
<ul>
<li><a href="#">Confirm Plan <i class="fa fa-arrow-right"></i></a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- x car book sidebar section Wrapper End -->
<!-- Button trigger modal -->
<div id="seatPlanAdd">
</div>
<style>
.btn-link:hover, .btn-link, .btn-link:focus{
text-decoration:none;
}
</style>
<?php include('common_footer.php'); ?>
<div class="container pull-right" id="chatbox">
<div class="row chat-window col-xs-5 col-md-4 pull-right" id="chat_window_1">
<div class="col-xs-12 col-md-12">
<div class="panel panel-default">
<div class="panel-heading top-bar" style="border-radius: 5px 5px 0px 0px;">
<div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-md-8 col-xs-8">
<h5 class="panel-title" style="font-size: 18; font-weight: 600; color: #ffffff; text-transform: uppercase;"><span class="glyphicon glyphicon-comment"></span> Railbot </h3>
</div>
<div class="col-md-4 col-xs-4" style="text-align: right;">
<a style="color: #ffffff; cursor:pointer;" onclick="minimizeChat();"><i id="minim_chat_window" class="fa fa-window-minimize icon_minim"></i></a>
<a style="color: #ffffff; cursor:pointer;" onclick="closeChat();"><i class="fa fa-close icon_close" data-id="chat_window_1"></i></a>
</div>
</div>
</div>
<!-- <div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-sm-5 col-md-5 col-lg-5">xxxxxxx</div>
<div class="col-sm-4 col-md-4 col-lg-4">xxxxxxxx</div>
</div>
</div> -->
</div>
<div id="messagebody" class="panel-body msg_container_base">
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_sent">
<p>Hi</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:22</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_receive">
<p>Hi there, how can I help?</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:28</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_sent">
<p>What are the historical places i can visit in Sri Lanka? </p>
<time datetime="2009-11-13T20:00">User • Today 10:05:38</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>You can see Ruwanweliseya, Thuparamaya, Isurumuniya and many other historical places in Sri Lanka.</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:41</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10 " style="padding:0;">
<div class="messages msg_sent">
<p>Who made sigiriya?</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:45</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>Sigiriya was built by King Kashyapa</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:09:33</time>
</div>
</div>
</div>
</div>
</div>
<div class="panel-footer" id="inputSec">
<div class="input-group">
<input id="btn-input" type="text" class="form-control input-sm chat_input" placeholder="Write your message here..." required="required" />
<span class="input-group-btn">
<button class="btn btn-primary btn-sm" style="margin-top: 5%;" id="btn-chat">Send <i class="fa fa-send-o" style="font-size:15px; padding-left: 5%;"></i></button>
</span>
</div>
</div>
</div>
</div>
</div>
<script>
function minimizeChat() {
if(document.getElementById('messagebody').style.display == 'block' && document.getElementById('inputSec').style.display == 'block') {
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
} else {
document.getElementById('messagebody').style.display = 'block';
document.getElementById('inputSec').style.display = 'block';
}
}
function closeChat() {
$( "#chatbox" ).hide();
}
function showChat() {
$( "#chatbox" ).show();
}
function loadFun(){
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
}
</script>
<style>
.panel{
margin-bottom: 0px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.chat-window{
bottom:0;
right:5%;
position:fixed;
float:right;
}
.chat-window > div > .panel{
border-radius: 5px 5px 0 0;
}
.icon_minim{
padding:2px 10px;
}
.msg_container_base{
background: #e5e5e5;
margin: 0;
padding: 0 10px 10px;
max-height:300px;
overflow-x:hidden;
}
.top-bar {
background: #4f5dec;
color: white;
padding: 10px;
position: relative;
overflow: hidden;
}
.msg_receive{
padding-left:0;
margin-left:0;
}
.msg_sent{
padding-bottom:20px !important;
margin-right:0;
}
.messages {
background: white;
padding: 10px;
border-radius: 2px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
max-width:100%;
}
.messages > p {
font-size: 13px;
margin: 0 0 0.2rem 0;
}
.messages > time {
font-size: 11px;
color: #ccc;
}
.msg_container {
padding: 10px;
overflow: hidden;
display: flex;
}
.chatimg {
display: block;
width: 100%;
}
.avatar {
position: relative;
}
.base_receive > .avatar:after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 0;
height: 0;
border: 5px solid #FFF;
border-left-color: rgba(0, 0, 0, 0);
border-bottom-color: rgba(0, 0, 0, 0);
}
.base_sent {
justify-content: flex-end;
align-items: flex-end;
}
.base_sent > .avatar:after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 0;
border: 5px solid white;
border-right-color: transparent;
border-top-color: transparent;
box-shadow: 1px 1px 2px rgba(black, 0.2); // not quite perfect but close
}
.msg_sent > time{
float: right;
}
.msg_container_base::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar
{
width: 12px;
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar-thumb
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
.btn-group.dropup{
position:fixed;
left:0px;
bottom:0;
}
.panel-footer {
padding: 10px 15px;
background-color: #a5abf3;
border-top: 1px solid #ddd;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
</style>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/modernizr.js"></script>
<script src="js/select2.min.js"></script>
<script src="js/jquery.menu-aim.js"></script>
<script src="js/jquery-ui.js"></script>
<script src="js/jquery.nice-select.min.js"></script>
<script src="js/owl.carousel.js"></script>
<!-- <script src="js/own-menu.js"></script> -->
<script src="js/jquery.bxslider.min.js"></script>
<script src="js/jquery.magnific-popup.js"></script>
<script src="js/xpedia.js"></script>
<!-- custom js-->
<link href="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/css/lobibox.css" rel="stylesheet" />
<!-- <script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/lib/jquery.1.11.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/js/lobibox.min.js"></script>
<script src='https://kit.fontawesome.com/a076d05399.js' crossorigin='anonymous'></script>
</body>
<script>
//Get the button
var mybutton = document.getElementById("myBtn");
var mybuttonchat = document.getElementById("myBtnChat");
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
mybutton.style.display = "block";
mybuttonchat.style.display = "block";
} else {
mybutton.style.display = "none";
mybuttonchat.style.display = "none";
}
}
// When the user clicks on the button, scroll to the top of the document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
function naviFunction() {
window.location.href = "train_planned.html";
}
function naviHome() {
window.location.href = "index.php";
}
function naviFunction() {
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
if(req.responseText == 1) {
var subform = document.getElementById('subform');
var form = document.createElement("form");
form.method = 'POST';
form.action = 'train_planned.php';
var input1 = document.createElement('input');
input1.type = "hidden";
input1.name = "logUserid";
input1.value = logUserid;
form.appendChild(input1);
subform.appendChild(form);
form.submit();
} else {
Lobibox.notify('error', {
size: 'normal',
sound: false,
title: 'Cannot access...',
icon: 'fa fa-times-circle',
msg: 'Please fill your details before create trip plan.'
});
}
}
}
}
req.open("POST", 'sub_check_user_submit_details.php', true);
req.send(formData);
}
}
</script>
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
</html>
\ No newline at end of file
<?php
include "db_connect.php";
if(isset($_POST['logUserid'])){
$logUserid = $_POST['logUserid'];
} else {
header("Location: (index.php)");
}
?>
<!DOCTYPE html>
<html lang="zxx">
<!--[endif]-->
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<meta charset="utf-8" />
<title>User-Friendly Railway </title>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta name="MobileOptimized" content="320" />
<!--Template style -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"
/>
<link rel="stylesheet" type="text/css" href="css/xpedia.css" />
<style type="text/css">
#myBtn {
display: none;
position: fixed;
bottom: 20px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtnChat:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnChat {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtn:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
</style>
<script>
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}else {
}
}
</script>
</head>
<body onload="loadFun(); createTripPlan();">
<div id="subform"></div>
<?php include('common_header.php'); ?>
<script>
function createTripPlan(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`collapseOne`).innerHTML = req.responseText;
changeLineName();
deleteSeatDetails();
}
}
}
req.open("POST", 'sub_trip_planned_create_trip_plan.php', true);
req.send(formData);
}
}
function changeLineName(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`lineNameSec`).innerHTML = req.responseText;
}
}
}
req.open("POST", 'sub_change_line_name.php', true);
req.send(formData);
}
}
function createSeatDesign(logUserid, train_id, train_start_station, seat_design){
logUserid = logUserid;
train_id = train_id;
train_start_station = train_start_station;
seat_design = seat_design;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('seat_design', seat_design);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`seatPlanAdd`).innerHTML = req.responseText;
$(`#train_${train_id}_${train_start_station}`).modal('show');
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat.php', true);
req.send(formData);
}
}
function selectSeat(logUserid, train_id, train_start_station, row, seat, status) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('row', row);
formData.append('seat', seat);
formData.append('status', status);
if(status == 'no') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_add_to_temp.php', true);
req.send(formData);
}
} else if(status == 'yes') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_remove_from_temp.php', true);
req.send(formData);
}
}
}
function highlightBest(logUserid, train_id, train_start_station) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
var bestButton = document.getElementById(req.responseText);
bestButton.classList.add('animate__animated', 'animate__heartBeat', 'animate__infinite', 'slow');
}
}
}
req.open("POST", 'sub_check_best_seat.php', true);
req.send(formData);
}
}
</script>
<!-- hs Navigation End -->
<!-- btc tittle Wrapper Start -->
<div class="btc_tittle_main_wrapper">
<div class="btc_tittle_img_overlay"></div>
<div class="container">
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_left_heading">
<h1>Custom Trip Plan</h1>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_right_heading">
<div class="btc_tittle_right_cont_wrapper">
<ul>
<li><a href="#">Home</a> <i class="fa fa-angle-right"></i>
</li>
<li>Custom Trip Plan</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- btc tittle Wrapper End -->
<!-- x tittle num Wrapper Start -->
<div class="x_title_num_mian_Wrapper float_left">
<div class="container">
<div class="x_title_inner_num_wrapper float_left">
<div class="x_title_num_heading">
<h3>Create Custom Trip Plan</h3>
<p>Complete Your Step</p>
</div>
<div class="x_title_num_heading_cont">
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>1</p>
</div>
<h5>Fill Details</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num ">
<p>2</p>
</div>
<h5>Select Location</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>3</p>
</div>
<h5>Create plan</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>4</p>
</div>
<h5>customize Plan</h5>
</div>
<div class="x_title_num_main_box_wrapper x_title_num_main_box_wrapper3 x_title_num_main_box_wrapper_last">
<div class="x_icon_num">
<p>5</p>
</div>
<h5>done!</h5>
</div>
</div>
</div>
</div>
</div>
<!-- x tittle num Wrapper End -->
<!-- x car book sidebar section Wrapper Start -->
<div class="x_car_book_sider_main_Wrapper float_left">
<div class="container" >
<div class="row">
<div class="col-xl-3 col-lg-4 col-md-12 col-sm-12 col-12">
<div class="x_car_book_left_siderbar_wrapper float_left">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
<div class="x_slider_form_main_wrapper float_left x_slider_form_main_wrapper_ccb">
<div class="x_slider_form_heading_wrapper x_slider_form_heading_wrapper_carbooking float_left">
<h3>Let’s Create perfect Trip</h3>
</div>
<input type="text" value="<?php echo $logUserid ?>" id="logUserid" hidden>
<div class="row">
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Railway Line</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToLine(this.value);">
<?php
$sql1 = "SELECT * FROM linelist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
while($row1 = mysqli_fetch_array($result1)){
$slected_line_no = $row1['lineNo'];
$sql2 = "SELECT * FROM railway_line WHERE id = $slected_line_no";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
$row2 = mysqli_fetch_assoc($result2)
?>
<option value="<?php echo $row2['id'] ?>"><?php echo $row2['line'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Location Category</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToCat(this.value)">
<?php
$sql3 = "SELECT * FROM catlist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result3 = mysqli_query($con,$sql3) or die(mysqli_error($con));
while($row3 = mysqli_fetch_array($result3)){
$selected_cat_id = $row3['catNo'];
$sql4 = "SELECT * FROM category WHERE id = '$selected_cat_id' ";
$result4 = mysqli_query($con,$sql4) or die(mysqli_error($con));
$row4 = mysqli_fetch_assoc($result4)
?>
<option value="<?php echo $row4['id'] ?>"><?php echo $row4['name'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>Start Date</h3>
<?php
$sql5 = "SELECT * FROM user_details WHERE logUserid = $logUserid";
$result5 = mysqli_query($con,$sql5) or die(mysqli_error($con));
$row5 = mysqli_fetch_assoc($result5);
?>
<label class="cal-icon">
<input type="text" id="startTime" onchange="changeTime();" value="<?php echo $row5['start'] ?>" placeholder="Start Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>End Date</h3>
<label class="cal-icon">
<input type="text" id="endTime" onchange="changeTime();" value="<?php echo $row5['end'] ?>" placeholder="End Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function changeTime() {
let logUserid = document.getElementById(`logUserid`).value;
let startTime = document.getElementById(`startTime`).value;
let endTime = document.getElementById(`endTime`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('startTime', startTime);
formData.append('endTime', endTime);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
if(req.responseText == 1) {
createTripPlan();
}
// createTripPlan();
}
}
}
req.open("POST", 'sub_update_date.php', true);
req.send(formData);
}
}
function setToCat(value) {
let logUserid = document.getElementById(`logUserid`).value;
let catDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('catDropValue', catDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_cat.php', true);
req.send(formData);
}
}
function setToLine(value){
let logUserid = document.getElementById(`logUserid`).value;
let lineDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('lineDropValue', lineDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_line.php', true);
req.send(formData);
}
}
</script>
<div class="col-xl-9 col-lg-8 col-md-12 col-sm-12 col-12">
<div class="x_carbooking_right_section_wrapper float_left">
<div class="row">
<div class="col-md-12">
<div class="x_car_checkout_right_main_box_wrapper float_left">
<div class="car-filter order-billing margin-top-0">
<div class="heading-block text-left margin-bottom-0">
<h4>Trip Details</h4>
</div>
<hr>
<!-- <form class="billing-form">
<ul class="list-unstyled row">
<li class="col-md-6">
<label>First Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Last Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>NIC / Passport
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Passengers
<input type="text" placeholder="" class="form-control">
</label>
</li>
</form> -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div class="accordion" id="accordionExample" style="width: 100%; ">
<div class="card">
<div class="card-header" id="headingOne" style="background-color: #4f5dec;">
<h2 class="mb-0" >
<button style="color: #ffffff;" class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Best Trip Plan - <b> <span id="lineNameSec"> Main Line </span></b>
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="contect_btn contect_btn_contact">
<ul>
<li><a href="#">Confirm Plan <i class="fa fa-arrow-right"></i></a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- x car book sidebar section Wrapper End -->
<!-- Button trigger modal -->
<div id="seatPlanAdd">
</div>
<style>
.btn-link:hover, .btn-link, .btn-link:focus{
text-decoration:none;
}
</style>
<?php include('common_footer.php'); ?>
<div class="container pull-right" id="chatbox">
<div class="row chat-window col-xs-5 col-md-4 pull-right" id="chat_window_1">
<div class="col-xs-12 col-md-12">
<div class="panel panel-default">
<div class="panel-heading top-bar" style="border-radius: 5px 5px 0px 0px;">
<div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-md-8 col-xs-8">
<h5 class="panel-title" style="font-size: 18; font-weight: 600; color: #ffffff; text-transform: uppercase;"><span class="glyphicon glyphicon-comment"></span> Railbot </h3>
</div>
<div class="col-md-4 col-xs-4" style="text-align: right;">
<a style="color: #ffffff; cursor:pointer;" onclick="minimizeChat();"><i id="minim_chat_window" class="fa fa-window-minimize icon_minim"></i></a>
<a style="color: #ffffff; cursor:pointer;" onclick="closeChat();"><i class="fa fa-close icon_close" data-id="chat_window_1"></i></a>
</div>
</div>
</div>
<!-- <div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-sm-5 col-md-5 col-lg-5">xxxxxxx</div>
<div class="col-sm-4 col-md-4 col-lg-4">xxxxxxxx</div>
</div>
</div> -->
</div>
<div id="messagebody" class="panel-body msg_container_base">
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_sent">
<p>Hi</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:22</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_receive">
<p>Hi there, how can I help?</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:28</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_sent">
<p>What are the historical places i can visit in Sri Lanka? </p>
<time datetime="2009-11-13T20:00">User • Today 10:05:38</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>You can see Ruwanweliseya, Thuparamaya, Isurumuniya and many other historical places in Sri Lanka.</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:41</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10 " style="padding:0;">
<div class="messages msg_sent">
<p>Who made sigiriya?</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:45</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>Sigiriya was built by King Kashyapa</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:09:33</time>
</div>
</div>
</div>
</div>
</div>
<div class="panel-footer" id="inputSec">
<div class="input-group">
<input id="btn-input" type="text" class="form-control input-sm chat_input" placeholder="Write your message here..." required="required" />
<span class="input-group-btn">
<button class="btn btn-primary btn-sm" style="margin-top: 5%;" id="btn-chat">Send <i class="fa fa-send-o" style="font-size:15px; padding-left: 5%;"></i></button>
</span>
</div>
</div>
</div>
</div>
</div>
<script>
function minimizeChat() {
if(document.getElementById('messagebody').style.display == 'block' && document.getElementById('inputSec').style.display == 'block') {
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
} else {
document.getElementById('messagebody').style.display = 'block';
document.getElementById('inputSec').style.display = 'block';
}
}
function closeChat() {
$( "#chatbox" ).hide();
}
function showChat() {
$( "#chatbox" ).show();
}
function loadFun(){
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
}
</script>
<style>
.panel{
margin-bottom: 0px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.chat-window{
bottom:0;
right:5%;
position:fixed;
float:right;
}
.chat-window > div > .panel{
border-radius: 5px 5px 0 0;
}
.icon_minim{
padding:2px 10px;
}
.msg_container_base{
background: #e5e5e5;
margin: 0;
padding: 0 10px 10px;
max-height:300px;
overflow-x:hidden;
}
.top-bar {
background: #4f5dec;
color: white;
padding: 10px;
position: relative;
overflow: hidden;
}
.msg_receive{
padding-left:0;
margin-left:0;
}
.msg_sent{
padding-bottom:20px !important;
margin-right:0;
}
.messages {
background: white;
padding: 10px;
border-radius: 2px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
max-width:100%;
}
.messages > p {
font-size: 13px;
margin: 0 0 0.2rem 0;
}
.messages > time {
font-size: 11px;
color: #ccc;
}
.msg_container {
padding: 10px;
overflow: hidden;
display: flex;
}
.chatimg {
display: block;
width: 100%;
}
.avatar {
position: relative;
}
.base_receive > .avatar:after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 0;
height: 0;
border: 5px solid #FFF;
border-left-color: rgba(0, 0, 0, 0);
border-bottom-color: rgba(0, 0, 0, 0);
}
.base_sent {
justify-content: flex-end;
align-items: flex-end;
}
.base_sent > .avatar:after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 0;
border: 5px solid white;
border-right-color: transparent;
border-top-color: transparent;
box-shadow: 1px 1px 2px rgba(black, 0.2); // not quite perfect but close
}
.msg_sent > time{
float: right;
}
.msg_container_base::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar
{
width: 12px;
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar-thumb
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
.btn-group.dropup{
position:fixed;
left:0px;
bottom:0;
}
.panel-footer {
padding: 10px 15px;
background-color: #a5abf3;
border-top: 1px solid #ddd;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
</style>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/modernizr.js"></script>
<script src="js/select2.min.js"></script>
<script src="js/jquery.menu-aim.js"></script>
<script src="js/jquery-ui.js"></script>
<script src="js/jquery.nice-select.min.js"></script>
<script src="js/owl.carousel.js"></script>
<!-- <script src="js/own-menu.js"></script> -->
<script src="js/jquery.bxslider.min.js"></script>
<script src="js/jquery.magnific-popup.js"></script>
<script src="js/xpedia.js"></script>
<!-- custom js-->
<link href="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/css/lobibox.css" rel="stylesheet" />
<!-- <script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/lib/jquery.1.11.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/js/lobibox.min.js"></script>
<script src='https://kit.fontawesome.com/a076d05399.js' crossorigin='anonymous'></script>
</body>
<script>
//Get the button
var mybutton = document.getElementById("myBtn");
var mybuttonchat = document.getElementById("myBtnChat");
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
mybutton.style.display = "block";
mybuttonchat.style.display = "block";
} else {
mybutton.style.display = "none";
mybuttonchat.style.display = "none";
}
}
// When the user clicks on the button, scroll to the top of the document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
function naviFunction() {
window.location.href = "train_planned.html";
}
function naviHome() {
window.location.href = "index.php";
}
function naviFunction() {
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
if(req.responseText == 1) {
var subform = document.getElementById('subform');
var form = document.createElement("form");
form.method = 'POST';
form.action = 'train_planned.php';
var input1 = document.createElement('input');
input1.type = "hidden";
input1.name = "logUserid";
input1.value = logUserid;
form.appendChild(input1);
subform.appendChild(form);
form.submit();
} else {
Lobibox.notify('error', {
size: 'normal',
sound: false,
title: 'Cannot access...',
icon: 'fa fa-times-circle',
msg: 'Please fill your details before create trip plan.'
});
}
}
}
}
req.open("POST", 'sub_check_user_submit_details.php', true);
req.send(formData);
}
}
</script>
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
</html>
\ No newline at end of file
<?php
include "db_connect.php";
if(isset($_POST['logUserid'])){
$logUserid = $_POST['logUserid'];
} else {
header("Location: (index.php)");
}
?>
<!DOCTYPE html>
<html lang="zxx">
<!--[endif]-->
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<meta charset="utf-8" />
<title>User-Friendly Railway </title>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta name="MobileOptimized" content="320" />
<!--Template style -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"
/>
<link rel="stylesheet" type="text/css" href="css/xpedia.css" />
<style type="text/css">
#myBtn {
display: none;
position: fixed;
bottom: 20px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtnChat:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnChat {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtn:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
</style>
<script>
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}else {
}
}
</script>
</head>
<body onload="loadFun(); createTripPlan();">
<div id="subform"></div>
<?php include('common_header.php'); ?>
<script>
function createTripPlan(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`collapseOne`).innerHTML = req.responseText;
changeLineName();
deleteSeatDetails(logUserid);
}
}
}
req.open("POST", 'sub_trip_planned_create_trip_plan.php', true);
req.send(formData);
}
}
function changeLineName(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`lineNameSec`).innerHTML = req.responseText;
}
}
}
req.open("POST", 'sub_change_line_name.php', true);
req.send(formData);
}
}
function createSeatDesign(logUserid, train_id, train_start_station, seat_design){
logUserid = logUserid;
train_id = train_id;
train_start_station = train_start_station;
seat_design = seat_design;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('seat_design', seat_design);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`seatPlanAdd`).innerHTML = req.responseText;
$(`#train_${train_id}_${train_start_station}`).modal('show');
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat.php', true);
req.send(formData);
}
}
function selectSeat(logUserid, train_id, train_start_station, row, seat, status) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('row', row);
formData.append('seat', seat);
formData.append('status', status);
if(status == 'no') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_add_to_temp.php', true);
req.send(formData);
}
} else if(status == 'yes') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_remove_from_temp.php', true);
req.send(formData);
}
}
}
function highlightBest(logUserid, train_id, train_start_station) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
var bestButton = document.getElementById(req.responseText);
bestButton.classList.add('animate__animated', 'animate__heartBeat', 'animate__infinite', 'slow');
}
}
}
req.open("POST", 'sub_check_best_seat.php', true);
req.send(formData);
}
}
</script>
<!-- hs Navigation End -->
<!-- btc tittle Wrapper Start -->
<div class="btc_tittle_main_wrapper">
<div class="btc_tittle_img_overlay"></div>
<div class="container">
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_left_heading">
<h1>Custom Trip Plan</h1>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_right_heading">
<div class="btc_tittle_right_cont_wrapper">
<ul>
<li><a href="#">Home</a> <i class="fa fa-angle-right"></i>
</li>
<li>Custom Trip Plan</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- btc tittle Wrapper End -->
<!-- x tittle num Wrapper Start -->
<div class="x_title_num_mian_Wrapper float_left">
<div class="container">
<div class="x_title_inner_num_wrapper float_left">
<div class="x_title_num_heading">
<h3>Create Custom Trip Plan</h3>
<p>Complete Your Step</p>
</div>
<div class="x_title_num_heading_cont">
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>1</p>
</div>
<h5>Fill Details</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num ">
<p>2</p>
</div>
<h5>Select Location</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>3</p>
</div>
<h5>Create plan</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>4</p>
</div>
<h5>customize Plan</h5>
</div>
<div class="x_title_num_main_box_wrapper x_title_num_main_box_wrapper3 x_title_num_main_box_wrapper_last">
<div class="x_icon_num">
<p>5</p>
</div>
<h5>done!</h5>
</div>
</div>
</div>
</div>
</div>
<!-- x tittle num Wrapper End -->
<!-- x car book sidebar section Wrapper Start -->
<div class="x_car_book_sider_main_Wrapper float_left">
<div class="container" >
<div class="row">
<div class="col-xl-3 col-lg-4 col-md-12 col-sm-12 col-12">
<div class="x_car_book_left_siderbar_wrapper float_left">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
<div class="x_slider_form_main_wrapper float_left x_slider_form_main_wrapper_ccb">
<div class="x_slider_form_heading_wrapper x_slider_form_heading_wrapper_carbooking float_left">
<h3>Let’s Create perfect Trip</h3>
</div>
<input type="text" value="<?php echo $logUserid ?>" id="logUserid" hidden>
<div class="row">
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Railway Line</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToLine(this.value);">
<?php
$sql1 = "SELECT * FROM linelist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
while($row1 = mysqli_fetch_array($result1)){
$slected_line_no = $row1['lineNo'];
$sql2 = "SELECT * FROM railway_line WHERE id = $slected_line_no";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
$row2 = mysqli_fetch_assoc($result2)
?>
<option value="<?php echo $row2['id'] ?>"><?php echo $row2['line'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Location Category</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToCat(this.value)">
<?php
$sql3 = "SELECT * FROM catlist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result3 = mysqli_query($con,$sql3) or die(mysqli_error($con));
while($row3 = mysqli_fetch_array($result3)){
$selected_cat_id = $row3['catNo'];
$sql4 = "SELECT * FROM category WHERE id = '$selected_cat_id' ";
$result4 = mysqli_query($con,$sql4) or die(mysqli_error($con));
$row4 = mysqli_fetch_assoc($result4)
?>
<option value="<?php echo $row4['id'] ?>"><?php echo $row4['name'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>Start Date</h3>
<?php
$sql5 = "SELECT * FROM user_details WHERE logUserid = $logUserid";
$result5 = mysqli_query($con,$sql5) or die(mysqli_error($con));
$row5 = mysqli_fetch_assoc($result5);
?>
<label class="cal-icon">
<input type="text" id="startTime" onchange="changeTime();" value="<?php echo $row5['start'] ?>" placeholder="Start Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>End Date</h3>
<label class="cal-icon">
<input type="text" id="endTime" onchange="changeTime();" value="<?php echo $row5['end'] ?>" placeholder="End Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function changeTime() {
let logUserid = document.getElementById(`logUserid`).value;
let startTime = document.getElementById(`startTime`).value;
let endTime = document.getElementById(`endTime`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('startTime', startTime);
formData.append('endTime', endTime);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
if(req.responseText == 1) {
createTripPlan();
}
// createTripPlan();
}
}
}
req.open("POST", 'sub_update_date.php', true);
req.send(formData);
}
}
function setToCat(value) {
let logUserid = document.getElementById(`logUserid`).value;
let catDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('catDropValue', catDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_cat.php', true);
req.send(formData);
}
}
function setToLine(value){
let logUserid = document.getElementById(`logUserid`).value;
let lineDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('lineDropValue', lineDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_line.php', true);
req.send(formData);
}
}
</script>
<div class="col-xl-9 col-lg-8 col-md-12 col-sm-12 col-12">
<div class="x_carbooking_right_section_wrapper float_left">
<div class="row">
<div class="col-md-12">
<div class="x_car_checkout_right_main_box_wrapper float_left">
<div class="car-filter order-billing margin-top-0">
<div class="heading-block text-left margin-bottom-0">
<h4>Trip Details</h4>
</div>
<hr>
<!-- <form class="billing-form">
<ul class="list-unstyled row">
<li class="col-md-6">
<label>First Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Last Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>NIC / Passport
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Passengers
<input type="text" placeholder="" class="form-control">
</label>
</li>
</form> -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div class="accordion" id="accordionExample" style="width: 100%; ">
<div class="card">
<div class="card-header" id="headingOne" style="background-color: #4f5dec;">
<h2 class="mb-0" >
<button style="color: #ffffff;" class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Best Trip Plan - <b> <span id="lineNameSec"> Main Line </span></b>
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="contect_btn contect_btn_contact">
<ul>
<li><a href="#">Confirm Plan <i class="fa fa-arrow-right"></i></a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- x car book sidebar section Wrapper End -->
<!-- Button trigger modal -->
<div id="seatPlanAdd">
</div>
<style>
.btn-link:hover, .btn-link, .btn-link:focus{
text-decoration:none;
}
</style>
<?php include('common_footer.php'); ?>
<div class="container pull-right" id="chatbox">
<div class="row chat-window col-xs-5 col-md-4 pull-right" id="chat_window_1">
<div class="col-xs-12 col-md-12">
<div class="panel panel-default">
<div class="panel-heading top-bar" style="border-radius: 5px 5px 0px 0px;">
<div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-md-8 col-xs-8">
<h5 class="panel-title" style="font-size: 18; font-weight: 600; color: #ffffff; text-transform: uppercase;"><span class="glyphicon glyphicon-comment"></span> Railbot </h3>
</div>
<div class="col-md-4 col-xs-4" style="text-align: right;">
<a style="color: #ffffff; cursor:pointer;" onclick="minimizeChat();"><i id="minim_chat_window" class="fa fa-window-minimize icon_minim"></i></a>
<a style="color: #ffffff; cursor:pointer;" onclick="closeChat();"><i class="fa fa-close icon_close" data-id="chat_window_1"></i></a>
</div>
</div>
</div>
<!-- <div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-sm-5 col-md-5 col-lg-5">xxxxxxx</div>
<div class="col-sm-4 col-md-4 col-lg-4">xxxxxxxx</div>
</div>
</div> -->
</div>
<div id="messagebody" class="panel-body msg_container_base">
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_sent">
<p>Hi</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:22</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_receive">
<p>Hi there, how can I help?</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:28</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_sent">
<p>What are the historical places i can visit in Sri Lanka? </p>
<time datetime="2009-11-13T20:00">User • Today 10:05:38</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>You can see Ruwanweliseya, Thuparamaya, Isurumuniya and many other historical places in Sri Lanka.</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:41</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10 " style="padding:0;">
<div class="messages msg_sent">
<p>Who made sigiriya?</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:45</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>Sigiriya was built by King Kashyapa</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:09:33</time>
</div>
</div>
</div>
</div>
</div>
<div class="panel-footer" id="inputSec">
<div class="input-group">
<input id="btn-input" type="text" class="form-control input-sm chat_input" placeholder="Write your message here..." required="required" />
<span class="input-group-btn">
<button class="btn btn-primary btn-sm" style="margin-top: 5%;" id="btn-chat">Send <i class="fa fa-send-o" style="font-size:15px; padding-left: 5%;"></i></button>
</span>
</div>
</div>
</div>
</div>
</div>
<script>
function minimizeChat() {
if(document.getElementById('messagebody').style.display == 'block' && document.getElementById('inputSec').style.display == 'block') {
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
} else {
document.getElementById('messagebody').style.display = 'block';
document.getElementById('inputSec').style.display = 'block';
}
}
function closeChat() {
$( "#chatbox" ).hide();
}
function showChat() {
$( "#chatbox" ).show();
}
function loadFun(){
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
}
</script>
<style>
.panel{
margin-bottom: 0px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.chat-window{
bottom:0;
right:5%;
position:fixed;
float:right;
}
.chat-window > div > .panel{
border-radius: 5px 5px 0 0;
}
.icon_minim{
padding:2px 10px;
}
.msg_container_base{
background: #e5e5e5;
margin: 0;
padding: 0 10px 10px;
max-height:300px;
overflow-x:hidden;
}
.top-bar {
background: #4f5dec;
color: white;
padding: 10px;
position: relative;
overflow: hidden;
}
.msg_receive{
padding-left:0;
margin-left:0;
}
.msg_sent{
padding-bottom:20px !important;
margin-right:0;
}
.messages {
background: white;
padding: 10px;
border-radius: 2px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
max-width:100%;
}
.messages > p {
font-size: 13px;
margin: 0 0 0.2rem 0;
}
.messages > time {
font-size: 11px;
color: #ccc;
}
.msg_container {
padding: 10px;
overflow: hidden;
display: flex;
}
.chatimg {
display: block;
width: 100%;
}
.avatar {
position: relative;
}
.base_receive > .avatar:after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 0;
height: 0;
border: 5px solid #FFF;
border-left-color: rgba(0, 0, 0, 0);
border-bottom-color: rgba(0, 0, 0, 0);
}
.base_sent {
justify-content: flex-end;
align-items: flex-end;
}
.base_sent > .avatar:after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 0;
border: 5px solid white;
border-right-color: transparent;
border-top-color: transparent;
box-shadow: 1px 1px 2px rgba(black, 0.2); // not quite perfect but close
}
.msg_sent > time{
float: right;
}
.msg_container_base::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar
{
width: 12px;
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar-thumb
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
.btn-group.dropup{
position:fixed;
left:0px;
bottom:0;
}
.panel-footer {
padding: 10px 15px;
background-color: #a5abf3;
border-top: 1px solid #ddd;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
</style>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/modernizr.js"></script>
<script src="js/select2.min.js"></script>
<script src="js/jquery.menu-aim.js"></script>
<script src="js/jquery-ui.js"></script>
<script src="js/jquery.nice-select.min.js"></script>
<script src="js/owl.carousel.js"></script>
<!-- <script src="js/own-menu.js"></script> -->
<script src="js/jquery.bxslider.min.js"></script>
<script src="js/jquery.magnific-popup.js"></script>
<script src="js/xpedia.js"></script>
<!-- custom js-->
<link href="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/css/lobibox.css" rel="stylesheet" />
<!-- <script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/lib/jquery.1.11.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/js/lobibox.min.js"></script>
<script src='https://kit.fontawesome.com/a076d05399.js' crossorigin='anonymous'></script>
</body>
<script>
//Get the button
var mybutton = document.getElementById("myBtn");
var mybuttonchat = document.getElementById("myBtnChat");
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
mybutton.style.display = "block";
mybuttonchat.style.display = "block";
} else {
mybutton.style.display = "none";
mybuttonchat.style.display = "none";
}
}
// When the user clicks on the button, scroll to the top of the document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
function naviFunction() {
window.location.href = "train_planned.html";
}
function naviHome() {
window.location.href = "index.php";
}
function naviFunction() {
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
if(req.responseText == 1) {
var subform = document.getElementById('subform');
var form = document.createElement("form");
form.method = 'POST';
form.action = 'train_planned.php';
var input1 = document.createElement('input');
input1.type = "hidden";
input1.name = "logUserid";
input1.value = logUserid;
form.appendChild(input1);
subform.appendChild(form);
form.submit();
} else {
Lobibox.notify('error', {
size: 'normal',
sound: false,
title: 'Cannot access...',
icon: 'fa fa-times-circle',
msg: 'Please fill your details before create trip plan.'
});
}
}
}
}
req.open("POST", 'sub_check_user_submit_details.php', true);
req.send(formData);
}
}
</script>
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
</html>
\ No newline at end of file
<?php
include "db_connect.php";
if(isset($_POST['logUserid'])){
$logUserid = $_POST['logUserid'];
} else {
header("Location: (index.php)");
}
?>
<!DOCTYPE html>
<html lang="zxx">
<!--[endif]-->
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<meta charset="utf-8" />
<title>User-Friendly Railway </title>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta name="MobileOptimized" content="320" />
<!--Template style -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"
/>
<link rel="stylesheet" type="text/css" href="css/xpedia.css" />
<style type="text/css">
#myBtn {
display: none;
position: fixed;
bottom: 20px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtnChat:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnChat {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtn:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
</style>
<script>
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}else {
}
}
</script>
</head>
<body onload="loadFun(); createTripPlan();">
<div id="subform"></div>
<?php include('common_header.php'); ?>
<script>
function createTripPlan(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`collapseOne`).innerHTML = req.responseText;
changeLineName();
deleteSeatDetails(logUserid);
}
}
}
req.open("POST", 'sub_trip_planned_create_trip_plan.php', true);
req.send(formData);
}
}
function deleteSeatDetails() {
}
function changeLineName(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`lineNameSec`).innerHTML = req.responseText;
}
}
}
req.open("POST", 'sub_change_line_name.php', true);
req.send(formData);
}
}
function createSeatDesign(logUserid, train_id, train_start_station, seat_design){
logUserid = logUserid;
train_id = train_id;
train_start_station = train_start_station;
seat_design = seat_design;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('seat_design', seat_design);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`seatPlanAdd`).innerHTML = req.responseText;
$(`#train_${train_id}_${train_start_station}`).modal('show');
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat.php', true);
req.send(formData);
}
}
function selectSeat(logUserid, train_id, train_start_station, row, seat, status) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('row', row);
formData.append('seat', seat);
formData.append('status', status);
if(status == 'no') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_add_to_temp.php', true);
req.send(formData);
}
} else if(status == 'yes') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_remove_from_temp.php', true);
req.send(formData);
}
}
}
function highlightBest(logUserid, train_id, train_start_station) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
var bestButton = document.getElementById(req.responseText);
bestButton.classList.add('animate__animated', 'animate__heartBeat', 'animate__infinite', 'slow');
}
}
}
req.open("POST", 'sub_check_best_seat.php', true);
req.send(formData);
}
}
</script>
<!-- hs Navigation End -->
<!-- btc tittle Wrapper Start -->
<div class="btc_tittle_main_wrapper">
<div class="btc_tittle_img_overlay"></div>
<div class="container">
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_left_heading">
<h1>Custom Trip Plan</h1>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_right_heading">
<div class="btc_tittle_right_cont_wrapper">
<ul>
<li><a href="#">Home</a> <i class="fa fa-angle-right"></i>
</li>
<li>Custom Trip Plan</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- btc tittle Wrapper End -->
<!-- x tittle num Wrapper Start -->
<div class="x_title_num_mian_Wrapper float_left">
<div class="container">
<div class="x_title_inner_num_wrapper float_left">
<div class="x_title_num_heading">
<h3>Create Custom Trip Plan</h3>
<p>Complete Your Step</p>
</div>
<div class="x_title_num_heading_cont">
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>1</p>
</div>
<h5>Fill Details</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num ">
<p>2</p>
</div>
<h5>Select Location</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>3</p>
</div>
<h5>Create plan</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>4</p>
</div>
<h5>customize Plan</h5>
</div>
<div class="x_title_num_main_box_wrapper x_title_num_main_box_wrapper3 x_title_num_main_box_wrapper_last">
<div class="x_icon_num">
<p>5</p>
</div>
<h5>done!</h5>
</div>
</div>
</div>
</div>
</div>
<!-- x tittle num Wrapper End -->
<!-- x car book sidebar section Wrapper Start -->
<div class="x_car_book_sider_main_Wrapper float_left">
<div class="container" >
<div class="row">
<div class="col-xl-3 col-lg-4 col-md-12 col-sm-12 col-12">
<div class="x_car_book_left_siderbar_wrapper float_left">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
<div class="x_slider_form_main_wrapper float_left x_slider_form_main_wrapper_ccb">
<div class="x_slider_form_heading_wrapper x_slider_form_heading_wrapper_carbooking float_left">
<h3>Let’s Create perfect Trip</h3>
</div>
<input type="text" value="<?php echo $logUserid ?>" id="logUserid" hidden>
<div class="row">
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Railway Line</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToLine(this.value);">
<?php
$sql1 = "SELECT * FROM linelist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
while($row1 = mysqli_fetch_array($result1)){
$slected_line_no = $row1['lineNo'];
$sql2 = "SELECT * FROM railway_line WHERE id = $slected_line_no";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
$row2 = mysqli_fetch_assoc($result2)
?>
<option value="<?php echo $row2['id'] ?>"><?php echo $row2['line'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Location Category</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToCat(this.value)">
<?php
$sql3 = "SELECT * FROM catlist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result3 = mysqli_query($con,$sql3) or die(mysqli_error($con));
while($row3 = mysqli_fetch_array($result3)){
$selected_cat_id = $row3['catNo'];
$sql4 = "SELECT * FROM category WHERE id = '$selected_cat_id' ";
$result4 = mysqli_query($con,$sql4) or die(mysqli_error($con));
$row4 = mysqli_fetch_assoc($result4)
?>
<option value="<?php echo $row4['id'] ?>"><?php echo $row4['name'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>Start Date</h3>
<?php
$sql5 = "SELECT * FROM user_details WHERE logUserid = $logUserid";
$result5 = mysqli_query($con,$sql5) or die(mysqli_error($con));
$row5 = mysqli_fetch_assoc($result5);
?>
<label class="cal-icon">
<input type="text" id="startTime" onchange="changeTime();" value="<?php echo $row5['start'] ?>" placeholder="Start Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>End Date</h3>
<label class="cal-icon">
<input type="text" id="endTime" onchange="changeTime();" value="<?php echo $row5['end'] ?>" placeholder="End Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function changeTime() {
let logUserid = document.getElementById(`logUserid`).value;
let startTime = document.getElementById(`startTime`).value;
let endTime = document.getElementById(`endTime`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('startTime', startTime);
formData.append('endTime', endTime);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
if(req.responseText == 1) {
createTripPlan();
}
// createTripPlan();
}
}
}
req.open("POST", 'sub_update_date.php', true);
req.send(formData);
}
}
function setToCat(value) {
let logUserid = document.getElementById(`logUserid`).value;
let catDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('catDropValue', catDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_cat.php', true);
req.send(formData);
}
}
function setToLine(value){
let logUserid = document.getElementById(`logUserid`).value;
let lineDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('lineDropValue', lineDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_line.php', true);
req.send(formData);
}
}
</script>
<div class="col-xl-9 col-lg-8 col-md-12 col-sm-12 col-12">
<div class="x_carbooking_right_section_wrapper float_left">
<div class="row">
<div class="col-md-12">
<div class="x_car_checkout_right_main_box_wrapper float_left">
<div class="car-filter order-billing margin-top-0">
<div class="heading-block text-left margin-bottom-0">
<h4>Trip Details</h4>
</div>
<hr>
<!-- <form class="billing-form">
<ul class="list-unstyled row">
<li class="col-md-6">
<label>First Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Last Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>NIC / Passport
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Passengers
<input type="text" placeholder="" class="form-control">
</label>
</li>
</form> -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div class="accordion" id="accordionExample" style="width: 100%; ">
<div class="card">
<div class="card-header" id="headingOne" style="background-color: #4f5dec;">
<h2 class="mb-0" >
<button style="color: #ffffff;" class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Best Trip Plan - <b> <span id="lineNameSec"> Main Line </span></b>
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="contect_btn contect_btn_contact">
<ul>
<li><a href="#">Confirm Plan <i class="fa fa-arrow-right"></i></a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- x car book sidebar section Wrapper End -->
<!-- Button trigger modal -->
<div id="seatPlanAdd">
</div>
<style>
.btn-link:hover, .btn-link, .btn-link:focus{
text-decoration:none;
}
</style>
<?php include('common_footer.php'); ?>
<div class="container pull-right" id="chatbox">
<div class="row chat-window col-xs-5 col-md-4 pull-right" id="chat_window_1">
<div class="col-xs-12 col-md-12">
<div class="panel panel-default">
<div class="panel-heading top-bar" style="border-radius: 5px 5px 0px 0px;">
<div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-md-8 col-xs-8">
<h5 class="panel-title" style="font-size: 18; font-weight: 600; color: #ffffff; text-transform: uppercase;"><span class="glyphicon glyphicon-comment"></span> Railbot </h3>
</div>
<div class="col-md-4 col-xs-4" style="text-align: right;">
<a style="color: #ffffff; cursor:pointer;" onclick="minimizeChat();"><i id="minim_chat_window" class="fa fa-window-minimize icon_minim"></i></a>
<a style="color: #ffffff; cursor:pointer;" onclick="closeChat();"><i class="fa fa-close icon_close" data-id="chat_window_1"></i></a>
</div>
</div>
</div>
<!-- <div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-sm-5 col-md-5 col-lg-5">xxxxxxx</div>
<div class="col-sm-4 col-md-4 col-lg-4">xxxxxxxx</div>
</div>
</div> -->
</div>
<div id="messagebody" class="panel-body msg_container_base">
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_sent">
<p>Hi</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:22</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_receive">
<p>Hi there, how can I help?</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:28</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_sent">
<p>What are the historical places i can visit in Sri Lanka? </p>
<time datetime="2009-11-13T20:00">User • Today 10:05:38</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>You can see Ruwanweliseya, Thuparamaya, Isurumuniya and many other historical places in Sri Lanka.</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:41</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10 " style="padding:0;">
<div class="messages msg_sent">
<p>Who made sigiriya?</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:45</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>Sigiriya was built by King Kashyapa</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:09:33</time>
</div>
</div>
</div>
</div>
</div>
<div class="panel-footer" id="inputSec">
<div class="input-group">
<input id="btn-input" type="text" class="form-control input-sm chat_input" placeholder="Write your message here..." required="required" />
<span class="input-group-btn">
<button class="btn btn-primary btn-sm" style="margin-top: 5%;" id="btn-chat">Send <i class="fa fa-send-o" style="font-size:15px; padding-left: 5%;"></i></button>
</span>
</div>
</div>
</div>
</div>
</div>
<script>
function minimizeChat() {
if(document.getElementById('messagebody').style.display == 'block' && document.getElementById('inputSec').style.display == 'block') {
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
} else {
document.getElementById('messagebody').style.display = 'block';
document.getElementById('inputSec').style.display = 'block';
}
}
function closeChat() {
$( "#chatbox" ).hide();
}
function showChat() {
$( "#chatbox" ).show();
}
function loadFun(){
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
}
</script>
<style>
.panel{
margin-bottom: 0px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.chat-window{
bottom:0;
right:5%;
position:fixed;
float:right;
}
.chat-window > div > .panel{
border-radius: 5px 5px 0 0;
}
.icon_minim{
padding:2px 10px;
}
.msg_container_base{
background: #e5e5e5;
margin: 0;
padding: 0 10px 10px;
max-height:300px;
overflow-x:hidden;
}
.top-bar {
background: #4f5dec;
color: white;
padding: 10px;
position: relative;
overflow: hidden;
}
.msg_receive{
padding-left:0;
margin-left:0;
}
.msg_sent{
padding-bottom:20px !important;
margin-right:0;
}
.messages {
background: white;
padding: 10px;
border-radius: 2px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
max-width:100%;
}
.messages > p {
font-size: 13px;
margin: 0 0 0.2rem 0;
}
.messages > time {
font-size: 11px;
color: #ccc;
}
.msg_container {
padding: 10px;
overflow: hidden;
display: flex;
}
.chatimg {
display: block;
width: 100%;
}
.avatar {
position: relative;
}
.base_receive > .avatar:after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 0;
height: 0;
border: 5px solid #FFF;
border-left-color: rgba(0, 0, 0, 0);
border-bottom-color: rgba(0, 0, 0, 0);
}
.base_sent {
justify-content: flex-end;
align-items: flex-end;
}
.base_sent > .avatar:after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 0;
border: 5px solid white;
border-right-color: transparent;
border-top-color: transparent;
box-shadow: 1px 1px 2px rgba(black, 0.2); // not quite perfect but close
}
.msg_sent > time{
float: right;
}
.msg_container_base::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar
{
width: 12px;
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar-thumb
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
.btn-group.dropup{
position:fixed;
left:0px;
bottom:0;
}
.panel-footer {
padding: 10px 15px;
background-color: #a5abf3;
border-top: 1px solid #ddd;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
</style>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/modernizr.js"></script>
<script src="js/select2.min.js"></script>
<script src="js/jquery.menu-aim.js"></script>
<script src="js/jquery-ui.js"></script>
<script src="js/jquery.nice-select.min.js"></script>
<script src="js/owl.carousel.js"></script>
<!-- <script src="js/own-menu.js"></script> -->
<script src="js/jquery.bxslider.min.js"></script>
<script src="js/jquery.magnific-popup.js"></script>
<script src="js/xpedia.js"></script>
<!-- custom js-->
<link href="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/css/lobibox.css" rel="stylesheet" />
<!-- <script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/lib/jquery.1.11.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/js/lobibox.min.js"></script>
<script src='https://kit.fontawesome.com/a076d05399.js' crossorigin='anonymous'></script>
</body>
<script>
//Get the button
var mybutton = document.getElementById("myBtn");
var mybuttonchat = document.getElementById("myBtnChat");
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
mybutton.style.display = "block";
mybuttonchat.style.display = "block";
} else {
mybutton.style.display = "none";
mybuttonchat.style.display = "none";
}
}
// When the user clicks on the button, scroll to the top of the document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
function naviFunction() {
window.location.href = "train_planned.html";
}
function naviHome() {
window.location.href = "index.php";
}
function naviFunction() {
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
if(req.responseText == 1) {
var subform = document.getElementById('subform');
var form = document.createElement("form");
form.method = 'POST';
form.action = 'train_planned.php';
var input1 = document.createElement('input');
input1.type = "hidden";
input1.name = "logUserid";
input1.value = logUserid;
form.appendChild(input1);
subform.appendChild(form);
form.submit();
} else {
Lobibox.notify('error', {
size: 'normal',
sound: false,
title: 'Cannot access...',
icon: 'fa fa-times-circle',
msg: 'Please fill your details before create trip plan.'
});
}
}
}
}
req.open("POST", 'sub_check_user_submit_details.php', true);
req.send(formData);
}
}
</script>
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
</html>
\ No newline at end of file
<?php
include "db_connect.php";
if(isset($_POST['logUserid'])){
$logUserid = $_POST['logUserid'];
} else {
header("Location: (index.php)");
}
?>
<!DOCTYPE html>
<html lang="zxx">
<!--[endif]-->
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<meta charset="utf-8" />
<title>User-Friendly Railway </title>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta name="MobileOptimized" content="320" />
<!--Template style -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"
/>
<link rel="stylesheet" type="text/css" href="css/xpedia.css" />
<style type="text/css">
#myBtn {
display: none;
position: fixed;
bottom: 20px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtnChat:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnChat {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtn:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
</style>
<script>
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}else {
}
}
</script>
</head>
<body onload="loadFun(); createTripPlan();">
<div id="subform"></div>
<?php include('common_header.php'); ?>
<script>
function createTripPlan(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`collapseOne`).innerHTML = req.responseText;
changeLineName();
deleteSeatDetails(logUserid);
}
}
}
req.open("POST", 'sub_trip_planned_create_trip_plan.php', true);
req.send(formData);
}
}
function deleteSeatDetails(logUserid) {
}
function changeLineName(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`lineNameSec`).innerHTML = req.responseText;
}
}
}
req.open("POST", 'sub_change_line_name.php', true);
req.send(formData);
}
}
function createSeatDesign(logUserid, train_id, train_start_station, seat_design){
logUserid = logUserid;
train_id = train_id;
train_start_station = train_start_station;
seat_design = seat_design;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('seat_design', seat_design);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`seatPlanAdd`).innerHTML = req.responseText;
$(`#train_${train_id}_${train_start_station}`).modal('show');
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat.php', true);
req.send(formData);
}
}
function selectSeat(logUserid, train_id, train_start_station, row, seat, status) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('row', row);
formData.append('seat', seat);
formData.append('status', status);
if(status == 'no') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_add_to_temp.php', true);
req.send(formData);
}
} else if(status == 'yes') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_remove_from_temp.php', true);
req.send(formData);
}
}
}
function highlightBest(logUserid, train_id, train_start_station) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
var bestButton = document.getElementById(req.responseText);
bestButton.classList.add('animate__animated', 'animate__heartBeat', 'animate__infinite', 'slow');
}
}
}
req.open("POST", 'sub_check_best_seat.php', true);
req.send(formData);
}
}
</script>
<!-- hs Navigation End -->
<!-- btc tittle Wrapper Start -->
<div class="btc_tittle_main_wrapper">
<div class="btc_tittle_img_overlay"></div>
<div class="container">
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_left_heading">
<h1>Custom Trip Plan</h1>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_right_heading">
<div class="btc_tittle_right_cont_wrapper">
<ul>
<li><a href="#">Home</a> <i class="fa fa-angle-right"></i>
</li>
<li>Custom Trip Plan</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- btc tittle Wrapper End -->
<!-- x tittle num Wrapper Start -->
<div class="x_title_num_mian_Wrapper float_left">
<div class="container">
<div class="x_title_inner_num_wrapper float_left">
<div class="x_title_num_heading">
<h3>Create Custom Trip Plan</h3>
<p>Complete Your Step</p>
</div>
<div class="x_title_num_heading_cont">
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>1</p>
</div>
<h5>Fill Details</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num ">
<p>2</p>
</div>
<h5>Select Location</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>3</p>
</div>
<h5>Create plan</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>4</p>
</div>
<h5>customize Plan</h5>
</div>
<div class="x_title_num_main_box_wrapper x_title_num_main_box_wrapper3 x_title_num_main_box_wrapper_last">
<div class="x_icon_num">
<p>5</p>
</div>
<h5>done!</h5>
</div>
</div>
</div>
</div>
</div>
<!-- x tittle num Wrapper End -->
<!-- x car book sidebar section Wrapper Start -->
<div class="x_car_book_sider_main_Wrapper float_left">
<div class="container" >
<div class="row">
<div class="col-xl-3 col-lg-4 col-md-12 col-sm-12 col-12">
<div class="x_car_book_left_siderbar_wrapper float_left">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
<div class="x_slider_form_main_wrapper float_left x_slider_form_main_wrapper_ccb">
<div class="x_slider_form_heading_wrapper x_slider_form_heading_wrapper_carbooking float_left">
<h3>Let’s Create perfect Trip</h3>
</div>
<input type="text" value="<?php echo $logUserid ?>" id="logUserid" hidden>
<div class="row">
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Railway Line</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToLine(this.value);">
<?php
$sql1 = "SELECT * FROM linelist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
while($row1 = mysqli_fetch_array($result1)){
$slected_line_no = $row1['lineNo'];
$sql2 = "SELECT * FROM railway_line WHERE id = $slected_line_no";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
$row2 = mysqli_fetch_assoc($result2)
?>
<option value="<?php echo $row2['id'] ?>"><?php echo $row2['line'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Location Category</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToCat(this.value)">
<?php
$sql3 = "SELECT * FROM catlist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result3 = mysqli_query($con,$sql3) or die(mysqli_error($con));
while($row3 = mysqli_fetch_array($result3)){
$selected_cat_id = $row3['catNo'];
$sql4 = "SELECT * FROM category WHERE id = '$selected_cat_id' ";
$result4 = mysqli_query($con,$sql4) or die(mysqli_error($con));
$row4 = mysqli_fetch_assoc($result4)
?>
<option value="<?php echo $row4['id'] ?>"><?php echo $row4['name'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>Start Date</h3>
<?php
$sql5 = "SELECT * FROM user_details WHERE logUserid = $logUserid";
$result5 = mysqli_query($con,$sql5) or die(mysqli_error($con));
$row5 = mysqli_fetch_assoc($result5);
?>
<label class="cal-icon">
<input type="text" id="startTime" onchange="changeTime();" value="<?php echo $row5['start'] ?>" placeholder="Start Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>End Date</h3>
<label class="cal-icon">
<input type="text" id="endTime" onchange="changeTime();" value="<?php echo $row5['end'] ?>" placeholder="End Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function changeTime() {
let logUserid = document.getElementById(`logUserid`).value;
let startTime = document.getElementById(`startTime`).value;
let endTime = document.getElementById(`endTime`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('startTime', startTime);
formData.append('endTime', endTime);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
if(req.responseText == 1) {
createTripPlan();
}
// createTripPlan();
}
}
}
req.open("POST", 'sub_update_date.php', true);
req.send(formData);
}
}
function setToCat(value) {
let logUserid = document.getElementById(`logUserid`).value;
let catDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('catDropValue', catDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_cat.php', true);
req.send(formData);
}
}
function setToLine(value){
let logUserid = document.getElementById(`logUserid`).value;
let lineDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('lineDropValue', lineDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_line.php', true);
req.send(formData);
}
}
</script>
<div class="col-xl-9 col-lg-8 col-md-12 col-sm-12 col-12">
<div class="x_carbooking_right_section_wrapper float_left">
<div class="row">
<div class="col-md-12">
<div class="x_car_checkout_right_main_box_wrapper float_left">
<div class="car-filter order-billing margin-top-0">
<div class="heading-block text-left margin-bottom-0">
<h4>Trip Details</h4>
</div>
<hr>
<!-- <form class="billing-form">
<ul class="list-unstyled row">
<li class="col-md-6">
<label>First Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Last Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>NIC / Passport
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Passengers
<input type="text" placeholder="" class="form-control">
</label>
</li>
</form> -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div class="accordion" id="accordionExample" style="width: 100%; ">
<div class="card">
<div class="card-header" id="headingOne" style="background-color: #4f5dec;">
<h2 class="mb-0" >
<button style="color: #ffffff;" class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Best Trip Plan - <b> <span id="lineNameSec"> Main Line </span></b>
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="contect_btn contect_btn_contact">
<ul>
<li><a href="#">Confirm Plan <i class="fa fa-arrow-right"></i></a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- x car book sidebar section Wrapper End -->
<!-- Button trigger modal -->
<div id="seatPlanAdd">
</div>
<style>
.btn-link:hover, .btn-link, .btn-link:focus{
text-decoration:none;
}
</style>
<?php include('common_footer.php'); ?>
<div class="container pull-right" id="chatbox">
<div class="row chat-window col-xs-5 col-md-4 pull-right" id="chat_window_1">
<div class="col-xs-12 col-md-12">
<div class="panel panel-default">
<div class="panel-heading top-bar" style="border-radius: 5px 5px 0px 0px;">
<div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-md-8 col-xs-8">
<h5 class="panel-title" style="font-size: 18; font-weight: 600; color: #ffffff; text-transform: uppercase;"><span class="glyphicon glyphicon-comment"></span> Railbot </h3>
</div>
<div class="col-md-4 col-xs-4" style="text-align: right;">
<a style="color: #ffffff; cursor:pointer;" onclick="minimizeChat();"><i id="minim_chat_window" class="fa fa-window-minimize icon_minim"></i></a>
<a style="color: #ffffff; cursor:pointer;" onclick="closeChat();"><i class="fa fa-close icon_close" data-id="chat_window_1"></i></a>
</div>
</div>
</div>
<!-- <div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-sm-5 col-md-5 col-lg-5">xxxxxxx</div>
<div class="col-sm-4 col-md-4 col-lg-4">xxxxxxxx</div>
</div>
</div> -->
</div>
<div id="messagebody" class="panel-body msg_container_base">
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_sent">
<p>Hi</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:22</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_receive">
<p>Hi there, how can I help?</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:28</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_sent">
<p>What are the historical places i can visit in Sri Lanka? </p>
<time datetime="2009-11-13T20:00">User • Today 10:05:38</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>You can see Ruwanweliseya, Thuparamaya, Isurumuniya and many other historical places in Sri Lanka.</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:41</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10 " style="padding:0;">
<div class="messages msg_sent">
<p>Who made sigiriya?</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:45</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>Sigiriya was built by King Kashyapa</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:09:33</time>
</div>
</div>
</div>
</div>
</div>
<div class="panel-footer" id="inputSec">
<div class="input-group">
<input id="btn-input" type="text" class="form-control input-sm chat_input" placeholder="Write your message here..." required="required" />
<span class="input-group-btn">
<button class="btn btn-primary btn-sm" style="margin-top: 5%;" id="btn-chat">Send <i class="fa fa-send-o" style="font-size:15px; padding-left: 5%;"></i></button>
</span>
</div>
</div>
</div>
</div>
</div>
<script>
function minimizeChat() {
if(document.getElementById('messagebody').style.display == 'block' && document.getElementById('inputSec').style.display == 'block') {
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
} else {
document.getElementById('messagebody').style.display = 'block';
document.getElementById('inputSec').style.display = 'block';
}
}
function closeChat() {
$( "#chatbox" ).hide();
}
function showChat() {
$( "#chatbox" ).show();
}
function loadFun(){
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
}
</script>
<style>
.panel{
margin-bottom: 0px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.chat-window{
bottom:0;
right:5%;
position:fixed;
float:right;
}
.chat-window > div > .panel{
border-radius: 5px 5px 0 0;
}
.icon_minim{
padding:2px 10px;
}
.msg_container_base{
background: #e5e5e5;
margin: 0;
padding: 0 10px 10px;
max-height:300px;
overflow-x:hidden;
}
.top-bar {
background: #4f5dec;
color: white;
padding: 10px;
position: relative;
overflow: hidden;
}
.msg_receive{
padding-left:0;
margin-left:0;
}
.msg_sent{
padding-bottom:20px !important;
margin-right:0;
}
.messages {
background: white;
padding: 10px;
border-radius: 2px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
max-width:100%;
}
.messages > p {
font-size: 13px;
margin: 0 0 0.2rem 0;
}
.messages > time {
font-size: 11px;
color: #ccc;
}
.msg_container {
padding: 10px;
overflow: hidden;
display: flex;
}
.chatimg {
display: block;
width: 100%;
}
.avatar {
position: relative;
}
.base_receive > .avatar:after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 0;
height: 0;
border: 5px solid #FFF;
border-left-color: rgba(0, 0, 0, 0);
border-bottom-color: rgba(0, 0, 0, 0);
}
.base_sent {
justify-content: flex-end;
align-items: flex-end;
}
.base_sent > .avatar:after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 0;
border: 5px solid white;
border-right-color: transparent;
border-top-color: transparent;
box-shadow: 1px 1px 2px rgba(black, 0.2); // not quite perfect but close
}
.msg_sent > time{
float: right;
}
.msg_container_base::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar
{
width: 12px;
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar-thumb
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
.btn-group.dropup{
position:fixed;
left:0px;
bottom:0;
}
.panel-footer {
padding: 10px 15px;
background-color: #a5abf3;
border-top: 1px solid #ddd;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
</style>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/modernizr.js"></script>
<script src="js/select2.min.js"></script>
<script src="js/jquery.menu-aim.js"></script>
<script src="js/jquery-ui.js"></script>
<script src="js/jquery.nice-select.min.js"></script>
<script src="js/owl.carousel.js"></script>
<!-- <script src="js/own-menu.js"></script> -->
<script src="js/jquery.bxslider.min.js"></script>
<script src="js/jquery.magnific-popup.js"></script>
<script src="js/xpedia.js"></script>
<!-- custom js-->
<link href="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/css/lobibox.css" rel="stylesheet" />
<!-- <script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/lib/jquery.1.11.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/js/lobibox.min.js"></script>
<script src='https://kit.fontawesome.com/a076d05399.js' crossorigin='anonymous'></script>
</body>
<script>
//Get the button
var mybutton = document.getElementById("myBtn");
var mybuttonchat = document.getElementById("myBtnChat");
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
mybutton.style.display = "block";
mybuttonchat.style.display = "block";
} else {
mybutton.style.display = "none";
mybuttonchat.style.display = "none";
}
}
// When the user clicks on the button, scroll to the top of the document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
function naviFunction() {
window.location.href = "train_planned.html";
}
function naviHome() {
window.location.href = "index.php";
}
function naviFunction() {
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
if(req.responseText == 1) {
var subform = document.getElementById('subform');
var form = document.createElement("form");
form.method = 'POST';
form.action = 'train_planned.php';
var input1 = document.createElement('input');
input1.type = "hidden";
input1.name = "logUserid";
input1.value = logUserid;
form.appendChild(input1);
subform.appendChild(form);
form.submit();
} else {
Lobibox.notify('error', {
size: 'normal',
sound: false,
title: 'Cannot access...',
icon: 'fa fa-times-circle',
msg: 'Please fill your details before create trip plan.'
});
}
}
}
}
req.open("POST", 'sub_check_user_submit_details.php', true);
req.send(formData);
}
}
</script>
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
</html>
\ No newline at end of file
<?php
include "db_connect.php";
if(isset($_POST['logUserid'])){
$logUserid = $_POST['logUserid'];
} else {
header("Location: (index.php)");
}
?>
<!DOCTYPE html>
<html lang="zxx">
<!--[endif]-->
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<meta charset="utf-8" />
<title>User-Friendly Railway </title>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta name="MobileOptimized" content="320" />
<!--Template style -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"
/>
<link rel="stylesheet" type="text/css" href="css/xpedia.css" />
<style type="text/css">
#myBtn {
display: none;
position: fixed;
bottom: 20px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtnChat:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnChat {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtn:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
</style>
<script>
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}else {
}
}
</script>
</head>
<body onload="loadFun(); createTripPlan();">
<div id="subform"></div>
<?php include('common_header.php'); ?>
<script>
function createTripPlan(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`collapseOne`).innerHTML = req.responseText;
changeLineName();
deleteSeatDetails(logUserid);
}
}
}
req.open("POST", 'sub_trip_planned_create_trip_plan.php', true);
req.send(formData);
}
}
function deleteSeatDetails(logUserid) {
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`lineNameSec`).innerHTML = req.responseText;
}
}
}
req.open("POST", 'sub_change_line_name.php', true);
req.send(formData);
}
}
function changeLineName(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`lineNameSec`).innerHTML = req.responseText;
}
}
}
req.open("POST", 'sub_change_line_name.php', true);
req.send(formData);
}
}
function createSeatDesign(logUserid, train_id, train_start_station, seat_design){
logUserid = logUserid;
train_id = train_id;
train_start_station = train_start_station;
seat_design = seat_design;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('seat_design', seat_design);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`seatPlanAdd`).innerHTML = req.responseText;
$(`#train_${train_id}_${train_start_station}`).modal('show');
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat.php', true);
req.send(formData);
}
}
function selectSeat(logUserid, train_id, train_start_station, row, seat, status) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('row', row);
formData.append('seat', seat);
formData.append('status', status);
if(status == 'no') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_add_to_temp.php', true);
req.send(formData);
}
} else if(status == 'yes') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_remove_from_temp.php', true);
req.send(formData);
}
}
}
function highlightBest(logUserid, train_id, train_start_station) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
var bestButton = document.getElementById(req.responseText);
bestButton.classList.add('animate__animated', 'animate__heartBeat', 'animate__infinite', 'slow');
}
}
}
req.open("POST", 'sub_check_best_seat.php', true);
req.send(formData);
}
}
</script>
<!-- hs Navigation End -->
<!-- btc tittle Wrapper Start -->
<div class="btc_tittle_main_wrapper">
<div class="btc_tittle_img_overlay"></div>
<div class="container">
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_left_heading">
<h1>Custom Trip Plan</h1>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_right_heading">
<div class="btc_tittle_right_cont_wrapper">
<ul>
<li><a href="#">Home</a> <i class="fa fa-angle-right"></i>
</li>
<li>Custom Trip Plan</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- btc tittle Wrapper End -->
<!-- x tittle num Wrapper Start -->
<div class="x_title_num_mian_Wrapper float_left">
<div class="container">
<div class="x_title_inner_num_wrapper float_left">
<div class="x_title_num_heading">
<h3>Create Custom Trip Plan</h3>
<p>Complete Your Step</p>
</div>
<div class="x_title_num_heading_cont">
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>1</p>
</div>
<h5>Fill Details</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num ">
<p>2</p>
</div>
<h5>Select Location</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>3</p>
</div>
<h5>Create plan</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>4</p>
</div>
<h5>customize Plan</h5>
</div>
<div class="x_title_num_main_box_wrapper x_title_num_main_box_wrapper3 x_title_num_main_box_wrapper_last">
<div class="x_icon_num">
<p>5</p>
</div>
<h5>done!</h5>
</div>
</div>
</div>
</div>
</div>
<!-- x tittle num Wrapper End -->
<!-- x car book sidebar section Wrapper Start -->
<div class="x_car_book_sider_main_Wrapper float_left">
<div class="container" >
<div class="row">
<div class="col-xl-3 col-lg-4 col-md-12 col-sm-12 col-12">
<div class="x_car_book_left_siderbar_wrapper float_left">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
<div class="x_slider_form_main_wrapper float_left x_slider_form_main_wrapper_ccb">
<div class="x_slider_form_heading_wrapper x_slider_form_heading_wrapper_carbooking float_left">
<h3>Let’s Create perfect Trip</h3>
</div>
<input type="text" value="<?php echo $logUserid ?>" id="logUserid" hidden>
<div class="row">
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Railway Line</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToLine(this.value);">
<?php
$sql1 = "SELECT * FROM linelist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
while($row1 = mysqli_fetch_array($result1)){
$slected_line_no = $row1['lineNo'];
$sql2 = "SELECT * FROM railway_line WHERE id = $slected_line_no";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
$row2 = mysqli_fetch_assoc($result2)
?>
<option value="<?php echo $row2['id'] ?>"><?php echo $row2['line'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Location Category</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToCat(this.value)">
<?php
$sql3 = "SELECT * FROM catlist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result3 = mysqli_query($con,$sql3) or die(mysqli_error($con));
while($row3 = mysqli_fetch_array($result3)){
$selected_cat_id = $row3['catNo'];
$sql4 = "SELECT * FROM category WHERE id = '$selected_cat_id' ";
$result4 = mysqli_query($con,$sql4) or die(mysqli_error($con));
$row4 = mysqli_fetch_assoc($result4)
?>
<option value="<?php echo $row4['id'] ?>"><?php echo $row4['name'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>Start Date</h3>
<?php
$sql5 = "SELECT * FROM user_details WHERE logUserid = $logUserid";
$result5 = mysqli_query($con,$sql5) or die(mysqli_error($con));
$row5 = mysqli_fetch_assoc($result5);
?>
<label class="cal-icon">
<input type="text" id="startTime" onchange="changeTime();" value="<?php echo $row5['start'] ?>" placeholder="Start Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>End Date</h3>
<label class="cal-icon">
<input type="text" id="endTime" onchange="changeTime();" value="<?php echo $row5['end'] ?>" placeholder="End Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function changeTime() {
let logUserid = document.getElementById(`logUserid`).value;
let startTime = document.getElementById(`startTime`).value;
let endTime = document.getElementById(`endTime`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('startTime', startTime);
formData.append('endTime', endTime);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
if(req.responseText == 1) {
createTripPlan();
}
// createTripPlan();
}
}
}
req.open("POST", 'sub_update_date.php', true);
req.send(formData);
}
}
function setToCat(value) {
let logUserid = document.getElementById(`logUserid`).value;
let catDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('catDropValue', catDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_cat.php', true);
req.send(formData);
}
}
function setToLine(value){
let logUserid = document.getElementById(`logUserid`).value;
let lineDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('lineDropValue', lineDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_line.php', true);
req.send(formData);
}
}
</script>
<div class="col-xl-9 col-lg-8 col-md-12 col-sm-12 col-12">
<div class="x_carbooking_right_section_wrapper float_left">
<div class="row">
<div class="col-md-12">
<div class="x_car_checkout_right_main_box_wrapper float_left">
<div class="car-filter order-billing margin-top-0">
<div class="heading-block text-left margin-bottom-0">
<h4>Trip Details</h4>
</div>
<hr>
<!-- <form class="billing-form">
<ul class="list-unstyled row">
<li class="col-md-6">
<label>First Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Last Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>NIC / Passport
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Passengers
<input type="text" placeholder="" class="form-control">
</label>
</li>
</form> -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div class="accordion" id="accordionExample" style="width: 100%; ">
<div class="card">
<div class="card-header" id="headingOne" style="background-color: #4f5dec;">
<h2 class="mb-0" >
<button style="color: #ffffff;" class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Best Trip Plan - <b> <span id="lineNameSec"> Main Line </span></b>
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="contect_btn contect_btn_contact">
<ul>
<li><a href="#">Confirm Plan <i class="fa fa-arrow-right"></i></a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- x car book sidebar section Wrapper End -->
<!-- Button trigger modal -->
<div id="seatPlanAdd">
</div>
<style>
.btn-link:hover, .btn-link, .btn-link:focus{
text-decoration:none;
}
</style>
<?php include('common_footer.php'); ?>
<div class="container pull-right" id="chatbox">
<div class="row chat-window col-xs-5 col-md-4 pull-right" id="chat_window_1">
<div class="col-xs-12 col-md-12">
<div class="panel panel-default">
<div class="panel-heading top-bar" style="border-radius: 5px 5px 0px 0px;">
<div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-md-8 col-xs-8">
<h5 class="panel-title" style="font-size: 18; font-weight: 600; color: #ffffff; text-transform: uppercase;"><span class="glyphicon glyphicon-comment"></span> Railbot </h3>
</div>
<div class="col-md-4 col-xs-4" style="text-align: right;">
<a style="color: #ffffff; cursor:pointer;" onclick="minimizeChat();"><i id="minim_chat_window" class="fa fa-window-minimize icon_minim"></i></a>
<a style="color: #ffffff; cursor:pointer;" onclick="closeChat();"><i class="fa fa-close icon_close" data-id="chat_window_1"></i></a>
</div>
</div>
</div>
<!-- <div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-sm-5 col-md-5 col-lg-5">xxxxxxx</div>
<div class="col-sm-4 col-md-4 col-lg-4">xxxxxxxx</div>
</div>
</div> -->
</div>
<div id="messagebody" class="panel-body msg_container_base">
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_sent">
<p>Hi</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:22</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_receive">
<p>Hi there, how can I help?</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:28</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_sent">
<p>What are the historical places i can visit in Sri Lanka? </p>
<time datetime="2009-11-13T20:00">User • Today 10:05:38</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>You can see Ruwanweliseya, Thuparamaya, Isurumuniya and many other historical places in Sri Lanka.</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:41</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10 " style="padding:0;">
<div class="messages msg_sent">
<p>Who made sigiriya?</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:45</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>Sigiriya was built by King Kashyapa</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:09:33</time>
</div>
</div>
</div>
</div>
</div>
<div class="panel-footer" id="inputSec">
<div class="input-group">
<input id="btn-input" type="text" class="form-control input-sm chat_input" placeholder="Write your message here..." required="required" />
<span class="input-group-btn">
<button class="btn btn-primary btn-sm" style="margin-top: 5%;" id="btn-chat">Send <i class="fa fa-send-o" style="font-size:15px; padding-left: 5%;"></i></button>
</span>
</div>
</div>
</div>
</div>
</div>
<script>
function minimizeChat() {
if(document.getElementById('messagebody').style.display == 'block' && document.getElementById('inputSec').style.display == 'block') {
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
} else {
document.getElementById('messagebody').style.display = 'block';
document.getElementById('inputSec').style.display = 'block';
}
}
function closeChat() {
$( "#chatbox" ).hide();
}
function showChat() {
$( "#chatbox" ).show();
}
function loadFun(){
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
}
</script>
<style>
.panel{
margin-bottom: 0px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.chat-window{
bottom:0;
right:5%;
position:fixed;
float:right;
}
.chat-window > div > .panel{
border-radius: 5px 5px 0 0;
}
.icon_minim{
padding:2px 10px;
}
.msg_container_base{
background: #e5e5e5;
margin: 0;
padding: 0 10px 10px;
max-height:300px;
overflow-x:hidden;
}
.top-bar {
background: #4f5dec;
color: white;
padding: 10px;
position: relative;
overflow: hidden;
}
.msg_receive{
padding-left:0;
margin-left:0;
}
.msg_sent{
padding-bottom:20px !important;
margin-right:0;
}
.messages {
background: white;
padding: 10px;
border-radius: 2px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
max-width:100%;
}
.messages > p {
font-size: 13px;
margin: 0 0 0.2rem 0;
}
.messages > time {
font-size: 11px;
color: #ccc;
}
.msg_container {
padding: 10px;
overflow: hidden;
display: flex;
}
.chatimg {
display: block;
width: 100%;
}
.avatar {
position: relative;
}
.base_receive > .avatar:after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 0;
height: 0;
border: 5px solid #FFF;
border-left-color: rgba(0, 0, 0, 0);
border-bottom-color: rgba(0, 0, 0, 0);
}
.base_sent {
justify-content: flex-end;
align-items: flex-end;
}
.base_sent > .avatar:after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 0;
border: 5px solid white;
border-right-color: transparent;
border-top-color: transparent;
box-shadow: 1px 1px 2px rgba(black, 0.2); // not quite perfect but close
}
.msg_sent > time{
float: right;
}
.msg_container_base::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar
{
width: 12px;
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar-thumb
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
.btn-group.dropup{
position:fixed;
left:0px;
bottom:0;
}
.panel-footer {
padding: 10px 15px;
background-color: #a5abf3;
border-top: 1px solid #ddd;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
</style>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/modernizr.js"></script>
<script src="js/select2.min.js"></script>
<script src="js/jquery.menu-aim.js"></script>
<script src="js/jquery-ui.js"></script>
<script src="js/jquery.nice-select.min.js"></script>
<script src="js/owl.carousel.js"></script>
<!-- <script src="js/own-menu.js"></script> -->
<script src="js/jquery.bxslider.min.js"></script>
<script src="js/jquery.magnific-popup.js"></script>
<script src="js/xpedia.js"></script>
<!-- custom js-->
<link href="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/css/lobibox.css" rel="stylesheet" />
<!-- <script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/lib/jquery.1.11.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/js/lobibox.min.js"></script>
<script src='https://kit.fontawesome.com/a076d05399.js' crossorigin='anonymous'></script>
</body>
<script>
//Get the button
var mybutton = document.getElementById("myBtn");
var mybuttonchat = document.getElementById("myBtnChat");
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
mybutton.style.display = "block";
mybuttonchat.style.display = "block";
} else {
mybutton.style.display = "none";
mybuttonchat.style.display = "none";
}
}
// When the user clicks on the button, scroll to the top of the document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
function naviFunction() {
window.location.href = "train_planned.html";
}
function naviHome() {
window.location.href = "index.php";
}
function naviFunction() {
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
if(req.responseText == 1) {
var subform = document.getElementById('subform');
var form = document.createElement("form");
form.method = 'POST';
form.action = 'train_planned.php';
var input1 = document.createElement('input');
input1.type = "hidden";
input1.name = "logUserid";
input1.value = logUserid;
form.appendChild(input1);
subform.appendChild(form);
form.submit();
} else {
Lobibox.notify('error', {
size: 'normal',
sound: false,
title: 'Cannot access...',
icon: 'fa fa-times-circle',
msg: 'Please fill your details before create trip plan.'
});
}
}
}
}
req.open("POST", 'sub_check_user_submit_details.php', true);
req.send(formData);
}
}
</script>
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
</html>
\ No newline at end of file
<?php
include "db_connect.php";
if(isset($_POST['logUserid'])){
$logUserid = $_POST['logUserid'];
} else {
header("Location: (index.php)");
}
?>
<!DOCTYPE html>
<html lang="zxx">
<!--[endif]-->
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<meta charset="utf-8" />
<title>User-Friendly Railway </title>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta name="MobileOptimized" content="320" />
<!--Template style -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"
/>
<link rel="stylesheet" type="text/css" href="css/xpedia.css" />
<style type="text/css">
#myBtn {
display: none;
position: fixed;
bottom: 20px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtnChat:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnChat {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtn:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
</style>
<script>
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}else {
}
}
</script>
</head>
<body onload="loadFun(); createTripPlan();">
<div id="subform"></div>
<?php include('common_header.php'); ?>
<script>
function createTripPlan(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`collapseOne`).innerHTML = req.responseText;
changeLineName();
deleteSeatDetails(logUserid);
}
}
}
req.open("POST", 'sub_trip_planned_create_trip_plan.php', true);
req.send(formData);
}
}
function deleteSeatDetails(logUserid) {
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`lineNameSec`).innerHTML = req.responseText;
}
}
}
req.open("POST", 'sub_delete_all_seat_details.php', true);
req.send(formData);
}
}
function changeLineName(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`lineNameSec`).innerHTML = req.responseText;
}
}
}
req.open("POST", 'sub_change_line_name.php', true);
req.send(formData);
}
}
function createSeatDesign(logUserid, train_id, train_start_station, seat_design){
logUserid = logUserid;
train_id = train_id;
train_start_station = train_start_station;
seat_design = seat_design;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('seat_design', seat_design);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`seatPlanAdd`).innerHTML = req.responseText;
$(`#train_${train_id}_${train_start_station}`).modal('show');
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat.php', true);
req.send(formData);
}
}
function selectSeat(logUserid, train_id, train_start_station, row, seat, status) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('row', row);
formData.append('seat', seat);
formData.append('status', status);
if(status == 'no') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_add_to_temp.php', true);
req.send(formData);
}
} else if(status == 'yes') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_remove_from_temp.php', true);
req.send(formData);
}
}
}
function highlightBest(logUserid, train_id, train_start_station) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
var bestButton = document.getElementById(req.responseText);
bestButton.classList.add('animate__animated', 'animate__heartBeat', 'animate__infinite', 'slow');
}
}
}
req.open("POST", 'sub_check_best_seat.php', true);
req.send(formData);
}
}
</script>
<!-- hs Navigation End -->
<!-- btc tittle Wrapper Start -->
<div class="btc_tittle_main_wrapper">
<div class="btc_tittle_img_overlay"></div>
<div class="container">
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_left_heading">
<h1>Custom Trip Plan</h1>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_right_heading">
<div class="btc_tittle_right_cont_wrapper">
<ul>
<li><a href="#">Home</a> <i class="fa fa-angle-right"></i>
</li>
<li>Custom Trip Plan</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- btc tittle Wrapper End -->
<!-- x tittle num Wrapper Start -->
<div class="x_title_num_mian_Wrapper float_left">
<div class="container">
<div class="x_title_inner_num_wrapper float_left">
<div class="x_title_num_heading">
<h3>Create Custom Trip Plan</h3>
<p>Complete Your Step</p>
</div>
<div class="x_title_num_heading_cont">
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>1</p>
</div>
<h5>Fill Details</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num ">
<p>2</p>
</div>
<h5>Select Location</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>3</p>
</div>
<h5>Create plan</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>4</p>
</div>
<h5>customize Plan</h5>
</div>
<div class="x_title_num_main_box_wrapper x_title_num_main_box_wrapper3 x_title_num_main_box_wrapper_last">
<div class="x_icon_num">
<p>5</p>
</div>
<h5>done!</h5>
</div>
</div>
</div>
</div>
</div>
<!-- x tittle num Wrapper End -->
<!-- x car book sidebar section Wrapper Start -->
<div class="x_car_book_sider_main_Wrapper float_left">
<div class="container" >
<div class="row">
<div class="col-xl-3 col-lg-4 col-md-12 col-sm-12 col-12">
<div class="x_car_book_left_siderbar_wrapper float_left">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
<div class="x_slider_form_main_wrapper float_left x_slider_form_main_wrapper_ccb">
<div class="x_slider_form_heading_wrapper x_slider_form_heading_wrapper_carbooking float_left">
<h3>Let’s Create perfect Trip</h3>
</div>
<input type="text" value="<?php echo $logUserid ?>" id="logUserid" hidden>
<div class="row">
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Railway Line</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToLine(this.value);">
<?php
$sql1 = "SELECT * FROM linelist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
while($row1 = mysqli_fetch_array($result1)){
$slected_line_no = $row1['lineNo'];
$sql2 = "SELECT * FROM railway_line WHERE id = $slected_line_no";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
$row2 = mysqli_fetch_assoc($result2)
?>
<option value="<?php echo $row2['id'] ?>"><?php echo $row2['line'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Location Category</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToCat(this.value)">
<?php
$sql3 = "SELECT * FROM catlist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result3 = mysqli_query($con,$sql3) or die(mysqli_error($con));
while($row3 = mysqli_fetch_array($result3)){
$selected_cat_id = $row3['catNo'];
$sql4 = "SELECT * FROM category WHERE id = '$selected_cat_id' ";
$result4 = mysqli_query($con,$sql4) or die(mysqli_error($con));
$row4 = mysqli_fetch_assoc($result4)
?>
<option value="<?php echo $row4['id'] ?>"><?php echo $row4['name'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>Start Date</h3>
<?php
$sql5 = "SELECT * FROM user_details WHERE logUserid = $logUserid";
$result5 = mysqli_query($con,$sql5) or die(mysqli_error($con));
$row5 = mysqli_fetch_assoc($result5);
?>
<label class="cal-icon">
<input type="text" id="startTime" onchange="changeTime();" value="<?php echo $row5['start'] ?>" placeholder="Start Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>End Date</h3>
<label class="cal-icon">
<input type="text" id="endTime" onchange="changeTime();" value="<?php echo $row5['end'] ?>" placeholder="End Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function changeTime() {
let logUserid = document.getElementById(`logUserid`).value;
let startTime = document.getElementById(`startTime`).value;
let endTime = document.getElementById(`endTime`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('startTime', startTime);
formData.append('endTime', endTime);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
if(req.responseText == 1) {
createTripPlan();
}
// createTripPlan();
}
}
}
req.open("POST", 'sub_update_date.php', true);
req.send(formData);
}
}
function setToCat(value) {
let logUserid = document.getElementById(`logUserid`).value;
let catDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('catDropValue', catDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_cat.php', true);
req.send(formData);
}
}
function setToLine(value){
let logUserid = document.getElementById(`logUserid`).value;
let lineDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('lineDropValue', lineDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_line.php', true);
req.send(formData);
}
}
</script>
<div class="col-xl-9 col-lg-8 col-md-12 col-sm-12 col-12">
<div class="x_carbooking_right_section_wrapper float_left">
<div class="row">
<div class="col-md-12">
<div class="x_car_checkout_right_main_box_wrapper float_left">
<div class="car-filter order-billing margin-top-0">
<div class="heading-block text-left margin-bottom-0">
<h4>Trip Details</h4>
</div>
<hr>
<!-- <form class="billing-form">
<ul class="list-unstyled row">
<li class="col-md-6">
<label>First Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Last Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>NIC / Passport
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Passengers
<input type="text" placeholder="" class="form-control">
</label>
</li>
</form> -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div class="accordion" id="accordionExample" style="width: 100%; ">
<div class="card">
<div class="card-header" id="headingOne" style="background-color: #4f5dec;">
<h2 class="mb-0" >
<button style="color: #ffffff;" class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Best Trip Plan - <b> <span id="lineNameSec"> Main Line </span></b>
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="contect_btn contect_btn_contact">
<ul>
<li><a href="#">Confirm Plan <i class="fa fa-arrow-right"></i></a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- x car book sidebar section Wrapper End -->
<!-- Button trigger modal -->
<div id="seatPlanAdd">
</div>
<style>
.btn-link:hover, .btn-link, .btn-link:focus{
text-decoration:none;
}
</style>
<?php include('common_footer.php'); ?>
<div class="container pull-right" id="chatbox">
<div class="row chat-window col-xs-5 col-md-4 pull-right" id="chat_window_1">
<div class="col-xs-12 col-md-12">
<div class="panel panel-default">
<div class="panel-heading top-bar" style="border-radius: 5px 5px 0px 0px;">
<div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-md-8 col-xs-8">
<h5 class="panel-title" style="font-size: 18; font-weight: 600; color: #ffffff; text-transform: uppercase;"><span class="glyphicon glyphicon-comment"></span> Railbot </h3>
</div>
<div class="col-md-4 col-xs-4" style="text-align: right;">
<a style="color: #ffffff; cursor:pointer;" onclick="minimizeChat();"><i id="minim_chat_window" class="fa fa-window-minimize icon_minim"></i></a>
<a style="color: #ffffff; cursor:pointer;" onclick="closeChat();"><i class="fa fa-close icon_close" data-id="chat_window_1"></i></a>
</div>
</div>
</div>
<!-- <div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-sm-5 col-md-5 col-lg-5">xxxxxxx</div>
<div class="col-sm-4 col-md-4 col-lg-4">xxxxxxxx</div>
</div>
</div> -->
</div>
<div id="messagebody" class="panel-body msg_container_base">
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_sent">
<p>Hi</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:22</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_receive">
<p>Hi there, how can I help?</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:28</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_sent">
<p>What are the historical places i can visit in Sri Lanka? </p>
<time datetime="2009-11-13T20:00">User • Today 10:05:38</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>You can see Ruwanweliseya, Thuparamaya, Isurumuniya and many other historical places in Sri Lanka.</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:41</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10 " style="padding:0;">
<div class="messages msg_sent">
<p>Who made sigiriya?</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:45</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>Sigiriya was built by King Kashyapa</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:09:33</time>
</div>
</div>
</div>
</div>
</div>
<div class="panel-footer" id="inputSec">
<div class="input-group">
<input id="btn-input" type="text" class="form-control input-sm chat_input" placeholder="Write your message here..." required="required" />
<span class="input-group-btn">
<button class="btn btn-primary btn-sm" style="margin-top: 5%;" id="btn-chat">Send <i class="fa fa-send-o" style="font-size:15px; padding-left: 5%;"></i></button>
</span>
</div>
</div>
</div>
</div>
</div>
<script>
function minimizeChat() {
if(document.getElementById('messagebody').style.display == 'block' && document.getElementById('inputSec').style.display == 'block') {
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
} else {
document.getElementById('messagebody').style.display = 'block';
document.getElementById('inputSec').style.display = 'block';
}
}
function closeChat() {
$( "#chatbox" ).hide();
}
function showChat() {
$( "#chatbox" ).show();
}
function loadFun(){
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
}
</script>
<style>
.panel{
margin-bottom: 0px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.chat-window{
bottom:0;
right:5%;
position:fixed;
float:right;
}
.chat-window > div > .panel{
border-radius: 5px 5px 0 0;
}
.icon_minim{
padding:2px 10px;
}
.msg_container_base{
background: #e5e5e5;
margin: 0;
padding: 0 10px 10px;
max-height:300px;
overflow-x:hidden;
}
.top-bar {
background: #4f5dec;
color: white;
padding: 10px;
position: relative;
overflow: hidden;
}
.msg_receive{
padding-left:0;
margin-left:0;
}
.msg_sent{
padding-bottom:20px !important;
margin-right:0;
}
.messages {
background: white;
padding: 10px;
border-radius: 2px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
max-width:100%;
}
.messages > p {
font-size: 13px;
margin: 0 0 0.2rem 0;
}
.messages > time {
font-size: 11px;
color: #ccc;
}
.msg_container {
padding: 10px;
overflow: hidden;
display: flex;
}
.chatimg {
display: block;
width: 100%;
}
.avatar {
position: relative;
}
.base_receive > .avatar:after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 0;
height: 0;
border: 5px solid #FFF;
border-left-color: rgba(0, 0, 0, 0);
border-bottom-color: rgba(0, 0, 0, 0);
}
.base_sent {
justify-content: flex-end;
align-items: flex-end;
}
.base_sent > .avatar:after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 0;
border: 5px solid white;
border-right-color: transparent;
border-top-color: transparent;
box-shadow: 1px 1px 2px rgba(black, 0.2); // not quite perfect but close
}
.msg_sent > time{
float: right;
}
.msg_container_base::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar
{
width: 12px;
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar-thumb
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
.btn-group.dropup{
position:fixed;
left:0px;
bottom:0;
}
.panel-footer {
padding: 10px 15px;
background-color: #a5abf3;
border-top: 1px solid #ddd;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
</style>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/modernizr.js"></script>
<script src="js/select2.min.js"></script>
<script src="js/jquery.menu-aim.js"></script>
<script src="js/jquery-ui.js"></script>
<script src="js/jquery.nice-select.min.js"></script>
<script src="js/owl.carousel.js"></script>
<!-- <script src="js/own-menu.js"></script> -->
<script src="js/jquery.bxslider.min.js"></script>
<script src="js/jquery.magnific-popup.js"></script>
<script src="js/xpedia.js"></script>
<!-- custom js-->
<link href="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/css/lobibox.css" rel="stylesheet" />
<!-- <script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/lib/jquery.1.11.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/js/lobibox.min.js"></script>
<script src='https://kit.fontawesome.com/a076d05399.js' crossorigin='anonymous'></script>
</body>
<script>
//Get the button
var mybutton = document.getElementById("myBtn");
var mybuttonchat = document.getElementById("myBtnChat");
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
mybutton.style.display = "block";
mybuttonchat.style.display = "block";
} else {
mybutton.style.display = "none";
mybuttonchat.style.display = "none";
}
}
// When the user clicks on the button, scroll to the top of the document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
function naviFunction() {
window.location.href = "train_planned.html";
}
function naviHome() {
window.location.href = "index.php";
}
function naviFunction() {
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
if(req.responseText == 1) {
var subform = document.getElementById('subform');
var form = document.createElement("form");
form.method = 'POST';
form.action = 'train_planned.php';
var input1 = document.createElement('input');
input1.type = "hidden";
input1.name = "logUserid";
input1.value = logUserid;
form.appendChild(input1);
subform.appendChild(form);
form.submit();
} else {
Lobibox.notify('error', {
size: 'normal',
sound: false,
title: 'Cannot access...',
icon: 'fa fa-times-circle',
msg: 'Please fill your details before create trip plan.'
});
}
}
}
}
req.open("POST", 'sub_check_user_submit_details.php', true);
req.send(formData);
}
}
</script>
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
</html>
\ No newline at end of file
<?php
include "db_connect.php";
if(isset($_POST['logUserid'])){
$logUserid = $_POST['logUserid'];
} else {
header("Location: (index.php)");
}
?>
<!DOCTYPE html>
<html lang="zxx">
<!--[endif]-->
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<meta charset="utf-8" />
<title>User-Friendly Railway </title>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta name="MobileOptimized" content="320" />
<!--Template style -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"
/>
<link rel="stylesheet" type="text/css" href="css/xpedia.css" />
<style type="text/css">
#myBtn {
display: none;
position: fixed;
bottom: 20px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtnChat:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnChat {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
#myBtn:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan:hover {
background-color: #ffffff;
color: #4f5dec;
border: 1px solid #4f5dec;
}
#myBtnPlan {
display: none;
position: fixed;
bottom: 90px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: #4f5dec;
color: white;
cursor: pointer;
padding: 15px;
border-radius: 10px;
}
</style>
<script>
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}else {
}
}
</script>
</head>
<body onload="loadFun(); createTripPlan();">
<div id="subform"></div>
<?php include('common_header.php'); ?>
<script>
function createTripPlan(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`collapseOne`).innerHTML = req.responseText;
changeLineName();
deleteSeatDetails(logUserid);
}
}
}
req.open("POST", 'sub_trip_planned_create_trip_plan.php', true);
req.send(formData);
}
}
function deleteSeatDetails(logUserid) {
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
}
}
}
req.open("POST", 'sub_delete_all_seat_details.php', true);
req.send(formData);
}
}
function changeLineName(){
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
document.getElementById(`lineNameSec`).innerHTML = req.responseText;
}
}
}
req.open("POST", 'sub_change_line_name.php', true);
req.send(formData);
}
}
function createSeatDesign(logUserid, train_id, train_start_station, seat_design){
logUserid = logUserid;
train_id = train_id;
train_start_station = train_start_station;
seat_design = seat_design;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('seat_design', seat_design);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`seatPlanAdd`).innerHTML = req.responseText;
$(`#train_${train_id}_${train_start_station}`).modal('show');
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat.php', true);
req.send(formData);
}
}
function selectSeat(logUserid, train_id, train_start_station, row, seat, status) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
formData.append('row', row);
formData.append('seat', seat);
formData.append('status', status);
if(status == 'no') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_add_to_temp.php', true);
req.send(formData);
}
} else if(status == 'yes') {
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
document.getElementById(`div_${row}_${seat}`).innerHTML = req.responseText;
highlightBest(logUserid, train_id, train_start_station);
}
}
}
req.open("POST", 'sub_design_seat_remove_from_temp.php', true);
req.send(formData);
}
}
}
function highlightBest(logUserid, train_id, train_start_station) {
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('train_id', train_id);
formData.append('train_start_station', train_start_station);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
var bestButton = document.getElementById(req.responseText);
bestButton.classList.add('animate__animated', 'animate__heartBeat', 'animate__infinite', 'slow');
}
}
}
req.open("POST", 'sub_check_best_seat.php', true);
req.send(formData);
}
}
</script>
<!-- hs Navigation End -->
<!-- btc tittle Wrapper Start -->
<div class="btc_tittle_main_wrapper">
<div class="btc_tittle_img_overlay"></div>
<div class="container">
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_left_heading">
<h1>Custom Trip Plan</h1>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12 full_width">
<div class="btc_tittle_right_heading">
<div class="btc_tittle_right_cont_wrapper">
<ul>
<li><a href="#">Home</a> <i class="fa fa-angle-right"></i>
</li>
<li>Custom Trip Plan</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- btc tittle Wrapper End -->
<!-- x tittle num Wrapper Start -->
<div class="x_title_num_mian_Wrapper float_left">
<div class="container">
<div class="x_title_inner_num_wrapper float_left">
<div class="x_title_num_heading">
<h3>Create Custom Trip Plan</h3>
<p>Complete Your Step</p>
</div>
<div class="x_title_num_heading_cont">
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>1</p>
</div>
<h5>Fill Details</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num ">
<p>2</p>
</div>
<h5>Select Location</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>3</p>
</div>
<h5>Create plan</h5>
</div>
<div class="x_title_num_main_box_wrapper">
<div class="x_icon_num">
<p>4</p>
</div>
<h5>customize Plan</h5>
</div>
<div class="x_title_num_main_box_wrapper x_title_num_main_box_wrapper3 x_title_num_main_box_wrapper_last">
<div class="x_icon_num">
<p>5</p>
</div>
<h5>done!</h5>
</div>
</div>
</div>
</div>
</div>
<!-- x tittle num Wrapper End -->
<!-- x car book sidebar section Wrapper Start -->
<div class="x_car_book_sider_main_Wrapper float_left">
<div class="container" >
<div class="row">
<div class="col-xl-3 col-lg-4 col-md-12 col-sm-12 col-12">
<div class="x_car_book_left_siderbar_wrapper float_left">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
<div class="x_slider_form_main_wrapper float_left x_slider_form_main_wrapper_ccb">
<div class="x_slider_form_heading_wrapper x_slider_form_heading_wrapper_carbooking float_left">
<h3>Let’s Create perfect Trip</h3>
</div>
<input type="text" value="<?php echo $logUserid ?>" id="logUserid" hidden>
<div class="row">
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Railway Line</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToLine(this.value);">
<?php
$sql1 = "SELECT * FROM linelist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
while($row1 = mysqli_fetch_array($result1)){
$slected_line_no = $row1['lineNo'];
$sql2 = "SELECT * FROM railway_line WHERE id = $slected_line_no";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
$row2 = mysqli_fetch_assoc($result2)
?>
<option value="<?php echo $row2['id'] ?>"><?php echo $row2['line'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="x_slider_form_input_wrapper float_left">
<h3>Location Category</h3>
<div class="x_slider_select" style="width: 100%; margin-top: 0px;">
<select class="myselect form-control" onchange="setToCat(this.value)">
<?php
$sql3 = "SELECT * FROM catlist WHERE logUserid = $logUserid ORDER BY `priority` ASC";
$result3 = mysqli_query($con,$sql3) or die(mysqli_error($con));
while($row3 = mysqli_fetch_array($result3)){
$selected_cat_id = $row3['catNo'];
$sql4 = "SELECT * FROM category WHERE id = '$selected_cat_id' ";
$result4 = mysqli_query($con,$sql4) or die(mysqli_error($con));
$row4 = mysqli_fetch_assoc($result4)
?>
<option value="<?php echo $row4['id'] ?>"><?php echo $row4['name'] ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>Start Date</h3>
<?php
$sql5 = "SELECT * FROM user_details WHERE logUserid = $logUserid";
$result5 = mysqli_query($con,$sql5) or die(mysqli_error($con));
$row5 = mysqli_fetch_assoc($result5);
?>
<label class="cal-icon">
<input type="text" id="startTime" onchange="changeTime();" value="<?php echo $row5['start'] ?>" placeholder="Start Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
<div class="col-md-12">
<div class="form-sec-header">
<h3>End Date</h3>
<label class="cal-icon">
<input type="text" id="endTime" onchange="changeTime();" value="<?php echo $row5['end'] ?>" placeholder="End Date" class="form-control datepicker" readonly>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function changeTime() {
let logUserid = document.getElementById(`logUserid`).value;
let startTime = document.getElementById(`startTime`).value;
let endTime = document.getElementById(`endTime`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('startTime', startTime);
formData.append('endTime', endTime);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
if(req.responseText == 1) {
createTripPlan();
}
// createTripPlan();
}
}
}
req.open("POST", 'sub_update_date.php', true);
req.send(formData);
}
}
function setToCat(value) {
let logUserid = document.getElementById(`logUserid`).value;
let catDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('catDropValue', catDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_cat.php', true);
req.send(formData);
}
}
function setToLine(value){
let logUserid = document.getElementById(`logUserid`).value;
let lineDropValue = value;
var formData = new FormData();
formData.append('logUserid', logUserid);
formData.append('lineDropValue', lineDropValue);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
createTripPlan();
}
}
}
req.open("POST", 'sub_arrange_line.php', true);
req.send(formData);
}
}
</script>
<div class="col-xl-9 col-lg-8 col-md-12 col-sm-12 col-12">
<div class="x_carbooking_right_section_wrapper float_left">
<div class="row">
<div class="col-md-12">
<div class="x_car_checkout_right_main_box_wrapper float_left">
<div class="car-filter order-billing margin-top-0">
<div class="heading-block text-left margin-bottom-0">
<h4>Trip Details</h4>
</div>
<hr>
<!-- <form class="billing-form">
<ul class="list-unstyled row">
<li class="col-md-6">
<label>First Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Last Name *
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>NIC / Passport
<input type="text" placeholder="" class="form-control">
</label>
</li>
<li class="col-md-6">
<label>Passengers
<input type="text" placeholder="" class="form-control">
</label>
</li>
</form> -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div class="accordion" id="accordionExample" style="width: 100%; ">
<div class="card">
<div class="card-header" id="headingOne" style="background-color: #4f5dec;">
<h2 class="mb-0" >
<button style="color: #ffffff;" class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Best Trip Plan - <b> <span id="lineNameSec"> Main Line </span></b>
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
<!-- Content Add -->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="contect_btn contect_btn_contact">
<ul>
<li><a href="#">Confirm Plan <i class="fa fa-arrow-right"></i></a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- x car book sidebar section Wrapper End -->
<!-- Button trigger modal -->
<div id="seatPlanAdd">
</div>
<style>
.btn-link:hover, .btn-link, .btn-link:focus{
text-decoration:none;
}
</style>
<?php include('common_footer.php'); ?>
<div class="container pull-right" id="chatbox">
<div class="row chat-window col-xs-5 col-md-4 pull-right" id="chat_window_1">
<div class="col-xs-12 col-md-12">
<div class="panel panel-default">
<div class="panel-heading top-bar" style="border-radius: 5px 5px 0px 0px;">
<div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-md-8 col-xs-8">
<h5 class="panel-title" style="font-size: 18; font-weight: 600; color: #ffffff; text-transform: uppercase;"><span class="glyphicon glyphicon-comment"></span> Railbot </h3>
</div>
<div class="col-md-4 col-xs-4" style="text-align: right;">
<a style="color: #ffffff; cursor:pointer;" onclick="minimizeChat();"><i id="minim_chat_window" class="fa fa-window-minimize icon_minim"></i></a>
<a style="color: #ffffff; cursor:pointer;" onclick="closeChat();"><i class="fa fa-close icon_close" data-id="chat_window_1"></i></a>
</div>
</div>
</div>
<!-- <div class="col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-sm-5 col-md-5 col-lg-5">xxxxxxx</div>
<div class="col-sm-4 col-md-4 col-lg-4">xxxxxxxx</div>
</div>
</div> -->
</div>
<div id="messagebody" class="panel-body msg_container_base">
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_sent">
<p>Hi</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:22</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-md-10 col-xs-10" style="padding:0;">
<div class="messages msg_receive">
<p>Hi there, how can I help?</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:28</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_sent">
<p>What are the historical places i can visit in Sri Lanka? </p>
<time datetime="2009-11-13T20:00">User • Today 10:05:38</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>You can see Ruwanweliseya, Thuparamaya, Isurumuniya and many other historical places in Sri Lanka.</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:05:41</time>
</div>
</div>
</div>
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10 " style="padding:0;">
<div class="messages msg_sent">
<p>Who made sigiriya?</p>
<time datetime="2009-11-13T20:00">User • Today 10:05:45</time>
</div>
</div>
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatMan.png" class="chatimg img-responsive ">
</div>
</div>
<div class="row msg_container base_receive">
<div class="col-md-2 col-xs-2 avatar" style="padding:0;">
<img src="./images/chatTrain.png" class="chatimg img-responsive ">
</div>
<div class="col-xs-10 col-md-10" style="padding:0;">
<div class="messages msg_receive">
<p>Sigiriya was built by King Kashyapa</p>
<time datetime="2009-11-13T20:00">Railbot • Today 10:09:33</time>
</div>
</div>
</div>
</div>
</div>
<div class="panel-footer" id="inputSec">
<div class="input-group">
<input id="btn-input" type="text" class="form-control input-sm chat_input" placeholder="Write your message here..." required="required" />
<span class="input-group-btn">
<button class="btn btn-primary btn-sm" style="margin-top: 5%;" id="btn-chat">Send <i class="fa fa-send-o" style="font-size:15px; padding-left: 5%;"></i></button>
</span>
</div>
</div>
</div>
</div>
</div>
<script>
function minimizeChat() {
if(document.getElementById('messagebody').style.display == 'block' && document.getElementById('inputSec').style.display == 'block') {
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
} else {
document.getElementById('messagebody').style.display = 'block';
document.getElementById('inputSec').style.display = 'block';
}
}
function closeChat() {
$( "#chatbox" ).hide();
}
function showChat() {
$( "#chatbox" ).show();
}
function loadFun(){
document.getElementById('messagebody').style.display = 'none';
document.getElementById('inputSec').style.display = 'none';
}
</script>
<style>
.panel{
margin-bottom: 0px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.chat-window{
bottom:0;
right:5%;
position:fixed;
float:right;
}
.chat-window > div > .panel{
border-radius: 5px 5px 0 0;
}
.icon_minim{
padding:2px 10px;
}
.msg_container_base{
background: #e5e5e5;
margin: 0;
padding: 0 10px 10px;
max-height:300px;
overflow-x:hidden;
}
.top-bar {
background: #4f5dec;
color: white;
padding: 10px;
position: relative;
overflow: hidden;
}
.msg_receive{
padding-left:0;
margin-left:0;
}
.msg_sent{
padding-bottom:20px !important;
margin-right:0;
}
.messages {
background: white;
padding: 10px;
border-radius: 2px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
max-width:100%;
}
.messages > p {
font-size: 13px;
margin: 0 0 0.2rem 0;
}
.messages > time {
font-size: 11px;
color: #ccc;
}
.msg_container {
padding: 10px;
overflow: hidden;
display: flex;
}
.chatimg {
display: block;
width: 100%;
}
.avatar {
position: relative;
}
.base_receive > .avatar:after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 0;
height: 0;
border: 5px solid #FFF;
border-left-color: rgba(0, 0, 0, 0);
border-bottom-color: rgba(0, 0, 0, 0);
}
.base_sent {
justify-content: flex-end;
align-items: flex-end;
}
.base_sent > .avatar:after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 0;
border: 5px solid white;
border-right-color: transparent;
border-top-color: transparent;
box-shadow: 1px 1px 2px rgba(black, 0.2); // not quite perfect but close
}
.msg_sent > time{
float: right;
}
.msg_container_base::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar
{
width: 12px;
background-color: #F5F5F5;
}
.msg_container_base::-webkit-scrollbar-thumb
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
.btn-group.dropup{
position:fixed;
left:0px;
bottom:0;
}
.panel-footer {
padding: 10px 15px;
background-color: #a5abf3;
border-top: 1px solid #ddd;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
</style>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/modernizr.js"></script>
<script src="js/select2.min.js"></script>
<script src="js/jquery.menu-aim.js"></script>
<script src="js/jquery-ui.js"></script>
<script src="js/jquery.nice-select.min.js"></script>
<script src="js/owl.carousel.js"></script>
<!-- <script src="js/own-menu.js"></script> -->
<script src="js/jquery.bxslider.min.js"></script>
<script src="js/jquery.magnific-popup.js"></script>
<script src="js/xpedia.js"></script>
<!-- custom js-->
<link href="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/css/lobibox.css" rel="stylesheet" />
<!-- <script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/lib/jquery.1.11.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/lobibox@1.2.7/dist/js/lobibox.min.js"></script>
<script src='https://kit.fontawesome.com/a076d05399.js' crossorigin='anonymous'></script>
</body>
<script>
//Get the button
var mybutton = document.getElementById("myBtn");
var mybuttonchat = document.getElementById("myBtnChat");
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
mybutton.style.display = "block";
mybuttonchat.style.display = "block";
} else {
mybutton.style.display = "none";
mybuttonchat.style.display = "none";
}
}
// When the user clicks on the button, scroll to the top of the document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
function naviFunction() {
window.location.href = "train_planned.html";
}
function naviHome() {
window.location.href = "index.php";
}
function naviFunction() {
let logUserid = document.getElementById(`logUserid`).value;
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
if(req.responseText == 1) {
var subform = document.getElementById('subform');
var form = document.createElement("form");
form.method = 'POST';
form.action = 'train_planned.php';
var input1 = document.createElement('input');
input1.type = "hidden";
input1.name = "logUserid";
input1.value = logUserid;
form.appendChild(input1);
subform.appendChild(form);
form.submit();
} else {
Lobibox.notify('error', {
size: 'normal',
sound: false,
title: 'Cannot access...',
icon: 'fa fa-times-circle',
msg: 'Please fill your details before create trip plan.'
});
}
}
}
}
req.open("POST", 'sub_check_user_submit_details.php', true);
req.send(formData);
}
}
</script>
<!-- Mirrored from xdemos.space/xpedia/car_checkout.html by HTTrack Website Copier/3.x [XR&CO'2014], Wed, 30 Jun 2021 08:26:21 GMT -->
</html>
\ No newline at end of file
File added
from flask import Flask
app = Flask(__name__)
import random
import json
import torch
from model import NeuralNet
from nltk_utils import bag_of_words, tokenize
@app.route('/<string:name>/')
def hello(name):
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
with open('intents.json', 'r') as json_data:
intents = json.load(json_data)
FILE = "data.pth"
data = torch.load(FILE)
input_size = data["input_size"]
hidden_size = data["hidden_size"]
output_size = data["output_size"]
all_words = data['all_words']
tags = data['tags']
model_state = data["model_state"]
model = NeuralNet(input_size, hidden_size, output_size).to(device)
model.load_state_dict(model_state)
model.eval()
bot_name = "TravellChatty"
while True:
# sentence = "do you use credit cards?"
sentence =name
if sentence == "quit":
break
sentence = tokenize(sentence)
X = bag_of_words(sentence, all_words)
X = X.reshape(1, X.shape[0])
X = torch.from_numpy(X).to(device)
output = model(X)
_, predicted = torch.max(output, dim=1)
tag = tags[predicted.item()]
probs = torch.softmax(output, dim=1)
prob = probs[0][predicted.item()]
if prob.item() > 0.75:
for intent in intents['intents']:
if tag == intent["tag"]:
return (f" {random.choice(intent['responses'])}")
#print(f"{bot_name}: {random.choice(intent['responses'])}")
else:
return (f" I do not understand...")
#print(f"{bot_name}: I do not understand...")
app.run()
import random
import json
import torch
from model import NeuralNet
from nltk_utils import bag_of_words, tokenize
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
with open('intents.json', 'r') as json_data:
intents = json.load(json_data)
FILE = "data.pth"
data = torch.load(FILE)
input_size = data["input_size"]
hidden_size = data["hidden_size"]
output_size = data["output_size"]
all_words = data['all_words']
tags = data['tags']
model_state = data["model_state"]
model = NeuralNet(input_size, hidden_size, output_size).to(device)
model.load_state_dict(model_state)
model.eval()
bot_name = "TravellChatty"
print("Let's chat! (type 'quit' to exit)")
while True:
# sentence = "do you use credit cards?"
sentence = input("You: ")
if sentence == "quit":
break
sentence = tokenize(sentence)
X = bag_of_words(sentence, all_words)
X = X.reshape(1, X.shape[0])
X = torch.from_numpy(X).to(device)
output = model(X)
_, predicted = torch.max(output, dim=1)
tag = tags[predicted.item()]
probs = torch.softmax(output, dim=1)
prob = probs[0][predicted.item()]
if prob.item() > 0.75:
for intent in intents['intents']:
if tag == intent["tag"]:
print(f"{bot_name}: {random.choice(intent['responses'])}")
else:
print(f"{bot_name}: I do not understand...")
<mxfile host="app.diagrams.net" modified="2021-07-05T06:13:17.469Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" etag="0eO2WcAi71hUnJJ3aWHb" version="14.8.4" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">7VhZc5swEP41PLbD4WLnsThxktbNJE3aTB9lkEG10FIhfPTXdzHCgPH4aOscnvjBo12vV9J+3x5gOP14filJEn2BgHLDNoO54Zwbtt1ze/idKxaFotM5KxShZEGhsirFPftNtdLU2owFNG0YKgCuWNJU+iAE9VVDR6SEWdNsDLy5a0JC2lLc+4S3tY8sUJG+lt2t9FeUhVG5s+Xq+8WkNNY3SSMSwKymci4Mpy8BVLGK533K89iVcXm8Xjzy4cS9/HSX/iLfvM8PN9/fFc4Gh/xldQVJhfq/ru3C9ZTwTMdL31UtygBKyERAcyem4XiRijkuLVz+pEotNOAkU4AqkCqCEAThQ4BE241BKG1m5TIVwcccWJRHHPxJoRowzvUeKGn7HkqpkjBZYZc7WAGRG3Myotwj/iRcHrQPHCT+JEDQ3FWAZNB3qQ53UWm9PWOrMUghkz7dYudoihMZ0m3+3MIuP1+Npxq5SwoxVXKBBpJyoti0SWaicyJc2VW440JDfwANnBYNrkWSKVTdZTRVDMQWWuSQzCKm6H1ClrGZYSFpUqVOAbylF3KSphrAHfgehs+USkXnWyNa/urqtNZ1zdHirCoSVpn5Ua1AdMwjYdBpYfAD6+ZbNv5LNrp7ZmPZrHamoyZLSYy9s1N7ugUmVM0ExuMUD7ZOndWGf8+mDy023UCLTLvxeNV0eyYydQ/jkvXiueS2uDQkcWLYLscweCOJqzBfJTwLQyQLuhOGM2jXrgjiUZbubhcNjHMGDUjMeB6vK8qnVDGfbGgqhLMQ9z33EW4qN5MHt2QiRMmtpIclWbH+HrHZdJvNZiXXu425odv0jtVtui1MbxG9Ajrb5Et8T6zjO/YaCGfP3fJ7+xTpV12Cn7zjl9V0d8u39izTmj3mewc/DQK9/CngbK+Z8m0MOA7D7FMbBMoT1vjkZXzUngRGmRTLQQDwIfJtEtgyCdibmtCTTgJlIayB+pUmhCGY5vAU54D1J//Osz/6l5WiCQHPY2qbRYadGAbrs5hjHQ8DFKuXtEUprN50Oxd/AA==</diagram></mxfile>
\ No newline at end of file
<mxfile host="app.diagrams.net" modified="2021-07-05T08:15:19.892Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" etag="anojXV1VPU4Nbeb_80O3" version="14.8.4" type="device"><diagram id="Uq7t70wbKGAHPmdqknoz" name="Page-1">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</diagram></mxfile>
\ No newline at end of file
{
"intents": [
{
"tag": "greeting",
"patterns": [
"Hi",
"Hey",
"How are you",
"Is anyone there?",
"Hello",
"Good day"
],
"responses": [
"Hey :-)",
"Hello, thanks for visiting",
"Hi there, what can I do for you?",
"Hi there, how can I help?"
]
},
{
"tag": "goodbye",
"patterns": ["Bye", "See you later", "Goodbye"],
"responses": [
"See you later, thanks for visiting",
"Have a nice day",
"Bye! Come back again soon."
]
},
{
"tag": "thanks",
"patterns": ["Thanks", "Thank you", "That's helpful", "Thank's a lot!"],
"responses": ["Happy to help!", "Any time!", "My pleasure"]
},
{
"tag": "anuradhapura-places",
"patterns": ["what are the places i can visit in anuradhapura?", "what are the places I can see in Anuradhapura?", "what are the locations I can see in Anuradhapura", "Why am i going to anuradhapuraya?","What are the tourist places in anuradhapura?"],
"responses": ["You can see Ruwanweliseya, Thuparamaya, Isurumuniya and many other historical places in Anuradhapura"]
},
{
"tag": "create-sigiriya",
"patterns": ["who made sigiriya?", "who created sigiriya?", "who built sigiriya?","who built lion rock?"],
"responses": ["Sigiriya was built by King Kashyapa"]
},
{
"tag": "see-sigiriya",
"patterns": ["what can i see in sigiriya?", "why am i go to sigiriya?", "what are the beautiful places in sigiriya?","why am i go to lion rock?"],
"responses": ["You can see ancient ponds and wall art in the Sigiriya"]
},
{
"tag": "important-sigiriya",
"patterns": ["what is the important of the sigiriya?", "tell me about sigiriya?", "why people like sigiriya?","why is the important of the sigiriya for us?", "tell me about lion rock?","what is sigiriya?","what is the special of the sigiriya?"],
"responses": ["Sigiriya is one of the most valuable historical monuments of Sri Lanka. Referred by locals as the Eighth Wonder of the World this ancient palace and fortress complex has significant archaeological importance and attracts thousands of tourists every year. It is probably the most visited tourist destination of Sri Lanka."]
},
{
"tag": "when-sigiriya",
"patterns": ["when create sigiriya?", "when built sigiriya?", "which year made sigiriya"],
"responses": ["Since the 3th century BC Sigiriya was used as a monastery and after eight centuries it was turned into a royal palace"]
},
{
"tag": "old-sigiriya",
"patterns": ["how old sigiriya?", "how many years sigiriya?"],
"responses": ["Archeological excavations have proven that Sigiriya and its surrounding territories were inhabited for more than 4000 years."]
},
{
"tag": "crowd-sigiriya",
"patterns": ["how many peoples comes to the sigiriya in the one day?", "how many crowd visit to the sigiriya in a day?"],
"responses": ["Around 2000 people come to visit Sigiriya daily."]
},
{
"tag": "ticket-sigiriya",
"patterns": ["what is the ticket price of sigiriya", "entrance fee of sigiriya?"],
"responses": ["You should by a ticket which price of US$30 or 4620 LKR for tourists, or 50 LKR for Sri Lankan citizens."]
},
{
"tag": "heritage-sigiriya",
"patterns": ["is sigiriya world heritage?", "when sigiriya become the heritage?"],
"responses": ["Sigiriya is a UNESCO listed World Heritage Site since 1982."]
},
{
"tag": "station-sigiriya",
"patterns": ["what is the nearest railway station to the sigiriya"," what is the closest station to the sigiriya", "how long so far to closest railway station from sigiriya?","where is sigiriya"],
"responses": ["Habarna is the closest railway station to Sigiriya. It's 15km away from Sigiriya."]
},
{
"tag": "heigh-sigiriya",
"patterns": ["what is the height of sigiriya", "what is the peak of sigiriya?","elevation of sigiriya?","elevation of sigiriya"],
"responses": ["1,144 feet (349 metres) above sea level and is some 600 feet (180 metres) above the surrounding plain."]
},
{
"tag": "why-sigiriya",
"patterns": ["why create sigiriya", "what is reason for make sigiriya?","what is the main purpose of sigiriya","why built sigiriya"],
"responses": ["1In India he raised an army with the intention of returning and retaking the throne of Sri Lanka, which he considered to be rightfully his. Expecting the inevitable return of Moggallana, Kashyapa is said to have built his palace on the summit of Sigiriya as a fortress as well as a pleasure palace."]
},
{
"tag": "create-ruwanweliseya",
"patterns": ["who made ruwanweliseya?", "who created ruwanweliseya?","who built ruwanweliseya?" ,"who built ruwanweliseya?"],
"responses": ["Ruwanweliseya was built by King Dutugemunu"]
},
{
"tag": "important-ruwanweliseya",
"patterns": ["what is the important of the ruwanweliseya?","why am i go to ruwanweliseya?", "tell me about ruwanweliseya?", "why people like ruwanweliseya?","why is the important of the ruwanweliseya for us?","what is the special of the ruwanweliseya?"],
"responses": ["The Ruwanwelisaya is a stupa and a hemispherical structure containing relics, in Sri Lanka, considered sacred to many Buddhists all over the world. Two quarts or one Drona of the Gothama Buddha's relics are enshrined which is the largest collection of his relics anywhere.therefore, you should visit and see it"]
},
{
"tag": "when-ruwanweliseya",
"patterns": ["when create ruwanweliseya?", "when built ruwanweliseya?", "which year made ruwanweliseya"],
"responses": ["2nd century BCE"]
},
{
"tag": "heigh-ruwanweliseya",
"patterns": ["what is the height of ruwanweliseya", "what is the peak of ruwanweliseya?","elevation of ruwanweliseya?"],
"responses": ["Its present height is about 150 feet"]
},
{
"tag": "area-ruwanweliseya",
"patterns": ["what is the area of ruwanweliseya", "what is the diameter of ruwanweliseya?","width of ruwanweliseya?", "what is the diameter of ruwanweliseya?"],
"responses": ["379 feet"]
},
{
"tag": "station-ruwanweliseya",
"patterns": ["what is the nearest railway station to the ruwanweliseya"," what is the closest station to the ruwanweliseya", "how long so far to closest railway station from ruwanweliseya?","where is ruwanweliseya"],
"responses": ["4 Km - Distance from Anuradhapura Railway Station to ruwanweliseya"]
},
{
"tag": "brought-srimahabodi",
"patterns": ["who brought sri maha bodhi"," who give sri maha bodi","who give us srimahabodi"],
"responses": ["4 Km - Distance from Anuradhapura Railway Station to ruwanweliseya"]
},
{
"tag": "important-srimahabodi",
"patterns": ["what is the important of the sri maha bodhi?","why am i go to sri maha bodi?", "tell me about srimahabodi?", "why people like srimahabodi?","why is the important of the srimahabodhi for us?","what is the special of the srimahabodi?"],
"responses": ["Jaya Sri Maha Bodhi is a sacred bo tree in the Mahamewna Gardens, Anuradhapura, Sri Lanka. It is the southern branch from the historical Sri Maha Bodhi at Buddha Gaya in India under which Buddha attained Enlightenment"]
},
{
"tag": "when-srimahabodi",
"patterns": ["when create srimahabodi?", "when built sri maha bodhi?", "which year made srimahabodhi"],
"responses": ["It was planted in 288 BC"]
},
{
"tag": "where-srimahabodi",
"patterns": ["where is srimahabodi?", "what is the location of sri maha bodhi?", "where situated srimahabodhi"],
"responses": ["In Mahamewna Gardens, Anuradhapura, Sri Lanka"]
},
{
"tag": "station-srimahabodi",
"patterns": ["what is the nearest railway station to the sri maha bodhi"," what is the closest station to the srimahabodhi", "how long so far to closest railway station from srimahabodi?","where is srimahabodhi"],
"responses": ["4 Km - Distance from Anuradhapura Railway Station to sri maha bodhi"]
},
{
"tag": "create-Isurumuniya",
"patterns": ["who made isurumuniya?", "who created isurumuniya?", "who built isurumuniya?"],
"responses": ["The temple was built by King Devanampiya Tissa"]
},
{
"tag": "see-Isurumuniya",
"patterns": ["what can i see in isurumuniya?", "why am i go to isurumuniya?", "what are the beautiful places in isurumuniya?","why am i go to isurumuniya?"],
"responses": ["You can see Isurumuni Lovers,Royal Family Carving and Elephant Pond Carving in Isurumuniya"]
},
{
"tag": "important-Isurumuniya",
"patterns": ["what is the important of the isurumuniya?", "tell me about isurumuniya?", "why people like Isurumuniya?","why is the important of the Isurumuniya for us?","what is Isurumuniya?","what is the special of the Isurumuniya?"],
"responses": ["Isurumuniya is a Buddhist temple situated near to the Tissa Wewa (Tisa tank) in Anuradhapura, Sri Lanka. There are four carvings of special interest in this Vihara. They are the Isurumuniya Lovers, Elephant Pond and The Royal Family."]
},
{
"tag": "when-Isurumuniya",
"patterns": ["when create Isurumuniya?", "when built isurumuniya?", "which year made isurumuniya"],
"responses": ["Between 307 BC - 267 BC"]
},
{
"tag": "where-Isurumuniya",
"patterns": ["where is Isurumuniya?", "what is the location of Isurumuniya?", "where situated Isurumuniya"],
"responses": ["situated near to the Tissa Wewa (Tisa tank) in Anuradhapura, Sri Lanka"]
},
{
"tag": "station-Isurumuniya",
"patterns": ["what is the nearest railway station to the Isurumuniya"," what is the closest station to the Isurumuniya", "how long so far to closest railway station from Isurumuniya?"],
"responses": ["3 Km - Distance from Anuradhapura Railway Station to Isurumuniya"]
},
{
"tag": "create-kuttampokuna",
"patterns": ["who made kuttampokuna?", "who created Twin ponds?", "who built kuttampokuna?","who built kuttampokuna"],
"responses": ["Kuttampokuna was built by the Sinhalese in the ancient kingdom of Anuradhapura."]
},
{
"tag": "important-kuttampokuna",
"patterns": ["what is the important of the kuttampokuna?", "tell me about Twin ponds?", "why people like kuttampokuna?","why is the important of the kuttampokuna for us?", "tell me about kuttampokuna?","what is kuttampokuna?","what is the special of the kuttampokuna?"],
"responses": ["One of the best specimen of bathing tanks or pools in ancient Sri Lanka is the pair of pools known as Kuttam Pokuna (Twin Ponds/Pools). The said pair of pools were built by the Sinhalese in the ancient kingdom of Anuradhapura. These are considered one of the significant achievements in the field of hydrological engineering and outstanding architectural and artistic creations of the ancient Sinhalese."]
},
{
"tag": "area-kuttampokuna",
"patterns": ["what is the area of kuttampokuna", "what is the diameter of kuttampokuna?","width of Twin ponds?", "what is the diameter of kuttampokuna?"],
"responses": ["A garden was landscaped which separates the two ponds which long is 18½ ft. The larger pool of the two is 132 ft by 51 ft, while the smaller pool is 91 ft by 51 ft. The depths of the two pools is 14 ft and 18 ft for the smaller pool and the larger pool respectively."]
}
]
}
import torch
import torch.nn as nn
class NeuralNet(nn.Module):
def __init__(self, input_size, hidden_size, num_classes):
super(NeuralNet, self).__init__()
self.l1 = nn.Linear(input_size, hidden_size)
self.l2 = nn.Linear(hidden_size, hidden_size)
self.l3 = nn.Linear(hidden_size, num_classes)
self.relu = nn.ReLU()
def forward(self, x):
out = self.l1(x)
out = self.relu(out)
out = self.l2(out)
out = self.relu(out)
out = self.l3(out)
# no activation and no softmax at the end
return out
import numpy as np
import nltk
nltk.download('punkt')
from nltk.stem.porter import PorterStemmer
stemmer = PorterStemmer()
def tokenize(sentence):
"""
split sentence into array of words/tokens
a token can be a word or punctuation character, or number
"""
return nltk.word_tokenize(sentence)
def stem(word):
"""
stemming = find the root form of the word
examples:
words = ["organize", "organizes", "organizing"]
words = [stem(w) for w in words]
-> ["organ", "organ", "organ"]
"""
return stemmer.stem(word.lower())
def bag_of_words(tokenized_sentence, words):
"""
return bag of words array:
1 for each known word that exists in the sentence, 0 otherwise
example:
sentence = ["hello", "how", "are", "you"]
words = ["hi", "hello", "I", "you", "bye", "thank", "cool"]
bog = [ 0 , 1 , 0 , 1 , 0 , 0 , 0]
"""
# stem each word
sentence_words = [stem(word) for word in tokenized_sentence]
# initialize bag with 0 for each word
bag = np.zeros(len(words), dtype=np.float32)
for idx, w in enumerate(words):
if w in sentence_words:
bag[idx] = 1
return bag
import json
import numpy as np
import torch
import torch.nn as nn
from torch.utils.data import Dataset, DataLoader
from nltk_utils import bag_of_words, tokenize, stem
from model import NeuralNet
with open('intents.json', 'r') as f:
intents = json.load(f)
all_words = []
tags = []
xy = []
for intent in intents['intents']:
tag = intent['tag']
# add to tag list
tags.append(tag)
for pattern in intent['patterns']:
# tokenize each word in the sentence
w = tokenize(pattern)
# add to our words list
all_words.extend(w)
# add to xy pair
xy.append((w, tag))
ignore_words = ['?', '.', '!']
all_words = [stem(w) for w in all_words if w not in ignore_words]
all_words = sorted(set(all_words))
tags = sorted(set(tags))
print(tags)
X_train = []
y_train = []
for (pattern_sentence, tag) in xy:
# X: bag of words for each pattern_sentence
bag = bag_of_words(pattern_sentence, all_words)
X_train.append(bag)
# y: PyTorch CrossEntropyLoss needs only class labels, not one-hot
label = tags.index(tag)
y_train.append(label)
X_train = np.array(X_train)
y_train = np.array(y_train)
class ChatDataset(Dataset):
def __init__(self):
self.n_samples = len(X_train)
self.x_data = X_train
self.y_data = y_train
# support indexing such that dataset[i] can be used to get i-th sample
def __getitem__(self, index):
return self.x_data[index], self.y_data[index]
# we can call len(dataset) to return the size
def __len__(self):
return self.n_samples
num_epochs = 1000
learning_rate = 0.001
batch_size = 8
input_size = len(X_train[0])
hidden_size = 8
output_size = len(tags)
print(input_size, output_size)
dataset = ChatDataset()
train_loader = DataLoader(dataset=dataset,
batch_size=batch_size,
shuffle=True,
num_workers=0)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = NeuralNet(input_size, hidden_size, output_size).to(device)
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
for epoch in range(num_epochs):
for (words, labels) in train_loader:
words = words.to(device)
labels = labels.to(dtype=torch.long).to(device)
# Forward pass
outputs = model(words)
# if y would be one-hot, we must apply
# labels = torch.max(labels, 1)[1]
loss = criterion(outputs, labels)
# Backward and optimize
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch+1) % 100 == 0:
print (f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')
print(f'final loss: {loss.item():.4f}')
data = {
"model_state": model.state_dict(),
"input_size": input_size,
"hidden_size": hidden_size,
"output_size": output_size,
"all_words": all_words,
"tags": tags
}
FILE = "data.pth"
torch.save(data, FILE)
print(f'training complete. file saved to {FILE}')
<?php
session_start();
include "db_connect.php";
$logUserid = mysqli_real_escape_string($con,$_POST['logUserid']);
$sql1 = "DELETE FROM `select_seat_temp` WHERE logUserid = $logUserid ";
$result1 = mysqli_query($con,$sql1) or die(mysqli_error($con));
$sql2 = "DELETE FROM `best_seat` WHERE logUserid = $logUserid ";
$result2 = mysqli_query($con,$sql2) or die(mysqli_error($con));
\ No newline at end of file
......@@ -131,6 +131,7 @@
// console.log(req.responseText);
document.getElementById(`collapseOne`).innerHTML = req.responseText;
changeLineName();
deleteSeatDetails(logUserid);
}
}
}
......@@ -140,6 +141,26 @@
}
}
function deleteSeatDetails(logUserid) {
var formData = new FormData();
formData.append('logUserid', logUserid);
var req = getXmlHttpRequestObject();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
// console.log(req.responseText);
}
}
}
req.open("POST", 'sub_delete_all_seat_details.php', true);
req.send(formData);
}
}
function changeLineName(){
let logUserid = document.getElementById(`logUserid`).value;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment