// JavaScript Document

  //image used for rollover state of times
  var imgRed = new Image();
  imgRed.src = "/ItineraryPlanner/media/red.gif";
  
  var imgBlank = new Image();
  imgBlank.src = "/ItineraryPlanner/media/spacer.gif";
  
  //initialize time selection modes
  var selectStartTimeMode = false;
  var selectEndTimeMode = false;
  
  var startdate = new Date();
  var enddate = new Date();
  
  startdate.setSeconds("00");
  enddate.setSeconds("00");
  
  var reschedule = "";
  
  function pophelp(URLtoOpen, windowName, windowFeatures)
  {
	newWindow=window.open(URLtoOpen, windowName, windowFeatures);
  }
    
  function SubmitClick(frmaction)
	{
		//alert(frmaction);
		document.forms[0].elements['frmaction'].value = frmaction;
		__doPostBack('ctlItineraryPlanner$ctlDisplay$btnUpdate','');
		//document.forms[0].submit();
	}
  
  //prints a debug message to the screen
  function debug(message, append)
  {
	if (append)
	{
		document.getElementById('lbldebug').innerHTML += message;
	}
	else
	{
		document.getElementById('lbldebug').innerHTML = message;
	}
  }
  
  //switches an image
  function imgSwicth(whichImg, newImage)
  {
	eval("document." + whichImg + ".src = " + newImage + ".src");
  }
  
  //attempts to show image rollover for times
  function timeOn(whichImg, time)
  {
	if (selectStartTimeMode) //selecting a start time
	{
	  imgSwicth(whichImg, 'imgRed');
	}
	if (selectEndTimeMode) //selected an end time, requires some validation
	{
	  //get the time the mouse is currently over
	  enddate.setHours(GetHour(time));
	  enddate.setMinutes(GetMinutes(time));
	  //if the current time is later than the selected start time and does not overlap and existing appointment, then switch
	  if (enddate >= startdate && nooverlap()) 
	  {
	  	imgSwicth(whichImg, 'imgRed');
	  }
	}
  }
  
  //turns a time off (mouseout)
  function timeOff(whichImg, time)
  {
	imgSwicth(whichImg, 'imgBlank');
  }
  
  //checks to see if the current time (mouseover) overlaps any exististing appointments
  function nooverlap()
  {
	nooverlapfound = true;
	//loop through existing appointment start times
	for (var i = 0; i < starttimes.length; i++)
	{
		stime = new Date();
		stime.setHours(GetHour(starttimes[i]));
		stime.setMinutes(GetMinutes(starttimes[i]));
		stime.setSeconds("00");
		if (stime > startdate && enddate >= stime) //overlaps, bad
		{
			nooverlapfound = false;
		}
	}
	return nooverlapfound;
  }
  
  function resetScheduler()
  {
	 document.getElementById('lblStart').innerHTML = "";
	 document.forms[0].elements['hdnStart'].value = "";
	 document.getElementById('lblEnd').innerHTML = "";
	 document.forms[0].elements['hdnEnd'].value = "";
	 document.getElementById('lblInstrcutions').innerHTML = 'Select a start time.';
	showPanel('panel_details');
		selectStartTimeMode = true;
  }
  
  //toggles the search panels
  function searchpanel(panelon)
  {	  
  	  if (document.getElementById(panelon).className == 'hiddenform')
	  {
		  	showIt = true;
	  }
	  else
	  {
		  	showIt = false;
	  }
	  hidePanel('search_attractions');
	  hidePanel('search_events');
	  hidePanel('search_lodging');
	  hidePanel('schedule_travel');
	  hidePanel('schedule_custom');
	  hidePanel('panel_prebuilt');
	  hidePanel('panel_account');
	  //hidePanel('panel_keyword');
	  //hidePanel('panel_new');
	  
	  if (showIt)
	  {
	  	showPanel(panelon);
	  }
  }
  
  //shows the add item panel
  function rescheduleItem()
  {
	selectStartTimeMode = true;
	reschedule = "reschedule";
	showPanel('panel_details');
	document.getElementById('lblInstrcutions').innerHTML = 'Select a start time.';
  }
  
  function showPanel(panelid)
  {
	//document.getElementById(panelid).style.visibility = 'visible';
	//document.getElementById(panelid).style.height = 'auto';
	document.getElementById(panelid).className = 'visibleform';
  }
  
  function hidePanel(panelid)
  {
	  //document.getElementById(panelid).style.visibility = 'hidden';
	  //document.getElementById(panelid).style.height = '1px';
	  document.getElementById(panelid).className = 'hiddenform';
  }
  
  //gets the hours (0-23) of the supplied time
  function GetHour(inTime)
  {
	  hour = Number(inTime.substring(0, inTime.indexOf(":")));
	  if (inTime.indexOf("PM") > 1 && hour < 12)
	  {
		  hour = hour + 12;
	  }
	  else if (hour == 0)
	  {
		  hour = 12;
	  }
	  //debug(hour + "-" + inTime.indexOf("PM") + "\n<br/>", true);
	  return hour;
  }
  
  //gets the minutes (0-59) of the supplied time
  function GetMinutes(inTime)
  {
	  return inTime.substr(inTime.indexOf(":")+1, 2);
  }
  
  function ScheduleNewDay()
  {
	  document.forms[0].elements['iCurrentDay'].value = document.forms[0].elements['ddScheduleDay'].value;
	  SubmitClick('reschedule_new_day');
  }
  
  //add a new item button clicked
  function AddNew_Click()
  {
  	//document.getElementById('lblDetailsHeader').innerHTML = "<b>" + document.forms[0].elements['tbNewName'].value + "</b>";
  	//document.getElementById('lblDetailsText').innerHTML = document.forms[0].elements['tbNewDescription'].value;
  	//document.getElementById('lblDetailsCategory').innerHTML = document.forms[0].elements['ddNewCategory'].value;
  	document.forms[0].elements['hdnName'].value = document.forms[0].elements['tbName'].value;
  	document.forms[0].elements['hdnDescription'].value = document.forms[0].elements['tbDescription'].value;
  	document.forms[0].elements['hdnType'].value = document.forms[0].elements['ddCategory'].value;
  	document.getElementById('lblInstrcutions').innerHTML = 'Select a start time.';
  	showPanel('panel_details');
  	selectStartTimeMode = true;
  }
  
  function SetDetails(category, name, details, id)
  {
  	showPanel('panel_details');
  	selectStartTimeMode = true;
	
	//document.getElementById('lblDetailsHeader').innerHTML = "<b>" + name + "</b>";
  	//document.getElementById('lblDetailsText').innerHTML = details;
  	//document.getElementById('lblDetailsCategory').innerHTML = category;
  	document.forms[0].elements['hdnName'].value = name;
  	document.forms[0].elements['hdnDescription'].value = details;
  	document.forms[0].elements['hdnType'].value = category;
  	document.forms[0].elements['itemID'].value = id;
  	document.getElementById('lblInstrcutions').innerHTML = 'Select a start time.';
    
  }
  
  function ScheduleTravel()
  {
	  	//document.getElementById('lblDetailsHeader').innerHTML = "<b>" + document.forms[0].elements['tbTravelName'].value + "</b>";
		//document.getElementById('lblDetailsText').innerHTML = document.forms[0].elements['tbTravelDetails'].value;
		//document.getElementById('lblDetailsCategory').innerHTML = 'travel';
		document.forms[0].elements['hdnName'].value = document.forms[0].elements['tbTravelName'].value;
		document.forms[0].elements['hdnDescription'].value = document.forms[0].elements['tbTravelDetails'].value;
		document.forms[0].elements['hdnType'].value = 'travel';
		document.getElementById('lblInstrcutions').innerHTML = 'Select a start time.';
		showPanel('panel_details');
		selectStartTimeMode = true;
  }
  
  //time is clicked (selected)
  function timeSelect(selectedtime)
  {
	//if selection a start time
	if (selectStartTimeMode)
	{
	  setStartTime(selectedtime);
	}
	else if (selectEndTimeMode)
	{
	  enddate.setHours(GetHour(selectedtime));
	  enddate.setMinutes(GetMinutes(selectedtime));
	  if (enddate >= startdate && nooverlap())
	  {
	  	setEndTime(selectedtime);	  
	  }
	}
	
	function setEndTime(selectedtime)
	{
	  endTimeMins = Number(GetMinutes(selectedtime)) + 15;
	  endTimeHour = Number(GetHour(selectedtime));
	  if (endTimeMins == 60) 
	  {
		  endTimeMins = "00";
		  endTimeHour = endTimeHour + 1;
	  }
	  endTimeTOD = "AM";
	  if (selectedtime.indexOf("PM") > 1)
	  {
		 endTimeTOD = "PM";
		 if (endTimeHour > 12) endTimeHour = endTimeHour - 12;
		 
	  }
	  if (endTimeMins == "00" && endTimeHour == 12) endTimeTOD = "PM";
	  actualEndTime = endTimeHour + ":" + endTimeMins + " " + endTimeTOD;
	  selectEndTimeMode = false;
	  document.getElementById('lblEnd').innerHTML = actualEndTime;
	  document.forms[0].elements['hdnEnd'].value = actualEndTime;
	  document.getElementById('lblInstrcutions').innerHTML = 'Please wait..';
	  //showPanel('panel_addbtn');
	  if (reschedule == "")
	  {
	  	SubmitClick('do_add_new');
	  }
	  else
	  {
	  	SubmitClick('do_reschedule');
	  }
	}
	
	//sets the start time
	function setStartTime(selectedtime)
	{
	  selectStartTimeMode = false;
	  selectEndTimeMode = true;
	  document.getElementById('lblStart').innerHTML = selectedtime;
	  document.forms[0].elements['hdnStart'].value = selectedtime;
	  document.getElementById('lblInstrcutions').innerHTML = 'Select an end time.';
	  startdate.setHours(GetHour(selectedtime));
	  startdate.setMinutes(GetMinutes(selectedtime));
	}
	
	
	
	
  }