| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Program Files (x86)/Mail Enable/Bin/NETWebMail/Mondo/lang/sys/Forms/CAL/ |
Upload File : |
<%@ Page Language="vb" AutoEventWireup="false" Inherits="MailEnable.Clients.WebMail.Mondo.DayPicker" CodeBehind="DayPicker.aspx.vb"%>
<%@ Register TagPrefix="uc1" TagName="uscStyleHeader" Src="../../../Controls/uscStyleHeader.ascx" %>
<%@ Register TagPrefix="uc1" TagName="uscAccess" Src="../../../Controls/uscAccess.ascx" %>
<%@ Register TagPrefix="uc1" TagName="ScriptsInclude" Src="../../../Controls/ScriptsInclude.ascx" %>
<%@ Register TagPrefix="uc2" TagName="uscLanguageTokenMondo" Src="../../../Controls/uscLanguageToken.ascx" %>
<uc2:uscLanguageTokenMondo id="uscToken" runat="server"></uc2:uscLanguageTokenMondo>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><%=uscToken.GetText("[ME_TXT-Calendar]")%></title>
<meta name="vs_defaultClientScript" content="JavaScript" />
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="<% =session("skin") %>cal.css" />
<uc1:uscstyleheader id="UscStyleHeader1" runat="server"></uc1:uscstyleheader>
<uc1:ScriptsInclude id="ScriptsInclude" runat="server"></uc1:ScriptsInclude>
<!--[if lte IE 7]>
<style type="text/css">
.bttn_toolbar_primary_left {float:left;}
.bttn_toolbar_primary_right {float:left;}
.bttn_small_right {float:left;}
</style>
<![endif]-->
</head>
<body onload="PageLoad();" style="background-color:Transparent;">
<div class="bodyCol_calendar_shell_inner">
<div id="calendarNavigationLocation"></div>
<div class="datePicker_table_gap"></div>
<div class="bodyCol_calendar_shared" id="divSharedCalendars">
<div class="calendar_shared_head"><%=uscToken.GetText("[ME_TXT-SharedCalendars]")%>:</div>
<table id="tblSharedCalendars" class="calendar_shared_table" border="0" cellspacing="0" cellpadding="0">
<tbody>
</tbody>
</table>
</div>
</div><!-- bodyCol_calendar_shell_inner -->
</body>
<script type="text/javascript" language=JavaScript>
<!--
var gSourceURI = "";
var gShareURI = '<%= EscapeJS(ParseRequestArgument("URI")) %>'; // slightly different to gSourceURI; see below
var gSelectedDateString = "";
var gSensitivity = -1;
var calendarNavigation = null;
var gLoaded = false;
var gAllowPageActions = true;
var gBrowserType = GetBrowserType();
var arrColors = ['#82CAFA', '#A5BA75', '#E0A396', '#FAF3A0', '#A5CEDC', '#D0B36F', '#DB8AA9', '#93BD93', '#F2D426', '#8C9AC0', '#9AE7C2', '#FFA1A1'];
function Async_LockUI()
{
// disable any controls that allow navigation/change of state
try
{
//document.getElementById('calendarNavigationLocation').disabled = true;
} catch(ex){}
gAllowPageActions = false;
}
function Async_UnlockUI()
{
// enable any controls that may have been locked
try
{
//document.getElementById('calendarNavigationLocation').disabled = false;
} catch(ex){}
gAllowPageActions = true;
}
function ServerRequest(sCommand, sData, bUseCallback, sFrameName)
{
var sURI = "";
if ( gSourceURI && gSourceURI.length > 0 )
{
sURI = '&URI=' + gSourceURI;
}
if (sURI && sURI.length > 0)
{
sData = sData + sURI;
}
return LIBAjax_ServerRequest(sCommand, sData, bUseCallback, sFrameName);
}
function ServerPost(sCommand, sData, bUseCallback, sFrameName)
{
return LIBAjax_ServerPost(sCommand, sData, bUseCallback, sFrameName);
}
function ProcessXMLResult(responseXML, FrameName)
{
var oBaseNode = null;
var oSchema = null;
var oMethod = null;
var oBatchNode = null;
var sSchema = "";
var sMethod = "";
oBatchNode = responseXML.getElementsByTagName("BATCH")[0];
if (oBatchNode)
{
//
// We have to process the Batch results...
//
var sBatchXML = GetXMLValue(oBatchNode);
var lBatchLen = 0;
var oLength;
oSchema = oBatchNode.attributes.getNamedItem('SCHEMA');
oMethod = oBatchNode.attributes.getNamedItem('METHOD');
oLength = oBatchNode.attributes.getNamedItem('LENGTH');
if (oSchema)
{
sSchema = GetXMLValue(oSchema);
}
if (oMethod)
{
sMethod = GetXMLValue(oMethod);
}
if (oLength)
{
lBatchLen = GetXMLValue(oLength);
}
if (sSchema == "RESULTS")
{
for (var i=0; i < lBatchLen; i++)
{
oBaseNode = oBatchNode.getElementsByTagName("BASEELEMENT")[i];
oSchema = oBaseNode.attributes.getNamedItem('SCHEMA');
oMethod = oBaseNode.attributes.getNamedItem('METHOD');
if (oSchema)
{
sSchema = GetXMLValue(oSchema);
}
if (oMethod)
{
sMethod = GetXMLValue(oMethod);
}
if (sSchema == "RESULT")
{
if (sMethod == "GET-FREEBUSY")
{
ProcessFreeBusyDays(oBaseNode);
}
}
}
}
}
else
{
// Process a normal result XML
oBaseNode = responseXML.getElementsByTagName("BASEELEMENT")[0];
oSchema = oBaseNode.attributes.getNamedItem('SCHEMA');
oMethod = oBaseNode.attributes.getNamedItem('METHOD');
if (oSchema)
{
sSchema = GetXMLValue(oSchema);
}
if (oMethod)
{
sMethod = GetXMLValue(oMethod);
}
if (sSchema == "RESULT")
{
if (sMethod == "LIST-CONNECTIONS")
{
ProcessCalendarSharesList(oBaseNode);
}
if (sMethod == "GET-FREEBUSY")
{
ProcessFreeBusyDays(oBaseNode);
}
}
if (sSchema == 'OPTIONS')
{
ProcessOptionsResult(oBaseNode);
}
}
return true;
}
function IsCalendarShareSelected(Mailbox)
{
// this function returns true if the specified shared mailbox has been previously selected
// for display and is currently set in the session state.
if (Mailbox == t_('[ME_TXT-MyCalendar]'))
{
// special case of checking whether our own calendar is showing or not
return '<%= Session("ShowingOwnCalendar") %>' == 'True';
}
var sSharedCals = '<%=EscapeJS(Session("SharedCals"))%>';
var sSearchStr = Mailbox + "|";
if (sSharedCals.length == 0)
return false;
return (sSharedCals.indexOf(sSearchStr,0) != -1);
}
function AddConnectedCalendar(calendarName, sURI, sDescription, sSelectedURIs, sAccessLevel)
{
var ConnectionNumber = $('#tblSharedCalendars tr').length;
if ((!sDescription) || (sDescription == ''))
{
sDescription = calendarName;
}
var sCol = '';
if (ConnectionNumber < arrColors.length)
{
sCol = arrColors[ConnectionNumber];
}
else
{
sCol = RandomColour("hex");
}
var bIsSelected = false;
if (sSelectedURIs && (sSelectedURIs.length > 0)) {
bIsSelected = (sSelectedURIs.indexOf(sURI) >= 0);
} else {
IsCalendarShareSelected(sURI);
}
if (sAccessLevel && (sAccessLevel == 'F')) {
sAccessLevel = ''; //mark as blank text for neatness
}
var sId = $("#tblSharedCalendars input:checkbox").length;
$('#tblSharedCalendars tbody').append('<tr><td class="calendar_shared_table_checkbox"><input id="chk_share_' + sId + '" type="checkbox" name="chk_share_' + sId + '" value="' + sURI + '|' + sCol + '"' + (bIsSelected ? ' checked="checked"' : '') + ' onclick="ShowSelectedCalendars();"></input></td><td><label for="chk_share_' + sId + '" title="' + sURI + '">' + sDescription + '</label></td><td class="calendar_shared_table_color"><div class="calendar_shared_color" style="text-align:center;background-color:' + sCol + '">' + sAccessLevel + '</div></td></tr>');
$('#tblSharedCalendars tr:last').data('URI', calendarName);
$('#divSharedCalendars').show();
}
function InitCalendarSharesList() {
// lets add the list of calendar connections that we have access to
if ($('#tblSharedCalendars tbody').length == 0) {
$('#tblSharedCalendars').append('<tbody></tbody>');
}
else {
$('#tblSharedCalendars tbody').empty();
}
}
function ProcessCalendarSharesList(BaseNode)
{
for (var i = 0; i < BaseNode.childNodes.length; i++)
{
var ShareNode = BaseNode.childNodes[i];
var sURI = GetXMLValue(ShareNode.getElementsByTagName("URI")[0]);
var sMailbox = GetXMLValue(ShareNode.getElementsByTagName("MAILBOX")[0]);
var sResourceName = GetXMLValue(ShareNode.getElementsByTagName("RESOURCE_NAME")[0]);
var sClass = GetXMLValue(ShareNode.getElementsByTagName("CLASS")[0]);
if ((sResourceName.toLowerCase == 'calendar') || (sResourceName == '/') || (sClass == 'IPF.Appointment'))
{
var calendarURI = sURI;
if (sResourceName == '/')
{
calendarURI += 'Calendar';
}
AddConnectedCalendar(calendarURI, sMailbox, sMailbox,null,'F');
}
}
ShowSelectedCalendars();
}
function getSharedCalendarArray()
{
var calendars = [];
$('#tblSharedCalendars input:gt(0)').filter(function() { return this.checked; }).each(function()
{
calendars.push(this.value);
});
return calendars;
}
function GetSelectedCalendarsParameters()
{
var ShowMine = '1';
// first, make sure they haven't unticked them all
if ($('#tblSharedCalendars input').filter(function() { return this.checked; }).length == 0)
{
// if they have, select their own
$('#tblSharedCalendars input:first').prop('checked', true);
}
// iterate through our list of checkboxes and aggregate a list of
// selected calendars.
var SharedCalsList = '';
$('#tblSharedCalendars input:gt(0)').filter(function() { return this.checked; }).each(function()
{
if (SharedCalsList != '')
{
SharedCalsList += '::';
}
SharedCalsList += this.value;
});
if ($('#tblSharedCalendars input:first').prop('checked') != undefined) {
ShowMine = $('#tblSharedCalendars input:first').prop('checked') ? '1' : '0';
}
else {
//no shares listed, so only show self (or check the URI);
}
var sURL = 'ShowMine=' + ShowMine;
if (SharedCalsList) {
sURL += ('&SharedCals=' + encodeURIComponent(SharedCalsList));
}
return sURL;
}
function ShowSelectedCalendars()
{
var curTime = (new Date()).getTime();
gShareURI = "";
GetFreeBusyDays(calendarNavigation.getDisplayedMonth());
var appointmentsLocation = '<%=gFormsPath%>CAL/Appointments.aspx?';
var sURL = appointmentsLocation + GetSelectedCalendarsParameters();
//update the URL and reload the entire frame
var sFirstURI = GetFirstCalendarURIParameter();
if (sFirstURI) {
sURL += ('&' + GetFirstCalendarURIParameter());
}
if (window.parent.frames['frameAppointments'].CalendarMode) {
sURL += ('&' + 'Mode=' + window.parent.frames['frameAppointments'].CalendarMode);
}
sURL += ('&TS=' + curTime);
window.parent.frames['frameAppointments'].location = sURL;
}
function GetFreeBusyDays(MonthDate)
{
var sData = ""
var oStartDate = null;
var oEndDate = null;
var sStartDate, sEndDate;
var sURI = "";
oStartDate = MonthDate;
oEndDate = new Date(oStartDate);
oEndDate.setMonth(oEndDate.getMonth() + 3);
sStartDate = formatDate(oStartDate, "yyyy-MM-dd") + '-00-00';
sEndDate = formatDate(oEndDate, "yyyy-MM-dd") + '-00-00';
sData += 'StartDate=' + encodeURIComponent(sStartDate);
sData += '&EndDate=' + encodeURIComponent(sEndDate);
sData += '&Interval=' + (60*24);
// show the free busy days of the first selected calendar (usually your own, but what if its not?)
var sURI = GetFirstCalendarURIParameter();
if (sURI != '')
{
sData += '&' + sURI;
}
ServerRequest("GET-FREEBUSY", sData, true, 'frameCalendar');
}
function ProcessFreeBusyDays(BaseNode)
{
var ItemsNodeList = BaseNode.getElementsByTagName('ITEM');
var NumItems = ItemsNodeList.length;
var ItemIndex = 0;
for (ItemIndex=0;ItemIndex < NumItems; ItemIndex++)
{
var ItemNode = ItemsNodeList[ItemIndex];
var sFreeBusyData = GetXMLValue(ItemNode.getElementsByTagName('FREEBUSY')[0]);
var sStartDate = GetXMLValue(ItemNode.getElementsByTagName('STARTDATE')[0]);
var sEndDate = GetXMLValue(ItemNode.getElementsByTagName('ENDDATE')[0]);
var oDate = getDateTimeObjectFromDateString(sStartDate)
for (var i = 0; i < sFreeBusyData.length; i++)
{
var busy = false;
switch (sFreeBusyData.charAt(i))
{
case '1': case '2': case '3': busy = true;
}
calendarNavigation.setDateState(oDate, 'busy', busy);
oDate.setDate(oDate.getDate() + 1);
}
}
}
function UpdateFreeBusyDays(DateString)
{
var date = null;
if (DateString != undefined) {
date = getDateTimeObjectFromDateString(DateString);
date.setDate(1); // set date to be 1st day of month
}
else {
date = calendarNavigation.getDisplayedMonth();
}
if (date != null) {
GetFreeBusyDays(date);
}
}
function IsSharedResource(sItem) {
return sItem.match(/^Root-Shares\/Mailbox-[^/].*$/i);
}
function AddMailboxCalendarFolders(sSelectedURIs) {
//adds all the folders except the contacts folder.
var cl = {};
var taw = getTopAppWindow();
taw.fetchFoldersByClass(cl, 'IPF.Appointment'); //gets from the server
taw.getFoldersByClass(cl,'IPF.Appointment'); //this merges the ones in the tree (which includes connections to shares)
if (cl) {
for (var key in cl) {
var sURI = cl[key].URI;
var sDisplayPath = sURI;
if (sURI == null) {
sDisplayPath = cl[key].RelativeFolderPath;
if ((cl[key].RelativePathOnDisk!=null) && (cl[key].RelativePathOnDisk.length > 0)){
sURI = cl[key].RelativePathOnDisk;
} else {
sURI = cl[key].RelativeFolderPath;
}
}
var IsMine = (taw.NormaliseResourcePath(sURI) == '/Calendar') && (!IsSharedResource(key));
if (!IsMine)
{
var sAccessLevel = cl[key].AccessLevel;
if (sAccessLevel == null) {
sAccessLevel = '';
}
var arr = getTopAppWindow().ParseURI(sDisplayPath);
var sDescription = '';
if (arr[2] != '') {
sDescription = '[' + arr[2] + ']'
if ((arr.length > 2) && (arr[3] != '')) {
var sDisplayFolderPath = cl[key].RelativeFolderPath || arr[3];
sDescription += ' ' + sDisplayFolderPath.replace(/'/g, "\\'");
}
} else {
sDescription = arr[3];
}
AddConnectedCalendar(sURI, sURI, sDescription, sSelectedURIs, sAccessLevel);
}
}
}
}
function ListSharedCalendars(sSelectedURIs)
{
//sURI contains the selected calendar. Mine is nominated as Mine, others are in the form of SF:
$('#divSharedCalendars').hide();
InitCalendarSharesList();
AddConnectedCalendar('Mine', t_('[ME_TXT-MyCalendar]'), t_('[ME_TXT-MyCalendar]'),null,'F');
AddMailboxCalendarFolders(sSelectedURIs);
//ListShares(); // from LIBShares.js
ShowSelectedCalendars();
}
function PageLoad()
{
var calendarNavigationLocation = document.getElementById('calendarNavigationLocation');
var oCurrDate = new Date();
gSelectedDateString = formatDate(oCurrDate, "yyyy-MM-dd");
calendarNavigation = new DatePicker('calendarNavigation', calendarNavigationLocation,
dateSelected, GetFreeBusyDays, ME_DP_MONDAY, dayTokens, monthTokens, 3);
calendarNavigation.todayButtonText = t_('[ME_TXT-Today]');
calendarNavigation.selectionButtonText = t_('[ME_TXT-Selection]');
calendarNavigation.selectNoneButtonText = t_('[ME_TXT-None]');
calendarNavigation.prepare();
calendarNavigation.addDayState('busy', 'datePicker_date_busy');
calendarNavigation.disableSelectNoneButton();
calendarNavigation.show();
document.onmouseup = doup;
document.onmousemove = domove;
var taw = null;
if (!taw) {
taw = getTopAppWindow();
}
var URI = taw.getParameterByName('URI', window.location.href);
if (getTopAppWindow().g_opt['SharingEnabled'])
{
//get the shared calendars from the tree
ListSharedCalendars(URI);
if (URI && (URI.length > 0))
{
ShowSharedCalendar(taw.NormaliseResourcePath(URI));
}
}
else
{
$('#divSharedCalendars').hide();
ShowSelectedCalendars();
}
gLoaded = true;
BrowserResize();
addEvent(window, 'resize', BrowserResize, true);
}
function dateSelected(date)
{
gSelectedDateString = formatDate(date, "yyyy-MM-dd");
getTopAppWindow().gOptions['CalendarDate'] = gSelectedDateString;
window.parent.frames['frameAppointments'].location = 'appointments.aspx?' + GetSelectedCalendarsParameters() + '&Date=' + gSelectedDateString + '&Mode=Day' + '&Sensitivity=-1';
}
function ShowSharedCalendar(URI)
{
// make sure the shared calendar requested exists
var RequestedRow = $('#tblSharedCalendars tr').filter(function() {return $(this).data('URI') == URI; });
if (RequestedRow.length == 1)
{
// unselect all
$('#tblSharedCalendars input').prop('checked', false);
// select the requested one
RequestedRow.find('input').prop('checked', true);
// and show it
ShowSelectedCalendars();
}
}
function setSelectedDate(dateString)
{
// dateString is yyyy-MM-dd
gSelectedDateString = dateString; // in the format of 'yyyy-MM-dd'
var dateElements = dateString.split('-');
if (dateElements.length >= 3)
{
var year = dateElements[0];
var month = dateElements[1] - 1;
var day = dateElements[2];
var date = new Date(year, month, day);
calendarNavigation.setSelectedDate(date);
calendarNavigation.displaySelectedMonth();
}
}
function GetFirstCalendarURIParameter()
{
var sURL = '';
var firstCalendar = $('#tblSharedCalendars input:checked:first').closest('tr').data('URI');
if (firstCalendar && firstCalendar != 'Mine')
{
sURL = 'URI=' + encodeURIComponent(firstCalendar);
}
return sURL;
}
function CreateAppointment()
{
// we need to pass the selected date ('yyyy-MM-dd-hh-mm') across to the compose page
if (!gSelectedDateString)
{
gSelectedDateString = formatDate(new Date(), "yyyy-MM-dd");
}
var iTS = (new Date()).getTime();
var sURL = 'compose.aspx?Mode=Add&Date=' + gSelectedDateString;
// create the appointment in the first selected shared calendar (usually your own, unless you are viewing only someone elses)
var sURI = GetFirstCalendarURIParameter();
if (sURI != '')
{
sURL += '&' + sURI;
}
if (getTopAppWindow().GetOption('WebMail-AllowNewWindows'))
{
OpenNewWindow(sURL, 660, 660);
}
else
{
window.parent.frames['frameAppointments'].location = sURL;
}
}
function RemoveSharedCalendar(sURI)
{
$('#tblSharedCalendars tr').filter(function() { return $(this).data('URI') == sURI; }).remove();
if ($('#tblSharedCalendars tr').length <= 1)
{
// no more shared calendars, hide the div
$('#divSharedCalendars').hide();
}
ShowSelectedCalendars();
}
function SetAllowNewWindowStatus(bAllowNewWindow)
{
getTopAppWindow().SetOption('WebMail-AllowNewWindows', bAllowNewWindow);
}
function doup(ev)
{
ev = ev || event;
var mouseY = ev.clientY ? ev.clientY : ev.offsetY;
var mouseX = ev.clientX ? ev.clientX : ev.offsetX;
getTopAppWindow().dodoup(mouseX, mouseY, false);
if (ev != null)
{
if (ev.preventDefault)
{
ev.preventDefault();
}
else
{
ev.returnValue = false;
}
}
return true;
}
function domove(ev)
{
ev = ev || event;
var mouseY = ev.clientY ? ev.clientY : ev.offsetY;
var mouseX = ev.clientX ? ev.clientX : ev.offsetX;
getTopAppWindow().dodomove(mouseX, mouseY, false);
return true;
}
function BrowserResize() {
$('#calendarNavigation_0').show();
$('#calendarNavigation_1').show();
$('#calendarNavigation_2').show();
var html_h = $('html').height();
var cal1 = $('#calendarNavigation_0').height();
var cal2 = $('#calendarNavigation_1').height();
var cal3 = $('#calendarNavigation_2').height();
var shared = $('.bodyCol_calendar_shared').height();
$('#calendarNavigation_1').hide();
$('#calendarNavigation_2').hide();
if (cal1 + cal2 + cal3 + shared < html_h) {
$('#calendarNavigation_1').show();
$('#calendarNavigation_2').show();
}
if (cal1 + cal2 + shared < html_h) {
$('#calendarNavigation_1').show();
}
}
//--></SCRIPT>
</HTML>