function CFClientDateToString (pdate, pformat, pseparator) {
	
	var lvFormatArray = new Array();
	var newDateObj = new Date();
	var newTestObj = new Date();
	var lresult ;
	var lday ;
	var lmonth ;
	var lyear ;
	var ltestparam ;
	
	lresult = '';
	ltestparam = true ;
	
	if (typeof(pseparator) == 'undefined') {
		pseparator = '/';
	} else {
		if (typeof(pseparator) != 'string') {
			ltestparam = false ;
		}
	}
	
	if (typeof(pformat) != 'string') {
		ltestparam = false ;
	}
	
	if (typeof(pdate) != 'object') {
		ltestparam = false ;
	}

	if (ltestparam) {
	
		lvFormatArray = pformat.split(pseparator);
	
		lresult = '';
		for (index = 0; index < 3; index++) 
		{   
			if (index != 0) {
				lresult = lresult + pseparator
			}
	
			if (lvFormatArray[index] == 'dd') {
				lday = pdate.getDate() ;
				if (lday < 10) {
					lresult = lresult + '0' + lday ;
				} else {
					lresult = lresult + lday ;
				}
			}
			if (lvFormatArray[index] == 'mm') {
				lmonth = pdate.getMonth() ;
				lmonth++;
				if (lmonth < 10) {
					lresult = lresult + '0' + lmonth ;
				} else {
					lresult = lresult + lmonth ;
				}
			}
				
			if (lvFormatArray[index] == 'yyyy') {
				lyear = pdate.getYear() ;
				
				newTestObj.setTime(Date.parse('01/01/2000'));
				if (newTestObj.getYear() == 2000) {
					if (lyear < 100) {
						lyear += 1900 ;
					}
				} else {
					lyear += 1900 ;
				}
				
				lresult = lresult + lyear ;
			}
		}
	}
	return lresult ;
}


function CFClientStringToDate (pdate, pformat, pseparator) {

	var lvFormatArray = new Array();
	var lvDateArray = new Array();
	var newDateObj = new Date();
	var newTestObj = new Date();
	
	var lvNewMonthNumber ;
	var lvNewDayNumber ;
	var lvNewYearNumber ;
	var lShortDate ;
	
	var lvDayString, lvMonthString, lvYearString;
	var lvDayNumber, lvMonthNumber, lvYearNumber;
	var index;
	var lresult;
	
	lresult = true;

	if (typeof(pdate) != 'string') {
		lresult = false;		
	}

	if (typeof(pformat) != 'string') {
		lresult = false;		
	}
	
	if (typeof(pseparator) == 'undefined') {
		pseparator = '/';
	} else {
		if (typeof(pseparator) != 'string') {
			lresult = false;
		}
	}
	
	if (lresult) {
		if (pdate.length == 0) {
			lresult = false;
		}
	}
	
	if (lresult) {
		lvFormatArray = pformat.split(pseparator);
		lvDateArray = pdate.split(pseparator);
		
		if (lvFormatArray.length != 3) {
			lresult = false;
		}
	
		if (lvDateArray.length != 3) {
			lresult = false;
		}
	}
	
	if (lresult) {
		for (index = 0; index < 3; index++) 
		{   
			if (lvFormatArray[index] == 'dd') {
				lvDayString = lvDateArray[index];
			}
			if (lvFormatArray[index] == 'mm') {
				lvMonthString = lvDateArray[index];
			}
			
			if (lvFormatArray[index] == 'yyyy') {
				lvYearString = lvDateArray[index];
			}
		}
		
		if (lvDayString.length < 1 || lvDayString.length > 2) {
			lresult = false;
		}
			
		if (lvMonthString.length < 1 || lvMonthString.length > 2) {
			lresult = false;
		}
			
		if (lvYearString.length < 2 || lvYearString.length > 4) {
			lresult = false;
		}
			
	}
	
	if (lresult) {
		lvDayNumber = 0 ;
		lvMonthNumber = 0 ;
		lvYearNumber = 0 ;
		
		lvDayNumber = parseInt(lvDayString, 10);
		lvMonthNumber = parseInt(lvMonthString, 10);
		lvYearNumber = parseInt(lvYearString, 10);
		
		if (isNaN(lvDayNumber)) {
			lresult = false;
		}
		if (isNaN(lvMonthNumber)) {
			lresult = false;
		}
		if (isNaN(lvYearNumber)) {
			lresult = false;
		}
	}
	
	if (lresult) {
	
		if ((lvDayNumber < 1) || (lvDayNumber > 31) ) {
			lresult = false;
		}
		if ((lvMonthNumber < 1) || (lvMonthNumber > 12) ) {
			lresult = false;
		}
		// Y2K 
		if (lvYearNumber < 1000) {
			lresult = false;
		}	
	}
	
	if (lresult) {
		lShortDate = lvMonthNumber + '/' + lvDayNumber + '/' + lvYearNumber;
		newDateObj.setTime(Date.parse(lShortDate));
			
		lvNewDayNumber = newDateObj.getDate() ;
		lvNewMonthNumber = newDateObj.getMonth() ;
		lvNewYearNumber = newDateObj.getYear() ;
		
		lvNewMonthNumber++ ;
		
		newTestObj.setTime(Date.parse('01/01/2000'));
		if (newTestObj.getYear() == 2000) {
			if (lvNewYearNumber < 100) {
				lvNewYearNumber += 1900 ;
			}	
		} else {
			lvNewYearNumber += 1900 ;
		}
		
		
		if (lvNewDayNumber != lvDayNumber) {
			lresult = false;
		}
		if (lvNewMonthNumber != lvMonthNumber) {
			lresult = false;
		}
		if (lvNewYearNumber != lvYearNumber) {
			lresult = false;
		}
	}
	
	if (lresult) {
		lresult = newDateObj
	}
	
	return lresult ;
}
