//Global variables
//Date divider character
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

//Makes "title" element have same value as "name"
function fillTitle()
{
	document.all.title.value = document.all.name.value;
}

//Integer check
function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function isValidNum(str)
{
	var objRegExp  =  /(^\d*$)/;
  	return objRegExp.test(str);		
}

function isValidNumber(str)
{
	var objRegExp  =  /(^(\d*\.?\d*)$)/;
  	return objRegExp.test(str);		
}

//Opens a calendar picker, requires a field and a default date
function calendarPicker(strField, defdate)
{
	window.open('Modules/DatePicker.aspx?defdate=' + defdate + '&field=' + strField,'calendarPopup','width=190,height=146,resizable=no');
}

//Date validator, based on SmartWebby.com (http://www.smartwebby.com/dhtml/)
function validDate(sender, args)
{
	if (args.Value.length > 0)
		args.IsValid = isDate(args.Value);
	else
		args.IsValid = true;
}

	function stripCharsInBag(s, bag)
	{
		var i;
		var returnString = "";
		// Search through string's characters one by one.
		// If character is not in bag, append to returnString.
		for (i = 0; i < s.length; i++)
		{   
			var c = s.charAt(i);
			if (bag.indexOf(c) == -1) returnString += c;
		}
		return returnString;
	}

	function daysInFebruary (year)
	{
		// February has 29 days in any year evenly divisible by four,
		// EXCEPT for centurial years which are not also divisible by 400.
		return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
	}

	function DaysArray(n)
	{
		for (var i = 1; i <= n; i++)
		{
			this[i] = 31;
			if (i==4 || i==6 || i==9 || i==11)
				this[i] = 30
			if (i==2)
				this[i] = 29
		} 
	return this;
	}

	function isDate(dtStr)
	{
		var daysInMonth = DaysArray(12);
		var pos1 = dtStr.indexOf(dtCh);
		var pos2 = dtStr.indexOf(dtCh,pos1 + 1);
		var strMonth = dtStr.substring(0,pos1);
		var strDay = dtStr.substring(pos1 + 1,pos2);
		var strYear = dtStr.substring(pos2 + 1);
		strYr = strYear;
		if (strDay.charAt(0) == "0" && strDay.length > 1)
			strDay = strDay.substring(1);
		if (strMonth.charAt(0) == "0" && strMonth.length > 1)
			strMonth = strMonth.substring(1);
		for (var i = 1; i <= 3; i++)
		{
			if (strYr.charAt(0) == "0" && strYr.length > 1)
				strYr=strYr.substring(1);
		}
		month = parseInt(strMonth);
		day = parseInt(strDay);
		year = parseInt(strYr);
		if (pos1 == -1 || pos2 == -1)
		{
			//alert("The date format should be: mm/dd/yyyy");
			return false;
		}
		if (strMonth.length < 1 || month < 1 || month > 12)
		{
			//alert("Please enter a valid month.");
			return false;
		}
		if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month])
		{
			//alert("Please enter a valid day.");
			return false;
		}
		if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear)
		{
			//alert("Please enter a valid 4 digit year between " + minYear + " and " + maxYear + ".");
			return false;
		}
		if (dtStr.indexOf(dtCh,pos2 + 1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false)
		{
			//alert("Please enter a valid date with the format mm/dd/yyyy.");
			return false;
		}
		return true;
	}

function fillEndDate()
{
	if ((document.all.endDate.value == '') && document.all.startDate.value != '')
		document.all.endDate.value = document.all.startDate.value;
}

function validateStartEndTime(sender, args)
{
	var startDate = document.getElementById("startDate").value;
	var endDate = document.getElementById("endDate").value;
	var startTime = document.getElementById("startTime_hour").value + ':' + document.getElementById("startTime_minute").value + ':00 ' + document.getElementById("startTime_xm").value
	var endTime = document.getElementById("endTime_hour").value + ':' + document.getElementById("endTime_minute").value + ':00 ' + document.getElementById("endTime_xm").value
	
	if (Date.parse(startDate) == Date.parse(endDate))
	{
		if ((startTime != '::00 ') && (endTime != '::00 '))
		{
			if (Date.parse(startDate + ' ' + startTime) > Date.parse(endDate + ' ' + endTime))
			{
				args.IsValid = false;
			}
			else
			{
				args.IsValid = true;
			}
		}
	}
	else
	{
		args.IsValid = true;
	}
}