﻿/*map functions*/
google.load("maps", "2");
   
// Google map object
var map;
// Array of event markers
var events = [];
var events_BS = [];
var events_SIHS = [];
var events_RI = [];
var events_EP = [];
var events_SE = [];
var events_SI = [];
var events_PAC = [];
var events_RES = [];
var events_Eur = [];
var events_Int = [];
// Array of case study markers
var caseStudies = [];
var caseStudies_BS = [];
var caseStudies_SIHS = [];
var caseStudies_RI = [];
var caseStudies_EP = [];
var caseStudies_SE = [];
var caseStudies_SI = [];
var caseStudies_PAC = [];
var caseStudies_RES = [];
var caseStudies_Eur = [];
var caseStudies_Int = [];
var caseStudies_Europe = [];
var caseStudies_erdf = [];
// case study markers by location
var caseStudies_Bed = [];
var caseStudies_Camb = [];
var caseStudies_CentBed = [];
var caseStudies_Ess = [];
var caseStudies_Hert = [];
var caseStudies_Lut = [];
var caseStudies_Norf = [];
var caseStudies_Pete = [];
var caseStudies_South = [];
var caseStudies_Suff = [];
var caseStudies_Thur = [];
var caseStudies_Region = [];

// Map icon objects
var csIcon;
var evIcon;
// Map boundary objects
var gmapBounds;
// Open info window
var mapInfo;
function displayMap()
{
    if (google.maps.BrowserIsCompatible())
    {
        // Create map object
        map = new google.maps.Map2(document.getElementById("mapContent"));
        map.addControl(new google.maps.LargeMapControl());
        map.setCenter(new google.maps.LatLng( 54.826007999094955,-4.8779296875), 6);
        
        // Create zoom boundary objects
        gmapBounds = new google.maps.LatLngBounds;
        
        // Create case study icon
        csIcon = new google.maps.Icon();
        csIcon.image = "/images/yellow_pin.png";
      //  csIcon.shadow = "/images/pin_shadow.png";
        csIcon.iconSize = new google.maps.Size(16.0, 31.0);
      //  csIcon.shadowSize = new google.maps.Size(32.0, 31.0);
        csIcon.iconAnchor = new google.maps.Point(8.0, 30.0);
        csIcon.infoWindowAnchor = new google.maps.Point(8.0, 30.0);
        
        // Create event icon
        evIcon = new google.maps.Icon();
        evIcon.image = "/images/green_pin.png";
      //  evIcon.shadow = "/images/pin_shadow.png";
        evIcon.iconSize = new google.maps.Size(16.0, 31.0);
     //   evIcon.shadowSize = new google.maps.Size(32.0, 31.0);
        evIcon.iconAnchor = new google.maps.Point(8.0, 30.0);
        evIcon.infoWindowAnchor = new google.maps.Point(8.0, 30.0);
    
        // Add markers to arrays
        addCaseStudies();
        addEvents();
        // Display appropriate markers
        refreshMarkers();
        
    }
}
// Refresh markers based on new user selection
function refreshMarkers()
{
    if (document.getElementById("rad-case") && document.getElementById("rad-case").checked)
    {
        showMarkers("caseStudies");
    }
    else if (document.getElementById("rad-events") && document.getElementById("rad-events").checked)
    {
        showMarkers("events");
    }
    else if (document.getElementById("rad-all"))
    {
        showMarkers("all");
    }
    else
    {
        showMarkers("caseStudies");
    }
}
// Displays all markers on the map
function showMarkers(Filter)
{
    // Clear any existing markers
    clearMarkers();
    
    // Reset the map boundary
    //map.setCenter(new google.maps.LatLng( 54.826007999094955,-4.8779296875), 13);
    map.setCenter(new google.maps.LatLng(52.386125, 0.475537), 8);
    gmapBounds = new google.maps.LatLngBounds;
    var originalBounds = gmapBounds.toString();
    
    //var bNoSubject = noSubjectSelected();
    // Add business support markers
    if (document.getElementById("cbx-business").checked)
    {
        if (Filter == "all" || Filter == "events")
        {
            displayMarkers(events_BS);
        }
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_BS);
        }
    }
    
    // Add regional infrastructure markers
    if (document.getElementById("cbx-regional").checked)
    {
        if (Filter == "all" || Filter == "events")
        {
            displayMarkers(events_RI);
        }
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_RI);
        }
    }
    
    // Add sustainable economy markers
    if (document.getElementById("cbx-sustainable").checked)
    {
        if (Filter == "all" || Filter == "events")
        {
            displayMarkers(events_SE);
        }
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_SE);
        }
    }
    
    // Add Partnerships, Advocacy and Communications markers
    if (document.getElementById("cbx-partner").checked)
    {
        if (Filter == "all" || Filter == "events")
        {
            displayMarkers(events_PAC);
        }
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_PAC);
        }
    }
        
        // case studies by location

    // Add Bedfordshire markers
    if (document.getElementById("bedford").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_Bed);
        }
    }

    // Add Cambridgeshire markers
    if (document.getElementById("cambridgeshire").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_Camb);
        }
    }

    // Add Central bedfordshire markers
    if (document.getElementById("central-bedfordshire").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_CentBed);
        }
    }

    // Add Essex markers
    if (document.getElementById("essex").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_Ess);
        }
    }
    // Add Hertfordshire markers
    if (document.getElementById("hertfordshire").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_Hert);
        }
    }
    // Add Luton markers
    if (document.getElementById("luton").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_Lut);
        }
    }
    // Add Norfolk markers
    if (document.getElementById("norfolk").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_Norf);
        }
    }
    // Add Peterborough markers
    if (document.getElementById("peterborough").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_Pete);
        }
    }
    // Add Southend-on-sea markers
    if (document.getElementById("southend-on-sea").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_South);
        }
    }

    // Add Suffolk markers
    if (document.getElementById("suffolk").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_Suff);
        }
    }
    // Add Thurrock markers
    if (document.getElementById("thurrock").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_Thur);
        }
    }

    // Add region-wide markers
    if (document.getElementById("regionwide").checked)
    {
        if (Filter == "all" || Filter == "caseStudies")
        {
            displayMarkers(caseStudies_Region);
            displayMarkers(caseStudies_Bed);
            displayMarkers(caseStudies_Camb);
            displayMarkers(caseStudies_CentBed);
            displayMarkers(caseStudies_Ess);
            displayMarkers(caseStudies_Hert);
            displayMarkers(caseStudies_Lut);
            displayMarkers(caseStudies_Norf);
            displayMarkers(caseStudies_Pete);
            displayMarkers(caseStudies_South);
            displayMarkers(caseStudies_Suff);
            displayMarkers(caseStudies_Thur);
        }
    }

    // Add european funding markers
//    if (bNoSubject || document.getElementById("euro-funding").checked)
//    {
//        if (Filter == "all" || Filter == "caseStudies")
//        {
//           displayMarkers(caseStudies_Europe);
//        }
//    }


    // Add ERDF funding markers
//    if (bNoSubject || document.getElementById("erdf").checked)
//    {
//        if (Filter == "all" || Filter == "caseStudies")
//        {
//            displayMarkers(caseStudies_erdf);
//        }
//    }


}

    
// Loop through a marker array, add each to the map and extend the bounds to include the marker
function displayMarkers(markerArray)
{
    for (var i = 0; i < markerArray.length; i++)
    {
        map.addOverlay(markerArray[i]);
        gmapBounds.extend(markerArray[i].getLatLng());

    }
zoomToMarkers(markerArray.length);
}



// Sets the map to zoom to the bounds given
function zoomToMarkers(markerArrLength)
{
    map.setZoom(map.getBoundsZoomLevel(gmapBounds));
    map.setCenter(gmapBounds.getCenter());
        if (markerArrLength < 1)
        {map.setZoom(7);}

}
// Clears the map of any markers
function clearMarkers()
{
    map.clearOverlays();
}
// Expands a given boundary area to include the given lat and long plus a little extra
function ExtendBound(Bounds, Lat, Long)
{
    Bounds.extend(new google.maps.LatLng(Lat-6.10, Long-6.10));
    Bounds.extend(new google.maps.LatLng(Lat+6.10, Long+6.10));
}
// Check that none of the subject tick boxes are selected
function noSubjectSelected()
{
    var bNoneTicked = true;
    if (document.getElementById("cbx-business").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("cbx-regional").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("cbx-sustainable").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("cbx-partner").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("bedford").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("cambridgeshire").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("central-bedfordshire").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("essex").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("hertfordshire").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("luton").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("norfolk").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("peterborough").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("southend-on-sea").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("suffolk").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("thurrock").checked)
    {
        bNoneTicked = false;
    }
    if (document.getElementById("regionwide").checked)
    {
        bNoneTicked = false;
    }
  
    //if (document.getElementById("euro-funding").checked)
    //{
      //  bNoneTicked = false;
    //}

//    if (document.getElementById("erdf").checked)
//    {
//        bNoneTicked = false;
//    }

    return bNoneTicked;
}

// Display the info box for a given page ID
function showInfo(id)
{
    hideInfo();
    getInfo();
    mapInfo = document.getElementById('mapinfo' + id);
    mapInfo.style.display = 'inline';
}
// Hide whichever info box is currently being displayed
function hideInfo()
{
    closeInfo();
    if (mapInfo)
    {
        mapInfo.style.display = 'none';
    }
    google.maps.Event.clearListeners(map, "click");
}
/*region landing page*/
function getInfo(){
//document.getElementById('mapinfobg').style.right='4px';
document.getElementById('mapinfobg').style.visibility='visible';
}
function closeInfo(){
//document.getElementById('mapinfobg').style.left='-9999px';
document.getElementById('mapinfobg').style.visibility='hidden';
}
function mapInfoJs(){
document.getElementById('mapinfobg').className="js";
document.getElementById('mapinfobg').style.visibility='hidden';
}
/*case studies landing page*/
function viewMap(){
document.getElementById('map').style.display="block";
/*document.getElementById('map').style.position='relative';
document.getElementById('map').style.left='0px';*/
}
function viewList(){
document.getElementById('map').style.display="none";
/*document.getElementById('map').style.position='absolute';
document.getElementById('map').style.left='-9999px';
document.getElementById('listview').style.position='relative';
document.getElementById('listview').style.top='0px';*/
}
