﻿//for cache



var map;
var geocoder = null;
 var gmarkers = [];
  var gmarkers_html = [];
 var polyline;
 var polyline_points= new Array;
 var icon_image = '../images/mapIcon.png';
var bounds;
var images_array=[]; 
var intervalID;
var logoImageSrc    =   '../images/logo_corp.jpg';
var mapIcon         =   '../images/mapIcon.png';
    var iconBlue = new GIcon(); 
   // iconBlue.image = '../../images/gc/compass1.gif';
   
    iconBlue.image = mapIcon;
   // iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(25, 25);
   // iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(10, 10);
    iconBlue.infoWindowAnchor = new GPoint(10, 10);

    var iconRed = new GIcon(); 
    iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
    iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconRed.iconSize = new GSize(12, 20);
    iconRed.shadowSize = new GSize(22, 20);
    iconRed.iconAnchor = new GPoint(6, 20);
    iconRed.infoWindowAnchor = new GPoint(5, 1);
	
	   var iconStart = new GIcon(); 
    iconStart.image = 'http://cloudsolutions.co.il/images/gc/flag_start.png';
    //iconStart.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconStart.iconSize = new GSize(12, 20);
    iconStart.shadowSize = new GSize(22, 20);
    iconStart.iconAnchor = new GPoint(6, 20);
    iconStart.infoWindowAnchor = new GPoint(5, 1);

    var customIcons = [];
    customIcons["restaurant"] = iconBlue;
    customIcons["bar"] = iconRed;
	customIcons["start"] = iconStart;

window.onload= initialize;
window.onunload=GUnload;

function initialize() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        
		map.setCenter(new GLatLng(35.899583425982705, 31.07568359375), 1);
		map.addControl(new GLargeMapControl3D());
		
	geocoder = new GClientGeocoder();
		
		// ====== Restricting the range of Zoom Levels =====
      // Get the list of map types      
      var mt = map.getMapTypes();
      // Overwrite the getMinimumResolution() and getMaximumResolution() methods
      for (var i=0; i<mt.length; i++) {
        mt[i].getMinimumResolution = function() {return 1;}
        mt[i].getMaximumResolution = function() {return 17;}
      }

var pos_openmessage = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,30));
      pos_openmessage.apply(document.getElementById("open_message1"));
      map.getContainer().appendChild(document.getElementById("open_message1"));  
	  
	  

	loadData('layer_index');

	
      }
    }
	
	
function link(){
		
	}
	
function setMap(type){
	
	switch (type) {
	case 1:
		map.setMapType(G_NORMAL_MAP);break;
	case 2:
		map.setMapType(G_SATELLITE_MAP);break;
	case 3:
		map.setMapType(G_HYBRID_MAP);break;
		}
	pageTracker._trackEvent('setMap', 'select', type);
	}

function selectDestinationChange(option){
//addStats("selectDestinationChange",option);
//alert(option);
	//alert(option);
	var bounds = map.getBounds();
  var southWest = bounds.getSouthWest();
  var northEast = bounds.getNorthEast();
  var lngSpan = northEast.lng() - southWest.lng();
  var latSpan = northEast.lat() - southWest.lat();
 

  var point_lat = gmarkers[option].getLatLng().lat();
  var point_lng = gmarkers[option].getLatLng().lng();
  //point_lat = point_lat + Math.abs((Math.abs(lat_high)-Math.abs(lat_low))/3);
  point_lat = point_lat + Math.abs(latSpan/3);

  var point = new GLatLng(point_lat,point_lng);

	map.panTo(point);
setTimeout('GEvent.trigger(gmarkers['+option+'],"click");', 300);



	}


 function createMarker(point, name, address, type) {
 
      var icon_image='restaurant';
	   
	 //if (!gmarkers.length) icon_image='bar';
	  
	  var marker=new GMarker(point, customIcons[icon_image]);
      var html = "<div class='balloon'><div class='balloon_title'>" + name + "</div> " ;

	  html += "<div class='balloon_description_image'>" ;
	  html+= address;
	  html +="<br><br><img src='../images/logo_gc.jpg' width='100px' >" ;
	 
	  
	  
	           var html = "<div class='balloon' dir='rtl'>";
		  html +="<div class='balloon_title_title'>"+name+"</div>";
		   html +="<div class='balloon_title_icon'><img align='left' src='../images/logo_gc.jpg' width='80px'/></div>";
		  html +="<p><div class='academy_description'>"+address+"</div>";
		   		   
	   html += "<div class= 'balloon_click_info' dir='rtl'>";
		
		 html += "<div class='balloon_click_directions'><a href='javascript:link();' onclick='nextPoint("+gmarkers.length+",(-1))' class='no_decor font12'>הקודם</a></div>";
	   html += "<div class='balloon_click_directions'><a href='javascript:link();' onclick='nextPoint("+gmarkers.length+",1)' class='no_decor font12'>הבא</a></div>";
		
		html += "<div class='balloon_click_directions'><a href='javascript:moveCamToPointXYZ(" + point.lat()+","+ point.lng() +",5);closeIconWindow("+(gmarkers.length)+")" +
		"'  style='text-decoration:none'>| מרכוז |</a></div>"; 
		
		 
		
		
	   html+="</div>";
	   html+="</div>";
	  
	  
	  
      GEvent.addListener(marker, 'click', function() {
        
		marker.openInfoWindowHtml(html);
		
      });
	   gmarkers.push(marker);
      return marker;
    }
var prev_name;
var prev_name_switch=true;
var name_equal = false;
var name_equal_end = false;
var name_equal_start = true;
var write_days_now = false;
function loadData(layer_index){


	layer_xml = "inc/getxml.php?q="+trip_id+'&bc='+new Date().getTime();

	
	var xmlhttp = GXmlHttp.create();
	xmlhttp.open('GET', layer_xml, true);
	xmlhttp.onreadystatechange = function() {
       if (xmlhttp.readyState == 4) {
		var doc = xmlhttp.responseXML;
		

            if (xmlhttp.status != 200) {
                setAlertText('Could not access map data.');
            } else {
               // the gdownloadfunction
			  
	
		 xmlDoc = doc;
         markers = xmlDoc.documentElement.getElementsByTagName("marker");

    bounds = new GLatLngBounds();
	var put_marker=true;  
xml_array=new Array;
/*
for (var i = 0; i < markers.length; i++) {

	xml_array[i][0] = parseChars(markers[i].getAttribute("name"));
	xml_array[i][1] =  markers[i].getAttribute("day");
   xml_array[i][2] =  parseChars(markers[i].getAttribute("name_he"));
  alert(xml_array[i][1]);
   
} 
 for (var i = 0; i < markers.length; i++) {
 alert(xml_array[i][0]);
 } 
 */
 var markers1 = xmlDoc.getElementsByTagName('markers').item(0);
  for (var i = 0; i < markers.length; i++) {

	var name = parseChars(markers[i].getAttribute("name"));
	var day = markers[i].getAttribute("day");
    var name_he = parseChars(markers[i].getAttribute("name_he"));
    var address = parseChars(markers[i].getAttribute("address"));
    var type = markers[i].getAttribute("type");
	var image_url = markers[i].getAttribute("image_url");
    var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                            parseFloat(markers[i].getAttribute("lng")));

if (i<markers.length-1){
	next_name = xmlDoc.getElementsByTagName("marker")[i+1].attributes.getNamedItem("name").nodeValue
}
else {
	next_name= "end";
}

		//alert(next_name);	
		
	if (name_equal && (next_name!=name)){
		name_equal_end = true;
		var end_day = day;
		
		//alert(end_day);
	}
	
	if (next_name==name){
		name_equal = true;
		//alert (prev_day);
		if (name_equal_start) {
			var start_day=day;
			name_equal_start = false;
			//alert(start_day);
		}
	}


var option_name= "יום " + day + ": ";
option_name += name_he;

if (name_equal_end){
//alert(prev_name_he);
	write_days_now = true;
	name_equal_end = false;
	name_equal_start = true;
	name_equal=false;
	option_name = "ימים " + start_day + "-" + end_day + ": ";
	option_name += prev_name_he;
	//alert(option_name);
}

	//if (day) option_name += "יום " + day + " - ";
	
	 
	gmarkers_html[gmarkers.length]=address;
  // var marker = createMarker(point, option_name, address, type);
	
	if (name=='Flight'){
		lat_a=parseFloat(markers[i-1].getAttribute("lat"));
		lng_a=parseFloat(markers[i-1].getAttribute("lng"));
		lat_b=parseFloat(markers[i+1].getAttribute("lat"));
		lng_b=parseFloat(markers[i+1].getAttribute("lng"));
		name_a=parseChars(markers[i-1].getAttribute("name_he"));
		name_b=parseChars(markers[i+1].getAttribute("name_he")) ;
		flight_description = name_a + " - " + name_b;
		var point_flight = new GLatLng((lat_a + lat_b)/2,(lng_a + lng_b)/2);
		  var marker =createLabeledMarker('טיסה', flight_description, point_flight, 'Flight') ;
		 // createLabeledMarker(option_name, address, point, type);
		map.addOverlay(marker);
		marker.setLabelVisibility(0);	
	}
	

	if (name!='Flight' && !name_equal){
	   var marker = createLabeledMarker(option_name, address, point, type,image_url);
		map.addOverlay(marker);
		marker.setLabelVisibility(0);	
		polyline_points[i] = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
								parseFloat(markers[i].getAttribute("lng")));
		bounds.extend(point);
		makeOptions(option_name);
	 }
 	
prev_name = name;
prev_day = day;
prev_name_he = name_he;
}// end for
 
   polyline = new GPolyline(polyline_points,"#015D6C",1,1);

map.addOverlay(polyline);

// ===== determine the zoom level from the bounds =====
setCenterBounds1stPoint(); 
//setTimeout ( "setCenterBounds1stPoint()", 4000 ); 
intervalID = setInterval(setCenterBounds1stPoint, 2000);        
		/*
		  map.setZoom(map.getBoundsZoomLevel(bounds));
 
          // ===== determine the centre from the bounds ======
          map.setCenter(bounds.getCenter());
		  
		 nextPoint(1,(-1));*/
		//setTimeout('gmarkers[0].closeInfoWindow()', 7000);
			   
            }
        }
    }
  



xmlhttp.send(null);
	return;
 }
 
function setCenterBounds1stPoint(){
	if (map.getZoom()<2){
		  map.setZoom(map.getBoundsZoomLevel(bounds));
           map.setCenter(bounds.getCenter());
		  nextPoint(1,(-1));
	} else {
	//alert(map.getZoom());
	clearInterval(intervalID); 
	} 
} 
 
 var option=0;
 function makeOptions(name) {
var x=document.getElementById("select_destination_list");


	var y=document.createElement('option');
	y.text=name;y.value = option;option +=1;
	try  { x.add(y,null); 
	// standards compliant 
	}
	catch(ex)  {  x.add(y); 
	// IE only  
	}
	
	
            
return;
 }
var start_up_action=true;
 function nextPoint(num,next){
 
 if (start_up_action){
	 if (map.getZoom()>1) pageTracker._trackEvent('MP3_player', 'Click', 'onStart');
	 start_up_action=false;
} else {
	if (map.getZoom()>1) pageTracker._trackEvent('MP3_player', 'Click', 'Click_on_App');
}
 if (!num) num=parseInt(document.getElementById("select_destination_list").value);

 num +=next;

 selectDestinationChange(num);
 var x=document.getElementById("select_destination_list");
 x.options[num].selected = true; // works

 }
   function clickPolyline(checkbox_id){

      var kmlCheckbox = document.getElementById(checkbox_id);

	 if ( (kmlCheckbox.checked)){

        map.addOverlay(polyline);

		} 
	if (kmlCheckbox.checked==false) {

        map.removeOverlay(polyline);

		}
		return;
	}
	
function moveCamToPointXYZ (x,y,z){
var current_zoom = map.getZoom();
if (current_zoom < 15) {
	z=current_zoom+3;
}
	map.setCenter(new GLatLng(x,y),z);
	return
}
function closeIconWindow(i){

	setTimeout('gmarkers['+i+'].closeInfoWindow()', 1000);
}

function createLabeledMarker( name, address,point, type, image_url) {

	var icon = new GIcon();
  	icon.image = icon_image;
        icon.iconSize = new GSize(40, 40);
        icon.iconAnchor = new GPoint(0, 26);
        icon.infoWindowAnchor = new GPoint(20, 17);
 
 if (type=='Flight'){
 	  	icon.image = "http://maps.gstatic.com/intl/en_ALL/mapfiles/ms/micons/plane.png";
        icon.iconSize = new GSize(20, 20);
        icon.iconAnchor = new GPoint(10, 16);
        icon.infoWindowAnchor = new GPoint(10, 7);
 
 }
 
 
	    opts = { 
	          "icon": icon,
	          "clickable": true,
	          "title": name,
	          "labelText": name,
	         "labelOffset": new GSize(-16, -40),
			 "labelClass": "label_class"
	        };
	var marker = new LabeledMarker(point, opts);
        //marker.mycategory = category;                                 
        //marker.myname = name;
		
	var html = createHtml (name, address, point.lat(), point.lng(),image_url);
	//alert(name);
     GEvent.addListener(marker, "click", function() {

		marker.openInfoWindowHtml(html);

		
		});
	GEvent.addListener(marker, "mouseover", function() {marker.setLabelVisibility(1);});
	GEvent.addListener(marker, "mouseout", function() {marker.setLabelVisibility(0);});
	if (type!='Flight') gmarkers.push(marker);
		
        return marker;
}

function createHtml(name, address, lat, lng, image_url){
    var html = "<div class='balloon' dir='rtl'>";
    html +="<div class='balloon_title_title'>"+name+"</div>";
    html +="<div class='balloon_title_icon'><img align='left' src='"+logoImageSrc+"' width='80px'/></div>";
    html +="<p><div class='clear'></div>";
    if (!image_url){
        html +="<div class='academy_description'>"+address+"</div>";
    }
    if (image_url){
        html +="<div class='balloon_image'><img src="+image_url+" width='100px'/></div>";
	html +="<div class='balloon_description_with_image'>"+address+"</div>";
	pic1= new Image(); pic1.src=image_url;
	images_array.push(pic1);
    }   
    html +="<div class='clear'></div>";
    html += "<div class= 'balloon_click_info' dir='rtl'>";
		
    html += "<div class='balloon_click_directions'><a href='javascript:link();' onclick='nextPoint(1,(-1))' class='no_decor font12'>לתחילת המסלול</a></div>";
    html += "<div class='balloon_click_directions'><a href='javascript:link();' onclick='nextPoint("+gmarkers.length+",(-1))' class='no_decor font12'>היעד הקודם</a></div>";
    html += "<div class='balloon_click_directions'><a href='javascript:link();' onclick='nextPoint("+gmarkers.length+",1)' class='no_decor font12'>היעד הבא</a></div>";
    html += "<div class='balloon_click_directions'><a href='javascript:link();' onclick='nextPoint(gmarkers.length,(-1))' class='no_decor font12'>לסוף המסלול</a></div>";
    html += "<div class='balloon_click_directions'><a href='javascript:moveCamToPointXYZ(" + lat+","+ lng +",7);closeIconWindow("+(gmarkers.length)+")" +
		"'  style='text-decoration:none'>| מרכוז |</a></div>"; 
    html+="</div>";
    html+="</div>";

    return html;
}

function parseChars(text){

    text= text.replace(/&lt;/g, '<'); 
    text= text.replace(/&gt;/g, '>'); 
    text= text.replace(/&quot;/g,'"');
    text= text.replace(/&#039;/g, "'"); 
    text= text.replace(/&039;/g, "'"); 
    text= text.replace(/&#39;/g, "'"); 
    text= text.replace(/&amp;/g,'&'); 


return text; 
}
