eb5b331f3b79a4db6d06369961da120d458953d0
[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   load(
32     "http://home.gibm.ch/interfaces/133/klassen.php?beruf_id=" + jobId,
33     function( res ){
34       model.classes = {
35         list: JSON.parse( res ),
36         loadCalendar: loadCalendar
37       };
38     },
39     console.error
40   );
41 }
42
43 function loadCalendar(){
44   classId = this.value;
45   model.calendar = null;
46   load(
47     "http://home.gibm.ch/interfaces/133/tafel.php?klasse_id=" + classId,
48     function( res ){
49       model.calendar = {
50         events: JSON.parse( res )
51       };
52     },
53     console.error
54   );
55 }
56
57 model.jobs = null;
58 load("http://home.gibm.ch/interfaces/133/berufe.php", function( res ){
59   model.jobs = {
60     list: JSON.parse( res ),
61     loadClasses: loadClasses
62   };
63 },console.error);