if(Forms == null) var Forms = {};

Forms.Dates = 
{
	AllFields : null
	,
	Load : function()
	{
		Forms.Dates.AllFields = document.getElementsByClassName("datefield");
		for(var c = 0 ; c < Forms.Dates.AllFields.length; c++) 
		{
			
			var thisDateField = Forms.Dates.AllFields[c];
			
			thisDateField.dayInput = thisDateField.getElementsByTagName("input")[0];
			thisDateField.monthInput = thisDateField.getElementsByTagName("input")[1];
			thisDateField.yearInput = thisDateField.getElementsByTagName("input")[2];
			
			thisDateField.dayInput.emptyValue = "DD";
			thisDateField.monthInput.emptyValue = "MM";
			if(thisDateField.yearInput) thisDateField.yearInput.emptyValue = "YYYY";		
			
			if(thisDateField.dayInput.value == "" || !thisDateField.dayInput.value) 
			{ 
				thisDateField.dayInput.value = thisDateField.dayInput.emptyValue; 
			}
			
			if(thisDateField.monthInput.value == ""|| !thisDateField.monthInput.value) 
			{ 
				thisDateField.monthInput.value = thisDateField.monthInput.emptyValue; 
			}
			
			if(thisDateField.yearInput && (thisDateField.yearInput.value == ""|| !thisDateField.yearInput.value)) 
			{ 
				thisDateField.yearInput.value = thisDateField.yearInput.emptyValue; 
			}
			
			var isEmptyValue = function()
			{
				return (this.value == this.emptyValue);
			}			
			thisDateField.dayInput.isEmptyValue = isEmptyValue;
			thisDateField.monthInput.isEmptyValue = isEmptyValue;
			if(thisDateField.yearInput) thisDateField.yearInput.isEmptyValue = isEmptyValue;
			
			if(thisDateField.dayInput.isEmptyValue()) thisDateField.dayInput.style.color = "#999";	
			if(thisDateField.monthInput.isEmptyValue()) thisDateField.monthInput.style.color = "#999";	
			if(thisDateField.yearInput && thisDateField.yearInput.isEmptyValue()) thisDateField.yearInput.style.color = "#999";			
			
			thisDateField.dayInput.maxValue = 31;
			thisDateField.monthInput.maxValue = 12;
			if(thisDateField.yearInput) thisDateField.yearInput.maxValue = 9999;					
			
			thisDateField.dayInput.nextInput = 	thisDateField.monthInput;
			if(thisDateField.yearInput) thisDateField.monthInput.nextInput = thisDateField.yearInput;

			var onfocus = function()
			{
				if(this.value == this.emptyValue) 
				{
					this.value = "";
					this.style.color = "";
				}				
			}			
			thisDateField.dayInput.onfocus = onfocus;
			thisDateField.monthInput.onfocus = onfocus;
			if(thisDateField.yearInput) thisDateField.yearInput.onfocus = onfocus;

			var onchange = function()
			{
				if(!Forms.Dates.IsNumeric(this.value)) this.value = "";
				if(this.value > this.maxValue) this.value = "";
				if(this.value.length == this.getAttribute("maxlength") && this.nextInput) this.nextInput.focus();							
			}					
			thisDateField.dayInput.onchange = thisDateField.dayInput.onkeyup = onchange;
			thisDateField.monthInput.onchange = thisDateField.monthInput.onkeyup = onchange;
			if(thisDateField.yearInput) thisDateField.yearInput.onchange = thisDateField.yearInput.onkeyup = onchange;
	
			var onblur = function()
			{
				if(this.value == "") 
				{
					this.value = this.emptyValue;
					this.style.color = "#999";
				}
			}
			thisDateField.dayInput.onblur = onblur;
			thisDateField.monthInput.onblur = onblur;
			if(thisDateField.yearInput) thisDateField.yearInput.onblur = onblur;		
		
		}
	
	
	}
	,
	IsNumeric : function(sText)
	{
		var ValidChars = "0123456789.- ";
		var IsNumber=true;
		var Char;
		for (i = 0; i < sText.length && IsNumber == true; i++) 
		{ 
			Char = sText.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) 
			{
			   IsNumber = false;
			}
		}
		return IsNumber;
	}
	,
	Submit : function()
	{		
		var doEmpty = true;
		
		if(Forms.Validation && !Forms.Validation.IsValid) doEmpty = false;
		
		if(doEmpty)
		{			
			for(var c = 0 ; c < Forms.Dates.AllFields.length; c++) 
			{
				var thisDateField = Forms.Dates.AllFields[c];
				if(thisDateField.dayInput.value == thisDateField.dayInput.emptyValue) 
				{ thisDateField.dayInput.value = ""; }
				if(thisDateField.monthInput.value == thisDateField.monthInput.emptyValue) 
				{ thisDateField.monthInput.value = ""; }
				if(thisDateField.yearInput && thisDateField.yearInput.value == thisDateField.yearInput.emptyValue) 
				{ thisDateField.yearInput.value = ""; }
			}				
		}

	}
	
}

window.addToOnload(Forms.Dates.Load);
window.addToOnsubmit(Forms.Dates.Submit);
