//====================================================================
//     File Name:		CheckQueryCondition.js
//     Author:			Hao Jun
//     Created:			2002.5
//     Version:			0.1
//     Purpose:			当用户点击“查询”按钮时被调用，对用户输入和选
//						择的查询条件项目进行验证
//     Functionality:	
//	   remark:			
//====================================================================

function checkQueryCondition()
{
	// 检验用户是否选择最少一颗以上卫星
	{
		var i;
		for (i = 0; i < 16; i++)
		{
			if (true == document.QueryCondition.Satellite[i].checked)
				break;
		}
		if (16 == i)
		{
			alert("请至少选择一颗卫星.");
			return false;
		}
	}

	// 验证数据接收时间
	{
		if (document.QueryCondition.BeginDate_Year.value > document.QueryCondition.EndDate_Year.value)
		{
			alert("数据接收结束时间不应比开始时间早.");
			return false;
		}
		else if ((document.QueryCondition.BeginDate_Year.value == document.QueryCondition.EndDate_Year.value) &&
				 (document.QueryCondition.BeginDate_Month.value > document.QueryCondition.EndDate_Month.value))
		{
			alert("数据接收结束时间不应比开始时间早.");
			return false;
		}
		else if ((document.QueryCondition.BeginDate_Year.value == document.QueryCondition.EndDate_Year.value) &&
				 (document.QueryCondition.BeginDate_Month.value == document.QueryCondition.EndDate_Month.value) &&
				 (document.QueryCondition.BeginDate_Day.value > document.QueryCondition.EndDate_Day.value))
		{
			alert("数据接收结束时间不应比开始时间早.");
			return false;
		}
		else if ((document.QueryCondition.BeginDate_Year.value == document.QueryCondition.EndDate_Year.value) &&
				 (document.QueryCondition.BeginDate_Month.value == document.QueryCondition.EndDate_Month.value) &&
				 (document.QueryCondition.BeginDate_Day.value == document.QueryCondition.EndDate_Day.value) &&
				 (document.QueryCondition.BeginDate_Hour.value > document.QueryCondition.EndDate_Hour.value))
		{
			alert("数据接收结束时间不应比开始时间早.");
			return false;
		}
		else if ((document.QueryCondition.BeginDate_Year.value == document.QueryCondition.EndDate_Year.value) &&
				 (document.QueryCondition.BeginDate_Month.value == document.QueryCondition.EndDate_Month.value) &&
				 (document.QueryCondition.BeginDate_Day.value == document.QueryCondition.EndDate_Day.value) &&
				 (document.QueryCondition.BeginDate_Hour.value == document.QueryCondition.EndDate_Hour.value) &&
				 (document.QueryCondition.BeginDate_Minute.value > document.QueryCondition.EndDate_Minute.value))
		{
			alert("数据接收结束时间不应比开始时间早.");
			return false;
		}
		else if ((document.QueryCondition.BeginDate_Year.value == document.QueryCondition.EndDate_Year.value) &&
				 (document.QueryCondition.BeginDate_Month.value == document.QueryCondition.EndDate_Month.value) &&
				 (document.QueryCondition.BeginDate_Day.value == document.QueryCondition.EndDate_Day.value) &&
				 (document.QueryCondition.BeginDate_Hour.value == document.QueryCondition.EndDate_Hour.value) &&
				 (document.QueryCondition.BeginDate_Minute.value == document.QueryCondition.EndDate_Minute.value) &&
				 (document.QueryCondition.BeginDate_Second.value > document.QueryCondition.EndDate_Second.value))
		{
			alert("数据接收结束时间不应比开始时间早.");
			return false;
		}
		
		// 验证闰年和大小月份与每月天数的关系
		var strYear;
		var strMonth;
		var strDay;
		// 开始时间
		strYear	 = document.QueryCondition.BeginDate_Year.value;
		strMonth = document.QueryCondition.BeginDate_Month.value;
		strDay	 = document.QueryCondition.BeginDate_Day.value;
		if (((("02" == strMonth) || ("04" == strMonth) || ("06" == strMonth) || ("09" == strMonth) || ("11" == strMonth)) && ("31" == strDay)) ||
			(("02" == strMonth) && ("30" == strDay)) ||
			(("02" == strMonth) && !isLeapYear(strYear) && ("29" == strDay)))
		{
			alert("数据开始接收时间 " + strYear + " 年 " + strMonth + " 月没有 " + strDay + " 日.");
			return false;
		}
		// 结束时间
		strYear	 = document.QueryCondition.EndDate_Year.value;
		strMonth = document.QueryCondition.EndDate_Month.value;
		strDay = document.QueryCondition.EndDate_Day.value;
		if (((("02" == strMonth) || ("04" == strMonth) || ("06" == strMonth) || ("09" == strMonth) || ("11" == strMonth)) && ("31" == strDay)) ||
			(("02" == strMonth) && ("30" == strDay)) ||
			(("02" == strMonth) && !isLeapYear(strYear) && ("29" == strDay)))
		{
			alert("数据结束接收时间 " + strYear + " 年 " + strMonth + " 月没有 " + strDay + " 日.");
			return false;
		}
	}

	// 四角经纬度查询，验证左上角、右下角的经纬度
	if (true == document.QueryCondition.AreaLimitMode[0].checked)
	{
		if (((-180 > document.QueryCondition.UL_LON.value) || (180 < document.QueryCondition.UL_LON.value) || isNaN(document.QueryCondition.UL_LON.value)) && ("" != document.QueryCondition.UL_LON.value))
		{
			alert("西边界经度 值不正确.");		//左上角经度
			return false;
		}
		else if (((-90 > document.QueryCondition.UL_LAT.value) || (90 < document.QueryCondition.UL_LAT.value) || isNaN(document.QueryCondition.UL_LAT.value)) && ("" != document.QueryCondition.UL_LAT.value))
		{
			alert("北边界纬度 值不正确.");		//左上角纬度
			return false;
		}
		else if (((-180 > document.QueryCondition.LR_LON.value) || (180 < document.QueryCondition.LR_LON.value) || isNaN(document.QueryCondition.LR_LON.value)) && ("" != document.QueryCondition.LR_LON.value))
		{
			alert("东边界经度 值不正确.");		//右下角经度
			return false;
		}
		else if (((-90 > document.QueryCondition.LR_LAT.value) || (90 < document.QueryCondition.LR_LAT.value) || isNaN(document.QueryCondition.LR_LAT.value)) && ("" != document.QueryCondition.LR_LAT.value))
		{
			alert("南边界纬度 值不正确.");		//右下角纬度
			return false;
		}
		
		if (parseFloat(document.QueryCondition.UL_LAT.value) < parseFloat(document.QueryCondition.LR_LAT.value))
		{
			alert("北边界纬度不能小于南边界纬度.");
			return false;
		}		
		if (parseFloat(document.QueryCondition.LR_LON.value) < parseFloat(document.QueryCondition.UL_LON.value))
		{
			alert("东边界经度不能小于西边界经度.");
			return false;
		}
		
		// 验证经纬度四个参数是否全部为空或全部不为空
		if ((("" == document.QueryCondition.UL_LON.value) || 
			 ("" == document.QueryCondition.UL_LAT.value) ||
			 ("" == document.QueryCondition.LR_LON.value) ||
			 ("" == document.QueryCondition.LR_LAT.value)) &&
			(!(("" == document.QueryCondition.UL_LON.value) && 
			   ("" == document.QueryCondition.UL_LAT.value) &&
			   ("" == document.QueryCondition.LR_LON.value) &&
			   ("" == document.QueryCondition.LR_LAT.value))))
		{
			alert("边界经纬度请全部填写或全部不填写.")
			return false;
		}
	}
	
	return true;
}// checkQueryCondition()

// 判断是否闰年的函数
function isLeapYear(aStrYear)
{
	var intYeat = parseInt(aStrYear);
	
	if ((0 == (intYeat % 4)) && (0 != (intYeat % 100)))
	{
		return true;
	}
	else if ((0 == (intYeat % 100)) && (0 == (intYeat % 400)))
	{
		return true;
	}
	else
	{
		return false;
	}
}

// 参数fromTextObj和toTextObj都是文本输入框对象，当fromTextObj对象的值被改变并且fromTextObj标识的
// 文本框对象失去焦点时，如果toTextObj对象的值为空，则将fromTextObj的值赋给toTextObj
function textFollow(fromTextObj, toTextObj)
{
	if ("" == toTextObj.value)
	{
		toTextObj.value = fromTextObj.value;
	}
}

