/* 
 *
 *		GLOBALS
 *
 *	MUST BE DECLARED
 *
 */
var szColorEnabled = '#ffffff';
var szColorDisabled = '#DED7C6';



/* 
 *
 *		FUNCTIONS
 *
 */
function NB_formFieldEnabler( objField, blnEnable, szBgColor ) {
	objField.disabled = !blnEnable;
	
	if( szBgColor != null ) objField.style.background=szBgColor;
}


// Sets a particular into a specified form field
function NB_setFormField( objForm, objField, szValue ) {
	var objTargetField = eval( 'objForm.' + objField.name );
	objTargetField.value = szValue;
}

function NB_createCFTimeSpan( intDays, intHours, intMins, intSecs )
{
	intDays = new Number( intDays );
	intHours = new Number( intHours );
	intMins = new Number( intMins );
	intSecs = new Number( intSecs );

	var intTimeSpan = 0;
	
	intTimeSpan = intDays
		+ ( intHours / 24 )
		+ ( intMins / 1440 )
		+ ( intSecs / 86400 );
		
	return intTimeSpan;
}


function NB_formToTimeSpan( objForm, objField ) {
	
	var objTargetField = eval( 'objForm.' + objField.name );
	var arrFormOptions = new Array(4);

	arrFormOptions[ 0 ] = eval( 'objForm.' + objField.name + '_D' );
	arrFormOptions[ 1 ] = eval( 'objForm.' + objField.name + '_H' );
	arrFormOptions[ 2 ] = eval( 'objForm.' + objField.name + '_M' );
	arrFormOptions[ 3 ] = eval( 'objForm.' + objField.name + '_S' );
	
	for( var i = 0; i < arrFormOptions.length; i++ ) {
		if(isNaN( arrFormOptions[i].value)) { arrFormOptions[i].value = 0; }
	}
	
	objTargetField.value = NB_createCFTimeSpan(
		arrFormOptions[ 0 ].value,
		arrFormOptions[ 1 ].value,
		arrFormOptions[ 2 ].value,
		arrFormOptions[ 3 ].value
	);
}


// Converts a JavaScript date to a ColdFusion-friendly date
function NB_dateToCFFormat( dtSource ) {
	var szDateCreatedFirst = "";
	
	if( dtSource != null ) {
		szDateCreatedFirst
			= (dtSource.getYear() < 1000 ? 1900 + dtSource.getYear() : dtSource.getYear())
			+ "-" + (dtSource.getMonth() + 1)
			+ "-" + dtSource.getDate()
			+ " " + dtSource.getHours()
			+ ":" + dtSource.getMinutes()
			+ ":" + dtSource.getSeconds();
	}
	return szDateCreatedFirst;
}

   
function NB_formToDateTime( objForm, objField, blnDateOnly ) {

	var objTargetField = eval( 'objForm.' + objField.name );
	
	var arrFormOptions = new Array(6);

	if( blnDateOnly == null ) blnDateOnly = 0;
	
	arrFormOptions[ 0 ] = eval( 'objForm.' + objField.name + '_YEAR' );
	arrFormOptions[ 1 ] = eval( 'objForm.' + objField.name + '_MONTH' );
	arrFormOptions[ 2 ] = eval( 'objForm.' + objField.name + '_DAY' );

	if( !blnDateOnly ) {
		arrFormOptions[ 3 ] = eval( 'objForm.' + objField.name + '_HOUR' );
		arrFormOptions[ 4 ] = eval( 'objForm.' + objField.name + '_MINUTE' );
		arrFormOptions[ 5 ] = eval( 'objForm.' + objField.name + '_SECOND' );

		objTargetField.value = NB_dateToCFFormat( new Date( 
			arrFormOptions[ 0 ].value,
			arrFormOptions[ 1 ].value - 1,
			arrFormOptions[ 2 ].value,
			arrFormOptions[ 3 ].value,
			arrFormOptions[ 4 ].value,
			arrFormOptions[ 5 ].value
		));

	} else {

		objTargetField.value = NB_dateToCFFormat( new Date( 
			arrFormOptions[ 0 ].value,
			arrFormOptions[ 1 ].value - 1,
			arrFormOptions[ 2 ].value,
			0,
			0,
			0
		));

	}
	
}




// Enables or disables and masks a timeout UI element
function NB_timeoutEnabler( objForm, objField, blnEnable )
{
	var szColor = ( blnEnable ? szColorEnabled : szColorDisabled );
	NB_formFieldEnabler( eval( 'objForm.' + objField.name + '_D' ), blnEnable, szColor );
	NB_formFieldEnabler( eval( 'objForm.' + objField.name + '_H' ), blnEnable, szColor );
	NB_formFieldEnabler( eval( 'objForm.' + objField.name + '_M' ), blnEnable, szColor );
	NB_formFieldEnabler( eval( 'objForm.' + objField.name + '_S' ), blnEnable, szColor );
}
