﻿//<![CDATA[
var cm_map;

var overlayMap; 
var cm_openInfowindow;
var cm_mapMarkers = [];
var cm_mapHTMLS = [];
var cm_b = [];
var cm_z = [];


var boundsOverlay = null;

var rpoint=new Array;

  var infowindow='';
// Change these parameters to customize map
var param_wsId = "od6";
var param_ssKey = "o16162288751915453340.4402783830945175750";
var param_useSidebar = true;
var param_titleColumn = "title";
var param_descriptionColumn = "description";
var param_latColumn = "latitude";
var param_lngColumn = "longitude";

var bounds;

var param_bounColumn = "boun";

var param_rankColumn = "rank";
var param_iconType = "green";
var param_iconOverType = "orange";
var param_imgColumn="img";
var param_idColumn="tid";
var param_zoomColumn="zoom";


var param_DCColumn="DC";
var geocoder;
var bouns;
var  sidebarDIVv='';
var latMAX=0
var latMIN=0
var lngMAX=0
var lngMIN=0 
var shtms
 var myLatlng
  var curID;

var rank_old=0;
var DC_old="";
 
/**
 * Loads map and calls function to load in worksheet data.
 */
function cm_load() { 

document.getElementById("preloader").style.visibility = "visible"

cm_map='';
infowindow='';
//cm_openInfowindow=''
cm_mapMarkers = [];
cm_mapHTMLS = [];
sidebarDIVv='';
shtms='';
curID=''
latMAX=0
latMIN=900
lngMAX=0
lngMIN=900
rank_old=0;
DC_old="";
//if (Tid!='') Tid=parseInt(Tid)

//alert(document.getElementById("sidebarDIV").offsetHeight)
//document.getElementById("sidebarDIV").innerHTML ='';

 myLatlng = new google.maps.LatLng(55.78,94.63);





var overlayMap = new google.maps.Map(document.getElementById('overlay_map'), {
 zoom: 2, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP, disableDefaultUI: true
});




  var myOptions = {
    zoom: 2,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP

	//mapTypeId: google.maps.MapTypeId.TERRAIN


  }
  cm_map = new google.maps.Map(document.getElementById("cm_map"), myOptions);















google.maps.event.addListener(cm_map, 'zoom_changed', function() {
  var newZoom = Math.max(cm_map.getZoom() - 4, 0);



  if (overlayMap.getZoom() != newZoom) overlayMap.setZoom(newZoom);
});
google.maps.event.addListener(overlayMap, 'zoom_changed', function() {
  var newZoom = overlayMap.getZoom() + 4;



// if (cm_map.getZoom() != newZoom) cm_map.setZoom(newZoom);




});

// overlayMap's center stays in sync with map's center 
overlayMap.bindTo('center', cm_map, 'center');

// Set map's properties now that all bindings and listeners are set up.



/**
 * attach the overview map to the main map and set positioning
 */
var overDiv = overlayMap.getDiv();
cm_map.getDiv().appendChild(overDiv);
//overDiv.style.position = "absolute";
overDiv.style.right = "0px";
overDiv.style.bottom = "-33px";
overDiv.style.zIndex = 10;

overDiv.style.width="110px"; 
overDiv.style.height="150px";



google.maps.event.addListener(overlayMap, 'idle', function() {
  overlayMap.getDiv().style.zIndex = 10;

  if (boundsOverlay != null)    boundsOverlay.setMap(null); 


 boundsOverlay = new google.maps.Rectangle({
          'bounds': cm_map.getBounds(),
          'strokeColor': '#4544BB',
          'strokeOpacity': 0.7,
          'strokeWeight': 2.0,
          'fillOpacity': 0.3
        });

if (cm_map.getZoom()>4) boundsOverlay.setMap(overlayMap);






//alert("q");
});




 cm_getJSON();


}







 
/**
 * Function called when marker on the map is clicked.
 * Opens an info window (bubble) above the marker.
 * @param {Number} markerNum Number of marker in global array
 */
function cm_markerClicked(markerNum) {



boun=cm_b[markerNum];
ZOOM=cm_z[markerNum];

//cm_map.setCenter(rpoint[markerNum], zoom); 

  var infowindowOptions = {
    content: cm_mapHTMLS[markerNum]
  }










  var infowindow = new google.maps.InfoWindow(infowindowOptions);
  infowindow.open(cm_map, cm_mapMarkers[markerNum]);
  cm_setInfowindow(infowindow);

//alert(boun+'- cm_markerClicked -'+ZOOM)



if (w!='region1')
{


		if (boun!='')  
		{



path0 = boun.split("),");

path1=path0[0]
path2=path0[1]

path1 = path1.replace("(","")
path1 = path1.replace("(","")
path1 = path1.replace(")","")
path1 = path1.replace(")","")

path11 = path1.split(",");





	 lat11=parseFloat(path11[0])
	 lng11=parseFloat(path11[1])


path2 = path2.replace("(","")
path2 = path2.replace("(","")
path2 = path2.replace(")","")
path2 = path2.replace(")","")

path22 = path2.split(",");



	 lat22=parseFloat(path22[0])
	 lng22=parseFloat(path22[1])




//alert(bouns+' '+lat11+" - "+lng11+" - "+lat22+" - "+lng22)
var point1 = new google.maps.LatLng(lat11,lng11);

bounds1 = new google.maps.LatLngBounds();

bounds1.extend(point1)
var point2 = new google.maps.LatLng(lat22,lng22);


bounds1.extend(point2)


cm_map.panTo(bounds1.getCenter());
cm_map.fitBounds(bounds1);

		}
		else
		{

			if (ZOOM!='')
			
			{ //alert(ZOOM)
cm_map.setZoom(parseInt(ZOOM));
			}
else
			{//alert(ZOOM)
if (cm_map.getZoom() < zom) cm_map.setZoom(zom);
			}


		}

}


//alert(ZOOM)

}
 
/**
 * Function that sorts 2 worksheet rows from JSON feed
 * based on their rank column. Only called if column is defined.
 * @param {rowA} Object Represents row in JSON feed
 * @param {rowB} Object Represents row in JSON feed
 * @return {Number} Difference between row values
 */
function cm_sortRows(rowA, rowB) {
  var rowAValue = parseFloat(rowA["gsx$" + param_rankColumn].$t);
  var rowBValue = parseFloat(rowB["gsx$" + param_rankColumn].$t);
 
  return rowAValue - rowBValue;
}
 
/** 
 * Called when JSON is loaded. Creates sidebar if param_sideBar is true.
 * Sorts rows if param_rankColumn is valid column. Iterates through worksheet rows, 
 * creating marker and sidebar entries for each row.
 * @param {JSON} json Worksheet feed
 */       
function cm_loadMapJSON(json) {
  var usingRank = false;
 
 
 
bounds = new google.maps.LatLngBounds();
 
  if(json.feed.entry[0]["gsx$" + param_rankColumn]) {
    usingRank = true;
  //  json.feed.entry.sort(cm_sortRows);
  }
 cmmarkerClicked=false;

  for (var i = 0; i < json.feed.entry.length-1; i++) {
    var entry = json.feed.entry[i];
    if(entry["gsx$" + param_latColumn]) {
      var lat = parseFloat(entry["gsx$" + param_latColumn].$t);
      var lng = parseFloat(entry["gsx$" + param_lngColumn].$t);





      var point = new google.maps.LatLng(lat,lng);
	  
      var html = '<div class="bmap">';
  //var html ='';
  
   if(entry["gsx$" + param_imgColumn]) {
        html += '<img src="/i/i/' + entry["gsx$"+param_imgColumn].$t;
		
		html += '" border="0" hspace="2" vspace="2" align="left"/>'
	
simg='<img src="/i/g/' + entry["gsx$"+param_imgColumn].$t;

simg += '" width="187" height="140" alt="" border="0" align="left" />'
	
      }
else
{
simg='';

 //html += '<img src="/images/0.gif" style="width: 1px; height: 110px" border="0" align="left"/>'

}

sname = "<strong>" + entry["gsx$"+param_titleColumn].$t 
              + "</strong><br>";

      html += "<strong>" + entry["gsx$"+param_titleColumn].$t 
              + "</strong>";




      var label = entry["gsx$"+param_titleColumn].$t;
var boun = '';
var ZOOM = '';

  boun= entry["gsx$"+param_bounColumn].$t; 
cm_b[i]=boun
  ZOOM= entry["gsx$"+param_zoomColumn].$t;
cm_z[i]=ZOOM

      var rank = 0;
      if(usingRank && entry["gsx$" + param_rankColumn]) {
        rank = parseInt(entry["gsx$"+param_rankColumn].$t);
      }

if (w!='region')
{
html += '<br/>'+ClassifierName[rank];

}
	



     //var DC = "";
      if(entry["gsx$" + param_DCColumn]) {
        DC = entry["gsx$"+param_DCColumn].$t;
      }
	


        ID = parseInt(entry["gsx$"+param_idColumn].$t);

	  
	  
      if(entry["gsx$" + param_descriptionColumn]) {
        html += "<br/><br/>" + entry["gsx$"+param_descriptionColumn].$t;

sd=entry["gsx$"+param_descriptionColumn].$t;

      }
	     if(entry["gsx$" + param_idColumn]) {
//curboun='';



if (Tid==entry["gsx$"+param_idColumn].$t || sid==entry["gsx$"+param_idColumn].$t ) 
{
curID=i;
curboun=boun;
curZOOM=ZOOM;
cmmarkerClicked=true
}
//alert ("curID="+curID)
if (w=='region')
{
	  html += '<br><br><a href="/russia/?id='+entry["gsx$"+param_idColumn].$t +'">'+PODR+' &raquo;</a>'

}
else
{
html += '<div style="display: block; padding: 10px 0px 0px 0px; clear: both;">';
if (w=='search')
{

 	  html += '<div style="float: left;"><a href="/tourism/?sid='+entry["gsx$"+param_idColumn].$t +'&p='+p+'&r='+r+'&o='+o+'">'+PODR+' &raquo;</a></div>'
}else{

if (p==0 || r==0)
{
 	  html += '<div style="float: left;"><a href="/tourism/?sid='+entry["gsx$"+param_idColumn].$t +'&p='+p+'&r='+r+'&o='+o+'">'+PODR+' &raquo;</a></div>'
}
else
{
 	  html += '<div style="float: left;"><a href="/tourism/?id='+entry["gsx$"+param_idColumn].$t +'&p='+p+'&r='+r+'&o='+o+'">'+PODR+' &raquo;</a></div>'

}



}


 if (w!='main')	
{ 
 if ( NO_maps==0)
{
 html += '<div style="float: right;"><a href="javascript:void(0)" onclick="addmain('+entry["gsx$"+param_idColumn].$t+')">'+ADDMP+' &raquo;</a></div>'

}
}

html += '</div>'

	}		}  
	  
      html += "</div>";


shtms += simg+sname+sd+'<br clear="all">';
 if ( NO_maps==0) shtms += '<div class="aa"><a href="#beg" onclick="cm_markerClicked(' + i +')">'+POKZ+' &raquo;</a>&nbsp; &nbsp; &nbsp;|&nbsp; &nbsp; &nbsp;'
shtms += '<a href="/tourism/?sid='+entry["gsx$"+param_idColumn].$t+'">'+PODR+' &raquo;</a>';
 if ( NO_maps==0) shtms += '&nbsp; &nbsp; &nbsp;|&nbsp; &nbsp; &nbsp;<a href="javascript:void(0)" onclick="addmain('+entry["gsx$"+param_idColumn].$t+')">'+ADDMP+' &raquo;</a>';
shtms += '</div><br clear="all"><div class="hrs"></div>'


 
      // create the marker



      var marker = cm_createMarker(cm_map,point,label,html,rank);
      cm_mapMarkers.push(marker);
     cm_mapHTMLS.push(html);


      bounds.extend(point);


    
      if(param_useSidebar == true) {
	  

	 

if (w=='region')
{
if (DC_old!=DC)
{DC_old=DC
sidebarDIVv+=  '<div class="ico2">'+DC+'</div>'
}else{

}

if (Tid==entry["gsx$"+param_idColumn].$t) 
{

sidebarDIVv+=  '<div class="ico'+rank+'"  id="sp' + i +'" style="background: #C6E0C3;"><a href="?id='+ID+'"><img src="/images/ico/ico/'+ico2[rank]+'" border="0" alt="'+ClassifierName[rank]+'" align="left"/>'+label+'</a></div>'


}
else
{
sidebarDIVv+=  '<div class="ico'+rank+'"  id="sp' + i +'"><a href="?id='+ID+'" onmouseover="sp(' + i +',1)" onmouseout="sp(' + i +',0)"><img src="/images/ico/ico/'+ico2[rank]+'" border="0" alt="'+ClassifierName[rank]+'" align="left"/>'+label+'</a></div>'

}

}else{

if (w=='search' && q!='')
{
}
else
{

if (rank!=rank_old)
		{
if (ico2[rank]!='')
			{
sidebarDIVv+=  '<div class="ico2"><img src="/images/ico/ico/'+ico2[rank]+'" border="0" align="left"/>'+ClassifierName[rank]+'</div>'
			}else{
sidebarDIVv+=  '<div class="ico2"><img src="/images/0.gif"  border="0" align="left"/>'+ClassifierName[rank]+'</div>'

		}
rank_old=rank
}
	}

if (Tid==entry["gsx$"+param_idColumn].$t) 
{
	sidebarDIVv+=  '<div class="sppA" id="sp' + i +'"><a href="javascript:cm_markerClicked(' + i +')">'+label+'</a></div>'

}
else
{
	sidebarDIVv+=  '<div class="spp" id="sp' + i +'"><a href="javascript:cm_markerClicked(' + i +')" onmouseover="sp(' + i +',1)" onmouseout="sp(' + i +',0)">'+label+'</a></div>'
}
	
}

  

      } 
    }
  }










 var entry = json.feed.entry[i];
    if(entry["gsx$" + param_latColumn]) {
pageall=entry["gsx$"+param_idColumn].$t
}




if (i!=0)
{
pageallhtm=''
if (pageall!=1)
{

if (page!='') page=parseInt(page)
if (pageall!='') pageall=parseInt(pageall)
pageallhtm='<div class="aa">'


for (var i = 1; i < pageall+1; i++) {

if (i==page)
{
pageallhtm=pageallhtm +'<b>'+i+'</b> | '
}else{
pageallhtm=pageallhtm+'<a href="/search/?q='+q+'&page='+i+'">'+i+'</a> | '


}


}
}

pageallhtm=pageallhtm+'</div>'
shtms=shtms+pageallhtm;

if (document.getElementById("shtms")) document.getElementById("shtms").innerHTML =shtms;

if (w!='title')
	{

if (i==1)
		{

if (ZOOM!='') 
		{

//alert (i+' - '+ZOOM) 

		cm_map.setZoom(parseInt(ZOOM));
		} 
else 
		{
cm_map.setZoom(zom);
		}

	}	
	else
	{
if (RegionZoom=='')
{
cm_map.fitBounds(bounds);}
else
{cm_map.setZoom(parseInt(RegionZoom))}
	}

cm_map.panTo(bounds.getCenter());

}
else
{

}
}




if (w!='title')
{

if (document.getElementById("newstxt"))
{
document.getElementById("newstxt").innerHTML ='';
}
if (i==0) {
if (page!='') sidebarDIVv='<br><br><Center>'+POISK+'<br>'+POISK1+'</Center>'




//document.getElementById("start_map").style.visibility = "visible"

//script.setAttribute('src', '/js/data0.asp');


if (document.getElementById("shtms"))
{

document.getElementById("shtms").innerHTML =sidebarDIVv;
}
}

if (w!='region') document.getElementById("sidebarDIV").innerHTML =sidebarDIVv;
document.getElementById("sidebarDIV").style.display="block";
document.getElementById("sidebarDIV").style.visibility = "visible";
}

//alert('curID= '+curID+' - Tid= '+Tid)

if (cmmarkerClicked) 

{

cm_markerClicked(curID)


}


document.getElementById("preloader").style.visibility = "hidden"
document.getElementById("overlay_map").style.visibility="visible";
}
 
function cm_setInfowindow(newInfowindow) {
  if (cm_openInfowindow != undefined) {
    cm_openInfowindow.close();
  }
 
  cm_openInfowindow = newInfowindow;
//map.panTo(new myLatlng(37.4569, -122.1569));

}
 
/**
 * Creates marker with ranked Icon or blank icon,
 * depending if rank is defined. Assigns onclick function.
 * @param {GLatLng} point Point to create marker at
 * @param {String} title Tooltip title to display for marker
 * @param {String} html HTML to display in InfoWindow
 * @param {Number} rank Number rank of marker, used in creating icon
 * @return {GMarker} Marker created
 */
function cm_createMarker(map, latlng, title, html, rank) {
//alert (31)
if (rank=="31")
{
  var iconSize = new google.maps.Size(46, 35);
  var iconShadowSize = new google.maps.Size(46, 35);
  var iconHotSpotOffset = new google.maps.Point(3, 35); // Should this be (9, 34)?
  var iconPosition = new google.maps.Point(0, 0);
  var infoWindowAnchor = new google.maps.Point(9, 2);
  var infoShadowAnchor = new google.maps.Point(18, 25);

}

else if (rank=="100")
{


  var iconSize = new google.maps.Size(40, 49);
  var iconShadowSize = new google.maps.Size(40, 49);
  var iconHotSpotOffset = new google.maps.Point(19, 50); // Should this be (9, 34)?
  var iconPosition = new google.maps.Point(0, 0);
  var infoWindowAnchor = new google.maps.Point(9, 2);
  var infoShadowAnchor = new google.maps.Point(18, 25);
 }

else if (rank=="32")
{


  var iconSize = new google.maps.Size(33, 27);
  var iconShadowSize = new google.maps.Size(33, 27);
  var iconHotSpotOffset = new google.maps.Point(10, 27); // Should this be (9, 34)?
  var iconPosition = new google.maps.Point(0, 0);
  var infoWindowAnchor = new google.maps.Point(9, 2);
  var infoShadowAnchor = new google.maps.Point(18, 25);
 }


else
{


  var iconSize = new google.maps.Size(52, 50);
  var iconShadowSize = new google.maps.Size(52, 50);
  var iconHotSpotOffset = new google.maps.Point(19, 50); // Should this be (9, 34)?
  var iconPosition = new google.maps.Point(0, 0);
  var infoWindowAnchor = new google.maps.Point(9, 2);
  var infoShadowAnchor = new google.maps.Point(18, 25);
 }



  var iconShadowUrl = "/images/ico/ten/"+ten[rank];
  var iconImageUrl;
  var iconImageOverUrl;
  var iconImageOutUrl;
 //alert (rank)
iconImageOutUrl = "/images/ico/"+ico[rank];
iconImageOverUrl = "/images/ico/"+ico[rank];
iconImageUrl = iconImageOutUrl;

 
 

 
  var markerShadow =
      new google.maps.MarkerImage(iconShadowUrl, iconShadowSize,
                                 iconPosition, iconHotSpotOffset);
 
  var markerImage =
      new google.maps.MarkerImage(iconImageUrl, iconSize,
                                  iconPosition, iconHotSpotOffset);
 
  var markerImageOver =
      new google.maps.MarkerImage(iconImageOverUrl, iconSize,
                                  iconPosition, iconHotSpotOffset);
 
  var markerImageOut =
      new google.maps.MarkerImage(iconImageOutUrl, iconSize,
                                  iconPosition, iconHotSpotOffset);
 
  var markerOptions = {
    title: title,
    icon: markerImage,
    shadow: markerShadow,
    position: latlng,
    map: map
  }
 
  var marker = new google.maps.Marker(markerOptions);
 

if (w!='title')
{


  google.maps.event.addListener(marker, "click", function() {
    var infowindowOptions = {
      content: html
    }



   infowindow = new google.maps.InfoWindow(infowindowOptions);
    cm_setInfowindow(infowindow);
    infowindow.open(map, marker);
    marker.setIcon(markerImageOut);
  });
  google.maps.event.addListener(marker, "mouseover", function() {
    marker.setIcon(markerImageOver);
  });
  google.maps.event.addListener(marker, "mouseout", function() {
    marker.setIcon(markerImageOut);
  });
 
}

  return marker;
}
 
/**
 * Creates a script tag in the page that loads in the 
 * JSON feed for the specified key/ID. 
 * Once loaded, it calls cm_loadMapJSON.
 */
function cm_getJSON() {
 
src= '';
  var script = document.createElement('script');

document.getElementById("start_map").style.visibility = "hidden"




if (w=='search')
{

if (q!='1')
{
vS=''

 for(i=0;i<TitleVid+1;i++) 
{

if (document.getElementById('rsClas'+i))
{

if (document.getElementById('rsClas'+i).className=='chboxS') vS=vS+i+', '

}
}





src=  '/js/data.asp?vS='+vS+'&regS='+regS+'&q='+q+'&w='+w+'&page='+page;

}else
{
document.getElementById("preloader").style.visibility = "hidden"
document.getElementById("overlay_map").style.visibility="visible";
}
}

else if (w=='region')
{
if (Tid!='') TTid=Tid
if (sid!='') TTid=sid
 src=  '/js/data.asp?sid='+TTid+'&w='+w


}

else if (w=='main')
{

 src=  '/js/data.asp?w='+w

//document.getElementById("start_map").style.visibility = "hidden"
}





else if (sid!='')
{src= '/js/data.asp?sid='+sid+'&w='+w;


if (document.getElementById('bal1')) document.getElementById('bal1').style.visibility='hidden'; 
if (document.getElementById('bal2')) document.getElementById('bal2').style.visibility='hidden'; 

}


else if (w=='title')
{

document.getElementById("start_map").style.visibility = "visible"
document.getElementById("preloader").style.visibility = "hidden"

  document.getElementById("bal1").style.visibility = "visible";
  document.getElementById("bal2").style.visibility = "visible";


}




else if (w=='data')
{
d=hidData
src=  '/js/data.asp?p='+p+'&o='+o+'&r='+r+'&d='+d+'&top='+t+'&w='+w;

}

else
{
src= '/js/data.asp?p='+p+'&o='+o+'&r='+r+'&top='+t+'&w='+w;
}



script.setAttribute('src', src);
  script.setAttribute('id', 'jsonScript');
  script.setAttribute('type', 'text/javascript');
  document.documentElement.firstChild.appendChild(script);
}
 
 
 
//]]>
 
