
//swaps visibility of two elements
function swap(show, hide)
{
	document.getElementById(show).style.display = '';
	document.getElementById(hide).style.display = 'none';
}

function date_selector(element_id)
{
	var d = new Date();
	d.setTime(document.getElementById('form_' + element_id).value);
	makeCalendar(d, element_id);
}

var monthName = new Array(13);
monthName[0] = "Jan";
monthName[1] = "Feb";
monthName[2] = "Mar";
monthName[3] = "Apr";
monthName[4] = "May";
monthName[5] = "Jun";
monthName[6] = "Jul";
monthName[7] = "Aug";
monthName[8] = "Sep";
monthName[9] = "Oct";
monthName[10] = "Nov";
monthName[11] = "Dec";

function makeCalendarMillisecAdaptor(calDateMillisec, textBoxId)
{
	var d = new Date();
	d.setTime(calDateMillisec);
	makeCalendar(d, textBoxId);
}

function makeCalendar(calDate, textBoxId)
{

	//make sure there is a calendar box
	if(!document.getElementById('calendar_' + textBoxId))
	{
		//add it
		document.getElementById(textBoxId).parentNode.innerHTML = "<div class='wrapper' style='width: 0px; overflow: visible;'><div class='calendar_container' id='calendar_" + textBoxId + "'></div></div>" + document.getElementById(textBoxId).parentNode.innerHTML;
	}

	calDate.setFullYear(calDate.getFullYear(),calDate.getMonth(),1);

	var thisMonth = calDate.getMonth();

	var nextMonth = calDate.getMonth()+1;

	var nextMonthDate = new Date();

	if(nextMonth == 12)
	{
		nextMonth = 0;
		nextMonthDate.setFullYear(calDate.getFullYear()+1,nextMonth,1);
	}
	else
	{
		nextMonthDate.setFullYear(calDate.getFullYear(),nextMonth,1);
	}

	var lastMonth = calDate.getMonth()-1;

	var lastMonthDate = new Date();

	if(lastMonth == -1)
	{
		lastMonth = 11;
		lastMonthDate.setFullYear(calDate.getFullYear()-1,lastMonth,1);
	}
	else
	{
		lastMonthDate.setFullYear(calDate.getFullYear(),lastMonth,1);
	}

	var returnText = "<div class='calendar_box'><table class='calendar' cellpadding=0 cellspacing=0>";
	returnText += "<tr class='top'>";
	returnText += "<th><a class='menu_item_1' href='#' onMouseDown=\"makeCalendarMillisecAdaptor(" + lastMonthDate.getTime() + ", '" + textBoxId + "');\"><<</a></th>";
	returnText += "<th colspan=5>" + monthName[thisMonth] + " " + calDate.getFullYear() + "</th>";
	returnText += "<th><a class='menu_item_1' href='#' onMouseDown=\"makeCalendarMillisecAdaptor(" + nextMonthDate.getTime() + ", '" + textBoxId + "');\">>></a></th>";
	returnText += "</tr>";
	returnText += "<tr><td>SU</td><td>MO</td><td>TU</td><td>WE</td><td>TH</td><td>FR</td><td>SA</td></tr>";
	//start the first line of the calendar
	var weekDayStart = calDate.getDay();

	returnText += "<tr>";
	for (var i = 0; i < weekDayStart; i++){
		returnText += "<td>-</td>";
	}

	while(calDate.getMonth() == thisMonth)
	{
		returnText += "<td><a class='menu_item_1' href='JavaScript://' onmousedown='document.getElementById(\"" + textBoxId + "\").value=\"" + calDate.getFullYear() + "-" + (calDate.getMonth()+1) + "-" + calDate.getDate() + "\"; document.getElementById(\"calendar_" + textBoxId + "\").style.visibility=\"hidden\";'>" + calDate.getDate() + "</a></td>";
		if(calDate.getDay() == 6)
		{
			//start a new line
			returnText += "</tr><tr>";
		}
		calDate.setDate(calDate.getDate()+1)
	}

	for (var i = calDate.getDay(); i < 7; i++){
		returnText += "<td>-</td>";
	}

	returnText += "</tr><tr><td colspan=7 style='text-align: center;'><a href='JavaScript: //' onclick='document.getElementById(\"calendar_" + textBoxId + "\").style.visibility=\"hidden\";' class='menu_item_1'>CLOSE</a></td></tr></table>";
	returnText += "</div><div class='calendar_box_bottom'> </div>";
	document.getElementById('calendar_' + textBoxId).innerHTML = returnText;
	document.getElementById('calendar_' + textBoxId).style.visibility = 'visible';
}


function makeClock(textBoxId){

	//make sure there is a calendar box
	if(!document.getElementById('clock_' + textBoxId))
	{
		//add it
		document.getElementById(textBoxId).parentNode.innerHTML = "<div class='wrapper' style='width: 0px; overflow: visible;'><div class='calendar_container' id='clock_" + textBoxId + "'></div></div>" + document.getElementById(textBoxId).parentNode.innerHTML;
	}

	var curTime = document.getElementById(textBoxId).value;
	if(curTime.length > 0)
	{
		var curHour = curTime.split(':');
		var curMinute = curHour[1].split(' ');
		var curAMPM = curMinute[1];
		curMinute = curMinute[0];
		curHour = curHour[0];
	}
	else
	{
		curHour = "12";
		curMinute = "00";
		curAMPM = "PM";
	}

	var returnText = "<div class='calendar_box'><table class='calendar' cellpadding=0 cellspacing=0>";
	returnText += "<tr class='top'>";
	returnText += "<th colspan=3>Set Time</th>";
	returnText += "</tr>";

	returnText += "<tr>";
	returnText += "<td><select onchange='updateTime(\"" + textBoxId + "\");' id='hour_" + textBoxId + "'>";
	for (var i = 12; i > 0; i--)
	{
		returnText += "<option value='" + i + "'";
		if(curHour==i)
		{
			returnText += " SELECTED";
		}
		returnText += ">" + i + "</option>";
	}
	returnText += "</select></td>";
	returnText += "<td><select onchange='updateTime(\"" + textBoxId + "\");' id='minute_" + textBoxId + "'>";
	returnText += "<option value='00'";
	if(curMinute=='00')
	{
		returnText += " SELECTED";
	}
	returnText += ">00</option>";
	for (var i = 15; i < 60; i = i + 15)
	{
		returnText += "<option value='" + i + "'";
		if(curMinute==i)
		{
			returnText += " SELECTED";
		}
		returnText += ">" + i + "</option>";
	}
	returnText += "</select></td>";
	returnText += "<td><select onchange='updateTime(\"" + textBoxId + "\");' id='ampm_" + textBoxId + "'>";
	returnText += "<option value='PM'>PM</option><option";
	if(curAMPM=='AM')
	{
		returnText += " SELECTED";
	}
	returnText += " value='AM'>AM</option></select></td>";
	returnText += "</tr>";
	returnText += "<tr><td colspan=3><a href='#' onmousedown='document.getElementById(\"clock_" + textBoxId + "\").style.visibility=\"hidden\";' class='menu_item_1'>Close</a></td></tr></table>";
	returnText += "</div><div class='calendar_box_bottom'> </div>";
	document.getElementById('clock_' + textBoxId).innerHTML = returnText;
	document.getElementById('clock_' + textBoxId).style.visibility = 'visible';
}

function updateTime(textBoxId)
{
	document.getElementById(textBoxId).value = document.getElementById("hour_" + textBoxId).value + ":" + document.getElementById("minute_" + textBoxId).value + " " + document.getElementById("ampm_" + textBoxId).value;
}
