<!--

var	liveCalendar	= false;
var	IEDelay			= 2000;

function TextBox_Number(id)
{
	document.getElementById(id).value	= document.getElementById(id).value.replace(/[^0-9.+-]/g, '');
}

function TextBox_Upper(id)
{	
	document.getElementById(id).value	= document.getElementById(id).value.toUpperCase();
}

function OpenCalendar(id)
{
	liveCalendar	= true;
	
	DrawCalendar(id);
}

function KeepCalendar()
{
	liveCalendar	= true;
}

function TryCloseCalendar(id)
{
	liveCalendar	= false;
	setTimeout('CloseCalendar(\''+ id +'\');', IEDelay);
}

function CloseCalendar(id)
{
	var	date;
	var	message;
	
	
	if(document.getElementById(id +'Calendar') != null  && !liveCalendar)
	{
		date	= new Date(document.getElementById(id).value);
		if(document.getElementById(id).value != "" && (date == "Invalid Date" || date == "NaN" || date.getFullYear() < 1900))
		{
			message	= document.getElementById(id).value +"\r\n is not a valid date";
			document.getElementById(id).value	= "";
			alert(message);
			document.getElementById(id).focus();
		}
		document.getElementById(id +'Calendar').innerHTML	= "";
	}
}

function DrawCalendar(id)
{
	var	calendar	= '';
	var	date		= new Date();
	var months		= new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
	var	tempDate	= new Date();
	var	year		= 0;
	var	month		= 0;
	var	day			= 0;
	var	selectday	= 0;
	var	finished	= false;


	month	= 0;
	while(month < months.length)
	{
		if(document.getElementById(id).value.toLowerCase().indexOf(months[month].toLowerCase()) > -1)
		{
			document.getElementById(id).value	= document.getElementById(id).value.replace(/[a-zA-Z]{3,}/g, month + 1);
		}
		month++;
	}

	date	= new Date(document.getElementById(id).value);
	if(date == "NaN" || date == "Invalid Date")
	{
		date	= new Date();
	}

	year	= date.getFullYear();
	month	= date.getMonth();
	day		= date.getDate();
	selectday	= day;

	calendar	 = '<table class="Calendar" onmouseover="KeepCalendar(\''+ id +'\');" onmouseup="KeepCalendar(\''+ id +'\');" onmouseout="TryCloseCalendar(\''+ id +'\');">';
	calendar	+= '	<tr class="CalendarTitle"><td colspan="6">'
	tempDate	 = new Date(year, month - 1, day);
	calendar	+= '			<a onClick="document.getElementById(\''+ id +'\').value=\''+ (tempDate.getMonth() * 1 + 1) +'/'+ tempDate.getDate() +'/'+ tempDate.getFullYear() +'\';DrawCalendar(\''+ id +'\');">&nbsp;&nbsp; &lt; &nbsp;&nbsp;</a>';
	calendar	+= months[month] +' '+ year ;
	tempDate	 = new Date(year, month + 1, day);
	calendar	+= '			<a onClick="document.getElementById(\''+ id +'\').value=\''+ (tempDate.getMonth() * 1 + 1) +'/'+ tempDate.getDate() +'/'+ tempDate.getFullYear() +'\';DrawCalendar(\''+ id +'\');">&nbsp;&nbsp; &gt; &nbsp;&nbsp;</a>';
	calendar	+= '</td>';
	calendar	+= '<td class="CalendarKill"><a onClick="liveCalendar = false; CloseCalendar(\''+ id +'\');">&nbsp;x&nbsp;</a></td>';
	calendar	+= '</tr>';
	calendar	+= '	<tr class="CalendarWeek"><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr>';

	tempDate	= new Date(year, month, 1);
	day			= 1 - tempDate.getDay();
	while(!finished)
	{
		tempDate	= new Date(year, month, day++);

		if(tempDate.getDay() == 0)
		{
			calendar	+= '<tr class="CalendarDay">';
		}

		calendar	+= '		<td';
		if(tempDate.getMonth() != month)
		{
			calendar	+= '		class="CalendarFaded"';
		}
		if(tempDate.toDateString() == date.toDateString())
		{
			calendar	+= '		class="CalendarSelected"';
		}
		calendar	+= '		><a onClick="document.getElementById(\''+ id +'\').value=\''+ (tempDate.getMonth() * 1 + 1) +'/'+ tempDate.getDate() +'/'+ tempDate.getFullYear() +'\';DrawCalendar(\''+ id +'\');">&nbsp;&nbsp;'+ tempDate.getDate() +'&nbsp;&nbsp;</a></td>';

		if(tempDate.getDay() == 6)
		{
			calendar	+= '</tr>';
			if(tempDate.getMonth() != month || tempDate.getDate() == 31)
			{
				finished	= true;
			}
		}
	}
	calendar	+= '</table>';

	calendar	+= DateDiff(year, month, selectday);
	//document.getElementById(id +'Calendar').style.top	= document.getElementById(id).offsetTop +'px';
	//document.getElementById(id +'Calendar').style.left	= document.getElementById(id).offsetLeft +'px';
	document.getElementById(id +'Calendar').innerHTML	= calendar;
}

function DateDiff(year, month, day)
{
	var	diff		= '';
	var	thisDate	= new Date();
	var	thatDate	= new Date(year, month, day);
	var	diffDate	= null;
	var	years		= 0;
	var	months		= 0;
	var	weeks		= 0;
	var	days		= 0;
	var	ONE_DAY		= (1000 * 60 * 60 * 24);
	var	relation	= '';
	
	if(thatDate > thisDate)
	{
		diffDate	= new Date(thatDate.getTime() - thisDate.getTime());
		relation	= 'future';			
	}
	else
	{
		diffDate	= new Date(thisDate.getTime() - thatDate.getTime() - ONE_DAY);
		relation	= 'past';
	}
	years	= diffDate.getFullYear() - 1970;
	if(years == -1)
	{
		relation	= 'today';
		years	= 0;
		months	= 0;
		days	= 0;
		weeks	= 0;
	}
	else
	{
		months	= diffDate.getMonth();
		days	= diffDate.getDate() % 7;
		weeks	= Math.round(diffDate.getDate() / 7);
	}
	
	diff	+= years	+'.years ';
	diff	+= months	+'.months ';
	diff	+= weeks	+'.weeks ';
	diff	+= days		+'.days ';
	diff	+= relation;
	
	return	diff;
}
	
function ChangeTime(id, event)
{
	var	MAX_HOURS	= 12;
	var	MAX_MINS	= 59;
	var	hour		= 0;
	var	minute		= 0;
	var	ampm		= 0;
	var	curPos		= 0;
	var	minPos		= 0;
	var	ampPos		= 0;
	var	inc			= 0;
	

		document.getElementById(id +'Time').value.match(/([0-9]{1,2})[^0-9]{0,}([0-9]{0,2})[^aApP]{0,}([aApP]{0,1})/g);
		hour	= RegExp.$1;
		minute	= RegExp.$2;
		ampm	= RegExp.$3;
		curPos	= GetCursorPos(document.getElementById(id +'Time'));
		minPos	= document.getElementById(id +'Time').value.indexOf(minute);
		ampPos	= document.getElementById(id +'Time').value.indexOf(ampm);
		
		if(!hour.match(/[0-9]{1,2}/))
		{
			hour	= MAX_HOURS;
		}
		if(!minute.match(/[0-9]{1,2}/))
		{
			minute	= '00';
		}
			
		if(ampm == 'p' || ampm == 'P')
		{
			ampm	= 'PM';
		}
		else
		{
			ampm	= 'AM';
		}
		
		if(event && event.keyCode == 38)
		{
			inc	=  1;
		}
		else if(event && event.keyCode == 40)
		{
			inc	= -1;
		}

		if(inc != 0)
		{
			if(curPos < minPos - inc)
			{
				hour	= hour * 1 + inc;
				if(hour > MAX_HOURS)
				{
					hour	= 1;
				}
				if(hour < 1)
				{
					hour	= MAX_HOURS;
				}
			}
			else if(curPos < ampPos - inc)
			{
				minute	= minute * 1 + inc;
				if(minute > MAX_MINS)
				{
					minute	= 0;
				}
				if(minute < 0)
				{
					minute	= MAX_MINS;
				}
				if(minute < 10)
				{
					minute	 = '0'+ minute;
				}
			}
			else
			{
				if(ampm == 'AM')
				{
					ampm	= 'PM';
				}
				else
				{
					ampm	= 'AM';
				}
			}

			if(!IEPos())
			{
				curPos	+= inc;
			}
			if(minute.length < 2)
			{
				minute	 = '0'+ minute;
			}
			
			document.getElementById(id +'Time').value	= hour +':'+ minute +' '+ ampm;
			SetCursorPos(document.getElementById(id +'Time'), curPos);
		}
		
		if(document.getElementById(id +'Time').value == '')
		{
			document.getElementById(id).value	= '';
		}
		else
		{
			document.getElementById(id).value	= '12/30/1899 '+ hour +':'+ minute +':00 '+ ampm;
		}
}

function MilitaryTime(id, event)
{
	var	MAX_HOURS	= 24;
	var	MAX_MINS	= 59;
	var	hour		= 0;
	var	minute		= 0;
	var	curPos		= 0;
	var	minPos		= 0;
	var	inc			= 0;
	var	ampm		= '';
	

		document.getElementById(id +'Time').value.match(/([0-9]{1,2})[^0-9]{0,}([0-9]{0,2})/g);
		hour	= RegExp.$1;
		minute	= RegExp.$2;
		curPos	= GetCursorPos(document.getElementById(id +'Time'));
		minPos	= document.getElementById(id +'Time').value.indexOf(minute);
		
		if(!hour.match(/[0-9]{1,2}/))
		{
			hour	= MAX_HOURS;
		}
		if(!minute.match(/[0-9]{1,2}/))
		{
			minute	= '00';
		}
		
		if(event && event.keyCode == 38)
		{
			inc	=  1;
		}
		else if(event && event.keyCode == 40)
		{
			inc	= -1;
		}

		if(inc != 0)
		{
			if(curPos < minPos - inc)
			{
				hour	= hour * 1 + inc;
				if(hour > MAX_HOURS)
				{
					hour	= 1;
				}
				if(hour < 1)
				{
					hour	= MAX_HOURS;
				}
			}
			else
			{
				minute	= minute * 1 + inc;
				if(minute > MAX_MINS)
				{
					minute	= 0;
				}
				if(minute < 0)
				{
					minute	= MAX_MINS;
				}
				if(minute < 10)
				{
					minute	 = '0'+ minute;
				}
			}

			if(!IEPos())
			{
				curPos	+= inc;
			}
			if(minute.length < 2)
			{
				minute	 = '0'+ minute;
			}
			
			document.getElementById(id +'Time').value	= hour +':'+ minute
			SetCursorPos(document.getElementById(id +'Time'), curPos);
		}
		
		if(document.getElementById(id +'Time').value == '')
		{
			document.getElementById(id).value	= '';
		}
		else
		{
			document.getElementById(id +'Time').value.match(/([aApP][mM])/g);
			ampm	= RegExp.$1;
			{
			}
			document.getElementById(id).value	= '12/30/1899 '+ hour +':'+ minute +':00 '+ ampm;
		}
}

function IEPos()
{
	var	isIEStyle	= false;

	//IE
	if(document.selection) 
	{
		isIEStyle	= true;
	}
	//Mozila
	else 
	{
		isIEStyle	= false;
	} 

	return isIEStyle;
}

function GetCursorPos(field)
{
	var	sel;
	var	rng;
	var	rnt;
	var	pos	= -1;
	field.focus();

	//Mozila
	if(typeof field.selectionStart == "number") 
	{
		pos	= field.selectionStart;
	} 
	//IE
	else if(document.selection && field.createTextRange) 
	{
		sel	= document.selection;
		if(sel)
		{
			try
			{
				rnt	= sel.createRange();
				rng	= field.createTextRange();
				rng.setEndPoint('EndToStart', rnt);
				pos	= rng.text.length;
			}
			catch(e)
			{
				pos	= 0;
			}
		}
	}

	return pos;
} 

function SetCursorPos(field, position)
{
	var	sel;
	var	rnt;
	field.focus();

	//Mozila
	if(typeof field.selectionStart == "number") 
	{
		field.selectionStart	= position;
		field.selectionEnd		= position;
	} 
	//IE
	else if(document.selection && field.createTextRange) 
	{
		sel	= document.selection;
		if(sel)
		{
			rnt	= sel.createRange();
			rnt.moveEnd('character', -9999);
			rnt.moveStart('character', position);
			rnt.select();
		}
	}
} 

				
//-->

