﻿function SubmitKeyClick(button) {
    if (event.keyCode == 13) {
        event.keyCode = 9;
        event.returnValue = false;
        goSearch();
        //location.href = "/Job/Search?k=" + button.value;
    }
}
google.maps.Map.prototype.markers = new Array();
google.maps.Map.prototype.addMarker = function (marker) {
    this.markers[this.markers.length] = marker;
};
google.maps.Map.prototype.getMarkers = function () {
    return this.markers;
};
google.maps.Map.prototype.clearMarkers = function () {
    for (var i = 0; i < this.markers.length; i++) {
        this.markers[i].setMap(null);
    }
    this.markers = new Array();
};
function initialize() {
    var latlng = new google.maps.LatLng(40.96967090550902, 117.93614610652924);
    var maplatlngs = new Array(5);
    maplatlngs[1] = "40.9804117981766,117.93799146633148";
    maplatlngs[2] = "40.969832922912765,117.93633922557831";
    maplatlngs[3] = "40.96962230021032,117.94065221767426";
    maplatlngs[4] = "40.911172846589054,117.96429857234955";

    var myOptions = {
        zoom: 15,
        center: latlng,
        disableDoubleClickZoom: false,
        scaleControl: true,
        scrollwheel: false,
        navigationControl: true,
        mapTypeControl: false,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    google.maps.event.addListenerOnce(map, 'tilesloaded', function () {
        initMarkerXml(map);
    });
    google.maps.event.addListener(map, 'dragend', function () {
        map.clearMarkers();
        initMarkerXml(map);

    });
    google.maps.event.addListener(map, 'zoom_changed', function () {
        map.clearMarkers();
        initMarkerXml(map);
    });
    $("#search").button().click(function () {
        goSearch();
    });
    $('#centerArea').change(function () {
        if ($('#centerArea').val() != '0') {
            var selectCenter = maplatlngs[$('#centerArea').val()].split(",");
            map.setCenter(new google.maps.LatLng(selectCenter[0], selectCenter[1]));
            map.setZoom(Math.round($('#centerRange').val()));
            initMarkerXml(map);
        }
    });
    $('#centerRange').change(function () {
        map.setZoom(Math.round($('#centerRange').val()));
        initMarkerXml(map);
    });
    $("#test").click(function () {
        $("#keyword").val(map.getZoom() + ":" + map.getCenter());
    });
}

function goSearch() {
    if ($('#centerArea').val() == '0') {
        location.href = "/Job/Search?k=" + $("#keyword").val() + "&d=" + $("#dateSearch").val();
    } else {
        location.href = "/Job/Search?k=" + $("#keyword").val() + "&d=" + $("#dateSearch").val() + "&a=" + $('#centerArea').val() + "&r=" + $('#centerRange').val();
    }
}
function initMarkerXml(map) {
    var bounds = map.getBounds();
    var southWest = bounds.getSouthWest();
    var northEast = bounds.getNorthEast();
    $.ajax({
        type: "GET",
        url: "/Tool/Map/Marker?nelng=" + northEast.lng() + "&nelat=" + northEast.lat() + "&swlng=" + southWest.lng() + "&swlat=" + southWest.lat(),
        cache: false,
        dataType: "xml",
        beforeSend: function (x) {
            if (x && x.overrideMimeType) {
                x.overrideMimeType("application/xml;charset=UTF-8");
            }
        },
        success: function (xml) {
            $(xml).find("Company").each(function () {
                var corname = $(this).find("corname").text();
                var corid = $(this).find("corid").text();
                var lng = parseFloat($(this).find("lng").text());
                var lat = parseFloat($(this).find("lat").text());
                var markerid = $(this).find("markerid").text();
                var jobs = $(this).find("jobs");
                addPlacemark(map, lat, lng, corname, corid, markerid, jobs);
            });
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert('Error: ' + textStatus + ", " + errorThrown);
            $('#keyword').val("/Tool/Map/Marker?nelng=" + northEast.lng() + "&nelat=" + northEast.lat() + "&swlng=" + southWest.lng() + "&swlat=" + southWest.lat());
        }
    });
}
function addPlacemark(map, lat, lng, corname, corid, markerid, jobs) {
    var _p = new google.maps.LatLng(lat, lng);
    var _icon = new google.maps.MarkerImage(
               '/Image/Show/' + markerid,
               new google.maps.Size(32, 37), new google.maps.Point(0, 0), new google.maps.Point(32 / 2, 37)
               );
    var marker = new google.maps.Marker({
        position: _p,
        map: map,
        icon: _icon,
        title: corname
    });
    map.addMarker(marker);
    var _content = "<table width=\"100%\"><tr><td class=\"ui-state-default\" colspan=\"2\">" + corname + "</td></tr>";
    jobs.each(function () {
        _content += "<tr><td><a href=\"/Job/" + $(this).find("id").text() + "\" target=\"_blank\" class=\"corname\">" + $(this).find("name").text() + "</a></td><td><a href=\"/Job/" + $(this).find("id").text() + "\" target=\"_blank\" class=\"corname\">查看</a></td></tr>";
    });

    _content += "</table>";
    var infowindow = new google.maps.InfoWindow({
        position: _p,
        map: map,
        content: _content
    });
    google.maps.event.addListener(marker, "click", function () { infowindow.open(map, marker); });
}
function initMarkerNoshadows(map, m) {
    var _m = markerList[m];
    var _p = new google.maps.LatLng(_m.lat, _m.lng);
    var _corLink = $("a[name='corname_" + m + "']").first();
    var _title = "<b><a href=\"" + _corLink.attr("href") + "\" target=\"_blank\" class=\"corname\">" + _corLink.text() + "</a></b><br /><br />";
    var _contentList = _m.j.toString().split(",");
    var _content = "<table width=\"100%\"><tr><td class=\"ui-state-default\">职位名称</td><td class=\"ui-state-default\" align=\"center\">操作</td></tr>";
    for (var i = 0; i < _contentList.length; i++) {
        var _jobLink = $("a[name='jobname_" + _contentList[i] + "']").first();
        if (_jobLink.text() != "") {
            _content += "<tr><td><a href=\"" + _jobLink.attr("href") + "\" target=\"_blank\" class=\"jobname\">" + _jobLink.text() + "</a>";
            //_content+="</td><td  align=\"center\">"+$("#jobarea_"+_contentList[i]).first().text()+"</td>";
            //_content+="<td align=\"center\">"+$("#jobdate_"+_contentList[i]).first().text()+"</td>";
            _content += "<td align=\"center\"><a href=\"/Job/" + _contentList[i] + "\" target=\"_blank\">查看</a></td>";
            _content += "</tr>";
        }
    }
    _content += "</table>"
    var _icon = new google.maps.MarkerImage(
                '/Image/Show/' + _m.p,
                new google.maps.Size(_m.w, _m.h), new google.maps.Point(0, 0), new google.maps.Point(_m.w / 2, _m.h)
                );
    var marker = new google.maps.Marker({
        position: _p,
        map: map,
        icon: _icon,
        title: _corLink.text()
    });
    map.addMarker(marker);
    var infowindow = new google.maps.InfoWindow({
        position: _p,
        map: map,
        content: _title + _content
    });
    google.maps.event.addListener(marker, "click", function () { infowindow.open(map, marker); });
}
google.maps.event.addDomListener(window, 'load', initialize);
