﻿	var address;
	var geo = new GClientGeocoder();   
	var publisherID = 'ca-pub-8490533402298746';	
	var mgr;
	var options;
	var optionsRest;
	var gmarker = [];
	var tmpMarker = null;
	var search_marker = null;
	var cat;
	var ArOpen = [];
function showPanoData(panoData) {
      if (panoData.code != 200) {
        return;
      }
      var displayString = [
        "Panorama ID: " + panoData.location.panoId,
        "LatLng: " + panoData.location.latlng,
        "Copyright: " + panoData.copyright,
        "Description: " + panoData.location.description,
        "Next Pano ID: " + panoData.links[0].panoId
      ].join("<br/>");
      //map.openInfoWindowHtml(panoData.location.latlng, displayString);
 
      myPano.setLocationAndPOV(panoData.location.latlng);
    }
    
    
function handleNoFlash(errorCode) {
      if (errorCode == 603) {
        //alert("Error: Flash doesn't appear to be supported by your browser");
		document.getElementById("pano").style.height = "100px";
        return;
      }
    }

    function showRest(){
		 if(document.getElementById("cBoxRest").checked){
			show(cat);
			}
		else{
			hide(cat);}
   } 
   
   function cOpen(cat){
		if(ArOpen != null){
			if(ArOpen.length > 0){
				for(var i=0;i<ArOpen.length;i++){
					if(ArOpen[i] == cat){
						return true;
					}
				}
			
			}
		}
		return false;
   }
	
function getRestr(obj){
	if(cat != ""){
		hide(cat);
	}
	//map.clearOverlays();
	cat = obj.options[obj.selectedIndex].value;
	if(!cOpen(cat)){
		GDownloadUrl("Xml/"+obj.options[obj.selectedIndex].value+".xml", loadRestr);
		ArOpen.push(cat);
	}else{
		show(cat);
	}

} 
function loadRestr(data, responseCode) {
  if(responseCode == 200) {
  
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");

    for (var q = 0; q < markers.length; q++) {
      var point = new GLatLng(parseFloat(markers[q].getAttribute("lat")),
                              parseFloat(markers[q].getAttribute("lng")));

	  var title = markers[q].getAttribute("title");
	  var adress = markers[q].getAttribute("adr");
	  var link = markers[q].getAttribute("web");
	  var tel = markers[q].getAttribute("tel");
	  var fax = markers[q].getAttribute("fax");
	  var metro = markers[q].getAttribute("metro");
	  optionsRest.title = title;
	  var marker;
	  var txt = "<div style='height:120px;'>";
	  if(title != ""){
	  txt += "<b>Ресторан:</b> "+title+"<br/>";
	  }
	  if(adress != ""){
		txt += "<b>Адрес: </b>"+adress+"<br/>";
	  }
	  if(metro != ""){
		txt += "<b>Метро:</b>"+metro+"<br />";
	  }
	  if(tel != ""){
		txt += "<b>Телефон:</b>"+tel+"<br />";
	  }
	  if(fax != ""){
		txt += "<b>Fax:</b>"+fax+"<br />";
	  }
	  if(link != ""){
		txt += "<b>Web: </b><a href=\""+link+"\">сайт</a><br/>";
	  }
		txt += "</div>";
	  
	  marker = createTabbedMarker(point,txt,"","Инфо","",optionsRest);
	  marker.cat = cat;
	  gmarker.push(marker);
      map.addOverlay(marker);
	  show(cat);
	  
    }
  } else if(responseCode == -1) {
    alert("Data request timed out. Please try later.");
  } else { 
//    alert("Request resulted in error. Check XML file is retrievable.");
  }
}


      function show(tmpcat) {
        for (var i=0; i<gmarker.length; i++) {
          if (gmarker[i].cat == tmpcat) {
            gmarker[i].show();
          }
        }
        // == check the checkbox ==
		if(tmpcat == 1){
			document.getElementById("cBox").checked = true;
		}else if(tmpcat == cat){
			document.getElementById("cBoxRest").checked = true;
		}
      }
      function hide(tmpcat) {	 
        for (var i=0; i<gmarker.length; i++) {
          if (gmarker[i].cat == tmpcat) {
            gmarker[i].hide();
          }
        }
        // == check the checkbox ==
		if(tmpcat == 1){
			document.getElementById("cBox").checked = false;
		}else if(tmpcat == cat){
			document.getElementById("cBoxRest").checked = false;
		}
      }

	  function createTabbedMarker(point,html1,html2,label1,label2,newoptions) {
			var new_marker = new GMarker(point,newoptions);
			GEvent.addListener(new_marker, "click", function() {
			new_marker.openInfoWindowTabsHtml([new GInfoWindowTab(label1,html1)]);			
			});
			
			

			
return new_marker;
}
	  
	  
function loadHotels(data, responseCode) {
  if(responseCode == 200) {
  
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");

    for (var q = 0; q < markers.length; q++) {
      var point = new GLatLng(parseFloat(markers[q].getAttribute("lat")),
                              parseFloat(markers[q].getAttribute("lng")));
	  var foto = markers[q].getAttribute("foto");
	  var title = markers[q].getAttribute("title");
	   
	  var adress = markers[q].getAttribute("addres");
	  var stars = markers[q].getAttribute("stars");
	  var link = markers[q].getAttribute("link");
	  var city = markers[q].getAttribute("city");
	  var country = markers[q].getAttribute("country");
		 options.title = title;
	  var marker;
	  var strStars;
	  strStars = "";
	  for(var j=0;j < stars;j++){
		strStars += "<img src='http://slktour.ru/img/star.gif'>";
	  }
	  var txt = "<div style='height:120px;'><b>Город:</b> "+country+", "+city+"<br/><b>Гостиница: </b>"+title+" "+strStars+"<br/><b>Адрес: </b>"+adress+"<br/>";
	  if(foto != ""){
		txt += "<b><table><tr><td colspan=2><b><a href='http://slktour.ru/"+link+"' style='font-size:12px;' target='_blanck'><u>ПОДРОБНЕЕ</u></a></b>&nbsp;&nbsp;&nbsp;<b><a href='http://slktour.ru/"+link+"#otzyv' style='font-size:12px;' target='_blanck'><u>ОТЗЫВЫ</u></a></b>&nbsp;&nbsp;&nbsp;<b><a href='http://slktour.ru/"+link+"#otzyv' style='font-size:12px;' target='_blanck'><u>ДОБАВИТЬ ОТЗЫВ</u></a></b>		</td></tr></table><br/><br/></div>";
	  }else{
		txt += "</div>";
	  }
	  
	  marker = createTabbedMarker(point,txt,"","Инфо","",options);
	  
	  marker.cat =1;
	  gmarker.push(marker);
      map.addOverlay(marker);
	  show(1);
	  
    }
  } else if(responseCode == -1) {
    alert("Data request timed out. Please try later.");
  } else { 
//    alert("Request resulted in error. Check XML file is retrievable.");
  }
}
   function showHotels(){
		 if(document.getElementById("cBox").checked){
			show(1);}
		else{
			hide(1);}
   }
   
function getCity(obj){
	var city = document.getElementById('search');
	city.value = "Finland, "+obj.options[obj.selectedIndex].text;
	showAddress();
} 

function showAddress() {
        var search = document.getElementById("search").value;

        geo.getLocations(search, function (result)
          { 
            // If that was successful

            if (result.Status.code == G_GEO_SUCCESS) {

              // How many resuts were found

              document.getElementById("message").innerHTML = "<b>Найдено " +result.Placemark.length +" соответствие</b>";

              // Loop through the results, placing markers

              for (var i=0; i<result.Placemark.length; i++) {

                var p = result.Placemark[i].Point.coordinates;
			  if(search_marker != null){
					map.removeOverlay(search_marker);
				}
                search_marker = new GMarker(new GLatLng(p[1],p[0]));
				myPano.setLocationAndPOV(new GLatLng(p[1],p[0]));
                document.getElementById("message").innerHTML += "<br> <div style='font-size:13px;font-weight:800;font-family:Arial;text-align:left;'>"+(i+1)+": "+ result.Placemark[i].address +"<br><div style='padding-left:25px;font-size:12px;font-weight:200;font-family:Arial;text-align:left;'> Координаты: долгота/широта - "+ search_marker.getPoint()+"</div></div>";

                map.addOverlay(search_marker);

              }
              // centre the map on the first result
              var p = result.Placemark[0].Point.coordinates;
              map.setCenter(new GLatLng(p[1],p[0]),14);
            }
            // ====== Decode the error status ======
            else {
              var reason="Code "+result.Status.code;
			  var reasons=[];
			  reasons[G_GEO_SUCCESS]            = "Удачно";
			  reasons[G_GEO_MISSING_ADDRESS]    = "Кривой адрес: Введенный вами адрес ошибочен или не точен.";
			  reasons[G_GEO_UNKNOWN_ADDRESS]    = "Неизвестный адрес:  Не могу найти указанный Вами адрес, проверьте написание адреса.";
			  reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Не показываемый адрес:  Введенный Вами запрещен к показу по причинам безопастности или контрактным обязательствам.";
			  reasons[G_GEO_BAD_KEY]            = "Неверный ключ: Апи функции не разрешены для этого адреса, получите правильный ключ.";
			  reasons[G_GEO_TOO_MANY_QUERIES]   = "Слишком много запросов: Количество показов карты для этого сайта на сегодня исчерпано.";
			  reasons[G_GEO_SERVER_ERROR]       = "Ошибка: Невозможно обработать запрос, приносим извинения за неудобства.";
	  
              if (reasons[result.Status.code]) {
                reason = reasons[result.Status.code]
              } 
              alert('Could not find "'+search+ '" ' + reason);
            }
          }
        );
}

function getAddress(overlay, latlng) {
      if (latlng != null) {
        address = latlng;
        geo.getLocations(latlng, showAddress2);
	  }
    }

      // ====== Geocoding ======
function showAddress2(response) {
      if(tmpMarker != null){
			map.removeOverlay(tmpMarker);
		}
		
      if (!response || response.Status.code != 200) {
        alert("Status Code:" + response.Status.code);
      } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
        tmpMarker = new GMarker(point);
		map.addOverlay(tmpMarker);
        tmpMarker.openInfoWindowHtml(
        '<b>Адрес:</b> ' + place.address + '<br>' +
        '<b>Страна:</b> ' + place.AddressDetails.Country.CountryNameCode) + '<br/><br/>';
	
	 
			
      }
}


	  

 
    

    
        








