﻿//0 MM/DD/YY 1: DD/MM/YY 2:YY/MM/DD
function ValidateDate( TheDate , DateFormat )
{
	var DateValue ;
	var DateValueString ;
	var DateValueRes ;

	var DateValDay ;
	var DateValMonth ;
	var DateValYear ;

	var DateStrDay ;
	var DateStrMonth ;
	var DateStrYear ;
	var ThisYear

	if ( TheDate == "" )
		return( "" ) ;

	DateValueString = ToSystemDate( TheDate , DateFormat ) ;

	DateStrMonth = GetDateString( DateValueString , 1 ) ;
	DateStrDay = GetDateString( DateValueString , 2 ) ;
	DateStrYear = GetDateString( DateValueString , 3 ) ;
	if ( DateStrYear == 0 )
	{
		ThisYear = new Date()
		DateStrYear = ThisYear.getFullYear();
		DateValueString = DateStrMonth + '/' + DateStrDay + '/' + DateStrYear ;
	}
	else
	{
		if ( DateStrYear.length <= 2 )
		{
			DateStrYear = ( DateStrYear < 40 ) ? ( Number( DateStrYear ) + 2000 ) : ( Number( DateStrYear ) + 1900 ) ;
			DateValueString = DateStrMonth + '/' + DateStrDay + '/' + DateStrYear ;
		}
	}

	DateValue = GetDateValue( DateValueString ) ;

	if ( DateValue == 0 )
		return( "" ) ;

	DateValueRes = new Date( DateValue ) ;

	DateValMonth = ( DateValueRes.getMonth() + 1 ) ;
	DateValDay = DateValueRes.getDate( ) ;
	DateValYear = DateValueRes.getFullYear( ) ;

	if ( ( DateStrYear.length == 3 ) || ( DateStrYear.length > 4 ) )
		return( "" ) ;

	if ( ( DateStrMonth != DateValMonth ) || ( DateStrDay != DateValDay ) )
		return( "" ) ;

	if ( DateStrYear != DateValYear )
	{
		if ( DateStrYear.length <= 2 )
		{
			DateStrYear = ( DateStrYear < 30 ) ? ( Number( DateStrYear ) + 2000 ) : ( Number( DateStrYear ) + 1900 ) ;
		}
		else
		{
			return( "" ) ;
		}
	}
	DateValue = DateStrMonth + '/' + DateStrDay + '/' + DateStrYear ;
	return( DateValue ) ;
}

function ToSystemDate( TheDate , DateFormat )
{
	var DateDay ;
	var DateMonth ;
	var DateYear ;

	switch( DateFormat )
	{
	case 0:
		DateMonth = GetDateString( TheDate , 1 ) ;
		DateDay = GetDateString( TheDate , 2 ) ;
		DateYear = GetDateString( TheDate , 3 ) ;
		break ;
	case 1:
		DateDay = GetDateString( TheDate , 1 ) ;
		DateMonth = GetDateString( TheDate , 2 ) ;
		DateYear = GetDateString( TheDate , 3 ) ;
		break ;
	case 2:
		DateYear = GetDateString( TheDate , 1 ) ;
		DateMonth = GetDateString( TheDate , 2 ) ;
		DateDay = GetDateString( TheDate , 3 ) ;
		break ;
	}
	return( DateMonth + '/' + DateDay + '/' + DateYear ) ;
}

function GetDateString( ValStr , Val )
{
	var ValString = "" ;
	var Idx = 0 ;

	if ( ( Val < 1 ) || ( Val > 3 ) )
	{
		return( "" ) ;
	}

	if ( Val >= 1 )
	{
		while ( ( ValStr.charAt( Idx ) != "/" ) && ( Idx <= ValStr.length ) )
		{
			ValString += ValStr.charAt( Idx ) ;
			Idx++ ;
		}
	}

	if ( Val >= 2 )
	{
		ValString = "" ;
		Idx++ ;
		while ( ( ValStr.charAt( Idx ) != "/" ) && ( Idx <= ValStr.length ) )
		{
			ValString += ValStr.charAt( Idx ) ;
			Idx++ ;
		}
	}

	if ( Val == 3 )
	{
		ValString = "" ;
		Idx++ ;
		while ( ( ValStr.charAt( Idx ) != "/" ) && ( Idx <= ValStr.length ) )
		{
			ValString += ValStr.charAt( Idx ) ;
			Idx++ ;
		}
	}

	return( ValString ) ;
}

function ToFormattedDate( TheDate , DateFormat )
{
	var DateDay ;
	var DateMonth ;
	var DateYear ;

	DateMonth = GetDateString( TheDate , 1 ) ;
	DateDay = GetDateString( TheDate , 2 ) ;
	DateYear = GetDateString( TheDate , 3 ) ;

	switch( DateFormat )
	{
	case 0:
		return( DateMonth + '/' + DateDay + '/' + DateYear ) ;
	case 1:
		return( DateDay + '/' + DateMonth + '/' + DateYear ) ;
	case 2:
		return( DateYear + '/' + DateMonth + '/' + DateDay ) ;
	}
}

function ValidateDateStartDue( TheDateStart , TheDateDue )
{
	var DateValue1 = Date.parse( TheDateStart ) ;
	var DateValue2 = Date.parse( TheDateDue ) ;

	if ( ( isNaN( DateValue1 ) ) || ( isNaN( DateValue2 ) ) )
		return( false ) ;

	if ( ( DateValue1 == 0 ) || ( DateValue2 == 0 ) )
		return( false ) ;

	if ( DateValue1 > DateValue2 )
		return( false ) ;

	return( true ) ;
}

function GetDateValue( TheDate )
{
	var DateValue = Date.parse( TheDate ) ;

	if ( isNaN( DateValue ) )
		return( 0 ) ;

	if ( DateValue == 0 )
		return( 0 ) ;

	return( DateValue ) ;
}

function checkAll(field,field2)
{
    for (i = 0; i < field.length; i++)
    {
        field[i].checked = field2 ;
    }
}

function Expand( ObjectName )
{
    var Element = document.getElementById(ObjectName)
    if (Element != null)
    {
        Element.style.display = (Element.style.display == "block")? "none" : "block";
    }
}