﻿var lat = 0;
var lng = 0;
var latlng = new google.maps.LatLng(51.943672, 5.652653);
var mapzoom = 7;
var map;
var GetMarkersTimer;
var markersArray = [];
var bezigmetophalen = false;
var mapsoort = "";
var mapcategorie = "";
var done = false;

var Lsoort = "";
var Lgeslacht = "";
var Lgeaardheid = "";
var leeftijdvan = "18";
var leeftijdtot = "110";
var metfoto = false;
var nuonline = false;

var GetBigItem = true;


jQuery(document).ready(function() {
SetMapVars();

if (lat == 0 && lng == 0) {
        if (geo_position_js.init()) {
            geo_position_js.getCurrentPosition(geo_success, geo_error);
        }
        else {
            latlng = new google.maps.LatLng(51.943672, 5.652653);
            InitMap();
        }

    }
    else {
        //latlng = new google.maps.LatLng(51.943672, 5.652653);
        InitMap();

    }

InitStars();

});

function geo_success(p) {
   
    mapzoom = 14;
    latlng = new google.maps.LatLng(p.coords.latitude, p.coords.longitude);
    InitMap();
}
function geo_error() {
    latlng = new google.maps.LatLng(51.943672, 5.652653);
    mapzoom = 7;
    InitMap();
}


function InitStars() {
    //alert('stars');
    jQuery(".star").mouseover(function() { var span = jQuery(this).parent("span"); var newRating = jQuery(this).attr("value"); setRating(span, newRating); });
    jQuery(".star").mouseout(function() { var span = jQuery(this).parent("span"); var rating = span.attr("rating"); setRating(span, rating); });
    function setRating(span, rating) { span.find('img').each(function() { var value = parseFloat(jQuery(this).attr("value")); var imgSrc = jQuery(this).attr("src"); if (value <= rating) jQuery(this).attr("src", imgSrc.replace("-off.gif", "-on.gif")); else jQuery(this).attr("src", imgSrc.replace("-on.gif", "-off.gif")); }); }
    jQuery(".star").click(function() { var span = jQuery(this).parent("span"); var newRating = jQuery(this).attr("value"); var postID = span.attr("post"); var cijfer = jQuery("#votecijfer"); var count = jQuery("#votecount"); jQuery.post("/ajax/SetRating", { id: postID, rating: newRating }, function(obj) { if (obj.Success) { cijfer.html(obj.Result.Rating * 2); count.html(obj.Result.Raters);  span.attr("rating", obj.Result.Rating); setRating(span, obj.Result.Rating); jQuery("#stemresult").html("Bedankt voor je stem!"); } else { alert(obj.Message); } }); });

}

function InitMap() {
    
    var myOptions = { zoom: mapzoom, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControl: false };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    google.maps.event.addListener(map, 'idle', function(event) {
        // fires when movement has stopped
        GetMarkersTimer = setTimeout('GetMarkers()', 500);
    });
    google.maps.event.addListener(map, 'dragstart', function(event) {
        // fires when movement has started
        clearTimeout(GetMarkersTimer);
    });
    var pos = jQuery("#map_canvas").position();
    jQuery("#imgloading").css("left", pos.left + 165);
    jQuery("#imgloading").css("top", pos.top + 200);

    jQuery("#imgloading").hide();
    GetPreMarkers();
}

function GetMarkers() {
    if (done == true) {
        clearTimeout(GetMarkersTimer);
        var bounds = map.getBounds();
        var sw = bounds.getSouthWest();
        var ne = bounds.getNorthEast();

        var lat1 = sw.lat();
        var long1 = sw.lng();
        var lat2 = ne.lat();
        var long2 = ne.lng();
        var zoom = map.getZoom();
        if (bezigmetophalen == false) {
            if (Lgeslacht != "" && Lgeaardheid != "" && Lsoort != "") {
                bezigmetophalen = true;
                jQuery("#imgloading").show();
                var url = "/ajax/getmarkers";
                jQuery.ajax({ async: true, url: url, data: { lat1: lat1, lat2: lat2, long1: long1, long2: long2, Lsoort: Lsoort, Lgeslacht: Lgeslacht, Lgeaardheid: Lgeaardheid, leeftijdvan: leeftijdvan, leeftijdtot: leeftijdtot, metfoto:metfoto,nuonline:nuonline }, success: function(data) { GetMarkersResult(data); }, error: function(xhr, ajaxOption, thrownError) { bezigmetophalen = false; alert('Er gaat iets fout, probeer het opnieuw'); }, type: 'POST' });
            }
            else {
                jQuery("#aantaltext").html('0 SexTweets gevonden.');
                deleteOverlays();
            }
        }
    }
    else {
        done = true;
    }
}






function GetMarkersResult(data) {
    bezigmetophalen = false;
    jQuery("#imgloading").hide();
    if (data.markers != null && data.markers.length > 0) {
        if (data.selected < data.total) {
            jQuery("#aantaltext").html(data.total + ' profielen gevonden. ' + data.selected + ' profielen worden getoond.');
        }
        else {
            jQuery("#aantaltext").html('Alle ' + data.total + ' gevonden profielen worden getoond.');
        }
        deleteOverlays();
        for (var i = 0; i < data.markers.length; i++) {
            AddList(data.markers[i].latitude, data.markers[i].longitude, data.markers[i].tocid, data.markers[i].icon, data.markers[i].titel);
        }
    }
    else if (data != null )
    {
        jQuery("#aantaltext").html('0 profielen gevonden.');
        deleteOverlays();
    }
}



function createMarker(point, name, icon, tocid) {
    var mk = new google.maps.Marker({
        position: point,
        title: name,
        icon: icon
    });
    google.maps.event.addListener(mk, 'click', function() {
        GetAdvDetail(tocid);
    });

    return mk;
}
function GetAdvDetail(tocid) {
    if (GetBigItem) {
        jQuery.ajax({ async: true, url: "/Ajax/GetBigItem/", data: { id: tocid },
            success: function(data) {
                jQuery("#content").html(data);
                InitStars();
                gapi.plusone.go();
            }
        , error: function(xhr, ajaxOption, thrownError) { alert(xhr.responseText); },

            type: 'POST'
        });
    }
    else {

        jQuery.ajax({ async: true, url: "/Ajax/GetBigItemSmall/", data: { id: tocid },
            success: function(data) {
            jQuery("#ajaxsextweet").html(data);
            InitStars();
            }
        , error: function(xhr, ajaxOption, thrownError) { alert(xhr.responseText); },

            type: 'POST'
        });
    }
}



function AddList(lat, lng, tocid, icon, title) {

    point = new google.maps.LatLng(lat, lng);
    marker = createMarker(point, title, icon, tocid);
    markersArray.push(marker);
    marker.setMap(map);

    // jQuery("#map_lijst").append('<div class="lijst"><a href="#" onclick="javascript:GetAdvDetail(' + tocid + '); return false;"><img src="' + icon + '" height="15px" />' + title + '</a></div>');
}

function deleteOverlays() {
    jQuery("#map_lijst").html('');
    if (markersArray) {
        for (var i = 0; i < markersArray.length; i++) {
            markersArray[i].setMap(null);
        }
        markersArray.length = 0;

    }
}

function UpdateZoekMarkers() {
    Lsoort = "";
    Lgeslacht = "";
    Lgeaardheid = "";
    $('#Advsoorten:checked').each(function() {
        if (Lsoort != "") {
            Lsoort = Lsoort + ",";
        }
        Lsoort = Lsoort + $(this).val();
    });
    $('#geslacht:checked').each(function() {
        if (Lgeslacht != "") {
            Lgeslacht = Lgeslacht + ",";
        }
        Lgeslacht = Lgeslacht + $(this).val();
    });
    $('#geaardheid:checked').each(function() {
        if (Lgeaardheid!= "") {
            Lgeaardheid = Lgeaardheid + ",";
        }
        Lgeaardheid = Lgeaardheid + $(this).val();
    });
    leeftijdvan = jQuery('#leeftijdvan').val();
    leeftijdtot = jQuery('#leeftijdtot').val();
    if ($('#metfoto:checked').val() !== undefined) {
        metfoto = true;
    }
    else {
        metfoto = false; 
    }

    if ($('#nuonline:checked').val() !== undefined) {
        nuonline = true;
    }
    else {
        nuonline = false;
    }

    //GetMarkers();
    clearTimeout(GetMarkersTimer);
    GetMarkersTimer = setTimeout('GetMarkers()', 500);
    //alert(Lsoort);
    //alert(jQuery('input[name="#Advsoorten"]:checked').map(function() { return $(this).val(); }).get().join(","););
}



