[Vtigercrm-commits] [vtiger-commits] r9926 - in /vtigercrm/branches/5.0.3: Smarty/templates/ActivityListView.tpl modules/Calendar/ListView.php modules/Calendar/addEventUI.php modules/Calendar/calendarLayout.php modules/Calendar/script.js

vtigercrm-commits at vtiger.fosslabs.com vtigercrm-commits at vtiger.fosslabs.com
Wed Nov 29 09:41:05 EST 2006


Author: richie
Date: Wed Nov 29 07:40:53 2006
New Revision: 9926

Log:
Related to and Action Security added in calendar listview

Modified:
    vtigercrm/branches/5.0.3/Smarty/templates/ActivityListView.tpl
    vtigercrm/branches/5.0.3/modules/Calendar/ListView.php
    vtigercrm/branches/5.0.3/modules/Calendar/addEventUI.php
    vtigercrm/branches/5.0.3/modules/Calendar/calendarLayout.php
    vtigercrm/branches/5.0.3/modules/Calendar/script.js

Modified: vtigercrm/branches/5.0.3/Smarty/templates/ActivityListView.tpl
==============================================================================
--- vtigercrm/branches/5.0.3/Smarty/templates/ActivityListView.tpl (original)
+++ vtigercrm/branches/5.0.3/Smarty/templates/ActivityListView.tpl Wed Nov 29 07:40:53 2006
@@ -1,518 +1,527 @@
-{*<!--
-
-/*********************************************************************************
-** The contents of this file are subject to the vtiger CRM Public License Version 1.0
- * ("License"); You may not use this file except in compliance with the License
- * The Original Code is:  vtiger CRM Open Source
- * The Initial Developer of the Original Code is vtiger.
- * Portions created by vtiger are Copyright (C) vtiger.
- * All Rights Reserved.
-*
- ********************************************************************************/
-
--->*}
-
-{*<!-- module header -->*}
-<script language="JavaScript" type="text/javascript" src="include/js/general.js"></script>
-<script language="JavaScript" type="text/javascript" src="include/js/ListView.js"></script>
-<script language="JavaScript" type="text/javascript" src="include/js/search.js"></script>
-<script language="JavaScript" type="text/javascript" src="modules/{$MODULE}/{$SINGLE_MOD}.js"></script>
-<script language="javascript">
-function checkgroup()
-{ldelim}
-
-  if(document.change_ownerform_name.user_lead_owner[1].checked)
-  {ldelim}
-          document.change_ownerform_name.lead_group_owner.style.display = "block";
-          document.change_ownerform_name.lead_owner.style.display = "none";
-  {rdelim}
-  else
-  {ldelim}
-          document.change_ownerform_name.lead_owner.style.display = "block";
-          document.change_ownerform_name.lead_group_owner.style.display = "none";
-  {rdelim}    
-  
-{rdelim}
-function callSearch(searchtype)
-{ldelim}
-	for(i=1;i<=26;i++)
-    	{ldelim}
-        	var data_td_id = 'alpha_'+ eval(i);
-        	getObj(data_td_id).className = 'searchAlph';
-    	{rdelim}
-   	gPopupAlphaSearchUrl = '';
-
-	search_fld_val= document.basicSearch.search_field[document.basicSearch.search_field.selectedIndex].value;
-        search_txt_val=document.basicSearch.search_text.value;
-        var urlstring = '';
-        if(searchtype == 'Basic')
-        {ldelim}
-                urlstring = 'search_field='+search_fld_val+'&searchtype=BasicSearch&search_text='+search_txt_val+'&';
-        {rdelim}
-        else if(searchtype == 'Advanced')
-        {ldelim}
-                var no_rows = document.basicSearch.search_cnt.value;
-                for(jj = 0 ; jj < no_rows; jj++)
-                {ldelim}
-                        var sfld_name = getObj("Fields"+jj);
-                        var scndn_name= getObj("Condition"+jj);
-                        var srchvalue_name = getObj("Srch_value"+jj);
-                        urlstring = urlstring+'Fields'+jj+'='+sfld_name[sfld_name.selectedIndex].value+'&';
-                        urlstring = urlstring+'Condition'+jj+'='+scndn_name[scndn_name.selectedIndex].value+'&';
-                        urlstring = urlstring+'Srch_value'+jj+'='+srchvalue_name.value+'&';
-                {rdelim}
-                for (i=0;i<getObj("matchtype").length;i++){ldelim}
-                        if (getObj("matchtype")[i].checked==true)
-                                urlstring += 'matchtype='+getObj("matchtype")[i].value+'&';
-                {rdelim}
-                urlstring += 'search_cnt='+no_rows+'&';
-                urlstring += 'searchtype=advance&'
-        {rdelim}
-	new Ajax.Request(
-		'index.php',
-		{ldelim}queue: {ldelim}position: 'end', scope: 'command'{rdelim},
-			method: 'post',
-			postBody:urlstring +'query=true&file=ListView&module={$MODULE}&action={$MODULE}Ajax&ajax=true',
-			onComplete: function(response) {ldelim}
-				$("status").style.display="none";
-                                result = response.responseText.split('&#&#&#');
-                                $("ListViewContents").innerHTML= result[2];
-                                if(result[1] != '')
-                                        alert(result[1]);
-			{rdelim}
-	       {rdelim}
-        );
-
-{rdelim}
-function alphabetic(module,url,dataid)
-{ldelim}
-        for(i=1;i<=26;i++)
-        {ldelim}
-                var data_td_id = 'alpha_'+ eval(i);
-                getObj(data_td_id).className = 'searchAlph';
-
-        {rdelim}
-        getObj(dataid).className = 'searchAlphselected';
-	$("status").style.display="inline";
-	new Ajax.Request(
-		'index.php',
-		{ldelim}queue: {ldelim}position: 'end', scope: 'command'{rdelim},
-			method: 'post',
-			postBody: 'module='+module+'&action='+module+'Ajax&file=ListView&ajax=true&'+url,
-			onComplete: function(response) {ldelim}
-				$("status").style.display="none";
-				result = response.responseText.split('&#&#&#');
-				$("ListViewContents").innerHTML= result[2];
-				if(result[1] != '')
-			                alert(result[1]);
-			{rdelim}
-		{rdelim}
-	);
-{rdelim}
-
-</script>
-
-		{include file='Buttons_List.tpl'}
-                                <div id="searchingUI" style="display:none;">
-                                        <table border=0 cellspacing=0 cellpadding=0 width=100%>
-                                        <tr>
-                                                <td align=center>
-                                                <img src="images/searching.gif" alt="Searching... please wait"  title="Searching... please wait">
-                                                </td>
-                                        </tr>
-                                        </table>
-
-                                </div>
-                        </td>
-                </tr>
-                </table>
-        </td>
-</tr>
-</table>
-
-{*<!-- Contents -->*}
-<form name="basicSearch" action="index.php" onsubmit="return false;">
-<table border=0 cellspacing=0 cellpadding=0 width=98% align=center>
-     <tr>
-        <td valign=top><img src="{$IMAGE_PATH}showPanelTopLeft.gif"></td>
-
-	<td class="showPanelBg" valign="top" width=100% style="padding:10px;">
-	 <!-- SIMPLE SEARCH -->
-<div id="searchAcc" style="z-index:1;display:none;position:relative;">
-<table width="80%" cellpadding="5" cellspacing="0"  class="searchUIBasic small" align="center" border=0>
-	<tr>
-		<td class="searchUIName small" nowrap align="left">
-		<span class="moduleName">Search</span><br><span class="small"><a href="#" onClick="fnhide('searchAcc');show('advSearch');document.basicSearch.searchtype.value='advance';">{$APP.LBL_GO_TO} {$APP.LNK_ADVANCED_SEARCH}</a></span>
-		<!-- <img src="{$IMAGE_PATH}basicSearchLens.gif" align="absmiddle" alt="{$APP.LNK_BASIC_SEARCH}" title="{$APP.LNK_BASIC_SEARCH}" border=0>&nbsp;&nbsp;-->
-		</td>
-		<td class="small" nowrap align=right><b>{$APP.LBL_SEARCH_FOR}</b></td>
-		<td class="small"><input type="text"  class="txtBox" style="width:120px" name="search_text"></td>
-		<td class="small" nowrap><b>{$APP.LBL_IN}</b>&nbsp;
-			<select name ="search_field" class="txtBox" style="width:150px">
-			 {html_options  options=$SEARCHLISTHEADER }
-			</select>
-                        <input type="hidden" name="searchtype" value="BasicSearch">
-                        <input type="hidden" name="module" value="{$MODULE}">
-                        <input type="hidden" name="parenttab" value="{$CATEGORY}">
-			<input type="hidden" name="action" value="index">
-                        <input type="hidden" name="query" value="true">
-			<input type="hidden" name="search_cnt">
-		</td>
-		<td class="small" nowrap width=40% >
-			  <input name="submit" type="button" class="crmbutton small create" onClick="callSearch('Basic');" value=" {$APP.LBL_SEARCH_NOW_BUTTON} ">&nbsp;
-			  
-		</td>
-		<td class="small" valign="top" onMouseOver="this.style.cursor='pointer';" onclick="moveMe('searchAcc');searchshowhide('searchAcc','advSearch')">[x]</td>
-	</tr>
-	<tr>
-		<td colspan="6" align="center" class="small">
-			<table border=0 cellspacing=0 cellpadding=0 width=100%>
-				<tr>
-                                                {$ALPHABETICAL}
-                                </tr>
-                        </table>
-		</td>
-	</tr>
-</table>
-</div>
-<!-- ADVANCED SEARCH -->
-<div id="advSearch" style="display:none;">
-		<table  cellspacing=0 cellpadding=5 width=80% class="searchUIAdv1 small" align="center" border=0>
-			<tr>
-					<td class="searchUIName small" nowrap align="left"><span class="moduleName">Search</span><br><span class="small"><a href="#" onClick="show('searchAcc');fnhide('advSearch')">{$APP.LBL_GO_TO} {$APP.LNK_BASIC_SEARCH}</a></span></td>
-					<td nowrap class="small"><b><input name="matchtype" type="radio" value="all">&nbsp;{$APP.LBL_ADV_SEARCH_MSG_ALL}</b></td>
-					<td nowrap width=60% class="small" ><b><input name="matchtype" type="radio" value="any" checked>&nbsp;{$APP.LBL_ADV_SEARCH_MSG_ANY}</b></td>
-					<td class="small" valign="top" onMouseOver="this.style.cursor='pointer';" onclick="moveMe('searchAcc');searchshowhide('searchAcc','advSearch')">[x]</td>
-			</tr>
-		</table>
-		<table cellpadding="2" cellspacing="0" width="80%" align="center" class="searchUIAdv2 small" border=0>
-			<tr>
-				<td align="center" class="small" width=90%>
-				<div id="fixed" style="position:relative;width:95%;height:80px;padding:0px; overflow:auto;border:1px solid #CCCCCC;background-color:#ffffff" class="small">
-					<table border=0 width=95%>
-					<tr>
-					<td align=left>
-						<table width="100%"  border="0" cellpadding="2" cellspacing="0" id="adSrc" align="left">
-						<tr  >
-							<td width="31%"><select name="Fields0" class="detailedViewTextBox">
-							{$FIELDNAMES}
-							</select>
-							</td>
-							<td width="32%"><select name="Condition0" class="detailedViewTextBox">
-								{$CRITERIA}
-							</select>
-							</td>
-							<td width="32%"><input type="text" name="Srch_value0" class="detailedViewTextBox"></td>
-						</tr>
-						</table>
-					</td>
-					</tr>
-				</table>
-				</div>	
-				</td>
-			</tr>
-		</table>
-			
-		<table border=0 cellspacing=0 cellpadding=5 width=80% class="searchUIAdv3 small" align="center">
-		<tr>
-			<td align=left width=40%>
-						<input type="button" name="more" value=" {$APP.LBL_MORE} " onClick="fnAddSrch('{$FIELDNAMES}','{$CRITERIA}')" class="crmbuttom small edit" >
-						<input name="button" type="button" value=" {$APP.LBL_FEWER_BUTTON} " onclick="delRow()" class="crmbuttom small edit" >
-			</td>
-			<td align=left class="small"><input type="button" class="crmbutton small create" value=" {$APP.LBL_SEARCH_NOW_BUTTON} " onClick="totalnoofrows();callSearch('Advanced');">
-			</td>
-		</tr>
-	</table>
-</div>		
-</form>
-{*<!-- Searching UI -->*}
-
-
-<div class="small" style="padding: 10px;">
-	<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
-		<tr>
-			<td>
-				<table class="small" border="0" cellpadding="3" cellspacing="0" width="100%">
-				<tr>
-					<td class="dvtTabCache" style="width: 10px;" nowrap="nowrap">&nbsp;</td>
-					<td class="dvtUnSelectedCell" align="center" nowrap="nowrap"><a href="index.php?action=index&module=Calendar&parenttab={$CATEGORY}">{$APP.Calendar}</a></td>
-					<td class="dvtTabCache" style="width: 10px;">&nbsp;</td>
-					<td class="dvtSelectedCell" align="center" nowrap="nowrap">{$MOD.LBL_ALL_EVENTS_TODOS}</td>
-					<td class="dvtTabCache" style="width: 100%;">&nbsp;</td>
-				</tr>
-                                </table>
-                        </td>
-                </tr>
-		<tr>
-			<td align="left" valign="top">
-				<table class="dvtContentSpace" border="0" cellpadding="3" cellspacing="0" width="100%">
-					<tr>
-						<td align="left">
-							<!-- content cache -->
-							<table border="0" cellpadding="0" cellspacing="0" width="100%">
-								<tr>
-									<td style="padding: 10px;">
-
-	   <!-- PUBLIC CONTENTS STARTS-->
-	   <div id="ListViewContents" class="small" style="width:100%;position:relative;">
-     <form name="massdelete" method="POST">
-     <input name='search_url' id="search_url" type='hidden' value='{$SEARCH_URL}'>
-     <input name="idlist" id="idlist" type="hidden">
-     <input name="change_owner" type="hidden">
-     <input name="change_status" type="hidden">
-     <input name="allids" type="hidden" value="{$ALLIDS}">
-               <table border=0 cellspacing=1 cellpadding=0 width=100% class="lvtBg">
-	            <tr >
-		      <td>
-		         <table border=0 cellspacing=0 cellpadding=2 width=100% class="small">
-			      <tr>
-				 <td style="padding-right:20px" nowrap>
-                                 {foreach key=button_check item=button_label from=$BUTTONS}
-                                        {if $button_check eq 'del'}
-                                             <input class="crmbutton small delete" type="button" value="{$button_label}" onclick="return massDelete('{$MODULE}')"/>
-                                        {elseif $button_check eq 's_mail'}
-                                             <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return eMail('{$MODULE}',this);"/>
-                                        {elseif $button_check eq 's_cmail'}
-                                             <input class="crmbutton small edit" type="submit" value="{$button_label}" onclick="return massMail('{$MODULE}')"/>
-                                        {elseif $button_check eq 'c_status'}
-                                             <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return change(this,'changestatus')"/>
-					{elseif $button_check eq 'c_owner'}
-						{if $MODULE neq 'Notes' && $MODULE neq 'Products' && $MODULE neq 'Faq' && $MODULE neq 'Vendors' && $MODULE neq 'PriceBooks'}
-						     <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return change(this,'changeowner')"/>
-                                                {/if}
-                                        {/if}
-
-                                 {/foreach}
-                    </td>
-				 <td style="padding-right:20px" class="small" nowrap>{$RECORD_COUNTS}</td>
-		        	 <td nowrap >
-					<table border=0 cellspacing=0 cellpadding=0 class="small">
-					     <tr>{$NAVIGATION}</tr>
-					</table>
-                    </td>
-				 <td width=100% align="right">
-				   <table border=0 cellspacing=0 cellpadding=0 class="small">
-					<tr>
-						<td>{$APP.LBL_VIEW}</td>
-						<td style="padding-left:5px;padding-right:5px">
-                                                    <SELECT NAME="viewname" id="viewname" class="small" onchange="showDefaultCustomView(this,'{$MODULE}')">{$CUSTOMVIEW_OPTION}</SELECT></td>
-                                                    {if $ALL eq 'All'}
-							<td><a href="index.php?module={$MODULE}&action=CustomView&parenttab={$CATEGORY}">{$APP.LNK_CV_CREATEVIEW}</a>
-							<span class="small">|</span>
-							<span class="small" disabled>{$APP.LNK_CV_EDIT}</span>
-							<span class="small">|</span>
-                                                        <span class="small" disabled>{$APP.LNK_CV_DELETE}</span></td>
-						    {else}
-							<td><a href="index.php?module={$MODULE}&action=CustomView&parenttab={$CATEGORY}">{$APP.LNK_CV_CREATEVIEW}</a>
-							<span class="small">|</span>
-                                                        <a href="index.php?module={$MODULE}&action=CustomView&record={$VIEWID}&parenttab={$CATEGORY}">{$APP.LNK_CV_EDIT}</a>
-                                                        <span class="small">|</span>
-							<a href="index.php?module=CustomView&action=Delete&dmodule={$MODULE}&record={$VIEWID}&parenttab={$CATEGORY}">{$APP.LNK_CV_DELETE}</a></td>
-						    {/if}
-					</tr>
-				   </table>
-				 </td>	
-       		       </tr>
-			 </table>
-                         <div  class="calDIV" style="overflow:auto;">
-			 <table border=0 cellspacing=1 cellpadding=3 width=100% class="calListTable" class="small">
-			      <tr>
-             			 <td class="lvtCol"><input type="checkbox"  name="selectall" onClick=toggleSelect(this.checked,"selected_id")></td>
-				 {foreach name="listviewforeach" item=header from=$LISTHEADER}
-        			 <td class="lvtCol">{$header}</td>
-			         {/foreach}
-			      </tr>
-			      {foreach item=entity key=entity_id from=$LISTENTITY}
-			      <tr bgcolor=white onMouseOver="this.className='lvtColDataHover'" onMouseOut="this.className='lvtColData'" id="row_{$entity_id}">
-				 <td width="2%"><input type="checkbox" NAME="selected_id" value= '{$entity_id}' onClick=toggleSelectAll(this.name,"selectall")></td>
-				 {foreach item=data from=$entity}	
-				 <td>{$data}</td>
-	                         {/foreach}
-			      </tr>
-			      {foreachelse}
-				<tr><td style="background-color:#efefef;height:340px" align="center" colspan="{$smarty.foreach.listviewforeach.iteration+1}">
-						<div style="border: 3px solid rgb(153, 153, 153); background-color: rgb(255, 255, 255); width: 45%; position: relative; z-index: 10000000;">
-							{assign var=vowel_conf value='LBL_A'}
-							{assign var=MODULE_CREATE value=$SINGLE_MOD}
-
-							{if $CHECK.EditView eq 'yes' && $MODULE neq 'Emails' && $MODULE neq 'Webmails'}
-							
-							<table border="0" cellpadding="5" cellspacing="0" width="98%">
-							<tr>
-								<td rowspan="2" width="25%"><img src="{$IMAGE_PATH}empty.jpg" height="60" width="61"></td>
-								<td style="border-bottom: 1px solid rgb(204, 204, 204);" nowrap="nowrap" width="75%"><span class="genHeaderSmall">{$APP.LBL_NO} {$APP.$MODULE_CREATE}s {$APP.LBL_FOUND} !</span></td>
-							</tr>
-							<tr>
-							<td class="small" align="left" nowrap="nowrap">{$APP.LBL_YOU_CAN_CREATE} {$APP.$vowel_conf} {$APP.$MODULE_CREATE} {$APP.LBL_NOW}. {$APP.LBL_CLICK_THE_LINK}:<br>
-								   {if $MODULE neq 'Calendar'}	
-						  			&nbsp;&nbsp;-<a href="index.php?module={$MODULE}&action=EditView&return_action=DetailView&parenttab={$CATEGORY}">{$APP.LBL_CREATE} {$APP.$vowel_conf} {$APP.$MODULE_CREATE}</a><br>
-								   {else}
-									&nbsp;&nbsp;-<a href="index.php?module={$MODULE}&amp;action=EditView&amp;return_module=Calendar&amp;activity_mode=Events&amp;return_action=DetailView&amp;activitytype=Meeting&amp;parenttab={$CATEGORY}">{$APP.LBL_CREATE} {$APP.LBL_A} {$APP.Meeting}</a><br>
-									&nbsp;&nbsp;-<a href="index.php?module={$MODULE}&amp;action=EditView&amp;return_module=Calendar&amp;activity_mode=Events&amp;return_action=DetailView&amp;activitytype=Call&amp;parenttab={$CATEGORY}">{$APP.LBL_CREATE} {$APP.LBL_A} {$APP.Call}</a><br>
-									&nbsp;&nbsp;-<a href="index.php?module={$MODULE}&amp;action=EditView&amp;return_module=Calendar&amp;activity_mode=Task&amp;return_action=DetailView&amp;parenttab={$CATEGORY}">{$APP.LBL_CREATE} {$APP.LBL_A} {$APP.Todo}</a>
-								   {/if}
-								</td>
-							</tr>
-							</table> 
-							{else}
-							<table border="0" cellpadding="5" cellspacing="0" width="98%">
-							<tr>
-								<td rowspan="2" width="25%"><img src="{$IMAGE_PATH}empty.jpg" height="60" width="61"></td>
-								<td style="border-bottom: 1px solid rgb(204, 204, 204);" nowrap="nowrap" width="75%"><span class="genHeaderSmall">{$APP.LBL_NO} {$APP.$MODULE_CREATE}s {$APP.LBL_FOUND} !</span></td>
-							</tr>
-							<tr>
-								<td class="small" align="left" nowrap="nowrap">{$APP.LBL_YOU_ARE_NOT_ALLOWED_TO_CREATE} {$APP.$vowel_conf} {$APP.$MODULE_CREATE}<br>
-								</td>
-							</tr>
-							</table>
-							{/if}
-						</div>					
-				</td></tr>	
-			      {/foreach}
-			 </table>
-			 </div>
-			 <table border=0 cellspacing=0 cellpadding=2 width=100%>
-			      <tr>
-				 <td style="padding-right:20px" nowrap>
-                                 {foreach key=button_check item=button_label from=$BUTTONS}
-                                        {if $button_check eq 'del'}
-                                            <input class="crmbutton small delete" type="button" value="{$button_label}" onclick="return massDelete('{$MODULE}')"/>
-                                        {elseif $button_check eq 's_mail'}
-                                             <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return eMail('{$MODULE}',this)"/>
-                                        {elseif $button_check eq 's_cmail'}
-                                             <input class="crmbutton small edit" type="submit" value="{$button_label}" onclick="return massMail('{$MODULE}')"/>
-                                        {elseif $button_check eq 'c_status'}
-                                             <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return change(this,'changestatus')"/>
-					{elseif $button_check eq 'c_owner'}
-				                {if $MODULE neq 'Notes' && $MODULE neq 'Products' && $MODULE neq 'Faq' && $MODULE neq 'Vendors' && $MODULE neq 'PriceBooks'}
-                                                     <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return change(this,'changeowner')"/>
-                                                {/if}
-                                        {/if}
-
-                                 {/foreach}
-                    </td>
-				 <td style="padding-right:20px" class="small" nowrap>{$RECORD_COUNTS}</td>
-				 <td nowrap >
-				    <table border=0 cellspacing=0 cellpadding=0 class="small">
-				         <tr>{$NAVIGATION}</tr>
-				     </table>
-				 </td>
-				 <td align="right" width=100%>
-				   <table border=0 cellspacing=0 cellpadding=0 class="small">
-					<tr>
-                                           {$WORDTEMPLATEOPTIONS}{$MERGEBUTTON}
-					</tr>
-				   </table>
-				 </td>
-			      </tr>
-       		    </table>
-		       </td>
-		   </tr>
-	    </table>
-
-   </form>	
-{$SELECT_SCRIPT}
-	</div>
-	 </td></tr></table>
-	 </td></tr></table>
-         </td></tr></table>
-        </div>
-
-     </td>
-        <td valign=top><img src="{$IMAGE_PATH}showPanelTopRight.gif"></td>
-   </tr>
-</table>
-
-
-<div id="changeowner" class="statechange">
-<table width="100%" border="0" cellpadding="3" cellspacing="0">
-<tr>
-	<td class="genHeaderSmall" align="left" style="border-bottom:1px solid #CCCCCC;" width="60%">{$APP.LBL_CHANGE_OWNER}</td>
-	<td style="border-bottom: 1px solid rgb(204, 204, 204);">&nbsp;</td>
-	<td align="right" style="border-bottom:1px solid #CCCCCC;" width="40%"><a href="javascript:fninvsh('changeowner')">{$APP.LBL_CLOSE}</a></td>
-</tr>
-<tr>
-	<td colspan="3">&nbsp;</td>
-</tr>
-<tr>
-	<td width="50%"><b>{$APP.LBL_TRANSFER_OWNERSHIP}</b></td>
-	<td width="2%"><b>:</b></td>
-	<td width="48%">
-	         <form name="change_ownerform_name">
-	        <input type = "radio" name = "user_lead_owner"  onclick=checkgroup();  checked>{$APP.LBL_USER}&nbsp;
-					<input type = "radio" name = "user_lead_owner" onclick=checkgroup(); >{$APP.LBL_GROUP}<br>
-					<select name="lead_owner" id="lead_owner" class="detailedViewTextBox">
-					{$CHANGE_OWNER}
-					</select>
-					<select name="lead_group_owner" id="lead_group_owner" class="detailedViewTextBox" style="display:none;">
-					{$CHANGE_GROUP_OWNER}
-					</select>
-					</form>
-	</td>
-</tr>
-<tr><td colspan="3" style="border-bottom:1px dashed #CCCCCC;">&nbsp;</td></tr>
-<tr>
-	<td colspan="3" align="center">
-	&nbsp;&nbsp;
-	<input type="button" name="button" class="crmbutton small edit" value="{$APP.LBL_UPDATE_OWNER}" onClick="ajaxChangeStatus('owner')">
-	<input type="button" name="button" class="crmbutton small cancel" value="{$APP.LBL_CANCEL_BUTTON_LABEL}" onClick="fninvsh('changeowner')">
-</td>
-</tr>
-</table>
-</div>
-
-
-<script>
-{literal}
-
-function ajaxChangeStatus(statusname)
-{
-	$("status").style.display="inline";
-	var viewid = document.massdelete.viewname.value;
-	var idstring = document.getElementById('idlist').value;
-	if(statusname == 'status')
-	{
-		fninvsh('changestatus');
-		var url='&leadval='+document.getElementById('lead_status').options[document.getElementById('lead_status').options.selectedIndex].value;
-		var urlstring ="module=Users&action=updateLeadDBStatus&return_module=Leads"+url+"&viewname="+viewid+"&idlist="+idstring;
-	}
-	else if(statusname == 'owner')
-	{
-		
-	   if(document.change_ownerform_name.user_lead_owner[0].checked)
-	   {
-		    fninvsh('changeowner');
-		    var url='&user_id='+document.getElementById('lead_owner').options[document.getElementById('lead_owner').options.selectedIndex].value;
-		    {/literal}
-		        var urlstring ="module=Users&action=updateLeadDBStatus&return_module={$MODULE}"+url+"&viewname="+viewid+"&idlist="+idstring;
-		    {literal}
-     }
-    else
-    {
-        fninvsh('changeowner');
-		    var url='&group_id='+document.getElementById('lead_group_owner').options[document.getElementById('lead_group_owner').options.selectedIndex].value;
-	       {/literal}
-		        var urlstring ="module=Users&action=updateLeadDBStatus&return_module={$MODULE}"+url+"&viewname="+viewid+"&idlist="+idstring;
-		    {literal}
-    }
-
-	}
-	new Ajax.Request(
-                'index.php',
-                {queue: {position: 'end', scope: 'command'},
-                        method: 'post',
-                        postBody: urlstring,
-                        onComplete: function(response) {
-                                $("status").style.display="none";
-                                result = response.responseText.split('&#&#&#');
-                                $("ListViewContents").innerHTML= result[2];
-                                if(result[1] != '')
-                                        alert(result[1]);
-                        }
-                }
-        );
-	
-}
-</script>
-{/literal}
-
+{*<!--
+
+/*********************************************************************************
+** The contents of this file are subject to the vtiger CRM Public License Version 1.0
+ * ("License"); You may not use this file except in compliance with the License
+ * The Original Code is:  vtiger CRM Open Source
+ * The Initial Developer of the Original Code is vtiger.
+ * Portions created by vtiger are Copyright (C) vtiger.
+ * All Rights Reserved.
+*
+ ********************************************************************************/
+
+-->*}
+
+{*<!-- module header -->*}
+<script language="JavaScript" type="text/javascript" src="include/js/general.js"></script>
+<script language="JavaScript" type="text/javascript" src="include/js/ListView.js"></script>
+<script language="JavaScript" type="text/javascript" src="include/js/search.js"></script>
+<script language="JavaScript" type="text/javascript" src="modules/{$MODULE}/{$SINGLE_MOD}.js"></script>
+<script language="javascript">
+function checkgroup()
+{ldelim}
+
+  if(document.change_ownerform_name.user_lead_owner[1].checked)
+  {ldelim}
+          document.change_ownerform_name.lead_group_owner.style.display = "block";
+          document.change_ownerform_name.lead_owner.style.display = "none";
+  {rdelim}
+  else
+  {ldelim}
+          document.change_ownerform_name.lead_owner.style.display = "block";
+          document.change_ownerform_name.lead_group_owner.style.display = "none";
+  {rdelim}    
+  
+{rdelim}
+function callSearch(searchtype)
+{ldelim}
+	for(i=1;i<=26;i++)
+    	{ldelim}
+        	var data_td_id = 'alpha_'+ eval(i);
+        	getObj(data_td_id).className = 'searchAlph';
+    	{rdelim}
+   	gPopupAlphaSearchUrl = '';
+
+	search_fld_val= document.basicSearch.search_field[document.basicSearch.search_field.selectedIndex].value;
+        search_txt_val=document.basicSearch.search_text.value;
+        var urlstring = '';
+        if(searchtype == 'Basic')
+        {ldelim}
+                urlstring = 'search_field='+search_fld_val+'&searchtype=BasicSearch&search_text='+search_txt_val+'&';
+        {rdelim}
+        else if(searchtype == 'Advanced')
+        {ldelim}
+                var no_rows = document.basicSearch.search_cnt.value;
+                for(jj = 0 ; jj < no_rows; jj++)
+                {ldelim}
+                        var sfld_name = getObj("Fields"+jj);
+                        var scndn_name= getObj("Condition"+jj);
+                        var srchvalue_name = getObj("Srch_value"+jj);
+                        urlstring = urlstring+'Fields'+jj+'='+sfld_name[sfld_name.selectedIndex].value+'&';
+                        urlstring = urlstring+'Condition'+jj+'='+scndn_name[scndn_name.selectedIndex].value+'&';
+                        urlstring = urlstring+'Srch_value'+jj+'='+srchvalue_name.value+'&';
+                {rdelim}
+                for (i=0;i<getObj("matchtype").length;i++){ldelim}
+                        if (getObj("matchtype")[i].checked==true)
+                                urlstring += 'matchtype='+getObj("matchtype")[i].value+'&';
+                {rdelim}
+                urlstring += 'search_cnt='+no_rows+'&';
+                urlstring += 'searchtype=advance&'
+        {rdelim}
+	new Ajax.Request(
+		'index.php',
+		{ldelim}queue: {ldelim}position: 'end', scope: 'command'{rdelim},
+			method: 'post',
+			postBody:urlstring +'query=true&file=ListView&module={$MODULE}&action={$MODULE}Ajax&ajax=true',
+			onComplete: function(response) {ldelim}
+				$("status").style.display="none";
+                                result = response.responseText.split('&#&#&#');
+                                $("ListViewContents").innerHTML= result[2];
+                                if(result[1] != '')
+                                        alert(result[1]);
+			{rdelim}
+	       {rdelim}
+        );
+
+{rdelim}
+function alphabetic(module,url,dataid)
+{ldelim}
+        for(i=1;i<=26;i++)
+        {ldelim}
+                var data_td_id = 'alpha_'+ eval(i);
+                getObj(data_td_id).className = 'searchAlph';
+
+        {rdelim}
+        getObj(dataid).className = 'searchAlphselected';
+	$("status").style.display="inline";
+	new Ajax.Request(
+		'index.php',
+		{ldelim}queue: {ldelim}position: 'end', scope: 'command'{rdelim},
+			method: 'post',
+			postBody: 'module='+module+'&action='+module+'Ajax&file=ListView&ajax=true&'+url,
+			onComplete: function(response) {ldelim}
+				$("status").style.display="none";
+				result = response.responseText.split('&#&#&#');
+				$("ListViewContents").innerHTML= result[2];
+				if(result[1] != '')
+			                alert(result[1]);
+			{rdelim}
+		{rdelim}
+	);
+{rdelim}
+
+</script>
+
+		{include file='Buttons_List.tpl'}
+                                <div id="searchingUI" style="display:none;">
+                                        <table border=0 cellspacing=0 cellpadding=0 width=100%>
+                                        <tr>
+                                                <td align=center>
+                                                <img src="images/searching.gif" alt="Searching... please wait"  title="Searching... please wait">
+                                                </td>
+                                        </tr>
+                                        </table>
+
+                                </div>
+                        </td>
+                </tr>
+                </table>
+        </td>
+</tr>
+</table>
+
+{*<!-- Contents -->*}
+<form name="basicSearch" action="index.php" onsubmit="return false;">
+<table border=0 cellspacing=0 cellpadding=0 width=98% align=center>
+     <tr>
+        <td valign=top><img src="{$IMAGE_PATH}showPanelTopLeft.gif"></td>
+
+	<td class="showPanelBg" valign="top" width=100% style="padding:10px;">
+	 <!-- SIMPLE SEARCH -->
+<div id="searchAcc" style="z-index:1;display:none;position:relative;">
+<table width="80%" cellpadding="5" cellspacing="0"  class="searchUIBasic small" align="center" border=0>
+	<tr>
+		<td class="searchUIName small" nowrap align="left">
+		<span class="moduleName">Search</span><br><span class="small"><a href="#" onClick="fnhide('searchAcc');show('advSearch');document.basicSearch.searchtype.value='advance';">{$APP.LBL_GO_TO} {$APP.LNK_ADVANCED_SEARCH}</a></span>
+		<!-- <img src="{$IMAGE_PATH}basicSearchLens.gif" align="absmiddle" alt="{$APP.LNK_BASIC_SEARCH}" title="{$APP.LNK_BASIC_SEARCH}" border=0>&nbsp;&nbsp;-->
+		</td>
+		<td class="small" nowrap align=right><b>{$APP.LBL_SEARCH_FOR}</b></td>
+		<td class="small"><input type="text"  class="txtBox" style="width:120px" name="search_text"></td>
+		<td class="small" nowrap><b>{$APP.LBL_IN}</b>&nbsp;
+			<select name ="search_field" class="txtBox" style="width:150px">
+			 {html_options  options=$SEARCHLISTHEADER }
+			</select>
+                        <input type="hidden" name="searchtype" value="BasicSearch">
+                        <input type="hidden" name="module" value="{$MODULE}">
+                        <input type="hidden" name="parenttab" value="{$CATEGORY}">
+			<input type="hidden" name="action" value="index">
+                        <input type="hidden" name="query" value="true">
+			<input type="hidden" name="search_cnt">
+		</td>
+		<td class="small" nowrap width=40% >
+			  <input name="submit" type="button" class="crmbutton small create" onClick="callSearch('Basic');" value=" {$APP.LBL_SEARCH_NOW_BUTTON} ">&nbsp;
+			  
+		</td>
+		<td class="small" valign="top" onMouseOver="this.style.cursor='pointer';" onclick="moveMe('searchAcc');searchshowhide('searchAcc','advSearch')">[x]</td>
+	</tr>
+	<tr>
+		<td colspan="6" align="center" class="small">
+			<table border=0 cellspacing=0 cellpadding=0 width=100%>
+				<tr>
+                                                {$ALPHABETICAL}
+                                </tr>
+                        </table>
+		</td>
+	</tr>
+</table>
+</div>
+<!-- ADVANCED SEARCH -->
+<div id="advSearch" style="display:none;">
+		<table  cellspacing=0 cellpadding=5 width=80% class="searchUIAdv1 small" align="center" border=0>
+			<tr>
+					<td class="searchUIName small" nowrap align="left"><span class="moduleName">Search</span><br><span class="small"><a href="#" onClick="show('searchAcc');fnhide('advSearch')">{$APP.LBL_GO_TO} {$APP.LNK_BASIC_SEARCH}</a></span></td>
+					<td nowrap class="small"><b><input name="matchtype" type="radio" value="all">&nbsp;{$APP.LBL_ADV_SEARCH_MSG_ALL}</b></td>
+					<td nowrap width=60% class="small" ><b><input name="matchtype" type="radio" value="any" checked>&nbsp;{$APP.LBL_ADV_SEARCH_MSG_ANY}</b></td>
+					<td class="small" valign="top" onMouseOver="this.style.cursor='pointer';" onclick="moveMe('searchAcc');searchshowhide('searchAcc','advSearch')">[x]</td>
+			</tr>
+		</table>
+		<table cellpadding="2" cellspacing="0" width="80%" align="center" class="searchUIAdv2 small" border=0>
+			<tr>
+				<td align="center" class="small" width=90%>
+				<div id="fixed" style="position:relative;width:95%;height:80px;padding:0px; overflow:auto;border:1px solid #CCCCCC;background-color:#ffffff" class="small">
+					<table border=0 width=95%>
+					<tr>
+					<td align=left>
+						<table width="100%"  border="0" cellpadding="2" cellspacing="0" id="adSrc" align="left">
+						<tr  >
+							<td width="31%"><select name="Fields0" class="detailedViewTextBox">
+							{$FIELDNAMES}
+							</select>
+							</td>
+							<td width="32%"><select name="Condition0" class="detailedViewTextBox">
+								{$CRITERIA}
+							</select>
+							</td>
+							<td width="32%"><input type="text" name="Srch_value0" class="detailedViewTextBox"></td>
+						</tr>
+						</table>
+					</td>
+					</tr>
+				</table>
+				</div>	
+				</td>
+			</tr>
+		</table>
+			
+		<table border=0 cellspacing=0 cellpadding=5 width=80% class="searchUIAdv3 small" align="center">
+		<tr>
+			<td align=left width=40%>
+						<input type="button" name="more" value=" {$APP.LBL_MORE} " onClick="fnAddSrch('{$FIELDNAMES}','{$CRITERIA}')" class="crmbuttom small edit" >
+						<input name="button" type="button" value=" {$APP.LBL_FEWER_BUTTON} " onclick="delRow()" class="crmbuttom small edit" >
+			</td>
+			<td align=left class="small"><input type="button" class="crmbutton small create" value=" {$APP.LBL_SEARCH_NOW_BUTTON} " onClick="totalnoofrows();callSearch('Advanced');">
+			</td>
+		</tr>
+	</table>
+</div>		
+</form>
+{*<!-- Searching UI -->*}
+
+
+<div class="small" style="padding: 10px;">
+	<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
+		<tr>
+			<td>
+				<table class="small" border="0" cellpadding="3" cellspacing="0" width="100%">
+				<tr>
+					<td class="dvtTabCache" style="width: 10px;" nowrap="nowrap">&nbsp;</td>
+					<td class="dvtUnSelectedCell" align="center" nowrap="nowrap"><a href="index.php?action=index&module=Calendar&parenttab={$CATEGORY}">{$APP.Calendar}</a></td>
+					<td class="dvtTabCache" style="width: 10px;">&nbsp;</td>
+					<td class="dvtSelectedCell" align="center" nowrap="nowrap">{$MOD.LBL_ALL_EVENTS_TODOS}</td>
+					<td class="dvtTabCache" style="width: 100%;">&nbsp;</td>
+				</tr>
+                                </table>
+                        </td>
+                </tr>
+		<tr>
+			<td align="left" valign="top">
+				<table class="dvtContentSpace" border="0" cellpadding="3" cellspacing="0" width="100%">
+					<tr>
+						<td align="left">
+							<!-- content cache -->
+							<table border="0" cellpadding="0" cellspacing="0" width="100%">
+								<tr>
+									<td style="padding: 10px;">
+
+	   <!-- PUBLIC CONTENTS STARTS-->
+	   <div id="ListViewContents" class="small" style="width:100%;position:relative;">
+     <form name="massdelete" method="POST">
+     <input name='search_url' id="search_url" type='hidden' value='{$SEARCH_URL}'>
+     <input name="idlist" id="idlist" type="hidden">
+     <input name="change_owner" type="hidden">
+     <input name="change_status" type="hidden">
+     <input name="allids" type="hidden" value="{$ALLIDS}">
+               <table border=0 cellspacing=1 cellpadding=0 width=100% class="lvtBg">
+	            <tr >
+		      <td>
+		         <table border=0 cellspacing=0 cellpadding=2 width=100% class="small">
+			      <tr>
+				 <td style="padding-right:20px" nowrap>
+                                 {foreach key=button_check item=button_label from=$BUTTONS}
+                                        {if $button_check eq 'del'}
+                                             <input class="crmbutton small delete" type="button" value="{$button_label}" onclick="return massDelete('{$MODULE}')"/>
+                                        {elseif $button_check eq 's_mail'}
+                                             <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return eMail('{$MODULE}',this);"/>
+                                        {elseif $button_check eq 's_cmail'}
+                                             <input class="crmbutton small edit" type="submit" value="{$button_label}" onclick="return massMail('{$MODULE}')"/>
+                                        {elseif $button_check eq 'c_status'}
+                                             <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return change(this,'changestatus')"/>
+					{elseif $button_check eq 'c_owner'}
+						{if $MODULE neq 'Notes' && $MODULE neq 'Products' && $MODULE neq 'Faq' && $MODULE neq 'Vendors' && $MODULE neq 'PriceBooks'}
+						     <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return change(this,'changeowner')"/>
+                                                {/if}
+                                        {/if}
+
+                                 {/foreach}
+                    </td>
+				 <td style="padding-right:20px" class="small" nowrap>{$RECORD_COUNTS}</td>
+		        	 <td nowrap >
+					<table border=0 cellspacing=0 cellpadding=0 class="small">
+					     <tr>{$NAVIGATION}</tr>
+					</table>
+                    </td>
+				 <td width=100% align="right">
+				   <table border=0 cellspacing=0 cellpadding=0 class="small">
+					<tr>
+						<td>{$APP.LBL_VIEW}</td>
+						<td style="padding-left:5px;padding-right:5px">
+                                                    <SELECT NAME="viewname" id="viewname" class="small" onchange="showDefaultCustomView(this,'{$MODULE}')">{$CUSTOMVIEW_OPTION}</SELECT></td>
+                                                    {if $ALL eq 'All'}
+							<td><a href="index.php?module={$MODULE}&action=CustomView&parenttab={$CATEGORY}">{$APP.LNK_CV_CREATEVIEW}</a>
+							<span class="small">|</span>
+							<span class="small" disabled>{$APP.LNK_CV_EDIT}</span>
+							<span class="small">|</span>
+                                                        <span class="small" disabled>{$APP.LNK_CV_DELETE}</span></td>
+						    {else}
+							<td><a href="index.php?module={$MODULE}&action=CustomView&parenttab={$CATEGORY}">{$APP.LNK_CV_CREATEVIEW}</a>
+							<span class="small">|</span>
+                                                        <a href="index.php?module={$MODULE}&action=CustomView&record={$VIEWID}&parenttab={$CATEGORY}">{$APP.LNK_CV_EDIT}</a>
+                                                        <span class="small">|</span>
+							<a href="index.php?module=CustomView&action=Delete&dmodule={$MODULE}&record={$VIEWID}&parenttab={$CATEGORY}">{$APP.LNK_CV_DELETE}</a></td>
+						    {/if}
+					</tr>
+				   </table>
+				 </td>	
+       		       </tr>
+			 </table>
+                         <div  class="calDIV" style="overflow:auto;">
+			 <table border=0 cellspacing=1 cellpadding=3 width=100% class="lvt small" class="small">
+			      <tr>
+             			 <td class="lvtCol"><input type="checkbox"  name="selectall" onClick=toggleSelect(this.checked,"selected_id")></td>
+				 {foreach name="listviewforeach" item=header from=$LISTHEADER}
+        			 <td class="lvtCol">{$header}</td>
+			         {/foreach}
+			      </tr>
+			      {foreach item=entity key=entity_id from=$LISTENTITY}
+			      <tr bgcolor=white onMouseOver="this.className='lvtColDataHover'" onMouseOut="this.className='lvtColData'" id="row_{$entity_id}">
+				 <td width="2%"><input type="checkbox" NAME="selected_id" value= '{$entity_id}' onClick=toggleSelectAll(this.name,"selectall")></td>
+				 {foreach item=data from=$entity}	
+				 <td>{$data}</td>
+	                         {/foreach}
+			      </tr>
+			      {foreachelse}
+				<tr><td style="background-color:#efefef;height:340px" align="center" colspan="{$smarty.foreach.listviewforeach.iteration+1}">
+						<div style="border: 3px solid rgb(153, 153, 153); background-color: rgb(255, 255, 255); width: 45%; position: relative; z-index: 10000000;">
+							{assign var=vowel_conf value='LBL_A'}
+							{assign var=MODULE_CREATE value=$SINGLE_MOD}
+
+							{if $CHECK.EditView eq 'yes' && $MODULE neq 'Emails' && $MODULE neq 'Webmails'}
+							
+							<table border="0" cellpadding="5" cellspacing="0" width="98%">
+							<tr>
+								<td rowspan="2" width="25%"><img src="{$IMAGE_PATH}empty.jpg" height="60" width="61"></td>
+								<td style="border-bottom: 1px solid rgb(204, 204, 204);" nowrap="nowrap" width="75%"><span class="genHeaderSmall">{$APP.LBL_NO} {$APP.$MODULE_CREATE}s {$APP.LBL_FOUND} !</span></td>
+							</tr>
+							<tr>
+							<td class="small" align="left" nowrap="nowrap">{$APP.LBL_YOU_CAN_CREATE} {$APP.$vowel_conf} {$APP.$MODULE_CREATE} {$APP.LBL_NOW}. {$APP.LBL_CLICK_THE_LINK}:<br>
+								   {if $MODULE neq 'Calendar'}	
+						  			&nbsp;&nbsp;-<a href="index.php?module={$MODULE}&action=EditView&return_action=DetailView&parenttab={$CATEGORY}">{$APP.LBL_CREATE} {$APP.$vowel_conf} {$APP.$MODULE_CREATE}</a><br>
+								   {else}
+									&nbsp;&nbsp;-<a href="index.php?module={$MODULE}&amp;action=EditView&amp;return_module=Calendar&amp;activity_mode=Events&amp;return_action=DetailView&amp;activitytype=Meeting&amp;parenttab={$CATEGORY}">{$APP.LBL_CREATE} {$APP.LBL_A} {$APP.Meeting}</a><br>
+									&nbsp;&nbsp;-<a href="index.php?module={$MODULE}&amp;action=EditView&amp;return_module=Calendar&amp;activity_mode=Events&amp;return_action=DetailView&amp;activitytype=Call&amp;parenttab={$CATEGORY}">{$APP.LBL_CREATE} {$APP.LBL_A} {$APP.Call}</a><br>
+									&nbsp;&nbsp;-<a href="index.php?module={$MODULE}&amp;action=EditView&amp;return_module=Calendar&amp;activity_mode=Task&amp;return_action=DetailView&amp;parenttab={$CATEGORY}">{$APP.LBL_CREATE} {$APP.LBL_A} {$APP.Todo}</a>
+								   {/if}
+								</td>
+							</tr>
+							</table> 
+							{else}
+							<table border="0" cellpadding="5" cellspacing="0" width="98%">
+							<tr>
+								<td rowspan="2" width="25%"><img src="{$IMAGE_PATH}empty.jpg" height="60" width="61"></td>
+								<td style="border-bottom: 1px solid rgb(204, 204, 204);" nowrap="nowrap" width="75%"><span class="genHeaderSmall">{$APP.LBL_NO} {$APP.$MODULE_CREATE}s {$APP.LBL_FOUND} !</span></td>
+							</tr>
+							<tr>
+								<td class="small" align="left" nowrap="nowrap">{$APP.LBL_YOU_ARE_NOT_ALLOWED_TO_CREATE} {$APP.$vowel_conf} {$APP.$MODULE_CREATE}<br>
+								</td>
+							</tr>
+							</table>
+							{/if}
+						</div>					
+				</td></tr>	
+			      {/foreach}
+			 </table>
+			 </div>
+			 <table border=0 cellspacing=0 cellpadding=2 width=100%>
+			      <tr>
+				 <td style="padding-right:20px" nowrap>
+                                 {foreach key=button_check item=button_label from=$BUTTONS}
+                                        {if $button_check eq 'del'}
+                                            <input class="crmbutton small delete" type="button" value="{$button_label}" onclick="return massDelete('{$MODULE}')"/>
+                                        {elseif $button_check eq 's_mail'}
+                                             <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return eMail('{$MODULE}',this)"/>
+                                        {elseif $button_check eq 's_cmail'}
+                                             <input class="crmbutton small edit" type="submit" value="{$button_label}" onclick="return massMail('{$MODULE}')"/>
+                                        {elseif $button_check eq 'c_status'}
+                                             <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return change(this,'changestatus')"/>
+					{elseif $button_check eq 'c_owner'}
+				                {if $MODULE neq 'Notes' && $MODULE neq 'Products' && $MODULE neq 'Faq' && $MODULE neq 'Vendors' && $MODULE neq 'PriceBooks'}
+                                                     <input class="crmbutton small edit" type="button" value="{$button_label}" onclick="return change(this,'changeowner')"/>
+                                                {/if}
+                                        {/if}
+
+                                 {/foreach}
+                    </td>
+				 <td style="padding-right:20px" class="small" nowrap>{$RECORD_COUNTS}</td>
+				 <td nowrap >
+				    <table border=0 cellspacing=0 cellpadding=0 class="small">
+				         <tr>{$NAVIGATION}</tr>
+				     </table>
+				 </td>
+				 <td align="right" width=100%>
+				   <table border=0 cellspacing=0 cellpadding=0 class="small">
+					<tr>
+                                           {$WORDTEMPLATEOPTIONS}{$MERGEBUTTON}
+					</tr>
+				   </table>
+				 </td>
+			      </tr>
+       		    </table>
+		       </td>
+		   </tr>
+	    </table>
+
+   </form>	
+{$SELECT_SCRIPT}
+	</div>
+	 </td></tr></table>
+	 </td></tr></table>
+         </td></tr></table>
+        </div>
+
+     </td>
+        <td valign=top><img src="{$IMAGE_PATH}showPanelTopRight.gif"></td>
+   </tr>
+</table>
+
+
+<div id="changeowner" class="statechange">
+<table width="100%" border="0" cellpadding="3" cellspacing="0">
+<tr>
+	<td class="genHeaderSmall" align="left" style="border-bottom:1px solid #CCCCCC;" width="60%">{$APP.LBL_CHANGE_OWNER}</td>
+	<td style="border-bottom: 1px solid rgb(204, 204, 204);">&nbsp;</td>
+	<td align="right" style="border-bottom:1px solid #CCCCCC;" width="40%"><a href="javascript:fninvsh('changeowner')">{$APP.LBL_CLOSE}</a></td>
+</tr>
+<tr>
+	<td colspan="3">&nbsp;</td>
+</tr>
+<tr>
+	<td width="50%"><b>{$APP.LBL_TRANSFER_OWNERSHIP}</b></td>
+	<td width="2%"><b>:</b></td>
+	<td width="48%">
+	         <form name="change_ownerform_name">
+	        <input type = "radio" name = "user_lead_owner"  onclick=checkgroup();  checked>{$APP.LBL_USER}&nbsp;
+					<input type = "radio" name = "user_lead_owner" onclick=checkgroup(); >{$APP.LBL_GROUP}<br>
+					<select name="lead_owner" id="lead_owner" class="detailedViewTextBox">
+					{foreach key=id item=data from=$CHANGE_USER}
+						{foreach key=chOw_id item=name from=$data}
+							<option value={$id}{$name}>{$chOw_id}</option>
+						{/foreach}
+					{/foreach}
+					</select>
+					<select name="lead_group_owner" id="lead_group_owner" class="detailedViewTextBox" style="display:none;">
+					{foreach key=id item=data from=$CHANGE_GROUP}
+                                                {foreach key=chOw_group_id item=group_name from=$data}
+                                                        <option value={$id}{$group_name}>{$chOw_group_id}</option>
+                                                {/foreach}
+                                        {/foreach}
+
+					</select>
+					</form>
+	</td>
+</tr>
+<tr><td colspan="3" style="border-bottom:1px dashed #CCCCCC;">&nbsp;</td></tr>
+<tr>
+	<td colspan="3" align="center">
+	&nbsp;&nbsp;
+	<input type="button" name="button" class="crmbutton small edit" value="{$APP.LBL_UPDATE_OWNER}" onClick="ajaxChangeStatus('owner')">
+	<input type="button" name="button" class="crmbutton small cancel" value="{$APP.LBL_CANCEL_BUTTON_LABEL}" onClick="fninvsh('changeowner')">
+</td>
+</tr>
+</table>
+</div>
+
+
+<script>
+{literal}
+
+function ajaxChangeStatus(statusname)
+{
+	$("status").style.display="inline";
+	var viewid = document.massdelete.viewname.value;
+	var idstring = document.getElementById('idlist').value;
+	if(statusname == 'status')
+	{
+		fninvsh('changestatus');
+		var url='&leadval='+document.getElementById('lead_status').options[document.getElementById('lead_status').options.selectedIndex].value;
+		var urlstring ="module=Users&action=updateLeadDBStatus&return_module=Leads"+url+"&viewname="+viewid+"&idlist="+idstring;
+	}
+	else if(statusname == 'owner')
+	{
+		
+	   if(document.change_ownerform_name.user_lead_owner[0].checked)
+	   {
+		    fninvsh('changeowner');
+		    var url='&user_id='+document.getElementById('lead_owner').options[document.getElementById('lead_owner').options.selectedIndex].value;
+		    {/literal}
+		        var urlstring ="module=Users&action=updateLeadDBStatus&return_module={$MODULE}"+url+"&viewname="+viewid+"&idlist="+idstring;
+		    {literal}
+     }
+    else
+    {
+        fninvsh('changeowner');
+		    var url='&group_id='+document.getElementById('lead_group_owner').options[document.getElementById('lead_group_owner').options.selectedIndex].value;
+	       {/literal}
+		        var urlstring ="module=Users&action=updateLeadDBStatus&return_module={$MODULE}"+url+"&viewname="+viewid+"&idlist="+idstring;
+		    {literal}
+    }
+
+	}
+	new Ajax.Request(
+                'index.php',
+                {queue: {position: 'end', scope: 'command'},
+                        method: 'post',
+                        postBody: urlstring,
+                        onComplete: function(response) {
+                                $("status").style.display="none";
+                                result = response.responseText.split('&#&#&#');
+                                $("ListViewContents").innerHTML= result[2];
+                                if(result[1] != '')
+                                        alert(result[1]);
+                        }
+                }
+        );
+	
+}
+</script>
+{/literal}
+

Modified: vtigercrm/branches/5.0.3/modules/Calendar/ListView.php
==============================================================================
--- vtigercrm/branches/5.0.3/modules/Calendar/ListView.php (original)
+++ vtigercrm/branches/5.0.3/modules/Calendar/ListView.php Wed Nov 29 07:40:53 2006
@@ -28,6 +28,7 @@
 require_once('include/ListView/ListView.php');
 require_once('include/utils/utils.php');
 require_once('modules/CustomView/CustomView.php');
+require_once('modules/Calendar/CalendarCommon.php');
 require_once('include/database/PearDatabase.php');
 
 global $app_strings;
@@ -75,6 +76,13 @@
 $customviewcombo_html = $oCustomView->getCustomViewCombo($viewid);
 $viewnamedesc = $oCustomView->getCustomViewByCvid($viewid);
 //<<<<<customview>>>>>
+$changeOwner = getAssignedTo(16);
+$userList = $changeOwner[0];
+$groupList = $changeOwner[1];
+//echo '<pre>';print_r($changeOwner); echo '</pre>';
+
+$smarty->assign("CHANGE_USER",$userList);
+$smarty->assign("CHANGE_GROUP",$groupList);
 $smarty->assign("CHANGE_OWNER",getUserslist());
 $smarty->assign("CHANGE_GROUP_OWNER",getGroupslist());
 $where = "";

Modified: vtigercrm/branches/5.0.3/modules/Calendar/addEventUI.php
==============================================================================
--- vtigercrm/branches/5.0.3/modules/Calendar/addEventUI.php (original)
+++ vtigercrm/branches/5.0.3/modules/Calendar/addEventUI.php Wed Nov 29 07:40:53 2006
@@ -26,6 +26,8 @@
  $date_format = parse_calendardate($app_strings['NTC_DATE_FORMAT']);
  $taskassignedto = getAssignedTo(9);
  $eventassignedto = getAssignedTo(16);
+ $userList = $eventassignedto[0];
+ $groupList = $eventassignedto[1]; 	
 $mysel= $_GET['view'];
 $calendar_arr = Array();
 $calendar_arr['IMAGE_PATH'] = $image_path;
@@ -630,12 +632,24 @@
 	<table width="100%" cellpadding="0" cellspacing="0" border="0" bgcolor="#FFFFFF">
 		<tr>
 			<td>
-				<a href="" id="complete" onClick="fninvsh('eventcalAction')" class="calMnu">- <?php echo $mod_strings['LBL_HELD']?></a>
-				<a href="" id="pending" onClick="fninvsh('eventcalAction')" class="calMnu">- <?php echo $mod_strings['LBL_NOTHELD']?></a>
+				<?php
+				if(isPermitted("Calendar","EditView") == "yes")
+				{
+				?>
+				<a href="javascript:;" id="complete" onClick="fninvsh('eventcalAction')" class="calMnu">- <?php echo $mod_strings['LBL_HELD']?></a>
+				<a href="javascript:;" id="pending" onClick="fninvsh('eventcalAction')" class="calMnu">- <?php echo $mod_strings['LBL_NOTHELD']?></a>
 				<span style="border-top:1px dashed #CCCCCC;width:99%;display:block;"></span>
-				<a href="" id="postpone" onClick="fninvsh('eventcalAction')" class="calMnu">- <?php echo $mod_strings['LBL_POSTPONE']?></a>
-				<a href="" id="changeowner" onClick="fnvshobj(this,'act_changeowner');fninvsh('eventcalAction')" class="calMnu">- <?php echo $mod_strings['LBL_CHANGEOWNER']?></a>
+				<a href="javascript:;" id="postpone" onClick="fninvsh('eventcalAction')" class="calMnu">- <?php echo $mod_strings['LBL_POSTPONE']?></a>
+				<a href="javascript:;" id="changeowner" onClick="fnvshobj(this,'act_changeowner');fninvsh('eventcalAction')" class="calMnu">- <?php echo $mod_strings['LBL_CHANGEOWNER']?></a>
+				<?php
+				}
+				if(isPermitted("Calendar","Delete") == "yes")	
+				{
+				?>
 				<a href="" id="actdelete" onclick ="fninvsh('eventcalAction');return confirm('Are you sure?');" class="calMnu">- <?php echo $mod_strings['LBL_DEL']?></a>
+				<?php
+				}
+				?>
 			</td>
 		</tr>
 	</table>
@@ -873,10 +887,30 @@
                 	<input type = "radio" name = "user_lead_owner"  onclick=checkgroup();  checked><?php echo $app_strings['LBL_USER'];?>&nbsp;
                         <input type = "radio" name = "user_lead_owner" onclick=checkgroup(); ><?php echo $app_strings['LBL_GROUP'];?><br>
                         <select name="lead_owner" id="lead_owner" class="detailedViewTextBox" style="display:block">
-			<?php echo getUserslist(); ?>	
+			<?php
+				foreach($userList as $id=>$string)
+				{
+					foreach($string as $key => $value)
+					{
+						echo "<option value='$id' '$value'>$key</option>";
+					}
+				}
+				
+			?>
                         </select>
                         <select name="lead_group_owner" id="lead_group_owner" class="detailedViewTextBox" style="display:none;">
-                         <?php echo getGroupslist(); ?>
+			<?php
+                                foreach($groupList as $id => $string)
+                                {
+                                        foreach($string as $key => $value)
+                                        {
+						
+						echo "<option value='$id' '$value'>$key</option>";
+                                        }
+                                }
+
+                        ?>
+
                          </select>
         	</td>
 	</tr>
@@ -897,12 +931,25 @@
         <table width="100%" cellpadding="0" cellspacing="0" border="0" bgcolor="#FFFFFF">
                 <tr>
                         <td>
+				<?php
+                                if(isPermitted("Calendar","EditView") == "yes")
+                                {
+                                ?>
                                 <a href="" id="taskcomplete" onClick="fninvsh('taskcalAction');" class="calMnu">- <?php echo $mod_strings['LBL_COMPLETED']?></a>
                                 <a href="" id="taskpending" onClick="fninvsh('taskcalAction');" class="calMnu">- <?php echo $mod_strings['LBL_DEFERRED']?></a>
                                 <span style="border-top:1px dashed #CCCCCC;width:99%;display:block;"></span>
                                 <a href="" id="taskpostpone" onClick="fninvsh('taskcalAction');" class="calMnu">- <?php echo $mod_strings['LBL_POSTPONE']?></a>
                                 <a href="" id="taskchangeowner" onClick="fnvshobj(this,'act_changeowner'); fninvsh('taskcalAction');" class="calMnu">- <?php echo $mod_strings['LBL_CHANGEOWNER']?></a>
+                                <?php
+                                }
+                                if(isPermitted("Calendar","Delete") == "yes")
+                                {
+                                ?>
                                 <a href="" id="taskactdelete" onClick ="fninvsh('taskcalAction');return confirm('Are you sure?');" class="calMnu">- <?php echo $mod_strings['LBL_DEL']?></a>
+                                <?php
+                                }
+                                ?>
+
                         </td>
                 </tr>
         </table>

Modified: vtigercrm/branches/5.0.3/modules/Calendar/calendarLayout.php
==============================================================================
--- vtigercrm/branches/5.0.3/modules/Calendar/calendarLayout.php (original)
+++ vtigercrm/branches/5.0.3/modules/Calendar/calendarLayout.php Wed Nov 29 07:40:53 2006
@@ -1,1961 +1,2000 @@
-<?php
-/*********************************************************************************
-** The contents of this file are subject to the vtiger CRM Public License Version 1.0
- * ("License"); You may not use this file except in compliance with the License
- * The Original Code is:  vtiger CRM Open Source
- * The Initial Developer of the Original Code is vtiger.
- * Portions created by vtiger are Copyright (C) vtiger.
- * All Rights Reserved.
-*
- ********************************************************************************/
-
-require_once('include/database/PearDatabase.php');
-require_once('include/utils/CommonUtils.php');
-require_once('include/utils/UserInfoUtil.php');
-require_once('modules/Calendar/CalendarCommon.php');
-
-
-/**
- *  Function creates HTML to display Events and  Todos div tags
- *  @param array    $param_arr      - collection of objects and strings
- *  @param string   $viewBox        - string 'listview' or 'hourview' or may be empty. if 'listview' means get Events ListView.if 'hourview' means gets Events HourView. if empty means get Todos ListView
- *  @param string   $subtab         - string 'todo' or 'event'. if 'todo' means Todos View else Events View
- */
-function calendar_layout(& $param_arr,$viewBox='',$subtab='')
-{
-	global $mod_strings,$cal_log;
-	$category = getParentTab();
-	$cal_log->debug("Entering calendar_layout() method");
-	$cal_header = array ();
-	if (isset($param_arr['size']) && $param_arr['size'] == 'small')
-		$param_arr['calendar']->show_events = false;
-
-	$cal_header['view'] = $param_arr['view'];
-	$cal_header['IMAGE_PATH'] = $param_arr['IMAGE_PATH'];
-        $cal_header['calendar'] = $param_arr['calendar'];
-	$eventlabel = $mod_strings['LBL_EVENTS'];
-	$todolabel = $mod_strings['LBL_TODOS'];
-	//if $param_arr['size'] is set to 'small', get small(mini) calendar
-	if(isset($param_arr['size']) && $param_arr['size'] == 'small')
-	{
-		get_mini_calendar($param_arr);
-	}
-	else
-	{
-		//To differentiate selected subtab from unselected one - Starts
-		if($subtab == 'event')
-		{
-			$eventtab_class = 'dvtSelectedCell';
-			$todotab_class = 'dvtUnSelectedCell';
-		        $event_anchor = $eventlabel;
-			$todo_anchor = "<a href='index.php?module=Calendar&action=index&view=".$cal_header['view']."".$cal_header['calendar']->date_time->get_date_str()."&viewOption=".$viewBox."&subtab=todo&parenttab=".$category."'>".$todolabel."</a>";
-					
-		}
-		elseif($subtab == 'todo')
-		{
-			$eventtab_class = 'dvtUnSelectedCell';
-			$todotab_class = 'dvtSelectedCell';
-			$event_anchor = "<a href='index.php?module=Calendar&action=index&view=".$cal_header['view']."".$cal_header['calendar']->date_time->get_date_str()."&viewOption=".$viewBox."&subtab=event&parenttab=".$category."'>".$eventlabel."</a>";
-			$todo_anchor = $todolabel;
-		}
-		//Ends
-		//To get calendar header and its links(like Day,Week,Month,Year and etc.)
-		get_cal_header_tab($cal_header,$viewBox,$subtab);
-		$subheader = "";
-		$subheader .=<<<EOQ
-			<tr>
-				<td colspan="8" class="calBorder">
-					<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
-						<tr>
-							<td>
-							
-								<table class="small" border="0" cellpadding="3" cellspacing="0" width="100%">
-									<tr>
-										<td class="dvtTabCache" style="width: 10px;" nowrap="nowrap">&nbsp;</td>
-										<td class="$eventtab_class" id="pi" align="center" nowrap="nowrap" width="75">$event_anchor</td>
-										<td class="dvtTabCache" style="width: 10px;" nowrap="nowrap">&nbsp;</td>
-										<td class="$todotab_class" style="width:100px;" id="mi" align="center" nowrap="nowrap">$todo_anchor</td>
-										<td class="dvtTabCache" nowrap="nowrap">&nbsp;</td>
-									</tr>
-								</table>
-							</td>
-						</tr>
-						<tr>
-							<td class="calInnerBorder" align="left" bgcolor="#ffffff" valign="top">
-EOQ;
-		echo $subheader;
-		if($viewBox == 'hourview' && $subtab == 'event')
-		{
-			get_cal_header_data($param_arr,$viewBox,$subtab);
-			getHourView($param_arr);
-		}
-		elseif($viewBox == 'listview' && $subtab == 'event')
-		{
-			get_cal_header_data($param_arr,$viewBox,$subtab);
-			getEventListView($param_arr);
-		}
-		elseif($subtab == 'todo')
-		{
-			$todo_list = "";
-			$todo_list .= getTodosListView($param_arr,'',$subtab);
-			$todo_list .= '</td></tr></table></td></tr></table><br>';
-			echo $todo_list;
-		}
-	}
-	
-	$cal_log->debug("Exiting calendar_layout() method");	
-	
-}
-
-/**
- * Function creates HTML to display small(mini) Calendar 
- * @param array   $cal    - collection of objects and strings
- */
-function get_mini_calendar(& $cal)
-{
-	global $current_user,$adb,$cal_log;
-	$category = getParentTab();
-	$cal_log->debug('Entering get_mini_calendar() method...');
-	$count = 0;
-	//To decide number of rows(weeks) in a month
-	if ($cal['calendar']->month_array[$cal['calendar']->slices[35]]->start_time->month != $cal['calendar']->date_time->month) {
-                $rows = 5;
-        } else {
-                $rows = 6;
-        }
-	$minical = "";
-	$minical .= "<table class='mailClient ' bgcolor='white' border='0' cellpadding='2' cellspacing='0' width='98%'>
-                        <tr>
-				<td class='calHdr'>&nbsp;</td>
-				<td style='padding:5px' colspan='6' class='calHdr' align='center'>".get_previous_cal($cal)."&nbsp;";
-				$minical .= "<a style='text-decoration: none;' href='index.php?module=Calendar&action=index&view=".$cal['view']."".$cal['calendar']->date_time->get_date_str()."&parenttab=".$category."'><b>".display_date($cal['view'],$cal['calendar']->date_time)."</b></a>&nbsp;".get_next_cal($cal)."</td>";
-				$minical .= "<td class='calHdr' align='right'><a href='javascript:ghide(\"miniCal\");'><img src='".$cal['IMAGE_PATH']."close.gif' align='right' border='0'></a>
-	                     </td></tr>";
-	$minical .= "<tr class='hdrNameBg'>";
-	//To display days in week 
-	$minical .= '<th width="12%">Week</th>';
-	for ($i = 0; $i < 7; $i ++)
-        {
-                $weekdays_row = $cal['calendar']->month_array[$cal['calendar']->slices[$i]];
-                $weekday = $weekdays_row->start_time->getdayofWeek_inshort();
-                $minical .= '<th width="12%">'.$weekday.'</th>';
-        }
-	$minical .= "</tr>";	
-	$event_class = '';
-	$class = '';
-	for ($i = 0; $i < $rows; $i ++)
-        {
-                $minical .= "<tr>";
-                for ($j = 0; $j < 7; $j ++)
-                {
-			$cal['slice'] = $cal['calendar']->month_array[$cal['calendar']->slices[$count]];
-			$class = dateCheck($cal['slice']->start_time->get_formatted_date());
-			if($count%7 == 0)
-				$minical .= "<td style='text-align:center' ><a href='index.php?module=Calendar&action=index&view=week".$cal['slice']->start_time->get_date_str()."&parenttab=".$category."'>".$cal['slice']->start_time->week."</td>";
-			//To differentiate day having events from other days
-			if(count($cal['slice']->activities) != 0 && ($cal['slice']->start_time->get_formatted_date() == $cal['slice']->activities[0]->start_time->get_formatted_date()))
-			{
-					$event_class = 'class="eventDay"';
-			}
-			else
-			{
-                       		$event_class = '';
-                        }
-			//To differentiate current day from other days
-			if($class != '' )
-				$class = 'class="'.$class.'"';
-			else
-				$class = $event_class;
-			
-			//To display month dates
-                        if ($cal['slice']->start_time->getMonth() == $cal['calendar']->date_time->getMonth())
-                        {
-				$minical .= "<td ".$class." style='text-align:center' >";
-				$minical .= "<a href='index.php?module=Calendar&action=index&view=".$cal['slice']->getView()."".$cal['slice']->start_time->get_date_str()."&parenttab=".$category."'>";
-				$minical .= $cal['slice']->start_time->get_Date()."</a></td>";
-                        }
-			else
-			{
-				$minical .= "<td style='text-align:center' ></td>";
-			}
-                        $count++;
-                }
-                $minical .= '</tr>';
-	}
-	
-        $minical .= "</table>";
-	echo $minical;
-	$cal_log->debug("Exiting get_mini_calendar() method...");
-}
-
-/**
- * Function creates HTML to display Calendar Header and its Links
- * @param array    $header   - collection of objects and strings
- * @param string   $viewBox  - string 'listview' or 'hourview' or may be empty. if 'listview' means Events ListView.if 'hourview' means Events HourView. if empty means get Todos ListView
- * @param string   $subtab   - string 'todo' or 'event'. if 'todo' means Todos View else Events View
- */
-function get_cal_header_tab(& $header,$viewBox,$subtab)
-{
-	global $mod_strings,$cal_log;
-	$category = getParentTab();
-	$cal_log->debug("Entering get_cal_header_tab() method...");
-	$tabhtml = "";
-	$count = 1;
-	include_once 'modules/Calendar/addEventUI.php';
-	include_once 'modules/Calendar/header.php';
-	$eventlabel = $mod_strings['LBL_EVENTS'];
-	$todolabel = $mod_strings['LBL_TODOS'];
-	$div = "<div id='miniCal' style='width:300px; position:absolute; display:none; left:100px; top:100px; z-index:100000; background-color:white'></div>
-		<div id='calSettings' class='layerPopup calSettings' style='display:none;width:500px;' align=center ></div>
-		<div id='dataArray'></div>
-		";
-	echo $div;
-	$tabhtml .= "<table class='small calHdr' align='center' border='0' cellpadding='5' cellspacing='0' width='100%'><tr>";
-        $links = array ('day','week','month','year');
-	//To differentiate the selected link from unselected links
-	foreach ($links as $link)
-	{
-		if ($header['view'] == $link)
-		{
-			$class = 'calSel';
-			$anchor = $mod_strings["LBL_".$header['calendar']->getCalendarView($link)];
-		}
-		else
-		{
-			$class = 'calUnSel';
-			$anchor = "<a href='index.php?module=Calendar&action=index&view=".$link."".$header['calendar']->date_time->get_date_str()."&viewOption=".$viewBox."&subtab=".$subtab."&parenttab=".$category."'>".$mod_strings["LBL_".$header['calendar']->getCalendarView($link)]."</a>";
-		}
-	
-		if($count == 1)
-			$tabhtml .= "<!-- day week month buttons --> <td style='border-left: 1px solid #666666;' class=".$class.">".$anchor."</td>";
-		else
-			$tabhtml .= "<td class=".$class.">".$anchor."</td>";
-		$count++;
-	}
-	//To get Navigation(next&previous) links and display Date info
-	$tabhtml .= "<td width='30%'>
-			<table border='0' cellpadding='0' cellspacing='0'>
-			<tr>
-				<td>".get_previous_cal($header,$viewBox,$subtab)."
-				</td>";
-	$tabhtml .= "<td class='calendarNav'>".display_date($header['view'],$header['calendar']->date_time)."</td>";
-	$tabhtml .= "<td>".get_next_cal($header,$viewBox,$subtab)."
-		     </td></tr>
-		    </table>
-		</td>";
-		$tabhtml .= "<td width='2%'><img onClick='fnvshobj(this,\"miniCal\"); getMiniCal(\"view=".$header['calendar']->view."".$header['calendar']->date_time->get_date_str()."&viewOption=".$viewBox."&subtab=".$subtab."&parenttab=".$category."\");' src='".$header['IMAGE_PATH']."btnL3Calendar.gif' alt='".$mod_strings['LBL_OPENCAL']."...' title='".$mod_strings['LBL_OPENCAL']."...' align='absmiddle' border='0'></td>";
-		$tabhtml .= "<td width=20% ><img onClick='fnvshobj(this,\"calSettings\"); getCalSettings(\"view=".$header['calendar']->view."".$header['calendar']->date_time->get_date_str()."&viewOption=".$viewBox."&subtab=".$subtab."&parenttab=".$category."\");' src='".$header['IMAGE_PATH']."tbarSettings.gif' alt='".$mod_strings['LBL_SETTINGS']."' title='".$mod_strings['LBL_SETTINGS']."' align='absmiddle' border='0'></td>";
-	$tabhtml .= "<td class='calHdr calTopRight componentName'>".$app_strings['Calendar']."</td>";	
-	$tabhtml .= "</tr>";
-	echo $tabhtml;
-	$cal_log->debug("Exiting get_cal_header_tab() method...");
-}
-
-/**
- * Function creates HTML to display number of Events, Todos and pending list in calendar under header(Eg:Total Events : 5, 2 Pending / Total To Dos: 4, 1 Pending)
- * @param array  $cal_arr   - collection of objects and strings
- * @param string $viewBox   - string 'listview' or 'hourview'. if 'listview' means Events ListView.if 'hourview' means Events HourView.
- */
-function get_cal_header_data(& $cal_arr,$viewBox,$subtab)
-{
-	global $mod_strings,$cal_log;
-	$cal_log->debug("Entering get_cal_header_data() method...");
-	global $current_user,$app_strings;
-        $date_format = $current_user->date_format;
-	$format = $cal_arr['calendar']->hour_format;
-	$hour_startat = convertTime2UserSelectedFmt($format,$cal_arr['calendar']->day_start_hour,false); 
-	$hour_endat = convertTime2UserSelectedFmt($format,($cal_arr['calendar']->day_start_hour+1),false);
-	$time_arr = getaddEventPopupTime($hour_startat,$hour_endat,$format);
-	$temp_ts = $cal_arr['calendar']->date_time->ts;
-	//To get date in user selected format
-        $temp_date = (($date_format == 'dd-mm-yyyy')?(date('d-m-Y',$temp_ts)):(($date_format== 'mm-dd-yyyy')?(date('m-d-Y',$temp_ts)):(($date_format == 'yyyy-mm-dd')?(date('Y-m-d', $temp_ts)):(''))));
-	$headerdata = "";
-	$headerdata .="
-			<div style='display: block;' id='mnuTab'>
-			<form name='EventViewOption' method='POST' action='index.php'>
-			<table align='center' border='0' cellpadding='5' cellspacing='0' width='98%'>
-			<tr><td colspan='3'>&nbsp;</td></tr>";
-			if(isPermitted("Calendar","EditView") == "yes")
-			{
-			$headerdata .="<tr>
-				<td>
-				<table><tr><td class='calAddButton' style='cursor:pointer;height:30px' align='center' width='15%' onMouseOver='fnAddEvent(this,\"addEventDropDown\",\"".$temp_date."\",\"".$temp_date."\",\"".$time_arr['starthour']."\",\"".$time_arr['startmin']."\",\"".$time_arr['startfmt']."\",\"".$time_arr['endhour']."\",\"".$time_arr['endmin']."\",\"".$time_arr['endfmt']."\",\"".$viewBox."\",\"".$subtab."\");'>
-					".$mod_strings['LBL_ADD']."
-					<img src='".$cal_arr['IMAGE_PATH']."menuDnArrow.gif' style='padding-left: 5px;' border='0'>
-				</td></tr></table> </td>";
-			}
-			else
-			{
-				$headerdata .="<tr><td>&nbsp;</td>";
-			}
-			$headerdata .="<td align='center' width='53%'>";
-	$headerdata .= getEventTodoInfo($cal_arr,'listcnt'); 
-	$headerdata .= "	</td>
-				<td align='center' width='30%'><table border=0 cellspacing=0 cellpadding=2><tr><td class=small><b>".$mod_strings['LBL_VIEW']." : </b></td><td>";
-	$view_options = getEventViewOption($cal_arr,$viewBox);
-	$headerdata .=$view_options."</td></tr></form></table>
-				</td>
-			</tr>
-		</table>";
-	echo $headerdata;	
-	$cal_log->debug("Exiting get_cal_header_data() method...");
-}
-
-/**
- * Function creates HTML select statement to display View selection box
- * @param array  $cal     - collection of objects and strings 
- * @param string $viewBox - string 'listview' or 'hourview'. if 'listview' means get Events ListView.if 'hourview' means get Events HourView.
- * return string $view   - html selection box
- */
-function getEventViewOption(& $cal,$viewBox)
-{
-	global $mod_strings,$cal_log;
-	$category = getParentTab();
-	if($viewBox == 'listview')
-	{
-		$list_sel = 'selected';
-		$hr_sel = '';
-	}
-	else
-	{
-		$list_sel = '';
-		$hr_sel = 'selected';
-	}
-	$cal_log->debug("Entering getEventViewOption() method...");
-	$view = "<input type='hidden' name='view' value='".$cal['calendar']->view."'>
-			<input type='hidden' name='hour' value='".$cal['calendar']->date_time->hour."'>
-			<input type='hidden' name='day' value='".$cal['calendar']->date_time->day."'>
-			<input type='hidden' name='week' value='".$cal['calendar']->date_time->week."'>
-			<input type='hidden' name='month' value='".$cal['calendar']->date_time->month."'>
-			<input type='hidden' name='year' value='".$cal['calendar']->date_time->year."'>
-			<input type='hidden' name='parenttab' value='".$category."'>
-			<input type='hidden' name='module' value='Calendar'>
-			<input type='hidden' name='return_module' value='Calendar'>
-			<input type='hidden' name='action' value=''>
-			<input type='hidden' name='return_action' value=''>
-							 
-		        <select name='viewOption' class='importBox' id='view_Option' onChange='fnRedirect();'>";
-	if($cal['view'] == 'day')
-	{
-		$view .="<option value='listview' ".$list_sel.">".$mod_strings['LBL_LISTVIEW']."</option>
-			 <option value='hourview' ".$hr_sel.">".$mod_strings['LBL_HRVIEW']."</option>";	
-	}
-	elseif($cal['view'] == 'week')
-	{
-		$view .="<option value='listview' ".$list_sel.">".$mod_strings['LBL_LISTVIEW']."</option>
-			 <option value='hourview' ".$hr_sel.">".$mod_strings['LBL_WEEKVIEW']."</option>";
-	}
-	elseif($cal['view'] == 'month')
-	{
-		$view .="<option value='listview' ".$list_sel.">".$mod_strings['LBL_LISTVIEW']."</option>
-			 <option value='hourview' ".$hr_sel.">".$mod_strings['LBL_MONTHVIEW']."</option>";
-	}
-	elseif($cal['view'] == 'year')
-	{
-		$view .="<option value='listview' ".$list_sel.">".$mod_strings['LBL_LISTVIEW']."</option>
-			 <option value='hourview' ".$hr_sel.">".$mod_strings['LBL_YEARVIEW']."</option>";
-	}
-	else
-		die("view is not defined");
-	$view .="</select>
-		</form>";
-	$cal_log->debug("Exiting getEventViewOption() method...");
-	return $view;
-}
-
-/**
- * Function creates HTML anchor tag to get previous-day/week/month/year view
- * @param array  $cal        - collection of objects and strings
- * @param string $viewBox    - string 'listview' or 'hourview' or may be empty. if 'listview' means previous link in Events ListView.if 'hourview' means previous link in Events HourView. if empty means previous link in Todos ListView
- * @param string   $subtab   - string 'todo' or 'event' or may be empty. if 'todo' means Todos View. if 'event' means Events View. if empty means small calendar view. 
- * return string $link       - html tags in string format
- */
-function get_previous_cal(& $cal,$viewBox='',$subtab='')
-{
-	global $mod_strings,$cal_log;
-	$category = getParentTab();
-	$cal_log->debug("Entering get_previous_cal() method...");
-	if(isset($cal['size']) && $cal['size'] == 'small')
-        {
-		$link = "<a href='javascript:getMiniCal(\"view=".$cal['calendar']->view."".$cal['calendar']->get_datechange_info('prev')."&parenttab=".$category."\")'><img src='".$cal['IMAGE_PATH']."small_left.gif' border='0' align='absmiddle' /></a>";
-	}
-	else
-	{
-		$link = "<a href='index.php?action=index&module=Calendar&view=".$cal['calendar']->view."".$cal['calendar']->get_datechange_info('prev')."&viewOption=".$viewBox."&subtab=".$subtab."&parenttab=".$category."'><img src='".$cal['IMAGE_PATH']."cal_prev_nav.gif' border='0' align='absmiddle' /></a>";
-	}
-	$cal_log->debug("Exiting get_previous_cal() method...");
-	return $link;
-}
-
-/**
- * Function creates HTML anchor tag to get next-day/week/month/year view
- * @param array  $cal        - collection of objects and strings
- * @param string $viewBox    - string 'listview' or 'hourview' or may be empty. if 'listview' means next link in Events ListView.if 'hourview' means next link in Events HourView. if empty means next link in Todos ListView
- * @param string $subtab     - string 'todo' or 'event' or may be empty. if 'todo' means Todos View. if 'event' means Events View. if empty means small calendar view. 
- * return string $link       - html tags in string format
- */
-function get_next_cal(& $cal,$viewBox='',$subtab='')
-{
-	global $mod_strings,$cal_log;
-	$category = getParentTab();
-	$cal_log->debug("Entering get_next_cal() method...");
-	if(isset($cal['size']) && $cal['size'] == 'small')
-	{
-		$link = "<a href='javascript:getMiniCal(\"view=".$cal['calendar']->view."".$cal['calendar']->get_datechange_info('next')."&parenttab=".$category."\")' ><img src='".$cal['IMAGE_PATH']."small_right.gif' border='0' align='absmiddle' /></a>";
-	}
-	else
-	{
-		$link = "<a href='index.php?action=index&module=Calendar&view=".$cal['calendar']->view."".$cal['calendar']->get_datechange_info('next')."&viewOption=".$viewBox."&subtab=".$subtab."&parenttab=".$category."'><img src='".$cal['IMAGE_PATH']."cal_next_nav.gif' border='0' align='absmiddle' /></a>";
-	}
-	$cal_log->debug("Exiting get_next_cal() method...");
-	return $link;
-
-}
-
-/**
- * Function to get date info depending upon on the calendar view(Eg: 21 July 2000)
- * @param string  $view        - calendar view(day/week/month/year)
- * @param array   $date_time   - contains DateTime object
- * return string  $label       - date info(Eg for dayview : 13 July 2000)
- */
-function display_date($view,$date_time)
-{
-	global $cal_log;
-	$cal_log->debug("Entering display_date() method...");
-	if ($view == 'day')
-        {
-		//$label = $date_time->getdayofWeek()." ";
-		$label = $date_time->get_Date()." ";
-		$label .= $date_time->getmonthName()." ";
-		$label .= $date_time->year;
-		$cal_log->debug("Exiting display_date() method...");
-		return $label;
-        }
-	elseif ($view == 'week')
-        {
-                $week_start = $date_time->getThisweekDaysbyIndex(0);
-                $week_end = $date_time->getThisweekDaysbyIndex(6);
-                $label = $week_start->get_Date()." ";
-                $label .= $week_start->getmonthName()." ";
-                $label .= $week_start->year;
-                $label .= " - ";
-                $label .= $week_end->get_Date()." ";
-                $label .= $week_end->getmonthName()." ";
-                $label .= $week_end->year;
-		$cal_log->debug("Exiting display_date() method...");
-		return $label;
-        }
-
-	elseif ($view == 'month')
-	{
-		$label = $date_time->getmonthName()." ";
-		$label .= $date_time->year;
-		$cal_log->debug("Exiting display_date() method...");
-		return $label;
-        }
-	elseif ($view == 'year')
-	{
-		$cal_log->debug("Exiting display_date() method...");
-		return $date_time->year;
-        }
-
-}
-/**
- *  Function to get css class name for date
- *  @param   string  $slice_date    - date
- *  returns  string                 - css class name or empty string 
- */
-function dateCheck($slice_date)
-{
-	global $cal_log;
-	$cal_log->debug("Entering dateCheck() method...");
-	$today = date('Y-m-d');
-	if($today == $slice_date)
-	{
-		$cal_log->debug("Exiting dateCheck() method...");
-		//css class for day having event(s)
-		return 'currDay';
-	}
-	else
-	{
-		$cal_log->debug("Exiting dateCheck() method...");
-		return '';
-	}
-}
-
-/**
- * Function to construct respective calendar layout depends on the calendar view
- * @param  array     $view      -  collection of objects and strings
- */
-function getHourView(& $view)
-{
-	global $cal_log;
-	$hourview_layout = '';
-	$cal_log->debug("Entering getHourView() method...");
-	$hourview_layout .= '<br /><!-- HOUR VIEW LAYER STARTS HERE -->
-		<div id="hrView" align=center>';
-		
-	if($view['view'] == 'day')
-		$hourview_layout .= getDayViewLayout($view);
-	elseif($view['view'] == 'week')
-		$hourview_layout .= getWeekViewLayout($view);
-	elseif($view['view'] == 'month')
-		 $hourview_layout .= getMonthViewLayout($view);
-	elseif($view['view'] == 'year')
-		 $hourview_layout .= getYearViewLayout($view);
-	else
-		die("view:".$view['view']." is not defined");
-		
-	$hourview_layout .= '<br></div>
-		</div>';
-	$hourview_layout .= '<br></td></tr></table></td></tr></table>
-		</td></tr></table>
-		</td></tr></table>
-		</td></tr></table>
-		</div>
-		</td>
-	        <td valign=top><img src="'.$view['IMAGE_PATH'].'showPanelTopRight.gif"></td>
-		</tr>
-		   </table>
-	<br>';
-	echo $hourview_layout;
-	$cal_log->debug("Exiting getHourView() method...");
-}
-
-/**
- * Fuction constructs Events ListView depends on the view
- * @param   array  $cal            - collection of objects and strings
- * @param   string $mode           - string 'listcnt' or empty. if empty means get Events ListView else get total no. of events and no. of pending events Info.
- * returns  string $activity_list  - total no. of events and no. of pending events Info(Eg: Total Events : 2, 1 Pending).
- */
-function getEventListView(& $cal,$mode='')
-{
-	global $cal_log;
-	$list_view = "";
-        $cal_log->debug("Entering getEventListView() method...");
-	if($cal['calendar']->view == 'day')
-	{
-		$start_date = $end_date = $cal['calendar']->date_time->get_formatted_date();
-	}
-	elseif($cal['calendar']->view == 'week')
-	{
-		$start_date = $cal['calendar']->slices[0];
-		$end_date = $cal['calendar']->slices[6];
-	}
-	elseif($cal['calendar']->view == 'month')
-        {
-		$start_date = $cal['calendar']->date_time->getThismonthDaysbyIndex(0);
-		$end_date = $cal['calendar']->date_time->getThismonthDaysbyIndex($cal['calendar']->date_time->daysinmonth - 1);
-		$start_date = $start_date->get_formatted_date();
-		$end_date = $end_date->get_formatted_date();
-        }
-	elseif($cal['calendar']->view == 'year')
-        {
-		$start_date = $cal['calendar']->date_time->getThisyearMonthsbyIndex(0);
-		$end_date = $cal['calendar']->date_time->get_first_day_of_changed_year('increment');
-		$start_date = $start_date->get_formatted_date();
-		$end_date = $end_date->get_formatted_date();
-	}
-	else
-        {
-		die("view:".$cal['calendar']->view." is not defined");
-        }
-	//if $mode value is empty means get Events list in array format else get the count of total events and pending events in array format.
-	$activity_list = getEventList($cal, $start_date, $end_date,$mode);
-	if($mode != '')
-	{
-		$cal_log->debug("Exiting getEventListView() method...");
-		return $activity_list;
-	}
-	//To get Events listView
-	$list_view .="<br><div id='listView'>";
-	$list_view .=constructEventListView($cal,$activity_list);
-	$list_view .="<br></div>
-		</div>";
-	$list_view .="<br></td></tr></table></td></tr></table>
-			</td></tr></table>
-		</td></tr></table>
-		</div>
-		</td></tr></table>
-		</td>
-		<td valign=top><img src='".$cal['IMAGE_PATH']."showPanelTopRight.gif'></td>
-		</tr>
-	</table>
-	<br>";
-	echo $list_view;
-	$cal_log->debug("Exiting getEventListView() method...");
-}
-
-
-/**
- * Fuction constructs Todos ListView depends on the view
- * @param   array  $cal            - collection of objects and strings
- * @param   string $check          - string 'listcnt' or empty. if empty means get Todos ListView else get total no. of Todos and no. of pending todos Info.
- * returns  string $todo_list      - total no. of todos and no. of pending todos Info(Eg: Total Todos : 2, 1 Pending).
- */
-function getTodosListView($cal, $check='',$subtab='')
-{
-	global $cal_log;
-	$list_view = "";
-        $cal_log->debug("Entering getTodosListView() method...");
-	if($cal['calendar']->view == 'day')
-        {
-                $start_date = $end_date = $cal['calendar']->date_time->get_formatted_date();
-        }
-	elseif($cal['calendar']->view == 'week')
-        {
-                $start_date = $cal['calendar']->slices[0];
-                $end_date = $cal['calendar']->slices[6];
-        }
-        elseif($cal['calendar']->view == 'month')
-        {
-                $start_date = $cal['calendar']->date_time->getThismonthDaysbyIndex(0);
-                $end_date = $cal['calendar']->date_time->getThismonthDaysbyIndex($cal['calendar']->date_time->daysinmonth - 1);
-		$start_date = $start_date->get_formatted_date();
-		$end_date = $end_date->get_formatted_date();
-        }
-	elseif($cal['calendar']->view == 'year')
-        {
-                $start_date = $cal['calendar']->date_time->getThisyearMonthsbyIndex(0);
-                $end_date = $cal['calendar']->date_time->get_first_day_of_changed_year('increment');
-		$start_date = $start_date->get_formatted_date();
-		$end_date = $end_date->get_formatted_date();
-        }
-        else
-        {
-                die("view:".$cal['calendar']->view." is not defined");
-        }
-	//if $check value is empty means get Todos list in array format else get the count of total todos and pending todos in array format.
-	$todo_list = getTodoList($cal, $start_date, $end_date,$check);
-	if($check != '')
-	{
-		$cal_log->debug("Exiting getTodosListView() method...");
-		return $todo_list;
-	}
-	$cal_log->debug("Exiting getTodosListView() method...");
-	$list_view .="<div id='mnuTab2' style='background-color: rgb(255, 255, 215); display:block;'>";
-	//To get Todos listView
-	$list_view .= constructTodoListView($todo_list,$cal,$subtab);
-	$list_view .="</div></div></td></tr></table></td></tr></table>
-		</td></tr></table>
-		</td></tr></table>
-		</td></tr></table>
-		</div>
-		</td>
-		<td valign=top><img src='".$cal['IMAGE_PATH']."showPanelTopRight.gif'></td>
-	</tr>
-	</table>
-
-	";
-	echo $list_view;
-}
-
-/**
- * Function creates HTML to display Calendar DayView
- * @param  array     $cal            - collections of objects and strings.
- * return  string    $dayview_layout - html tags in string format
- */
-function getDayViewLayout(& $cal)
-{
-	//echo '<pre>';print_r($cal);echo '</pre>';
-	global $current_user,$app_strings,$cal_log,$adb;
-	$no_of_rows = 1;
-	$cal_log->debug("Entering getDayViewLayout() method...");
-	$shared_ids = getSharedCalendarId($current_user->id);
-	$user_details = getAllUserName();
-	$usersid = $current_user->id.','.$shared_ids;
-	$userid_arr = explode(",",$usersid);
-        $date_format = $current_user->date_format;
-	$day_start_hour = $cal['calendar']->day_start_hour;
-	$day_end_hour = $cal['calendar']->day_end_hour;
-	$format = $cal['calendar']->hour_format;
-	$dayview_layout = '';
-	$dayview_layout .= '<!-- Day view layout starts here --> <table border="0" cellpadding="10" cellspacing="0" width="100%">';
-	$dayview_layout .= '<tr>
-				<td id="mainContent" style="border-top: 1px solid rgb(204, 204, 204);">
-					<table border="0" cellpadding="5" cellspacing="0" width="100%">';
-	for($j=0;$j<24;$j++)
-	{
-		$slice = $cal['calendar']->slices[$j];
-		$act = $cal['calendar']->day_slice[$slice]->activities;
-		if(!empty($act))
-		{
-			$temprows = count($act);
-			$no_of_rows = ($no_of_rows>$temprows)?$no_of_rows:$temprows;
-		}
-	}
-	for($i=$day_start_hour;$i<=$day_end_hour;$i++)
-	{
-		
-		if($cal['calendar']->hour_format == 'am/pm')
-		{
-			if($i == 12)
-			{
-				$hour = $i;
-				$sub_str = 'pm';
-			}
-			elseif($i>12)
-			{
-				$hour = $i - 12;
-				$sub_str = 'pm';
-			}
-			else
-			{
-				if($i == 0)
-					$hour = 12;
-				else
-					$hour = $i;
-				$sub_str = 'am';
-			}
-			
-		}
-		else
-		{
-			$hour = $i;
-			if($hour <= 9 && strlen(trim($hour)) < 2)
-				$hour = "0".$hour;
-			$sub_str = ':00';
-		}
-		$y = $i+1;
-		$hour_startat = convertTime2UserSelectedFmt($format,$i,false);
-		$hour_endat = convertTime2UserSelectedFmt($format,$y,false);
-		$time_arr = getaddEventPopupTime($hour_startat,$hour_endat,$format);
-		$temp_ts = $cal['calendar']->date_time->ts;
-		$sttemp_date = (($date_format == 'dd-mm-yyyy')?(date('d-m-Y',$temp_ts)):(($date_format== 'mm-dd-yyyy')?(date('m-d-Y',$temp_ts)):(($date_format == 'yyyy-mm-dd')?(date('Y-m-d', $temp_ts)):(''))));
-		if($i != 23)
-		{
-			$endtemp_date = $sttemp_date;
-		}
-		else
-		{
-			$addday = $temp_ts + (1 * 24 * 60 * 60);
-			$endtemp_date = (($date_format == 'dd-mm-yyyy')?(date('d-m-Y',$addday)):(($date_format== 'mm-dd-yyyy')?(date('m-d-Y',$addday)):(($date_format == 'yyyy-mm-dd')?(date('Y-m-d', $addday)):(''))));
-		}
-
-		$js_string = "";
-		if(isPermitted("Calendar","EditView") == "yes")
-		              $js_string = 'onClick="fnvshobj(this,\'addEvent\'); gshow(\'addEvent\',\'call\',\''.$sttemp_date.'\',\''.$endtemp_date.'\',\''.$time_arr['starthour'].'\',\''.$time_arr['startmin'].'\',\''.$time_arr['startfmt'].'\',\''.$time_arr['endhour'].'\',\''.$time_arr['endmin'].'\',\''.$time_arr['endfmt'].'\',\'hourview\',\'event\')"';
-		$dayview_layout .= '<tr>
-					<td style="cursor:pointer;" class="lvtCol" valign=top height="75"  width="10%" '.$js_string.'>'.$hour.''.$sub_str.'</td>';
-		//To display events in Dayview
-		$dayview_layout .= getdayEventLayer($cal,$cal['calendar']->slices[$i],$no_of_rows);
-		$dayview_layout .= '</tr>';
-	}
-	$dayview_layout .= '</table>
-			</td></tr></table>';
-	$cal_log->debug("Exiting getDayViewLayout() method...");
-	return $dayview_layout;		
-}
-
-/**
- * Function creates HTML to display Calendar WeekView
- * @param  array     $cal             - collections of objects and strings



More information about the vtigercrm-commits mailing list