
var g = new Graph();


updateLink = function(event) {
    var sURI = event.target.parentNode.ref.subject;
var link = document.getElementById('linkA');     
    if(event.target.checked) {
        link.setAttribute('href', link.getAttribute('href') + "," + sURI);
    } else {
        var href = link.getAttribute('href');
        newHref = href.replace(',' + sURI, '');
        link.setAttribute('href', newHref);
    }

}


bookDisplay = {
    
    create: function (s) {
        var sDiv = document.createElement('div');
        sDiv.ref = s;
        sDiv.setAttribute('class', 'bookDisplay');
        
        var thumb = document.createElement('img');
        thumb.setAttribute('src', s.getFirstObj4Pred('foaf:thumbnail'));
        sDiv.appendChild(thumb);
        
        var chkBox = document.createElement('input');
        chkBox.setAttribute('type', 'checkbox');
        chkBox.onclick = updateLink;
        sDiv.appendChild(chkBox);
        
        
        var titleP = document.createElement('p');
        titleP.appendChild(document.createTextNode(s.getTitle()));
        sDiv.appendChild(titleP);
        
        
        
        return sDiv;
    }
};

stThingDisplay = {
    create: function (s) {
        var sDiv = document.createElement('div');
        sDiv.ref = s;
        sDiv.setAttribute('class', 'sConfirm');
        var chkBox = document.createElement('input');
        chkBox.setAttribute('type', 'checkbox');
        chkBox.onclick = updateLink;
        sDiv.appendChild(chkBox);
        
        
        var lblP = document.createElement('p');
        var title = s.getTitle();
        lblP.appendChild(document.createTextNode(title));
        
        
        sDiv.appendChild(lblP);
        
        var ico = s.getFirstObj4Pred('http://www.w3.org/1999/xhtml/vocab#icon');
        if (ico) {
            var icoImg = document.createElement('img');
            icoImg.setAttribute('src', ico);
            lblP.appendChild(icoImg);
        }
        
        var desc = s.getFirstObj4Pred('dcterms:description');
        if (desc) {
            
            var toggleDescP = document.createElement('p');
            toggleDescP.appendChild(document.createTextNode('Show Description'));
            toggleDescP.onclick = this .toggleDescAction;
            toggleDescP.setAttribute('class', 'option');
            
            sDiv.appendChild(toggleDescP);
            var descP = document.createElement('p');
            descP.setAttribute('class', 'description');
            descP.appendChild(document.createTextNode(desc));
            descP.style.display = 'none';
            sDiv.appendChild(descP);
        }
        return sDiv;
    },
    
    
 
    toggleDescAction: function(event) {
        var descP = event.target.parentNode.getElementsByTagName('p')[2];

        switch(descP.style.display) {
            case 'block' :
                descP.style.display = 'none';
                event.target.replaceChild(document.createTextNode('Show Description') , event.target.firstChild );
            break;
            
            case 'none' :
            case '': 
                descP.style.display = 'block';
                event.target.replaceChild( document.createTextNode('Hide Description'), event.target.firstChild);
            break;
        
        }
    }    
    
};

init = function() {
    
    g.importJSON(graph);
    var bkSubjects = g.extractSubjectsOfType('skos:Concept', false);
    bkSubjects.sortByLabel();
    var stThings = g.extractSubjectsOfType('geg:StudyThing', false);
    stThings.sortByLabel();
    var books = g.extractSubjectsOfType('bibo:Book', false);
    books.sortByLabel();
    var bksContainer = document.getElementById('booksList');
    for (var s in books.subjects) {
        var newDiv = bookDisplay.create(books.subjects[s]);
        bksContainer.appendChild(newDiv);
    }
    var stThingsContainer = document.getElementById('studyThingsList');
    for (var s in stThings.subjects) {
        var subject = stThings.subjects[s];
        if (! subject.hasPO('rdf:type', 'bibo:Book') ) {
        
            var newDiv = stThingDisplay.create(subject);
            stThingsContainer.appendChild(newDiv);
        }
    }
    
    var bkSubjectsContainer = document.getElementById('bkSubjectsList');
    for (var s in bkSubjects.subjects) {
        var newDiv = stThingDisplay.create(bkSubjects.subjects[s]);
        bkSubjectsContainer.appendChild(newDiv);
    }    
    
    
    
}