cca04e4b41afc9670280ba8b56b7d0fa41df66d5
[knw_133/.git] / js / main.js
1 model=window.model||{};
2
3 function load(path,onload,onerror){
4   onerror = onerror||function(){};
5   var xhr = new XMLHttpRequest();
6   xhr.onload = function(){
7     if( this.status != 200 ){
8       onerror( this.responseText, this.status );
9     }else{
10       onload( this.responseText );
11     }
12   };
13   function errorHandler( e ){
14     onerror( (e||e.error).stack );
15   }
16   xhr.onerror = errorHandler;
17   try {
18     xhr.open("GET",path,true);
19     xhr.send();
20   } catch( e ) {
21     errorHandler(e);
22   }
23 }
24
25 var jobId = null;
26 var classId = null;
27
28 function loadClasses(){
29   jobId = this.value;
30   model.classes = null;
31   model.calendar = null;
32   load(
33     "http://home.gibm.ch/interfaces/133/klassen.php?beruf_id=" + jobId,
34     function( res ){
35       model.classes = {
36         list: JSON.parse( res ),
37         loadCalendar: loadCalendar
38       };
39     },
40     console.error
41   );
42 }
43
44 function loadCalendar(){
45   classId = this.value;
46   model.calendar = null;
47   load(
48     "http://home.gibm.ch/interfaces/133/tafel.php?klasse_id=" + classId,
49     function( res ){
50       model.calendar = {
51         events: JSON.parse( res )
52       };
53     },
54     console.error
55   );
56 }
57
58 model.jobs = null;
59 load("http://home.gibm.ch/interfaces/133/berufe.php", function( res ){
60   model.jobs = {
61     list: JSON.parse( res ),
62     loadClasses: loadClasses
63   };
64 },console.error);