<?php
require('includes/header.php');

   include('connection.php');
 
?>
<!DOCTYPE html>
<html lang="en" >
<meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
    <link rel="shortcut icon" type="image/x-icon" href="upload/icon.png">
    <title>ADD ISP CUSTMER</title>
   <link rel="stylesheet" href="style.css">
   <!-- Select2 CSS --> 
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" /> 

<!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> 

<!-- Select2 JS --> 
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>

<meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" type="text/css" href="assets/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/select2.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/dataTables.bootstrap4.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap-datetimepicker.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/style1.css">
	

	
	
	
	
<style>
.page-header{
	border-radius: 20px;
	color: #f9f9f9;
	text-align: center;
	background-color: red;
	width: 100%;
	margin-left: 0%;
	font-weight: bold;
	}
form {
  margin-right:100px;
  margin:20px 100px 20px 100px;
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 20px 50px 20px 50px;
}
.row {
    margin-left: -40px;
    margin-right: -40px;
}
input[type=text], select {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

input[type=submit] {
  width: 50%;
  background-color: #4CAF50;
  color: white;
  padding: 20px;
  margin: 8px 0;
  border: 1px;
  border-radius: 15px;
  cursor: pointer;
  margin-left: 200px;
}
input[type=reset] {
  margin-left:150px;
  margin-top:5px;
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 10px 50px 10px 50px;
}

input[type=submit]:hover {
  background-color: #45a049;
}
button {
 
  margin-top:5px;
  border-radius: 20px;
  background-color: #3c42383d;
  padding: 20px 20px 20px 20px;
}
button:hover {
  background-color: #45a049;
}
form {
  width: 80%;
  border-collapse: collapse;
  margin: 100px auto;
}

</style>


 
</head>
  <body>
<?php
// connect to the database
    include('connection.php');
	 include('includes/header.php');
?>
  
    <div id="page-wrapper">
	<div class="row">
   
     <form action="ispcustomersave.php" method="post" enctype="multipart/form-data" >
       
		<h2 class="page-header">Add New ISP Customer</h2>
		 <div style="font-weight:bold; text-align: center;"  class="alert-info">
				    <?php
				    if(isset($_GET['msg'])) echo $_GET['msg'];
				    ?>
				</div>
				 <label for="fname">Customer ID</label>
    <input type="text" name="IspId" required placeholder="Customer Id...">
		 <label for="fname">Customer Name</label>
    <input type="text" name="Name" required placeholder="Customer Name...">
	

	<label for="number_format">Phone No</label>
    <input type="text" name="PhoneNo" placeholder="Phone No....">
    
    <label for="lname">Registation Date</label>
    <input type="date" name="RegistationDate"  required placeholder="dd-mm-yyyy">
</br>
	<label for="Email">Payment Date</label>
    <input type="date" name="PaymentDate"  required placeholder="dd-mm-yyyy">
</br>
<label for="Email">Amount</label>
    <input type="text" name="Amount"  required placeholder="Amount">
    
			<label for="lname">Status:</label>

			<select type="text" name="Status" id="">
				<option value="1">Active</option>
				<option value="0">Inactive</option>
			
			</select>
       
       	<label for="lname">Note</label>
    <input type="text" name="Note" placeholder="Note....">


		  <div class="m-t-20 text-center">
          <button class="btn btn-primary submit-btn btn-rounded" type="submit" name="isp_customer_save">Save</button>
		  <button class="btn btn-primary submit-btn btn-rounded" type="reset" name=""  value="Clear Fields">Clear</button>
		  </div>
        </form>
     
    </div>
    </div>
	
  </body>
</html>
<script>


    $(function() {
		
     $('.notification').tooltip({
        selector: "[data-toggle=tooltip]",
        container: "body"
    })

    });
    </script>

