var g_isSubmitted = false;

function isSubmitted()
{
	if (g_isSubmitted) { /* if submitted then return false */
		return false;
	} else {
		g_isSubmitted = true;
		return true;
	}
}

function checkClearFields()
{
	if(document.forms[0].START_DATE.value != "Selected Range")
	{
		document.forms[0].START_DATE.value="";
		document.forms[0].END_DATE.value="";
		document.forms[0].START_DATE_VALUE.value="";
		document.forms[0].END_DATE_VALUE.value="";
	}
}

function openStartCalendar()
{
	window.calField = document.searchForm.START_DATE;
	window.calFieldValue = document.searchForm.START_DATE_VALUE;
	calendar=window.open('calendar.html', 'calendar', 'width=275,height=250,resizable=0,status=0,menubar=0,location=0');
}

function openEndCalendar()
{
	window.calField = document.searchForm.END_DATE;
	window.calFieldValue = document.searchForm.END_DATE_VALUE;
	calendar=window.open('calendar.html', 'calendar', 'width=275,height=250,resizable=0,status=0,menubar=0,location=0');
}
var areDatesValid = true;
function validateDate()
{
	var v_start_date = document.searchForm.START_DATE.value;
	var v_end_date = document.searchForm.END_DATE.value;
	if ( v_start_date == "" && v_end_date == "" )
	{
		areDatesValid = true;
		clearErrorText();
		return;
	}

	if ( isValid( v_start_date ) )
	{
		if ( isValid( v_end_date ) )
		{
			setHiddenFields();
			if ( compareDates () == true )
			{
				clearErrorText();
				areDatesValid = true;
				document.searchForm.searchdate.value="Selected Range";
			}
			else showError(1);
		}
		else
		{
			document.searchForm.END_DATE_VALUE.value = "";
			showError();
		}
	}
	else
	{
		document.searchForm.START_DATE_VALUE.value = "";
		showError();
	}
}


function isValid( p_date )
{
	if ( p_date == "" ) return true;
	var v_dateArray = p_date.split("/");
	var v_daysForMonth;
	if( !v_dateArray[0] || !v_dateArray[1] || !v_dateArray[2] )
	{
		return false;
	}
	if (!checkNumber( v_dateArray[0] ) || v_dateArray[0]<1 || v_dateArray[0]>12)
	{
		return false;
	}
	if (!checkNumber( v_dateArray[2] ) || v_dateArray[2]<1900 || v_dateArray[2]>2900)
	{
		return false;
	}
	v_daysForMonth = getDays(v_dateArray[0], v_dateArray[2]);
	if (!checkNumber( v_dateArray[1] ) || v_dateArray[1]<1 || v_dateArray[1]>v_daysForMonth)
	{
		return false;
	}

	return true;
}

function showError (p_errorNo)
{
	areDatesValid = false;
	if ( p_errorNo == 1 )
		document.all["divErrorText"].innerHTML  = "Please enter End Date greater than Start Date.";
	else
		document.all["divErrorText"].innerHTML  = "Please enter valid date in MM/DD/YYYY format.";
	document.all["divErrorText"].style.visibility = "visible";
}

function getDays(p_month, p_year)
{
	var v_leapFlag=0;
	if( p_year % 400 == 0 )
		v_leapFlag=1;
	else
		if (p_year % 100 == 0)
			v_leapFlag=0;
		else
			if (p_year % 4 == 0)
				v_leapFlag=1;

	if (p_month == 2)
		if (v_leapFlag==1)
			return 29;
		else
			return 28;
	else
		if (p_month==1 || p_month==3 || p_month==5 || p_month==7 || p_month==8 || p_month==10 || p_month==12 )
			return 31;
		else
			return 30;
}


function checkNumber(p_varToCheck)
{
	var v_charToCheck;
	for (var v_index=0; v_index<p_varToCheck.length ; v_index ++ )
	{
		v_charToCheck = p_varToCheck.substring(v_index, v_index+1);
		if (v_charToCheck<'0' || v_charToCheck>'9')
		{
			return false;
		}
	}
	return true;
}

function clearErrorText()
{
	document.all["divErrorText"].style.visibility = "hidden";
}


function setHiddenFields()
{
	var v_start_date = document.searchForm.START_DATE.value;
	var v_end_date = document.searchForm.END_DATE.value;

	if ( v_start_date != "" )
	{
		v_dateArray = v_start_date.split("/");
		if ( v_dateArray[0].substring(1,2) == "" ) v_dateArray[0] = "0"+v_dateArray[0];
		if ( v_dateArray[1].substring(1,2) == "" ) v_dateArray[1] = "0"+v_dateArray[1];
		document.searchForm.START_DATE_VALUE.value = v_dateArray[2] + "-" + v_dateArray[0] + "-" + v_dateArray[1] + "-00.00.00";
	}
	else
	{
		document.searchForm.START_DATE_VALUE.value = "";
	}
	if ( v_end_date != "" )
	{
		v_dateArray = v_end_date.split("/");
		if ( v_dateArray[0].substring(1,2) == "" ) v_dateArray[0] = "0"+v_dateArray[0];
		if ( v_dateArray[1].substring(1,2) == "" ) v_dateArray[1] = "0"+v_dateArray[1];
		document.searchForm.END_DATE_VALUE.value = v_dateArray[2] + "-" + v_dateArray[0] + "-" + v_dateArray[1] + "-00.00.00";
	}
	else
	{
		document.searchForm.END_DATE_VALUE.value = "";
	}
}


function compareDates()
{
	var v_start_date = document.searchForm.START_DATE_VALUE.value;
	var v_end_date = document.searchForm.END_DATE_VALUE.value;

	if (v_start_date != "" && v_end_date != "")
	{
		var v_startDateArray = v_start_date.split("-");
		var v_endDateArray = v_end_date.split("-");
		if ( v_endDateArray[0] > v_startDateArray[0] ) return true;
		if ( v_endDateArray[0] < v_startDateArray[0] ) return false;
		if ( v_endDateArray[1] > v_startDateArray[1] ) return true;
		if ( v_endDateArray[1] < v_startDateArray[1] ) return false;
		if ( v_endDateArray[2] >= v_startDateArray[2] ) return true;
		return false;
	}
	return true;
}

function submitSearch()
{
	if (compareDates() == false)
	{
		alert("Please enter End Date greater than Start Date.");
		return false;
	}
	return true;
}
