<cfabort>
<cfif NOT isDefined("session.AgencyId") or session.AgencyId lt 1>
 <cflocation url="/" addtoken="no" />
 <cfexit>
</cfif>

<cfparam default='' name='url.d' />
<cfparam default='' name='url.empId' />
<cfparam default='' name='url.sids' />

<cfquery  name='eZip' datasource='#Application.DataSrc#'>
 SELECT e.Address1, e.City, e.State, e.Zip as empZip, e.Last_Name, e.First_Name
       ,z.zip, z.latitude, z.longitude
 FROM #Request.prefix_db_lookup#.Employee e, #Request.prefix_db_lookup#.zipcodes z
 WHERE  e.Employee_Id = '#url.empId#'
 AND    z.zip >= e.Zip
 ORDER BY z.zip
 LIMIT 10
</cfquery>
 <cfif eZip.RecordCount lt 1 or eZip.latitude eq '' or eZip.longitude eq ''>
  <div style='margin:50px;'>
   Beginning Latitude / Longitude based on the Employee's home Zip Code could not be determined for the Route Planner
  </div>
  <cfexit>
 </cfif>
<cfquery  name='gv' datasource='#Application.DataSrc#'>
 SELECT si.Visit_Date, si.Visit_Type, si.StartTime, si.EndTime, si.Visit_Notes, si.Telephony_Yes, si.Telephony_Id, si.Telephony_ItemNumber
       ,p.Last_Name_M0040, p.First_Name_M0040, p.Street_Address, p.City, p.State_M0050, p.Zip_M0060, p.Telephone
 FROM   #Request.prefix_db_agency#.ScheduleItems si, #Request.prefix_db_agency#.patient p
 WHERE  si.ScheduleItems_Id IN (#url.sids#)
 AND    si.Agency_Id = '#session.AgencyId#'
 AND    si.Employee_Id = '#url.empId#'
 AND    p.Patient_Id = si.Patient_Id
 ORDER BY si.StartTime ASC, si.ScheduleItems_Id ASC
</cfquery>

<cfoutput>
<!--
 SELECT si.Visit_Date, si.Visit_Type, si.StartTime, si.EndTime, si.Visit_Notes, si.Telephony_Yes, si.Telephony_Id, si.Telephony_ItemNumber
       ,p.Last_Name_M0040, p.First_Name_M0040, p.Street_Address, p.City, p.State_M0050, p.Zip_M0060, p.Telephone
 FROM   #Request.prefix_db_agency#.ScheduleItems si, #Request.prefix_db_agency#.patient p
 WHERE  si.ScheduleItems_Id IN (#url.sids#)
 AND    si.Agency_Id = '#session.AgencyId#'
 AND    si.Employee_Id = '#url.empId#'
 AND    p.Patient_Id = si.Patient_Id
 ORDER BY si.StartTime ASC, si.ScheduleItems_Id ASC
// -->
</cfoutput>

<cfset letters = ArrayNew(1) />
<cfscript>
 ArrayAppend(letters, 'A');
 ArrayAppend(letters, 'B');
 ArrayAppend(letters, 'C');
 ArrayAppend(letters, 'D');
 ArrayAppend(letters, 'E');
 ArrayAppend(letters, 'F');
 ArrayAppend(letters, 'G');
 ArrayAppend(letters, 'H');
 ArrayAppend(letters, 'I');
 ArrayAppend(letters, 'J');
 ArrayAppend(letters, 'K');
 ArrayAppend(letters, 'L');
 ArrayAppend(letters, 'M');
 ArrayAppend(letters, 'N');
 ArrayAppend(letters, 'O');
 ArrayAppend(letters, 'P');
 ArrayAppend(letters, 'Q');
 ArrayAppend(letters, 'R');
 ArrayAppend(letters, 'S');
 ArrayAppend(letters, 'T');
 ArrayAppend(letters, 'U');
 ArrayAppend(letters, 'V');
 ArrayAppend(letters, 'W');
 ArrayAppend(letters, 'X');
 ArrayAppend(letters, 'Y');
 ArrayAppend(letters, 'Z');
</cfscript>

<cfif url.d eq '' or url.sids eq '' or gv.RecordCount lt 1>
 <div style='margin:50px;'>
  No Scheduled Visits were found. Please try again.
 </div>
<cfelse>

<html>
 <head>
  <title><cfoutput>Route Planner for #eZip.First_Name# #eZip.Last_Name# on #url.d# - by MyHomeCareBiz.com</cfoutput></title>
<script src="https://maps.google.com/maps?file=api&amp;v=2.x&amp;key=<cfoutput>#Application.GoogleMapsAPIKey#</cfoutput>" type="text/javascript"></script>
  <style type='text/css'>
   body, table, td, div {
    font-family:Verdana; font-size:10px;
   }
   a {
	   text-decoration: none;
	   color: #22c;
   }
   a:link {
	   text-decoration: none;
	   color: #22c;
   }
   a:visited {
	   text-decoration: none;
	   color: #22c;
   }
   a:hover {
	   text-decoration: underline;
	   color: #22c;
   }
   a:active {
	   text-decoration: underline;
	   color: #22c;
   }
  .hdr10 {
    font-size:10px; font-weight:bold; padding:3px 10px 5px 10px; background:#efefef;
  }
  .hdr10Blue {
    font-size:10px; font-weight:bold; padding:3px 5px 3px 5px; background:#77c; color:#fff;
  }
  .hdr10Green {
    font-size:10px; font-weight:bold; padding:3px 5px 3px 5px; background:#080; color:#fff;
  }
  .hdr10day {
    font-size:10px; font-weight:normal; padding:3px 10px 5px 10px; background:#fbfbfb; text-align:left;
  }
  .hdr11 {
    font-size:11px; font-weight:bold; padding:3px 10px 5px 10px; background:#efefef;
  }
  .hdr11Green {
    font-size:11px; font-weight:bold; padding:3px 10px 5px 10px; background:#00aa00; color:#fff;
  }
  .hdr11Light {
    font-size:11px; font-weight:normal; padding:3px 10px 5px 10px; background:#fbfbfb; text-align:left;
  }
  .d1 {
    background:#fafafa; font-size:10px; padding:2px 6px;
  }
  .d2 {
    background:#fff; font-size:10px; padding:2px 6px;
  }
  .dateRange {
   background:#f2ffd5; padding:5px 5px 5px 10px;
  }
  .td10 {
    font-size:10px; padding:2px 10px 2px 6px;
  }
  input[type="checkbox"], input[type="radio"] {
   background: transparent;
   background:#fafafa;
	 border: 0;
  }
  .pendingBox {
    background:#fee; padding:2px 5px;
  }
  </style>
 </head>
 <body onUnload="GUnload()">
  <div style='margin:10px 0px 10px 10px; font-size:13px; letter-spacing:1px;'>
   <cfoutput><b>Route Planner</b> for #eZip.First_Name# #eZip.Last_Name# on #url.d# - by MyHomeCareBiz.com</cfoutput>
  </div>
  <table>
   <tr>
    <td valign='top'>
		 <div id="map_canvas" style="width: 500px; height: 300px;"></div>
     <div style='margin-top:15px;'>
      <table>
       <cfset x = 1 />
       <cfoutput query='gv'>
        <cfif x eq 1>
         <tr>
          <td class='hdr10Blue'>#letters[x]#</td>
          <td class='hdr10'>Start</td>
          <td class='td10'>
           #eZip.First_Name# #eZip.Last_Name#
            <br/>
					 #eZip.Address1#
					  <br/>
					 #eZip.City#, #eZip.State# #eZip.empZip#
					</td>
				 </tr>
				 <tr>
				  <td colspan='3'>&nbsp;</td>
				 </tr>
				 <cfset x = x + 1 />
        </cfif>
        <tr>
         <td class='hdr10Blue'>#letters[x]#</td>
         <td class='hdr10'>Patient</td>
         <td class='td10'>#gv.First_Name_M0040# #gv.Last_Name_M0040#</td>
				</tr>
        <tr>
         <td>&nbsp;</td>
         <td class='hdr10'>Address</td>
         <td class='td10'>
				  #gv.Street_Address#
				   <br/>
				  #gv.City#, #gv.State_M0050# #gv.Zip_M0060#
				 </td>
				</tr>
        <tr>
         <td>&nbsp;</td>
         <td class='hdr10'>Phone</td>
         <td class='td10'>#gv.Telephone#</td>
				</tr>
        <tr>
         <td>&nbsp;</td>
         <td class='hdr10'>Visit Type</td>
         <td class='td10'>#gv.Visit_Type#</td>
				</tr>
        <tr>
         <td>&nbsp;</td>
         <td class='hdr10'>Visit Times</td>
         <td class='td10'>#gv.StartTime# to #gv.EndTime#</td>
				</tr>
        <cfif gv.Telephony_Yes eq '1'>
        <tr>
         <td>&nbsp;</td>
         <td class='hdr10'>Telephony</td>
         <td class='td10'>#gv.Telephony_Id#</td>
				</tr>
				</cfif>
        <cfif gv.Visit_Notes neq ''>
        <tr>
         <td>&nbsp;</td>
         <td class='hdr10' valign='top'>Visit Notes</td>
         <td class='td10' width='375'>#gv.Visit_Notes#</td>
				</tr>
				</cfif>
				<tr>
				 <td colspan='3'>&nbsp;</td>
				</tr>
				<cfset x = x + 1 />
       </cfoutput>
      </table>
     </div>
		</td>
		<td valign='top'>
     <div id="NoDirections" style="display:none; width: 400px; height: 300px;"></div>
     <div id="directions" style="width: 400px; height: 300px;"></div>
    </td>
   </tr>
  </table>
  <script>
   var map = new GMap2(document.getElementById("map_canvas"));
       map.addControl(new GSmallMapControl());
       map.addControl(new GMapTypeControl());
       map.setCenter(new GLatLng(<cfoutput>#eZip.latitude#, #eZip.longitude#</cfoutput>), 10);
   var geocoder = new GClientGeocoder();
   var directions;
   directions = new GDirections(map, document.getElementById('directions'));
   <cfset i = 0 />
   <cfset ft = "from: " & eZip.Address1 & ", " & eZip.city & ", " & eZip.state & " " & eZip.empZip />
   <cfoutput query='gv'>
    <cfset gv.Street_Address = Replace(gv.Street_Address, " N ", " North ", "ALL") />
    <cfset gv.Street_Address = Replace(gv.Street_Address, " S ", " South ", "ALL") />
    <cfset gv.Street_Address = Replace(gv.Street_Address, " E ", " East ", "ALL") />
    <cfset gv.Street_Address = Replace(gv.Street_Address, " W ", " West ", "ALL") />
    <cfif Right(gv.Street_Address, 2) eq 'St'>
     <cfset gv.Street_Address = Replace(gv.Street_Address, " St", " Street", "ALL") />
    </cfif>
    <cfset ft = ft & " to: " & gv.Street_Address & ", " & gv.City & ", " & gv.State_M0050 & " " & gv.Zip_M0060 />
    <cfset i = i + 1 />
   </cfoutput>
   directions.load("<cfoutput>#Replace(Replace(ft, Chr(13), "", "ALL"), """", "", "ALL")#</cfoutput>");
   setTimeout("checkDir()", 3000);
   var sicd2 = setInterval("checkDir2()", 5000);
   function findAddress(address) {
    geocoder.getLatLng(
     address,
     function(point) {
      if (!point) {
        alert(address + " not found");
      } else {
/*
        map.setCenter(point, 13);
        var marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(address);
*/
      }
     }
    );
   }
   function checkDir() {
    if(document.getElementById('directions').innerHTML == '') {
     document.getElementById('NoDirections').style.display = '';
     document.getElementById('NoDirections').innerHTML = "<div style='background:#ff0; margin:10px; padding:10px; font-size:11px;'><span style='color:#f00; font-weight:bold; font-size:13px;'>*</span> Route Planner could not plot all the addresses needed to present driving directions. This usually occurs when one or more Patient addresses are incorrect on their Patient record.<br/><br/>Please fix any missing or incorrect Patient addresses on this report and then try printing the Route Planner again.</div>";
    } else {
     document.getElementById('NoDirections').style.display = 'none';
     clearInterval(sicd2);
    }
   }
   function checkDir2() {
    checkDir();
   }
  </script>
 </body>
</html>

</cfif>
