//*********************************************************
//Replace below - "Get Dynamic Speedlimits from OSM"
var Overspeed = function(mPerSec) {
	var speed = mPerSec * 3.6;
    var SPEED_LIMIT_UNREAL = 500; //Speeds above this are unrealistic for vehicles on the ground
    var roadInfo;
    //"Try & catch" added here to not care if Maps are initialized for script validation when saving the Event Rule.
    try {
      roadInfo = road.getRoad();
    } catch (e) {
      return false;
    }
    context.setVariable("roadType", roadInfo.type);
    //Return true if Speed is above an OSM speedlimit
    if (roadInfo.speedLimit < SPEED_LIMIT_UNREAL && speed > roadInfo.speedLimit) {
      return true;
    } else if (roadInfo.speedLimit > SPEED_LIMIT_UNREAL) {
      var MOTOR_WAY_LINK = 110;
      var MOTOR_WAY = 100; //and TRUNK
      var PRIMARY = 80; //and TRUNK_LINK
      var PRIMARY_LINK = 70; //and SECONDARY, SERVICE, TERTIARY
      var ROAD = 50; //and SECONDARY_LINK, UNLASSIFIED
      var RESIDENTIAL = 40; //and LIVING_STREET

      switch (roadInfo.type) {
        case "motorway_link":
          return (speed > MOTOR_WAY_LINK);
        case "motorway":
        case "trunk":
          return (speed > MOTOR_WAY);

        case "trunk_link":
        case "primary":
          return (speed > PRIMARY);
        case "primary_link":
        case "secondary":
        case "service":
        case "tertiary":
          return (speed > PRIMARY_LINK);
        case "road":
        case "secondary_link":
        case "unclassified":
          return (speed > ROAD);
        case "residential":
        case "living_street":
          return (speed > RESIDENTIAL);
        default:
          return (speed > MOTOR_WAY_LINK);
      }
    }
    return false;
  }
//Replace above - "Get Dynamic Speedlimits from OSM"
//*********************************************************

//*********************************************************
//Replace below -" Get Dynamic Speedlimits from OSM"
var livingStreet = 40; //See Open Street Map (OSM)
var motorWay, trunk = 100;
var motorWayLink = 110;
var primary, trunkLink = 80;
var primaryLink, secondary, service, tertiary = 70;
var residential = 40;
var road, secondaryLink, unlassified = 50;
//Replace above -" Get Dynamic Speedlimits from OSM"
//*********************************************************

//*********************************************************
//Replace below - "Get Custom Fields"
var harshAccWeight = parseFloat(session.user.getCustomFieldValue('harshAccWeight') || 0);
var harshBrakeWeight = parseFloat(session.user.getCustomFieldValue('harshBrakeWeight') || 0);
var harshTurnWeight = parseFloat(session.user.getCustomFieldValue('harshTurnWeight') || 0);
var oSpeedWeight = parseFloat(session.user.getCustomFieldValue('oSpeedWeight') || 0);
var sBeltWeight = parseFloat(session.user.getCustomFieldValue('sBeltWeight') || 0);
var tripIdleWeight = parseFloat(session.user.getCustomFieldValue('tripIdleWeight') || 0);
var idletimeBase = parseFloat(session.user.getCustomFieldValue('idletimeBase') || 0);
var excellent = parseFloat(session.user.getCustomFieldValue('excellent') || 0);
var good = parseFloat(session.user.getCustomFieldValue('good') || 0);
var fair = parseFloat(session.user.getCustomFieldValue('fair') || 0);
//Replace above - "Get Custom Fields"
//*********************************************************
