//----------------------------------------------------------------------------
function strTrim(tmpStr)
{
	var i;
	for (i=0; i < tmpStr.length; ++i)
		if (tmpStr.charAt(i) != " ") break;
	tmpStr = tmpStr.substring(i);
	for (i=tmpStr.length - 1; i >= 0; --i)
		if (tmpStr.charAt(i) != " ") break;
	tmpStr = tmpStr.substring(0, i + 1);
	return tmpStr;
}
//-----------------------------------------------------------------------------
function chkPhone(tmpStr)
{
    var i = 0, tmpChar = "";
    for (i = 0; i < tmpStr.length; ++i)
    {
    	tmpChar = tmpStr.charAt(i);
	if (!((tmpChar >= "0" && tmpChar <= "9")
		|| (tmpChar == "-")
		|| (tmpChar == " ")
		|| (tmpChar == "(")
		|| (tmpChar == ")")
		)) return true;
	}
    return false;
}
//------------------------------------------------------------------------------
function chkZIP(tmpStr)
{
    var i = 0,tmpChar = "";
    for (i = 0; i < tmpStr.length; ++i)
    	{
    	 tmpChar = tmpStr.charAt(i);
		if (!((tmpChar >= "0" && tmpChar <= "9")
			||(tmpChar >= "a" && tmpChar <= "z")
			|| (tmpChar>= "A" && tmpChar <= "Z")
			|| (tmpChar == "-")
			|| (tmpChar == "(")
			|| (tmpChar == ")")
			|| (tmpChar == " ")
			)) return true;
	}
    return false;
}
//--------------------------------------------------------------------------------
function chkWebSite(tmpStr)
{
    var i = 0,tmpChar = "";
    for (i = 0; i < tmpStr.length; ++i)
    	{
    	 tmpChar = tmpStr.charAt(i);
		if (!((tmpChar >= "0" && tmpChar <= "9")
			||(tmpChar >= "a" && tmpChar <= "z")
			|| (tmpChar>= "A" && tmpChar <= "Z")
			|| (tmpChar == "-")
			|| (tmpChar == "_")
			|| (tmpChar == "/")
			|| (tmpChar == ":")
			|| (tmpChar == ".")
			|| (tmpChar == "~")
			|| (tmpChar == "?")
			|| (tmpChar == "#")
			|| (tmpChar == "=")
			|| (tmpChar == "&")
			)) return true;
	}
    return false;
}
//--------------------------------------------------------------------------------
function chkEmail(tmpStr)
{
	var i;
	var posAt = 0;
	var posDot = 0
	var count = 0;
	for(i=0;i<tmpStr.length;++i)
	{
		if(tmpStr.charAt(i) == "@")
		{
			posAt = i;
			count++;
		}
		if(tmpStr.charAt(i) == ".")
		{
			posDot = i;
		}
		if (!((tmpStr.charAt(i) >= "0" && tmpStr.charAt(i) <= "9")
				||(tmpStr.charAt(i) >= "a" && tmpStr.charAt(i) <= "z")
				|| (tmpStr.charAt(i)>= "A" && tmpStr.charAt(i) <= "Z")
				|| (tmpStr.charAt(i) == "-")
				|| (tmpStr.charAt(i) == "_")
				|| (tmpStr.charAt(i) == "@")
				|| (tmpStr.charAt(i) == ".")
			)) return false;
	}
	if(count>1) return false;
	if(eval(posAt) > 1 && posAt != tmpStr.length-1 && posDot > posAt && posDot != tmpStr.length-1) return true;
	return false;
}
//--------------------------------------------------------------------------------
function isDigit(tmpStr)
{
    var i = 0,tmpChar = "";
    for (i = 0; i < tmpStr.length; ++i)
    	{
    	 tmpChar = tmpStr.charAt(i);
		if (!(tmpChar >= "0" && tmpChar <= "9")) return true;
	}
    return false;
}
//--------------------------------------------------------------------------------
function Submit()
{
	var startDate, endDate = "";
	var startTime, endTime, sH, sM, sAP, eH, eM, eAP;
	var startFullDate, endFullDate;
	if(obj.EventType.selectedIndex == 0)
	{
		alert("Please select a Category.");
		obj.EventType.focus();
		return;
	}
	if(strTrim(obj.EventTitle.value) == "")
	{
		alert("Please enter the Title.");
		obj.EventTitle.focus();
		return;
	}
	if(obj.StartMonth.selectedIndex == 0 || obj.StartDate.selectedIndex == 0 || obj.StartYear.selectedIndex == 0)
	{
		alert("Please select the Start Date.");
		obj.StartMonth.focus();
		return;
	}
	startDate = new Date(eval(obj.StartYear[obj.StartYear.selectedIndex].value), eval(obj.StartMonth[obj.StartMonth.selectedIndex].value -1), eval(obj.StartDate[obj.StartDate.selectedIndex].value), 0, 0, 0);
	if(startDate.getMonth() != parseInt(obj.StartMonth[obj.StartMonth.selectedIndex].value-1))
	{
		alert("Invalid Start Date!");
		obj.StartMonth.focus();
		return;
	}
	var now = new Date();
	var today = new Date(now.getYear(), now.getMonth(), now.getDate(), 0,0,0);
	if(!((obj.EndMonth.selectedIndex == 0 && obj.EndDate.selectedIndex == 0 && obj.EndYear.selectedIndex == 0) || (obj.EndMonth.selectedIndex != 0 && obj.EndDate.selectedIndex != 0 && obj.EndYear.selectedIndex != 0)))
	{
		alert("Please select End Date.\n\nIf the Event is for one day, you\nneed not specify the End Date.");
		obj.EndMonth.focus();
		return;
	}
	if(obj.EndYear.selectedIndex != 0)
	{
		endDate = new Date(obj.EndYear[obj.EndYear.selectedIndex].value, obj.EndMonth[obj.EndMonth.selectedIndex].value-1, obj.EndDate[obj.EndDate.selectedIndex].value, 0, 0, 0);
		if(!(endDate.getMonth() == parseInt(obj.EndMonth[obj.EndMonth.selectedIndex].value-1)))
		{
			alert("Invalid End Date!");
			obj.EndMonth.focus();
			return;
		}
	}
	else
	{
		endDate = startDate;
	}
	if(endDate - startDate < 0)
	{
		alert("Start Date cannot be greater than the End Date.");
		obj.EndMonth.focus();
		return;
	}
	if(endDate < today)
	{
		alert("You cannot add an event that is already over!")
		if(endDate == startDate)
		{
			obj.StartMonth.focus();
		}
		else
		{
			obj.EndMonth.focus();
		}
		return;
	}
	if(obj.StartTime.selectedIndex == 0)
	{
		alert("Please select the Start Time.");
		obj.StartTime.focus();
		return;
	}
	if(obj.EndTime.selectedIndex == 0)
	{
		alert("Please select the End Time.");
		obj.EndTime.focus();
		return;
	}
	if(startDate == endDate)
	{
		startTime = obj.StartTime[obj.StartTime.selectedIndex].value;
		sH =  eval(startTime.substring(0,2));
		sM = eval(startTime.substring(2,4));
		endTime = obj.EndTime[obj.EndTime.selectedIndex].value;
		eH =  eval(endTime.substring(0, 2));
		eM = eval(endTime.substring(2, 4));
		eventStart = new Date(0, 0, 0,sH, sM, 0);
		eventEnd = new Date(0, 0, 0, eH, eM, 0);
		if(eventEnd <= eventStart)
		{
			alert("Start Time cannot be less than\nor equal to the End Time!");
			obj.EndTime.focus();
			return;
		}
	}
	if((endDate.getDate() > startDate.getDate() || endDate.getMonth() > startDate.getMonth() || endDate.getYear() > startDate.getYear()) && obj.Frequency.value == "")
	{
		alert("As the Event spans more than 1 day,\nyou need to enter the Frequency.\n(e.g. Everyday or Every Tuesday)");
		obj.Frequency.focus();
		return;
	}
	if(strTrim(obj.Description.value) == "")
	{
		alert("Please enter the Description.\nIt should be within 100 Words.");
		obj.Description.focus();
		return;
	}
	if(strTrim(obj.Description.value).length > 2000)
	{
		alert("Please enter Description within 100 Words.\n(2000 characters)");
		obj.Description.focus();
		return;
	}
	if(strTrim(obj.Venue.value) == "")
	{
		alert("Please enter the Location.");
		obj.Venue.focus();
		return;
	}
	if(strTrim(obj.Address1.value) == "")
	{
		alert("Please enter the Address.");
		obj.Address1.focus();
		return;
	}
	if(strTrim(obj.City.value) == "")
	{
		alert("Please enter the City.");
		obj.City.focus();
		return;
	}
	if(obj.State.selectedIndex == 0)
	{
		alert("Please select the State.");
		obj.State.focus();
		return;
	}
	if(obj.Zip.value != "")
	{
		if(chkZIP(obj.Zip.value))
		{
			alert("Please enter a valid Zip Code.");
			obj.Zip.focus();
			obj.Zip.select();
			return;
		}
	}
	if(obj.EventWebSite.value != "")
	{
		if(chkWebSite(obj.EventWebSite.value))
		{
			alert("Please enter a Valid URL for the Web Site.");
			obj.EventWebSite.focus();
			obj.EventWebSite.select();
			return;
		}
		if(obj.EventWebSite.value.substring(0,7) != "http://")
		{
			alert("Please include the 'http://' portion\nin the URL of the Website.");
			obj.EventWebSite.focus();
			obj.EventWebSite.select();
			return;
		}
	}
	if(obj.SponsorWebSite.value != "")
	{
		if(chkWebSite(obj.SponsorWebSite.value))
		{
			alert("Please enter a Valid URL for Sponsor's Web Site.");
			obj.SponsorWebSite.focus();
			obj.SponsorWebSite.select();
			return;
		}
		if(obj.SponsorWebSite.value.substring(0,7) != "http://")
		{
			alert("Please include the 'http://' portion\nin the URL of Sponsor's Website.");
			obj.SponsorWebSite.focus();
			obj.SponsorWebSite.select();
			return;
		}
	}
	if(strTrim(obj.ContactName.value) == "")
	{
		alert("Please enter the Contact Person's Name.");
		obj.ContactName.focus();
		return;
	}
	if(strTrim(obj.ContactPhone.value) == "" && strTrim(obj.ContactExtension.value) != "")
	{
		alert("Please enter the Telephone number.");
		obj.ContactPhone.focus();
		return;
	}
	if(obj.ContactPhone.value != "")
	{
		if(chkPhone(obj.ContactPhone.value))
		{
			alert("Only numbers, hyphens and parentheses\nare allowed in Telephone number.");
			obj.ContactPhone.focus();
			obj.ContactPhone.select();
			return;
		}
		tmp1stChar = obj.ContactPhone.value.charAt(0);
		if(tmp1stChar== "-")
		{
			alert("First character of Telephone number cannot be a hyphen.");
			obj.ContactPhone.focus();
			obj.ContactPhone.select();
			return;
		}
	}
	if(strTrim(obj.ContactExtension.value) != "" && isDigit(obj.ContactExtension.value))
	{
		alert("Please enter a valid Extension number.");
		obj.ContactExtension.focus();
		obj.ContactExtension.select();
		return;
	}
	if(strTrim(obj.ContactEmail.value) == "")
	{
		alert("Please enter the Contact Email Address.");
		obj.ContactEmail.focus();
		return;
	}
	if(!chkEmail(obj.ContactEmail.value))
	{
		alert("Please enter a valid Contact Email Address.");
		obj.ContactEmail.focus();
		obj.ContactEmail.select();
		return;
	}
	obj.action = "add_event_response.php?id="+id;
	obj.submit();
}
//------------------------------------------------
function ResetForm()
{
	obj.reset();
}

