﻿
var cc_att_Id = "";
var cc_att_Name = "";
var cc_att_lon="";
var cc_att_lat="";
var cc_att_img="";
var cc_att_alt="";
var cc_att_address="";

 function PixelClick(e)
 {
    var x = e.mapX;
    var y = e.mapY;
    pixel = new VEPixel(x, y);
    LL = cc_map.PixelToLatLong(pixel);
    
    try{
    var qs = new Querystring()
    if(qs.Contains("showcoord"))
    {
        if(qs.Request("showcoord").toString().toLowerCase() == "true")
        {
            var div = document.getElementById("latlon");
            div.innerHTML = LL;
        }
    }
    }catch(e){}

 } 
//Get the siteId from URL
function getSiteId()
{
    // Use function from Querystring.js
//    var qs = new Querystring()
//    if(qs.Contains("csid"))
//    {
//        cc_att_Id = qs.Request("csid").toString();
//    }
    var fullURL = parent.document.URL; 
    var qstring = fullURL.substring(fullURL.indexOf('?')+1, fullURL.length) 
    var params = qstring.split('&');
    var params1 = params[0].split('=');
    cc_att_Id = params1[1];
 
}

function GetMap()
{
    try
    {
        getSiteId();
        InitalizeMap();
        AddResetControl();
        GetAttraction(cc_att_Id);
    }
    catch(err)
    {
    }
    
}

function AddResetControl()
{
    var control;
    control = document.createElement("div");                
    control.id = "mapReset";               
    control.style.left = "55px";                
    control.innerHTML = "<a href='javascript:reset();'>Reset</a>";                 
    //cc_map.AddControl(control);
    $j(control).appendTo("#MSVE_dashboardContainer"); 
}  

function reset()
{
     cc_map.Clear();
    GetAttraction(cc_att_Id);
    
}
function PlotNearbySites(result)
{
if (result.d!="")
{
    cc_map.Clear();
    var params = result.d.split(':');
    var ptsarray = new Array();
    for (var i=0; i<params.length; i++)
    {
        var latlon = params[i].split('|');
        if (latlon.length!=0)
        {
            var lat=latlon[0];
            var lon = latlon[1];
            var title = latlon[2];
            var address = latlon[3];
            var siteType = latlon[4];
            var siteId = latlon[5];
            var img = latlon[6];
            if (lat!="" )
            {
            
                ptsarray[i] = new VELatLong(lat,lon);
                if (siteType=="ClubSite")
                {
                    AddPushPinUkSites(lat,lon,title,address,img,siteId);
                }
                else if (siteType=="CL")
                {
                    AddPushPinCLSites(lat,lon,title,address,img,siteId);
                }
                
               
            }
        }
    }
       AddPushPinAttraction(cc_att_lat,cc_att_lon,cc_att_Name,true,cc_att_img,cc_att_alt,cc_att_address);
       ptsarray[ptsarray.length] = new VELatLong(cc_att_lat,cc_att_lon);
       cc_map.SetMapView(ptsarray);   
       
    
 }   
}

function Attractions_Plot(result)
{
    
     if (result.d=="")
    {
        
        // No attractions so what
        
    }
    else
    {
        var params = result.d.split(':;');
        var ptsarray = new Array();
        
        if (params.length!=0)
        {
            cc_map.Clear();
            var sb = new StringBuilder();
            for (var i=0; i<params.length; i++)
            {
                var data = params[i].split('|');
               
                if (data[0]!="")
                {
                    var attractionid=data[0];
                    var date = data[1];
                    var attractionname = data[2];
                    var address1 = data[3];
                    var address2 = data[4];
                    var address3 = data[5];
                    var postcode = data[6];
                    var latitude=data[7];
                    var longitude = data[8];
                    var website = data[9];
                    var telephone = data[10];
                    var prices = data[11];
                    var offer = data[12];
                    var nearestclub = data[13];
                    var description = data[14];
                    var img = data[15];
                    var alt = data[16];
                    
                    if (latitude!="" )
                    {
                        
                        ptsarray[i] = new VELatLong(latitude,longitude);
                        AddPushPinAttractionNearby(latitude,longitude,attractionname,description,attractionid,img,alt,address1+', '+address2+', '+address3+', '+postcode);
                    
                    }
                }
           }
           //
            AddPushPinAttraction(cc_att_lat,cc_att_lon,cc_att_Name,true,cc_att_img,cc_att_alt,cc_att_address);
            ptsarray[ptsarray.length] = new VELatLong(cc_att_lat,cc_att_lon);
            cc_map.SetMapView(ptsarray);   
        }
     }

}

function PlotLocations(result)
{
    //get site details
    var params = result.d.split('|');
    cc_att_Name=params[2];
    cc_att_lat = params[7];
    cc_att_lon = params[8];
    cc_CurrentLat = params[7];
    cc_CurrentLon = params[8];
    cc_att_img = params[15];
    cc_att_alt = params[16];
    cc_att_address = params[3] + ', ' + params[4] + ', ' + params[5] + ', ' + params[6];
    
    AddPushPinAttraction(cc_att_lat,cc_att_lon,cc_att_Name,false,cc_att_img,cc_att_alt,cc_att_address);
    
}

function AddPushPinAttraction(lat,lon,attractionname,selected,img,alt,address)
{
    var latlon = new VELatLong(lat,lon);
    var shape = new VEShape(VEShapeType.Pushpin,latlon);
    var str_classDiv = "atticon";
    var sb = new StringBuilder();
    attractionname = attractionname.replace(/'/, "&#39");
    attractionname = attractionname.replace(/&/, "&amp");
    img = img.replace(/'/, "&#39");
    img = img.replace(/&/, "&amp");
    if(selected)
    {
        str_classDiv += " selected";
    }
    
    shape.SetCustomIcon("<span class='"+ str_classDiv +"'></span>");
    
    //set title for the infobox
    shape.SetTitle(attractionname);
    
    //set the description(remaining details for infobox)
    sb.append("<div>");
    sb.append("<div style='float:left;width:50%;'>");
    sb.append(address);
    sb.append("</div>");
    sb.append("<div style='float:right;width:48%;'>");
    if (img!=""&&img!=undefined)
    {
        sb.append("<img width='100' src='"+img + "' alt='" + alt + "' />");
    }
    sb.append("</div>");
    sb.append("</div>");
    sb.append("<div style='clear:both;'><!-- --></div>");
    sb.append("<br/>");
    sb.append("<div>");
    sb.append("<b>Show on the map:</b>")
    sb.append("<br/>");
    sb.append("<a href='javascript:GetNearbySites(" + lat + "," +lon + ")' >Nearby Club Sites</a><br\>");
    sb.append("<a href='javascript:GetNearbyCLSites(" + lat + "," +lon + ")'>Nearby CLs</a><br\>");
    sb.append("<a href='javascript:GetAttractions(" + lat + "," + lon + ")'>Great Days Out nearby</a><br\>");
    //sb.append("<a href=\"javascript:GetGreatDaysOut(" + lat + "," + lon + ",'" + title + "', '" + location.href + "')\">Great Days Out nearby</a><br\>");
    sb.append("</div>");
    
    shape.SetDescription(sb.toString());
    cc_map.AddShape(shape); 
    cc_map.SetCenterAndZoom(latlon,10);   
}

function GoToRoute(lat,lon,sitename)
{
    var divaddressText = document.getElementById("addressText");
    var txtFrom = document.getElementById("txtFrom");
    var start="";
    var end="";
    var pickup="";
    if (divaddressText.innerText=="Start address:")
    {
        start = txtFrom.value;
        end = sitename;
        pickup = "START";
    }
    else
    {
        start = sitename;
        end = txtFrom.value;
        pickup="END";
    }
        
    window.location="/caravanclubapps/applications/maps/plan-a-route.aspx?start=" + start + "&end=" + end + "&lat=" + lat + "&lon=" + lon + "&pickup=" + pickup;
}
function ShowDirections(fromto)
{
    var divsitedetails = document.getElementById("sitedetails");
    var divdirections = document.getElementById("directions");
    var divlnkText = document.getElementById("lnkText");
    var divaddressText = document.getElementById("addressText");
    divsitedetails.style.display = 'none';
    divdirections.style.display='block';
    
    if (fromto=="TO")
    {
        divaddressText.innerHTML = "Start address:";
        divlnkText.innerHTML="To here - <a href=\"javascript:ShowDirections(\'FROM\')\" >From here</a>";
        
    }
    else
    {
        divaddressText.innerHTML = "End address:";
        divlnkText.innerHTML="<a href=\"javascript:ShowDirections(\'TO\')\" >To here</a> - From here";
    }
}

function ShowSiteDetails()
{
    var divsitedetails = document.getElementById("sitedetails");
    var divdirections = document.getElementById("directions");
    divsitedetails.style.display = 'block';
    divdirections.style.display='none';
}

function AddPushPinAttractionNearby(lat,lon,attractionname,description,attractionid,img,alt,address)
{
    var latlon =new VELatLong(lat,lon);
    var shape = new VEShape(VEShapeType.Pushpin,latlon);    
    var str_classDiv = "atticon";
    var sb = new StringBuilder();
    attractionname = attractionname.replace(/'/, "&#39");
    attractionname = attractionname.replace(/&/, "&amp");
    img = img.replace(/'/, "&#39");
    img = img.replace(/&/, "&amp");
    shape.SetCustomIcon("<span class='"+ str_classDiv +"'></span>");
    
    //set title for the infobox
    shape.SetTitle(attractionname);
    
    //set the description(remaining details for infobox)
     sb.append("<div>");
    sb.append("<div style='float:left;width:50%;'>");
    sb.append(address);
    sb.append("</div>");
    sb.append("<div style='float:right;width:48%;'>");
    if (img!=""&&img!=undefined)
    {
        sb.append("<img width='100' src='"+img + "' alt='" + alt + "' />");
    }
    sb.append("</div>");
    sb.append("</div>");
    sb.append("<div style='clear:both;'><!-- --></div>");
    sb.append("<br/>");
    sb.append("<div>");
    sb.append("<br/>");
    sb.append("<a href='/caravanclubapps/applications/attractions/site details.aspx?attid=" + attractionid + "' >View attraction details</a><br\>");
     sb.append("<br/>");
    sb.append("<br/>");
    
    sb.append("<b>Get directions:</b>");
    sb.append("<br/>");
    sb.append(" <a href=\"javascript:ShowDirections(\'TO\')\">To here</a> - <a href=\"javascript:ShowDirections(\'FROM\')\">From here</a>");
        
    sb.append("</div>");
    
     //directions
    sb.append("<div id='directions' style='display:none;'>");

    
    sb.append("<br/>");
    sb.append("<b>Get directions:</b>");
    sb.append("<br/>");
    sb.append("<br/>");
    sb.append("<div id='lnkText'> </div>");
    sb.append("<br/>");
    sb.append("<div id='addressText'>Start address:</div>");
    sb.append("<input type='text' id='txtFrom'/>");
    sb.append("<br/>");
    sb.append("<br/>");
    sb.append("<input type='button' class='button' onclick='GoToRoute(\"" + lat + "\",\"" + lon  + "\",\"" + attractionname + "\");' value='Go' id='btnRoute'/>");
    sb.append("<br/>");
    sb.append("<br/>");
    
    sb.append("<a href='javascript:ShowSiteDetails()'>back</a>");
    sb.append("</div>");
    
    shape.SetDescription(sb.toString());
    cc_map.AddShape(shape); 
    //cc_map.SetCenterAndZoom(latlon,10);   
}

function AddPushPinUkSites(lat,lon,title,address,img,siteId)
{
    var latlon = new VELatLong(lat,lon);
    var shape = new VEShape(VEShapeType.Pushpin,latlon);
    var str_classDiv = "clubicon";
    var sb = new StringBuilder();
    img = img.replace(/'/, "&#39");
    img = img.replace(/&/, "&amp");
    
    shape.SetCustomIcon("<span class='"+ str_classDiv +"'></span>");
    
    //set title for the infobox
    shape.SetTitle(title);
    
    //set the description(remaining details for infobox)
    sb.append("<div>");
    sb.append("<div style='float:left;width:50%;'>");
    sb.append(address);
    sb.append("</div>");
    sb.append("<div style='float:right;width:48%;'>");
    if (img!=""&&img!=undefined)
    {
    sb.append("<img width='100' src='" + img + "'/>");
    }
    sb.append("</div>");
    sb.append("</div>");
    sb.append("<div style='clear:both;'><!-- --></div>");
    sb.append("<br/>");
    sb.append("<div>");
    sb.append("<br/>");
    sb.append( "<a href='/caravanclubapps/applications/uk-caravan-sites-and-parks/SiteDetails.aspx?csid=" + siteId + "' >View site details</a><br\>" );
    sb.append("</div>");
    shape.SetDescription(sb.toString());
    cc_map.AddShape(shape);    
}
function AddPushPinCLSites(lat,lon,title,address,img,siteId)
{
    var latlon =new VELatLong(lat,lon);
    var shape = new VEShape(VEShapeType.Pushpin,latlon);
    var str_classDiv = "certicon";
    var sb = new StringBuilder();
    img = img.replace(/'/, "&#39");
    img = img.replace(/&/, "&amp");
    
    shape.SetCustomIcon("<span class='"+ str_classDiv +"'></span>");
    
    //set title for the infobox
    shape.SetTitle(title);
    
    //set the description(remaining details for infobox)
    sb.append("<div>");
    sb.append("<div style='float:left;width:50%;'>");
    var loggedin=readCookie("loginhash");
    if (loggedin==null)
    {
        address = "<a class='button_clear' href='"+ escape(cc_MemberLoginUrl) +"' >Please login to view address</a>";
    }
    sb.append(address);
    sb.append("</div>");
    sb.append("<div style='float:right;width:48%;'>");
    if (img!=""&&img!=undefined)
    {
        sb.append("<img width='100' src='" + img + "'/>");
    }
    sb.append("</div>");
    sb.append("</div>");
    sb.append("<div style='clear:both;'><!-- --></div>");
    sb.append("<br/>");
    sb.append("<div>");
    sb.append("<br/>");
    sb.append("<a href='/planning-your-trip/uk-trips/uk-site-search-and-book/certificated-locations/site-detail?Id=" + siteId + "' >View site details</a><br\>");
    sb.append("</div>");
    shape.SetDescription(sb.toString());
    cc_map.AddShape(shape);    
}




function PlotDefaultOnError(result)
{
    alert("error");
}

//read cookie
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
