jQuery(function(l,c){function b(){var f=l("script:first"),e=f.css("color"),i=false;if(/^rgba/.test(e)){i=true}else{try{i=e!=f.css("color","rgba(0, 0, 0, 0.5)").css("color");f.css("color",e)}catch(h){}}return i}function a(f,e,j){var i=[];f.c&&i.push("inset");typeof e.left!="undefined"&&i.push(parseInt(f.left+j*(e.left-f.left),10)+"px "+parseInt(f.top+j*(e.top-f.top),10)+"px");typeof e.blur!="undefined"&&i.push(parseInt(f.blur+j*(e.blur-f.blur),10)+"px");typeof e.a!="undefined"&&i.push(parseInt(f.a+j*(e.a-f.a),10)+"px");if(typeof e.color!="undefined"){var h="rgb"+(l.support.rgba?"a":"")+"("+parseInt(f.color[0]+j*(e.color[0]-f.color[0]),10)+","+parseInt(f.color[1]+j*(e.color[1]-f.color[1]),10)+","+parseInt(f.color[2]+j*(e.color[2]-f.color[2]),10);if(l.support.rgba){h+=","+parseFloat(f.color[3]+j*(e.color[3]-f.color[3]))}h+=")";i.push(h)}return i.join(" ")}function d(f){var e,i,h={};if(e=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(f)){i=[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16),1]}else{if(e=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(f)){i=[parseInt(e[1],16)*17,parseInt(e[2],16)*17,parseInt(e[3],16)*17,1]}else{if(e=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)){i=[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3],10),1]}else{if(e=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(f)){i=[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3],10),parseFloat(e[4])]}}}}h=(e=/(-?[0-9]+)(?:px)?\s+(-?[0-9]+)(?:px)?(?:\s+(-?[0-9]+)(?:px)?)?(?:\s+(-?[0-9]+)(?:px)?)?/.exec(f))?{left:parseInt(e[1],10),top:parseInt(e[2],10),blur:e[3]?parseInt(e[3],10):0,a:e[4]?parseInt(e[4],10):0}:{left:0,top:0,blur:0,a:0};h.c=/inset/.test(f);h.color=i;return h}l.extend(true,l,{support:{rgba:b()}});var g;l.each(["boxShadow","MozBoxShadow","WebkitBoxShadow"],function(f,e){f=l("html").css(e);if(typeof f=="string"&&f!=""){g=e;return false}});if(g){l.fx.step.boxShadow=function(e){if(!e.init){e.b=d(l(e.elem).get(0).style[g]||l(e.elem).css(g));e.end=l.extend({},e.b,d(e.end));if(e.b.color==c){e.b.color=e.end.color||[0,0,0]}e.init=true}e.elem.style[g]=a(e.b,e.end,e.pos)}}});(function(e){e.extend(e.support,{rgba:c()});e.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){e.fx.step[f]=function(i){var h=[];if(!i.colorInit){i.start=d(i.elem,f);i.end=b(i.end);i.alphavalue={start:4===i.start.length,end:4===i.end.length};if(!i.alphavalue.start){i.start.push(1)}if(!i.alphavalue.end){i.end.push(1)}if(e.support.rgba&&(!i.alphavalue.start&&i.alphavalue.end)||(i.alphavalue.start&&i.alphavalue.end)||(i.alphavalue.start&&!i.alphavalue.end)){i.colorModel="rgba"}else{i.colorModel="rgb"}i.colorInit=true}h.push(Math.max(Math.min(parseInt((i.pos*(i.end[0]-i.start[0]))+i.start[0]),255),0));h.push(Math.max(Math.min(parseInt((i.pos*(i.end[1]-i.start[1]))+i.start[1]),255),0));h.push(Math.max(Math.min(parseInt((i.pos*(i.end[2]-i.start[2]))+i.start[2]),255),0));if(i.colorModel=="rgba"){h.push(Math.max(Math.min(parseFloat((i.pos*(i.end[3]-i.start[3]))+i.start[3]),1),0).toFixed(2))}i.elem.style[f]=i.colorModel+"("+h.join(",")+")"}});function b(g){var f,i,j="(?:,\\s*((?:1|0)(?:\\.0+)?|(?:0?\\.[0-9]+))\\s*)?\\)",h=new RegExp("rgb(a)?\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*"+j),k=new RegExp("rgb(a)?\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*"+j);if(g&&g.constructor==Array&&g.length>=3&&g.length<=4){return g}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=h.exec(g)){i=[parseInt(f[2]),parseInt(f[3]),parseInt(f[4])];if(f[1]&&f[5]){i.push(parseFloat(f[5]))}return i}if(f=k.exec(g)){i=[parseFloat(f[2])*2.55,parseFloat(f[3])*2.55,parseFloat(f[4])*2.55];if(f[1]&&f[5]){i.push(parseFloat(f[5]))}return i}return a[e.trim(g).toLowerCase()]}function d(h,f){var g;do{g=e.curCSS(h,f);if(g!=""&&g!="transparent"||e.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}function c(){var h=e("script:first"),g=h.css("color"),f=false;if(/^rgba/.test(g)){f=true}else{try{f=(g!=h.css("color","rgba(0, 0, 0, 0.5)").css("color"));h.css("color",g)}catch(i){}}return f}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:(e.support.rgba)?[0,0,0,0]:[255,255,255]}})(jQuery);var BIGPOPUP_TIMEOUT_MS=8000;var maxDistance=8000;var minDistance=1000;var maxPlaces=3;var maxEvents=3;var eventsDaysFromNow=200;var globalHolder={};var globalFirstName;var globalLastName;var globaluid;var startLonLat;var startMerc;var eventsGoForthAlreadyChecked;var geocoder=new google.maps.Geocoder();var maxFriendsDisplay=4;var places=[];var currentShowIndex=0;var currentShowPlace;var journeyFeatures=[];var map=null;var featuresLayer;var journeyLayer;var selectLayer;var currentTarget;var timer;var currentExperienceText=0;var ignoreAutocompleteResponse=false;var bgLargeMode=true;var friends={};$(document).ready(function(){$(window).resize(function(){if($("#section1").is(":visible")){if(bgLargeMode&&$(window).width()<=1700){$("#section1").css("background-position","left top");bgLargeMode=false}else{if(!bgLargeMode&&$(window).width()>1700){$("#section1").css("background-position","right top");bgLargeMode=true}}}});$(window).trigger("resize");$("#searchfield").autocomplete({source:function(b,a){weng.landing.geocode(b.term,{success:function(c){if(!ignoreAutocompleteResponse){a($.map(c,function(d){return{label:d.formatted_address,value:d.formatted_address,coord:{lon:d.geometry.location.lng(),lat:d.geometry.location.lat()}}}))}else{ignoreAutocompleteResponse=false}},error:function(c){$(this).addClass("error")}})},minLength:2,select:function(a,b){if(b.item){currentTarget=b.item}}});$("#searchfield").keyup(function(a){switch(a.keyCode){case 13:$("#go").trigger("click");break;default:$(this).removeClass("error");break}});$(".facebook-button").click(function(){track("LANDING","FB_LOGIN");FB.login(function(a){if(a.authResponse){commons.alert.show("success","<b>Cool!</b> Now that you are connected, please enter your home or work address!");commons.utils.track({category:"LANDING",event:"FB_SESSION_CONTINUE"});var b=a.authResponse.userID;globaluid=b;$("#facebook-notauthenticated").hide();$("#facebook-authenticated").show()}else{commons.alert.show("error","You denied the connection to your facebook account :(");commons.utils.track({category:"LANDING",event:"FB_LOGIN"});FB.login(function(c){if(c.authResponse){commons.utils.track({category:"LANDING",event:"FB_LOGIN_ACCEPT"});var d=c.authResponse.userID;globaluid=d;goWhenFacebookReady()}else{commons.utils.track({category:"LANDING",event:"FB_LOGIN_REFUSED"});handleError("boo")}},{scope:"email,user_checkins,friends_checkins,user_events,user_location,friends_location"})}},{scope:"email,user_checkins,friends_checkins,user_events,user_location,friends_location"})});$("#fb_share").click(function(){var a="http://wengmotors.com";window.open("http://www.facebook.com/sharer.php?u="+a,"sharer","toolbar=0,status=0,width=548,height=325")});$("#go").click(function(){ignoreAutocompleteResponse=true;if(currentTarget&&currentTarget.label===$("#searchfield").val()){weng.landing.onGoClick()}else{weng.landing.geocode($("#searchfield").val(),{success:function(a){var b=a[0];currentTarget={label:b.formatted_address,value:b.formatted_address,coord:{lon:b.geometry.location.lng(),lat:b.geometry.location.lat()}};$("#searchfield").val(currentTarget.label);$("#searchfield").removeClass("error");weng.landing.onGoClick()},error:function(){$("#searchfield").addClass("error")}})}});$("#details").hover(function(){weng.landing.stopTimeout();$("#playpause").attr("src","img/play_pause_on.png")},function(){weng.landing.startTimeout();$("#playpause").attr("src","img/play_pause.png")});commons.events.subscribe("onJourneyReceived",function(c){var b=0.621371192*c.distance/1000;var a=2*b*0.74;var d=2*b*0.23;$("div.graph-bar.primary").html("$"+Math.ceil(a));$("#regularprice").html("$"+Math.ceil(a));$("div.graph-bar.secondary").html("$"+Math.ceil(d));$("div.graph-bar.secondary").css("width",Math.ceil(d*100/a));$("#wengprice").html("$"+Math.ceil(d))});FB.init({appId:"254426311265752",status:true,cookie:true,xfbml:true,oauth:true});log.debug("go Facebook");FB.getLoginStatus(function(a){if(a.authResponse){track("LANDING","FB_SESSION_CONTINUE");var b=a.authResponse.userID;globaluid=b;$("#facebook-notauthenticated").hide();$("#facebook-authenticated").show()}else{track("LANDING","FB_NOT_AUTHENTICATED");$("#facebook-notauthenticated").show();$("#facebook-authenticated").hide()}},{scope:"email,user_checkins,friends_checkins,user_events,user_location,friends_location"})});reset=function(){$("#details").hide();$("#details-container").html('<div id="experience" class="row outline"></div>');globalHolder={};startLonLat=null;startMerc=null;eventsGoForthAlreadyChecked=null;places=[];currentShowIndex=0;currentShowPlace=null;journeyFeatures=[];if(featuresLayer){featuresLayer.removeAllFeatures()}if(journeyLayer){journeyLayer.removeAllFeatures()}if(selectLayer){selectLayer.removeAllFeatures()}if(timer){timer.pause()}timer=null};var start=function(){log.info("oh hi!");if(!map){map=new OpenLayers.Map("map",{theme:null,controls:[new OpenLayers.Control.Navigation(),new OpenLayers.Control.ArgParser(),new OpenLayers.Control.Attribution()],panDuration:1000});var a=new OpenLayers.Layer.Google("Google",{sphericalMercator:true,type:google.maps.MapTypeId.HYBRID});featuresLayer=new OpenLayers.Layer.Vector("Features",{rendererOptions:{zIndexing:true}});selectLayer=new OpenLayers.Layer.Vector("Select",{rendererOptions:{zIndexing:true}});journeyLayer=new OpenLayers.Layer.Vector("Features",{rendererOptions:{zIndexing:true}});map.addLayers([a,journeyLayer,featuresLayer,selectLayer]);commons.map.addSelectOnLayer(map,selectLayer)}log.debug("ready to go");weng.landing.ready=true;if(currentTarget){weng.landing.go(currentTarget.coord.lon,currentTarget.coord.lat,currentTarget.label)}};if(!weng){var weng={}}weng.landing={ready:false,onGoClick:function(){if(currentTarget){commons.alert.clear();$(".shadowbox").animate({top:"-500px"},300,function(){if(!weng.landing.ready){$("#section2").css("margin-left",$(window).width());$("#section2").show();$("#loader").show();$("#section2").show();start();$("#section2").animate({"margin-left":"0px"},1000,function(){map.updateSize()});$("#section1").animate({"margin-right":$(window).width()+"px"},1000,function(){$("#section1").hide()})}else{$("#loader").show();weng.landing.go(currentTarget.coord.lon,currentTarget.coord.lat,currentTarget.label)}})}},go:function(a,g,c){reset();commons.utils.track({category:"LANDING",event:"REQUEST_ADDRESS_CHOSEN",address:c,lon:a,lat:g,uid:globaluid});log.debug("display user marker");globalHolder.lon=a;globalHolder.lat=g;startLonLat=new OpenLayers.LonLat(globalHolder.lon,globalHolder.lat);startMerc=commons.map.lonLatToMercator(startLonLat);var f=KMarker.basic(map,featuresLayer,startLonLat);f.show();f.center(13);var b=commons.map.circleFeature(startLonLat,maxDistance);b.style={strokeColor:"#000",strokeWidth:5,strokeOpacity:0.8,fillOpacity:0};journeyLayer.addFeatures([b]);var d=commons.map.offsetLonLatByAngleAndDistance(startLonLat,2.5,maxDistance*1.01);var h=""+Math.round(0.621371192*maxDistance/1000)+" miles";var e=3;for(var i=0;i<e;i++){weng.landing.addTextPopup(commons.map.offsetLonLatByAngleAndDistance(startLonLat,1+2*3.14*i/e,maxDistance*1.01),h)}featuresLayer.redraw();weng.landing.fetchEvents()},addTextPopup:function(e,a){var c=commons.map.lonLatToMercator(e);var d=new OpenLayers.Icon("",new OpenLayers.Size(0,0),new OpenLayers.Pixel(-40,-12));var b=new OpenLayers.Popup.Anchored(null,c,new OpenLayers.Size(80,24),'<div style="width:80px;height:21px;text-align:center;display:block;"><span class="unselectable" style="text-align:center;font-weight:bold;font-size:14px;background-color:rgba(0,0,0,0.8);padding:4px;border-radius:4px;color: #fff;text-shadow: 1px 0 0 #000, 0 -1px 0 #000, 0 1px 0 #000, -1px 0 0 #000;">'+a+"</span></div>",d,true);b.keepInMap=false;b.calculateRelativePosition=function(){return"cr"};b.setBackgroundColor("transparent");map.addPopup(b)},fetchEvents:function(){log.info("Fetching info from FB");commons.utils.track({category:"LANDING",event:"FETCH_EVENTS"});var b=new Date();var a=Math.floor((new Date()).getTime()/1000-24*3600*eventsDaysFromNow);FB.api({method:"fql.multiquery",queries:{events_members:"select eid, uid, rsvp_status from event_member where eid IN (SELECT eid FROM #events)",events:'SELECT eid, name, venue, location, start_time, pic_square, pic_big, event_type FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid = me() AND rsvp_status = "attending" AND start_time > '+a+")",friends:"SELECT uid, name, first_name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) OR uid = me() LIMIT 1000"}},function(c){var d=(new Date()).getTime()-b.getTime();commons.utils.track({category:"LANDING",event:"FETCH_EVENTS_DONE",time_ms:d});weng.landing.handleFacebookEventsResponse(c)})},fetchCheckins:function(){log.info("Fetching info from FB");commons.utils.track({category:"LANDING",event:"FETCH_PLACES"});var b=new Date();var a=Math.floor((new Date()).getTime()/1000-24*3600*eventsDaysFromNow);FB.api({method:"fql.multiquery",queries:{checkins:"SELECT checkin_id, author_uid, page_id, tagged_uids, timestamp FROM checkin WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) OR author_uid = me() LIMIT 400",places_location:'SELECT page_id FROM place WHERE page_id IN (SELECT page_id FROM #checkins) AND distance(latitude,longitude,"'+globalHolder.lat+'","'+globalHolder.lon+'") < '+maxDistance,places:"SELECT page_id, name, description, location, pic_square, pic_big FROM page WHERE page_id IN (SELECT page_id FROM #places_location)"}},function(c){var d=(new Date()).getTime()-b.getTime();commons.utils.track({category:"LANDING",event:"FETCH_PLACES_DONE",time_ms:d});weng.landing.handleFacebookCheckinsResponse(c)})},handleFacebookEventsResponse:function(d){if(d.error_msg){if(d.error_msg==="Service temporarily unavailable"){commons.alert.show("error","<b>Awwwww, sorry:</b> There was a problem retrieving your data from Facebook (bad Facebook!). Please come back and try again later!");restoreShadowBox();$("#loader").hide()}else{handleError(d.error_msg)}return}log.debug("Received events.. handling");for(var f=0;f<d.length;f++){var g=d[f];if(g.name==="friends"){var k=g.fql_result_set}else{if(g.name==="events"){var b=g.fql_result_set}else{if(g.name==="events_members"){var h=g.fql_result_set}}}}for(var f=0;f<k.length;f++){friends[k[f].uid]=k[f]}var l=0;if(b.length===0){globalHolder.events=[];weng.landing.beginShow()}var m=[];for(var f=0;f<b.length;f++){var a=b[f];a.type="event";a.id=l++;a.date=new Date(a.start_time*1000);a.friends=[];var c=0;for(var e=0;e<h.length;e++){eventMember=h[e];if(eventMember.eid===a.eid){c++;if(friends[eventMember.uid]){a.friends.push(friends[eventMember.uid])}}}a.percentOfFriends=a.friends.length/c;weng.landing.geocodeEvent(a,b)}},handleFacebookCheckinsResponse:function(c){if(c.error_msg){if(c.error_msg==="Service temporarily unavailable"){}else{handleError(c.error_msg)}return}log.debug("Received checkins.. handling");for(var f=0;f<c.length;f++){var k=c[f];if(k.name==="places"){var n=k.fql_result_set}else{if(k.name==="checkins"){var m=k.fql_result_set}}}var b={};for(var f=0;f<n.length;f++){b[n[f].page_id]=n[f]}var l=0;for(var f=0;f<m.length;f++){var o=m[f];o.type="checkin";o.id=l++;o.date=new Date(o.timestamp*1000);var h=o.page_id;if(b[h]){o.name=b[h].name;o.coord=KCoord.fromLonLat(b[h].location.longitude,b[h].location.latitude);o.pic_square=b[h].pic_square;o.pic_big=b[h].pic_big;var a=KCoord.distanceLonLat(globalHolder.lon,globalHolder.lat,o.coord.lon,o.coord.lat)*1000;if(isNaN(a)||a>maxDistance||a<minDistance){o.dirty=true}o.tagged_uids.push(o.author_uid);o.friends=[];o.containsMe=false;for(var d=0;d<o.tagged_uids.length;d++){var g=o.tagged_uids[d];if(g===globalHolder.uid){o.containsMe=true}if(friends[g]){o.friends.push(friends[g])}else{log.debug("checkin with strangers, uid:"+g)}}}else{log.debug("no place found for a tag (was probably too far away) place_id: "+h);o.dirty=true}if(!o.dirty){weng.landing.scoreCheckin(o);places.push(o)}}places.sort(function(j,i){return i.score-j.score});for(var f=0;f<places.length;f++){var e=new WengMiniMarker(map,selectLayer,places[f]);e.show()}},geocodeEvent:function(c,d){if(c.venue.latitude&&c.venue.longitude){var a={};a.lat=c.venue.latitude;a.lon=c.venue.longitude;weng.landing.eventLocationReceived(c,a,d)}else{if(c.venue||c.location){if(c.venue&&c.venue.street&&c.venue.street!==""){var b=c.venue.street+" "+c.venue.city+" "+c.venue.state+" "+c.venue.country}else{if(c.location){var b=c.location}}if(geocoder&&b){log.debug("Sending geocoding request address: "+b);geocoder.geocode({address:b,bounds:new google.maps.LatLngBounds(new google.maps.LatLng(36.919,-123.22),new google.maps.LatLng(38.6,-121.24)),region:"US"},function(g,f){log.debug("Received geocoding response address: "+b);if(f==google.maps.GeocoderStatus.OK){var e={};e.lon=g[0].geometry.location.lng();e.lat=g[0].geometry.location.lat();weng.landing.eventLocationReceived(c,e,d)}else{weng.landing.eventLocationReceived(c,undefined,d)}})}else{weng.landing.eventLocationReceived(c,undefined,d)}}else{weng.landing.eventLocationReceived(c,undefined,d)}}},eventLocationReceived:function(c,a,e){if(a){var f=KCoord.distanceLonLat(globalHolder.lon,globalHolder.lat,a.lon,a.lat)*1000;if(isNaN(f)||f>maxDistance||f<minDistance){c.dirty=true}else{c.coord=a}}else{c.dirty=true}c.processed=true;for(var b=0;b<e.length;b++){if(!e[b].processed){return}}if(!eventsGoForthAlreadyChecked){eventsGoForthAlreadyChecked=true;events=[];for(var b=0;b<e.length;b++){var d=e[b];if(!d.dirty){weng.landing.scoreEvent(d);places.push(d)}}weng.landing.beginShow();weng.landing.fetchCheckins()}},displayJourneyToPlace:function(a){if(journeyFeatures){journeyLayer.removeFeatures(journeyFeatures);for(var c=0;c<journeyFeatures.length;c++){var b=journeyFeatures[c];b.style={strokeColor:"#aaf",strokeWidth:3,strokeOpacity:0.5};journeyLayer.addFeatures([b]);c++}journeyFeatures=[]}var e=new OpenLayers.LonLat(a.coord.lon,a.coord.lat);var d=new OpenLayers.LonLat(globalHolder.lon,globalHolder.lat);weng.utils.getGoogleDirection(d,e,function(g){var h=weng.landing.userRouteFromJourney(g);journeyLayer.addFeatures(h);for(var f=0;f<h.length;f++){journeyFeatures.push(h[f])}commons.events.fire("onJourneyReceived",g)})},beginShow:function(){log.debug("begin show");commons.utils.track({category:"LANDING",event:"SHOW",number_of_places:places.length});var e=new OpenLayers.Bounds();e.extend(new OpenLayers.LonLat(globalHolder.lon,globalHolder.lat));for(var c=0;c<places.length;c++){var a=new WengMiniMarker(map,selectLayer,places[c]);a.show();e.extend(new OpenLayers.LonLat(places[c].coord.lon,places[c].coord.lat))}var d=map.getPixelFromLonLat(commons.map.lonLatToMercator(e.getCenterLonLat()));var b=new OpenLayers.Pixel(d.x-520/2,d.y);var f=map.getLonLatFromPixel(b);map.setCenter(f,13);currentShowIndex=0;if(places.length===0){commons.alert.show("info","<b>Aw, snap:</b> we couldn't find a single checkin or event near that place... Could you try again with the name of a city where you usually hang out?");$("#loader").hide();return}places.sort(function(h,g){return g.score-h.score});weng.landing.nextInShow();weng.landing.onShowStarted()},nextInShow:function(){currentShowPlace=places[currentShowIndex];currentShowPlace.marker.launch();weng.landing.setExperienceText(currentExperienceText++%5);currentShowIndex++;if(places.length<=currentShowIndex){currentShowIndex=0}},centerOnPopup:function(a){var d=new OpenLayers.Bounds();d.extend(new OpenLayers.LonLat(globalHolder.lon,globalHolder.lat));var c=map.getPixelFromLonLat(commons.map.lonLatToMercator(a.coord));var b=new OpenLayers.Pixel(c.x+(a.width),c.y-(a.height));var e=map.getLonLatFromPixel(b);d.extend(a.coord);d.extend(commons.map.mercatorToLonLat(e));commons.map.centerMapOnBounds(map,d)},scoreCheckin:function(b){var d=0;if(b.containsMe){d+=1000}d+=b.friends.length*200;var a=(new Date()).getTime();var c=1+Math.floor((a-b.timestamp*1000)/(24*3600*1000));d+=1000-c*10;b.score=d},scoreEvent:function(c){var d=0;var a=(new Date()).getTime();var b=1+Math.floor((a-c.start_time*1000)/(24*3600*1000));d+=10000-b*100;d+=c.friends.length*100;d+=Math.floor(10000*c.percentOfFriends);c.score=d},userRouteFromJourney:function(b){var a=commons.map.featureFromPolyline(b);a.style={strokeColor:"#f33",strokeWidth:3,strokeOpacity:1};var c=commons.map.featureFromPolyline(b);c.style={strokeColor:"#000",strokeWidth:7,strokeOpacity:0.5};return[c,a]},startTimeout:function(a){if(!timer){timer=new KTimer(BIGPOPUP_TIMEOUT_MS,a,"#bigpopuptimer")}else{if(a){timer.setCallback(a)}}timer.start()},stopTimeout:function(){if(timer){timer.pause()}},onShowStarted:function(){$("#loader").hide();$("#details").show()},setExperienceText:function(b){var a;switch(b){case 0:a='<div class="span4"><img src="img/exp1.png" /></div><div class="span6">    <p class="description title">Made for local</p>    <p class="description">The Weng is a <span class="highlight">Neighborhood Electric Vehicle</span>. Legal to drive on streets up to 35mph.</p></div>';break;case 1:a='<div class="span4"><img src="img/exp2.png" /></div><div class="span6">    <p class="description title">Made to be shared</p>    <p class="description">The Weng is the <span class="highlight">most social vehicle</span> ever built.</p></div>';break;case 2:a='               <div class="span10">                   <p style="margin: 20px 0 5px; text-align: center;">Driving there would have cost you:</p>               </div>          <div class="span4">                  <div class="graph">	                    <div class="graph-row">							<div class="graph-scale-holder"></div>							<div class="graph-bar primary" style="width: 100px;"></div>						</div>						<div class="graph-row">							<div class="graph-scale-holder"></div>							<div class="graph-bar secondary" style="width: 25px;"></div>						</div>					</div>				</div>				<div class="span6">					<p class="caption">&raquo; <span id="regularprice"></span> with your current car</p>					<p class="caption">&raquo; only <span class="highlight" id="wengprice"></span> with a <span class="highlight">Weng</span></p>				</div>               <div class="span10">                   <p style="margin: 20px 0 5px; text-align: center;">Light, efficient and electric: the Weng would cost you less per mile, everything included, than just gas in your current car</p>               </div>';break;case 3:a='<div class="span4"><img src="img/exp4.png" /></div><div class="span6">    <p class="description title">Hassle-free</p>    <p class="description"><span class="highlight">No regular maintenance</span>. Remote diagnosis. On-the-driveway repair.</p></div>';break;case 4:a='<div class="span4"><img src="img/exp5.png" /></div><div class="span6">    <p class="description title">45 miles</p>    <p class="description">That\'s how far you could go on the Weng. <span class="highlight">Built for multiple pit-stop days.</span></p></div>';break}if(a){$("#experience").html(a)}else{log.debug("setExperienceText: id '"+b+"' not found, ignoring")}},geocode:function(a,b){if(geocoder){geocoder.geocode({address:a,bounds:new google.maps.LatLngBounds(new google.maps.LatLng(36.919,-123.22),new google.maps.LatLng(38.6,-121.24)),region:"US"},function(d,c){if(c===google.maps.GeocoderStatus.OK){if(d&&d.length>0){if(b&&b.success){b.success(d)}}else{if(b&&b.error){b.error("zero result")}}}else{if(b&&b.error){b.error("failure")}}})}else{if(b&&b.error){b.error("no geocoder")}}}};function showStaticInfo(){$("#content2").css("left","420px");$("#content2").show();$("#content1").animate({left:"-420px"},300,function(){$("#content1").hide()});$("#content2").animate({left:"0"},300,function(){})}function showNormalInfo(){$("#content1").css("left","-420px");$("#content1").show();$("#content2").animate({left:"420px"},300,function(){$("#content2").hide()});$("#content1").animate({left:"0"},300,function(){})}function restoreShadowBox(){$(".shadowbox").animate({top:"0"},300,function(){showStaticInfo()})}var handleError=function(a){alert(a)};var displayDate=function(b){var a=b.getDate();var d=b.getMonth();var c=b.getFullYear();return a+"/"+d+"/"+c};var WengMiniMarker=function(a,e,b){var c=b;var g=c.coord;var d;var h;var i;var f={marker:d,smallPopup:h,bigPopup:i,show:function(){d.show();h.hide();i.hide()},hide:function(){d.hide();h.hide();i.hide()},launch:function(){weng.landing.displayJourneyToPlace(c);weng.landing.startTimeout(function(){weng.landing.nextInShow()});if(WengMiniMarker.currentLaunchSmallPopup){WengMiniMarker.currentLaunchSmallPopup.hide()}if(WengMiniMarker.currentLauncgBigPopup){WengMiniMarker.currentLauncgBigPopup.hide()}h.show();h.hide();i.show();WengMiniMarker.currentLauncgBigPopup=i;WengMiniMarker.currentLaunchSmallPopup=h;var j=new OpenLayers.Bounds();j.extend(new OpenLayers.LonLat(g.lon,g.lat));j.extend(new OpenLayers.LonLat(startLonLat.lon,startLonLat.lat));commons.map.centerMapOnBounds(a,j,13)}};(function(){d=new KMarker.medium(a,e,g);h=new KMapPopup(a,g,WengMiniMarker.smallPopupHTML(c),256,64);i=new KMapPopup(a,g,WengMiniMarker.bigPopupHTML(c),512,400);d.onMouseEnter=function(){e.removeFeatures([d.feature]);if(WengMiniMarker.currentSmallPopup){WengMiniMarker.currentSmallPopup.hide()}h.show();WengMiniMarker.currentSmallPopup=h;if(timer){timer.pause()}};d.onMouseLeave=function(){log.debug("leave popup");h.hide();e.addFeatures([d.feature]);if(timer){timer.resume()}};h.onMouseLeave=d.onMouseLeave;h.onClick=function(){f.launch();weng.landing.setExperienceText(2)}})();c.marker=f;return f};WengMiniMarker.popupTitle=function(a){var b="";if(a.type==="checkin"){if(a.containsMe){b+="You have checked in "}else{b+=a.friends[0].name+" has checked in "}}else{if(a.type==="event"){if((new Date())>a.date){b+="You have attended "}else{b+="You will attend "}}}b+='<br/><span class="highlight">'+a.name+"</span>";return b};WengMiniMarker.smallPopupHTML=function(a){var b='<div style="padding:2px;cursor:pointer;cursor:hand;">';b+="";b+=WengMiniMarker.popupTitle(a);b+="</div>";return b};WengMiniMarker.bigPopupHTML=function(a){var b="";b+='			<div class="row">				<div class="span10"><div class="caption">'+WengMiniMarker.popupTitle(a)+'</div></div>			</div>							<div class="row">			    <div class="span1">			    	<p>&nbsp;</p>			    </div>				<div class="span1" style="padding-top: 35px; text-align: middle;">					&nbsp;				</div>				<div class="span8">					<div class="pictures">';b+=WengMiniMarker.htmlFriends(a.friends);b+="					</div>				</div>			</div>			</div>		";return b};WengMiniMarker.htmlFriends=function(c){html="";var a=0;for(var b=0;b<c.length;b++){if(a>=maxFriendsDisplay){break}var d=c[b];if(d.uid!==globalHolder.uid){html+='						<div class="picture">							<img src="'+d.pic_square+'" alt="" width="50px" height="50px">							<label>'+d.first_name+"</label>						</div>";a++}}return html};if(!commons){var commons={}}commons.alert={show:function(a,b){var c=$("<div>&times;</div>");c.addClass("close");c.click(function(){$(this).parent().fadeOut("slow",function(){$(this).remove()})});var d=$("<div></div>");d.addClass("alert");d.addClass(a);d.html(b);d.append(c);d.hide();$("body").append(d);d.fadeIn()},clear:function(){$(".alert").remove()}};var KCOMMONS_LOG_URL="http://dev.wengmotors.com/weng/api/log";if(!commons){var commons={}}commons.utils={};log=new (function(){function a(c){try{if(console){console.log(c)}}catch(d){}}function b(c,g){try{var d={log:JSON.stringify(c),level:g};var f="JSON="+escape(JSON.stringify(d));$.ajax({type:"POST",dataType:"jsonp",url:KCOMMONS_LOG_URL,data:f,success:function(){},error:function(){}})}catch(e){}}return{debug:function(c){},info:function(c){b("#INFO "+c,"info")},warn:function(c){b("#WARN "+c,"warn")},error:function(c,d){try{var e="#ERROR "+c;if(d){e+="MSG="+d.message+" --- TYPE="+d.type+" --- STACK="+d.stack+" --- "}b(e,"error")}catch(d){}}}});track=function(e,d,a,c){try{log.info("TRACKING>> "+e+" "+d+" "+a+" "+c);_trackEvent(e,d,a,c)}catch(b){}};commons.events={};commons.events.delegates=[];commons.events.fire=function(c){try{var d=[];for(var e=1;e<arguments.length;++e){d.push(arguments[e])}if(commons.events.delegates[c]){for(var a=0;a<commons.events.delegates[c].length;a++){try{commons.events.delegates[c][a].apply(null,d)}catch(b){log.error("error on fire event "+c,b)}}}}catch(b){log.error("error on fire event "+c,b)}};commons.events.subscribe=function(b,c){try{if(commons.events.delegates[b]==null){commons.events.delegates[b]=[]}commons.events.delegates[b].push(c)}catch(a){log.error("error on suscribe to event "+b,a)}};commons.utils={track:function(a){try{if(!a){return}var d=a.category;if(!d){d="MISC_CATEGORY"}a.category=undefined;var c=a.event;if(!c){c="DEFAULT_EVENT"}a.event=undefined;var e=JSON.stringify(a);log.info("TRACKING>> "+d+" "+c+" JSON="+e);_gaq.push(["_trackEvent",d,c,e])}catch(b){log.error("Could not track event",b)}}};var ESPG4326=new OpenLayers.Projection("EPSG:4326");var ESPG900913=new OpenLayers.Projection("EPSG:900913");var KCoord={fromLonLat:function(c,b){var a={};a.lon=c;a.lat=b;return a},fromLatLon:function(a,b){return this.fromLonLat(b,a)},toOpenLayersLonLat:function(a){return new OpenLayers.LonLat(a.lon,a.lat)},toMercatorLonLat:function(b){var a=new OpenLayers.LonLat(b.lon,b.lat);a.transform(ESPG4326,ESPG900913);if(isNaN(a.lon)){log.warn("lon is NaN")}if(isNaN(a.lat)){log.warn("lat is NaN")}return a},distanceLonLat:function(d,c,b,a){return KCoord.distance(new KCoord.fromLonLat(d,c),new KCoord.fromLonLat(b,a))},distance:function(d,c){return OpenLayers.Util.distVincenty(d,c)}};var DatedNamedKCoord={fromLonLat:function(e,d,b,a){var c={};c.lon=e;c.lat=d;c.name=b;c.date=a;return c}};var KDate={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],months:["January","February","March","April","Mai","June","July","August","September","October","November","December"],toUSTimeString:function(b){var c;var a=b.getHours();if(a==0){a=12;c="am"}else{if(a<=12){c="am"}else{a=a-12;c="pm"}}return a+":"+KDate.pad(b.getMinutes())+" "+c},pad:function(a){return a<10?"0"+a:a},humanReadableDuration:function(e){var c="";var b=Math.ceil(e/60);var a=Math.floor(b/60);if(a>0){b=b-a*60;c=""+a+(b?"h "+b+"min":" hours")}else{c=""+b+"min"}return c},prettyDate:function(c){var b=c.getDay();var f=c.getDate();var e=c.getMonth()+1;var d=c.getFullYear();var a;switch(f){case 1:case 21:case 31:a="st";break;case 2:case 3:case 22:case 23:a="d";break;default:a="th"}return this.days[b]+", "+this.months[e]+" "+f+a+" "+d}};function KTimer(f,i,b){var c;var a;var j=i;var h=f;var e=b?$(b):null;var d;this.start=function(){this.pause();c=new Date().getTime()+h;g()};this.pause=function(){if(a){d=new Date().getTime();clearTimeout(a);a=null}};this.resume=function(){if(!a&&d){var k=new Date().getTime();var l=k-d;c+=l;if(k<c){d=0;g()}}};this.setCallback=function(k){j=k};this.setDuration=function(k){h=k};this.setDiv=function(k){e=k};function g(){var k=Math.min(new Date().getTime(),c);if(e){e.css("width",100*(f-(c-k))/h+"%")}if(k<c){a=setTimeout(function(){g()},100)}else{a=null;if(j){j()}}}}if(!commons){var commons={}}commons.map={ESPGLonLat:new OpenLayers.Projection("EPSG:4326"),ESPGMercator:new OpenLayers.Projection("EPSG:900913"),addSelectOnLayer:function(c,b){var a=new OpenLayers.Control.SelectFeature(b,{hover:true,onSelect:function(d){if(!d.marker||!d.marker.onMouseEnter){return}d.marker.onMouseEnter()},onUnselect:function(d){if(!d.marker||!d.marker.onMouseLeave){return}d.marker.onMouseLeave()}});c.addControl(a);a.activate()},lonLatToMercator:function(b){var a=new OpenLayers.LonLat(b.lon,b.lat);a.transform(commons.map.ESPGLonLat,commons.map.ESPGMercator);return a},mercatorToLonLat:function(a){var b=new OpenLayers.LonLat(a.lon,a.lat);b.transform(commons.map.ESPGMercator,commons.map.ESPGLonLat);return b},decodePolyine:function(c){var e=c.length;var d=0;var g=[];var i=0;var j=0;while(d<e){var k;var a=0;var l=0;do{k=c.charCodeAt(d++)-63;l|=(k&31)<<a;a+=5}while(k>=32);var f=((l&1)?~(l>>1):(l>>1));i+=f;a=0;l=0;do{k=c.charCodeAt(d++)-63;l|=(k&31)<<a;a+=5}while(k>=32);var h=((l&1)?~(l>>1):(l>>1));j+=h;g.push([i*0.00001,j*0.00001])}return g},featureFromPolyline:function(f){var j=commons.map.decodePolyine(f.points);var a=[];for(var c=0;c<j.length;c++){var g=j[c];var d=new OpenLayers.LonLat(g[1],g[0]);var e=commons.map.lonLatToMercator(d);var h=new OpenLayers.Geometry.Point(e.lon,e.lat);a.push(h)}var b=new OpenLayers.Geometry.LineString(a);var k=new OpenLayers.Feature.Vector(b);return k},lineFeaturesWithArrow:function(c,g,b,a){if(!a){a="#000"}var d=commons.map.featureFromPolyline(c);d.style={strokeColor:b,strokeWidth:g-2};var f=commons.map.createArrowFromLine(d.geometry);$.extend(f.style,{strokeColor:a,strokeWidth:1,fillColor:b,pointRadius:g});var e=commons.map.featureFromPolyline(c);e.style={strokeColor:a,strokeWidth:g};return[e,f,d]},circleFeature:function(c,b){var f=commons.map.lonLatToMercator(c);var a=new OpenLayers.Geometry.Point(f.lon,f.lat);var e=3+Math.floor(b*0.01);if(e>100){e=100}var g=OpenLayers.Geometry.Polygon.createRegularPolygon(a,b,e,0);var d=new OpenLayers.Feature.Vector(g);return d},lineFeature:function(g,f){var c=commons.map.lonLatToMercator(g);var b=commons.map.lonLatToMercator(f);var e=new Array(new OpenLayers.Geometry.Point(c.lon,c.lat),new OpenLayers.Geometry.Point(b.lon,b.lat));var a=new OpenLayers.Geometry.LineString(e);var d=new OpenLayers.Feature.Vector(a);return d},centerMapOnBounds:function(d,b,a){var c=b.clone().transform(this.ESPGLonLat,this.ESPGMercator);commons.map.centerMapOnMercBounds(d,c,a)},centerMapOnMercBounds:function(h,f,e){var b=f.getCenterLonLat();if(!e){var c=20037508.34*2;var g=f;var d=Math.floor(Math.log(h.size.w/256*c/g.getWidth())/Math.log(2));var a=Math.floor(Math.log(h.size.h/256*c/g.getHeight())/Math.log(2));e=Math.min(d,a)-3}h.setCenter(b,e)},offsetLonLatByAngleAndDistance:function(c,f,g){var b=commons.map.lonLatToMercator(c);var e=new OpenLayers.Geometry.Point(b.lon,b.lat);var d=new OpenLayers.Geometry.Point(e.x+Math.cos(f)*maxDistance,e.y+Math.sin(f)*maxDistance);var a=new OpenLayers.LonLat(d.x,d.y);return commons.map.mercatorToLonLat(a)},createArrowFromLine:function(c){if(!c instanceof OpenLayers.Geometry.LineString){return[]}var a=c.components[c.components.length-1];var e=c.components[c.components.length-3];var b={x1:a.x,y1:a.y,x2:e.x,y2:e.y};var g=bearing(b)-90;var f=new OpenLayers.Geometry.Point(a.x,a.y);var d=new OpenLayers.Feature.Vector(f);d.style={graphicName:"triangle",rotation:g,pointRadius:6};return d}};bearing=function(b){var e=0;var d=1;var a=b.x2-b.x1;var g=b.y2-b.y1;var c=Math.acos((a*e+g*d)/Math.sqrt(a*a+g*g));var f=360/(2*Math.PI)*c;if(a<0){return 360-f}else{return f}};var GLOBAL_K_MAP_POPUP_INDEX=0;var KMapPopup=function(i,h,a,k,g){var c;var e;var f=a;var b=i;var d=k;var j=g;(function(){e="K_MAP_POPUP_INDEX"+(GLOBAL_K_MAP_POPUP_INDEX++);var l=new OpenLayers.Icon("",new OpenLayers.Size(0,0),new OpenLayers.Pixel(-8-12-4-4,8));c=new OpenLayers.Popup.Anchored(null,commons.map.lonLatToMercator(h),new OpenLayers.Size(d,j),'<div id="POPUP_'+e+'" class="map-popup-hitbox"><div class="map-popup with-tick"><div id="'+e+'">'+f+"</div></div></div>",l,true);c.keepInMap=false;c.calculateRelativePosition=function(){return"tr"};c.setBackgroundColor("transparent")})();return{show:function(){this.onBeforeShow();b.addPopup(c);$("#POPUP_"+e).mouseleave(this.onMouseLeave).click(this.onClick).mouseenter(this.onMouseEnter);this.onAfterShow()},hide:function(){this.onBeforeHide();b.removePopup(c);this.onAfterHide()},html:function(l){f=l;$("#"+e).html(f)},onMouseLeave:function(){},onMouseEnter:function(){},onClick:function(){},onBeforeShow:function(){},onAfterShow:function(){},onBeforeHide:function(){},onAfterHide:function(){},bounds:function(){var n=new OpenLayers.Bounds();var m=b.getPixelFromLonLat(commons.map.lonLatToMercator(h));var l=new OpenLayers.Pixel(m.x+(d),m.y-(j));var o=b.getLonLatFromPixel(l);n.extend(h);n.extend(commons.map.mercatorToLonLat(o));return n},getMercatorCenter:function(){var n=b.getPixelFromLonLat(commons.map.lonLatToMercator(h));var m=new OpenLayers.Pixel(n.x+(d/2),n.y-(j/2));var l=b.getLonLatFromPixel(m);return l},getCenter:function(){return commons.map.mercatorToLonLat(this.getMercatorCenter())},center:function(){b.setCenter(this.getMercatorCenter())},pan:function(){b.panTo(this.getMercatorCenter())},isVisible:function(){return b.getExtent().containsLonLat(this.getMercatorCenter())},width:d,height:j,coord:h}};var KMarker=function(h,c,d,b){var i;var a=h;var e=c;var g=d;(function(){var j=commons.map.lonLatToMercator(g);var k=new OpenLayers.Geometry.Point(j.lon,j.lat);i=new OpenLayers.Feature.Vector(k,null,b)})();var f={feature:i,onMouseEnter:function(){},onMouseLeave:function(){},show:function(){e.addFeatures([i])},hide:function(){e.removeFeatures([i])},center:function(k){var j=commons.map.lonLatToMercator(g);a.setCenter(j,k)}};i.marker=f;return f};KMarker.basic=function(c,a,d){var b={externalGraphic:"http://old.isokron.com/static/img/markers/origin-marker-0.png",graphicWidth:32,graphicHeight:32,graphicXOffset:-16,graphicYOffset:-32};return new KMarker(c,a,d,b)};KMarker.mini=function(c,a,d){var b={externalGraphic:"mini-marker.png",graphicWidth:12,graphicHeight:16,graphicXOffset:-6,graphicYOffset:-16};return new KMarker(c,a,d,b)};KMarker.medium=function(c,a,d){var b={externalGraphic:"medium-marker.png",graphicWidth:22,graphicHeight:22,graphicXOffset:-11,graphicYOffset:-22};return new KMarker(c,a,d,b)};KMarker.zero=function(b,a,c){return new KMarker(b,a,c,null)};KMarker.text=function(c,a,e,d){var b={label:d,fontColor:"#000",fontSize:"14",fontFamily:"Arial",fontWeight:"bold",labelAlign:"lt"};return new KMarker(c,a,e,b)};if(!weng){var weng={}}weng.journey={cast:function(a){return a},fromGoogleJSONResponse:function(e,g,f){var c={};c.points=e.routes[0].overview_polyline.points;c.from=g;c.to=f;var d=0;for(var b=0;b<e.routes.length;b++){for(var a=0;a<e.routes[b].legs.length;a++){d+=e.routes[b].legs[a].duration.value}}c.duration=d;return this.cast(c)},toBounds:function(a){var b=new OpenLayers.Bounds();b.extend(new OpenLayers.LonLat(a.from.lon,a.from.lat));b.extend(new OpenLayers.LonLat(a.to.lon,a.to.lat));return b}};weng.scheduledJourney={fromWJourney:function(a,c,b){a.from.date=c;a.to.date=b;return a},lonLatInJourneyAtTime:function(d,e){var a=d.from.date.getTime();var c=d.to.date.getTime();var h=e.getTime();var g=(h-a)/(c-a);if(g<0||g>0.99){return null}var j=commons.map.decodePolyine(d.points);var f=Math.floor(g*j.length);var b=g*j.length-f;if(f<j.length-1){return KCoord.fromLonLat(j[f+1][1]*b+j[f][1]*(1-b),j[f+1][0]*b+j[f][0]*(1-b))}else{return KCoord.fromLonLat(j[f][1],j[f][0])}}};function WMapJourney(a){var c=a;var b=null;return{drawDate:function(f,e){var d=weng.scheduledJourney.lonLatInJourneyAtTime(c,f);if(b){e.removeFeatures([b.feature]);b=null}if(d){b=weng.map.marker.car(KCoord.toMercatorLonLat(d));e.addFeatures([b.feature])}},draw:function(d){log.debug("drawing journey");var e=weng.map.feature.carRouteFromJourney(c);d.addFeatures(e);return e}}}if(!weng){var weng={}}if(!weng.utils){weng.utils=new (function(){var a=null;return{getGoogleDirection:function(d,c,b){log.debug("calling Google Directions V3 API");weng.utils.getGoogleDirectionsService();a.route({origin:""+d.lat+", "+d.lon,destination:""+c.lat+", "+c.lon,travelMode:google.maps.TravelMode.DRIVING,unitSystem:google.maps.UnitSystem.METRIC,waypoints:[],optimizeWaypoints:true,provideRouteAlternatives:false,avoidHighways:true,avoidTolls:true,region:"fr"},function(g,e){if(e==google.maps.DirectionsStatus.OK){log.debug("received Directions from Google");var f=weng.journey.fromGoogleJSONResponse(g,d,c);f.duration=g.routes[0].legs[0].duration.value;f.distance=g.routes[0].legs[0].distance.value;b(f)}else{log.error("Directions failed due to: "+e)}})},getGoogleDirectionsService:function(){if(!a){a=new google.maps.DirectionsService()}return a}}})}Date.prototype.addHours=function(a){this.setHours(this.getHours()+a);return this};
