﻿	function onload1() {
		map=new PMap(document.getElementById("mapholder"));
		var center=new PGeoPoint(39.400400,23.134549);
		if (mapentityinfo!=null) {
		    center=new PGeoPoint(mapentityinfo[4],mapentityinfo[5]);
		}
		var locCoor=null;
		map.setCenter(center, 1);
		if (mapentityinfo!=null) {
		    var mk=new PMarker(center);
		    map.addControl(mk);
		}
		loaddata();
	}
	window.onload=onload1;
	
	var Markers=new Array();
	function loaddata() {
	    var mk;
	    for(var i=0; i<loc.length; i++) {
	        var lc=getLocItemByIndex(i);
	        var chk=document.getElementById("lt_"+lc.LocationTypeID);	        
	        mk=new PMarker(new PGeoPoint(lc.Lat, lc.Lng));
	        if (lc.IconName!='') mk.Icon="FDB/"+lc.IconName;
	        Markers[i]=mk;
	        map.addControl(mk);
	        mk.setVisible(chk.checked);
	        PMapEvent.addEventHandler(mk, "mouseover", new Function("e", "showmarkinfo(e, "+i+");")); 
	        PMapEvent.addEventHandler(mk, "mouseout", new Function("e", "hidemarkinfo(e, "+i+");"));
	        PMapEvent.addEventHandler(mk, "click", new Function("e", "redir(e, "+i+");")); 
	        
	    }
	}
	
	function getLocItemByIndex(index) {
	    var lc=new Object(); var it=loc[index];
	    lc.ID=it[0];lc.Name=it[1];lc.Lat=it[2];lc.Lng=it[3];lc.IconName=it[4];
	    lc.LocationTypeID=it[5];
	    if (lc.LocationTypeID==0) {
	        lc.Duration=it[6];lc.Distance=it[7];lc.VisitorNum=it[8];
	        lc.Rate=it[9];lc.PathRateName=it[10];lc.AltitudeDiff=it[11];
	        lc.CoverTypes=it[12];
	    }
	    return lc;
	}
    
    function showhidetype(obj) {
        var typeid=obj.name.substr(3, obj.name.length-3);
	    for(var i=0; i<loc.length; i++) {
	        var lc=getLocItemByIndex(i);
	        if (lc.LocationTypeID==typeid) {
	            var mk=Markers[i];
	            mk.setVisible(obj.checked);
	        }
	    }
    }
    var Infos;
    var InfoIdx=-1;
    var showtimer=null;
    var hidetimer=null;
    
    function showmarkinfo(e,idx) {
        if (e!=null) e.cancelBubble = true;
        if (InfoIdx!=idx) do_hidemarkinfo();
        clearTimeout(showtimer);
        showtimer=null;
        clearTimeout(hidetimer);
        hidetimer=null;      
          
        showtimer=setTimeout("do_showmarkinfo("+idx+")", 300);
        //do_showmarkinfo(e, idx);
    }
    
    function do_showmarkinfo(idx) {        
        if (hidetimer) return;
        InfoIdx=idx;
        var mk=Markers[idx];
        var pos=PMap_getAbsolutePosition(mk.getDOMObject());
        var inf=document.createElement("div");
        inf.className="markInfo";
        inf.innerHTML=createInfoText(idx);
        inf.style.top=pos.top+20+"px";
        inf.style.left=pos.left+20+"px";
        inf.style.position="absolute";
        inf.style.zIndex=200;
        //PMapEvent.addEventHandler(inf, "mouseover", 
            //new Function ("e", "showmarkinfo(null, "+idx+")"));
        //PMapEvent.addEventHandler(inf, "mouseout", do_hidemarkinfo);
        var bd=document.getElementsByTagName("body")[0];
        
        bd.appendChild(inf);
        Infos=[inf];
		return false;        
    }
    
    function hidemarkinfo(e,idx) {
        if (e!=null) e.cancelBubble = true;
        hidetimer=setTimeout("do_hidemarkinfo()", 50);
    } 
       
    function do_hidemarkinfo() {     
        if (Infos==null) return;
        clearTimeout(showtimer);
        showtimer=null;
        var bd=document.getElementsByTagName("body")[0];
        bd.removeChild(Infos[0]);
        Infos=null;
        return false;
    }
    
    
    function createInfoText(idx) {
        var lc=getLocItemByIndex(idx);
        if (lc.LocationTypeID!=0) return lc.Name;
        var dv=document.createElement("div");
        dv.appendChild(createParam(lblName, lc.Name));
        dv.appendChild(createParam(lblDuration, lc.Duration+ '\''));
        dv.appendChild(createParam(lblDistance, lc.Distance+' m'));
        dv.appendChild(createParam(lblRate, createRateImage(lc.Rate, lc.VisitorNum).innerHTML));
        dv.appendChild(createParam(lblPathRateName, lc.PathRateName));
        dv.appendChild(createParam(lblAltitudeDiff, lc.AltitudeDiff+' m'));
        dv.appendChild(createParam(lblCoverType, lc.CoverTypes));
        //alert(dv.innerHTML);
        return dv.innerHTML;
    }
    
    function createRateImage(rate, votes) {
        var sp=document.createElement("span");
        for(var i=0; i<rate; i++) {
            var img=document.createElement("img");
            img.src="images/0168_star.png";
            img.width="12";
            img.height="12";
            sp.appendChild(img);
        }
        for(var i=5; i>rate; i--) {
            var img=document.createElement("img");
            img.src="images/0169_star2.png";
            img.height="12";
            img.width="12";
            sp.appendChild(img);
        } 
        var sp2=document.createElement("span")
        sp2.innerHTML=votes+" votes";
        sp.appendChild(sp2);  
        return sp; 
    }
    
    function createParam(nm, vl) {
        var p=document.createElement("p");
        p.innerHTML="<strong>"+nm+":  </strong>"+vl;
        return p;
    }
    
    function redir(e, idx) {
        var lc=getLocItemByIndex(idx);
        if (lc.LocationTypeID==0) {
            location.href='path.aspx?id='+lc.ID;
        } else {
            location.href='sight.aspx?id='+lc.ID;
        }
    }
   /* 
  <div> 
  <a href="example_path.htm"><strong>Path Name goes here</strong></a>
  <span id="stars"><img src="../images/0168_star.png" alt="star" width="12" height="12" />
  <img src="../images/0168_star.png" alt="star" width="12" height="12" />
  <img src="../images/0168_star.png" alt="star" width="12" height="12" />
  <img src="../images/0169_star2.png" alt="star" width="12" height="12" />
  <img src="../images/0169_star2.png" alt="star" width="12" height="12" /> 650 votes
  </span>
      <p><strong>Distance:</strong> 10000m</p>
      <p><strong>Time: </strong>01:45'</p>
      <p><strong>Difficulty:</strong> Easy</p>
      <p><strong>Altitude diff. </strong>-200m</p>
      <p><strong>Coverage:</strong> Ground path ~ Stone path ~ Cement road ~ Dirt road</p>
  </div>
  */