﻿//Copyright WebMail Wou3, Inc. 2007-2010
Type.registerNamespace('WebMail2');

WebMail2.Contact=function 
(
	ContactIndex, ToolBarObject, ReadOnly, IsGlobal,
	FirstName, MiddleName, LastName, Company,DisplayName,
	Email0, DisplayName0, 
	Email1, DisplayName1, 
	Email2, DisplayName2, 
	Address1, Address2, City, State, ZipCode, Country,
	BusinessPhone, HomePhone, CellPhone, OtherPhone, BirthDate, OtherDateName, OtherDate,
	ContactDiv, ContactImage,
	ContactFormat,ContactEMailFormat
) 
{ 
	this._ContactIndex=ContactIndex;
	
	this._ReadOnly=ReadOnly;
	this._IsGlobal=IsGlobal;
	this._FirstName=FirstName;
	this._MiddleName=MiddleName;
	this._LastName=LastName;
	this._Company=Company;
	this._DisplayName=DisplayName;
	this._Emails = new Array(Email0,Email1,Email2);
	this._EmailDisplayNames = new Array(DisplayName0,DisplayName1,DisplayName2);
	this._useAutoEmailFormat = new Array(true,true,true);
	this._useAutoDisplayNameFormat = true;
	this._Address1=Address1;
	this._Address2=Address2;
	this._City=City;
	this._State=State;
	this._ZipCode=ZipCode;
	this._Country=Country;
	this._BusinessPhone=BusinessPhone;
	this._HomePhone=HomePhone;
	this._CellPhone=CellPhone;
	this._OtherPhone=OtherPhone;
	this._BirthDate=BirthDate;
	this._OtherDateName=OtherDateName;
	this._OtherDate=OtherDate;
	this._ContactDiv=ContactDiv;
	this._ContactImage=ContactImage;
	
	this._ToolBarObject=null;
	
	if(ToolBarObject!=null)
	{
		this._ToolBarObject=ToolBarObject;
		this._ToolBarObject.set_Contact(this);
	}
	this._ContactEMailFormat=ContactEMailFormat;
	this._ContactFormat=ContactFormat;
}


WebMail2.Contact.prototype=
{
//////////////////////////////////////////////////////////////////////////////////////////////////////
//updates the visibility of client controls.  Then calls the base classes refresh method.
//////////////////////////////////////////////////////////////////////////////////////////////////////
loadContact:function(contactID, contactIndex)
{
	PageMethods.GetContact(contactID, contactIndex, listObject.onContactUpdateComplete, this.onLoadContactError);
	page.setTabVisible(contactIndex + listObject._FirstEditContactTabIndex,true);
	page.setSelectedTabIndex(contactIndex + listObject._FirstEditContactTabIndex);
	this.set_LoadingImageVisible(true);
},
//////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////
loadContactObject:function(contact) 
{
	if(contact.ContactID==null)
	{
		this.closeContact();
		listObject.refresh(false);
		//will clear all selected objects
		listObject.getSelectedValues(true, false, FORMAT_ARRAY_ITEM_SEPERATOR)
		return;
	}

	this.set_LoadingImageVisible(false);
	g_objEditContacts[contact.ContactIndex].value=contact.ContactID;

	var isReadOnly=(contact.ReadOnly==true);
	if(document.getElementById(this._ReadOnly)!=null)
	{
		if(isReadOnly==true)
		{
			document.getElementById(this._ReadOnly).style.display="block";
			document.getElementById(this._ReadOnly).innerHTML='You can not edit this contact.  This is a domain level contact owned by ' + contact.UserEMailAddress;
		}
		else
		{
			document.getElementById(this._ReadOnly).style.display="none";       
		}
	}
	setTextboxReadOnly(this._FirstName, isReadOnly);
	setTextboxReadOnly(this._MiddleName, isReadOnly);
	setTextboxReadOnly(this._LastName, isReadOnly);
	setTextboxReadOnly(this._Company, isReadOnly);
	setTextboxReadOnly(this._DisplayName, isReadOnly);
	setTextboxReadOnly(this._Emails[0], isReadOnly);
	setTextboxReadOnly(this._Emails[1], isReadOnly);
	setTextboxReadOnly(this._Emails[2], isReadOnly);
	setTextboxReadOnly(this._EmailDisplayNames[0], isReadOnly);
	setTextboxReadOnly(this._EmailDisplayNames[1], isReadOnly);
	setTextboxReadOnly(this._EmailDisplayNames[2], isReadOnly);
	setTextboxReadOnly(this._Address1, isReadOnly);
	setTextboxReadOnly(this._Address2, isReadOnly);
	setTextboxReadOnly(this._City, isReadOnly);
	setTextboxReadOnly(this._State, isReadOnly);
	setTextboxReadOnly(this._ZipCode, isReadOnly);
	setTextboxReadOnly(this._Country, isReadOnly);
	setTextboxReadOnly(this._BusinessPhone, isReadOnly);
	setTextboxReadOnly(this._HomePhone, isReadOnly);
	setTextboxReadOnly(this._CellPhone, isReadOnly);
	setTextboxReadOnly(this._OtherPhone, isReadOnly);
	setTextboxReadOnly(this._BirthDate, isReadOnly);
	setTextboxReadOnly(this._FirstName, isReadOnly);
	setTextboxReadOnly(this._OtherDateName, isReadOnly);
	setTextboxReadOnly(this._OtherDate, isReadOnly);
	setCheckBoxEnabled(this._IsGlobal, (false==isReadOnly));
	
	this.set_FirstName(contact.ContactFirstName);
	this.set_MiddleName(contact.ContactMiddleName);
	this.set_LastName(contact.ContactLastName);
	this.set_Company(contact.Company);
	this.set_Address1(contact.Address1);
	this.set_Address2(contact.Address2);
	this.set_City(contact.City);
	this.set_ZipCode(contact.Zip);
	this.set_State(contact.State);
	this.set_Country(contact.Country);
	this.set_BusinessPhone(contact.BusinessPhone);
	this.set_HomePhone(contact.HomePhone);
	this.set_CellPhone(contact.CellPhone);
	this.set_OtherPhone(contact.OtherPhone1);
	this.set_BirthDate(contact.BirthDate);
	this.set_OtherDateName(contact.OtherDateName);
	this.set_OtherDate(contact.OtherDate);
	this.set_IsGlobal(contact.IsGlobal);
	
	var emailFormat = this._ContactEMailFormat;
	emailFormat=formatDisplayAs(emailFormat,contact.ContactFirstName,contact.ContactLastName,contact.Company);
	
	//checks to see if each email's auto display format is the same as the default
	for(iEmail=0; iEmail<contact.EMailAddresses.length; iEmail++)
	{
		if(isReadOnly==false)
		{
			if(contact.EMailAddresses[iEmail].Value.length>0)
			{
				setObjectValue(this._Emails[iEmail],contact.EMailAddresses[iEmail].Value);
				//if the stored DisplayName is the same as the autoformat display name,
				//auto format if the first name, last name, or company name change
				this._useAutoEmailFormat[iEmail]=(contact.EMailAddresses[iEmail].DisplayName==emailFormat);
				setObjectValue(this._EmailDisplayNames[iEmail],contact.EMailAddresses[iEmail].DisplayName);                
			}
			else
			{
				this._useAutoEmailFormat[iEmail]=true;
				setObjectValue(this._Emails[iEmail],'');
				setObjectValue(this._EmailDisplayNames[iEmail],'');
			}
		}
		else
		{
			setObjectValue(this._EmailDisplayNames[iEmail],contact.EMailAddresses[iEmail].DisplayName);
			setObjectValue(this._Emails[iEmail],contact.EMailAddresses[iEmail].Value);
			this._useAutoEmailFormat[iEmail]=false;
		}
	}
	
	if(isReadOnly==false)
	{
		//checks to see if the contact display name is the same as the default display as
		var formatValue=this._ContactFormat;
		this._useAutoDisplayNameFormat=
			(contact.DisplayName==formatDisplayAs(formatValue,contact.ContactFirstName,contact.ContactLastName,contact.Company));
	}
	else
		this._useAutoDisplayNameFormat=false;

	setObjectValue(this._DisplayName,contact.DisplayName);

},
onLoadContactError:function(error)
{
	listObject.resetTabs();
	onError(error);
},
//////////////////////////////////////////////////////////////////////////////////////////////////////
create:function()
{
	this.set_LoadingImageVisible(true);
	try
	{
		g_objEditContacts[this.get_ContactIndex()].value=-1;
		document.getElementById(this._ReadOnly).style.display="none"
		
		this.set_IsGlobal(false);
		this.set_FirstName('');
		this.set_MiddleName('');
		this.set_LastName('');
		this.set_Company('');
		this.set_DisplayName('');
		this.set_Address1('');
		this.set_Address2('');
		this.set_City('');
		this.set_ZipCode('');
		this.set_State('');
		this.set_Country('');
		this.set_BusinessPhone('');
		this.set_HomePhone('');
		this.set_CellPhone('');
		this.set_OtherPhone('');
		this.set_BirthDate('');
		this.set_OtherDateName('');
		this.set_OtherDate('');
		this.set_Email(0,'');
		this.set_Email(1,'');
		this.set_Email(2,'');
		this.set_EmailDisplayName(0,'');
		this.set_EmailDisplayName(1,'');
		this.set_EmailDisplayName(2,'');
		
		setTextboxReadOnly(this._FirstName, false);
		setTextboxReadOnly(this._MiddleName, false);
		setTextboxReadOnly(this._LastName, false);
		setTextboxReadOnly(this._Company, false);
		setTextboxReadOnly(this._DisplayName, false);
		setTextboxReadOnly(this._Emails[0], false);
		setTextboxReadOnly(this._Emails[1], false);
		setTextboxReadOnly(this._Emails[2], false);
		setTextboxReadOnly(this._EmailDisplayNames[0], false);
		setTextboxReadOnly(this._EmailDisplayNames[1], false);
		setTextboxReadOnly(this._EmailDisplayNames[2], false);
		setTextboxReadOnly(this._Address1, false);
		setTextboxReadOnly(this._Address2, false);
		setTextboxReadOnly(this._City, false);
		setTextboxReadOnly(this._State, false);
		setTextboxReadOnly(this._ZipCode, false);
		setTextboxReadOnly(this._Country, false);
		setTextboxReadOnly(this._BusinessPhone, false);
		setTextboxReadOnly(this._HomePhone, false);
		setTextboxReadOnly(this._CellPhone, false);
		setTextboxReadOnly(this._OtherPhone, false);
		setTextboxReadOnly(this._BirthDate, false);
		setTextboxReadOnly(this._FirstName, false);
		setTextboxReadOnly(this._OtherDateName, false);
		setTextboxReadOnly(this._OtherDate, false);
		setCheckBoxEnabled(this._IsGlobal, true);
		
		for(i=0; i<this._useAutoEmailFormat.length; i++)
		{
			this._useAutoEmailFormat[i]=true;
		}
		this._useAutoDisplayNameFormat = true;
	}
	catch(e)
	{
		displayMessage(e);
	}
	page.setTabVisible(this.get_TabIndex(),true);
	page.setSelectedTabIndex(this.get_TabIndex());
	this.set_LoadingImageVisible(false);
},

//////////////////////////////////////////////////////////////////////////////////////////////////////
//public void SaveContact
//(int TabIndex, int ContactID, string ContactFirstName, string ContactMiddleName,
//string ContactLastName, string Company, string DisplayName, string Address1, string Address2,
//string City, string State, string ZipCode, string Country, string BusinessPhone, string HomePhone,
//string CellPhone, string OtherPhone, string BirthDate, string OtherDateName, string OtherDate,
//string EMail0, string DisplayName0, string EMail1, string DisplayName1, string EMail2, string DisplayName2)
//////////////////////////////////////////////////////////////////////////////////////////////////////
save:function()
{
	if(document.getElementById(this._ReadOnly).style.display!="none")
	{
		page.set_ErrorMessage('You can not edit or save changes to global contacts owned by other users');
		return;
	}
	PageMethods.SaveContact
	( 
		 this.get_ContactIndex(), Number(g_objEditContacts[this.get_ContactIndex()].value), 
		 this.get_FirstName(),  this.get_MiddleName(), this.get_LastName(), 
		 this.get_Company(),  this.get_DisplayName(), 
		 this.get_Address1(), this.get_Address2(),
		 this.get_City(),  this.get_State(),  this.get_ZipCode(),  this.get_Country(), 
		 this.get_BusinessPhone(),  this.get_HomePhone() , this.get_CellPhone(),  this.get_OtherPhone(),  
		 this.get_IsGlobal(), this.get_BirthDate(),  this.get_OtherDateName(),  this.get_OtherDate(),
		 this.get_Email(0),  this.get_EmailDisplayName(0),  
		 this.get_Email(1),  this.get_EmailDisplayName(1),
		 this.get_Email(2), this.get_EmailDisplayName(2),
		 listObject.onContactUpdateComplete, this.onSaveContactError
	 );
},
//////////////////////////////////////////////////////////////////////////////////////////////////////    

//////////////////////////////////////////////////////////////////////////////////////////////////////    
onSaveContactError:function(error)
{
	listObject.refresh(false);
	listObject.resetTabs();
	onError(error);
},
//////////////////////////////////////////////////////////////////////////////////////////////////////    

//////////////////////////////////////////////////////////////////////////////////////////////////////    
//public static Dictionary<string, object> DeleteContact(int ContactIndex, int ContactID)
//////////////////////////////////////////////////////////////////////////////////////////////////////    
deleteContact:function()
{
	if(document.getElementById(this._ReadOnly).style.display!="none")
	{
		page.set_ErrorMessage('You can not delete global contacts owned by other users');
		return;
	}
	
	if(Number(g_objEditContacts[this.get_ContactIndex()].value)==-1)
	{
		page.setTabVisible(this.get_TabIndex(),false);
		g_objEditContacts[this.get_ContactIndex()].value='';
		return;
	}
	this.set_LoadingImageVisible(true);
	PageMethods.DeleteContact(
		this.get_ContactIndex(), 
		Number(g_objEditContacts[this.get_ContactIndex()].value),
		listObject.onContactUpdateComplete, 
		this.onDeleteContactError
		);

},

onDeleteContactError:function(error)
{
	listObject.resetTabs();
	listObject._LastSelected=null;
	listObject.refresh(false);
	onError(error);
},
//////////////////////////////////////////////////////////////////////////////////////////////////////    
//////////////////////////////////////////////////////////////////////////////////////////////////////    
closeContact:function()
{
	page.setTabVisible(this.get_TabIndex(),false);
	g_objEditContacts[this.get_ContactIndex()].value='';
},
//////////////////////////////////////////////////////////////////////////////////////////////////////    
get_ContactIndex:function(){return Number(getObjectValue(this._ContactIndex));},
get_TabIndex:function(){return (Number(this.get_ContactIndex()) + listObject._FirstEditContactTabIndex);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//Loading Image
//////////////////////////////////////////////////////////////////////////////////////////////////////
set_LoadingImageVisible:function(value)
{
	var imgLoading=document.getElementById(this._ContactImage);
	var divContact=document.getElementById(this._ContactDiv);
	if(value==true)
	{
		if(divContact!=null)
			divContact.style.visibility='hidden';
		if(imgLoading!=null)
			imgLoading.style.display='block';
			
	}
	else
	{
		if(divContact!=null)
			divContact.style.visibility='visible';
		if(imgLoading!=null)
			imgLoading.style.display='none';
	}
},
//////////////////////////////////////////////////////////////////////////////////////////////////////    

//////////////////////////////////////////////////////////////////////////////////////////////////////
//Toolbar references
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_Toolbar:function() {return this._ToolBarObject;},
//////////////////////////////////////////////////////////////////////////////////////////////////////

get_IsGlobal:function()
{
	if(document.getElementById(this._IsGlobal)==null)
		return false;
	return document.getElementById(this._IsGlobal).checked;
},
set_IsGlobal:function(value)
{
	if(document.getElementById(this._IsGlobal)!=null)
		document.getElementById(this._IsGlobal).checked=value;
},

//////////////////////////////////////////////////////////////////////////////////////////////////////
//FirstName
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_FirstName:function(){return getObjectValue(this._FirstName);},
set_FirstName:function(value){setObjectValue(this._FirstName,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//MiddleName
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_MiddleName:function(){return getObjectValue(this._MiddleName);},
set_MiddleName:function(value){setObjectValue(this._MiddleName,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//LastName
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_LastName:function(){return getObjectValue(this._LastName);},
set_LastName:function(value){setObjectValue(this._LastName,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//Company
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_Company:function(){return getObjectValue(this._Company);},
set_Company:function(value){setObjectValue(this._Company,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//DisplayName
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_DisplayName:function(){return getObjectValue(this._DisplayName);},
set_DisplayName:function(value)
{
	this._useAutoDisplayNameFormat=(this.get_formatDisplayAs()==value);
	setObjectValue(this._DisplayName,value);
},
////////////////////////////////////////////////////////////////////////////////////////////////////// 
//Address1
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_Address1:function(){return getObjectValue(this._Address1);},
set_Address1:function(value){setObjectValue(this._Address1,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//Address2
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_Address2:function(){return getObjectValue(this._Address2);},
set_Address2:function(value){setObjectValue(this._Address2,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//City
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_City:function(){return getObjectValue(this._City);},
set_City:function(value){setObjectValue(this._City,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//State
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_State:function(){return getObjectValue(this._State);},
set_State:function(value){setObjectValue(this._State,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//ZipCode
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_ZipCode:function(){return getObjectValue(this._ZipCode);},
set_ZipCode:function(value){setObjectValue(this._ZipCode,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//_Country
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_Country:function(){return getObjectValue(this._Country);},
set_Country:function(value){setObjectValue(this._Country,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//_BusinessPhone
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_BusinessPhone:function(){return getObjectValue(this._BusinessPhone);},
set_BusinessPhone:function(value){setObjectValue(this._BusinessPhone,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//HomePhone
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_HomePhone:function(){return getObjectValue(this._HomePhone);},
set_HomePhone:function(value){setObjectValue(this._HomePhone,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//CellPhone
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_CellPhone:function(){return getObjectValue(this._CellPhone);},
set_CellPhone:function(value){setObjectValue(this._CellPhone,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//OtherPhone
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_OtherPhone:function(){return getObjectValue(this._OtherPhone);},
set_OtherPhone:function(value){setObjectValue(this._OtherPhone,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//BirthDate
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_BirthDate:function(){return getObjectValue(this._BirthDate);},
set_BirthDate:function(value){setObjectValue(this._BirthDate,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//OtherDateName
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_OtherDateName:function(){return getObjectValue(this._OtherDateName);},
set_OtherDateName:function(value){setObjectValue(this._OtherDateName,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//OtherDate
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_OtherDate:function(){return getObjectValue(this._OtherDate);},
set_OtherDate:function(value){setObjectValue(this._OtherDate,value);},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//Email
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_Email:function(index){return getObjectValue(this._Emails[Number(index)]);},
set_Email:function(index, value)
{
	value=value.replace(' ','');
	if(value.length==0)
	{
		setObjectValue(this._Emails[Number(index)],'');
		setObjectValue(this._EmailDisplayNames[index],'');
		this._useAutoEmailFormat[index]=true;
	}
	else
	{
		setObjectValue(this._Emails[Number(index)],value);
	}
},
//////////////////////////////////////////////////////////////////////////////////////////////////////
//Email
//////////////////////////////////////////////////////////////////////////////////////////////////////
get_EmailDisplayName:function(index){return getObjectValue(this._EmailDisplayNames[Number(index)]);},
set_EmailDisplayName:function(index, value)
{
	//if the related email address length ==0, set the useAutoEMailFormat to true and the display as value
	//to false.
	if(this.get_Email(index).replace(' ','').length==0)
	{
		setObjectValue(this._EmailDisplayNames[index],'');
		this._useAutoEmailFormat[index]=true;
	}
	else
	{
		//set useAutoFormat[index] to true of the new value is the same as the auto formatted value
		//which is calculated by get_formatEmailDisplayAs
		this._useAutoEmailFormat[index]=(this.get_formatEmailDisplayAs(index)==value);
		setObjectValue(this._EmailDisplayNames[index],value);
	}
},
//////////////////////////////////////////////////////////////////////////////////////////////////////    

//////////////////////////////////////////////////////////////////////////////////////////////////////    
recheckDisplayAs:function()
{this._useAutoDisplayNameFormat=this.get_DisplayName().toLowerCase()==this.get_formatDisplayAs().toLowerCase();},
//////////////////////////////////////////////////////////////////////////////////////////////////////    


//////////////////////////////////////////////////////////////////////////////////////////////////////
// checks the display as to see if autoformat still applies
recheckEMailDisplayAs:function(index)
{
	this._useAutoEmailFormat[index]=(this.get_Email(index).replace(' ','').length==0) || (this.get_formatEmailDisplayAs(index)==this.get_EmailDisplayName(index));
},
//////////////////////////////////////////////////////////////////////////////////////////////////////    

//////////////////////////////////////////////////////////////////////////////////////////////////////    
//if useAutoFormat is true, set the format using the default display as value using
//get_formatEmailDisplayAs
//if email value is zero length, set the display name to the same
//reset useAutoEmailFormat
autoSetFormatEmailDisplayAs:function(index)
{
	if(this.get_Email(index).replace(' ','').length==0)
	{
		this._useAutoEmailFormat[index]=true;
		this.set_EmailDisplayName(index,'');
	}
	else if((this.get_Email(index).replace(' ','').length>0) && (true==this._useAutoEmailFormat[index]))
		this.set_EmailDisplayName(index,this.get_formatEmailDisplayAs(index));

	this.recheckEMailDisplayAs(index);
},
//calculates the EmailDisplayAs value based on the email address, name, and company name
get_formatEmailDisplayAs:function(index)
{
	var formatValue=this._ContactEMailFormat;
	
	//if company, last name, first name all have no value, display the e-mail address only.
	//or if the default format is email address only, then the display value is email address only
	if  ( 
			(formatValue.replace(' ','').length==0)
			||
			(this.get_Email(Number(index)).replace(' ','').length==0)
		)
	{
		return "";
	}

	return formatDisplayAs(formatValue,this.get_FirstName(),this.get_LastName(),this.get_Company());
},
//////////////////////////////////////////////////////////////////////////////////////////////////////    

autoSetFormatDisplayAs:function()
{
	if(true==this._useAutoDisplayNameFormat)
		this.set_DisplayName(this.get_formatDisplayAs());
	this.recheckDisplayAs();
},
get_formatDisplayAs:function()
{
	var formatValue=this._ContactFormat;
	if(formatValue.replace(' ','').length==0)
		return '';
		
	return formatDisplayAs(formatValue,this.get_FirstName(),this.get_LastName(),this.get_Company());
},
autoSetDisplayValues:function()
{
	this.autoSetFormatDisplayAs();
	this.autoSetFormatEmailDisplayAs(0);
	this.autoSetFormatEmailDisplayAs(1);
	this.autoSetFormatEmailDisplayAs(2);
}
}
WebMail2.Contact.registerClass("WebMail2.Contact");

