﻿<!--
    /* Loads the Google data JavaScript client library */
    google.load("gdata", "1");
  
    function getClockTime(myTimeIn) {
        var myTime = new Date(myTimeIn);
        var hour = myTime.getHours();
        var minute = myTime.getMinutes();
        var second = myTime.getSeconds();
        var ap = "AM";
        if (hour > 11) { ap = "PM"; }
        if (hour > 12) { hour = hour - 12; }
        if (hour == 0) { hour = 12; }
        if (hour < 10) { hour = "0" + hour; }
        if (minute < 10) { minute = "0" + minute; }
        if (second < 10) { second = "0" + second; }
        var timeString = hour +
                    ':' +
                    minute +
                    ':' +
                    second +
                    " " +
                    ap;
        return timeString;
    } 

    
    function init() {
        // init the Google data JS client library with an error handler
        google.gdata.client.init(handleGDError);
        // load the code.google.com developer calendar
         var feedUrl = "https://www.google.com/calendar/feeds/0bdst5eev5ajdmhpbb8dp21ha4%40group.calendar.google.com/public/full";

        loadCalendarByAddress(feedUrl);
    }


    /**
    * Adds a leading zero to a single-digit number.  Used for displaying dates.
    */
    function padNumber(num) {
        if (num <= 9) {
            return "0" + num;
        }
        return num;
    }

    /**
    * Determines the full calendarUrl based upon the calendarAddress
    * argument and calls loadCalendar with the calendarUrl value.
    *
    * @param {string} calendarAddress is the email-style address for the calendar
    */
    function loadCalendarByAddress(calendarAddress) {
       
        var calendarUrl = calendarAddress;
        loadCalendar(calendarUrl);

   
    }

    /**
    * Uses Google data JS client library to retrieve a calendar feed from the specified
    * URL.  The feed is controlled by several query parameters and a callback 
    * function is called to process the feed results.
    *
    * @param {string} calendarUrl is the URL for a public calendar feed
    */
    function loadCalendar(calendarUrl) {
        var service = new 
      google.gdata.calendar.CalendarService('gdata-js-client-samples-simple');
        var query = new google.gdata.calendar.CalendarEventQuery(calendarUrl);
        query.setOrderBy('starttime');
        query.setSortOrder('ascending');
        query.setFutureEvents(true);
        query.setSingleEvents(true);
        query.setMaxResults(8);

        service.getEventsFeed(query, listEvents, handleGDError);
    }

    /**
    * Callback function for the Google data JS client library to call when an error
    * occurs during the retrieval of the feed.  Details available depend partly
    * on the web browser, but this shows a few basic examples. In the case of
    * a privileged environment using ClientLogin authentication, there may also
    * be an e.type attribute in some cases.
    *
    * @param {Error} e is an instance of an Error 
    */
    function handleGDError(e) {
        document.getElementById('jsSourceFinal').setAttribute('style','display:none');
        if (e instanceof Error) {
            /* alert with the error line number, file and message */
            alert('Error at line ' + e.lineNumber + ' in ' + e.fileName + '\n' + 'Message: ' + e.message);
            /* if available, output HTTP error code and status text */
            if (e.cause) {
                var status = e.cause.status;
                var statusText = e.cause.statusText;
                alert('Root cause: HTTP error ' + status + ' with status text of: ' +
            statusText);
            }
        } else {
            alert(e.toString());
        }
    }

    /**
    * Callback function for the Google data JS client library to call with a feed 
    * of events retrieved.
    *
    * Creates an unordered list of events in a human-readable form.  This list of
    * events is added into a div called 'events'.  The title for the calendar is
    * placed in a div called 'calendarTitle'
    *
    * @param {json} feedRoot is the root of the feed, containing all entries 
    */
    function listEvents(feedRoot) {
        var entries = feedRoot.feed.getEntries();
        var eventDiv = document.getElementById('events');
//        if (eventDiv.childNodes.length > 0) {
//            eventDiv.removeChild(eventDiv.childNodes[0]);
//        }
        /* create a new unordered list */
        //var ul = document.createElement('ul');
        /* set the calendarTitle div with the name of the calendar */
        
        //title not needed at this time
        ///document.getElementById('calendarTitle').innerHTML = "Calendar: " + feedRoot.feed.title.$t;
        
        /* loop through each event in the feed */
        var len = entries.length;

        //alert(len);

        for (var i = 0; i < len; i++) {
            var entry = entries[i];
            var title = entry.getTitle().getText();
            var description = entry.content.$t
            var startDateTime = null;
            var startJSDate = null;
            var times = entry.getTimes();
            if (times.length > 0) {
                startDateTime = times[0].getStartTime();
                startJSDate = startDateTime.getDate();
            }
            var entryLinkHref = null;
            if (entry.getHtmlLink() != null) {
                entryLinkHref = entry.getHtmlLink().getHref();
            }



            var dateString = (startJSDate.getMonth() + 1) + "/" + startJSDate.getDate() + "/" + startJSDate.getFullYear();
            
            if (!startDateTime.isDateOnly()) {


                var finalTime = startJSDate.getHours() + ":" + padNumber(startJSDate.getMinutes());

                //alert(dateString);
                finalTime = dateString + " " + finalTime;
                //alert(dateString);
            finalTime = getClockTime(finalTime);

            
                dateString += " " + finalTime;
           
            }

            events.innerHTML += '<strong><span style="font-size:smaller;">' + dateString + '</span><br />' + title + '</strong><br />' + description + '<br /><br />';

        }
        
    }

    google.setOnLoadCallback(init);
//-->
