﻿var maxAttInIti=20
var numAttInIti=0
var itineraryPoints=new Array(0)
var attraction_index_itinerary=new Array()
var marks_itinerary=new Array()
var PolItinerary=null
DoMarkItineraryInMap=function(attindex,point){
if(point){
attraction_index_itinerary[itineraryPoints.length]=attindex
itineraryPoints.push(point)
AddRowItineraryV2(attindex,attraction_names[attindex])}}
var degreesPerRadian=180.0/Math.PI
function bearing(from,to){
var lat1=from.latRadians()
var lon1=from.lngRadians()
var lat2=to.latRadians()
var lon2=to.lngRadians()
var angle=-Math.atan2(Math.sin(lon1-lon2)*Math.cos(lat2),Math.cos(lat1)*Math.sin(lat2)-Math.sin(lat1)*Math.cos(lat2)*Math.cos(lon1-lon2))
if(angle<0.0)
angle+=Math.PI*2.0
angle=angle*degreesPerRadian
angle=angle.toFixed(1)
return angle}
function midArrows(points){
var arrowIcon=new GIcon()
arrowIcon.iconSize=new GSize(24,24)
arrowIcon.shadowSize=new GSize(1,1)
arrowIcon.iconAnchor=new GPoint(12,12)
for(i=0;i<marks_itinerary.length;i++){
G_Map.removeOverlay(marks_itinerary[i])}
for(i=1;i<points.length;i++){
var dir=bearing(points[i-1],points[i])
var dir=Math.round(dir/3)*3
while(dir>=120){dir-=120;}
arrowIcon.image="http://www.google.com/intl/en_ALL/mapfiles/dir_"+dir+".png"
marks_itinerary.push(new GMarker(points[i],arrowIcon))
G_Map.addOverlay(marks_itinerary[marks_itinerary.length-1])}}
var _eventDoItineraryInMap
function AddEventToItinerary(){
_eventDoItineraryInMap=GEvent.addListener(G_Map,"click",DoMarkItineraryInMap)}
function RemoveEventToItinerary(){
GEvent.removeListener(_eventDoItineraryInMap)}
function clearItinerary(){
itineraryPoints=new Array()
attraction_index_itinerary=new Array()
var tbl=document.getElementById("tbl_itinerary")
while(tbl.tBodies[0].rows.length>0)
tbl.tBodies[0].deleteRow(0)
PolItinerary=null
isFirst=true}
function AddRowItinerary(attindex,_cellText){
var tbl=document.getElementById("tbl_itinerary")
var tblb=tbl.tBodies[0]
var row=document.createElement("tr")
var cell1=document.createElement("td")
var cell2=document.createElement("td")
var cell3=document.createElement("td")
var cell4=document.createElement("td")
cell1.innerHTML=itineraryPoints.length
cell1.className='order'
cell2.innerHTML='<img src="images/arrow_down.gif" title="Down"  onclick="setIndex(this);setDown()" width="9" style="padding-left:3px;padding-right:4px" height="10" /><img title="Up" onclick="setIndex(this);setUp()" src="images/arrow_up.gif" width="9" height="10" />'
cell3.innerHTML=_cellText
cell4.setAttribute('align','center')
cell4.innerHTML='<img src="images/cross.gif" width="11" height="11" title="Remove" onclick="RemoveRowItinerary('+attindex+')" />'
row.appendChild(cell1)
row.appendChild(cell2)
row.appendChild(cell3)
row.appendChild(cell4)
tblb.appendChild(row)}
function AddRowItineraryV2(attindex,_cellText){
var tbl=document.getElementById("tbl_itinerary")
var tblb=tbl.tBodies[0]
var row=document.createElement("tr")
row.setAttribute('atti',attindex)
var cell0=document.createElement("td")
var cell1=document.createElement("td")
var cell2=document.createElement("td")
cell0.innerHTML=String.fromCharCode("A".charCodeAt(0)+tbl.rows.length)
cell1.innerHTML=_cellText
cell0.style.width='15px'
cell2.style.width='15px'
cell0.setAttribute('align','center')
cell2.setAttribute('align','center')
cell0.style.cursor='move'
cell1.style.cursor='move'
cell2.style.cursor='pointer'
cell0.className='nohighlight'
cell1.className='nohighlight'
cell2.className='nohighlight'
cell2.innerHTML='<img src="images/cross.gif" width="11" height="11" title="Remove" onclick="RemoveRowItinerary('+attindex+')" />'
row.appendChild(cell0)
row.appendChild(cell1)
row.appendChild(cell2)
tblb.appendChild(row)}
function RemoveRowItinerary(index){
var i
var indexRow=0
var band=true
for(i=0;i<attraction_index_itinerary.length&&band;i++){
if(attraction_index_itinerary[i]==index){
indexRow=i
band=false}}
if(band)return
attraction_index_itinerary.splice(indexRow,1)
var tbl=document.getElementById("tbl_itinerary")
itineraryPoints.splice(indexRow,1)
tbl.tBodies[0].deleteRow(indexRow)
showCustomIti=false
doDisplayRouteCustomIti()}
function ShowUpdatedItinerary(){
if(PolItinerary!=null)
G_Map.removeOverlay(PolItinerary)
if(itineraryPoints.length>0){
UpdatePosition(0)
PolItinerary=new GPolyline(itineraryPoints,'#0000FF')
G_Map.addOverlay(PolItinerary)
midArrows(itineraryPoints)}}
function setItinerary(){
var _attids=document.getElementById('iti_attids')
var i=0
_attids.value=''
if(itiDisSelected==-1){
for(i=0;i<itineraryPoints.length;i++)
_attids.value=_attids.value+attraction_ids[attraction_index_itinerary[i]]+','}
else{
for(i=0;i<arrItiAttractionID[itiDisSelected].length;i++)
_attids.value=_attids.value+arrItiAttractionID[itiDisSelected][i]+','}
_attids.value=_attids.value.substring(0,_attids.value.length-1)
document.getElementById('iti_cliid').value=client_ID
document.getElementById('iti_urlmap').value=window.location.href
document.getElementById('iti_lang').value=Language
document.frm_getiti.submit()
return true}
function chkAddIti(checked,index,lon,lat){
if(checked){
if(numAttInIti!=maxAttInIti){
document.getElementById('att_add_iti').style.display='none'
document.getElementById('att_remove_iti').style.display=''
DoCrossRequest('call=atratype&type=4')
DoMarkItineraryInMap(index,new GLatLng(parseFloat(lat),parseFloat(lon)))
numAttInIti++
}else{
alert('Cannot add attraction to the itinerary,\nthe route already has the number of attractions allowed (20).')}
}else{
document.getElementById('att_add_iti').style.display=''
document.getElementById('att_remove_iti').style.display='none'
RemoveRowItinerary(index)
numAttInIti--}}
function isChecked(index){
for(i=0;i<attraction_index_itinerary.length;i++){
if(attraction_index_itinerary[i]==index){
document.getElementById('att_add_iti').style.display='none'
document.getElementById('att_remove_iti').style.display=''}}}
var itiDisSelected=-1
var markItiDisplay=[]
var showCustomIti=false
var isFirstIti=true
function doDisplayRouteCustomIti(){
if(isFirstIti){isFirstIti=false;return;}
if(itiDisSelected!=-1){
itiDisSelected=-1
showCustomIti=false}
emptyIti()
show_hideLigthBoxMsg('lBMsg',true)
if(showCustomIti){
showCustomIti=false
return}
if(itineraryPoints.length>1){
markItiDisplay=[]
G_Dir.loadFromWaypoints(itineraryPoints)
showCustomIti=true}
else{
document.getElementById('imgVsIti').style.visibility='hidden'
show_hideLigthBoxMsg('lBMsg',false)}}
function doDisplayRouteIti(i){
showCustomIti=false
if(i==itiDisSelected){
itiDisSelected=-1
emptyIti()
return}
emptyIti()
if(arrItiDisplay[i].length>1){
show_hideLigthBoxMsg('lBMsg',true)
itiDisSelected=i
markItiDisplay=[]
G_Dir.loadFromWaypoints(arrItiDisplay[i])}}
function emptyIti(){
for(var i=0;i<markItiDisplay.length;i++)
G_Map.removeOverlay(markItiDisplay[i])
markItiDisplay=[]
G_Dir.clear()
show_hideLigthBoxMsg('lBMsg',false)}
function onG_DirAddOverlayIti(){
var geocode
var route
var rMarker
var rLatLngs
var rIcon
var rLength=G_Dir.getNumRoutes()
var rTitle
for(var i=0;i<rLength;i++){
route=G_Dir.getRoute(i)
geocode=route.getStartGeocode()
rMarker=G_Dir.getMarker(i)
rLatLngs=rMarker.getLatLng()
rIcon=rMarker.getIcon()
if(itiDisSelected!=-1)rTitle=arrItiAttraction[itiDisSelected][i]
else rTitle=attraction_names[attraction_index_itinerary[i]]
markItiDisplay[i]=new GMarker(rLatLngs,{icon:rIcon,title:rTitle})
G_Map.addOverlay(markItiDisplay[i])}
if(rLength>0){
i=rLength
rMarker=G_Dir.getMarker(i)
rIcon=rMarker.getIcon()
geocode=route.getEndGeocode()
rLatLngs=rMarker.getLatLng()
if(itiDisSelected!=-1)rTitle=arrItiAttraction[itiDisSelected][i]
else rTitle=attraction_names[attraction_index_itinerary[i]]
markItiDisplay[i]=new GMarker(rLatLngs,{icon:rIcon,title:rTitle})
G_Map.addOverlay(markItiDisplay[i])}
show_hideLigthBoxMsg('lBMsg',false)
showTooltip(document.getElementById('imgVsIti'),'<b>View/Share Itinerary</b><br>- View Detail Directions.<br>- Print.<br>- Send to a friend.')
setTimeout("hideTooltip()",4000)}
function vSharedIti(){
if(itiDisSelected==-1){
if(itineraryPoints.length<2){
alert('Please select points to itinerary.')
return false}
else
return setItinerary()}
else
return setItinerary()}
function UpdateOrderCustomIti(){
var trs=document.getElementById("tbl_itinerary").getElementsByTagName('tr')
for(var i=0;i<trs.length;i++){
var attindex=trs[i].getAttribute('atti')
attraction_index_itinerary[i]=attindex
itineraryPoints[i]=new GLatLng(parseFloat(position[attindex][0]),parseFloat(position[attindex][1]))
trs[i].cells[0].innerHTML=String.fromCharCode("A".charCodeAt(0)+i)}
showCustomIti=false
doDisplayRouteCustomIti()}