Event feed (with locations)

by Laura Kishimoto

HTML

<link rel="stylesheet" href="http://images.mec.ca/media/css/mec_styles_v2_m56577569831229568.css">
<div id="eventfeed" class="fr-CA"></div>

CSS

#eventfeed { clear: both; text-align: left; width: 200px; background: url('http://mediaroom.mec.ca/test/events/feed_background.png') top left no-repeat; padding: 10px; }
#eventfeed h2 { margin: 6px 0; color: #00853F; }
#eventfeed ul { padding-left: 0px; margin-bottom: 0; list-style: none; }
#eventfeed li { position: relative; min-height: 35px; padding: 0 0 10px 33px; margin: 0; border: 0; }
#eventfeed p { margin: 0; }
#eventfeed .eventtitle a { font-weight: bold; }
#eventfeed .eventdate { position: absolute; top: 2px; left: 0; width: 25px; text-align: center; }
#eventfeed .eventday { color: #00853F; font-size: 18px; line-height: 100%; font-weight: bold; }
#eventfeed .eventmonth { text-transform: uppercase; font-size: 10px; line-height: 100%; }
#eventfeed .eventdescription { font-size: 11px; margin: 5px 0 0 0; line-height: 14px; }
#eventfeed .eventfooter a { clear: both; font-size: 11px; }

JavaScript

function eventtest(title,feed,link) {
    
    $.getJSON(feed,printevents);

    var enmonths = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
    var frmonths = ["jan", "fév", "mar", "avr", "mai", "jun", "jul", "aoû", "sep", "oct", "nov", "déc"];
    
    // checks if page is on the FR site
    function isfrench() {
        return $('.fr-CA').length;
    }
    
    // chooses FR or EN months
    function month(month) {
        if (isfrench()) {
            return frmonths[month];
        }
        return enmonths[month];
    }
    
    // chooses FR or EN event link
    function whichsite() {
        if (isfrench()) {
            return 'evenements';
        }
        return 'events';
    }
    
    // trims description to 65 characters
    function trim(description) {
        return $.trim(description).substring(0, 65).split(" ").slice(0, -1).join(" ") + "...";
    }
    
    // chooses FR or EN link text
    function seeall() {
        if (isfrench()) {
            return '<p class="eventfooter"><a href="' + link + '">Tout afficher</a></p>';
        }
        return '<p class="eventfooter"><a href="' + link + '">See all events</a></p>';
    }
    
    // prints HTML on the page
    function printevents(data) {
        if (data.length) {
            
            // inserts feed title
            $("#eventfeed").append('<h2 class="nomargin">' + title + '</h2>\n<ul>\n</ul>');
            
            // prints each event
            for (var i = 0; i < data.length; i++) {
                
                // fixes date format for IE and Safari
                var rawdate = $.trim(data[i].node_data_field_event_date_field_event_date_value).substring(0, 10).split("-");
                var eventdate = new Date(rawdate[0], rawdate[1]-1, rawdate[2]);
    
                $("#eventfeed ul").append(
                    '<li>\n' + 
                    '<div class="eventdate">\n' + 
                    '<p class="eventday">' +...