#include "stdafx.h"
#include "mimemapc.h"


CMimeMap::CMimeMap ( LPCTSTR pchOriginalMimeMap) 
{
	CString strOriginalMimeMap = pchOriginalMimeMap;
	int iCharIndex;

//Save this away and never change it.
	m_strPrevMimeMap = pchOriginalMimeMap;

	if ((iCharIndex = strOriginalMimeMap.Find(',')) != -1) {
	   m_strMimeType = strOriginalMimeMap.Left(iCharIndex);
	   strOriginalMimeMap = strOriginalMimeMap.Mid(iCharIndex + 1);
	}
	else {
	   m_strMimeType = strOriginalMimeMap;
	   strOriginalMimeMap = _T("");
	}

	if ((iCharIndex = strOriginalMimeMap.Find(',')) != -1) {
	   m_strFileExtension = strOriginalMimeMap.Left(iCharIndex);
	   strOriginalMimeMap = strOriginalMimeMap.Mid(iCharIndex + 1);
	}
	else {
	   m_strFileExtension = strOriginalMimeMap;
	   strOriginalMimeMap = _T("");
	}

	if ((iCharIndex = strOriginalMimeMap.Find(',')) != -1) {
	   m_strImageFile = strOriginalMimeMap.Left(iCharIndex);
	   strOriginalMimeMap = strOriginalMimeMap.Mid(iCharIndex + 1);
	}
	else {
	   m_strImageFile = strOriginalMimeMap;
	   strOriginalMimeMap = _T("");
	}

	m_strGopherType = strOriginalMimeMap;
}

CMimeMap::CMimeMap ( LPCTSTR pchFileExtension, LPCTSTR pchMimeType, LPCTSTR pchImageFile, LPCTSTR pchGopherType) 
{

	m_strPrevMimeMap = _T("");

	m_strMimeType = pchMimeType;
	SetFileExtension(pchFileExtension);
	m_strImageFile = pchImageFile;
	m_strGopherType = pchGopherType;
}


	

	


CMimeMap::~CMimeMap()
{
}

void CMimeMap::SetMimeType(LPCTSTR pchMimeType)
{
	m_strMimeType = pchMimeType;
}
 
LPCTSTR CMimeMap::GetMimeType()
{
	return (m_strMimeType);
}

void CMimeMap::SetGopherType(LPCTSTR pchGopherType)
{
	m_strGopherType = pchGopherType;
}


LPCTSTR CMimeMap::GetGopherType()
{
	return (m_strGopherType);
}

void CMimeMap::SetImageFile(LPCTSTR pchImageFile)
{
	m_strImageFile = pchImageFile;
}


LPCTSTR CMimeMap::GetImageFile()
{
	return(m_strImageFile);
}


void CMimeMap::SetFileExtension(LPCTSTR pchFileExtension)
{
	CString strTempFileExtension = pchFileExtension;
	CheckDot(strTempFileExtension);
	m_strFileExtension = strTempFileExtension;
}

LPCTSTR CMimeMap::GetFileExtension()
{
	return(m_strFileExtension);
}

LPCTSTR CMimeMap::GetPrevMimeMap()
{
	return(m_strPrevMimeMap);
}

void CMimeMap::SetPrevMimeMap()
{
	m_strPrevMimeMap = GetMimeMapping();
}

BOOL CMimeMap::PrevMimeMapExists()
{
return (m_strPrevMimeMap != _T(""));
}


////////////////////////////////////////////////////////////////////////////////
// Private functions

LPCTSTR CMimeMap::GetMimeMapping()
{
m_strCurrentMimeMap = m_strMimeType;
m_strCurrentMimeMap += _T(",");
m_strCurrentMimeMap += m_strFileExtension;
m_strCurrentMimeMap += _T(",");
m_strCurrentMimeMap += m_strImageFile;
m_strCurrentMimeMap += _T(",");
m_strCurrentMimeMap += m_strGopherType;
return (m_strCurrentMimeMap);
}

LPCTSTR CMimeMap::GetDisplayString()
{
m_strDisplayString = m_strFileExtension;
m_strDisplayString += _T("\t");
m_strDisplayString += m_strMimeType;
m_strDisplayString += _T("\t");
m_strDisplayString += m_strGopherType;
return (m_strDisplayString);
}

void CMimeMap::CheckDot(CString &strFileExtension)
{
if (strFileExtension.Left(1) == _T(".")) {
   CString strTemp = strFileExtension.Mid(1);
   strFileExtension = strTemp;
   }
}