function initTable(objId, frame)
{
	var frameDocument = frame.document;
	var obj = frameDocument.getElementById(objId);
	var frameHeight = (frame.innerHeight?frame.innerHeight:
                      (frame.frameElement?frame.frameElement.height:frame.height));
	var table = obj.getElementsByTagName('TABLE')[0];

	if(frameHeight > (obj.offsetTop + 10))
	{
      
    obj.style.height = (frameHeight - obj.offsetTop - (document.all?4:0)) + 'px';
    
    if(document.all)
      table.style.width = (frameDocument.body.clientWidth - (obj.scrollWidth - obj.clientWidth)) + 'px';
      
    if(!frameDocument.getElementById('scroll'))
    {
      var columns = frameDocument.getElementById('columns');
      var rows = columns.getElementsByTagName('TR');
      for(var i = 0; i < rows.length; i++){
        var cell = rows[i].insertCell(-1);
        cell.id = 'scroll';
        cell.className = rows[i].cells[0].className;
        cell.innerHTML = '&nbsp;';
        cell.style.width = '17px';
      }
    }
    if((table.clientHeight<=(frameHeight-obj.offsetTop)) && frameDocument.getElementById('scroll'))
		{
			obj.style.height = table.clientHeight + 'px';
			frameDocument.getElementById('columns').rows[0].removeChild(frameDocument.getElementById('scroll'));
		}
    
	}
}

function initTabela(objId)
{
	var frameDocument = document;
	var obj = frameDocument.getElementById(objId);
	var frameHeight = (window.innerHeight?frame.innerHeight:
                      (window.frameElement?window.frameElement.height:window.height));
	var table = obj.getElementsByTagName('TABLE')[0];

	if(frameHeight > (obj.offsetTop + 10))
	{
      
    obj.style.height = (frameHeight - obj.offsetTop - (document.all?4:0)) + 'px';
    
    if(document.all)
      table.style.width = (frameDocument.body.clientWidth - (obj.scrollWidth - obj.clientWidth)) + 'px';
      
    if(!frameDocument.getElementById('scroll'))
    {
      var columns = frameDocument.getElementById('columns');
      var rows = columns.getElementsByTagName('TR');
      for(var i = 0; i < rows.length; i++){
        var cell = rows[i].insertCell(-1);
        cell.id = 'scroll';
        cell.className = rows[i].cells[0].className;
        cell.innerHTML = '&nbsp;';
        cell.style.width = '17px';
      }
    }
    if((table.clientHeight<=(frameHeight-obj.offsetTop)) && frameDocument.getElementById('scroll'))
		{
			obj.style.height = table.clientHeight + 'px';
			frameDocument.getElementById('columns').rows[0].removeChild(frameDocument.getElementById('scroll'));
		}
    
	}
}

function initSearchTable()
{
	var obj = document.getElementById("table");
	var windowHeight = document.documentElement.clientHeight;
	var table = obj.getElementsByTagName('TABLE')[0];
	
	if(windowHeight > (obj.offsetTop + 10))
	{
		obj.style.height = (windowHeight - obj.offsetTop) + 'px';
		
		if(document.all) {
			table.style.width = (obj.clientWidth) + 'px';
		}
	}		

	document.component = document.getElementById('items').rows;
	document.view = 'email';
	document.pagenumber = 1;
	document.arrowDistance = 60;
	//focus();
	disableTextSelection();
	document.selected = new Array();
	document.elementList=document.getElementById('items').rows;	
	
	var rowsTr = document.getElementById('items').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
	
	if (rowsTr.length > 0){	
		selectElement(document.getElementById('items').rows[0], 'tablerow');				
		document.selected[0] = document.getElementById('items').rows[0].id;							
	}
	
	
}

function initContactTable(objId, frame)
{
	var frameDocument = frame.document;
	var obj = frameDocument.getElementById(objId);
	var search = frameDocument.getElementById("search");

	var frameWidth = (frame.innerWidth?frame.innerWidth:frame.frameElement.width);
	obj.style.width = (frameWidth - search.clientWidth - (document.all?2:-1)) + 'px';

	var frameHeight = (frame.innerHeight?frame.innerHeight:frame.frameElement.height);
	obj.style.height = (frameHeight - obj.offsetTop - (document.all?4:0)) + 'px';
	
	search.style.height = (frameHeight - obj.offsetTop - (document.all?4:0)) + 'px';
	var alfabet = search.getElementsByTagName("DIV");
	var itemHeight = Math.floor(search.clientHeight / alfabet.length) - 1;
	
	if(itemHeight > 17) {
		itemHeight = 17;
	}
	
	for(var i = 0; i < alfabet.length; i++)
	{
		alfabet[i].style.height = itemHeight + "px";
	}
}

function initHierarchyList(objId, frame)
{
	var frameDocument = frame.document;
	var obj = frameDocument.getElementById(objId);

	var frameWidth = (frame.innerWidth?frame.innerWidth:frame.frameElement.width);
	obj.style.width = frameWidth + 'px';

	var frameHeight = (frame.innerHeight?frame.innerHeight:frame.frameElement.height);
	obj.style.height = (frameHeight - obj.offsetTop) + 'px';	
}

function initCalendar(objId, frame, numberDays)
{
	var frameDocument = frame.document;
	var obj = frameDocument.getElementById(objId);

	if(!numberDays) {
		numberDays = frameDocument.calendar.numberDays;
	}

	var frameWidth = (frame.innerWidth?frame.innerWidth:frame.frameElement.width);

	if(document.all) {
		var table = obj.getElementsByTagName('TABLE')[0];
		table.style.width = (frameDocument.body.clientWidth - (document.all?16:0)) + 'px';
	} else {
		obj.style.width = frameWidth + 'px';
	}

	var frameHeight = (frame.innerHeight?frame.innerHeight:frame.frameElement.height);
	obj.style.height = (frameHeight - obj.offsetTop - (document.all?4:0)) + 'px';

	frameDocument.getElementById("timelinetop").style.width = (frameDocument.getElementById("0").clientWidth + (document.all && numberDays > 1?1:document.all?0:-1)) + 'px';
	
	for(var i = 0; i < numberDays; i++)
	{
		frameDocument.getElementById("weekday" + i).style.width = frameDocument.getElementById(i + "_time000").clientWidth + 'px';
	}
	
	frameDocument.getElementById('content').scrollTop = frameDocument.getElementById('9').offsetTop;

	if(frameDocument.calendar)
	{
		frameDocument.calendar.itemWidth = frameDocument.getElementById("weekday0").clientWidth;
		frameDocument.calendar.dayEvent.alignItems();
		frameDocument.calendar.alignItems();
	}
}

var outroUsuario=""; 
var calendarioPublico="";
function onDblClickMonthItem(e){
  if (!e) 
  	e = window.event;

  var targetElem = e.target?e.target:e.srcElement;
  if (targetElem.tagName.toUpperCase() == 'SPAN') 
  	targetElem = targetElem.parentNode;
  itemEntryID = targetElem.id.substring(targetElem.id.indexOf('_')+1,targetElem.id.length);
  elementDblClick(itemEntryID+"&username="+outroUsuario+"&publico="+calendarioPublico, 'appointment');
  
  if(targetElem.className.indexOf('recurring')>0){
    modalDialog('?task=table&view=appointmentrecurrence_open&entryid=' + id + '&base_day=' + item["base_day"] + '&base_month=' + item["base_month"] + '&base_year=' + item["base_year"], 330, 200);
  }
  
}
  
function onResizeMonthView(){
	// resize month view
	var frameHeight = (window.innerHeight?window.innerHeight:(window.frameElement?window.frameElement.height:window.height));
	var frameWidth = (window.innerWidth?window.innerWidth:(window.frameElement?window.frameElement.width:window.width));
	
	var tableElemDiv = document.getElementById('month_table_div');
	var tableElem = document.getElementById('month_table');
    
  var rows = getElementsByClassName('month','tr');
  var rowHeight = Math.floor((frameHeight - tableElemDiv.offsetTop - document.getElementById("month_top").clientHeight - 7) / rows.length);
  for (i in rows) rows[i].style.height = rowHeight + "px";
  
	tableElem.style.height = tableElem.clientHeight + (frameHeight - (tableElem.clientHeight + tableElem.offsetTop + (document.all?4:0))) + "px";

  var day_elems = getElementsByClassName('month_day','td');
  // unset fixed width/height of the table
  for (i in day_elems){
      day_elems[i].style.height = 'auto';
      day_elems[i].style.width = 'auto';
  }
  // remove 'more_items' icons
  var icons = getElementsByClassName('more_items','div');
  for (i in icons) icons[i].className = 'no_more_items';
  
  // hide all items...
  var items = getElementsByClassName('event_item','li');
  for (i in items) items[i].className = items[i].className.replace('event_item','event_hidden');
  items = getElementsByClassName('event_hidden','li'); // All items are hidden now, select them all
  
  // calculate space left for items
  var dayHeight = Math.floor((frameHeight-40)/6);
  var dayWidth =  Math.floor(frameWidth/7);
  var itemDayCount = Math.floor((dayHeight-25)/13);
  if (itemDayCount<1) itemDayCount = 0;

  // show some items...
  var days = Array();
  var current_items = 0;
  for (i in items){
    day = items[i].parentNode.id.substring(9,items[i].parentNode.id.length);
    if (!days[day]) days[day] = 0;
    days[day]++;
    
    if (days[day] <= itemDayCount){
      items[i].className = items[i].className.replace('event_hidden','event_item');
    }else{
      document.getElementById('more_item_'+day).className = 'more_items';
      document.getElementById('more_item_'+day).title = getMessage('month_more_items').replace('{COUNT}',(days[day]-itemDayCount));
    }
  }
}


