﻿//SearchMap Functions - Start
//***************************

//Used to get Regions
function GetRegions()
{
  
    $j.ajax({
        type:"POST",
        url:cc_MapWebService + "GetRegions", 
        data:"{}" ,
        contentType:cc_ContentType,
        dataType:"json",
        success:WriteRegions,
        error:PlotDefaultOnError
    });
    
}

function SearchDatabase(SearchCriteria,chkUk,chkCl,chkAtt,start,count)
{
    var params = {usrErr:"Error performing search",fn:"SearchDatabase",webMethod:'SearchDatabase'};
    $j.ajax({
        type:"POST",
        url:"/caravanclubapps/web services/MapWebService.asmx/SearchDatabase", 
        data:"{SearchCriteria:'" + SearchCriteria + "',chkUk:" + chkUk + ",chkCl:" + chkCl + ",chkAtt:" + chkAtt + ",start:" + start + ",count:" + count + ",ArrivalDate:'" + arrivalDate + "',DepartureDate:'" + departureDate + "'}" ,
        contentType:"application/json;charset=utf-8",
        dataType:"json",
        success:function Sucess(responseText,statusText)
        {
            var searchString = SearchCriteria;
            SearchResults(responseText,searchString);
            MapHelperSession({responseText:responseText,statusText:statusText,webMethod:'SetSessionMapSearch',mapSearchString:SearchCriteria,mapSearchResult:responseText.d,chkUk:chkUk,chkCl:chkCl,chkAtt:chkAtt});
        },
        error:function(responseText, statusText)
        {
           errorFn(responseText, statusText, params);
        }
    });
    
}

//Used to get sites by Search Criteria
//searches region,county,site name
function GetUkSitesByRegion(SearchCiteria)
{
    var params = {usrErr:"Error retrieving sites",fn:"GetUkSitesByRegion",webMethod:'GetUkSitesByRegion'};
    $j.ajax({
        type:"POST",
        url:cc_MapWebService + "GetUkSitesByRegionId", 
        data:"{SearchCriteria:'" + SearchCiteria + "'}" ,
        contentType:cc_ContentType,
        dataType:"json",
        success:function Sucess(responseText,statusText)
        {
            InitialSearch_Plot(responseText,SearchCiteria);
        },
        error:function(responseText, statusText)
        {
           errorFn(responseText, statusText, params);
        }
    });
    
}

function SearchWithLatLon(lat,lon,currentPlace,start,count)
{
    var params = {usrErr:"Error performing search",fn:"SearchWithLatLon",webMethod:'SearchWithLatLon'};
    $j.ajax({
        type:"POST",
        url:cc_MapWebService + "SearchWithLatLon", 
        data:"{lat:" + lat + ","+ "lon:" + lon + ",distance:'50'" + ",ArrivalDate:'" + arrivalDate + "',DepartureDate:'" + departureDate + "',chkUk:" + chkUk.checked + ",chkCl:" + chkCl.checked + ",chkAtt:" + chkAtt.checked + ",start:" + start + ",count:" + count + "}" ,
        contentType:cc_ContentType,
        dataType:"json",
        success:function Sucess(responseText,statusText)
        {
            SearchWithLatLon_Plot(responseText,currentPlace,lat,lon);
            MapHelperSession({responseText:responseText,statusText:statusText,webMethod:'SetSessionMapSearch',mapSearchString:currentPlace,mapSearchResult:responseText.d,chkUk:chkUk.checked,chkCl:chkCl.checked,chkAtt:chkAtt.checked });
            //$j(document).pngFix();
        },
        error:function(responseText, statusText)
        {
           errorFn(responseText, statusText, params);
        }
    });
    
}


function GetSitebySiteId(siteid)
{
    var params = {usrErr:"Error retrieving site",fn:"GetSitebySiteId",webMethod:'GetSiteDetails'};
    $j.ajax({
        type:"POST",
        url: cc_MapWebService + "GetSiteDetails", 
        data:"{siteId:" + siteid + "}" ,
        contentType:cc_ContentType ,
        dataType:"json",
        success:PlotCurrentSite,
        error:function(responseText, statusText)
        {
           errorFn(responseText, statusText, params);
        }
    });
    
}

function GetDetailsById(id, type)
{
    var params = {usrErr:"Error retrieving site",fn:"GetDetailsById",webMethod:'GetDetailsById'};
    $j.ajax({
        type:"POST",
        url: cc_MapWebService + "GetDetailsById", 
        data:"{id:" + id + ", type:'" + type + "'}" ,
        contentType:cc_ContentType ,
        dataType:"json",
        success:PlotCurrentSite,
        error:function(responseText, statusText)
        {
           errorFn(responseText, statusText, params);
        }
    });
    
}




//SearchMap Functions - End
//***************************

//Attractions Functions - start
//***************************

function GetAttractions(lat,lon)
{
    var params = {usrErr:"Error retrieving attraction",fn:"GetAttractions",webMethod:'GetAttractions'};
    $j.ajax({
        type:"POST",
        url:cc_MapWebService + "GetAttractions", 
        data:"{lat:" + lat + ","+ "lon:" + lon + ",distance:'50'}" ,
        contentType:cc_ContentType,
        dataType:"json",
        success:function Sucess(responseText,statusText)
        {
            Attractions_Plot(responseText);
        },
        error:function(responseText, statusText)
        {
           errorFn(responseText, statusText, params);
        }
    });
    
}
function GetAttraction(cc_att_Id)
{
    var params = {usrErr:"Error retrieving attraction",fn:"GetAttraction",webMethod:'GetAttractionDetails'};
     $j.ajax({
        type:"POST",
        url: cc_MapWebService + "GetAttractionDetails", 
        data:"{attractionId:" + cc_att_Id + "}" ,
        contentType:cc_ContentType ,
        dataType:"json",
        success:PlotLocations,
        error:function(responseText, statusText)
        {
           errorFn(responseText, statusText, params);
        }
    });
    
}


//Attractions Functions - End
//***************************



//SiteDetails Map Functions - Start
//*********************************

function GetSiteLocation()
{
    var params = {usrErr:"Error retrieving site location",fn:"GetSiteLocation",webMethod:'GetSiteDetails'};
    $j.ajax({
        type:"POST",
        url: cc_MapWebService + "GetSiteDetails", 
        data:"{siteId:'" + cc_CurrentSiteId + "'}" ,
        contentType:cc_ContentType ,
        dataType:"json",
        success:PlotLocations,
        error:function(responseText, statusText)
        {
           errorFn(responseText, statusText, params);
        }
    });
    
}

function GetNearbyCLSites(lat,lon)
{
    var params = {usrErr:"Error retrieving nearby sites",fn:"GetNearbyCLSites",webMethod:'GetNearbyCLSites'};
    $j.ajax({
        type:"POST",
        url:cc_MapWebService + "GetNearbyCLSites", 
        data:"{lat:" + lat + ","+ "lon:" + lon + ",distance:'50'}" ,
        contentType:cc_ContentType,
        dataType:"json",
        success:PlotNearbySites,
        error:function(responseText, statusText)
        {
           errorFn(responseText, statusText, params);
        }
    });
    
}


function GetNearbySites(lat,lon)
{
    var params = {usrErr:"Error retrieving nearby sites",fn:"GetNearbySites",webMethod:'GetNearbySites'};
    $j.ajax({
        type:"POST",
        url:cc_MapWebService + "GetNearbySites", 
        data:"{lat:" + lat + ","+ "lon:" + lon + ",distance:'50'}" ,
        contentType:cc_ContentType,
        dataType:"json",
        success:PlotNearbySites,
        error:function(responseText, statusText)
        {
           errorFn(responseText, statusText, params);
        }
    });
    
}


//SiteDetails Map Functions - End
//*********************************
function errorFn(responseText, statusText, params)
{
    alert(params.usrErr);
}

function MapHelperSession(params)  
{
    var test = params.webMethod;
    var defaults = {};
    var data = $j.extend(defaults, params);
    var stringData = JSON.stringify(data);//json2 method
    //Call the page method
    $j.ajax(
    {
        type: "POST",
        url: "/CaravanClubApps/Applications/Maps/SearchMap.aspx/" + params.webMethod,
        contentType: "application/json; charset=utf-8",
        data: stringData,
        dataType: "json",
        success: function(responseText, statusText)
        {
           //successFn(responseText, statusText, params);
        },
        error: function(responseText, statusText)
        {
            params = {usrErr:"Error maintaining your map session",fn:"MapHelperSession",webMethod:params.webMethod};
            errorFn(responseText, statusText, params);
        }
    });
    
}
