var bb_success;var bb_error;var bb_blackberryTimeout_id=-1;function handleBlackBerryLocationTimeout(){if(bb_blackberryTimeout_id!=-1){bb_error({message:"Timeout error",code:3})}}function handleBlackBerryLocation(){clearTimeout(bb_blackberryTimeout_id);bb_blackberryTimeout_id=-1;if(bb_success&&bb_error){if(blackberry.location.latitude==0&&blackberry.location.longitude==0){bb_error({message:"Position unavailable",code:2})}else{var a=null;if(blackberry.location.timestamp){a=new Date(blackberry.location.timestamp)}bb_success({timestamp:a,coords:{latitude:blackberry.location.latitude,longitude:blackberry.location.longitude}})}bb_success=null;bb_error=null}}var geo_position_js=function(){var a={};var b=null;var c="undefined";a.showMap=function(d,e){if(typeof(blackberry)!=c){blackberry.launch.newMap({latitude:d*100000,longitude:-e*100000})}else{window.location="http://maps.google.com/maps?q=loc:"+d+","+e}};a.getCurrentPosition=function(f,d,e){b.getCurrentPosition(f,d,e)};a.init=function(){try{if(typeof(geo_position_js_simulator)!=c){b=geo_position_js_simulator}else{if(typeof(bondi)!=c&&typeof(bondi.geolocation)!=c){b=bondi.geolocation}else{if(typeof(navigator.geolocation)!=c){b=navigator.geolocation;a.getCurrentPosition=function(h,e,g){function f(i){if(typeof(i.latitude)!=c){h({timestamp:i.timestamp,coords:{latitude:i.latitude,longitude:i.longitude}})}else{h(i)}}b.getCurrentPosition(f,e,g)}}else{if(typeof(window.blackberry)!=c&&blackberry.location.GPSSupported){if(typeof(blackberry.location.setAidMode)==c){return false}blackberry.location.setAidMode(2);a.getCurrentPosition=function(g,e,f){bb_success=g;bb_error=e;if(f.timeout){bb_blackberryTimeout_id=setTimeout("handleBlackBerryLocationTimeout()",f.timeout)}else{bb_blackberryTimeout_id=setTimeout("handleBlackBerryLocationTimeout()",60000)}blackberry.location.onLocationUpdate("handleBlackBerryLocation()");blackberry.location.refreshLocation()};b=blackberry.location}else{if(typeof(window.google)!=c&&typeof(google.gears)!=c){b=google.gears.factory.create("beta.geolocation")}else{if(typeof(Mojo)!=c&&typeof(Mojo.Service.Request)!="Mojo.Service.Request"){b=true;a.getCurrentPosition=function(g,e,f){parameters={};if(f){if(f.enableHighAccuracy&&f.enableHighAccuracy==true){parameters.accuracy=1}if(f.maximumAge){parameters.maximumAge=f.maximumAge}if(f.responseTime){if(f.responseTime<5){parameters.responseTime=1}else{if(f.responseTime<20){parameters.responseTime=2}else{parameters.timeout=3}}}}r=new Mojo.Service.Request("palm://com.palm.location",{method:"getCurrentPosition",parameters:parameters,onSuccess:function(h){g({timestamp:h.timestamp,coords:{latitude:h.latitude,longitude:h.longitude,heading:h.heading}})},onFailure:function(h){if(h.errorCode==1){e({code:3,message:"Timeout"})}else{if(h.errorCode==2){e({code:2,message:"Position unavailable"})}else{e({code:0,message:"Unknown Error: webOS-code"+errorCode})}}}})}}else{if(typeof(device)!=c&&typeof(device.getServiceObject)!=c){b=device.getServiceObject("Service.Location","ILocation");a.getCurrentPosition=function(h,e,f){function i(l,k,j){if(k==4){e({message:"Position unavailable",code:2})}else{h({timestamp:null,coords:{latitude:j.ReturnValue.Latitude,longitude:j.ReturnValue.Longitude,altitude:j.ReturnValue.Altitude,heading:j.ReturnValue.Heading}})}}var g=new Object();g.LocationInformationClass="BasicLocationInformation";b.ILocation.GetLocation(g,i)}}}}}}}}}catch(d){if(typeof(console)!=c){console.log(d)}return false}return b!=null};return a}();
