<!DOCTYPE html>
<script type="text/javascript" src="./horaris.json"></script>
<script type="text/javascript" src="./autocomplete.js"></script>
<script type="text/javascript" src="./completeLink.js"></script>
<script type="text/javascript" src="./completeSubjectListInHTML.js"></script>
<script type="text/javascript" src="./getTimeAndDate.js"></script>
<script type="text/javascript" src="./completeHTML.js"></script>
<script type="text/css" src="./autocomplete.css"></script>
<script type="text/css" src="./generalStyle.css"></script>
<meta charset="utf-8">

<html>
    <head>
    	<style type="text/css">
    		.myButton {
				box-shadow:inset 0px 1px 0px 0px #6e9eb8;
				background:linear-gradient(to bottom, #1a5b8c 5%, #4b84a3 100%);
				background-color:#1a5b8c;
				border:1px solid #22536e;
				display:inline-block;
				cursor:pointer;
				color:#ffffff;
				font-family:Arial;
				font-size:13px;
				font-weight:bold;
				padding:6px 12px;
				text-decoration:none;
			}
			.myButton:hover {
				background:linear-gradient(to bottom, #4b84a3 5%, #1a5b8c 100%);
				background-color:#4b84a3;
			}
			.myButton:active {
				position:relative;
				top:1px;
			}
			.myButton2 {
				box-shadow:inset 0px 1px 0px 0px #b30000;
				background:linear-gradient(to bottom, #ff1a1a 5%, #ff8080 100%);
				background-color:#ff6666;
				border:1px solid #990000;
				display:inline-block;
				cursor:pointer;
				color:#ffffff;
				font-family:Arial;
				font-size:13px;
				font-weight:bold;
				padding:6px 12px;
				text-decoration:none;
			}
			.myButton2:hover {
				background:linear-gradient(to bottom, #ff8080 5%, #ff1a1a 100%);
				background-color:#ff6666;
			}
			.myButton2:active {
				position:relative;
				top:1px;
			}
		</style>
    </head>
    <center>
	    <link rel="stylesheet" href="autocomplete.css">
	    <body>
	        <h1>App de traçabilitat DAFME</h1>
	        <h2 id = "assignatura"></h2>
	        <h3 id = "aula"></h3>
	        
	        <h2 id="hora">
	            <span id="inici"></span> -
	            <span id="fi"></span>
	        </h2>
	        <h3 id="data"></h3>

	        <form id="subjectListInput" autocomplete="off">
	            <div class="autocomplete" id="input2" style="width:300px;">
	                <input id="myInput" type="text" name="mySubject" placeholder="Subject">
	            </div>
	        </form>

	        <a class="myButton" onclick="completeSubjectList()">Afegeix</a>

	        <p id="alert" style="opacity: 0; color:red;"> 
				
			</p> 
	        <div id="subjectList"><b>Assignatures Cursades:</b></div>

	        <form>
	            <label for="seient" id="seient"></label><br>
	            <input type="text" id="seientInput" placeholder="Seient" style="width:300px;"><br>
	        </form>

			<form id = "link">
	        <!--<form id = "link" action = https://docs.google.com/forms/d/e/1FAIpQLSfT9o287VqLyhwR8LPdloAQWhuqCgA3NfdhgP5vb9_sVQHL-g/viewform?entry.1063142948=S03&entry.2115504093=2020-09-14&entry.1749141911=9:00&entry.1827359679=10:00&entry.208184485=Columna+3&entry.1600275159=[Autogenerat+per+delefme/covid-tracability]>-->

			<h2>
				<a class="myButton" type="reset" onclick="completaLink()">Continua</a>
				<a class="myButton2" onclick="completaLinkNoAnatClasse()">No he assistit a classe</a>
			</h2>
			</form>

			<a class="myButton" href="https://docs.google.com/forms/d/e/1FAIpQLSfT9o287VqLyhwR8LPdloAQWhuqCgA3NfdhgP5vb9_sVQHL-g/viewform">Hi ha errors? Completa formulari manualment</a>

	        <script>
	        	//localStorage.clear();

	        	var codisFiles = ["208184485", "1077148310", "642851281", "1686039024", "697835787", "1511799646", "809853432", "182597499", "1890539481", "529159478", "1615241874", "1334263875"];
	            var subjects = [];
	        	var linkOutput = "";      	
	        	var totesLesClasses = JSON.parse(classes);
	            var dataHorarisAlumne = [];
	            var hora_actual = new Date();
	            var minuts, dia, mes, any, data;

	            if(localStorage.dataHorarisAlumne != null) dataHorarisAlumne = JSON.parse(localStorage.dataHorarisAlumne);

	           	//localStorage.clear();
	            returnAllSubjectArray();
	            autocomplete(document.getElementById("myInput"), subjects);
	            getTimeAndDate();
	            completaHTML();
	            writeSubjectList();

	        </script>


	    </body>
	</center>
</html>
