403Webshell
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 :  C:/Program Files (x86)/Mail Enable/Bin/NETWebMail/Mondo/lang/sys/Forms/TSK/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Program Files (x86)/Mail Enable/Bin/NETWebMail/Mondo/lang/sys/Forms/TSK/List.aspx
<%@ Page Language="vb" AutoEventWireup="false" Inherits="MailEnable.Clients.WebMail.Mondo.ListTasks" CodeBehind="list.aspx.vb" %>
<%@ Register TagPrefix="uc1" TagName="uscStyleHeader" Src="../../../Controls/uscStyleHeader.ascx" %>
<%@ Register TagPrefix="uc2" TagName="TaskDetails" Src="TaskDetails.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"  <%=GetThemeStyle()%>>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	    
	    <uc1:uscStyleHeader id="UscStyleHeader1" runat="server"></uc1:uscStyleHeader>
	    <uc1:ScriptsInclude id="ScriptsInclude" runat="server"></uc1:ScriptsInclude>
		
		
		<bgsound id="BGSOUND_ID" loop="0">  <!-- used for the reconnect mechanism -->
		
		<script type="text/javascript" src="LIBTaskList.js"></script>
		

		<script type="text/javascript">
		<!--
		    var TaskTabControl = null;
		    var bHideRecurrence = false;

		    function initDetails() {
		        TaskTabControl = new TabStrip(document.getElementById('TaskTabControl'));
		        TaskTabControl.AddTab(t_('[ME_TXT-General]'), document.getElementById('TaskGeneralTabBody'), 'tab_panel_shell'); 
		        if (!bHideRecurrence) {
		            TaskTabControl.AddTab(t_('[ME_TXT-Recurrence]'), document.getElementById('TaskRecurrenceTabBody'), 'tab_panel_shell');
		            TaskTabControl.AddTab(t_('[ME_TXT-Notes]'), document.getElementById('TaskNotesTabBody'), 'tab_panel_shell');
		            $("#TaskNotesTabBody").show();		            
		        }
		        TaskTabControl.ActivateTab(0);  // make 1st tab (General) visiable
		        $('#TaskRecurrenceTabBody').load('../../dialogs/recurrence.htm?v=' + GetScriptVersion(), null, function () {
		            recurrence.Localize();
		            $("#TaskRecurrenceTabBody").show();
		            InitApptRecurFields();
		            RecurrenceControlOptions['StartTimeDatePicker'] = 'startDatePicker';
		            RecurrenceControlOptions['EndTimeDatePicker'] = 'dueDatePicker';
		            InitRecurData(RecurrenceControlOptions['StartTimeDatePicker']);
		            SetRecurrenceType(RECURRENCE_TYPE_NONE);
		        });
    	    }

		    getTopAppWindow().ShowPageLoad();
		    
		    var LIST_ID = 'METaskList';
		    var LIST_CONTAINER = 'msgList_shell_js';
		    var LIST_CONTAINER_INNER = 'msgList_container_js';
		    var BTTN_PADDING = 3;

		    var MAX_DELETE_ITEMS = 20;

		    // SCROLLBAR_ID --> SCROLLBAR_DIV
		    // 'ME_ScrollControl' --> 'ME_ScrollControlDiv'
		    // 'PanelMessageList' --> LIST_CONTAINER

		    var SCROLLBAR_TD = 'ME_ScrollControlTD';
		    var SCROLLBAR_DIV = 'ME_ScrollControlDiv';
		    var SCROLLBAR_CANVAS = 'ME_ScrollControlCanvas';

		    var DIV_SCROLL_TOOLTIP = 'divScrollTooltip';
		    var DIV_SCROLL_TOOLTIP_TEXT = 'divScrollTooltipText';

		    var TASK_VIEW_SIMPLE = 0;
		    var TASK_VIEW_DETAILED = 1;

		    var TASK_FILTER_ALL = 0;
		    var TASK_FILTER_ACTIVE = 1;
		    var TASK_FILTER_OVERDUE = 2;
		    var TASK_FILTER_COMPLETED = 3;

		    var gCurMessageID = "";     // the ID of the task currently viewed;

		    var DROPDOWN_VIEW_OPTIONS = "dropDown_viewOptions";
		    var DROPDOWN_VIEW_FILTER = "dropDown_filter";

		    var gBrowserType = GetBrowserType();
		    
		    var gItemsPerPage = 10;     // Number of rows to draw (including partial rows) in the list. This value is recaculated before the list rows are drawn.
			var gUnitScrollLength = 28; // Height of each row in the list
		    
			var oConfirmation_Task = null;
			var oAlertDialog = null;
			
			var boolPreviewLaunchEmbedded =true;
			var SortColumn = 'Received';
			var SortOrder = 'Desc';
			var SelectedFolder;
			var tmrNotification=null;
			var SkinRoot='<%=Session("skin")%>';
			var sID = '<%=ParseRequestArgument("ID")%>';
			var gSortOrder = 'Asc';
	        var gSearchStr = '';
			var gSortColumn = "DueDate";
			var gTasksFilter = 0;
			var gMode = '';
			
			var gGetTaskDelayTimeout = null;
			var gAllowTaskGet = true;

			var bSetPage = true; // variable to denote whether we should set the page value after loading the message list

			var SelectedMessage;
			var PreviewDelayTimer=null;
			var DoubleClickDelayTimer=null;
			var ClickedMessageID=null;
			var MessagesPerPage = 20;
			var arrMessageList = {};
			var mCurrentKey;

			var HorizSeparatorTop;
			var VertSeparatorLeft;
			var cMouseDown = false;  // True or false to represent current mouse button state; up or down.
			var lMouseDown = false;  // Represents the previous mouse button state.

			var MODE_ADD = 0;
			var MODE_EDIT = 1;

            var gTaskID = '';
			var gPopupItemID;			// Item ID of the selected item in the list (via context/popup menu)

			var arrTableColumns={};
			var NumColumns=0;
			var LABEL_MESSAGE_COUNT = 'lblMessageCount';
			
		    var ACCESS_MODE_READ = 0;
		    var ACCESS_MODE_FULL = 1;
		    var gAccessMode = ACCESS_MODE_FULL;	// this will be set everytime a new list of messages comes back from the server

		    var gKeepShowingWait = false;
		    var bIsTouchScreen = (GetBrowserScrollMode() == 2);
		    var gDetailsPaneMinWidth = bIsTouchScreen ? 470 : 460;

		    var layoutMain = null;

		    var layoutSettings = {
		        useStateCookie: !bIsTouchScreen // use cookies to remember widths of pane if it's in a normal browser (i.e. not touchscreen user agent)
                
                , defaults: {
		            name: "layoutTasks"
                    , size: "auto"
                    //, minSize: 300
                    , paneClass: "pane" 		// default = 'ui-layout-pane'
                    , resizerClass: "resizer"	// default = 'ui-layout-resizer'
                    , togglerClass: "toggler"	// default = 'ui-layout-toggler'
                    , buttonClass: "button"	    // default = 'ui-layout-button'
                    , slidable: false

                    , contentSelector: ".content"	    // inner div to auto-size so only it scrolls, not the entire pane!
                    , contentIgnoreSelector: "span"		// 'paneSelector' for content to 'ignore' when measuring room for content
                    , togglerLength_open: 21			// WIDTH of toggler on north/south edges - HEIGHT on east/west edges
                    , togglerLength_closed: 15			// "100%" OR -1 = full height
                    , hideTogglerOnSlide: true		    // hide the toggler when pane is 'slid open'
                    , togglerTip_open: t_("[ME_TXT-CollapseThisPane]")
                    , togglerTip_closed: t_("[ME_TXT-OpenThisPane]")
                    , resizerTip: t_("[ME_TXT-Resize]")

		            //	effect defaults - overridden on some panes
                    , fxName: "slide"		// none, slide, drop, scale
                    , fxSpeed_open: 400
                    , fxSpeed_close: 400
                    //, fxSettings_open: { easing: "easeInQuint" }
                    //, fxSettings_close: { easing: "easeOutQuint" }
                    , resizerDragOpacity: 0.5
		        }
                , center: {
                    // Task List pane
                    size: "auto"
                    , spacing_closed: 21			    // wider space when closed
                    , initClosed: false                 // start with the pane open
                    //, onresize: function() { ResizeToolbarIcons('toolbar_primary_table_left_js'); }
                }
                , east: {
                    // Task Details pane
                    size: gDetailsPaneMinWidth
                    , minSize: gDetailsPaneMinWidth
                    , spacing_closed: 21			    // wider space when closed
                    , initClosed: false                 // start with the pane open

                    , togglerLength_closed: 15
                    , togglerAlign_closed: "middle"     // align toggle button (when pane is collapsed) to the middle of resizer bar
                    , togglerTip_open: t_("[ME_TXT-CollapseDetailsPane]")
                    , togglerTip_closed: t_("[ME_TXT-OpenDetailsPane]")

                    //, resizerTip_open: "Resize Tasks List"

                    , slideTrigger_open: "click"        // collapsed pane is re-opened on click
                    //, slideTrigger_open: "mouseover"        // collapsed pane is re-opened on click
                    , sliderTip: t_("[ME_TXT-ViewDetailsPane]")   // slider tooltip 

                    //	add 'bounce' option to default 'slide' effect
                    //, fxSettings_open: { easing: "easeOutBounce" }
                    //, fxName: "drop"    // slider effect (when clicked on slider bar)
                }
            };

            function BrowserResize()
            {
                InitLayout();
                DataItemList_RewriteTableRows(LIST_ID, gDataListTopOfPageOrdinal - 1, arrTableColumns,"resize");
		    }

		    function SetListHeight() 
		    {
		        try {
		            var toolbar_primary_height; // height of the actions toolbar
		            var msgListPane_height;     // height of the message list pane (including toolbar)
		            var bodyCol_shell_height;   // height of the message list shell (not including the toolbar)
		            var toolbar_foot_height;    // height of the footer toolbar
		            var paneiframe_padding = 0;

		            toolbar_primary_height = document.getElementById("toolbar_primary_js").clientHeight;
		            toolbar_foot_height = document.getElementById("tasks_foot_shell_js").clientHeight;
		            
		            if ($('.pane-iframe').css('padding-top')) {
		                paneiframe_padding = $('.pane-iframe').css('padding-top').replace('px', '');
		            }
		            
		            msgListPane_height = $('html').height();

		            bodyCol_shell_height = msgListPane_height - toolbar_primary_height - toolbar_foot_height - paneiframe_padding;

                    // set list shell height
		            document.getElementById(LIST_CONTAINER).style.height = bodyCol_shell_height + "px";
		            document.getElementById(LIST_CONTAINER_INNER).style.height = bodyCol_shell_height + "px";

		            // set the scrollbar height (via the scroll canvas)
		            var scrollCanvas_height = (bodyCol_shell_height - HEADER_ROW_HEIGHT);
		            document.getElementById(SCROLLBAR_DIV).style.height = scrollCanvas_height + "px";

		            // set gMsgListHeight variable so the message list knows how many rows to draw
		            gMsgListHeight = bodyCol_shell_height - HEADER_ROW_HEIGHT;

		            DataItemList_SetScrollRange();

		        } catch (ex) { }
		    }

		    function SetDetailsPaneHeight() {
		        var mainPaneHeight = $('html').height();
		        var paneiframe_padding = 0;

		        if ($('.pane-iframe').css('padding-top')) {
		            paneiframe_padding = $('.pane-iframe').css('padding-top').replace('px', '');
		        }
		        
		        document.getElementById("contactsDetails_shell_js").style.height = mainPaneHeight - paneiframe_padding + "px";
		    }

		    function InitLayout()
		    {
	            var html_height = $('html').height();
	            if (html_height > 0)
	            {
	                $('body div.level0_shell').height(html_height);
	                if (layoutMain == null)
	                {
	                    // init the layout manager for the panes (task list & details)
	                    layoutMain = $('body div.level0_shell').layout(layoutSettings);
		            }
		        }

	            // set the height of the center panel (Task List)
	            SetListHeight();

	            // set the height of the east panel (Task Details)
	            SetDetailsPaneHeight();

	            // set the width of the toolbar dropdown buttons
	            var toolbar_td_width_viewOptions = $("#bttn_dropDown_viewOptions").outerWidth();
	            var toolbar_td_width_filterTasks = $("#bttn_dropDown_filterTasks").outerWidth();

	            $("#toolbar_primary_bttn_viewOptions_js").width(toolbar_td_width_viewOptions + BTTN_PADDING);
	            $("#toolbar_primary_bttn_filterTasks_js").width(toolbar_td_width_filterTasks + 3);

	            //set x position of Filter Task Dropdown menu (FF bug)
	            var viewOptions_bttn = $('#bttn_dropDown_viewOptions').outerWidth() + 1;
	            $('#dropDown_filt').css('right', viewOptions_bttn);
		    }

		    function ShowAlert(Title, Message, IsWarning) 
		    {
		        if (oAlertDialog != null) {
		            oAlertDialog.Alert(Title, Message, IsWarning);
		        }
		        else {
		            alert(Message);
		        }
		    }

		    function HideTaskDetails(instanceName) {
		        if (getItemInstance('divTaskDetails', instanceName)) {
		            getItemInstance('divTaskDetails', instanceName).style.display = "none";
		            DataItemList_ToggleKeyNavigation(true);
		        }
		    }

		    function ServerRequest(sCommand, sData, bUseCallback, sFrameName) {
		        var sURI = "";

		        if (gSourceURI && gSourceURI.length > 0) {
		            sURI = '&URI=' + encodeURIComponent(gSourceURI);
		        }

		        if (sURI && sURI.length > 0) {
		            sData = sData + sURI + '&Sensitivity=0';
		        }

		        return LIBAjax_ServerRequest(sCommand, sData, bUseCallback, sFrameName);
		    }

		    function ServerPost(sCommand, sData, bUseCallback, sFrameName) {
		        return LIBAjax_ServerPost(sCommand, sData, bUseCallback, sFrameName);
		    }

		    function SetSelectAllCheckbox(IsSelected)
		    {
	            var oChkSelectAll = document.getElementById(LIST_ID + '_SelectAll');
	            if (oChkSelectAll) {
	                oChkSelectAll.checked = IsSelected;
	            }

	            if (IsSelected)
	            {
	                HideTaskDetails(null);
	            }

	            // now return focus back onto the list; so that key events can be fired on the list
	            SetFieldFocus(LIST_ID);
	        }

	        function RefreshList() {
	            gListFirstLoad = false;

	            InitCols(GetSelectedView());
	            GetListData();       // refresh list
	        }

	        function GetAllServerSelectedIDs() {
	            GetListData("&Mode=SELECT-ALL");
            }

            function SelectAllItemIDs() 
            {
                gExtData = "&Mode=SELECT-ALL";  // used on sort function

                // let's pop up a wait dialog (busy) before we go off to the server to get the list of messages
                getTopAppWindow().ShowWait(t_("[ME_TXT-Pleasewait]") + "...");
                window.setTimeout('GetAllServerSelectedIDs()', 200);   // wait for a bit; we have to do this in order for the dialog to show up
            }

            function DataItemList_CheckboxCallback(UID, CheckStatus) {
                // at this stage the checkbox checked status
                // would have already been changed, so
                // we need to do any other post cleanup stuff here...

                HideTaskDetails(null);  // always hide the details panel when the checkbox is toggled.

                if (gSelectedIM.GetSize() == gTotalItems) {
                    SetSelectAllCheckbox(true);
                }
                else {
                    SetSelectAllCheckbox(false);
                }

                SetActionButtonsStatus();
                window.status = gSelectedIM.GetSize() + " " + t_("[ME_TXT-Selected]");
            }
            
            function GetSelectedView() {
			    // returns the selected View value based on the selection in the
			    // 'View Options' dropdown menu
                var oDropDown = document.getElementById(DROPDOWN_VIEW_OPTIONS);

                var oListItem;
                var oItems;

                if (oDropDown) {
                    oItems = oDropDown.getElementsByTagName("div");

                    // loop through our divs
                    for (var i = 0; i < oItems.length; i++) {
                        // set class to be un-ticked
                        oListItem = oItems[i].firstChild;
                        if (oListItem.className.indexOf(DROPDOWN_TICK_CLASS) != -1) {
                            if (oListItem.id.indexOf("_simple") != -1) {
                                return TASK_VIEW_SIMPLE;
                            }
                        }
                    }
                }

                return TASK_VIEW_DETAILED;    // default it
            }

            function GetSelectedFilter() {
                var oDropDown = document.getElementById(DROPDOWN_VIEW_FILTER);

                var oListItem;
                var oItems;

                if (oDropDown) {
                    oItems = oDropDown.getElementsByTagName("div");

                    // loop through our divs
                    for (var i = 0; i < oItems.length; i++) {
                        // set class to be un-ticked
                        oListItem = oItems[i].firstChild;
                        if (oListItem.className.indexOf(DROPDOWN_TICK_CLASS) != -1) {
                            if (oListItem.id.indexOf("_all") != -1) {
                                return TASK_FILTER_ALL;
                            }
                            else if (oListItem.id.indexOf("_active") != -1) {
                                return TASK_FILTER_ACTIVE;
                            }
                            else if (oListItem.id.indexOf("_overdue") != -1) {
                                return TASK_FILTER_OVERDUE;
                            }
                            else if (oListItem.id.indexOf("_completed") != -1) {
                                return TASK_FILTER_COMPLETED;
                            }
                        }
                    }
                }

                return TASK_FILTER_OVERDUE;
            }


            function DataItemList_SelectAllCheckboxCallback(UID) 
            {
                var oChkSelectAll = document.getElementById(UID);
                if (oChkSelectAll) {
                    if (oChkSelectAll.checked) 
                    {
                        HideTaskDetails(null);
                        SelectAllItemIDs();
                    }
                    else 
                    {
                        gExtData = "";
                        DataItemList_UnselectAllRows(LIST_ID);
                        SetActionButtonsStatus();
                        window.status = gSelectedIM.GetSize() + " " + t_("[ME_TXT-Selected]");
                    }
                }
            }

			function SetColumnStyles(View, arrTableColumns)
			{
			    var NumColumns = 0;

			    if (View == TASK_VIEW_SIMPLE)
				{
                    //note: for table to span correctly, at least one field must be noWidth
				    DataItemList_AddTableColumn(0, arrTableColumns, '', 'SelectAll', 'left', 'dataTable_tickbox', 'dataTable_tickbox', '', t_('[ME_TXT-Select/DeselectAll]'), 'SelectAll');
				    DataItemList_AddTableColumn(1, arrTableColumns, 'Importance', 'Importance', 'center', 'dataTable_icon_importance', 'dataTable_icon_importance', 'Importance', t_('[ME_TXT-SortByImportance]'), 'Importance');
				    DataItemList_AddTableColumn(2, arrTableColumns, 'Subject', 'Subject', 'left', 'dataTable_noWidth', 'dataTable_noWidth', t_('[ME_TXT-Subject]'), t_('[ME_TXT-SortBySubject]'), 'Label');
				    DataItemList_AddTableColumn(3, arrTableColumns, 'Status', 'Status', 'left', 'dataTable_status', 'dataTable_status', t_('[ME_TXT-Status]'), t_('[ME_TXT-SortByStatus]'), 'Label');
				    DataItemList_AddTableColumn(4, arrTableColumns, 'DueDate', 'DueDate', 'left', 'dataTable_date', 'dataTable_date', t_('[ME_TXT-DueDate]'), t_('[ME_TXT-SortByDueDate]'), 'Label');
				    DataItemList_AddTableColumn(5, arrTableColumns, 'PercentComplete', 'PercentComplete', 'center', 'dataTable_complete', 'dataTable_complete', t_('[ME_TXT-%Complete]'), t_('[ME_TXT-SortByPercentComplete]'), 'Percent');
					NumColumns = 6;
				}
				else if (View == TASK_VIEW_DETAILED)
				{
				    DataItemList_AddTableColumn(0, arrTableColumns, '', 'SelectAll', 'left', 'dataTable_tickbox', 'dataTable_tickbox', 'X', t_('[ME_TXT-Select/DeselectAll]'), 'SelectAll');
				    DataItemList_AddTableColumn(1, arrTableColumns, 'Importance', 'Importance', 'center', 'dataTable_icon_importance', 'dataTable_icon_importance', '', t_('[ME_TXT-SortByImportance]'), 'Importance');
				    DataItemList_AddTableColumn(2, arrTableColumns, 'Subject', 'Subject', 'left', 'dataTable_name', 'dataTable_name', t_('[ME_TXT-Subject]'), t_('[ME_TXT-SortBySubject]'), 'Label');
				    DataItemList_AddTableColumn(3, arrTableColumns, 'Status', 'Status', 'left', 'dataTable_status', 'dataTable_status', t_('[ME_TXT-Status]'), t_('[ME_TXT-SortByStatus]'), 'Label');
				    DataItemList_AddTableColumn(4, arrTableColumns, 'StartDate', 'StartDate', 'left', 'dataTable_date', 'dataTable_date', t_('[ME_TXT-StartDate]'), t_('[ME_TXT-SortByStartDate]'), 'Label');
				    DataItemList_AddTableColumn(5, arrTableColumns, 'DueDate', 'DueDate', 'left', 'dataTable_date', 'dataTable_date', t_('[ME_TXT-DueDate]'), t_('[ME_TXT-SortByDueDate]'), 'Label');
				    DataItemList_AddTableColumn(6, arrTableColumns, 'PercentComplete', 'PercentComplete', 'center', 'dataTable_complete', 'dataTable_complete', t_('[ME_TXT-%Complete]'), t_('[ME_TXT-SortByPercentComplete]'), 'Percent');
				    DataItemList_AddTableColumn(7, arrTableColumns, 'Sensitivity', 'Sensitivity', 'left', 'dataTable_sensitivity', 'dataTable_sensitivity', t_('[ME_TXT-Sensitivity]'), t_('[ME_TXT-SortBySensitivity]'), 'Label');
					
					NumColumns = 8;
				}
				return NumColumns;
			}

			function ProcessXMLResult(responseXML)
			{
				var BaseNode = responseXML.getElementsByTagName("BASEELEMENT")[0]; 		
				if (BaseNode ==null)
				{
					alert(t_('[ME_TXT-Serverfailure]'));
					return true;
				}
						
				var sResult = GetXMLValue(BaseNode.getElementsByTagName("RETURNVALUE")[0]);
				if (sResult == "5")
				{
					// not licensed error: show it and abort
					var errNodeList = BaseNode.getElementsByTagName('ERROR_DESCRIPTION');
					if (errNodeList.length > 0)
					{
						ShowAlert(t_("[ME_TXT-Error]"), GetXMLValue(errNodeList[0]), true);
					}
					getTopAppWindow().Async_UnlockUI();
					return false;
				}

				var oSchema = BaseNode.attributes.getNamedItem('SCHEMA');
				var oMethod = BaseNode.attributes.getNamedItem('METHOD');
				var sSchema;
				var sMethod;
				
				if (oSchema)
				{		
					sSchema = GetXMLValue(oSchema);
				}
				
				if (oMethod)
				{		
					sMethod = GetXMLValue(oMethod);
	            }

	            if (sSchema == 'RESULT') {
	                if (sMethod == 'LIST-CONNECTIONS') {
	                    ProcessSharesList(BaseNode);
	                }
	            }
				
				if (sSchema == 'TASKS')
				{
				    if (!gKeepShowingWait)
				    {
				        getTopAppWindow().Async_UnlockUI();
				    }

					if (sMethod == 'ADD-TASK')
					{
					    ProcessAddResult(BaseNode);
					}
					else if (sMethod == 'EDIT-TASK')
					{
					    ProcessEditResult(BaseNode);
					}
					else if (sMethod == 'LIST-TASKS')
                    {
					    ProcessMessageList(BaseNode, arrTableColumns);
					    ProcessSelectedIDs(BaseNode);

					    if (!gListFirstLoad) {
					        // need to redraw the list because the data may have been updated from the server
                            DataItemList_RewriteTableRows(LIST_ID, gDataListTopOfPageOrdinal - 1, arrTableColumns, "result");
					    }
					    else {
                            gListFirstLoad = false; // because now we've just redrawn (cleared) the list
					    }

					    var wholeRowsPP = CalculateWholeRowsPerPage(gMsgListHeight, gUnitScrollLength);
					    if (gTotalItems <= wholeRowsPP)
					    {
					        ScrollBar_Hide(SCROLLBAR_DIV, SCROLLBAR_TD);
					    }
					    else
					    {
					        DataItemList_SetScrollRange();
					    }
					    
					    SetFieldFocus(LIST_ID); // so that key events fire on the selection

					    SetActionButtonsStatus();

					    getTopAppWindow().SetStatusBarValues(getTopAppWindow().VIEW_TASKS, gTotalItems);
					    window.status = gSelectedIM.GetSize() + " " + t_("[ME_TXT-Selected]");

					    // resize the toolbar buttons to make it fit into the available screen real estate
					    //ResizeToolbarIcons('toolbar_primary_table_left_js');
					}
					else if ( sMethod == 'GET-TASK' )
                    {
					    getTopAppWindow().Async_UnlockUI();
					    var instanceName = null;
					    ProcessTask(BaseNode, null);
					    var isRecurring = GetXMLValue(BaseNode.getElementsByTagName('ISRECURRING')[0]);
                        if (isRecurring != '0') {
					        LoadRecurrenceData(BaseNode, instanceName);
					    }
					    else {
					        InitRecurData(RecurrenceControlOptions['StartTimeDatePicker']);
					        SetRecurrenceType(RECURRENCE_TYPE_NONE);
					    }
                        gMode = MODE_EDIT;
					    MakeEditable(true);
					    UpdateButtonSetText(t_("[ME_TXT-Save]"));
						
					}
					else if ( sMethod == 'DELETE-TASK' )
					{
						ProcessDeleteResult(BaseNode);
					}
				}
				
				return true;
			}
			

            function ClearSharesList()
            {
                // remove all dropdown values that are not "Mine"
                $('#ddlSharedTasks option[value="Mine"] ~ option').remove();
            }

            function RemoveSharedListItem(URI)
            {
                RemoveListItemByValue('ddlSharedTasks', URI);
            }

            function ProcessSharesList(BaseNode) {
                var ddlSharedTasks = document.getElementById('ddlSharedTasks');
                if (!ddlSharedTasks) return false;

                ClearSharesList();
                
                if (BaseNode.childNodes.length > 0) {
                    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]);

                        if (sResourceName == 'Tasks' || sResourceName == '/')
                        {
                            var sSharesURI = sURI;
                            if (sResourceName == '/')
                            {
                                sSharesURI += 'Tasks';
                            }
                            AddItemToList(ddlSharedTasks, sSharesURI, sMailbox);
                        }
                    }
                }
            }
			
            function ProcessAddResult(BaseNode)
            {
				var sResult = GetXMLValue(BaseNode.getElementsByTagName("RETURNVALUE")[0]);
                
				if ( sResult == "0" )	// Error
				{
					var err = t_("[ME_TXT-Taskcreationfailed]");
					var errNodes = BaseNode.getElementsByTagName("ERROR_DESCRIPTION");
					if (errNodes != null && errNodes.length > 0)
					{
						err = GetXMLValue(errNodes[0]);
					}
				    ShowAlert(t_("[ME_TXT-Error]"), err, true);
				}
				else if ( sResult == "1" )	// Success
				{
				    var sNotification = t_("[ME_TXT-TaskAddedSuccessfully]");
				    if (getTopAppWindow().ShowNotification)
				    {
				        getTopAppWindow().ShowNotification(sNotification);
				    }
				    HideTaskDetails(null);
				    RefreshList();
				}
            }

            function ProcessEditResult(BaseNode)
            {
				var sResult = GetXMLValue(BaseNode.getElementsByTagName("RETURNVALUE")[0]);
                
				if ( sResult == "0" )	// Error
				{
					var err = t_("[ME_TXT-Taskmodificationfailed]");
					var errNodes = BaseNode.getElementsByTagName("ERROR_DESCRIPTION");
					if (errNodes != null && errNodes.length > 0)
					{
						err = GetXMLValue(errNodes[0]);
					}
				    ShowAlert(t_("[ME_TXT-Error]"), err, true);
				}
				else if ( sResult == "1" )	// Success
				{
				    var sNotification = t_("[ME_TXT-Detailsupdatedsuccessfully.]");
				    if (getTopAppWindow().ShowNotification)
				    {
				        getTopAppWindow().ShowNotification(sNotification);
				    }
				    RefreshList();
				}
            }
            
            function ProcessDeleteResult(BaseNode)
            {
				var TaskResultNodes = BaseNode.getElementsByTagName("TASK");
		
				var failMsgs = {};
				
				for (var i = 0; i < TaskResultNodes.length; i++)
				{
					var TaskResultNode = TaskResultNodes[i];
					var TaskID = TaskResultNode.attributes.getNamedItem('ID').nodeValue;
					var sResult = GetXMLValue(TaskResultNode.getElementsByTagName("RETURNVALUE")[0]);
					if ( sResult == '1' )	// Successfully deleted task on the server side
					{
						RemoveTaskFromList(TaskID);
					}
					else	// Failure to delete item on the server side
					{
						// Display some error message
						var errDescNodes = TaskResultNode.getElementsByTagName("ERROR_DESCRIPTION");
						var sErrorDesc = t_('[ME_TXT-Noerrorgiven]');
						
						if (errDescNodes && errDescNodes.length > 0)
						{
							sErrorDesc = GetXMLValue(errDescNodes[0]);
						}
						if (failMsgs[sErrorDesc])
						{
							failMsgs[sErrorDesc]++;
						}
						else
						{
							failMsgs[sErrorDesc] = 1;
						}
					}
            	}

            	if (gDataListTopOfPageOrdinal > gTotalItems) {
            	    gDataListTopOfPageOrdinal = 1;
            	}

            	DataItemList_RewriteTableRows(LIST_ID, gDataListTopOfPageOrdinal - 1, arrTableColumns,"result");
            	ResizeScrollbar();   // fix up the scrollbar bar

            	SetActionButtonsStatus();
	            
	            if (gSelectedIM.GetSize() == 0) // we have to clear the 'Select All' check box if it was checked;
	            {
	                getTopAppWindow().Async_UnlockUI(); // only unlock once all selected items are deleted
	                gKeepShowingWait = false;
	                gSelectedIM.SetCallback(null);

	                SetSelectAllCheckbox(false)
	                SetActionButtonsStatus();
	                gListItemSelected = false;

	                gDataListTopOfPageOrdinal = 1;  // set to the top
	                DataItemList_RewriteTableRows(LIST_ID, 0, arrTableColumns,"result");

	                getTopAppWindow().SetStatusBarValues(getTopAppWindow().VIEW_TASKS, gTotalItems);
	                window.status = t_("[ME_TXT-Done]");
	            }
	            else {
	                // if we're excuting a batch delete then we need to continue
	                // until our SelectedItems list is empty!
	                if (gSelectedIM.CallbackExists()) {
	                    // we need the delay below in order for the list to be redrawn
	                    window.setTimeout("gSelectedIM.ExecuteCallback()", 200);  // execute it!
	                }
	            }

				var msg = t_('[ME_TXT-Taskdeletionfailures]') + ':\n\n';
				var errCount = 0;
				for (var failMsg in failMsgs)
				{
					msg += '[' + failMsgs[failMsg] + 'x] ' + failMsg + '\n';
					errCount++;
					// limit the number of fail msgs to show in the msg
					if (errCount > 5)
					{
						msg += '...';
						break;
					}
				}

				if (errCount > 0)
				{
					ShowAlert("", msg, true);
				}
				else
				{
					// hide the preview details
					HideTaskDetails(null);
				}
            }
						
			function RemoveTaskFromList(TaskID)
			{
				// Delete the item from our global array
				var iResult = ItemsArray_DeleteFromArray(TaskID);
				
				// Set the scrollbar range to correspond to the number of pages required for this list of messages
				ScrollBar_InitializeListRange(SCROLLBAR_DIV, SCROLLBAR_TD, gTotalItems);					
				gItemsDeleted++;
				gSelectedIM.RemoveItem(TaskID);

				DataItemList_DecrementItemCount(LIST_ID, 1);

				if ( gTotalItems == 0 )
				{
					// Get rid of the scrollbar
				    ScrollBar_Hide(SCROLLBAR_DIV, SCROLLBAR_TD);
				}
				
				return true;
			}
			
			function UpdateButtonSetText(Text)
			{
				if ( document.getElementById("btnUpdate") )
				{
					SetElementText(document.getElementById("btnUpdate"), Text);
				}
			}
			
			function MakeEditable(Editable)
			{
				var bReadOnly = !Editable;
				SetFieldsReadOnly(bReadOnly);
				
				if (Editable == true)
				{
					document.getElementById('btnUpdate').style.visibility = "visible";
					document.getElementById('btnCancel').style.visibility = "visible";
				}
			}
			
			function SetFieldsReadOnly(bReadOnly)
			{
				arrDatePickers['startDatePicker'].setDisabled(bReadOnly);
				arrDatePickers['dueDatePicker'].setDisabled(bReadOnly);
				document.getElementById("txtSubject").readOnly = bReadOnly;
				document.getElementById("ddlPriority").readOnly = bReadOnly;
				document.getElementById("ddlStatus").readOnly = bReadOnly;
				document.getElementById("ddlTaskSensitivity").readOnly = bReadOnly;
				document.getElementById("txtPercentComplete").readOnly = bReadOnly;
			}
		
			function AddTask()
			{
			    DataItemList_UnselectAllRows(LIST_ID);
				SetSelectAllCheckbox(false);
				SetActionButtonsStatus();
				ShowTaskDetails(null);
                gMode = MODE_ADD;
				TaskTabControl.ActivateTab(0);  // select the first tab (since it is the most likely to be used)
				ClearTaskDetails(arrDatePickers['startDatePicker'], arrDatePickers['dueDatePicker'],null);
				SetRecurrenceType(RECURRENCE_TYPE_NONE); 
				MakeEditable(true);
				SelectListItemByIndex('ddlTaskSensitivity', 0)
				UpdateButtonSetText(t_("[ME_TXT-Add]"));
				document.getElementById('txtSubject').focus();
			}
			
			function CopySelectedMessages(ListID, Folder)
			{
				// Empty implementation function needed by the KeyNavigation library...we don't actually support
				// copy action on Tasks.
			}
			
			function PasteMessages(Folder)
			{
				// Empty implementation function needed by the KeyNavigation library...we don't actually support
				// copy/paste action on Tasks.
			}
			
			
			function GetSelectedFolderPath()
			{
				// Empty implementation function needed by the KeyNavigation library
				return '/Tasks';
			}
			
			function ProcessDoubleClick(CurrentFolder, ItemID)
			{
				// Empty implementation function needed when handling list row selection (click)
			}
			
			function LoadPreviewMessage(CurrentFolder, ItemID)
			{
				// Empty implementation function needed when handling list row selection (click)
			}
			
			function NavigationPreview(CurrentFolder, ItemID)
			{
				// Empty implementation function needed when handling list row selection (click)
			}
			
			function DeleteListItem(ItemID)
			{
				// This function is required by the KeyNavigation library to handle the DELETE keypress event.
				ProcessSelectionDelete();
				return true;
			}
			
			function DeleteSelectedListItems()
			{
				// This function is required by the KeyNavigation library to handle the DELETE keypress event.
			    ProcessSelectionDelete();
			    return true;
			}
			
			function ViewListItem(ItemID)
			{
				// This function is required by the KeyNavigation library to handle the ENTER keypress event.
				return false;
			}
			
			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, true);
				
				var oTarget = ev.target || ev.srcElement;
				
				if (!permitTextSelection(oTarget))
				{
					if (ev != null)
					{		
						if (ev.preventDefault)
						{
							ev.preventDefault();
						}
						else
						{
							ev.returnValue = false;
						}
					}
				}
				return permitTextSelection(oTarget);
			}

			function dodown(ev)
			{
				ev = ev || event;

				var mouseY = ev.clientY ? ev.clientY : ev.offsetY;
				var mouseX = ev.clientX ? ev.clientX : ev.offsetX;
				
 				var oTarget = ev.target || ev.srcElement;
				
				var StaticVScrollerBar = document.getElementById('StaticVScrollerBar');
				var StaticHScrollerBar = document.getElementById('StaticHScrollerBar');
				var vertHorz = 0;
				if (IsElementAAncestorOfElementB(StaticVScrollerBar, oTarget))
				{
					vertHorz = 1;
				}
				else if (IsElementAAncestorOfElementB(StaticHScrollerBar, oTarget))
				{
					vertHorz = 2;
				}
				getTopAppWindow().dododown(vertHorz, mouseX, mouseY, true);
				
				return permitTextSelection(oTarget);
			}

			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, true);
				return true;
            }

            function ListShares(URI) {
                var sOptions = "";

                if (URI && URI.length > 0) {
                    sOptions = "URI=" + URI;
                }

                if (getTopAppWindow().g_opt['SharingEnabled']) {
                    ServerRequest('LIST-CONNECTIONS', sOptions, false);
                }
            }

            function SelectShare(URI)
            {
                SelectListItemByValue('ddlSharedTasks', URI);
                gSourceURI = URI;
                InitLoadList();
            }

            function IsDefaultTaskFolder(sRelativeFolderPath) {
                return (!sRelativeFolderPath) || (sRelativeFolderPath == '') || (sRelativeFolderPath == 'Mine') || (sRelativeFolderPath == '/Tasks');
            }

            function SelectMyTasks(sRelativeFolderPath) {

                if (sRelativeFolderPath)
                {
			        gSourceURI = sRelativeFolderPath;
                }

                if (IsDefaultTaskFolder(sRelativeFolderPath))
                {
                    SelectListItemByValue('ddlSharedTasks', 'Mine');
                }
                else
                {
                    SelectListItemByValue('ddlSharedTasks', sRelativeFolderPath);
                }

                InitLoadList();
            }

            var TOOLBAR_HEIGHT = 28;
            function ResizeToolbarIcons(ToolbarCellID)
            {
                var tdToobar = document.getElementById(ToolbarCellID);
                if (tdToobar && (tdToobar.style.display == 'none'))
                {
                    return 0;
                }

                var bResize = false;

                if (GetBrowserScrollMode() == 2)
                {
                    // resize the toolbar buttons for iPhone/iPad
                    bResize = true;
                }
                else
                {
                    // show all .bttn_toolbar_primary_text, reset padding on .bttn_toolbar_primary_left
                    $('#' + ToolbarCellID + ' .bttn_toolbar_primary_text').css('display', '');
                    $('#' + ToolbarCellID + ' .bttn_toolbar_primary_divider').css('display', '');
                    $('#' + ToolbarCellID + ' .bttn_toolbar_primary_left').css('padding-left', '3px');

                    // when scrollHeight of the td is over 21px it means buttons have overflowed
                    var toolbar_scrollheight = $('#' + ToolbarCellID + ' .toolbar_primary_bttns_td_shell').attr('scrollHeight');
                    if (toolbar_scrollheight > TOOLBAR_HEIGHT)
                    {
                        bResize = true;
                    }
                }

                if (bResize)
                {
                    // hide all .bttn_toolbar_primary_text, reduce padding on .bttn_toolbar_primary_left
                    $('#' + ToolbarCellID + ' .bttn_toolbar_primary_text').css('display', 'none');
                    $('#' + ToolbarCellID + ' .bttn_toolbar_primary_divider').css('display', 'none');
                    $('#' + ToolbarCellID + ' .bttn_toolbar_primary_left').css('padding-left', '1px');
                    return 1;
                }
                return 0;
            }
			
			function PageLoad()
            {
                DataItemList_Create(document.getElementById('msgList_shell_js'), "TaskList");
                InitLayout();

                // Now we disable the select options that have the disabled property for IE6 & IE7
                OldIEDisabledOptionsFix();

			    gSelectedIM = new SelectedItemsManager();

                InitCols(GetSelectedView());

			    var instanceName = null;
			    BindDatePicker(getItemInstanceName('startDatePickerLocation', instanceName), getItemInstanceName('startDatePicker', instanceName));
			    BindDatePicker(getItemInstanceName('dueDatePickerLocation', instanceName), getItemInstanceName('dueDatePicker', instanceName));		
				initDetails();

				SetActionButtonsStatus();
				ClearTaskDetails(arrDatePickers['startDatePicker'], arrDatePickers['dueDatePicker'],null);

                arrDatePickers['startDatePicker'].enableSelectNoneButton();
                arrDatePickers['dueDatePicker'].enableSelectNoneButton();

				// add popup rows
				if (gAccessMode == ACCESS_MODE_FULL)
				{
				    PopUp_AddItem('menuItemsdiv', '0', 'Delete', t_('[ME_TXT-Delete]'), 'dropDown_icon_delete');
				}

				gTasksFilter = GetSelectedFilter();
			    
			    
			    // N.B. The task details preview is NO LONGER at the bottom (is now on side)
			    // hence we don't need to get the 'WebMail-TasksListHeight' option setting.
				
				//var tasksListHeight = getTopAppWindow().GetOption('WebMail-TasksListHeight');
				//if (tasksListHeight > 0) gMsgListHeight = tasksListHeight;

				//DataItemList_Init(LIST_ID);

                var taw = getTopAppWindow();
                var sURI = ''; 

                if (taw.getParameterByName)
                {
                    sURI = taw.getParameterByName('URI', window.location.href);
                }

				if (getTopAppWindow().g_opt['SharingEnabled'])
				{
                    ListShares();

                    if (IsDefaultTaskFolder(sURI))
                    {
				        SelectListItemByValue('ddlSharedTasks', 'Mine');
                    }
                    else
                    {
				        SelectListItemByValue('ddlSharedTasks', sURI);
                        gSourceURI = sURI;
                    }
				}
				else
				{
				    $('#ddlSharedTasks').hide();
				}

		        // Get the tasks...
				InitLoadList();

		        if (sID != '') 
		        {
					// we want to select the item being asked for
					MsgListRowSelect(sID, false, false);					
		        }
		        
		        ConfigureMouseWheelEvent(1);
		        ConfigureKeyEvents(1);

		        //disableSelection(document.body);
		        addEvent(window, 'resize', BrowserResize, true);

		        getTopAppWindow().HidePageLoad();
		        $('.level0_shell').css({ visibility: 'visible' });
		    }

            function SetView(View)
            {
                InitCols(View);
                InitLoadList();
            }
			
			function SetFilter(Filter)
			{
				gTasksFilter = Filter;
				InitLoadList();
			}
						
			function InitCols(View)
            {
			    gNumDataColumns = SetColumnStyles(View, arrTableColumns);
			    DataItemList_RenderColumnHeaders(LIST_ID, gNumDataColumns, arrTableColumns);
			}

			function GetListData(ExtraData) {
			    if (!ExtraData || (ExtraData == undefined))
			        ExtraData = "";
			        
			    var page = (gSecondPageNum)? gSecondPageNum: 1;

			    var sData = "Folder=\\Tasks&IPP=" + gDataPageSize + "&Page=" + page + "&SortField=" + gSortColumn + "&SortOrder=" + gSortOrder + "&Filter=" + gTasksFilter + ExtraData;
			    getTopAppWindow().Async_LockUI(t_("[ME_TXT-LoadingTasks]") + "...");
			    window.setTimeout(function()
			    {
			        var ajaxResult = ServerRequest('LIST-TASKS', sData, false);
			        if (!ajaxResult) getTopAppWindow().HandleAjaxError();
			    }, 200);
			}

			function InitLoadList()
			{
			    // Loads the list for the first time
                gListFirstLoad = true;
			    HideTaskDetails(null);
			    SetSelectAllCheckbox(false);

			    GetListData();
				
				var shareDropDownURI = gSourceURI;
				if (!shareDropDownURI || shareDropDownURI == '')
				{
					shareDropDownURI = 'Mine';
				}
				
				// TODO we need to implement the shares list for Shared Tasks
				//getTopAppWindow().SetSelectedTasksShare(shareDropDownURI);

				// NB. we call the following lines to make sure the scrollbar is drawn (for cases where it
				// wasn't drawn previously; i.e. when the list grows beyond initial size and a scrollbar
				// is required)
				ScrollBar_InitializeListRange(SCROLLBAR_DIV, SCROLLBAR_TD, gTotalItems);
				ScrollBar_SetUnitScrollTop(SCROLLBAR_DIV, SCROLLBAR_TD, 0, gUnitScrollLength);
			}

			function ShareChanged() {
			    var ddlSharedTasks = document.getElementById('ddlSharedTasks');
			    if (!ddlSharedTasks) return false;

			    var sURI = ddlSharedTasks.value;

			    if (sURI != "Mine") {
			        if (!getTopAppWindow().HasAccessToShare(sURI)) {
			            ShowAlert(t_("[ME_TXT-Error]"), t_("[ME_TXT-Youarenotpermittedtoaccessthisshare!Tryreconnectingtotheshare.]"));
			        }
			        else {
			            gSourceURI = sURI;
			        }
			    }
			    else gSourceURI = "";

			    InitLoadList();
			}

			function SaveDetails()
			{
			    if (ValidateTaskData(arrDatePickers['startDatePicker'], arrDatePickers['dueDatePicker']))
				{
				    var sData = GetTaskDataString(gMode, arrDatePickers['startDatePicker'], arrDatePickers['dueDatePicker'], gTaskID);

				    // Recurrence details...
				    sData += '&' + GetRecurrenceDataParamList();

					if ( gMode == MODE_ADD )
					{
						ServerRequest('ADD-TASK', sData, false);
					}
					else if ( gMode == MODE_EDIT )
					{
						ServerRequest('EDIT-TASK', sData, false);
					}
				}
			}
			
			function Cancel()
			{
			    HideTaskDetails(null);
			}
			
			function DeleteNextSelectedBatch(MaxItems) {
			    // we need to build a seperate list for wach of the object type supported
			    var itemIDs = "";
			    var items = gSelectedIM.GetItems();
			    var sb = new StringBuffer();
			    var count = 0;
			    for (var id in items) {
			        if (count > 0) {
			            sb.append(",");
			        }
			        sb.append(id);
			        count++;

			        if (count == MaxItems)
			        {
			            break;  // get out; we've done enough damage
			        }
			    }
			    itemIDs = sb.toString();

			    window.setTimeout(function() { ServerRequest('DELETE-TASK', 'ID=' + itemIDs, false); }, 200);
			}

			function ProcessDelete()
			{
			    var numSelected = gSelectedIM.GetSize();

			    if (numSelected > 0) {
			        if (numSelected > MAX_DELETE_ITEMS) {
			            // we need to split up the list into batches and perform deletes on those batches
			            gSelectedIM.SetCallback(function() { DeleteNextSelectedBatch(MAX_DELETE_ITEMS) });
			            getTopAppWindow().Async_LockUI(t_("[ME_TXT-Pleasewaitwhiletheitemsaredeleted]") + "...");
			            gKeepShowingWait = true;
			            window.setTimeout(function() { DeleteNextSelectedBatch(MAX_DELETE_ITEMS); }, 200);   // delete the first batch
			        }
			        else {

			            var itemIDs = "";
			            var items = gSelectedIM.GetItems();
			            var sb = new StringBuffer();
			            var count = 0;
			            for (var id in items) {
			                if (count > 0) {
			                    sb.append(",");
			                }
			                sb.append(id);
			                count++;
			            }
			            itemIDs = sb.toString();

			            // number selected is less than MAX_DELETE_ITEMS
			            getTopAppWindow().Async_LockUI(t_("[ME_TXT-Pleasewaitwhiletheitemsaredeleted]") + "...");
			            window.setTimeout(function() { ServerRequest('DELETE-TASK', 'ID=' + itemIDs, false); }, 200);
			        }
			    }
			    else {   // none selected in the list
			        // we'll just the delete the item acted on by the right-click popup menu
			        getTopAppWindow().Async_LockUI(t_("[ME_TXT-Pleasewaitwhiletheitemsaredeleted]") + "...");
			        window.setTimeout(function() { ServerRequest('DELETE-TASK', 'ID=' + gPopupItemID, false); }, 200);
			        return true;
			    }
			    
			}
			
			function ProcessSelectionDelete()
			{
				if (gAccessMode == ACCESS_MODE_FULL)
				{
				    oConfirmation_Task.Confirm(t_("[ME_TXT-ConfirmDelete]"), t_("[ME_TXT-Deletetheselected(highlighted)tasks?]"), function() { ProcessDelete(); }, true, function() { SetFieldFocus(LIST_ID); });
				}
				else
				{
					ShowAlert(t_("[ME_TXT-Error]"), t_("[ME_TXT-Youarenotpermittedtodeletethistask]"), true);
				}
			}
	
			function IsPopupMenuActive(oSourceElement)
			{
			    return IsElementAAncestorOfElementB(document.getElementById(LIST_ID), oSourceElement);
			}
						
			function IsPopupMenuCommandActive(MessageID, i)
			{
				return MessageID.toUpperCase() != 'TREMPTY';
			}

			function ProcessPopUp(Action)
            {
                gSelectedIM.AddItem(gPopupItemID);
				switch (Action)
				{
					case 'Delete':
					    ProcessSelectionDelete();
						break;
					default:
						break;
				}

				PopUp_HideMenu('menudiv');
			}

			function SetActionButtonsStatus() 
			{
				if (gAccessMode == ACCESS_MODE_READ)    // read only
				{
	                DisableToolbarButton('bttn_newTask');
	                DisableToolbarButton('bttn_delete');
				}
				else {
				    EnableToolbarButton('bttn_newTask', function() { AddTask(); });

				    var selectedCount = gSelectedIM.GetNumSelectedItems();
				    if (selectedCount > 0)
					{
					    EnableToolbarButton('bttn_delete', function() { ProcessSelectionDelete(); });
					}
					else
					{
						DisableToolbarButton('bttn_delete');
					}
				}
			}
			
			function MsgListRowSelect(MessageID, ctrlKeyDown, shiftKeyDown)
			{
				if ((MessageID == undefined) || (MessageID.length <= 0))
				{
					return false;
	            }

				var iSelectedIndex = -1;
				
				if ( ctrlKeyDown )	// Control key is down
				{
					if ( document.getElementById(MessageID).className == LIST_ROW_STYLE_SELECTED ) 
					{
						// Item already previously selected; hence we unselect it
					    DataItemList_UnselectRow(LIST_ID, MessageID);
					}
					else
					{
					    DataItemList_SelectRow(LIST_ID, MessageID);
					}
					HideTaskDetails(null);
				}
				else if ( shiftKeyDown )	// Shift key is down
				{
				    iSelectedIndex = DataItemList_GetRowIndexByID(LIST_ID, MessageID);
				    DataItemList_UnselectAllRows(LIST_ID);

					//if (iSelectedIndex < 0) iSelectedIndex = 0;
					//if (gFirstSelectedIndex < 0) gFirstSelectedIndex = 0;
					
					if ( iSelectedIndex > gFirstSelectedIndex )
					{
					    DataItemList_SelectRows(LIST_ID, gFirstSelectedIndex, iSelectedIndex);
					}
					else
					{
					    DataItemList_SelectRows(LIST_ID, iSelectedIndex, gFirstSelectedIndex);
					}
					HideTaskDetails(null);
				}
				else {
					// Unselect all the tasks in the list
				    DataItemList_UnselectAllRows(LIST_ID);
					
					// Now just select the 1 specified
				    DataItemList_SelectRow(LIST_ID, MessageID);

				    iSelectedIndex = DataItemList_GetRowIndexByID(LIST_ID, MessageID);
	            }

	            if (gBrowserType == BROWSER_TYPE_SAFARI && !shiftKeyDown && !ctrlKeyDown) {
	                iSelectedIndex = DataItemList_GetRowIndexByID(LIST_ID, MessageID);
	                gFirstSelectedIndex = iSelectedIndex;
	            }
				
				// get task details
	            clearTimeout(gGetTaskDelayTimeout);
	            
	            if (!ctrlKeyDown && !shiftKeyDown) {
	                gCurMessageID = MessageID;

	                if (gAllowTaskGet) {
	                    getTopAppWindow().Async_LockUI(t_("[ME_TXT-Loading]") + "...");
	                    window.setTimeout(function() { ServerRequest('GET-TASK', 'ID=' + MessageID, false); }, 100);
	                    
	                    gGetTaskDelayTimeout = window.setTimeout(function() {
	                        gAllowTaskGet = true;
	                    }, 1000);
	                }
	                else {
	                    gGetTaskDelayTimeout = window.setTimeout(function() {
	                        getTopAppWindow().Async_LockUI(t_("[ME_TXT-Loading]") + "...");
	                        window.setTimeout(function() { ServerRequest('GET-TASK', 'ID=' + MessageID, false); }, 100);
	                        gAllowTaskGet = true;
	                    }, 1000);
	                }
				}
				
				// disallow further task gets for a time
				gAllowTaskGet = false;
				
				gItemsArrayCurrIndex = ItemsArray_GetCurrIndex(MessageID);

				SetActionButtonsStatus();

				if (gSelectedIM.GetSize() == gTotalItems) {
				    SetSelectAllCheckbox(true);
				}
				else {
				    SetSelectAllCheckbox(false);
				}
				window.status = gSelectedIM.GetSize() + " " + t_("[ME_TXT-Selected]");
				
				gListItemSelected = true;
			}

			function ResizeScrollbar() {
			    ScrollBar_InitializeListRange(SCROLLBAR_DIV, SCROLLBAR_TD, gTotalItems);  // show the scrollbar if needed
			    //ScrollBar_UpdateScrollState(SCROLLBAR_DIV, SCROLLBAR_TD, LIST_CONTAINER, gTotalItems, HEADER_ROW_HEIGHT);      // set scrollbar height
			}
			
			function LogOff()
			{
				getTopAppWindow().SetOption('WebMail-TasksListHeight', gMsgListHeight, false);
			}
			
		-->
		</script>
		
		<!--[if lte IE 7]>
        <style type="text/css">
            .bttn_toolbar_primary_left        {float:left;}
            .bttn_toolbar_primary_right       {float:left;}
            .bttn_dropDown_right              {float:left;}
            .bttn_right                       {float:left;}
            
            #toolbar_primary_bttn_filterTasks_js {width:130px;}
            #toolbar_primary_bttn_viewOptions_js {width:120px;position:relative;}
            #dropDown_filter                     {right:63px;}
                       
            .toolbar_primary_table   {position:relative;z-index:10000;}
            
            .dataTable_table thead td           {margin:0;padding-top:3px;padding-bottom:3px;}
            .dataTable_table                    {margin:0;padding-top:0px;padding-bottom:0px;}
            .dataTable_listTable                {margin:0;padding-top:0px;padding-bottom:0px;}
            .dataTable_listTable_bordered       {margin:0;padding-top:0px;padding-bottom:0px;}
            .dataTable_listTable input          {margin:0;padding:0;height:14px;}
            .dataTable_listTable_bordered input {margin:0;padding-top:0px;padding-bottom:0px;height:14px;}
            
            .dataTable_tickbox  {width:16px !important;text-align:left !important;}
        </style>
        <![endif]-->
	</head>
	<body onload="PageLoad();" style="background-color:Transparent;">
		
		<div class="level0_shell pane-iframe tasks" style="visibility:hidden;">  <!-- level0_shell -->
		
            <div class="ui-layout-center layout-primary" style="overflow:hidden;">    <!-- West Pane -->
                <table class="body_shell_table" border="0" cellspacing="0" cellpadding="0">
                <tr>
                    <td class="bodyCol_contactsList">
                        <div class="toolbar_primary" id="toolbar_primary_js" onselectstart="return false;">
                            <table class="toolbar_primary_table" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td id="toolbar_primary_table_left_js" class="toolbar_primary_table_left">
                                    <div class="toolbar_primary_bttns_td_shell">
                                        <!-- Bttn Email Selected -->
                                        <div id="bttn_newTask" title="<%=uscToken.GetText("[ME_TXT-NewTask]")%>" class="bttn_toolbar_primary_shell" onselectstart="return false;" onclick="AddTask()">
                                            <div class="bttn_toolbar_primary_left">
                                                <div class="toolbar_icon_newTask"></div>
                                                <div class="bttn_toolbar_primary_text"><%=uscToken.GetText("[ME_TXT-NewTask]")%></div>
                                            </div>
                                            <div class="bttn_toolbar_primary_right"></div>
                                        </div>
                                        <div class="bttn_toolbar_primary_divider"></div>
                                        <!-- Bttn Delete Selected -->
                                        <div id="bttn_delete" title="<%=uscToken.GetText("[ME_TXT-Delete]")%>" class="bttn_toolbar_primary_shell" onselectstart="return false;" onclick="ProcessSelectionDelete()">
                                            <div class="bttn_toolbar_primary_left">
                                                <div class="toolbar_icon_delete"></div>
                                                <div class="bttn_toolbar_primary_text"><%=uscToken.GetText("[ME_TXT-Delete]")%></div>
                                            </div>
                                            <div class="bttn_toolbar_primary_right"></div>
                                        </div>
                                        <div class="bttn_toolbar_primary_divider"></div>
                                     </div><!-- toolbar_primary_bttns_td_shell -->
                                </td>
                                <td class="toolbar_primary_table_bttn single">
                                    <!-- Bttn Refresh -->                            
                                    <div class="bttn_toolbar_primary_shell_right refresh_right" onselectstart="return false;" onclick="RefreshList()" title="<%=uscToken.GetText("[ME_TXT-RefreshList]")%>">
                                        <div class="bttn_toolbar_primary_left">
                                            <div class="toolbar_icon_refresh"></div>
                                        </div>
                                        <div class="bttn_toolbar_primary_right"></div>
                                    </div>
                                </td>
                                <td class="toolbar_primary_table_left_bttn" id="toolbar_primary_bttn_filterTasks_js">
                                    <!-- Filter Tasks -->
                                    <div class="bttn_dropDown_float_right" id="bttn_dropDown_filterTasks" onclick="dropDown_toggleDisplay('dropDown_filt')" <%= MailEnable.Clients.WebMail.Mondo.Request.CheckForRTL(Session("lang"))%>>
                                       <div class="bttn_dropDown_left" onselectstart="return false;"><%=uscToken.GetText("[ME_TXT-FilterTasks]")%></div>
                                       <div class="bttn_dropDown_right"></div>
                                    </div>
                                    <div class="bttn_toolbar_primary_divider" style="float:right;"></div>
                                    <div class="clear_div"></div>
                                    <!-- Drop down menu: Filter Tasks -->
                                    <div class="dropDown_shell_right checklist" id="dropDown_filt" onmouseover="dropDown_over('dropDown_filt')" onmouseout="dropDown_out(event, 'dropDown_filt')" <%= MailEnable.Clients.WebMail.Mondo.Request.CheckForRTL(Session("lang"))%>>
                                       <div id="dropDown_filter">
                                           <ul>
                                              <div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_filter');SetFilter(TASK_FILTER_ALL);dropDown_hide('dropDown_filt');"><li class="dropDown_icon_tick" id="li_all"><%=uscToken.GetText("[ME_TXT-AllTasks]")%></li></div>
                                              <div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_filter');SetFilter(TASK_FILTER_ACTIVE);dropDown_hide('dropDown_filt');"><li class="dropDown_icon_blank" id="li_active"><%=uscToken.GetText("[ME_TXT-ActiveTasks]")%></li></div>
                                              <div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_filter');SetFilter(TASK_FILTER_OVERDUE);dropDown_hide('dropDown_filt');"><li class="dropDown_icon_blank" id="li_overdue"><%=uscToken.GetText("[ME_TXT-OverdueTasks]")%></li></div>
                                              <div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_filter');SetFilter(TASK_FILTER_COMPLETED);dropDown_hide('dropDown_filt');"><li class="dropDown_icon_blank" id="li_completed"><%=uscToken.GetText("[ME_TXT-CompletedTasks]")%></li></div>
                                           </ul>
                                       </div>
                                       <div class="dropDown_shell_pointer"></div>
                                    </div>
                                </td>
                                <td class="toolbar_primary_table_left_bttn" id="toolbar_primary_bttn_viewOptions_js">
                                    <!-- View Options -->
                                    <div class="bttn_dropDown_float_right" id="bttn_dropDown_viewOptions" onselectstart="return false;" onclick="dropDown_toggleDisplay('dropDown_viewOpt')" <%= MailEnable.Clients.WebMail.Mondo.Request.CheckForRTL(Session("lang"))%>>
                                       <div class="bttn_dropDown_left"><%=uscToken.GetText("[ME_TXT-View]")%></div>
                                       <div class="bttn_dropDown_right"></div>
                                    </div>
                                    <div class="bttn_toolbar_primary_divider" style="float:right;"></div>
                                    <div class="clear_div"></div>
                                    <!-- Drop down menu: View Options -->
                                    <div class="dropDown_shell_right checklist" id="dropDown_viewOpt" onmouseover="dropDown_over('dropDown_viewOpt')" onmouseout="dropDown_out(event, 'dropDown_viewOpt')" <%= MailEnable.Clients.WebMail.Mondo.Request.CheckForRTL(Session("lang"))%>>
                                       <div id="dropDown_viewOptions">
                                           <ul>
                                              <div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_viewOptions');SetView(TASK_VIEW_SIMPLE);dropDown_hide('dropDown_viewOpt');"><li class="dropDown_icon_blank" id="li_simple"><%=uscToken.GetText("[ME_TXT-SimpleList]")%></li></div>
                                              <div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_viewOptions');SetView(TASK_VIEW_DETAILED);dropDown_hide('dropDown_viewOpt');"><li class="dropDown_icon_tick" id="li_detailed"><%=uscToken.GetText("[ME_TXT-DetailedList]")%></li></div>
                                           </ul>
                                       </div>
                                       <div class="dropDown_shell_pointer"></div>
                                    </div>
                                </td>
                              </tr>
                            </table><!--toolbar_primary_table -->
                       </div><!-- toolbar_primary -->
                        
                        <div id="msgList_shell_js" class="dataTable_shell">
                        </div>
                        
                        <div class="contacts_foot_shell" id="tasks_foot_shell_js">
                           <table class="contacts_foot_table" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td>
                                    <div class="contacts_foot_form_div">
                        	            <select id="ddlSharedTasks" onchange="if (!DisabledOptionSelected(this)) ShareChanged()">
                                          <option disabled><%=uscToken.GetText("[ME_TXT-SharedTasks]")%>...</option>
                                          <option disabled>- - - - - - - - - - - - - - - - - - -</option>
                                          <option value="Mine"><%=uscToken.GetText("[ME_TXT-MyTasks]")%></option>
                                       </select>
                                    </div>
                                </td>
                              </tr>
                           </table>
                        </div><!-- contacts_foot_shell -->
                    </td>
                </tr>
                </table>
            </div>  <!-- West Pane -->
        
            <div class="ui-layout-east layout-primary">    <!-- East Pane -->
                <table class="body_shell_table" border="0" cellspacing="0" cellpadding="0">
                <tr>
                    <td class="bodyCol_contactsDetails">
	                    <div class="contactsDetails_shell" id="contactsDetails_shell_js">    	                    
    	                    <div class="contactsDetails_shell_inner"> <!-- -->
                                <div id="divTaskDetails" class="contactsDetails_content" style="display:none;">
                                        <uc2:TaskDetails id="TaskDetails" runat="server"></uc2:TaskDetails>                        
                                        <!-- OK / Cancel Bttns -->
                                        <div class="optionsPanel_foot_bttns" onselectstart="return false;">
                                          <div class="bttn_float_right" onclick="HideTaskDetails(null)" onselectstart="return false;">
                                             <div class="bttn_left"><div id="btnCancel" class="compose_bttn_okCancel"><%=uscToken.GetText("[ME_TXT-Cancel]")%></div></div>
                                             <div class="bttn_right"></div>
                                          </div>
                                          <div class="bttn_float_right" onclick="SaveDetails()" onselectstart="return false;">
                                             <div class="bttn_left"><div id="btnUpdate" class="compose_bttn_okCancel"><%=uscToken.GetText("[ME_TXT-Save]")%></div></div>
                                             <div class="bttn_right"></div>
                                          </div>
                                          <div class="clear_div"></div>
                                        </div>
                                </div><!-- optionsPanel_shell -->
                               
                            </div><!-- contactsDetails_shell_inner -->
                         </div><!-- contactsDetails_shell -->
                    </td><!-- bodyCol_contactsDetails -->
                </tr>
                </table>
                
            </div>  <!-- East Pane -->
            
            
            <!-- Message List - PopUp List Control -->
            <div id="menudiv" style="position:absolute;display:none;top:0px;left:0px;z-index:10100;" onmouseover="PopUp_MenuSetState(2);" onmouseout="PopUp_MenuOutOfScope(event, 'menudiv');">
                <table>
                <tr>
                    <td>
	                    <table id="menuItemsdiv" class="rightClickMenu_shell" border="0" cellpadding="0" cellspacing="0" onmouseover="PopUp_MenuSetState(1);">
	                        <tbody>
                                <tr>
                                    <td class="rightClickMenu_shell_topleft"><div class="rightClickMenu_shell_topleft_div"></div></td>
                                    <td class="rightClickMenu_shell_top"></td>
                                    <td class="rightClickMenu_shell_topRight"></td>
                                </tr>
                                <tr>
                                    <td class="rightClickMenu_shell_left"></td>
                                    <td class="rightClickMenu_shell_mid">
                                        <div class="rightClickMenu_body_shell">
                                            <ul>
                                                <!-- Popup row items get added here -->
                                            </ul>
                                       </div>
                                    </td>
                                    <td class="rightClickMenu_shell_right"></td>
                                </tr>
                                <tr>
                                    <td class="rightClickMenu_shell_botLeft"><div class="rightClickMenu_shell_botLeft_div"></div></td>
                                    <td class="rightClickMenu_shell_bot"></td>
                                    <td class="rightClickMenu_shell_botRight"></td>
                                </tr>
	                        </tbody>
	                    </table>
                    </td>
                </tr>
                </table>
            </div>
		    
		</div>  <!-- level0_shell -->
		
		<script type="text/javascript">
		<!--
		    oConfirmation_Task = new MessageDialog("ConfirmDialog");
			oAlertDialog = new MessageDialog("AlertDialog");
		-->
		</script>
	</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit