

function CFC_clearDate(dateObject,thisForm)
	{
	document.CFCForm[dateObject.storageName].value="";
	for (elem in dateObject.Sub)
		{
		document.CFCForm[dateObject.Sub[elem].name].selectedIndex=0;
		}
	}


function CFC_changeDate(dateObject,thisForm, format)
	{
	var dateOut="";
	var dSel, mSel, ySel;
	var dValue, mValue, yValue;
	var dSelIndex;
	
	var Ymd=0;
	for (var elem in dateObject.Sub)
		{
		switch (elem)
			{
			case "year":
			case "month":
			case "day":
				Ymd++;
			}
		}
	if (Ymd==3)
		{
		dSel=thisForm[dateObject.Sub["day"].name];
		mSel=thisForm[dateObject.Sub["month"].name];
		ySel=thisForm[dateObject.Sub["year"].name];
		dSelIndex=dSel.selectedIndex;

		dValue=parseInt(dSel[dSel.selectedIndex].value,10);
		mValue=parseInt(mSel[mSel.selectedIndex].value,10);
		yValue=parseInt(ySel[ySel.selectedIndex].value,10);

		if(!mValue) mValue=parseInt(mSel[1].value,10);
		if(!yValue) yValue=parseInt(ySel[1].value,10);
		
		var i=29;   
		var idx=dSel.selectedIndex;  
		while (i<32)
			{
			var dObj = new Date(yValue,mValue-1,i);
			dSel.length=i;
			if (dObj.getMonth()!=mValue-1) 
				{                    
				if (idx>=i)
					{
					idx=i-1;
					}
				break;
				}
			else
				{
				dSel.options[i]=new Option(i,i,false,false);
				} 
			i++;
			}
		dSel.selectedIndex=idx;
		}
	
	
	format = unescape(format);
	
	var i = 0;
	var c = format.charAt(i);
	while (c)
		{
		var detail = "";
		switch (c)
			{
			case "d": detail="day"; break;
			case "m": detail="month"; break;
			case "Y": detail="year"; break;
			case "H": detail="hours"; break;
			case "M": detail="minutes"; break;
			case "S": detail="seconds"; break;
			}
		if(detail)
			{
			if (dateObject.Sub[detail])
				{
				var sel=dateObject.Sub[detail].name;
				if (!thisForm[sel].selectedIndex) thisForm[sel].selectedIndex=1;
				dateOut+=thisForm[sel][thisForm[sel].selectedIndex].value;
				}
			else
				{
				switch (c)
					{
					case "d": dateOut+="01"; break;	
					case "m": dateOut+="01"; break;
					case "Y": dateOut+="1970"; break;
					case "H": dateOut+="00"; break;
					case "M": dateOut+="00"; break;
					case "S": dateOut+="00"; break;
					}
				}
			}
		else
			{
			
			if(c == "'")
				{
				c = format.charAt(++i);
				
				if(c && c == "'") dateOut += c;
				
				else 
					{
					while(c && c != "'")
						{
						dateOut += c;
						c = format.charAt(++i);
						}
					}
				}
			
			else
				{
				dateOut += c;
				}
			}
		c = format.charAt(++i);
		}	
	
	if (dSel)
		{
		if (dSel.length > dSelIndex) dSel.selectedIndex=dSelIndex;
		else dSel.selectedIndex=dSel.length-1;
		if (!dSel.selectedIndex) dSel.selectedIndex=1;
		}
	thisForm[dateObject.storageName].value=dateOut;
	}


