/* -------------------------------------------------------------------------- *
 * DATE CHOOSER FUNCTIONS													  *
 *								   											  *
 * Version 1.1																  *
 *	- Prefixed variable names with data type								  *
 *  - Prefixed function names with "NB_"									  *
 *  - Function getFormFieldValue() renamed to NB_getFormFieldValue()		  *
 *  - Function isLeapYear() renamed to NB_isLeapYear()						  *
 *  - Function dateChooser() renamed to NB_dateChooser()					  *
 *  - Added NB_validateTime function					  					  *
 *  - Added NB_focusField function					  					  	  *
 *  - Fixed two digit year error in NB_dateChooser function					  *
 *  - Improved support for two digit years in NB_dateChooser function		  *
 *																			  *
 *																			  *
 * Version 1.0													   			  *
 *  - Initial version														  *
 * -------------------------------------------------------------------------- */

function NB_getFormFieldValue( objField )
{
	if( objField.type == "select-one" )
	{
		return objField.options[ objField.options.selectedIndex ].value;
	}
	
	if( objField.type == "text" )
	{
		return objField.value;
	};
	
	return -1;
}


function NB_isLeapYear( intYear )
{
	return (((intYear % 400) == 0) || ( ((intYear % 4) == 0) && !((intYear % 100) == 0)));
}


function NB_dateChooser( objFieldDay, objFieldMonth, objFieldYear )
{

	if( objFieldYear.type == null ) {
		return;
	} else {
		intSelectedYear = NB_getFormFieldValue( objFieldYear );

		if(intSelectedYear.length < 4)
		{
			if( intSelectedYear.length == 1 ) {
				intSelectedYear = "0" + intSelectedYear;
			}
			
			if( intSelectedYear > 30 ) {
				intSelectedYear = "19" + intSelectedYear;
			} else {
				intSelectedYear = "20" + intSelectedYear;
			}
		}
	}
	
	if( objFieldMonth.type == null ) {
		return;
	} else {

		var intSelectedMonth = NB_getFormFieldValue( objFieldMonth );
		
		if( intSelectedMonth > 12 ) {
			intSelectedMonth = intSelectedMonth % 12;
		}
	}

	
	if( objFieldDay.type == null ) {
		return;

	} else {

		var arrDaysInMonth = (NB_isLeapYear( intSelectedYear ) ? new Array( 31,29,31,30,31,30,31,31,30,31,30,31 ) : new Array( 31,28,31,30,31,30,31,31,30,31,30,31 ));

		var intSelectedDay = NB_getFormFieldValue( objFieldDay );

		if( intSelectedDay > arrDaysInMonth[ intSelectedMonth - 1 ] ) {
			intSelectedDay = arrDaysInMonth[ intSelectedMonth - 1 ];
		}

		for( var i = objFieldDay.options.length-1; i >= 0; i-- )
		{	
			objFieldDay.options[ i ] = null;
		}

		for( var i = 1; i <= arrDaysInMonth[ intSelectedMonth - 1 ]; i++ )
		{
			var blnSelectState = (i == intSelectedDay) ? true : false;
			objFieldDay.options[ i-1 ]
				= new Option( i, i, blnSelectState, blnSelectState );
		}
	}

}



function NB_validateTime( intTime, szComponent ) {

	if( szComponent != null ) {
		switch( szComponent )
		{
			case "h":
				if( intTime > 23 ) { return 23; }
				


			case "m":
			case "s":
				if( intTime > 59 ) { return 59; }
		}
	}
	
	return intTime;

}


function NB_focusField( objField, objSourceField, intSize ) {
	if( intSize == null ) {
		objField.focus()
	}
	
	if( objSourceField.value.length >= intSize ) {
		objField.focus()
	}
}

