app/soc/content/js/templates/soc/organization/home-091027.js
author Mario Ferraro <fadinlight@gmail.com>
Sun, 15 Nov 2009 22:12:20 +0100
changeset 3093 d1be59b6b627
permissions -rw-r--r--
GMaps related JS changed to use new google namespace. Google is going to change permanently in the future the way to load its services, so better stay safe. Also this commit shows uses of the new melange.js module. Fixes Issue 634.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3093
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     1
/* Copyright 2009 the Melange authors.
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     2
 *
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     3
 * Licensed under the Apache License, Version 2.0 (the "License");
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     4
 * you may not use this file except in compliance with the License.
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     5
 * You may obtain a copy of the License at
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     6
 *
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     7
 *   http://www.apache.org/licenses/LICENSE-2.0
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     8
 *
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     9
 * Unless required by applicable law or agreed to in writing, software
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    10
 * distributed under the License is distributed on an "AS IS" BASIS,
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    11
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    12
 * See the License for the specific language governing permissions and
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    13
 * limitations under the License.
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    14
 */
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    15
/**
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    16
 * @author <a href="mailto:fadinlight@gmail.com">Mario Ferraro</a>
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    17
 */
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    18
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    19
(function () {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    20
  var melange = window.melange;
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    21
  this.prototype = new melange.templates._baseTemplate();
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    22
  this.prototype.constructor = melange.templates._baseTemplate;
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    23
  melange.templates._baseTemplate.apply(this, arguments);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    24
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    25
  var _self = this;
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    26
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    27
  // Global variables
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    28
  var map;
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    29
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    30
  // Map data taken from JS context
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    31
  var map_data = this.context.map_data;
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    32
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    33
  // HTML div tag where map needs to be inserted
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    34
  var map_div = "org_home_map";
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    35
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    36
  // Map load function
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    37
  function map_load() {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    38
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    39
    // Setup required icons
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    40
    var base_icon = new google.maps.Icon();
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    41
    base_icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    42
    base_icon.iconSize = new google.maps.Size(20, 34);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    43
    base_icon.shadowSize = new google.maps.Size(37, 34);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    44
    base_icon.iconAnchor = new google.maps.Point(9, 34);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    45
    base_icon.infoWindowAnchor = new google.maps.Point(9, 2);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    46
    base_icon.infoShadowAnchor = new google.maps.Point(18, 25);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    47
    var student_icon = new google.maps.Icon(base_icon);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    48
    student_icon.image = "http://www.google.com/mapfiles/marker.png";
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    49
    var mentor_icon = new google.maps.Icon(base_icon);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    50
    mentor_icon.image = "/soc/content/images/mentor-marker.png";
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    51
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    52
    if (google.maps.BrowserIsCompatible()) {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    53
      // Create the map and add small controls
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    54
      map = new google.maps.Map2(document.getElementById(map_div));
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    55
      map.addControl(new google.maps.LargeMapControl());
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    56
      map.addControl(new google.maps.MapTypeControl());
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    57
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    58
      // Set map center and initial zoom level
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    59
      map.setCenter(new google.maps.LatLng(0, 0), 1);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    60
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    61
      var mentors = {};
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    62
      var students = {};
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    63
      var projects = {};
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    64
      var polylines = [];
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    65
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    66
      jQuery.each(map_data.people, function (key, person) {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    67
        if (person.type === "student") {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    68
          students[key] = {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    69
            "name": person.name,
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    70
            "lat": person.lat,
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    71
            "lon": person.lon,
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    72
            "projects": person.projects
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    73
          };
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    74
        }
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    75
        if (person.type === "mentor") {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    76
          mentors[key] = {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    77
            "name": person.name,
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    78
            "lat": person.lat,
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    79
            "lon": person.lon,
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    80
            "projects": person.projects
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    81
          };
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    82
        }
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    83
      });
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    84
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    85
      // Iterate over projects to draw polylines
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    86
      jQuery.each(map_data.projects, function (key, project) {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    87
        var current_student = students[project.student_key];
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    88
        var current_mentor = mentors[project.mentor_key];
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    89
        if (current_student !== undefined && 
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    90
            current_mentor !== undefined &&
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    91
            current_student.lat !== null &&
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    92
            current_student.lon !== null &&
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    93
            current_mentor.lat !== null &&
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    94
            current_mentor.lon !== null) {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    95
              /*jslint white: false */
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    96
              polylines.push([
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    97
                [current_student.lat, current_student.lon],
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    98
                [current_mentor.lat, current_mentor.lon]
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    99
              ]);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   100
              /*jslint white: true */
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   101
        }
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   102
      });
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   103
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   104
      // Iterate over students
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   105
      jQuery.each(students, function (key, person) {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   106
        var html = "";
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   107
        var marker = null;
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   108
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   109
        if (person.lat !== null && person.lon !== null) {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   110
          var point = new google.maps.LatLng(person.lat, person.lon);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   111
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   112
          marker = new google.maps.Marker(point, student_icon);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   113
          html = [
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   114
            "<strong>", person.name, "</strong><br />",
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   115
            "<span style='font-style:italic;'>Student</span><br />",
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   116
            "<div style='height:100px;width:300px;",
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   117
            "overflow:auto;font-size:70%'>"
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   118
          ].join("");
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   119
          // iterate through projects
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   120
          jQuery.each(person.projects, function () {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   121
            var current_project = map_data.projects[this];
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   122
            html += [
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   123
              "<a href='", current_project.redirect, "'>",
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   124
              current_project.title, "</a><br />",
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   125
              "Mentor: ", current_project.mentor_name, "<br />"
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   126
            ].join("");
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   127
          });
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   128
          html += "</div>";
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   129
          google.maps.Event.addListener(marker, "click", function () {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   130
            marker.openInfoWindowHtml(html);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   131
          });
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   132
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   133
          map.addOverlay(marker);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   134
        }
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   135
      });
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   136
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   137
      // Iterate over mentors
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   138
      jQuery.each(mentors, function (key, person) {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   139
        var html = "";
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   140
        var marker = null;
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   141
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   142
        if (person.lat !== null && person.lon !== null) {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   143
          var point = new google.maps.LatLng(person.lat, person.lon);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   144
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   145
          marker = new google.maps.Marker(point, mentor_icon);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   146
          html = [
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   147
            "<strong>", person.name, "</strong><br />",
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   148
            "<span style='font-style:italic;'>Mentor</span><br />",
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   149
            "<div style='height:100px;width:300px;",
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   150
            "overflow:auto;font-size:70%'>"
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   151
          ].join("");
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   152
          // iterate through projects
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   153
          jQuery.each(person.projects, function () {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   154
            var current_project = map_data.projects[this];
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   155
            html += [
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   156
              "<a href='", current_project.redirect, "'>",
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   157
              current_project.title, "</a><br />",
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   158
              "Student: ", current_project.student_name, "<br />"
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   159
            ].join("");
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   160
          });
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   161
          html += "</div>";
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   162
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   163
          google.maps.Event.addListener(marker, "click", function () {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   164
            marker.openInfoWindowHtml(html);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   165
          });
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   166
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   167
          map.addOverlay(marker);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   168
        }
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   169
      });
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   170
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   171
      // Draw all polylines
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   172
      jQuery.each(polylines, function () {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   173
        var from = new google.maps.LatLng(this[0][0], this[0][1]);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   174
        var to = new google.maps.LatLng(this[1][0], this[1][1]);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   175
        var polyline = new google.maps.Polyline([from, to], "#ff0000", 3);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   176
        map.addOverlay(polyline);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   177
      });
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   178
    }
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   179
  }
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   180
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   181
  jQuery(
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   182
    function () {
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   183
      melange.loadGoogleApi("maps", "2", {}, map_load);
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   184
    }
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   185
  );
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   186
d1be59b6b627 GMaps related JS changed to use new google namespace.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
   187
}());