﻿var geocoder;
var map;
var infowindow = new google.maps.InfoWindow();
markersArray = [];

function initCellLocator() {
    initialize();
    $('.input-refine').bind('click', function () {
        setupPlots();
    });
}

function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(43.767809, -79.337769);
    var myOptions = {
        zoom: 10,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    setupPlots();
}

function addMarker(fID, fAddress, fGender) {
    fArray1 = fAddress.split(', ');
    fLat = fArray1[0];
    fLng = fArray1[1];
    fPosition = new google.maps.LatLng(fLat, fLng);

    blueIcon = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
    pinkIcon = "http://www.google.com/intl/en_us/mapfiles/ms/micons/pink-dot.png";
    yellowIcon = "http://www.google.com/intl/en_us/mapfiles/ms/micons/yellow-dot.png";

    if (fGender == 'Male') {
        fIcon = blueIcon;
    } else if (fGender == 'Female') {
        fIcon = pinkIcon;
    } else {
        fIcon = yellowIcon;
    }

    var marker = new google.maps.Marker({
        map: map,
        animation: google.maps.Animation.DROP,
        position: fPosition,
        icon: fIcon
    });
    google.maps.event.addListener(marker, 'click', function () {
        $.post(window.remoteURL + 'location-info&linkid=' + fID, {}, function (data) {
            infowindow.content = data;
            infowindow.open(map, marker);
        });
    });

    markersArray.push(marker);
}

function setupPlots() {
    processPlots();
}

function processPlots() {
    clearMarkers();
    fRefinedGender = getRefineGender();
    fRefinedDay = getRefineDay();
    fArray = window.locations.split('|');
    for (i = 0; i < fArray.length; i++) {
        fItem = fArray[i];
        fItemArray = fItem.split(':');
        fID = fItemArray[0];
        fAddress = fItemArray[1];
        fGender = fItemArray[2];
        fDay = fItemArray[3];

        fStatus = true;
        if (fRefinedGender != '' && fGender != fRefinedGender) {
            fStatus = false;
        }

        if (fRefinedDay != '' && fDay != fRefinedDay) {
            fStatus = false;
        }

        if (fStatus) {
            addMarker(fID, fAddress, fGender);
        }
    }
}

function clearMarkers() {
    if (markersArray) {
        for (i in markersArray) {
            markersArray[i].setMap(null);
        }
    }
}


function updateMarkers() {
    fGender = getRefineGender();
    fDay = getRefineDay();
}

function getRefineGender() {
    fVal = $('.input-gender:checked').val();
    return fVal;
}

function getRefineDay() {
    fVal = $('.input-day:checked').val();
    return fVal;
}

