﻿function GoogleSpreadSheetData()
{
    var self = this,
        jsonData = null;
    
    this.init = function(sheetName)
    {
        var url = '';
        url += 'http://spreadsheets.google.com/feeds/';
        url += 'list/';
        url += 'rO0SuytSkkXS9j_-cgESI_Q/';
        url += getSheetNum(sheetName);
        url += '/public/values';
        url += '?alt=json-in-script&callback=googleSpreadSheetDataCallback';

        var script = document.createElement('script');
        script.setAttribute('src', url);
        script.setAttribute('id', 'jsonScript');
        script.setAttribute('type', 'text/javascript');
        document.documentElement.firstChild.appendChild(script);
    }

    this.getData = function(cfg)
    {
        if (jsonData === null)
        {
            setTimeout(function(){self.getData(cfg)}, 100);
        }
        else{
            for (var i = 0; i < jsonData.feed.entry.length; i++) {
                var entry = jsonData.feed.entry[i];
                var section = entry.title.$t
                if (section === cfg.section) {
                    updateElementContent(cfg.elementId, entry.content.$t);
                }
            }
        }
    }

    this.callback = function(_jsonData)
    {
        jsonData = _jsonData;        
    }

    var getSheetNum = function(sheetName)
    {
        var sheetNum;
        switch (sheetName) {
            case "Homepage":
                sheetNum = 1;
                break;
            case "General Info":
                sheetNum = 2;
                break;
            case "About":
                sheetNum = 3;
                break;
        }
        return sheetNum;
    }
    
    var updateElementContent = function(elementId, content)
    {
        var element = YUD.get(elementId);
        content = content.replace("content:", "");
        if (element.tagName !== "IMG"){
           element.innerHTML = content; 
        }
        else{
           element.src = content; 
        }
        
    }
}
