/**
  * Returns the GCalendar timezone offset in seconds. The given
  * date is used to be DST compatible.
  *
  * @param $date
  * @return offset in seconds
  */
 function getGCalendarTZOffset($date = null)
 {
     static $tzs;
     if ($tzs == null) {
         $tzs = parse_ini_file(JPATH_SITE . DS . 'components' . DS . 'com_gcalendar' . DS . 'models' . DS . 'timezones.ini');
     }
     $tz = GCalendarUtil::getComponentParameter('timezone');
     $offset = '00:00';
     if (!empty($tz)) {
         $offset = $tzs[$tz];
     }
     if ($date == null) {
         $date = time();
     }
     $dst = GCalendarModelJSONFeed::isDST($date) ? 1 : 0;
     $gcalendarOffset = ((int) substr($offset, 1, 3) - $dst) * 60 + substr($offset, 3);
     $gcalendarOffset = substr($offset, 0, 1) == '-' ? -1 * $gcalendarOffset : $gcalendarOffset;
     return $gcalendarOffset * 60;
 }
    }
    $requestedDayStart += $SECSINDAY;
    $isDST = GCalendarModelJSONFeed::isDST($requestedDayStart, $serverTz);
    $dstAdjustment = 0;
    if ($wasDSTStart && !$isDST) {
        $dstAdjustment = 3600;
        $wasDSTStart = $isDST;
    } else {
        if (!$wasDSTStart && $isDST) {
            $dstAdjustment = -3600;
            $wasDSTStart = $isDST;
        }
    }
    $requestedDayStart += $dstAdjustment;
    $requestedDayEnd = $requestedDayStart + $SECSINDAY;
    $isDST = GCalendarModelJSONFeed::isDST($requestedDayEnd, $serverTz);
    $dstAdjustment = 0;
    if ($wasDSTEnd && !$isDST) {
        $dstAdjustment = 3600;
        $wasDSTEnd = $isDST;
    } else {
        if (!$wasDSTEnd && $isDST) {
            $dstAdjustment = -3600;
            $wasDSTEnd = $isDST;
        }
    }
    $requestedDayEnd += $dstAdjustment;
}
echo json_encode($data);
?>