Revision: 201011
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 16 Apr 2010 15:54:44 +0300
changeset 55 eaf3908907b6
parent 54 e7cb6cffd49a
child 60 d4ff5bc2bcc5
child 70 eb8038201768
Revision: 201011 Kit: 201015
package_definition.xml
serviceproviders/jsapi/platformservices/lib/platformservices.js
serviceproviders/jsapi/platformservices/src/calendar.js
serviceproviders/jsapi/platformservices/src/camera.js
serviceproviders/jsapi/platformservices/src/commlog.js
serviceproviders/jsapi/platformservices/src/contacts.js
serviceproviders/jsapi/platformservices/src/framework.js
serviceproviders/jsapi/platformservices/src/geolocation.js
serviceproviders/jsapi/platformservices/src/landmarks.js
serviceproviders/jsapi/platformservices/src/media.js
serviceproviders/jsapi/platformservices/src/messaging.js
serviceproviders/jsapi/platformservices/src/sensors.js
serviceproviders/jsapi/platformservices/src/sysinfo.js
serviceproviders/rom/serviceapi.iby
serviceproviders/sapi_calendar/calendarservice/src/addentry.cpp
serviceproviders/sapi_calendar/src/calendarinterface.cpp
serviceproviders/sapi_calendar/src/calendariterableimpl.cpp
serviceproviders/sapi_location/inc/locationinterface.h
serviceproviders/sapi_location/locationservice/inc/locationservice.h
serviceproviders/sapi_location/locationservice/src/locationcoreimp.cpp
serviceproviders/sapi_location/locationservice/src/locationservice.cpp
serviceproviders/sapi_location/src/locationcallBack.cpp
serviceproviders/sapi_location/src/locationinterface.cpp
serviceproviders/sapi_logging/loggingservice/src/loggingasyncservice.cpp
serviceproviders/sapi_logging/src/loggingcallback.cpp
serviceproviders/sapi_mediamanagement/tsrc/dev/tmediathumbnailprovidertest/group/bld.inf
serviceproviders/sapi_serviceregistry/tsrc/dev/tserviceregistryprovidertest/conf/tserviceregistry.cfg
serviceproviders/sapi_serviceregistry/tsrc/dev/tserviceregistryprovidertest/group/bld.inf
serviceproviders/sapi_sysinfo/sysinfoservice/src/activerequests.cpp
serviceproviders/sapi_sysinfo/sysinfoservice/src/sysinfoservice.cpp
--- a/package_definition.xml	Fri Mar 19 09:42:20 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
-  <package id="serviceapi" name="Service API" levels="os mw1 mw2 app">
-  	<!-- should break up this collection into something meaningful -->
-    <collection id="serviceproviders" name="Service Providers" level="mw1">
-      <component id="sapi_applicationmanager" name="Application Manager SAPI" filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_applicationmanager/group"/>
-			<!-- should test bld.inf be #included? -->
-        <!-- <unit bldFile="serviceproviders/sapi_applicationmanager/tsrc/dev/cruntimetest/group"/> -->
-      </component>
-      <component id="sapi_calendar" name="Calendar SAPI" filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_calendar/group"/>
-			<!-- should test bld.inf be #included? -->
-        <!-- <unit bldFile="serviceproviders/sapi_calendar/tsrc/testing/tcalprovider_combined/group"/> -->
-      </component>
-      <component id="sapi_contacts_vpbk" name="Contacts Phonebook SAPI"  filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_contacts_vpbk/group"/>
-      </component>
-      <component id="sapi_landmarks" name="Landmarks SAPI" filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_landmarks/group"/>
-			<!-- should test bld.infs be #included? -->
-        <!-- <unit bldFile="serviceproviders/sapi_landmarks/tsrc/testing/tlandmarkstest/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_landmarks/tsrc/dev/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_landmarks/tsrc/testing/tlandmarksprovidertest/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_landmarks/tsrc/dev/landmarks_inputparams/group"/> -->
-      </component>
-      <component id="sapi_location" name="Location SAPI"  filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_location/group"/>
-			<!-- should test bld.infs be #included? -->
-        <!-- <unit bldFile="serviceproviders/sapi_location/tsrc/testing/performance/pgetloc/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_location/tsrc/testing/performance/pgetlocopts/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_location/tsrc/testing/performance/pgetlocasync/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_location/tsrc/testing/performance/pgetbearing/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_location/tsrc/dev/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_location/tsrc/testing/performance/pgetdistance/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_location/tsrc/testing/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_location/tsrc/testing/performance/pmove/group"/> -->
-      </component>
-      <component id="sapi_logging" name="Logging SAPI"  filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_logging/group"/>
-        <!-- <unit bldFile="serviceproviders/sapi_logging/tsrc/dev/group"/> -->
-      </component>
-      <component id="sapi_mediamanagement" name="Media Management SAPI" filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_mediamanagement/group"/>
-			<!-- should test bld.infs be #included? -->
-        <!-- <unit bldFile="serviceproviders/sapi_mediamanagement/tsrc/dev/taiwmediamgmttest/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_mediamanagement/tsrc/testing/performance/runtime_perf/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_mediamanagement/tsrc/testing/performance/s60_perf/group"/> -->
-      </component>
-      <component id="sapi_messaging" name="Messaging SAPI" filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_messaging/group"/>
-			<!-- should test bld.infs be #included? -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/notify/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/status/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/delete/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/getlist/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/s60_getlist/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/s60_asyncsend/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/s60_notify/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/send/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/s60_status/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/tmessagingprovidertest/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/s60_delete/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/s60_send/group"/> -->
-        <!-- <unit bldFile="serviceproviders/sapi_messaging/tsrc/testing/performance/asyncsend/group"/> -->
-      </component>
-      <component id="sapi_sensor" name="Sensor SAPI" filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_sensor/group"/>
-      </component>
-      <component id="sapi_sysinfo" name="Sysinfo SAPI" filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_sysinfo/group"/>
-      </component>
-      <component id="sapi_serviceregistry" name="Service Registry SAPI" filter="s60" class="plugin">
-        <unit bldFile="serviceproviders/sapi_serviceregistry/group"/>
-			<!-- should test bld.infs be #included? -->
-        <!-- <unit bldFile="serviceproviders/sapi_serviceregistry/tsrc/dev/group"/> -->
-      </component>
-    </collection>
-    <collection id="serviceapi_info" name="Service API Info" level="app">
-      <component id="serviceproviders_build" filter="s60" name="Service API Build">
-      	<!--  can the exports be distributed? -->
-        <unit bldFile="serviceproviders/group"/>
-      </component>
-      <component id="serviceapi_test" filter="s60" name="Service API Test" purpose="development">
-		<!-- Does this need to exist? -->
-        <!-- <unit bldFile="tsrc/group"/> -->
-      </component>
-    </collection>
-  </package>
-</SystemDefinition>
--- a/serviceproviders/jsapi/platformservices/lib/platformservices.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/lib/platformservices.js	Fri Apr 16 15:54:44 2010 +0300
@@ -565,7 +565,7 @@
 }else{
 this.catItem=this.iter.getNext();
 this.hasElement=true;
-if(typeof this.catItem=="undefined"){
+if(typeof this.catItem=="undefined"||this.catItem==null){
 this.catItem=null;
 return false;
 }else{
@@ -581,10 +581,14 @@
 if(typeof (this.catItem)=="undefined"){
 this.catItem=null;
 }
+if(_69){
 return new __sp_device_category_obj(_69);
 }else{
+return null;
+}
+}else{
 this.catItem=this.iter.getNext();
-if(typeof this.catItem=="undefined"){
+if(typeof this.catItem=="undefined"||this.catItem==null){
 this.hasElement=true;
 this.catItem=null;
 return null;
@@ -988,10 +992,14 @@
 if(typeof (this.lmItem)=="undefined"){
 this.lmItem=null;
 }
+if(_90){
 return new __sp_device_landmark_obj(_90);
 }else{
+return null;
+}
+}else{
 this.lmItem=this.iter.getNext();
-if(typeof this.lmItem=="undefined"){
+if(typeof this.lmItem=="undefined"||this.lmItem==null){
 this.hasElement=true;
 this.lmItem=null;
 return null;
@@ -1000,7 +1008,7 @@
 var _91=new Object();
 _91=this.lmItem;
 this.lmItem=this.iter.getNext();
-if(typeof (this.lmItem)=="undefined"){
+if(typeof (this.lmItem)=="undefined"||this.lmItem==null){
 this.lmItem=null;
 }
 return new __sp_device_landmark_obj(_91);
@@ -3252,8 +3260,8 @@
 return true;
 }
 };
-function mappingVerification(_1eb){
-if(_1eb==1016||_1eb==1012||_1eb==1010||_1eb==1009||_1eb==1005||_1eb==1000||_1eb==1011||_1eb==1007||_1eb==1003||_1eb==1002){
+function mappingVerification_sysinfo(_1eb){
+if(_1eb===1016||_1eb===1012||_1eb===1010||_1eb===1009||_1eb===1005||_1eb===1000||_1eb===1011||_1eb===1007||_1eb===1003||_1eb===1002||_1eb===1004){
 return true;
 }else{
 return false;
@@ -3444,7 +3452,7 @@
 glob_obj.addToGlobalArray(rval.TransactionID,_1fa,_1fb);
 }
 if(rval.ErrorCode!=0){
-var _202=mappingVerification(rval.ErrorCode);
+var _202=mappingVerification_sysinfo(rval.ErrorCode);
 if(_202){
 switch(MapErrorCode[rval.ErrorCode]){
 case this.error.MISSING_ARG_ERR:
@@ -4003,28 +4011,44 @@
 this.timeout;
 this.maximumAge;
 };
+function getGeoLocationPosition(_263){
+var _264=new Location_Coordinates();
+_264.longitude=(_263.Longitude==undefined)?null:_263.Longitude;
+_264.latitude=(_263.Latitude==undefined)?null:_263.Latitude;
+_264.altitude=(_263.Altitude==undefined)?null:_263.Altitude;
+_264.accuracy=(_263.HorizontalAccuracy==undefined)?null:_263.HorizontalAccuracy;
+_264.altitudeAccuracy=(_263.VerticalAccuracy==undefined)?null:_263.VerticalAccuracy;
+_264.heading=(_263.Heading==undefined)?null:_263.Heading;
+_264.speed=(_263.HorizontalSpeed==undefined)?null:_263.HorizontalSpeed;
+var _265=new Location_Position();
+_265.coords={};
+modifyObjectBaseProp(_265.coords);
+_265.coords=_264;
+_265.timestamp=(_263.timestamp==undefined)?null:_263.timestamp;
+return _265;
+};
 var __sp_location_trace_transactionId=-1;
-function __sp_location_handle_error(_263,_264,_265){
-if((_263!=undefined)&&(typeof _263=="function")&&(_263!=null)){
-var _266=new Location_PositionError();
-if((-21)==_264){
-_266.code=_266.PERMISSION_DENIED;
-_266.message="permission denied";
-}else{
-if((-33)==_264){
-_266.code=_266.TIMEOUT;
-_266.message="request timed out";
-}else{
-_266.code=_266.UNKNOWN_ERROR;
-_266.message="UnKnown Error";
-}
-}
-_263(_266);
-}else{
-var _266=new Location_PositionError();
-_266.code=_266.UNKNOWN_ERROR;
-_266.message="UnKnown Error";
-throw _266;
+function __sp_location_handle_error(_266,_267,_268){
+if((_266!=undefined)&&(typeof _266=="function")&&(_266!=null)){
+var _269=new Location_PositionError();
+if((-21)==_267){
+_269.code=_269.PERMISSION_DENIED;
+_269.message="permission denied";
+}else{
+if((-33)==_267){
+_269.code=_269.TIMEOUT;
+_269.message="request timed out";
+}else{
+_269.code=_269.UNKNOWN_ERROR;
+_269.message="UnKnown Error";
+}
+}
+_266(_269);
+}else{
+var _269=new Location_PositionError();
+_269.code=_269.UNKNOWN_ERROR;
+_269.message="UnKnown Error";
+throw _269;
 }
 };
 function __sp_location_descriptor(){
@@ -4037,176 +4061,146 @@
 };
 var obj;
 function __sp_getLocation_cb(arg1,arg2,arg3){
-var _26a;
-_26a=glob_obj.getFromArray(arg1);
-if(_26a){
-success_cb1=_26a.success_cb;
-error_cb=_26a.error_cb;
-}else{
-alert("Geolocation: __sp_getLocation_cb: Callback not found ");
+var _26d;
+_26d=glob_obj.getFromArray(arg1);
+if(_26d){
+success_cb1=_26d.success_cb;
+error_cb=_26d.error_cb;
+}else{
 return;
 }
 if(arg3.ErrorCode){
 __sp_location_handle_error(error_cb,arg3.ErrorCode,arg3.ErrorMessage);
 return;
 }else{
-var _26b=new Location_Coordinates();
-_26b.longitude=(arg3.ReturnValue.Longitude==undefined)?null:arg3.ReturnValue.Longitude;
-_26b.latitude=(arg3.ReturnValue.Latitude==undefined)?null:arg3.ReturnValue.Latitude;
-_26b.altitude=(arg3.ReturnValue.Altitude==undefined)?null:arg3.ReturnValue.Altitude;
-_26b.accuracy=(arg3.ReturnValue.HorizontalAccuracy==undefined)?null:arg3.ReturnValue.HorizontalAccuracy;
-_26b.altitudeAccuracy=(arg3.ReturnValue.VerticalAccuracy==undefined)?null:arg3.ReturnValue.VerticalAccuracy;
-_26b.heading=(arg3.ReturnValue.Heading==undefined)?null:arg3.ReturnValue.Heading;
-_26b.speed=(arg3.ReturnValue.HorizontalSpeed==undefined)?null:arg3.ReturnValue.HorizontalSpeed;
-var _26c=new Location_Position();
-_26c.coords={};
-modifyObjectBaseProp(_26c.coords);
-_26c.coords=_26b;
-_26c.timestamp=new Date();
-success_cb1(_26c);
-delete _26c.timestamp;
-delete _26c;
-delete _26b;
+var _26e=getGeoLocationPosition(arg3.ReturnValue);
+success_cb1(_26e);
+delete _26e;
 }
 glob_obj.removeFromArray(arg1);
 };
-function __sp_getLocation(_26d,_26e,_26f){
-if((_26d==undefined)||(_26d==null)||(typeof (_26d)!="function")){
-var _270="Wrong callback type";
-__sp_location_handle_error(_26e,0,_270);
-}
-if((_26e!=undefined)){
-if((_26e!=null)&&(_26e!="")&&(typeof (_26e)!="function")){
-var _271=new Location_PositionError();
-_271.code=-1;
-throw _271;
-}
-}
-var _272;
-var _273={};
-modifyObjectBaseProp(_273);
-_273.LocationInformationClass="GenericLocationInfo";
-var _274={};
-modifyObjectBaseProp(_274);
-_274.UpdateInterval=0;
-if(_26f!=undefined&&_26f!=null){
-if((typeof (_26f)!="object")){
-var _275="Wrong posOptions type";
-__sp_location_handle_error(_26e,0,_275);
+function __sp_getLocation(_26f,_270,_271){
+if((_26f==undefined)||(_26f==null)||(typeof (_26f)!="function")){
+var _272="Wrong callback type";
+__sp_location_handle_error(_270,0,_272);
+}
+if((_270!=undefined)){
+if((_270!=null)&&(_270!="")&&(typeof (_270)!="function")){
+var _273=new Location_PositionError();
+_273.code=-1;
+throw _273;
+}
+}
+var _274;
+var _275={};
+modifyObjectBaseProp(_275);
+_275.LocationInformationClass="GenericLocationInfo";
+var _276={};
+modifyObjectBaseProp(_276);
+_276.UpdateInterval=0;
+if(_271!=undefined&&_271!=null){
+if((typeof (_271)!="object")){
+var _277="Wrong posOptions type";
+__sp_location_handle_error(_270,0,_277);
 return;
 }
 }
-if(_26f!=undefined){
-if(_26f.maximumAge!=undefined){
-if(_26f.maximumAge){
-if((_26f.maximumAge==Infinity)){
-if((_26f.enableHighAccuracy==undefined)||(typeof (_26f.enableHighAccuracy)=="boolean")){
+if(_271!=undefined){
+if(_271.maximumAge!=undefined){
+if(_271.maximumAge){
+if((_271.maximumAge==Infinity)){
+if((_271.enableHighAccuracy==undefined)||(typeof (_271.enableHighAccuracy)=="boolean")){
 var arg3=this.so.ILocation.GetLastPosition();
 if(arg3.ErrorCode<0){
-var _275="Invalid input type";
-__sp_location_handle_error(_26e,0,_275);
+var _277="Invalid input type";
+__sp_location_handle_error(_270,0,_277);
+return;
+}
+var _279=getGeoLocationPosition(arg3.ReturnValue);
+success_cb1(_279);
+return;
+}
+}
+if(!(isNaN(parseInt(_271.maximumAge)))){
+if((_271.maximumAge==0)){
+var _277="Invalid input type";
+__sp_location_handle_error(_270,0,_277);
 return;
 }
-var _277=new Location_Coordinates();
-_277.longitude=(arg3.ReturnValue.Longitude==undefined)?null:arg3.ReturnValue.Longitude;
-_277.latitude=(arg3.ReturnValue.Latitude==undefined)?null:arg3.ReturnValue.Latitude;
-_277.altitude=(arg3.ReturnValue.Altitude==undefined)?null:arg3.ReturnValue.Altitude;
-_277.accuracy=(arg3.ReturnValue.HorizontalAccuracy==undefined)?null:arg3.ReturnValue.HorizontalAccuracy;
-_277.altitudeAccuracy=(arg3.ReturnValue.VerticalAccuracy==undefined)?null:arg3.ReturnValue.VerticalAccuracy;
-_277.heading=(arg3.ReturnValue.Heading==undefined)?null:arg3.ReturnValue.Heading;
-_277.speed=(arg3.ReturnValue.HorizontalSpeed==undefined)?null:arg3.ReturnValue.HorizontalSpeed;
-var _278=new Location_Position();
-_278.coords={};
-modifyObjectBaseProp(_278.coords);
-_278.coords=_277;
-_278.timestamp=new Date();
-_26d(_278);
-delete _278.timestamp;
-delete _278;
-delete _277;
+_276.UpdateMaxAge=_271.maximumAge*1000;
+}else{
+var _277="Invalid input type";
+__sp_location_handle_error(_270,0,_277);
 return;
 }
-}
-if(!(isNaN(parseInt(_26f.maximumAge)))){
-if((_26f.maximumAge==0)){
-var _275="Invalid input type";
-__sp_location_handle_error(_26e,0,_275);
-return;
-}
-_274.UpdateMaxAge=_26f.maximumAge;
-}else{
-var _275="Invalid input type";
-__sp_location_handle_error(_26e,0,_275);
+}else{
+if((_271.maximumAge==null)||(_271.maximumAge=="")){
+}
+}
+}
+if((_271.enableHighAccuracy!==undefined)){
+if(_271.enableHighAccuracy==true){
+_275.EnableHighAccuracy=_271.enableHighAccuracy;
+}else{
+if(_271.enableHighAccuracy==false){
+_275.EnableHighAccuracy=_271.enableHighAccuracy;
+}else{
+if((_271.enableHighAccuracy==null)||(_271.enableHighAccuracy=="")){
+}else{
+if((typeof (_271.enableHighAccuracy)!="boolean")){
+var _27a="Wrong value for enableHighAccuracy param";
+__sp_location_handle_error(_270,0,_27a);
 return;
 }
-}else{
-if((_26f.maximumAge==null)||(_26f.maximumAge=="")){
-}
-}
-}
-if((_26f.enableHighAccuracy!==undefined)){
-if(_26f.enableHighAccuracy==true){
-_273.EnableHighAccuracy=_26f.enableHighAccuracy;
-}else{
-if(_26f.enableHighAccuracy==false){
-_273.EnableHighAccuracy=_26f.enableHighAccuracy;
-}else{
-if((_26f.enableHighAccuracy==null)||(_26f.enableHighAccuracy=="")){
-}else{
-if((typeof (_26f.enableHighAccuracy)!="boolean")){
-var _279="Wrong value for enableHighAccuracy param";
-__sp_location_handle_error(_26e,0,_279);
+}
+}
+}
+}
+if(_271.timeout!==undefined){
+if((_271.timeout!==null)||((_271.timeout!==""))){
+if((_271.timeout==Infinity)){
+var _277="Invalid input type";
+__sp_location_handle_error(_270,0,_277);
 return;
-}
-}
-}
-}
-}
-if(_26f.timeout!==undefined){
-if((_26f.timeout!==null)||((_26f.timeout!==""))){
-if((_26f.timeout==Infinity)){
-var _275="Invalid input type";
-__sp_location_handle_error(_26e,0,_275);
+}else{
+if(!(isNaN(parseInt(_271.timeout)))){
+if((_271.timeout<=2147483647)){
+if((_271.timeout==0)){
+var _277="Data out of range";
+__sp_location_handle_error(_270,0,_277);
+return;
+}
+_276.UpdateTimeOut=_271.timeout*1000;
+}else{
+var _277="Invalid input type";
+__sp_location_handle_error(_270,0,_277);
 return;
-}else{
-if(!(isNaN(parseInt(_26f.timeout)))){
-if((_26f.timeout<=2147483647)){
-if((_26f.timeout==0)){
-var _275="Invalid input type";
-__sp_location_handle_error(_26e,0,_275);
-return;
-}
-_274.UpdateTimeOut=_26f.timeout;
-}else{
-var _275="Invalid input type";
-__sp_location_handle_error(_26e,0,_275);
+}
+}
+}
+}else{
+if((_271.timeout===null)||((_271.timeout===""))){
+}else{
+var _277="Invalid input type";
+__sp_location_handle_error(_270,0,_277);
 return;
 }
 }
 }
-}else{
-if((_26f.timeout===null)||((_26f.timeout===""))){
-}else{
-var _275="Invalid input type";
-__sp_location_handle_error(_26e,0,_275);
-return;
-}
-}
-}
-}
-_274.PartialUpdates=false;
-_273.Updateoptions=_274;
+}
+_276.PartialUpdates=false;
+_275.Updateoptions=_276;
 try{
-temp_scb=_26d;
-temp_ecb=_26e;
-var rval=this.so.ILocation.GetLocation(_273,this.getLocationCb);
+temp_scb=_26f;
+temp_ecb=_270;
+var rval=this.so.ILocation.GetLocation(_275,this.getLocationCb);
 if(rval.TransactionID){
-glob_obj.addToGlobalArray(rval.TransactionID,_26d,_26e);
-}
-delete _274;
-delete _273;
+glob_obj.addToGlobalArray(rval.TransactionID,_26f,_270);
+}
+delete _276;
+delete _275;
 if(rval.ErrorCode!=0){
-__sp_location_handle_error(_26e,rval.ErrorCode,rval.ErrorMessage);
+__sp_location_handle_error(_270,rval.ErrorCode,rval.ErrorMessage);
 return;
 }
 }
@@ -4217,35 +4211,19 @@
 var __sp_location_trace_ucb=null;
 var __sp_location_fail_cb=null;
 function __sp_traceLocation_cb(arg1,arg2,arg3){
-var _27e;
-_27e=glob_obj.getFromArray(arg1);
-if(_27e){
-success_cb=_27e.success_cb;
-error_cb=_27e.error_cb;
-}else{
-alert("Geolocation: __sp_traceLocation_cb: Callback not found ");
+var _27f;
+_27f=glob_obj.getFromArray(arg1);
+if(_27f){
+success_cb=_27f.success_cb;
+error_cb=_27f.error_cb;
+}else{
 return;
 }
 if(arg3.ErrorCode){
 __sp_location_handle_error(error_cb,arg3.ErrorCode,arg3.ErrorMessage);
 }else{
-var _27f=new Location_Coordinates();
-_27f.longitude=(arg3.ReturnValue.Longitude==undefined)?null:arg3.ReturnValue.Longitude;
-_27f.latitude=(arg3.ReturnValue.Latitude==undefined)?null:arg3.ReturnValue.Latitude;
-_27f.altitude=(arg3.ReturnValue.Altitude==undefined)?null:arg3.ReturnValue.Altitude;
-_27f.accuracy=(arg3.ReturnValue.HorizontalAccuracy==undefined)?null:arg3.ReturnValue.HorizontalAccuracy;
-_27f.altitudeAccuracy=(arg3.ReturnValue.VerticalAccuracy==undefined)?null:arg3.ReturnValue.VerticalAccuracy;
-_27f.heading=(arg3.ReturnValue.Heading==undefined)?null:arg3.ReturnValue.Heading;
-_27f.speed=(arg3.ReturnValue.HorizontalSpeed==undefined)?null:arg3.ReturnValue.HorizontalSpeed;
-var _280=new Location_Position();
-_280.coords={};
-modifyObjectBaseProp(_280.coords);
-_280.coords=_27f;
-_280.timestamp=new Date();
+var _280=getGeoLocationPosition(arg3.ReturnValue);
 success_cb(_280);
-delete _280.timestamp;
-delete _280;
-delete _27f;
 return;
 }
 glob_obj.removeFromArray(arg1);
@@ -4261,7 +4239,7 @@
 __sp_location_handle_error(_282,0,_284);
 return;
 }
-if((_282!=undefined)){
+if((_282)){
 if((_282!=null)&&(_282!="")&&(typeof (_282)!="function")){
 var _285=new Location_PositionError();
 _285.code=-1;
@@ -4314,7 +4292,7 @@
 __sp_location_handle_error(_282,0,_284);
 return;
 }
-_287.UpdateTimeOut=_283.timeout;
+_287.UpdateTimeOut=_283.timeout*1000;
 }
 }
 }else{
@@ -4332,7 +4310,7 @@
 _287.UpdateMaxAge=2147483647;
 }else{
 if(!(isNaN(parseInt(_283.maximumAge)))){
-_287.UpdateMaxAge=_283.maximumAge;
+_287.UpdateMaxAge=_283.maximumAge*1000;
 }else{
 if((_283.maximumAge===null)||((_283.maximumAge===""))){
 }else{
@@ -5026,7 +5004,7 @@
 _2e5.MessageParam={};
 modifyObjectBaseProp(_2e5.MessageParam);
 _2e5.MessageParam.LaunchEditor=false;
-_2e5.MessageType=(_2e3.type==undefined||_2e3.type==null)?"SMS":_2e3.type;
+_2e5.MessageType=(_2e3.type==undefined||_2e3.type==null||_2e3.type=="")?"SMS":_2e3.type;
 if(_2e3.to){
 if(typeof (_2e3.to)=="string"){
 _2e5.To=_2e3.to;
@@ -5213,6 +5191,11 @@
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Messaging:getList:callback is not a function");
 }
 }
+if(_2ff!=null&&typeof _2ff!="undefined"){
+if(typeof (_2ff)!="function"){
+throw new DeviceException(this.error.INVALID_ARG_ERR,"Messaging: startEditor: ErrorCallback is invalid");
+}
+}
 if(_2fc!=null&&_2fc!=undefined&&typeof _2fc!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Messaging:getList:match is invalid");
 }
@@ -5224,17 +5207,14 @@
 }
 if(_2fd!=null&&_2fd!=undefined&&typeof _2fd=="number"){
 if((_2fd!=0)&&(_2fd!=1)){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Messaging:getList:sortkey is invalid");
+_2ff(new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR,"Messaging:getList:sortkey is out of range"));
+return;
 }
 }
 if(_2fe!=null&&_2fe!=undefined&&typeof _2fe=="number"){
 if((_2fe!=0)&&(_2fe!=1)){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Messaging:getList:sortorder is invalid");
-}
-}
-if(_2ff){
-if(typeof (_2ff)!="function"){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Messaging: startEditor: ErrorCallback is invalid");
+_2ff(new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR,"Messaging:getList:sortorder is out of range"));
+return;
 }
 }
 var _300={};
@@ -5426,9 +5406,6 @@
 throw new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR,"Messaging:startEditor:subject is too lengthy");
 }
 }
-if(_314.to==undefined||_314.to==null){
-throw new DeviceException(this.error.MISSING_ARG_ERR,"Messaging:startEditor:to field is missing");
-}
 if(_314.attachments!=undefined&&_314.attachments!=null&&typeof _314.attachments!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Messaging:startEditor:attachment is invalid");
 }
@@ -5697,7 +5674,6 @@
 }
 };
 function __sp_messaging_delete(id){
-a("messageId"+typeof id);
 if(!id){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Messaging:delete:id is missing");
 }else{
@@ -5719,7 +5695,6 @@
 _33d.MessageId=id;
 try{
 var _33e=this.so.IMessaging.Delete(_33d);
-a("MapErrorCode[ result.ErrorCode ]"+MapErrorCode[_33e.ErrorCode]);
 if(_33d){
 delete _33d.MessageId;
 }
@@ -5750,7 +5725,7 @@
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Messaging:setStatus:status is invalid");
 }
 if(typeof _341=="number"&&_341!=0&&_341!=1){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Messaging:setStatus:status is invalid");
+throw new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR,"Messaging:setStatus:status is out of range");
 }
 if((typeof id=="string")&&!(isNaN(id))){
 id=Number(id);
@@ -5768,7 +5743,6 @@
 _342.Status="Unread";
 }else{
 if((_341==this.STATUS_READ)){
-a("in read");
 _342.Status="Read";
 }
 }
@@ -5958,7 +5932,8 @@
 if(typeof (_35c.time.begin)!="object"){
 return false;
 }
-if(_35c.time.begin=="Invalid Date"){
+var _35d=new Date("January 1, 1970 00:01");
+if(_35c.time.begin<_35d){
 return false;
 }
 try{
@@ -6070,128 +6045,135 @@
 }
 return true;
 };
-function __sp_calendar_getList_repeatRule(_35d){
-var _35e;
-switch(_35d.Type){
+function __sp_calendar_getList_repeatRule(_35e){
+var _35f;
+switch(_35e.Type){
 case 1:
-_35e="daily";
-this.frequency=_35e.toString();
+_35f="daily";
+this.frequency=_35f.toString();
 break;
 case 2:
-_35e="weekly";
-this.frequency=_35e.toString();
+_35f="weekly";
+this.frequency=_35f.toString();
 break;
 case 3:
-_35e="monthly";
-this.frequency=_35e.toString();
+_35f="monthly";
+this.frequency=_35f.toString();
 break;
 case 4:
-_35e="yearly";
-this.frequency=_35e.toString();
+_35f="yearly";
+this.frequency=_35f.toString();
 break;
 default:
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: Repeat Rule Type is Invalid");
 }
-if(_35d.StartDate){
-this.startDate=new Date(_35d.StartDate);
-}
-if(_35d.UntilDate){
-this.untilDate=new Date(_35d.UntilDate);
-}
-if(_35d.Interval){
-this.interval=_35d.Interval;
-}
-if(_35d.DaysInWeek){
+if(_35e.StartDate){
+this.startDate=new Date(_35e.StartDate);
+}
+if(_35e.UntilDate){
+this.untilDate=new Date(_35e.UntilDate);
+}
+if(_35e.Interval){
+this.interval=_35e.Interval;
+}
+if(_35e.DaysInWeek){
 this.weekDays=[];
-for(var a in _35d.DaysInWeek){
-if(_35d.DaysInWeek[a]==6){
-_35d.DaysInWeek[a]=0;
-}else{
-_35d.DaysInWeek[a]=_35d.DaysInWeek[a]+1;
-}
-this.weekDays.push(_35d.DaysInWeek[a]);
-}
-}
-if(_35d.Month){
-this.month=_35d.Month;
-}
-if(_35d.DaysOfMonth){
-if(_35d.DaysOfMonth.Day){
-if(_35d.DaysOfMonth.Day==6){
-_35d.DaysOfMonth.Day=0;
-}else{
-_35d.DaysOfMonth.Day=_35d.DaysOfMonth.Day+1;
-}
-this.daysOfMonth.day=_35d.DaysOfMonth.Day;
-}
-if(_35d.DaysOfMonth.WeekNum){
-this.daysOfMonth.weekInMonth=_35d.DaysOfMonth.WeekNum;
-}
-}
-if(_35d.MonthDays){
+for(var a in _35e.DaysInWeek){
+if(_35e.DaysInWeek[a]==6){
+_35e.DaysInWeek[a]=0;
+}else{
+_35e.DaysInWeek[a]=_35e.DaysInWeek[a]+1;
+}
+this.weekDays.push(_35e.DaysInWeek[a]);
+}
+}
+if(_35e.Month){
+this.month=_35e.Month;
+}
+if(_35e.DaysOfMonth){
+if(_35e.DaysOfMonth.Day){
+if(_35e.DaysOfMonth.Day==6){
+_35e.DaysOfMonth.Day=0;
+}else{
+_35e.DaysOfMonth.Day=_35e.DaysOfMonth.Day+1;
+}
+this.daysOfMonth.day=_35e.DaysOfMonth.Day;
+}
+if(_35e.DaysOfMonth.WeekNum){
+this.daysOfMonth.weekInMonth=_35e.DaysOfMonth.WeekNum;
+}
+}
+if(_35e.MonthDays){
 this.monthDates=[];
-for(var i=0;i<_35d.MonthDays.length;i++){
-this.monthDates.push(_35d.MonthDays[i]-1);
-}
-}
-};
-function __sp_device_calendar_entry(_361){
-if(_361.id){
-this.id=_361.id;
-}
-if(_361.type){
-this.type=_361.Type;
-}
-if(_361.Summary){
-this.summary=_361.Summary;
-}
-if(_361.Description){
-this.description=_361.Description;
-}
-if(_361.Location){
-this.location=_361.Location;
-}
-if(_361.InstanceStartTime){
-this.instanceStartTime=_361.InstanceStartTime;
-}
-if(_361.Priority>=0||_361.Priority<=255){
-this.priority=_361.Priority;
-}
-if(_361.Status){
-this.status=_361.Status;
-}
-if(_361.ExDates){
-this.exceptionDates=_361.ExDates;
-}
-if(_361.RepeatRule){
-this.repeatRule=new __sp_calendar_getList_repeatRule(_361.RepeatRule);
+for(var i=0;i<_35e.MonthDays.length;i++){
+this.monthDates.push(_35e.MonthDays[i]-1);
+}
+}
+};
+function __sp_device_calendar_entry(_362){
+if(_362.id){
+this.id=_362.id;
+}
+if(_362.Type){
+this.type=_362.Type;
+}
+if(_362.Summary){
+this.summary=_362.Summary;
+}
+if(_362.Description){
+this.description=_362.Description;
+}
+if(_362.Location){
+this.location=_362.Location;
+}
+if(_362.InstanceStartTime){
+this.instanceStartTime=_362.InstanceStartTime;
+}
+if(_362.Priority>=0||_362.Priority<=255){
+this.priority=_362.Priority;
+}
+if(_362.Status){
+this.status=_362.Status;
+}
+if(_362.Status=="TodoCompleted"){
+this.status="Completed";
+}else{
+if(_362.Status=="TodoNeedsAction"){
+this.status="NeedsAction";
+}
+}
+if(_362.ExDates){
+this.exceptionDates=_362.ExDates;
+}
+if(_362.RepeatRule){
+this.repeatRule=new __sp_calendar_getList_repeatRule(_362.RepeatRule);
 }
 if(dataGetList==0){
-this.time=new __sp_calendar_entry_time(_361.InstanceStartTime,_361.InstanceEndTime,_361.AlarmTime);
-}else{
-this.time=new __sp_calendar_entry_time(_361.StartTime,_361.EndTime,_361.AlarmTime);
-}
-};
-function __sp_daysOfMonth_build(_362){
-if(_362.day){
-if(_362.day==0){
-_362.day=6;
-}else{
-_362.day=_362.day-1;
-}
-this.Day=_362.day;
-}
-if(_362.weekInMonth){
-this.WeekNum=_362.weekInMonth;
-}
-};
-function __sp_calendar_addEntry_repeatRule(_363,str){
+this.time=new __sp_calendar_entry_time(_362.InstanceStartTime,_362.InstanceEndTime,_362.AlarmTime);
+}else{
+this.time=new __sp_calendar_entry_time(_362.StartTime,_362.EndTime,_362.AlarmTime);
+}
+};
+function __sp_daysOfMonth_build(_363){
+if(_363.day){
+if(_363.day==0){
+_363.day=6;
+}else{
+_363.day=_363.day-1;
+}
+this.Day=_363.day;
+}
+if(_363.weekInMonth){
+this.WeekNum=_363.weekInMonth;
+}
+};
+function __sp_calendar_addEntry_repeatRule(_364,str){
 try{
-if(!(_363.frequency)){
+if(!(_364.frequency)){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: addEntry: frequency is missing");
 }else{
-var _365=_363.frequency;
-switch(_365){
+var _366=_364.frequency;
+switch(_366){
 case "daily":
 this.Type=1;
 break;
@@ -6207,40 +6189,40 @@
 default:
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: "+str+" Repeat Rule Type is Invalid");
 }
-if(_363.startDate){
-this.StartDate=_363.startDate;
-}
-if(_363.untilDate){
-this.UntilDate=_363.untilDate;
-}
-if(_363.interval){
-this.Interval=_363.interval;
-}
-if(_363.weekDays){
+if(_364.startDate){
+this.StartDate=_364.startDate;
+}
+if(_364.untilDate){
+this.UntilDate=_364.untilDate;
+}
+if(_364.interval){
+this.Interval=_364.interval;
+}
+if(_364.weekDays){
 this.DaysInWeek=[];
-for(var a in _363.weekDays){
-if(_363.weekDays[a]==0){
-_363.weekDays[a]=6;
-}else{
-_363.weekDays[a]=_363.weekDays[a]-1;
-}
-this.DaysInWeek.push(_363.weekDays[a]);
-}
-}
-if(_363.month){
-this.Month=_363.month;
-}
-if(_363.monthDates){
+for(var a in _364.weekDays){
+if(_364.weekDays[a]==0){
+_364.weekDays[a]=6;
+}else{
+_364.weekDays[a]=_364.weekDays[a]-1;
+}
+this.DaysInWeek.push(_364.weekDays[a]);
+}
+}
+if(_364.month){
+this.Month=_364.month;
+}
+if(_364.monthDates){
 this.MonthDays=[];
-for(var i=0;i<_363.monthDates.length;i++){
-this.MonthDays.push(_363.monthDates[i]-1);
-}
-}
-if(_363.daysOfMonth){
+for(var i=0;i<_364.monthDates.length;i++){
+this.MonthDays.push(_364.monthDates[i]-1);
+}
+}
+if(_364.daysOfMonth){
 this.DaysOfMonth=new Array();
-for(var a in _363.daysOfMonth){
-var _368=new __sp_daysOfMonth_build(_363.daysOfMonth[a]);
-(this.DaysOfMonth).push(_368);
+for(var a in _364.daysOfMonth){
+var _369=new __sp_daysOfMonth_build(_364.daysOfMonth[a]);
+(this.DaysOfMonth).push(_369);
 }
 }
 }
@@ -6249,110 +6231,105 @@
 __device_handle_exception(e,"__sp_calendar_addEntry_repeatRule: "+e);
 }
 };
-function __sp_calendar_entry(_369,str){
+function __sp_calendar_entry(_36a,str){
 try{
-if(_369.type){
-this.Type=_369.type;
-}
-if(_369.id){
-this.id=_369.id;
+if(_36a.type){
+this.Type=_36a.type;
+}
+if(_36a.id){
+this.id=_36a.id;
 if(isUpdate){
-if(_369.time){
-if(_369.time.begin){
-this.StartTime=_369.time.begin;
-}
-if(_369.time.end){
-this.EndTime=_369.time.end;
-}
-}
-}
-}
-if(_369.instanceStartTime){
-this.InstanceStartTime=_369.instanceStartTime;
-}
-if(_369.description){
-this.Description=_369.description;
-}else{
-if(isUpdate&&(_369.description==null)){
+if(_36a.time){
+if(_36a.time.begin){
+this.StartTime=_36a.time.begin;
+}
+if(_36a.time.end){
+this.EndTime=_36a.time.end;
+}
+}
+}
+}
+if(_36a.instanceStartTime){
+this.InstanceStartTime=_36a.instanceStartTime;
+}
+if(_36a.description){
+this.Description=_36a.description;
+}else{
+if(isUpdate&&(_36a.description==null)){
 this.Description=" ";
 }
 }
-if(_369.summary){
-this.Summary=_369.summary;
-}else{
-if(isUpdate&&(_369.summary==null)){
+if(_36a.summary){
+this.Summary=_36a.summary;
+}else{
+if(isUpdate&&(_36a.summary==null)){
 this.Summary=" ";
 }
 }
-if(_369.location){
-this.Location=_369.location;
-}else{
-if(isUpdate&&(_369.location==null)){
+if(_36a.location){
+this.Location=_36a.location;
+}else{
+if(isUpdate&&(_36a.location==null)){
 this.Location=" ";
 }
 }
-if(_369.priority){
-if((_369.priority<0)||(_369.priority>255)){
+if(_36a.priority){
+if((_36a.priority<0)||(_36a.priority>255)){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: "+str+" Priority is Invalid");
 }else{
-this.Priority=_369.priority;
-}
-}else{
-if(isUpdate&&(_369.priority==null)){
+this.Priority=_36a.priority;
+}
+}else{
+if(isUpdate&&(_36a.priority==null)){
 this.Priority=0;
 }
 }
-if(_369.status){
-if(this.Type=="ToDo"){
-this.Status="Todo"+_369.status;
-}else{
-this.Status=_369.status;
-}
-}else{
-if(isUpdate&&(_369.status==null)){
-this.Status="Tentative";
-}
-}
-if(_369.exceptionDates){
-this.ExDates=_369.exceptionDates;
-}
-if(_369.repeatRule){
-this.RepeatRule=new __sp_calendar_addEntry_repeatRule(_369.repeatRule,str);
-}
-if(_369.type!=undefined&&_369.type!=null){
+if(_36a.status){
+this.Status=_36a.status;
+if(_36a.status=="NeedsAction"||_36a.status=="Completed"){
+this.Status="Todo"+_36a.status;
+}
+}
+if(_36a.exceptionDates){
+this.ExDates=_36a.exceptionDates;
+}
+if(_36a.repeatRule){
+this.RepeatRule=new __sp_calendar_addEntry_repeatRule(_36a.repeatRule,str);
+}
+if(_36a.type!=undefined&&_36a.type!=null){
 if(typeof this.Type!="string"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: "+str+" Type is not a string");
 }
 switch(this.Type){
 case "Meeting":
-if(_369.time){
-if(_369.time.begin){
-this.StartTime=_369.time.begin;
-}
-if(_369.time.end){
-this.EndTime=_369.time.end;
+if(_36a.time){
+if(_36a.time.begin){
+this.StartTime=_36a.time.begin;
+}
+if(_36a.time.end){
+this.EndTime=_36a.time.end;
 }
 }
 break;
 case "Reminder":
 case "Anniversary":
-if(_369.time){
-if(_369.time.begin){
-this.StartTime=_369.time.begin;
+if(_36a.time){
+if(_36a.time.begin){
+this.StartTime=_36a.time.begin;
 }
 }
 break;
 case "ToDo":
-if(_369.time){
-if(_369.time.end){
-this.EndTime=_369.time.end;
+if(_36a.time){
+if(_36a.time.end){
+this.EndTime=_36a.time.end;
 }
 }
 break;
 case "DayEvent":
-if(_369.time){
-if(_369.time.begin){
-this.StartTime=_369.time.begin;
+if(_36a.time){
+if(_36a.time.begin){
+this.StartTime=_36a.time.begin;
 }
 }
 break;
@@ -6360,9 +6337,9 @@
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: "+str+" Type is Invalid");
 }
 }
-if(_369.time){
-if(_369.time.alarm){
-this.AlarmTime=_369.time.alarm;
+if(_36a.time){
+if(_36a.time.alarm){
+this.AlarmTime=_36a.time.alarm;
 }
 }
 }
@@ -6371,48 +6348,48 @@
 }
 };
 function __sp_calendar_iterator_get_next(){
-var _36b=this.iter.getNext();
-if(typeof _36b=="undefined"){
+var _36c=this.iter.getNext();
+if(typeof _36c=="undefined"){
 return null;
 }
-var _36c=new __sp_device_calendar_entry(_36b);
-_36b.close();
-return _36c;
-};
-function __sp_calendar_iterator(_36d){
-this.iter=_36d;
+var _36d=new __sp_device_calendar_entry(_36c);
+_36c.close();
+return _36d;
+};
+function __sp_calendar_iterator(_36e){
+this.iter=_36e;
 this.next=__sp_calendar_iterator_get_next;
 this.close=function(){
 this.iter.close();
 };
 };
 var CALENDAR_APP_ID=268458241;
-function __sp_calendar_startEditor(_36e,_36f,_370){
+function __sp_calendar_startEditor(_36f,_370,_371){
 try{
-if(!_36e){
+if(!_36f){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: startEditor: callback is missing");
 }else{
-if(typeof _36e!="function"){
+if(typeof _36f!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: startEditor: callback is invalid");
 }
 }
-if(_370){
-if(typeof _370!="function"){
+if(_371){
+if(typeof _371!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: startEditor: error callback is invalid");
 }
 }
-if(_36f==null||_36f==undefined){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: startEditor: entry is invalid");
-}
-var _371=function(arg1,arg2,arg3){
+if(_370!=null){
+throw new DeviceException(this.error.NOT_SUPPORTED_ERR,"Calendar: startEditor: Entry should be null");
+}
+var _372=function(arg1,arg2,arg3){
 var iter=null;
-_36e(iter);
+_36f(iter);
 if(arg2!=event_cancelled){
 var iter=null;
 if(arg3.ReturnValue){
 iter=new __sp_calendar_iterator(arg3.ReturnValue);
 }
-_36e(iter);
+_36f(iter);
 }
 if(arg3.ErrorCode!=0){
 switch(arg3.ErrorCode){
@@ -6420,18 +6397,18 @@
 case this.error.INVALID_ARG_ERR:
 case this.error.NOT_SUPPORTED_ERR:
 if(arg3.ErrorMessage){
-var _376=splitErrorMessage(arg3.ErrorMessage);
-throw new DeviceException(MapErrorCode[arg3.ErrorCode],"Calendar: startEditor: "+_376);
+var _377=splitErrorMessage(arg3.ErrorMessage);
+throw new DeviceException(MapErrorCode[arg3.ErrorCode],"Calendar: startEditor: "+_377);
 }else{
 throw new DeviceException(MapErrorCode[arg3.ErrorCode],"Calendar: startEditor: Operation Failed");
 }
 break;
 default:
-_370(new DeviceException(MapErrorCode[arg3.ErrorCode],"Calendar: startEditor: Operation Failed"));
-}
-}
-};
-__s60_start_and_wait(CALENDAR_APP_ID,"",_371);
+_371(new DeviceException(MapErrorCode[arg3.ErrorCode],"Calendar: startEditor: Operation Failed"));
+}
+}
+};
+__s60_start_and_wait(CALENDAR_APP_ID,"",_372);
 return 0;
 }
 catch(e){
@@ -6440,19 +6417,19 @@
 };
 var __sp_calendar_entry_types="MeetingReminderToDoAnniversaryDayEvent";
 function __sp_calendar_getList_cb(arg1,arg2,arg3){
-var _37a;
 var _37b;
 var _37c;
-_37a=glob_obj.getFromArray(arg1);
-if(_37a){
-_37b=_37a.success_cb;
-_37c=_37a.error_cb;
+var _37d;
+_37b=glob_obj.getFromArray(arg1);
+if(_37b){
+_37c=_37b.success_cb;
+_37d=_37b.error_cb;
 }else{
 alert("Calendar: __sp_calendar_getList_cb: Callback not found ");
 return;
 }
 if(arg3.ErrorCode!=0){
-_37c(new DeviceException(arg3.ErrorCode,"Calendar: getList: Operation Failed"));
+_37d(new DeviceException(arg3.ErrorCode,"Calendar: getList: Operation Failed"));
 return;
 }
 if(arg2!=event_cancelled){
@@ -6460,104 +6437,104 @@
 if(arg3.ReturnValue){
 iter=new __sp_calendar_iterator(arg3.ReturnValue);
 }
-_37b(iter);
+_37c(iter);
 }
 glob_obj.removeFromArray(arg1);
 };
-function __sp_calendar_getList(_37e,_37f,_380){
+function __sp_calendar_getList(_37f,_380,_381){
 try{
-if(_37f){
-if(typeof _37f!="object"){
+if(_380){
+if(typeof _380!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
 }
-if(_37f.id){
+if(_380.id){
 dataGetList=1;
-if(typeof _37f.id!="string"){
+if(typeof _380.id!="string"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
 }
 }else{
 dataGetList=0;
 }
 }
-if(!_37e){
+if(!_37f){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: getList: callback is missing");
 }else{
-if(typeof _37e!="function"){
+if(typeof _37f!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: callback is invalid");
 }
 }
-if(_380){
-if(typeof _380!="function"){
+if(_381){
+if(typeof _381!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: error callback is invalid");
 }
-if(_380==undefined||_380==null){
+if(_381==undefined||_381==null){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: getList: error callback is missing");
 }
 }
-var _381={};
-modifyObjectBaseProp(_381);
-_381.Type="IncludeAll";
-if(_37f){
-if(_37f.id){
-_381.id=_37f.id;
-}
-if((_37f.type)&&__sp_calendar_entry_types.match(_37f.type)){
-_381.Type=_37f.type;
-}else{
-if((_37f.type)&&typeof _37f.type!="string"){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
-}
-}
-if(_37f.range){
-if(_37f.range.begin){
-if(typeof (_37f.range.begin)!="object"){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
-}else{
-if((_37f.range.begin)=="Invalid Date"){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
-}else{
-_381.StartRange=_37f.range.begin;
-}
-}
-}
-if(_37f.range.end){
-if(typeof (_37f.range.end)!="object"){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
-}else{
-if((_37f.range.end)=="Invalid Date"){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
-}else{
-_381.EndRange=_37f.range.end;
-}
-}
-}
-if((_37f.range.begin)&&(_37f.range.end)){
-if((_37f.range.begin)>(_37f.range.end)){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
-}
-}
-}
-if(_37f.text){
-if(typeof (_37f.text)!="string"){
-throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
-}else{
-_381.SearchText=_37f.text;
-}
-}
-}
 var _382={};
 modifyObjectBaseProp(_382);
-_382.Type="CalendarEntry";
-_382.Filter=_381;
-temp_scb=_37e;
-temp_ecb=_380;
-var rval=this.so.IDataSource.GetList(_382,this.getListCb);
+_382.Type="IncludeAll";
+if(_380){
+if(_380.id){
+_382.id=_380.id;
+}
+if((_380.type)&&__sp_calendar_entry_types.match(_380.type)){
+_382.Type=_380.type;
+}else{
+if((_380.type)&&typeof _380.type!="string"){
+throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
+}
+}
+if(_380.range){
+if(_380.range.begin){
+if(typeof (_380.range.begin)!="object"){
+throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
+}else{
+if((_380.range.begin)=="Invalid Date"){
+throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
+}else{
+_382.StartRange=_380.range.begin;
+}
+}
+}
+if(_380.range.end){
+if(typeof (_380.range.end)!="object"){
+throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
+}else{
+if((_380.range.end)=="Invalid Date"){
+throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
+}else{
+_382.EndRange=_380.range.end;
+}
+}
+}
+if((_380.range.begin)&&(_380.range.end)){
+if((_380.range.begin)>(_380.range.end)){
+throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
+}
+}
+}
+if(_380.text){
+if(typeof (_380.text)!="string"){
+throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: getList: match is invalid");
+}else{
+_382.SearchText=_380.text;
+}
+}
+}
+var _383={};
+modifyObjectBaseProp(_383);
+_383.Type="CalendarEntry";
+_383.Filter=_382;
+temp_scb=_37f;
+temp_ecb=_381;
+var rval=this.so.IDataSource.GetList(_383,this.getListCb);
 if(rval.TransactionID){
-glob_obj.addToGlobalArray(rval.TransactionID,_37e,_380);
-}
-if(_382){
-delete _382.Type;
-delete _382.Filter;
+glob_obj.addToGlobalArray(rval.TransactionID,_37f,_381);
+}
+if(_383){
+delete _383.Type;
+delete _383.Filter;
 }
 if(rval.ErrorCode!=0){
 switch(rval.ErrorCode){
@@ -6565,14 +6542,14 @@
 case this.error.INVALID_ARG_ERR:
 case this.error.NOT_SUPPORTED_ERR:
 if(rval.ErrorMessage){
-var _384=splitErrorMessage(rval.ErrorMessage);
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Calendar: getList: "+_384);
+var _385=splitErrorMessage(rval.ErrorMessage);
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Calendar: getList: "+_385);
 }else{
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Calendar: getList: Operation Failed");
 }
 break;
 default:
-_380(new DeviceException(MapErrorCode[rval.ErrorCode],"Calendar: getList: Operation Failed"));
+_381(new DeviceException(MapErrorCode[rval.ErrorCode],"Calendar: getList: Operation Failed"));
 }
 }
 return rval.TransactionID;
@@ -6581,49 +6558,49 @@
 __device_handle_exception(e,"sp_calendar_getList: "+e);
 }
 };
-function __sp_calendar_add(_385){
-if(_385){
-if(typeof _385!="object"){
+function __sp_calendar_add(_386){
+if(_386){
+if(typeof _386!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: addEntry: calendarEntry param is invalid");
 }
-if(_385.id){
-_385.id=undefined;
-}
-if(!_385.type||!_385.time){
+if(_386.id){
+_386.id=undefined;
+}
+if(!_386.type||!_386.time){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: addEntry: mandatory param missing");
 }else{
-if(typeof _385.type!="string"||typeof _385.time!="object"){
+if(typeof _386.type!="string"||typeof _386.time!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: addEntry: mandatory param missing");
 }
 }
-if((_385.type!="ToDo")&&!_385.time.begin){
+if((_386.type!="ToDo")&&!_386.time.begin){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: addEntry: mandatory param StartTime missing");
 }
-if(!_385.time.end&&(_385.type=="ToDo"||_385.type=="Meeting")){
+if(!_386.time.end&&(_386.type=="ToDo"||_386.type=="Meeting")){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: addEntry: mandatory param EndTime missing");
 }
-if(_385.time.end&&_385.time.alarm){
-if(_385.time.end<_385.time.alarm){
+if(_386.time.end&&_386.time.alarm){
+if(_386.time.end<_386.time.alarm){
 throw new DeviceException(this.error.NOT_SUPPORTED_ERR,"Calendar: addEntry: alarm time greater than end time:Not supported");
 }
 }
-if(_385.type=="ToDo"){
-if(_385.status==0){
-if(typeof (_385.status)!="string"){
+if(_386.type=="ToDo"){
+if(_386.status==0){
+if(typeof (_386.status)!="string"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: addEntry: mandatory param missing");
 }
 }
 }
-if(_385.repeatRule){
-if(typeof _385.repeatRule!="object"){
+if(_386.repeatRule){
+if(typeof _386.repeatRule!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: addEntry: repeatRule param type is invalid");
 }
-if(!_385.repeatRule.frequency||_385.repeatRule.frequency==null){
+if(!_386.repeatRule.frequency||_386.repeatRule.frequency==null){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: addEntry: mandatory param Frequency missing");
 }
 }
-var _386=__sp_calendar_isInputValid(_385);
-if(!_386){
+var _387=__sp_calendar_isInputValid(_386);
+if(!_387){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: addEntry: calendarEntry param is invalid");
 }
 }else{
@@ -6631,63 +6608,63 @@
 }
 try{
 var str="addEntry:";
-var _388={};
-modifyObjectBaseProp(_388);
-_388.Type="CalendarEntry";
-_388.Item=new __sp_calendar_entry(_385,str);
-var _389=this.so.IDataSource.Add(_388);
-if(_388){
-delete _388.Type;
-delete _388.Item;
-}
-var _38a="Operation Failed";
-if(_389.ErrorMessage){
-_38a=splitErrorMessage(_389.ErrorMessage);
-}
-if(_389.ErrorCode!=0){
-throw new DeviceException(MapErrorCode[_389.ErrorCode],"Calendar: addEntry: Operation Failed");
+var _389={};
+modifyObjectBaseProp(_389);
+_389.Type="CalendarEntry";
+_389.Item=new __sp_calendar_entry(_386,str);
+var _38a=this.so.IDataSource.Add(_389);
+if(_389){
+delete _389.Type;
+delete _389.Item;
+}
+var _38b="Operation Failed";
+if(_38a.ErrorMessage){
+_38b=splitErrorMessage(_38a.ErrorMessage);
+}
+if(_38a.ErrorCode!=0){
+throw new DeviceException(MapErrorCode[_38a.ErrorCode],"Calendar: addEntry: Operation Failed");
 return;
 }else{
-var _38b=_389.ReturnValue;
-return _38b;
+var _38c=_38a.ReturnValue;
+return _38c;
 }
 }
 catch(e){
 __device_handle_exception(e,"__sp_calendar_add: "+e);
 }
 };
-function __sp_calendar_update(_38c){
+function __sp_calendar_update(_38d){
 isUpdate=1;
-if(_38c){
-if(typeof _38c!="object"){
+if(_38d){
+if(typeof _38d!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: updateEntry: calendarEntry param is invalid");
 }
-if(!_38c.id){
+if(!_38d.id){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: updateEntry: mandatory param - Id missing");
 }
-if(_38c.repeatRule){
-if(typeof _38c.repeatRule!="object"){
+if(_38d.repeatRule){
+if(typeof _38d.repeatRule!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: updateEntry: repeatRule param type is invalid");
 }
-if((_38c.repeatRule.frequency==null||_38c.repeatRule.frequency==undefined)){
+if((_38d.repeatRule.frequency==null||_38d.repeatRule.frequency==undefined)){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: updateEntry: repeatRule param type is invalid");
 }
-if(_38c.repeatRule.startDate&&(_38c.repeatRule.startDate==null||_38c.repeatRule.startDate==undefined)){
+if(_38d.repeatRule.startDate&&(_38d.repeatRule.startDate==null||_38d.repeatRule.startDate==undefined)){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: updateEntry: repeatRule param type is invalid");
 }
-if(_38c.repeatRule.untilDate&&(_38c.repeatRule.untilDate==null||_38c.repeatRule.untilDate==undefined)){
+if(_38d.repeatRule.untilDate&&(_38d.repeatRule.untilDate==null||_38d.repeatRule.untilDate==undefined)){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: updateEntry: repeatRule param type is invalid");
 }
 }
-if(_38c.time){
-if(_38c.time.end&&_38c.time.alarm){
-if(_38c.time.alarm>_38c.time.end){
+if(_38d.time){
+if(_38d.time.end&&_38d.time.alarm){
+if(_38d.time.alarm>_38d.time.end){
 throw new DeviceException(this.error.NOT_SUPPORTED_ERR,"Calendar: updateEntry: alarm time greater than end time is not supported");
 }
 }
 }
-var _38d=__sp_calendar_isInputValid(_38c);
-if(!_38d){
+var _38e=__sp_calendar_isInputValid(_38d);
+if(!_38e){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: updateEntry: calendarEntry param is invalid");
 }
 }else{
@@ -6695,26 +6672,26 @@
 }
 try{
 var str="updateEntry:";
-var _38f={};
-modifyObjectBaseProp(_38f);
-_38f.Type="CalendarEntry";
-_38f.Item=new __sp_calendar_entry(_38c,str);
+var _390={};
+modifyObjectBaseProp(_390);
+_390.Type="CalendarEntry";
+_390.Item=new __sp_calendar_entry(_38d,str);
 isUpdate=0;
-var _390=this.so.IDataSource.Add(_38f);
-if(_38f){
-delete _38f.Type;
-delete _38f.Item;
-}
-var _391="Operation Failed";
-if(_390.ErrorMessage){
-_391=splitErrorMessage(_390.ErrorMessage);
-}
-if(_390.ErrorCode!=0){
-throw new DeviceException(MapErrorCode[_390.ErrorCode],"Calendar: addEntry: Operation Failed");
+var _391=this.so.IDataSource.Add(_390);
+if(_390){
+delete _390.Type;
+delete _390.Item;
+}
+var _392="Operation Failed";
+if(_391.ErrorMessage){
+_392=splitErrorMessage(_391.ErrorMessage);
+}
+if(_391.ErrorCode!=0){
+throw new DeviceException(MapErrorCode[_391.ErrorCode],"Calendar: addEntry: Operation Failed");
 return;
 }else{
-var _392=_390.ReturnValue;
-return _392;
+var _393=_391.ReturnValue;
+return _393;
 }
 }
 catch(e){
@@ -6730,43 +6707,43 @@
 if(!data.id){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: deleteEntry: id is missing");
 }
-var _394=__sp_calendar_isInputValid(data);
-if(!_394){
+var _395=__sp_calendar_isInputValid(data);
+if(!_395){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: deleteEntry: delete data is invalid");
 }
 }else{
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: deleteEntry: data is missing");
 }
-var _395={};
-modifyObjectBaseProp(_395);
-_395.Type="CalendarEntry";
-_395.Data={};
-modifyObjectBaseProp(_395.Data);
-_395.Data.IdList=[];
+var _396={};
+modifyObjectBaseProp(_396);
+_396.Type="CalendarEntry";
+_396.Data={};
+modifyObjectBaseProp(_396.Data);
+_396.Data.IdList=[];
 var list=[data.id];
-_395.Data.IdList=list;
+_396.Data.IdList=list;
 if(data.range){
 if(data.range.begin){
-_395.Data.StartRange=data.range.begin;
+_396.Data.StartRange=data.range.begin;
 }
 if(data.range.end){
-_395.Data.EndRange=data.range.end;
-}
-}
-var rval=this.so.IDataSource.Delete(_395);
-if(_395){
-delete _395.Type;
-delete _395.Data.IdList;
-delete _395.Data.StartRange;
-delete _395.Data.EndRange;
+_396.Data.EndRange=data.range.end;
+}
+}
+var rval=this.so.IDataSource.Delete(_396);
+if(_396){
+delete _396.Type;
+delete _396.Data.IdList;
+delete _396.Data.StartRange;
+delete _396.Data.EndRange;
 }
 if(list){
 delete list.id;
 }
 if(rval.ErrorCode!=0){
 if(rval.ErrorMessage){
-var _398=splitErrorMessage(rval.ErrorMessage);
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Calendar: deleteEntry: "+_398);
+var _399=splitErrorMessage(rval.ErrorMessage);
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Calendar: deleteEntry: "+_399);
 }else{
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Calendar: deleteEntry: Operation Failed");
 }
@@ -6776,29 +6753,29 @@
 __device_handle_exception(e,"__sp_calendar_delete: "+e);
 }
 };
-function __sp_calendar_cancel(_399){
+function __sp_calendar_cancel(_39a){
 try{
-if(!_399||_399==null||_399==undefined){
+if(!_39a||_39a==null||_39a==undefined){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Calendar: cancel: id is missing");
 }
-if(_399){
-if(typeof _399!="number"){
+if(_39a){
+if(typeof _39a!="number"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Calendar: cancel: id is missing");
 }
 }
-var _39a={};
-modifyObjectBaseProp(_39a);
-_39a.TransactionID=_399;
-var _39b=this.so.IDataSource.Cancel(_39a);
-if(_39a){
-delete _39a.TransactionID;
-}
-if(_39b.ErrorCode!=0){
-if(_39b.ErrorMessage){
-var _39c=splitErrorMessage(_39b.ErrorMessage);
-throw new DeviceException(MapErrorCode[_39b.ErrorCode],"Calendar: cancel: "+_39c);
-}else{
-throw new DeviceException(MapErrorCode[_39b.ErrorCode],"Calendar: cancel: Operation Failed");
+var _39b={};
+modifyObjectBaseProp(_39b);
+_39b.TransactionID=_39a;
+var _39c=this.so.IDataSource.Cancel(_39b);
+if(_39b){
+delete _39b.TransactionID;
+}
+if(_39c.ErrorCode!=0){
+if(_39c.ErrorMessage){
+var _39d=splitErrorMessage(_39c.ErrorMessage);
+throw new DeviceException(MapErrorCode[_39c.ErrorCode],"Calendar: cancel: "+_39d);
+}else{
+throw new DeviceException(MapErrorCode[_39c.ErrorCode],"Calendar: cancel: Operation Failed");
 }
 }
 }
@@ -6824,21 +6801,21 @@
 __device_handle_exception(e,"Calendar service not available");
 }
 };
-function __device_contacts_descriptor(_39d){
-this.interfaceName=_39d.interfaceName;
-this.version=_39d.version;
-};
-function __device_contacts_startEditor(_39e,_39f,_3a0){
-return this.provider.startEditor(_39e,_39f,_3a0);
-};
-function __device_contacts_getContacts(_3a1,_3a2,_3a3,_3a4){
-return this.provider.getContacts(_3a1,_3a2,_3a3,_3a4);
-};
-function __device_contacts_add(_3a5){
-return this.provider.addContact(_3a5);
-};
-function __device_contacts_update(_3a6){
-this.provider.updateContact(_3a6);
+function __device_contacts_descriptor(_39e){
+this.interfaceName=_39e.interfaceName;
+this.version=_39e.version;
+};
+function __device_contacts_startEditor(_39f,_3a0,_3a1){
+return this.provider.startEditor(_39f,_3a0,_3a1);
+};
+function __device_contacts_getContacts(_3a2,_3a3,_3a4,_3a5){
+return this.provider.getContacts(_3a2,_3a3,_3a4,_3a5);
+};
+function __device_contacts_add(_3a6){
+return this.provider.addContact(_3a6);
+};
+function __device_contacts_update(_3a7){
+this.provider.updateContact(_3a7);
 };
 function __device_contacts_delete(id){
 this.provider.deleteContacts(id);
@@ -6846,40 +6823,40 @@
 function __device_contacts_getContactInfo(id){
 return this.provider.getContactInfo(id);
 };
-function __device_contacts_addGroup(_3a9){
-return this.provider.addGroup(_3a9);
-};
-function __device_contacts_getGroups(_3aa,_3ab){
-return this.provider.getGroups(_3aa,_3ab);
+function __device_contacts_addGroup(_3aa){
+return this.provider.addGroup(_3aa);
+};
+function __device_contacts_getGroups(_3ab,_3ac){
+return this.provider.getGroups(_3ab,_3ac);
 };
 function __device_contacts_deleteGroups(id){
 this.provider.deleteGroups(id);
 };
-function __device_contacts_addContactsToGroup(_3ad,id){
-this.provider.addContactsToGroup(_3ad,id);
-};
-function __device_contacts_getContactIds(_3af,_3b0,_3b1,_3b2){
-return this.provider.getContactIds(_3af,_3b0,_3b1,_3b2);
-};
-function __device_contacts_getGroupIds(_3b3,_3b4){
-return this.provider.getGroupIds(_3b3,_3b4);
-};
-function __device_contacts_removeContactsFromGroup(_3b5,id){
-this.provider.removeContactsFromGroup(_3b5,id);
-};
-function __device_contacts_cancel(_3b7){
-this.provider.cancel(_3b7);
-};
-function __device_contacts_updateGroup(_3b8){
-this.provider.updateGroup(_3b8);
-};
-function __device_contacts_getGroupInfo(_3b9){
-return this.provider.getGroupInfo(_3b9);
-};
-function __device_contacts(_3ba){
-this.provider=_3ba;
-this.interfaceName=_3ba.descriptor.interfaceName;
-this.version=_3ba.descriptor.version;
+function __device_contacts_addContactsToGroup(_3ae,id){
+this.provider.addContactsToGroup(_3ae,id);
+};
+function __device_contacts_getContactIds(_3b0,_3b1,_3b2,_3b3){
+return this.provider.getContactIds(_3b0,_3b1,_3b2,_3b3);
+};
+function __device_contacts_getGroupIds(_3b4,_3b5){
+return this.provider.getGroupIds(_3b4,_3b5);
+};
+function __device_contacts_removeContactsFromGroup(_3b6,id){
+this.provider.removeContactsFromGroup(_3b6,id);
+};
+function __device_contacts_cancel(_3b8){
+this.provider.cancel(_3b8);
+};
+function __device_contacts_updateGroup(_3b9){
+this.provider.updateGroup(_3b9);
+};
+function __device_contacts_getGroupInfo(_3ba){
+return this.provider.getGroupInfo(_3ba);
+};
+function __device_contacts(_3bb){
+this.provider=_3bb;
+this.interfaceName=_3bb.descriptor.interfaceName;
+this.version=_3bb.descriptor.version;
 this.SORT_ASCENDING=0;
 this.SORT_DESCENDING=1;
 this.startEditor=__device_contacts_startEditor;
@@ -6900,8 +6877,6 @@
 this.getGroupInfo=__device_contacts_getGroupInfo;
 };
 var __device_contacts_service_entry={"name":null,"version":null,"proto":__device_contacts,"descriptor":__device_contacts_descriptor,"providers":[{"descriptor":__sp_contacts_descriptor,"instance":__sp_contacts_instance}]};
-nokia.device.contacts.SORT_ASCENDING=0;
-nokia.device.contacts.SORT_DESCENDING=1;
 function __sp_contacts_descriptor(){
 this.interfaceName="contacts";
 if(window.__Service_Interface_Ver){
@@ -6910,27 +6885,27 @@
 this.version=1;
 }
 };
-function __s60_enumerate_contact_object(_3bb,_3bc,func,_3be){
+function __s60_enumerate_contact_object(_3bc,_3bd,func,_3bf){
 try{
 var key;
-for(key in _3bb){
-var _3c0;
-if(_3bc){
-_3c0=_3bc+"."+key;
-}else{
-_3c0=key;
-}
-var _3c1=_3bb[key];
-if(_3c1 instanceof Array){
-func(_3c0,_3c1,_3be);
-}else{
-if(_3c1 instanceof Date){
-func(_3c0,_3c1,_3be);
-}else{
-if(typeof _3c1=="object"){
-__s60_enumerate_contact_object(_3c1,_3c0,func,_3be);
-}else{
-func(_3c0,_3c1,_3be);
+for(key in _3bc){
+var _3c1;
+if(_3bd){
+_3c1=_3bd+"."+key;
+}else{
+_3c1=key;
+}
+var _3c2=_3bc[key];
+if(_3c2 instanceof Array){
+func(_3c1,_3c2,_3bf);
+}else{
+if(_3c2 instanceof Date){
+func(_3c1,_3c2,_3bf);
+}else{
+if(typeof _3c2=="object"){
+__s60_enumerate_contact_object(_3c2,_3c1,func,_3bf);
+}else{
+func(_3c1,_3c2,_3bf);
 }
 }
 }
@@ -6940,330 +6915,330 @@
 throw e;
 }
 };
-function __sp_contact_extract(name,_3c3,_3c4){
+function __sp_contact_extract(name,_3c4,_3c5){
 switch(name){
 case "name.last":
-_3c4.LastName={};
-modifyObjectBaseProp(_3c4.LastName);
-_3c4.LastName.Label="Last name";
-_3c4.LastName.Value=_3c3;
+_3c5.LastName={};
+modifyObjectBaseProp(_3c5.LastName);
+_3c5.LastName.Label="Last name";
+_3c5.LastName.Value=_3c4;
 break;
 case "name.first":
-_3c4.FirstName={};
-modifyObjectBaseProp(_3c4.FirstName);
-_3c4.FirstName.Label="First name";
-_3c4.FirstName.Value=_3c3;
+_3c5.FirstName={};
+modifyObjectBaseProp(_3c5.FirstName);
+_3c5.FirstName.Label="First name";
+_3c5.FirstName.Value=_3c4;
 break;
 case "name.middle":
-_3c4.MiddleName={};
-modifyObjectBaseProp(_3c4.MiddleName);
-_3c4.MiddleName.Label="Middle name";
-_3c4.MiddleName.Value=_3c3;
+_3c5.MiddleName={};
+modifyObjectBaseProp(_3c5.MiddleName);
+_3c5.MiddleName.Label="Middle name";
+_3c5.MiddleName.Value=_3c4;
 break;
 case "name.prefix":
-_3c4.Prefix={};
-modifyObjectBaseProp(_3c4.Prefix);
-_3c4.Prefix.Label="Prefix";
-_3c4.Prefix.Value=_3c3;
+_3c5.Prefix={};
+modifyObjectBaseProp(_3c5.Prefix);
+_3c5.Prefix.Label="Prefix";
+_3c5.Prefix.Value=_3c4;
 break;
 case "name.suffix":
-_3c4.Suffix={};
-modifyObjectBaseProp(_3c4.Suffix);
-_3c4.Suffix.Label="Suffix";
-_3c4.Suffix.Value=_3c3;
+_3c5.Suffix={};
+modifyObjectBaseProp(_3c5.Suffix);
+_3c5.Suffix.Label="Suffix";
+_3c5.Suffix.Value=_3c4;
 break;
 case "tel.land":
-_3c4.LandPhoneGen={};
-modifyObjectBaseProp(_3c4.LandPhoneGen);
-_3c4.LandPhoneGen.Label="Landline";
-_3c4.LandPhoneGen.Value=_3c3;
+_3c5.LandPhoneGen={};
+modifyObjectBaseProp(_3c5.LandPhoneGen);
+_3c5.LandPhoneGen.Label="Landline";
+_3c5.LandPhoneGen.Value=_3c4;
 break;
 case "tel.mobile":
-_3c4.MobilePhoneGen={};
-modifyObjectBaseProp(_3c4.MobilePhoneGen);
-_3c4.MobilePhoneGen.Label="Mobile";
-_3c4.MobilePhoneGen.Value=_3c3;
+_3c5.MobilePhoneGen={};
+modifyObjectBaseProp(_3c5.MobilePhoneGen);
+_3c5.MobilePhoneGen.Label="Mobile";
+_3c5.MobilePhoneGen.Value=_3c4;
 break;
 case "tel.video":
-_3c4.VideoNumberGen={};
-modifyObjectBaseProp(_3c4.VideoNumberGen);
-_3c4.VideoNumberGen.Label="Video";
-_3c4.VideoNumberGen.Value=_3c3;
+_3c5.VideoNumberGen={};
+modifyObjectBaseProp(_3c5.VideoNumberGen);
+_3c5.VideoNumberGen.Label="Video";
+_3c5.VideoNumberGen.Value=_3c4;
 break;
 case "tel.fax":
-_3c4.FaxNumberGen={};
-modifyObjectBaseProp(_3c4.FaxNumberGen);
-_3c4.FaxNumberGen.Label="Fax";
-_3c4.FaxNumberGen.Value=_3c3;
+_3c5.FaxNumberGen={};
+modifyObjectBaseProp(_3c5.FaxNumberGen);
+_3c5.FaxNumberGen.Label="Fax";
+_3c5.FaxNumberGen.Value=_3c4;
 break;
 case "tel.voip":
-_3c4.VOIPGen={};
-modifyObjectBaseProp(_3c4.VOIPGen);
-_3c4.VOIPGen.Label="Voip";
-_3c4.VOIPGen.Value=_3c3;
+_3c5.VOIPGen={};
+modifyObjectBaseProp(_3c5.VOIPGen);
+_3c5.VOIPGen.Label="Voip";
+_3c5.VOIPGen.Value=_3c4;
 break;
 case "tel.home.land":
-_3c4.LandPhoneHome={};
-modifyObjectBaseProp(_3c4.LandPhoneHome);
-_3c4.LandPhoneHome.Label="Home Landline";
-_3c4.LandPhoneHome.Value=_3c3;
+_3c5.LandPhoneHome={};
+modifyObjectBaseProp(_3c5.LandPhoneHome);
+_3c5.LandPhoneHome.Label="Home Landline";
+_3c5.LandPhoneHome.Value=_3c4;
 break;
 case "tel.home.mobile":
-_3c4.MobilePhoneHome={};
-modifyObjectBaseProp(_3c4.MobilePhoneHome);
-_3c4.MobilePhoneHome.Label="Home Mobile";
-_3c4.MobilePhoneHome.Value=_3c3;
+_3c5.MobilePhoneHome={};
+modifyObjectBaseProp(_3c5.MobilePhoneHome);
+_3c5.MobilePhoneHome.Label="Home Mobile";
+_3c5.MobilePhoneHome.Value=_3c4;
 break;
 case "tel.home.video":
-_3c4.VideoNumberHome={};
-modifyObjectBaseProp(_3c4.VideoNumberHome);
-_3c4.VideoNumberHome.Label="Home Video";
-_3c4.VideoNumberHome.Value=_3c3;
+_3c5.VideoNumberHome={};
+modifyObjectBaseProp(_3c5.VideoNumberHome);
+_3c5.VideoNumberHome.Label="Home Video";
+_3c5.VideoNumberHome.Value=_3c4;
 break;
 case "tel.home.fax":
-_3c4.FaxNumberHome={};
-modifyObjectBaseProp(_3c4.FaxNumberHome);
-_3c4.FaxNumberHome.Label="Home Fax";
-_3c4.FaxNumberHome.Value=_3c3;
+_3c5.FaxNumberHome={};
+modifyObjectBaseProp(_3c5.FaxNumberHome);
+_3c5.FaxNumberHome.Label="Home Fax";
+_3c5.FaxNumberHome.Value=_3c4;
 break;
 case "tel.home.voip":
-_3c4.VoipHome={};
-modifyObjectBaseProp(_3c4.VoipHome);
-_3c4.VoipHome.Label="Home Voip";
-_3c4.VoipHome.Value=_3c3;
+_3c5.VoipHome={};
+modifyObjectBaseProp(_3c5.VoipHome);
+_3c5.VoipHome.Label="Home Voip";
+_3c5.VoipHome.Value=_3c4;
 break;
 case "tel.work.land":
-_3c4.LandPhoneWork={};
-modifyObjectBaseProp(_3c4.LandPhoneWork);
-_3c4.LandPhoneWork.Label="Work Landline";
-_3c4.LandPhoneWork.Value=_3c3;
+_3c5.LandPhoneWork={};
+modifyObjectBaseProp(_3c5.LandPhoneWork);
+_3c5.LandPhoneWork.Label="Work Landline";
+_3c5.LandPhoneWork.Value=_3c4;
 break;
 case "tel.work.mobile":
-_3c4.MobilePhoneWork={};
-modifyObjectBaseProp(_3c4.MobilePhoneWork);
-_3c4.MobilePhoneWork.Label="Work Mobile";
-_3c4.MobilePhoneWork.Value=_3c3;
+_3c5.MobilePhoneWork={};
+modifyObjectBaseProp(_3c5.MobilePhoneWork);
+_3c5.MobilePhoneWork.Label="Work Mobile";
+_3c5.MobilePhoneWork.Value=_3c4;
 break;
 case "tel.work.video":
-_3c4.VideoNumberWork={};
-modifyObjectBaseProp(_3c4.VideoNumberWork);
-_3c4.VideoNumberWork.Label="Work Video";
-_3c4.VideoNumberWork.Value=_3c3;
+_3c5.VideoNumberWork={};
+modifyObjectBaseProp(_3c5.VideoNumberWork);
+_3c5.VideoNumberWork.Label="Work Video";
+_3c5.VideoNumberWork.Value=_3c4;
 break;
 case "tel.work.fax":
-_3c4.FaxNumberWork={};
-modifyObjectBaseProp(_3c4.FaxNumberWork);
-_3c4.FaxNumberWork.Label="Work Fax";
-_3c4.FaxNumberWork.Value=_3c3;
+_3c5.FaxNumberWork={};
+modifyObjectBaseProp(_3c5.FaxNumberWork);
+_3c5.FaxNumberWork.Label="Work Fax";
+_3c5.FaxNumberWork.Value=_3c4;
 break;
 case "tel.work.voip":
-_3c4.VoipWork={};
-modifyObjectBaseProp(_3c4.VoipWork);
-_3c4.VoipWork.Label="Work Voip";
-_3c4.VoipWork.Value=_3c3;
+_3c5.VoipWork={};
+modifyObjectBaseProp(_3c5.VoipWork);
+_3c5.VoipWork.Label="Work Voip";
+_3c5.VoipWork.Value=_3c4;
 break;
 case "address.street":
-_3c4.AddrStreetGen={};
-modifyObjectBaseProp(_3c4.AddrStreetGen);
-_3c4.AddrStreetGen.Label="Street Address";
-_3c4.AddrStreetGen.Value=_3c3;
+_3c5.AddrStreetGen={};
+modifyObjectBaseProp(_3c5.AddrStreetGen);
+_3c5.AddrStreetGen.Label="Street Address";
+_3c5.AddrStreetGen.Value=_3c4;
 break;
 case "address.local":
-_3c4.AddrLocalGen={};
-modifyObjectBaseProp(_3c4.AddrLocalGen);
-_3c4.AddrLocalGen.Label="City";
-_3c4.AddrLocalGen.Value=_3c3;
+_3c5.AddrLocalGen={};
+modifyObjectBaseProp(_3c5.AddrLocalGen);
+_3c5.AddrLocalGen.Label="City";
+_3c5.AddrLocalGen.Value=_3c4;
 break;
 case "address.region":
-_3c4.AddrRegionGen={};
-modifyObjectBaseProp(_3c4.AddrRegionGen);
-_3c4.AddrRegionGen.Label="State/Province";
-_3c4.AddrRegionGen.Value=_3c3;
+_3c5.AddrRegionGen={};
+modifyObjectBaseProp(_3c5.AddrRegionGen);
+_3c5.AddrRegionGen.Label="State/Province";
+_3c5.AddrRegionGen.Value=_3c4;
 break;
 case "address.code":
-_3c4.AddrPostCodeGen={};
-modifyObjectBaseProp(_3c4.AddrPostCodeGen);
-_3c4.AddrPostCodeGen.Label="Postal code";
-_3c4.AddrPostCodeGen.Value=_3c3;
+_3c5.AddrPostCodeGen={};
+modifyObjectBaseProp(_3c5.AddrPostCodeGen);
+_3c5.AddrPostCodeGen.Label="Postal code";
+_3c5.AddrPostCodeGen.Value=_3c4;
 break;
 case "address.country":
-_3c4.AddrCountryGen={};
-modifyObjectBaseProp(_3c4.AddrCountryGen);
-_3c4.AddrCountryGen.Label="Country";
-_3c4.AddrCountryGen.Value=_3c3;
+_3c5.AddrCountryGen={};
+modifyObjectBaseProp(_3c5.AddrCountryGen);
+_3c5.AddrCountryGen.Label="Country";
+_3c5.AddrCountryGen.Value=_3c4;
 break;
 case "address.email":
-_3c4.EmailGen={};
-modifyObjectBaseProp(_3c4.EmailGen);
-_3c4.EmailGen.Label="EMail";
-_3c4.EmailGen.Value=_3c3;
+_3c5.EmailGen={};
+modifyObjectBaseProp(_3c5.EmailGen);
+_3c5.EmailGen.Label="EMail";
+_3c5.EmailGen.Value=_3c4;
 break;
 case "address.uri":
-_3c4.URLGen={};
-modifyObjectBaseProp(_3c4.URLGen);
-_3c4.URLGen.Label="Website";
-_3c4.URLGen.Value=_3c3;
+_3c5.URLGen={};
+modifyObjectBaseProp(_3c5.URLGen);
+_3c5.URLGen.Label="Website";
+_3c5.URLGen.Value=_3c4;
 break;
 case "address.home.street":
-_3c4.AddrStreetHome={};
-modifyObjectBaseProp(_3c4.AddrStreetHome);
-_3c4.AddrStreetHome.Label="Home Address";
-_3c4.AddrStreetHome.Value=_3c3;
+_3c5.AddrStreetHome={};
+modifyObjectBaseProp(_3c5.AddrStreetHome);
+_3c5.AddrStreetHome.Label="Home Address";
+_3c5.AddrStreetHome.Value=_3c4;
 break;
 case "address.home.local":
-_3c4.AddrLocalHome={};
-modifyObjectBaseProp(_3c4.AddrLocalHome);
-_3c4.AddrLocalHome.Label="City";
-_3c4.AddrLocalHome.Value=_3c3;
+_3c5.AddrLocalHome={};
+modifyObjectBaseProp(_3c5.AddrLocalHome);
+_3c5.AddrLocalHome.Label="City";
+_3c5.AddrLocalHome.Value=_3c4;
 break;
 case "address.home.region":
-_3c4.AddrRegionHome={};
-modifyObjectBaseProp(_3c4.AddrRegionHome);
-_3c4.AddrRegionHome.Label="State/Province";
-_3c4.AddrRegionHome.Value=_3c3;
+_3c5.AddrRegionHome={};
+modifyObjectBaseProp(_3c5.AddrRegionHome);
+_3c5.AddrRegionHome.Label="State/Province";
+_3c5.AddrRegionHome.Value=_3c4;
 break;
 case "address.home.code":
-_3c4.AddrPostCodeHome={};
-modifyObjectBaseProp(_3c4.AddrPostCodeHome);
-_3c4.AddrPostCodeHome.Label="Postal code";
-_3c4.AddrPostCodeHome.Value=_3c3;
+_3c5.AddrPostCodeHome={};
+modifyObjectBaseProp(_3c5.AddrPostCodeHome);
+_3c5.AddrPostCodeHome.Label="Postal code";
+_3c5.AddrPostCodeHome.Value=_3c4;
 break;
 case "address.home.country":
-_3c4.AddrCountryHome={};
-modifyObjectBaseProp(_3c4.AddrCountryHome);
-_3c4.AddrCountryHome.Label="Country";
-_3c4.AddrCountryHome.Value=_3c3;
+_3c5.AddrCountryHome={};
+modifyObjectBaseProp(_3c5.AddrCountryHome);
+_3c5.AddrCountryHome.Label="Country";
+_3c5.AddrCountryHome.Value=_3c4;
 break;
 case "address.home.email":
-_3c4.EmailHome={};
-modifyObjectBaseProp(_3c4.EmailHome);
-_3c4.EmailHome.Label="Home EMail";
-_3c4.EmailHome.Value=_3c3;
+_3c5.EmailHome={};
+modifyObjectBaseProp(_3c5.EmailHome);
+_3c5.EmailHome.Label="Home EMail";
+_3c5.EmailHome.Value=_3c4;
 break;
 case "address.home.uri":
-_3c4.URLHome={};
-modifyObjectBaseProp(_3c4.URLHome);
-_3c4.URLHome.Label="Home Website";
-_3c4.URLHome.Value=_3c3;
+_3c5.URLHome={};
+modifyObjectBaseProp(_3c5.URLHome);
+_3c5.URLHome.Label="Home Website";
+_3c5.URLHome.Value=_3c4;
 break;
 case "address.work.street":
-_3c4.AddrStreetWork={};
-modifyObjectBaseProp(_3c4.AddrStreetWork);
-_3c4.AddrStreetWork.Label="Work Address";
-_3c4.AddrStreetWork.Value=_3c3;
+_3c5.AddrStreetWork={};
+modifyObjectBaseProp(_3c5.AddrStreetWork);
+_3c5.AddrStreetWork.Label="Work Address";
+_3c5.AddrStreetWork.Value=_3c4;
 break;
 case "address.work.local":
-_3c4.AddrLocalWork={};
-modifyObjectBaseProp(_3c4.AddrLocalWork);
-_3c4.AddrLocalWork.Label="City";
-_3c4.AddrLocalWork.Value=_3c3;
+_3c5.AddrLocalWork={};
+modifyObjectBaseProp(_3c5.AddrLocalWork);
+_3c5.AddrLocalWork.Label="City";
+_3c5.AddrLocalWork.Value=_3c4;
 break;
 case "address.work.region":
-_3c4.AddrRegionWork={};
-modifyObjectBaseProp(_3c4.AddrRegionWork);
-_3c4.AddrRegionWork.Label="State/Province";
-_3c4.AddrRegionWork.Value=_3c3;
+_3c5.AddrRegionWork={};
+modifyObjectBaseProp(_3c5.AddrRegionWork);
+_3c5.AddrRegionWork.Label="State/Province";
+_3c5.AddrRegionWork.Value=_3c4;
 break;
 case "address.work.code":
-_3c4.AddrPostCodeWork={};
-modifyObjectBaseProp(_3c4.AddrPostCodeWork);
-_3c4.AddrPostCodeWork.Label="Postal code";
-_3c4.AddrPostCodeWork.Value=_3c3;
+_3c5.AddrPostCodeWork={};
+modifyObjectBaseProp(_3c5.AddrPostCodeWork);
+_3c5.AddrPostCodeWork.Label="Postal code";
+_3c5.AddrPostCodeWork.Value=_3c4;
 break;
 case "address.work.country":
-_3c4.AddrCountryWork={};
-modifyObjectBaseProp(_3c4.AddrCountryWork);
-_3c4.AddrCountryWork.Label="Country";
-_3c4.AddrCountryWork.Value=_3c3;
+_3c5.AddrCountryWork={};
+modifyObjectBaseProp(_3c5.AddrCountryWork);
+_3c5.AddrCountryWork.Label="Country";
+_3c5.AddrCountryWork.Value=_3c4;
 break;
 case "address.work.email":
-_3c4.EmailWork={};
-modifyObjectBaseProp(_3c4.EmailWork);
-_3c4.EmailWork.Label="Work EMail";
-_3c4.EmailWork.Value=_3c3;
+_3c5.EmailWork={};
+modifyObjectBaseProp(_3c5.EmailWork);
+_3c5.EmailWork.Label="Work EMail";
+_3c5.EmailWork.Value=_3c4;
 break;
 case "address.work.uri":
-_3c4.URLWork={};
-modifyObjectBaseProp(_3c4.URLWork);
-_3c4.URLWork.Label="Work Website";
-_3c4.URLWork.Value=_3c3;
+_3c5.URLWork={};
+modifyObjectBaseProp(_3c5.URLWork);
+_3c5.URLWork.Label="Work Website";
+_3c5.URLWork.Value=_3c4;
 break;
 case "company.name":
-_3c4.CompanyName={};
-modifyObjectBaseProp(_3c4.CompanyName);
-_3c4.CompanyName.Label="Company";
-_3c4.CompanyName.Value=_3c3;
+_3c5.CompanyName={};
+modifyObjectBaseProp(_3c5.CompanyName);
+_3c5.CompanyName.Label="Company";
+_3c5.CompanyName.Value=_3c4;
 break;
 case "company.title":
-_3c4.JobTitle={};
-modifyObjectBaseProp(_3c4.JobTitle);
-_3c4.JobTitle.Label="Title";
-_3c4.JobTitle.Value=_3c3;
+_3c5.JobTitle={};
+modifyObjectBaseProp(_3c5.JobTitle);
+_3c5.JobTitle.Label="Title";
+_3c5.JobTitle.Value=_3c4;
 break;
 case "id":
-_3c4.id=_3c3;
+_3c5.id=_3c4;
 break;
 case "notes":
-_3c4.Note={};
-modifyObjectBaseProp(_3c4.Note);
-_3c4.Note.Label="Note";
-_3c4.Note.Value=_3c3;
+_3c5.Note={};
+modifyObjectBaseProp(_3c5.Note);
+_3c5.Note.Label="Note";
+_3c5.Note.Value=_3c4;
 break;
 case "anniversary":
-_3c4.Anniversary={};
-modifyObjectBaseProp(_3c4.Anniversary);
-_3c4.Anniversary.Label="Anniversary";
-_3c4.Anniversary.Value=_3c3;
+_3c5.Anniversary={};
+modifyObjectBaseProp(_3c5.Anniversary);
+_3c5.Anniversary.Label="Anniversary";
+_3c5.Anniversary.Value=_3c4;
 break;
 case "birthday":
-_3c4.Date={};
-modifyObjectBaseProp(_3c4.Date);
-_3c4.Date.Label="BirthDay";
-_3c4.Date.Value=_3c3;
+_3c5.Date={};
+modifyObjectBaseProp(_3c5.Date);
+_3c5.Date.Label="BirthDay";
+_3c5.Date.Value=_3c4;
 break;
 case "nickName":
-_3c4.SecondName={};
-modifyObjectBaseProp(_3c4.SecondName);
-_3c4.SecondName.Label="NickName";
-_3c4.SecondName.Value=_3c3;
+_3c5.SecondName={};
+modifyObjectBaseProp(_3c5.SecondName);
+_3c5.SecondName.Label="NickName";
+_3c5.SecondName.Value=_3c4;
 break;
 case "photo":
-_3c4.CallerObjImg={};
-modifyObjectBaseProp(_3c4.CallerObjImg);
-_3c4.CallerObjImg.Label="CallerObjImg";
-_3c4.CallerObjImg.Value=_3c3;
+_3c5.CallerObjImg={};
+modifyObjectBaseProp(_3c5.CallerObjImg);
+_3c5.CallerObjImg.Label="CallerObjImg";
+_3c5.CallerObjImg.Value=_3c4;
 break;
 case "xspid":
-_3c4.IMPP={};
-modifyObjectBaseProp(_3c4.IMPP);
-_3c4.IMPP.Label="IMPP";
-_3c4.IMPP.Value=_3c3;
-break;
-}
-};
-function __s60_enumerate_build_contact_object(_3c5,_3c6,func,_3c8){
+_3c5.IMPP={};
+modifyObjectBaseProp(_3c5.IMPP);
+_3c5.IMPP.Label="IMPP";
+_3c5.IMPP.Value=_3c4;
+break;
+}
+};
+function __s60_enumerate_build_contact_object(_3c6,_3c7,func,_3c9){
 var key;
-for(key in _3c5){
-var _3ca;
-if(_3c6){
-_3ca=_3c6+"."+key;
-}else{
-_3ca=key;
-}
-var _3cb=_3c5[key];
-if(_3ca=="IMPP"){
-func(_3ca,_3cb,_3c8);
-}
-if(typeof _3cb=="object"){
-__s60_enumerate_build_contact_object(_3cb,_3ca,func,_3c8);
-}else{
-func(_3ca,_3cb,_3c8);
-}
-}
-};
-function __sp_device_contact_extract(name,_3cd,_3ce){
+for(key in _3c6){
+var _3cb;
+if(_3c7){
+_3cb=_3c7+"."+key;
+}else{
+_3cb=key;
+}
+var _3cc=_3c6[key];
+if(_3cb=="IMPP"){
+func(_3cb,_3cc,_3c9);
+}
+if(typeof _3cc=="object"){
+__s60_enumerate_build_contact_object(_3cc,_3cb,func,_3c9);
+}else{
+func(_3cb,_3cc,_3c9);
+}
+}
+};
+function __sp_device_contact_extract(name,_3ce,_3cf){
 if(name=="id"){
-_3ce.id=_3cd;
+_3cf.id=_3ce;
 return;
 }
 if(!name.match(".Value")){
@@ -7271,54 +7246,54 @@
 }
 try{
 if(name.match("IMPP.Value.0")){
-_3ce.xspid=[];
+_3cf.xspid=[];
 }
 if(name.match("Name")){
 if(name.match("CompanyName")){
-if(!_3ce.company){
-_3ce.company={};
-}
-}else{
-if(!_3ce.name){
-_3ce.name={};
+if(!_3cf.company){
+_3cf.company={};
+}
+}else{
+if(!_3cf.name){
+_3cf.name={};
 }
 }
 }else{
 if(name.match("Phone")||name.match("Number")||name.match("VOIP")||name.match("Voip")){
-if(!_3ce.tel){
-_3ce.tel={};
+if(!_3cf.tel){
+_3cf.tel={};
 }
 if(name.match("Home")){
-if(!_3ce.tel.home){
-_3ce.tel.home={};
+if(!_3cf.tel.home){
+_3cf.tel.home={};
 }
 }else{
 if(name.match("Work")){
-if(!_3ce.tel.work){
-_3ce.tel.work={};
+if(!_3cf.tel.work){
+_3cf.tel.work={};
 }
 }
 }
 }else{
 if(name.match("Addr")||name.match("Email")||name.match("URL")){
-if(!_3ce.address){
-_3ce.address={};
+if(!_3cf.address){
+_3cf.address={};
 }
 if(name.match("Home")){
-if(!_3ce.address.home){
-_3ce.address.home={};
+if(!_3cf.address.home){
+_3cf.address.home={};
 }
 }else{
 if(name.match("Work")){
-if(!_3ce.address.work){
-_3ce.address.work={};
+if(!_3cf.address.work){
+_3cf.address.work={};
 }
 }
 }
 }else{
 if(name.match("JobTitle")){
-if(!_3ce.company){
-_3ce.company={};
+if(!_3cf.company){
+_3cf.company={};
 }
 }
 }
@@ -7329,280 +7304,297 @@
 __device_handle_exception(e,"__sp_device_contact_extract: "+e);
 }
 if(name.match("IMPP.Value")){
-var _3cf=name.split(".");
-var _3d0=_3cf[2];
-if(_3d0!=undefined){
-_3ce.xspid[_3cf[2]]=_3cd;
+var _3d0=name.split(".");
+var _3d1=_3d0[2];
+if(_3d1!=undefined){
+_3cf.xspid[_3d0[2]]=_3ce;
 return;
 }
 }
 switch(name){
 case "LastName.Value":
-_3ce.name.last=_3cd;
+_3cf.name.last=_3ce;
 break;
 case "FirstName.Value":
-_3ce.name.first=_3cd;
+_3cf.name.first=_3ce;
 break;
 case "MiddleName.Value":
-_3ce.name.middle=_3cd;
+_3cf.name.middle=_3ce;
 break;
 case "Prefix.Value":
-_3ce.name.prefix=_3cd;
+_3cf.name.prefix=_3ce;
 break;
 case "Suffix.Value":
-_3ce.name.suffix=_3cd;
+_3cf.name.suffix=_3ce;
 break;
 case "LandPhoneGen.Value":
-_3ce.tel.land=_3cd;
+_3cf.tel.land=_3ce;
 break;
 case "MobilePhoneGen.Value":
-_3ce.tel.mobile=_3cd;
+_3cf.tel.mobile=_3ce;
 break;
 case "VideoNumberGen.Value":
-_3ce.tel.video=_3cd;
+_3cf.tel.video=_3ce;
 break;
 case "FaxNumberGen.Value":
-_3ce.tel.fax=_3cd;
+_3cf.tel.fax=_3ce;
 break;
 case "VOIPGen.Value":
-_3ce.tel.voip=_3cd;
+_3cf.tel.voip=_3ce;
 break;
 case "LandPhoneHome.Value":
-_3ce.tel.home.land=_3cd;
+_3cf.tel.home.land=_3ce;
 break;
 case "MobilePhoneHome.Value":
-_3ce.tel.home.mobile=_3cd;
+_3cf.tel.home.mobile=_3ce;
 break;
 case "VideoNumberHome.Value":
-_3ce.tel.home.video=_3cd;
+_3cf.tel.home.video=_3ce;
 break;
 case "FaxNumberHome.Value":
-_3ce.tel.home.fax=_3cd;
+_3cf.tel.home.fax=_3ce;
 break;
 case "VoipHome.Value":
-_3ce.tel.home.voip=_3cd;
+_3cf.tel.home.voip=_3ce;
 break;
 case "LandPhoneWork.Value":
-_3ce.tel.work.land=_3cd;
+_3cf.tel.work.land=_3ce;
 break;
 case "MobilePhoneWork.Value":
-_3ce.tel.work.mobile=_3cd;
+_3cf.tel.work.mobile=_3ce;
 break;
 case "VideoNumberWork.Value":
-_3ce.tel.work.video=_3cd;
+_3cf.tel.work.video=_3ce;
 break;
 case "FaxNumberWork.Value":
-_3ce.tel.work.fax=_3cd;
+_3cf.tel.work.fax=_3ce;
 break;
 case "VoipWork.Value":
-_3ce.tel.work.voip=_3cd;
+_3cf.tel.work.voip=_3ce;
 break;
 case "AddrStreetGen.Value":
-_3ce.address.street=_3cd;
+_3cf.address.street=_3ce;
 break;
 case "AddrLocalGen.Value":
-_3ce.address.local=_3cd;
+_3cf.address.local=_3ce;
 break;
 case "AddrRegionGen.Value":
-_3ce.address.region=_3cd;
+_3cf.address.region=_3ce;
 break;
 case "AddrPostCodeGen.Value":
-_3ce.address.code=_3cd;
+_3cf.address.code=_3ce;
 break;
 case "AddrCountryGen.Value":
-_3ce.address.country=_3cd;
+_3cf.address.country=_3ce;
 break;
 case "EmailGen.Value":
-_3ce.address.email=_3cd;
+_3cf.address.email=_3ce;
 break;
 case "URLGen.Value":
-_3ce.address.uri=_3cd;
+_3cf.address.uri=_3ce;
 break;
 case "AddrStreetHome.Value":
-_3ce.address.home.street=_3cd;
+_3cf.address.home.street=_3ce;
 break;
 case "AddrLocalHome.Value":
-_3ce.address.home.local=_3cd;
+_3cf.address.home.local=_3ce;
 break;
 case "AddrRegionHome.Value":
-_3ce.address.home.region=_3cd;
+_3cf.address.home.region=_3ce;
 break;
 case "AddrPostCodeHome.Value":
-_3ce.address.home.code=_3cd;
+_3cf.address.home.code=_3ce;
 break;
 case "AddrCountryHome.Value":
-_3ce.address.home.country=_3cd;
+_3cf.address.home.country=_3ce;
 break;
 case "EmailHome.Value":
-_3ce.address.home.email=_3cd;
+_3cf.address.home.email=_3ce;
 break;
 case "URLHome.Value":
-_3ce.address.home.uri=_3cd;
+_3cf.address.home.uri=_3ce;
 break;
 case "AddrStreetWork.Value":
-_3ce.address.work.street=_3cd;
+_3cf.address.work.street=_3ce;
 break;
 case "AddrLocalWork.Value":
-_3ce.address.work.local=_3cd;
+_3cf.address.work.local=_3ce;
 break;
 case "AddrRegionWork.Value":
-_3ce.address.work.region=_3cd;
+_3cf.address.work.region=_3ce;
 break;
 case "AddrPostCodeWork.Value":
-_3ce.address.work.code=_3cd;
+_3cf.address.work.code=_3ce;
 break;
 case "AddrCountryWork.Value":
-_3ce.address.work.country=_3cd;
+_3cf.address.work.country=_3ce;
 break;
 case "EmailWork.Value":
-_3ce.address.work.email=_3cd;
+_3cf.address.work.email=_3ce;
 break;
 case "URLWork.Value":
-_3ce.address.work.uri=_3cd;
+_3cf.address.work.uri=_3ce;
 break;
 case "CompanyName.Value":
-_3ce.company.name=_3cd;
+_3cf.company.name=_3ce;
 break;
 case "JobTitle.Value":
-_3ce.company.title=_3cd;
+_3cf.company.title=_3ce;
 break;
 case "Note.Value":
-_3ce.notes=_3cd;
+_3cf.notes=_3ce;
 break;
 case "Anniversary.Value":
-_3ce.anniversary=_3cd;
+_3cf.anniversary=_3ce;
 break;
 case "Date.Value":
-_3ce.birthday=_3cd;
+_3cf.birthday=_3ce;
 break;
 case "SecondName.Value":
-_3ce.nickName=_3cd;
+_3cf.nickName=_3ce;
 break;
 case "CallerObjImg.Value":
-_3ce.photo=_3cd;
+_3cf.photo=_3ce;
 break;
 default:
 }
 };
-function __sp_device_contact_build(_3d1,_3d2){
-__s60_enumerate_build_contact_object(_3d1,null,__sp_device_contact_extract,_3d2);
+function __sp_device_contact_build(_3d2,_3d3){
+__s60_enumerate_build_contact_object(_3d2,null,__sp_device_contact_extract,_3d3);
 };
 function __sp_contact_iterator_get_next(){
-var _3d3=this.iter.getNext();
-if(typeof _3d3=="undefined"){
+var _3d4=this.iter.getNext();
+if(typeof _3d4=="undefined"){
 return null;
 }
 var rval={};
-__sp_device_contact_build(_3d3,rval);
-_3d3.close();
+__sp_device_contact_build(_3d4,rval);
+_3d4.close();
 return rval;
 };
-function __sp_contact_iterator(_3d5){
-this.iter=_3d5;
+function __sp_contact_iterator(_3d6){
+this.iter=_3d6;
 this.next=__sp_contact_iterator_get_next;
 this.close=function(){
 this.iter.close();
 };
 };
-function __s60_enumerate_group_object(_3d6,func,_3d8){
+function __s60_enumerate_group_object(_3d7,func,_3d9){
 var key;
-for(key in _3d6){
-var _3da=key;
-var _3db=_3d6[key];
-func(_3da,_3db,_3d8);
-}
-};
-function __sp_device_groupinfo_extract(name,_3dd,_3de){
-if(_3de.group==undefined){
-_3de.group={};
+for(key in _3d7){
+var _3db=key;
+var _3dc=_3d7[key];
+func(_3db,_3dc,_3d9);
+}
+};
+function __sp_device_groupinfo_extract(name,_3de,_3df){
+if(_3df.group==undefined){
+_3df.group={};
 }
 if(name=="id"){
-_3de.group.groupId=_3dd;
+_3df.group.groupId=_3de;
 }else{
 if(name=="GroupLabel"){
-_3de.group.groupName=_3dd;
+_3df.group.groupName=_3de;
 }else{
 if(name=="Contents"){
-_3de.contents=_3dd;
+_3df.contents=_3de;
 }
 }
 }
 return;
 };
-function __sp_device_groupinfo_build(_3df,_3e0){
-__s60_enumerate_group_object(_3df,__sp_device_groupinfo_extract,_3e0);
-};
-function __sp_device_group_extract(name,_3e2,_3e3){
+function __sp_device_groupinfo_build(_3e0,_3e1){
+__s60_enumerate_group_object(_3e0,__sp_device_groupinfo_extract,_3e1);
+};
+function __sp_groupinfo_iterator_get_next(){
+var _3e2=this.iter.getNext();
+if(typeof _3e2=="undefined"){
+return null;
+}
+var rval={};
+__sp_device_groupinfo_build(_3e2,rval);
+_3e2.close();
+return rval;
+};
+function __sp_groupinfo_iterator(_3e4){
+this.iter=_3e4;
+this.next=__sp_groupinfo_iterator_get_next;
+this.close=function(){
+this.iter.close();
+};
+};
+function __sp_device_group_extract(name,_3e6,_3e7){
 if(name=="id"){
-_3e3.groupId=_3e2;
+_3e7.groupId=_3e6;
 return;
 }
 if(name=="GroupLabel"){
-_3e3.groupName=_3e2;
+_3e7.groupName=_3e6;
 return;
 }
 };
-function __sp_device_group_build(_3e4,_3e5){
-__s60_enumerate_object(_3e4,null,__sp_device_group_extract,_3e5);
+function __sp_device_group_build(_3e8,_3e9){
+__s60_enumerate_object(_3e8,null,__sp_device_group_extract,_3e9);
 };
 function __sp_group_iterator_get_next(){
-var _3e6=this.iter.getNext();
-if(typeof _3e6=="undefined"){
+var _3ea=this.iter.getNext();
+if(typeof _3ea=="undefined"){
 return null;
 }
 var rval={};
-__sp_device_group_build(_3e6,rval);
-_3e6.close();
+__sp_device_group_build(_3ea,rval);
+_3ea.close();
 return rval;
 };
-function __sp_group_iterator(_3e8){
-this.iter=_3e8;
+function __sp_group_iterator(_3ec){
+this.iter=_3ec;
 this.next=__sp_group_iterator_get_next;
 this.close=function(){
 this.iter.close();
 };
 };
 var CONTACTS_APP_ID=270486734;
-function __sp_contacts_startEditor(_3e9,_3ea,_3eb){
-if(!_3e9){
+function __sp_contacts_startEditor(_3ed,_3ee,_3ef){
+if(!_3ed){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: StartEditor:Missing Success Callback");
 }
-if((typeof _3e9)!="function"){
+if((typeof _3ed)!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: StartEditor:Invalid Success Callback");
 }
-if((_3ea)==null){
-_3ea={};
-}
-if((typeof _3ea)=="undefined"){
-_3ea={};
-}
-if((_3ea)==undefined){
-_3ea={};
-}
-if((typeof _3ea)!="object"){
+if((_3ee)==null){
+_3ee={};
+}
+if((typeof _3ee)=="undefined"){
+_3ee={};
+}
+if((_3ee)==undefined){
+_3ee={};
+}
+if((typeof _3ee)!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: StartEditor:Invalid Contact Data");
 }
-if(_3eb){
-if((typeof _3eb)!="function"){
+if(_3ef){
+if((typeof _3ef)!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts :StartEditor:Invalid Error Callback");
 }
 }
-var _3ec=function(arg1,arg2,arg3){
+var _3f0=function(arg1,arg2,arg3){
 var iter=null;
-_3e9(iter);
-};
-__s60_start_and_wait(CONTACTS_APP_ID,"",_3ec);
+_3ed(iter);
+};
+__s60_start_and_wait(CONTACTS_APP_ID,"",_3f0);
 return 0;
 };
 function __sp_contacts_getContacts_cb(arg1,arg2,arg3){
 var iter=null;
-var _3f5;
-var _3f6;
-var _3f7;
-_3f7=glob_obj.getFromArray(arg1);
-if(_3f7){
-_3f5=_3f7.success_cb;
-_3f6=_3f7.error_cb;
+var _3f9;
+var _3fa;
+var _3fb;
+_3fb=glob_obj.getFromArray(arg1);
+if(_3fb){
+_3f9=_3fb.success_cb;
+_3fa=_3fb.error_cb;
 }else{
 alert("Contacts: __sp_contacts_getContacts_cb : Callback not found ");
 return;
@@ -7611,39 +7603,39 @@
 iter=new __sp_contact_iterator(arg3.ReturnValue);
 }else{
 if(arg3.ErrorCode!=0){
-var _3f8;
+var _3fc;
 if(arg3.ErrorMessage){
-_3f8=splitErrorMessage(arg3.ErrorMessage);
-}else{
-_3f8="Operation Failed";
-}
-_3f6(new DeviceException(MapErrorCode[arg3.ErrorCode],"Contacts: getContacts: "+_3f8));
+_3fc=splitErrorMessage(arg3.ErrorMessage);
+}else{
+_3fc="Operation Failed";
+}
+_3fa(new DeviceException(MapErrorCode[arg3.ErrorCode],"Contacts: getContacts: "+_3fc));
 return;
 }
 }
-_3f5(iter);
+_3f9(iter);
 glob_obj.removeFromArray(arg1);
 };
-function __sp_contacts_getContacts(_3f9,_3fa,_3fb,_3fc){
-var _3fd={};
-modifyObjectBaseProp(_3fd);
-_3fd.Type="Contact";
-if(_3fa){
-_3fd.Filter={};
-modifyObjectBaseProp(_3fd.Filter);
-_3fd.Filter.SearchVal=_3fa;
-}
-if(_3fb!=null&&_3fb!=undefined){
-_3fd.Sort={};
-modifyObjectBaseProp(_3fd.Sort);
-if(typeof _3fb=="number"){
-if(_3fb==this.SORT_ASCENDING){
-_3fd.Sort.Order="Ascending";
-}else{
-if(_3fb==this.SORT_DESCENDING){
-_3fd.Sort.Order="Descending";
-}else{
-_3fc(new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR,"Contacts: getContacts: invalid sortOrder input"));
+function __sp_contacts_getContacts(_3fd,_3fe,_3ff,_400){
+var _401={};
+modifyObjectBaseProp(_401);
+_401.Type="Contact";
+if(_3fe){
+_401.Filter={};
+modifyObjectBaseProp(_401.Filter);
+_401.Filter.SearchVal=_3fe;
+}
+if(_3ff!=null&&_3ff!=undefined){
+_401.Sort={};
+modifyObjectBaseProp(_401.Sort);
+if(typeof _3ff=="number"){
+if(_3ff==this.SORT_ASCENDING){
+_401.Sort.Order="Ascending";
+}else{
+if(_3ff==this.SORT_DESCENDING){
+_401.Sort.Order="Descending";
+}else{
+_400(new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR,"Contacts: getContacts: invalid sortOrder input"));
 return;
 }
 }
@@ -7652,77 +7644,77 @@
 }
 }
 try{
-if(!_3f9){
+if(!_3fd){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: getContacts: callback is missing");
 }else{
-if(typeof _3f9!="function"){
+if(typeof _3fd!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: getContacts: callback is invalid");
 }
 }
-if(_3fc){
-if(typeof (_3fc)!="function"){
+if(_400){
+if(typeof (_400)!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: getContacts: ErrorCallback is invalid");
 }
 }
-temp_scb=_3f9;
-temp_ecb=_3fc;
-var rval=this.so.IDataSource.GetList(_3fd,this.getContactsCb);
+temp_scb=_3fd;
+temp_ecb=_400;
+var rval=this.so.IDataSource.GetList(_401,this.getContactsCb);
 if(rval.TransactionID){
-glob_obj.addToGlobalArray(rval.TransactionID,_3f9,_3fc);
-}
-if(_3fd.Sort){
-delete _3fd.Sort.Order;
-}
-if(_3fd.Filter){
-delete _3fd.Filter.SearchVal;
-}
-if(_3fd){
-delete _3fd.Type;
-delete _3fd.Filter;
-delete _3fd.Sort;
+glob_obj.addToGlobalArray(rval.TransactionID,_3fd,_400);
+}
+if(_401.Sort){
+delete _401.Sort.Order;
+}
+if(_401.Filter){
+delete _401.Filter.SearchVal;
+}
+if(_401){
+delete _401.Type;
+delete _401.Filter;
+delete _401.Sort;
 }
 if(rval.ErrorCode!=0){
-var _3ff=mappingVerification(rval.ErrorCode);
-var _400=null;
+var _403=mappingVerification(rval.ErrorCode);
+var _404=null;
 if(rval.ErrorMessage){
-_400=splitErrorMessage(rval.ErrorMessage);
-}
-if(_3ff){
+_404=splitErrorMessage(rval.ErrorMessage);
+}
+if(_403){
 switch(MapErrorCode[rval.ErrorCode]){
 case this.error.MISSING_ARG_ERR:
 case this.error.INVALID_ARG_ERR:
 case this.error.NOT_SUPPORTED_ERR:
-if(_400){
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts: "+_400);
+if(_404){
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts: "+_404);
 }else{
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts:Operation Failed");
 }
 break;
 default:
-if(_3fc!=undefined){
-if(_400){
-_3fc(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts: "+_400));
-}else{
-_3fc(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts:Operation Failed "));
-}
-}else{
-if(_400){
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts: "+_400);
+if(_400!=undefined){
+if(_404){
+_400(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts: "+_404));
+}else{
+_400(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts:Operation Failed "));
+}
+}else{
+if(_404){
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts: "+_404);
 }else{
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts:Operation Failed");
 }
 }
 }
 }else{
-if(_3fc!=undefined){
-if(_400){
-_3fc(new DeviceException(rval.ErrorCode,"Contacts: getContacts: "+_400));
-}else{
-_3fc(new DeviceException(rval.ErrorCode,"getContacts:Operation Failed "));
-}
-}else{
-if(_400){
-throw new DeviceException(rval.ErrorCode,"Contacts: getContacts: "+_400);
+if(_400!=undefined){
+if(_404){
+_400(new DeviceException(rval.ErrorCode,"Contacts: getContacts: "+_404));
+}else{
+_400(new DeviceException(rval.ErrorCode,"getContacts:Operation Failed "));
+}
+}else{
+if(_404){
+throw new DeviceException(rval.ErrorCode,"Contacts: getContacts: "+_404);
 }else{
 throw new DeviceException(rval.ErrorCode,"Contacts: getContacts:Operation Failed");
 }
@@ -7735,102 +7727,102 @@
 __device_handle_exception(e,"__sp_contacts_getContacts: "+e);
 }
 };
-function __sp_contacts_add(_401){
-if((_401)==null){
+function __sp_contacts_add(_405){
+if((_405)==null){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"addContact:Contact Data Needed");
 }
-if((typeof _401)=="undefined"){
+if((typeof _405)=="undefined"){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"addContact:Contact Data Needed");
 }
-if((_401)==undefined){
+if((_405)==undefined){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"addContact:Contact Data Needed");
 }
-if((typeof _401)!="object"){
+if((typeof _405)!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"addContact:Invalid Contact Data");
 }
-var _402={};
-modifyObjectBaseProp(_402);
-__s60_enumerate_contact_object(_401,null,__sp_contact_extract,_402);
-var _403={};
-modifyObjectBaseProp(_403);
-_403.Type="Contact";
-_403.Data=_402;
+var _406={};
+modifyObjectBaseProp(_406);
+__s60_enumerate_contact_object(_405,null,__sp_contact_extract,_406);
+var _407={};
+modifyObjectBaseProp(_407);
+_407.Type="Contact";
+_407.Data=_406;
 try{
-if(_402.id){
+if(_406.id){
 throw new DeviceException(this.error.NOT_SUPPORTED_ERR,"Contacts: addContact: Id Not Supported");
 }
-var _404=this.so.IDataSource.Add(_403);
-if(_402){
-delete _402.id;
-}
-if(_403){
-delete _403.Type;
-delete _403.Data;
-}
-var _405=_404["ReturnValue"];
-if(_404.ErrorCode!=0){
-var _406=mappingVerification(_404.ErrorCode);
-if(_404.ErrorMessage){
-var _407=splitErrorMessage(_404.ErrorMessage);
+var _408=this.so.IDataSource.Add(_407);
 if(_406){
-throw new DeviceException(MapErrorCode[_404.ErrorCode],"Contacts: addContact: "+_407);
-}else{
-throw new DeviceException(_404.ErrorCode,"Contacts: addContact: "+_407);
-}
-}else{
-if(_406){
-throw new DeviceException(MapErrorCode[_404.ErrorCode],"Contacts: addContact: Operation Failed");
-}else{
-throw new DeviceException(_404.ErrorCode,"Contacts: addContact: Operation Failed");
-}
-}
-}
-return _405;
+delete _406.id;
+}
+if(_407){
+delete _407.Type;
+delete _407.Data;
+}
+var _409=_408["ReturnValue"];
+if(_408.ErrorCode!=0){
+var _40a=mappingVerification(_408.ErrorCode);
+if(_408.ErrorMessage){
+var _40b=splitErrorMessage(_408.ErrorMessage);
+if(_40a){
+throw new DeviceException(MapErrorCode[_408.ErrorCode],"Contacts: addContact: "+_40b);
+}else{
+throw new DeviceException(_408.ErrorCode,"Contacts: addContact: "+_40b);
+}
+}else{
+if(_40a){
+throw new DeviceException(MapErrorCode[_408.ErrorCode],"Contacts: addContact: Operation Failed");
+}else{
+throw new DeviceException(_408.ErrorCode,"Contacts: addContact: Operation Failed");
+}
+}
+}
+return _409;
 }
 catch(e){
 __device_handle_exception(e,"__sp_contacts_addContact: "+e);
 }
 };
-function __sp_contacts_update(_408){
+function __sp_contacts_update(_40c){
 try{
-if(!(_408&&_408.id)){
+if(!(_40c&&_40c.id)){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: updateContact: contact is missing");
 }
-var _409={};
-modifyObjectBaseProp(_409);
-__s60_enumerate_contact_object(_408,null,__sp_contact_extract,_409);
-if(_409.id==undefined){
+var _40d={};
+modifyObjectBaseProp(_40d);
+__s60_enumerate_contact_object(_40c,null,__sp_contact_extract,_40d);
+if(_40d.id==undefined){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: updateContact: Invalid id type");
 }
-if(typeof _409.id!="string"){
+if(typeof _40d.id!="string"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: updateContact: Invalid id type");
 }
-var _40a={};
-modifyObjectBaseProp(_40a);
-_40a.Type="Contact";
-_40a.Data=_409;
-var _40b=this.so.IDataSource.Add(_40a);
-if(_409){
-delete _409.id;
-}
-if(_40a){
-delete _40a.Type;
-delete _40a.Data;
-}
-if(_40b.ErrorCode!=0){
-var _40c=mappingVerification(_40b.ErrorCode);
-if(_40b.ErrorMessage){
-var _40d=splitErrorMessage(_40b.ErrorMessage);
-if(_40c){
-throw new DeviceException(MapErrorCode[_40b.ErrorCode],"Contacts: updateContact: "+_40d);
-}else{
-throw new DeviceException(_40b.ErrorCode,"Contacts: updateContact: "+_40d);
-}
-}else{
-if(_40c){
-throw new DeviceException(MapErrorCode[_40b.ErrorCode],"Contacts: updateContact: Operation Failed");
-}else{
-throw new DeviceException(_40b.ErrorCode,"Contacts: updateContact: Operation Failed");
+var _40e={};
+modifyObjectBaseProp(_40e);
+_40e.Type="Contact";
+_40e.Data=_40d;
+var _40f=this.so.IDataSource.Add(_40e);
+if(_40d){
+delete _40d.id;
+}
+if(_40e){
+delete _40e.Type;
+delete _40e.Data;
+}
+if(_40f.ErrorCode!=0){
+var _410=mappingVerification(_40f.ErrorCode);
+if(_40f.ErrorMessage){
+var _411=splitErrorMessage(_40f.ErrorMessage);
+if(_410){
+throw new DeviceException(MapErrorCode[_40f.ErrorCode],"Contacts: updateContact: "+_411);
+}else{
+throw new DeviceException(_40f.ErrorCode,"Contacts: updateContact: "+_411);
+}
+}else{
+if(_410){
+throw new DeviceException(MapErrorCode[_40f.ErrorCode],"Contacts: updateContact: Operation Failed");
+}else{
+throw new DeviceException(_40f.ErrorCode,"Contacts: updateContact: Operation Failed");
 }
 }
 }
@@ -7841,44 +7833,44 @@
 };
 function __sp_contacts_delete(id){
 __device_debug("sp_contacts_delete id: "+id);
-var _40f={};
-modifyObjectBaseProp(_40f);
+var _413={};
+modifyObjectBaseProp(_413);
 if(id==undefined){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: deleteContacts: idlist is missing");
 }
 if(typeof id=="object"){
-_40f.IdList=id;
-}else{
-_40f.IdList=[];
-_40f.IdList[0]=id;
-}
-var _410={};
-modifyObjectBaseProp(_410);
-_410.Type="Contact";
-_410.Data=_40f;
+_413.IdList=id;
+}else{
+_413.IdList=[];
+_413.IdList[0]=id;
+}
+var _414={};
+modifyObjectBaseProp(_414);
+_414.Type="Contact";
+_414.Data=_413;
 try{
-var _411=this.so.IDataSource.Delete(_410);
-if(_40f){
-delete _40f.IdList;
-}
-if(_410){
-delete _410.Type;
-delete _410.Data;
-}
-if(_411.ErrorCode!=0){
-var _412=mappingVerification(_411.ErrorCode);
-if(_411.ErrorMessage){
-var _413=splitErrorMessage(_411.ErrorMessage);
-if(_412){
-throw new DeviceException(MapErrorCode[_411.ErrorCode],"Contacts: deleteContacts: "+_413);
-}else{
-throw new DeviceException(_411.ErrorCode,"Contacts: deleteContacts: "+_413);
-}
-}else{
-if(_412){
-throw new DeviceException(MapErrorCode[_411.ErrorCode],"Contacts: deleteContacts: Operation Failed");
-}else{
-throw new DeviceException(_411.ErrorCode,"Contacts: deleteContacts: Operation Failed");
+var _415=this.so.IDataSource.Delete(_414);
+if(_413){
+delete _413.IdList;
+}
+if(_414){
+delete _414.Type;
+delete _414.Data;
+}
+if(_415.ErrorCode!=0){
+var _416=mappingVerification(_415.ErrorCode);
+if(_415.ErrorMessage){
+var _417=splitErrorMessage(_415.ErrorMessage);
+if(_416){
+throw new DeviceException(MapErrorCode[_415.ErrorCode],"Contacts: deleteContacts: "+_417);
+}else{
+throw new DeviceException(_415.ErrorCode,"Contacts: deleteContacts: "+_417);
+}
+}else{
+if(_416){
+throw new DeviceException(MapErrorCode[_415.ErrorCode],"Contacts: deleteContacts: Operation Failed");
+}else{
+throw new DeviceException(_415.ErrorCode,"Contacts: deleteContacts: Operation Failed");
 }
 }
 }
@@ -7888,101 +7880,101 @@
 }
 };
 function __sp_contacts_get(id){
-var _415={};
-modifyObjectBaseProp(_415);
-_415.Type="Contact";
+var _419={};
+modifyObjectBaseProp(_419);
+_419.Type="Contact";
 if(id==null){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: getContactInfo: id should not be null");
 }
 if(typeof id!="string"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: getContactInfo: id should be string");
 }
-_415.Filter={};
-modifyObjectBaseProp(_415.Filter);
-_415.Filter.id=id;
+_419.Filter={};
+modifyObjectBaseProp(_419.Filter);
+_419.Filter.id=id;
 try{
-var rval=this.so.IDataSource.GetList(_415);
-if(_415.Filter){
-delete _415.Filter.id;
-}
-if(_415){
-delete _415.Type;
-delete _415.Filter;
+var rval=this.so.IDataSource.GetList(_419);
+if(_419.Filter){
+delete _419.Filter.id;
+}
+if(_419){
+delete _419.Type;
+delete _419.Filter;
 }
 if(rval){
 if(rval.ErrorCode!=0){
-var _417=mappingVerification(rval.ErrorCode);
+var _41b=mappingVerification(rval.ErrorCode);
 if(rval.ErrorMessage){
-var _418=splitErrorMessage(rval.ErrorMessage);
-if(_417){
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactInfo: "+_418);
-}else{
-throw new DeviceException(rval.ErrorCode,"Contacts: getContactInfo: "+_418);
-}
-}else{
-if(_417){
+var _41c=splitErrorMessage(rval.ErrorMessage);
+if(_41b){
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactInfo: "+_41c);
+}else{
+throw new DeviceException(rval.ErrorCode,"Contacts: getContactInfo: "+_41c);
+}
+}else{
+if(_41b){
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactInfo: Operation Failed");
 }else{
 throw new DeviceException(rval.ErrorCode,"Contacts: getContactInfo: Operation Failed");
 }
 }
 }
-var _419={};
-modifyObjectBaseProp(_419);
-var _41a=rval.ReturnValue.getNext();
-__sp_device_contact_build(_41a,_419);
-return _419;
+var _41d={};
+modifyObjectBaseProp(_41d);
+var _41e=rval.ReturnValue.getNext();
+__sp_device_contact_build(_41e,_41d);
+return _41d;
 }
 }
 catch(e){
 __device_handle_exception(e,"__sp_contacts_getContactInfo:"+e);
 }
 };
-function __sp_contacts_addGroup(_41b){
-var _41c={};
-modifyObjectBaseProp(_41c);
-_41c.GroupLabel=_41b;
-if(typeof (_41c.GroupLabel)==null){
+function __sp_contacts_addGroup(_41f){
+var _420={};
+modifyObjectBaseProp(_420);
+_420.GroupLabel=_41f;
+if(typeof (_420.GroupLabel)==null){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: addGroups: callback is missing");
 }
-if((typeof _41c.GroupLabel)=="undefined"){
+if((typeof _420.GroupLabel)=="undefined"){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"addGroup:Group Data Needed");
 }
-if((_41c.GroupLabel)==undefined){
+if((_420.GroupLabel)==undefined){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"addGroup:Group Data Needed");
 }
-var _41d={};
-modifyObjectBaseProp(_41d);
-_41d.Type="Group";
-_41d.Data=_41c;
+var _421={};
+modifyObjectBaseProp(_421);
+_421.Type="Group";
+_421.Data=_420;
 try{
-var _41e=this.so.IDataSource.Add(_41d);
-if(_41c){
-delete _41c.GroupLabel;
-}
-if(_41d){
-delete _41d.Type;
-delete _41d.Data;
-}
-var _41f=_41e["ReturnValue"];
-if(_41e.ErrorCode!=0){
-var _420=mappingVerification(_41e.ErrorCode);
-if(_41e.ErrorMessage){
-var _421=splitErrorMessage(_41e.ErrorMessage);
+var _422=this.so.IDataSource.Add(_421);
 if(_420){
-throw new DeviceException(MapErrorCode[_41e.ErrorCode],"Contacts: addGroup: "+_421);
-}else{
-throw new DeviceException(_421,_41e.ErrorCode,"Contacts: addGroup: Operation Failed ");
-}
-}else{
-if(_420){
-throw new DeviceException(MapErrorCode[_41e.ErrorCode],"Contacts: addGroup: Operation Failed");
-}else{
-throw new DeviceException(_41e.ErrorCode,"Contacts: addGroup: Operation Failed");
-}
-}
-}
-return _41f;
+delete _420.GroupLabel;
+}
+if(_421){
+delete _421.Type;
+delete _421.Data;
+}
+var _423=_422["ReturnValue"];
+if(_422.ErrorCode!=0){
+var _424=mappingVerification(_422.ErrorCode);
+if(_422.ErrorMessage){
+var _425=splitErrorMessage(_422.ErrorMessage);
+if(_424){
+throw new DeviceException(MapErrorCode[_422.ErrorCode],"Contacts: addGroup: "+_425);
+}else{
+throw new DeviceException(_425,_422.ErrorCode,"Contacts: addGroup: Operation Failed ");
+}
+}else{
+if(_424){
+throw new DeviceException(MapErrorCode[_422.ErrorCode],"Contacts: addGroup: Operation Failed");
+}else{
+throw new DeviceException(_422.ErrorCode,"Contacts: addGroup: Operation Failed");
+}
+}
+}
+return _423;
 }
 catch(e){
 __device_handle_exception(e,"__sp_contacts_addGroup: "+e);
@@ -7990,102 +7982,102 @@
 };
 function __sp_contacts_getGroups_cb(arg1,arg2,arg3){
 var iter=null;
-var _426;
-var _427;
-var _428;
-_428=glob_obj.getFromArray(arg1);
-if(_428){
-_426=_428.success_cb;
-_427=_428.error_cb;
+var _42a;
+var _42b;
+var _42c;
+_42c=glob_obj.getFromArray(arg1);
+if(_42c){
+_42a=_42c.success_cb;
+_42b=_42c.error_cb;
 }else{
 return;
 }
 iter=arg3.ReturnValue;
 if(arg3.ReturnValue){
-iter=new __sp_group_iterator(arg3.ReturnValue);
+iter=new __sp_groupinfo_iterator(arg3.ReturnValue);
 }else{
 if(arg3.ErrorCode!=0){
-var _429;
+var _42d;
 if(arg3.ErrorMessage){
-_429=splitErrorMessage(arg3.ErrorMessage);
-}else{
-_429="Operation Failed";
-}
-_427(new DeviceException(_429,MapErrorCode[arg3.ErrorCode],"Contacts: getGroups:"));
+_42d=splitErrorMessage(arg3.ErrorMessage);
+}else{
+_42d="Operation Failed";
+}
+_42b(new DeviceException(_42d,MapErrorCode[arg3.ErrorCode],"Contacts: getGroups:"));
 return;
 }
 }
-_426(iter);
+_42a(iter);
 glob_obj.removeFromArray(arg1);
 };
-function __sp_contacts_getGroups(_42a,_42b){
-var _42c={};
-modifyObjectBaseProp(_42c);
-_42c.Type="Group";
+function __sp_contacts_getGroups(_42e,_42f){
+var _430={};
+modifyObjectBaseProp(_430);
+_430.Type="Group";
 try{
-if(!_42a){
+if(!_42e){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: getGroups: callback is missing");
 }else{
-if(typeof _42a!="function"){
+if(typeof _42e!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: getGroups: callback is invalid");
 }
 }
-if(_42b){
-if(typeof (_42b)!="function"){
+if(_42f){
+if(typeof (_42f)!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: getGroups: ErrorCallback is invalid");
 }
 }
-temp_scb=_42a;
-temp_ecb=_42b;
-var rval=this.so.IDataSource.GetList(_42c,this.getGroupsCb);
+temp_scb=_42e;
+temp_ecb=_42f;
+var rval=this.so.IDataSource.GetList(_430,this.getGroupsCb);
 if(rval.TransactionID){
-glob_obj.addToGlobalArray(rval.TransactionID,_42a,_42b);
-}
-if(_42c){
-delete _42c.Type;
+glob_obj.addToGlobalArray(rval.TransactionID,_42e,_42f);
+}
+if(_430){
+delete _430.Type;
 }
 if(rval.ErrorCode!=0){
-var _42e=mappingVerification(rval.ErrorCode);
-var _42f=null;
+var _432=mappingVerification(rval.ErrorCode);
+var _433=null;
 if(rval.ErrorMessage){
-_42f=splitErrorMessage(rval.ErrorMessage);
-}
-if(_42e){
+_433=splitErrorMessage(rval.ErrorMessage);
+}
+if(_432){
 switch(MapErrorCode[rval.ErrorCode]){
 case this.error.MISSING_ARG_ERR:
 case this.error.INVALID_ARG_ERR:
 case this.error.NOT_SUPPORTED_ERR:
-if(_42f){
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroups: "+_42f);
+if(_433){
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroups: "+_433);
 }else{
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroups: Operation Failed");
 }
 break;
 default:
-if(_42b!=undefined){
-if(_42f){
-_42b(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroups: "+_42f));
-}else{
-_42b(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts:  getGroups: Operation Failed "));
-}
-}else{
-if(_42f){
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroups: Operation Failed"+_42f);
+if(_42f!=undefined){
+if(_433){
+_42f(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroups: "+_433));
+}else{
+_42f(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts:  getGroups: Operation Failed "));
+}
+}else{
+if(_433){
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroups: Operation Failed"+_433);
 }else{
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroups: Operation Failed");
 }
 }
 }
 }else{
-if(_42b!=undefined){
-if(_42f){
-_42b(new DeviceException(rval.ErrorCode,"Contacts: getGroups: "+_42f));
-}else{
-_42b(new DeviceException(rval.ErrorCode,"Contacts: getGroups: Operation Failed"));
-}
-}else{
-if(_42f){
-throw new DeviceException(rval.ErrorCode,"Contacts: getGroups: Operation Failed"+_42f);
+if(_42f!=undefined){
+if(_433){
+_42f(new DeviceException(rval.ErrorCode,"Contacts: getGroups: "+_433));
+}else{
+_42f(new DeviceException(rval.ErrorCode,"Contacts: getGroups: Operation Failed"));
+}
+}else{
+if(_433){
+throw new DeviceException(rval.ErrorCode,"Contacts: getGroups: Operation Failed"+_433);
 }else{
 throw new DeviceException(rval.ErrorCode,"Contacts: getGroups: Operation Failed");
 }
@@ -8099,40 +8091,40 @@
 }
 };
 function __sp_contacts_deleteGroups(id){
-var _431={};
-modifyObjectBaseProp(_431);
-var _432=[];
+var _435={};
+modifyObjectBaseProp(_435);
+var _436=[];
 if(typeof id=="object"){
 var i=0;
 for(var val in id){
-_432[i]=id[val];
+_436[i]=id[val];
 i++;
 }
 }else{
-_432[0]=id;
-}
-_431.IdList=[];
-_431.IdList=_432;
-var _435={};
-modifyObjectBaseProp(_435);
-_435.Type="Group";
-_435.Data=_431;
+_436[0]=id;
+}
+_435.IdList=[];
+_435.IdList=_436;
+var _439={};
+modifyObjectBaseProp(_439);
+_439.Type="Group";
+_439.Data=_435;
 try{
-var _436=this.so.IDataSource.Delete(_435);
-if(_436.ErrorCode!=0){
-var _437=mappingVerification(_436.ErrorCode);
-if(_436.ErrorMessage){
-var _438=splitErrorMessage(_436.ErrorMessage);
-if(_437){
-throw new DeviceException(MapErrorCode[_436.ErrorCode],"Contacts: deleteGroups: "+_438);
-}else{
-throw new DeviceException(_436.ErrorCode,"Contacts: deleteGroups: "+_438);
-}
-}else{
-if(_437){
-throw new DeviceException(MapErrorCode[_436.ErrorCode],"Contacts: deleteGroups: Operation Failed");
-}else{
-throw new DeviceException(_436.ErrorCode,"Contacts: deleteGroups: Operation Failed");
+var _43a=this.so.IDataSource.Delete(_439);
+if(_43a.ErrorCode!=0){
+var _43b=mappingVerification(_43a.ErrorCode);
+if(_43a.ErrorMessage){
+var _43c=splitErrorMessage(_43a.ErrorMessage);
+if(_43b){
+throw new DeviceException(MapErrorCode[_43a.ErrorCode],"Contacts: deleteGroups: "+_43c);
+}else{
+throw new DeviceException(_43a.ErrorCode,"Contacts: deleteGroups: "+_43c);
+}
+}else{
+if(_43b){
+throw new DeviceException(MapErrorCode[_43a.ErrorCode],"Contacts: deleteGroups: Operation Failed");
+}else{
+throw new DeviceException(_43a.ErrorCode,"Contacts: deleteGroups: Operation Failed");
 }
 }
 }
@@ -8141,59 +8133,59 @@
 __device_handle_exception(e,"__sp_contacts_deleteGroups: "+e);
 }
 };
-function __sp_contacts_addContactsToGroup(_439,id1){
+function __sp_contacts_addContactsToGroup(_43d,id1){
 try{
-var _43b={};
-modifyObjectBaseProp(_43b);
-var _43c=false;
-_43b.Type="Group";
+var _43f={};
+modifyObjectBaseProp(_43f);
+var _440=false;
+_43f.Type="Group";
 var map={};
 modifyObjectBaseProp(map);
-var _43e=[];
+var _442=[];
 if(typeof id1=="object"){
 var i=0;
 for(var val in id1){
-_43e[i]=id1[val];
+_442[i]=id1[val];
 i++;
 }
 }else{
-_43e[0]=id1;
-}
-map.IdList=_43e;
-_43c=true;
-delete _43e.index;
-if(_439!=undefined){
-map.id=_439;
-_43c=true;
-}
-if(_43c){
-_43b.Data=map;
-}
-_43b.OperationType="Associate";
-var _441=this.so.IDataSource.Organise(_43b);
+_442[0]=id1;
+}
+map.IdList=_442;
+_440=true;
+delete _442.index;
+if(_43d!=undefined){
+map.id=_43d;
+_440=true;
+}
+if(_440){
+_43f.Data=map;
+}
+_43f.OperationType="Associate";
+var _445=this.so.IDataSource.Organise(_43f);
 if(map){
 delete map.id;
 delete map.IdList;
 }
-if(_43b){
-delete _43b.Data;
-delete _43b.OperationType;
-delete _43b.Type;
-}
-if(_441.ErrorCode!=0){
-var _442=mappingVerification(_441.ErrorCode);
-if(_441.ErrorMessage){
-var _443=splitErrorMessage(_441.ErrorMessage);
-if(_442){
-throw new DeviceException(MapErrorCode[_441.ErrorCode],"Contacts: addContactsToGroup: "+_443);
-}else{
-throw new DeviceException(_441.ErrorCode,"Contacts: addContactsToGroup: "+_443);
-}
-}else{
-if(_442){
-throw new DeviceException(MapErrorCode[_441.ErrorCode],"Contacts: addContactsToGroup: Operation Failed");
-}else{
-throw new DeviceException(_441.ErrorCode,"Contacts: addContactsToGroup: Operation Failed");
+if(_43f){
+delete _43f.Data;
+delete _43f.OperationType;
+delete _43f.Type;
+}
+if(_445.ErrorCode!=0){
+var _446=mappingVerification(_445.ErrorCode);
+if(_445.ErrorMessage){
+var _447=splitErrorMessage(_445.ErrorMessage);
+if(_446){
+throw new DeviceException(MapErrorCode[_445.ErrorCode],"Contacts: addContactsToGroup: "+_447);
+}else{
+throw new DeviceException(_445.ErrorCode,"Contacts: addContactsToGroup: "+_447);
+}
+}else{
+if(_446){
+throw new DeviceException(MapErrorCode[_445.ErrorCode],"Contacts: addContactsToGroup: Operation Failed");
+}else{
+throw new DeviceException(_445.ErrorCode,"Contacts: addContactsToGroup: Operation Failed");
 }
 }
 }
@@ -8204,14 +8196,14 @@
 };
 function __sp_contacts_getContactIds_cb(arg1,arg2,arg3){
 var item=null;
-var _448=null;
-var _449;
-var _44a;
-var _44b;
-_44b=glob_obj.getFromArray(arg1);
-if(_44b){
-_449=_44b.success_cb;
-_44a=_44b.error_cb;
+var _44c=null;
+var _44d;
+var _44e;
+var _44f;
+_44f=glob_obj.getFromArray(arg1);
+if(_44f){
+_44d=_44f.success_cb;
+_44e=_44f.error_cb;
 }else{
 alert("Contacts: __sp_contacts_getContactIds_cb : Callback not found ");
 return;
@@ -8220,44 +8212,44 @@
 if(arg3["ReturnValue"]!=undefined){
 item=arg3["ReturnValue"];
 id=item["IdList"];
-_448=[];
-_448=id;
-delete _448.index;
+_44c=[];
+_44c=id;
+delete _44c.index;
 }else{
 if(arg3.ErrorCode!=0){
-var _44d;
+var _451;
 if(arg3.ErrorMessage){
-_44d=splitErrorMessage(arg3.ErrorMessage);
-}else{
-_44d="Operation Failed";
-}
-_44a(new DeviceException(MapErrorCode[arg3.ErrorCode],"Contacts: getContactIds:"+_44d));
+_451=splitErrorMessage(arg3.ErrorMessage);
+}else{
+_451="Operation Failed";
+}
+_44e(new DeviceException(MapErrorCode[arg3.ErrorCode],"Contacts: getContactIds:"+_451));
 return;
 }
 }
-_449(_448);
+_44d(_44c);
 glob_obj.removeFromArray(arg1);
 };
-function __sp_contacts_getContactIds(_44e,_44f,_450,_451){
-var _452={};
-modifyObjectBaseProp(_452);
-_452.Type="Contact";
-if(_44f){
-_452.Filter={};
-modifyObjectBaseProp(_452.Filter);
-_452.Filter.SearchVal=_44f;
-}
-if(_450!=null&&_450!=undefined){
-_452.Sort={};
-modifyObjectBaseProp(_452.Sort);
-if(typeof _450=="number"){
-if(_450==this.SORT_ASCENDING){
-_452.Sort.Order="Ascending";
-}else{
-if(_450==this.SORT_DESCENDING){
-_452.Sort.Order="Descending";
-}else{
-_451(new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR,"Contacts: getContacts: invalid sortOrder input"));
+function __sp_contacts_getContactIds(_452,_453,_454,_455){
+var _456={};
+modifyObjectBaseProp(_456);
+_456.Type="Contact";
+if(_453){
+_456.Filter={};
+modifyObjectBaseProp(_456.Filter);
+_456.Filter.SearchVal=_453;
+}
+if(_454!=null&&_454!=undefined){
+_456.Sort={};
+modifyObjectBaseProp(_456.Sort);
+if(typeof _454=="number"){
+if(_454==this.SORT_ASCENDING){
+_456.Sort.Order="Ascending";
+}else{
+if(_454==this.SORT_DESCENDING){
+_456.Sort.Order="Descending";
+}else{
+_455(new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR,"Contacts: getContacts: invalid sortOrder input"));
 return;
 }
 }
@@ -8266,66 +8258,66 @@
 }
 }
 try{
-if(!_44e){
+if(!_452){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: getContactIds: callback is missing");
 }else{
-if(typeof _44e!="function"){
+if(typeof _452!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: getContactIds: callback is invalid");
 }
 }
-if(_451){
-if(typeof (_451)!="function"){
+if(_455){
+if(typeof (_455)!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: getContactIds: ErrorCallback is invalid");
 }
 }
-temp_scb=_44e;
-temp_ecb=_451;
-var rval=this.so.IDataSource.GetIds(_452,this.getContactIdsCb);
+temp_scb=_452;
+temp_ecb=_455;
+var rval=this.so.IDataSource.GetIds(_456,this.getContactIdsCb);
 if(rval.TransactionID){
-glob_obj.addToGlobalArray(rval.TransactionID,_44e,_451);
+glob_obj.addToGlobalArray(rval.TransactionID,_452,_455);
 }
 if(rval.ErrorCode!=0){
-var _454=mappingVerification(rval.ErrorCode);
-var _455=null;
+var _458=mappingVerification(rval.ErrorCode);
+var _459=null;
 if(rval.ErrorMessage){
-var _455=splitErrorMessage(rval.ErrorMessage);
-}
-if(_454){
+var _459=splitErrorMessage(rval.ErrorMessage);
+}
+if(_458){
 switch(MapErrorCode[rval.ErrorCode]){
 case this.error.MISSING_ARG_ERR:
 case this.error.INVALID_ARG_ERR:
 case this.error.NOT_SUPPORTED_ERR:
-if(_455){
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds: "+_455);
+if(_459){
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds: "+_459);
 }else{
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds: Operation Failed");
 }
 break;
 default:
-if(_451!=undefined){
-if(_455){
-_451(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds: "+_455));
-}else{
-_451(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds: Operation Failed "));
-}
-}else{
-if(_455){
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds:"+_455);
+if(_455!=undefined){
+if(_459){
+_455(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds: "+_459));
+}else{
+_455(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds: Operation Failed "));
+}
+}else{
+if(_459){
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds:"+_459);
 }else{
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds: Operation Failed");
 }
 }
 }
 }else{
-if(_451!=undefined){
-if(_455){
-_451(new DeviceException(rval.ErrorCode,"Contacts: getContactIds: "+_455));
-}else{
-_451(new DeviceException(rval.ErrorCode,"Contacts: getContactIds: Operation Failed "));
-}
-}else{
-if(_455){
-throw new DeviceException(rval.ErrorCode,"Contacts: getContactIds:"+_455);
+if(_455!=undefined){
+if(_459){
+_455(new DeviceException(rval.ErrorCode,"Contacts: getContactIds: "+_459));
+}else{
+_455(new DeviceException(rval.ErrorCode,"Contacts: getContactIds: Operation Failed "));
+}
+}else{
+if(_459){
+throw new DeviceException(rval.ErrorCode,"Contacts: getContactIds:"+_459);
 }else{
 throw new DeviceException(rval.ErrorCode,"Contacts: getContactIds: Operation Failed");
 }
@@ -8339,16 +8331,16 @@
 }
 };
 function __sp_contacts_getGroupIds_cb(arg1,arg2,arg3){
-var _459=null;
+var _45d=null;
 var item=null;
-var _45b=[];
-var _45c;
-var _459;
+var _45f=[];
+var _460;
 var _45d;
-_45d=glob_obj.getFromArray(arg1);
-if(_45d){
-_45c=_45d.success_cb;
-_459=_45d.error_cb;
+var _461;
+_461=glob_obj.getFromArray(arg1);
+if(_461){
+_460=_461.success_cb;
+_45d=_461.error_cb;
 }else{
 return;
 }
@@ -8356,91 +8348,91 @@
 item=arg3["ReturnValue"];
 arg3.ReturnValue.close();
 var id=item["IdList"];
-_45b=id;
+_45f=id;
 }else{
 if(arg3.ErrorCode!=0){
-var _45f;
+var _463;
 if(rval.ErrorMessage){
-_45f=splitErrorMessage(rval.ErrorMessage);
-}else{
-_45f="Operation Failed";
-}
-_459(new DeviceException(MapErrorCode[arg3.ErrorCode],"Contacts: getGroupIds:"+_45f));
+_463=splitErrorMessage(rval.ErrorMessage);
+}else{
+_463="Operation Failed";
+}
+_45d(new DeviceException(MapErrorCode[arg3.ErrorCode],"Contacts: getGroupIds:"+_463));
 return;
 }
 }
-_45c(_45b);
-delete _45b.index;
+_460(_45f);
+delete _45f.index;
 glob_obj.removeFromArray(arg1);
 };
-function __sp_contacts_getGroupIds(_460,_461){
-var _462={};
-modifyObjectBaseProp(_462);
-_462.Type="Group";
+function __sp_contacts_getGroupIds(_464,_465){
+var _466={};
+modifyObjectBaseProp(_466);
+_466.Type="Group";
 try{
-if(!_460){
+if(!_464){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: getGroupIds: callback is missing");
 }else{
-if(typeof _460!="function"){
+if(typeof _464!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: getGroupIds: callback is invalid");
 }
 }
-if(_461){
-if(typeof (_461)!="function"){
+if(_465){
+if(typeof (_465)!="function"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: getGroupIds: ErrorCallback is invalid");
 }
 }
-temp_scb=_460;
-temp_ecb=_461;
-var rval=this.so.IDataSource.GetIds(_462,this.getGroupIdsCb);
+temp_scb=_464;
+temp_ecb=_465;
+var rval=this.so.IDataSource.GetIds(_466,this.getGroupIdsCb);
 if(rval.TransactionID){
-glob_obj.addToGlobalArray(rval.TransactionID,_460,_461);
-}
-if(_462){
-delete _462.Type;
+glob_obj.addToGlobalArray(rval.TransactionID,_464,_465);
+}
+if(_466){
+delete _466.Type;
 }
 if(rval.ErrorCode!=0){
-var _464=mappingVerification(rval.ErrorCode);
-var _465=null;
+var _468=mappingVerification(rval.ErrorCode);
+var _469=null;
 if(rval.ErrorMessage){
-var _465=splitErrorMessage(rval.ErrorMessage);
-}
-if(_464){
+var _469=splitErrorMessage(rval.ErrorMessage);
+}
+if(_468){
 switch(rval.ErrorCode){
 case this.error.MISSING_ARG_ERR:
 case this.error.INVALID_ARG_ERR:
 case this.error.NOT_SUPPORTED_ERR:
-if(_465){
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupIds: "+_465);
+if(_469){
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupIds: "+_469);
 }else{
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupIds: Operation Failed");
 }
 break;
 default:
-if(_461!=undefined){
-if(_465){
-_461(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupIds: "+_465));
-}else{
-_461(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupIds: Operation Failed"));
-}
-}else{
-if(_465){
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: Contacts: getGroupIds:"+_465);
+if(_465!=undefined){
+if(_469){
+_465(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupIds: "+_469));
+}else{
+_465(new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupIds: Operation Failed"));
+}
+}else{
+if(_469){
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: Contacts: getGroupIds:"+_469);
 }else{
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupIds: Operation Failed");
 }
 }
 }
 }else{
-if(_461!=undefined){
-if(_465){
-_461(new DeviceException(rval.ErrorCode,"Contacts: getGroupIds: "+_465));
-}else{
-_461(new DeviceException(rval.ErrorCode,"Contacts: getGroupIds: Operation Failed"));
-}
-}else{
-if(_465){
-throw new DeviceException(rval.ErrorCode,"Contacts: Contacts: getGroupIds:"+_465);
+if(_465!=undefined){
+if(_469){
+_465(new DeviceException(rval.ErrorCode,"Contacts: getGroupIds: "+_469));
+}else{
+_465(new DeviceException(rval.ErrorCode,"Contacts: getGroupIds: Operation Failed"));
+}
+}else{
+if(_469){
+throw new DeviceException(rval.ErrorCode,"Contacts: Contacts: getGroupIds:"+_469);
 }else{
 throw new DeviceException(rval.ErrorCode,"Contacts: getGroupIds: Operation Failed");
 }
@@ -8453,58 +8445,58 @@
 __device_handle_exception(e,"__sp_contacts_getGroupIds: "+e);
 }
 };
-function __sp_contacts_removeContactsFromGroup(_466,id){
+function __sp_contacts_removeContactsFromGroup(_46a,id){
 try{
-var _468={};
-modifyObjectBaseProp(_468);
-var _469=false;
-_468.Type="Group";
+var _46c={};
+modifyObjectBaseProp(_46c);
+var _46d=false;
+_46c.Type="Group";
 var map={};
 if(id!=undefined){
-var _46b=[];
+var _46f=[];
 if(typeof id=="object"){
 var i=0;
 for(var val in id){
-_46b[i]=id[val];
+_46f[i]=id[val];
 i++;
 }
 }else{
-_46b[0]=id;
-}
-map.IdList=_46b;
-_469=true;
-}
-if(_466!=undefined){
-map.id=_466;
-_469=true;
-}
-if(_469){
-_468.Data=map;
-}
-_468.OperationType="Disassociate";
-var _46e=this.so.IDataSource.Organise(_468);
+_46f[0]=id;
+}
+map.IdList=_46f;
+_46d=true;
+}
+if(_46a!=undefined){
+map.id=_46a;
+_46d=true;
+}
+if(_46d){
+_46c.Data=map;
+}
+_46c.OperationType="Disassociate";
+var _472=this.so.IDataSource.Organise(_46c);
 if(map){
 delete map.IdList;
 }
-if(_468){
-delete _468.Data;
-delete _468.OperationType;
-delete _468.Type;
-}
-if(_46e.ErrorCode!=0){
-var _46f=mappingVerification(_46e.ErrorCode);
-if(_46e.ErrorMessage){
-var _470=splitErrorMessage(_46e.ErrorMessage);
-if(_46f){
-throw new DeviceException(MapErrorCode[_46e.ErrorCode],"Contacts: removeContactsFromGroup: "+_470);
-}else{
-throw new DeviceException(_46e.ErrorCode,"Contacts: removeContactsFromGroup: "+_470);
-}
-}else{
-if(_46f){
-throw new DeviceException(MapErrorCode[_46e.ErrorCode],"Contacts: removeContactsFromGroup: Operation Failed");
-}else{
-throw new DeviceException(_46e.ErrorCode,"Contacts: removeContactsFromGroup: Operation Failed");
+if(_46c){
+delete _46c.Data;
+delete _46c.OperationType;
+delete _46c.Type;
+}
+if(_472.ErrorCode!=0){
+var _473=mappingVerification(_472.ErrorCode);
+if(_472.ErrorMessage){
+var _474=splitErrorMessage(_472.ErrorMessage);
+if(_473){
+throw new DeviceException(MapErrorCode[_472.ErrorCode],"Contacts: removeContactsFromGroup: "+_474);
+}else{
+throw new DeviceException(_472.ErrorCode,"Contacts: removeContactsFromGroup: "+_474);
+}
+}else{
+if(_473){
+throw new DeviceException(MapErrorCode[_472.ErrorCode],"Contacts: removeContactsFromGroup: Operation Failed");
+}else{
+throw new DeviceException(_472.ErrorCode,"Contacts: removeContactsFromGroup: Operation Failed");
 }
 }
 }
@@ -8513,42 +8505,42 @@
 __device_handle_exception(e,"__sp_contacts_removeContactsFromGroup: "+e);
 }
 };
-function __sp_contacts_cancel(_471){
+function __sp_contacts_cancel(_475){
 try{
-var _472={};
-if((_471)==null){
+var _476={};
+if((_475)==null){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: cancel: transactionId is missing ");
 }
-if((_471)==undefined){
+if((_475)==undefined){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: cancel:transactionId is undefined ");
 }
-if((typeof _471)=="undefined"){
+if((typeof _475)=="undefined"){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: cancel: transactionId is undefined ");
 }
-if(((typeof _471)!="number")||(_471<=0)){
+if(((typeof _475)!="number")||(_475<=0)){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: cancel: transactionId is Invalid");
 }
-modifyObjectBaseProp(_472);
-_472.TransactionID=_471;
-var _473=this.so.IDataSource.Cancel(_472);
-if(_472){
-delete _472.TransactionID;
-}
-var _474=_473["ErrorCode"];
-if(_474!=0){
-var _475=mappingVerification(_473.ErrorCode);
-if(_473["ErrorMessage"]){
-var _476=splitErrorMessage(_473.ErrorMessage);
-if(_475){
-throw new DeviceException(MapErrorCode[_474],"Contacts: cancel: "+_476);
-}else{
-throw new DeviceException(_474,"Contacts: cancel: "+_476);
-}
-}else{
-if(_475){
-throw new DeviceException(MapErrorCode[_474],"Contacts: cancel: Operation Failed");
-}else{
-throw new DeviceException(_474,"Contacts: cancel: Operation Failed");
+modifyObjectBaseProp(_476);
+_476.TransactionID=_475;
+var _477=this.so.IDataSource.Cancel(_476);
+if(_476){
+delete _476.TransactionID;
+}
+var _478=_477["ErrorCode"];
+if(_478!=0){
+var _479=mappingVerification(_477.ErrorCode);
+if(_477["ErrorMessage"]){
+var _47a=splitErrorMessage(_477.ErrorMessage);
+if(_479){
+throw new DeviceException(MapErrorCode[_478],"Contacts: cancel: "+_47a);
+}else{
+throw new DeviceException(_478,"Contacts: cancel: "+_47a);
+}
+}else{
+if(_479){
+throw new DeviceException(MapErrorCode[_478],"Contacts: cancel: Operation Failed");
+}else{
+throw new DeviceException(_478,"Contacts: cancel: Operation Failed");
 }
 }
 }
@@ -8557,58 +8549,58 @@
 __device_handle_exception(e,"__sp_contacts_cancel: "+e);
 }
 };
-function __sp_contacts_updateGroup(_477){
-if(!(_477)){
+function __sp_contacts_updateGroup(_47b){
+if(!(_47b)){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: updateGroup:Group Data is missing");
 }
-if((typeof _477)!="object"){
+if((typeof _47b)!="object"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: updateGroup:Invalid Group Data");
 }
-if(!(_477&&_477.groupId)){
+if(!(_47b&&_47b.groupId)){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: updateGroup: Group id is missing");
 }
-if(typeof _477.groupId!="string"){
+if(typeof _47b.groupId!="string"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: updateGroup:Invalid Group id input");
 }
 try{
-var _478={};
-modifyObjectBaseProp(_478);
-_478.Type="Group";
-var _479={};
-modifyObjectBaseProp(_479);
-if(_477!=undefined){
-if(_477.groupId!=undefined){
-_479["id"]=_477.groupId;
+var _47c={};
+modifyObjectBaseProp(_47c);
+_47c.Type="Group";
+var _47d={};
+modifyObjectBaseProp(_47d);
+if(_47b!=undefined){
+if(_47b.groupId!=undefined){
+_47d["id"]=_47b.groupId;
 }else{
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: updateGroup: Id input is mandatory");
 }
-if(_477.groupName!=undefined){
-_479["GroupLabel"]=_477.groupName;
-}
-}
-_478.Data=_479;
-var _47a=this.so.IDataSource.Add(_478);
-if(_479){
-delete _479.prototype;
-}
-if(_478){
-delete _478.Data;
-delete _478.Type;
-}
-if(_47a.ErrorCode!=0){
-var _47b=mappingVerification(_47a.ErrorCode);
-if(_47a.ErrorMessage){
-var _47c=splitErrorMessage(_47a.ErrorMessage);
-if(_47b){
-throw new DeviceException(MapErrorCode[_47a.ErrorCode],"Contacts: updateGroup: "+_47c);
-}else{
-throw new DeviceException(_47a.ErrorCode,"Contacts: updateGroup: "+_47c);
-}
-}else{
-if(_47b){
-throw new DeviceException(MapErrorCode[_47a.ErrorCode],"Contacts: updateGroup: Operation Failed");
-}else{
-throw new DeviceException(_47a.ErrorCode,"Contacts: updateGroup: Operation Failed");
+if(_47b.groupName!=undefined){
+_47d["GroupLabel"]=_47b.groupName;
+}
+}
+_47c.Data=_47d;
+var _47e=this.so.IDataSource.Add(_47c);
+if(_47d){
+delete _47d.prototype;
+}
+if(_47c){
+delete _47c.Data;
+delete _47c.Type;
+}
+if(_47e.ErrorCode!=0){
+var _47f=mappingVerification(_47e.ErrorCode);
+if(_47e.ErrorMessage){
+var _480=splitErrorMessage(_47e.ErrorMessage);
+if(_47f){
+throw new DeviceException(MapErrorCode[_47e.ErrorCode],"Contacts: updateGroup: "+_480);
+}else{
+throw new DeviceException(_47e.ErrorCode,"Contacts: updateGroup: "+_480);
+}
+}else{
+if(_47f){
+throw new DeviceException(MapErrorCode[_47e.ErrorCode],"Contacts: updateGroup: Operation Failed");
+}else{
+throw new DeviceException(_47e.ErrorCode,"Contacts: updateGroup: Operation Failed");
 }
 }
 }
@@ -8617,51 +8609,51 @@
 __device_handle_exception(e,"__sp_contacts_updateGroup: "+e);
 }
 };
-function __sp_contacts_getGroupInfo(_47d){
+function __sp_contacts_getGroupInfo(_481){
 try{
-var _47e={};
-modifyObjectBaseProp(_47e);
-_47e.Type="Group";
-_47e.Filter={};
-modifyObjectBaseProp(_47e.Filter);
-if(_47d==undefined){
+var _482={};
+modifyObjectBaseProp(_482);
+_482.Type="Group";
+_482.Filter={};
+modifyObjectBaseProp(_482.Filter);
+if(_481==undefined){
 throw new DeviceException(this.error.MISSING_ARG_ERR,"Contacts: getGroupInfo: Id input is mandatory");
 }
-if((typeof _47d)!="string"){
+if((typeof _481)!="string"){
 throw new DeviceException(this.error.INVALID_ARG_ERR,"Contacts: getGroupInfo: Id input is mandatory");
 }
-_47e.Filter.id=_47d;
-var rval=this.so.IDataSource.GetList(_47e);
-if(_47e.Filter){
-delete _47e.Filter.id;
-}
-if(_47e){
-delete _47e.Filter;
-delete _47e.Type;
+_482.Filter.id=_481;
+var rval=this.so.IDataSource.GetList(_482);
+if(_482.Filter){
+delete _482.Filter.id;
+}
+if(_482){
+delete _482.Filter;
+delete _482.Type;
 }
 if(rval){
 if(rval.ErrorCode!=0){
-var _480=mappingVerification(rval.ErrorCode);
+var _484=mappingVerification(rval.ErrorCode);
 if(rval.ErrorMessage){
-var _481=splitErrorMessage(rval.ErrorMessage);
-if(_480){
-throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupInfo: "+_481);
-}else{
-throw new DeviceException(rval.ErrorCode,"Contacts: getGroupInfo: "+_481);
-}
-}else{
-if(_480){
+var _485=splitErrorMessage(rval.ErrorMessage);
+if(_484){
+throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupInfo: "+_485);
+}else{
+throw new DeviceException(rval.ErrorCode,"Contacts: getGroupInfo: "+_485);
+}
+}else{
+if(_484){
 throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupInfo: Operation Failed");
 }else{
 throw new DeviceException(rval.ErrorCode,"Contacts: getGroupInfo: Operation Failed");
 }
 }
 }else{
-var _482={};
-modifyObjectBaseProp(_482);
-var _483=rval.ReturnValue.getNext();
-__sp_device_groupinfo_build(_483,_482);
-return _482;
+var _486={};
+modifyObjectBaseProp(_486);
+var _487=rval.ReturnValue.getNext();
+__sp_device_groupinfo_build(_487,_486);
+return _486;
 }
 }
 }
@@ -8669,8 +8661,8 @@
 __device_handle_exception(e,"__sp_contacts_getGroupInfo:"+e);
 }
 };
-function mappingVerification(_484){
-if(_484===1016||_484===1012||_484===1010||_484===1009||_484===1005||_484===1000||_484===1011||_484===1007||_484===1003||_484===1002){
+function mappingVerification(_488){
+if(_488===1016||_488===1012||_488===1010||_488===1009||_488===1005||_488===1000||_488===1011||_488===1007||_488===1003||_488===1002||_488===1004){
 return true;
 }else{
 return false;
--- a/serviceproviders/jsapi/platformservices/src/calendar.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/calendar.js	Fri Apr 16 15:54:44 2010 +0300
@@ -78,25 +78,6 @@
 					  "providers": [{"descriptor": __sp_calendar_descriptor, "instance": __sp_calendar_instance}]
 					 };
 		   
-//alert(("after com.nokia.device.service");
-
-
-
-/*
-Copyright � 2009 Nokia. All rights reserved.
-Code licensed under the BSD License:
-Software License Agreement (BSD License) Copyright � 2009 Nokia.
-All rights reserved.
-Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
-Neither the name of Nokia Corporation. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Nokia Corporation. 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-version: 1.0
-*/
-
 var dataGetList = 0;
 var isUpdate = 0;
 // S60 sp-based calendar provider
@@ -215,10 +196,19 @@
 						if (typeof(match.time.begin) != "object") {
 							return false;
 						}
-						if(match.time.begin == "Invalid Date" )
+						
+						/*if(match.time.begin == "Invalid Date" )
+						{
+							return false;
+						}*/
+						
+						var validDate = new Date("January 1, 1970 00:01"); 
+						if(match.time.begin < validDate)
 						{
 							return false;
 						}
+					
+						
 						try{
 							(match.time.begin).getTime();
 						}
@@ -430,7 +420,7 @@
   //	////alert("sp_entry id" + sp_entry.id);
 	this.id = sp_entry.id;
 	}
-	if (sp_entry.type) {
+	if (sp_entry.Type ) {
 	//	////alert("sp_entry.Type" + sp_entry.type);
   this.type = sp_entry.Type;
 	}
@@ -455,6 +445,14 @@
   if (sp_entry.Status) {
   	this.status = sp_entry.Status;
   }
+  if (sp_entry.Status == "TodoCompleted") {
+  	this.status = "Completed";
+  }
+  else if(sp_entry.Status == "TodoNeedsAction"){
+  	this.status = "NeedsAction";
+  }
+  
+  
   if (sp_entry.ExDates) {
   	this.exceptionDates = sp_entry.ExDates;
   }
@@ -644,18 +642,16 @@
 	}
 	
 	if (entry.status) {
-		if (this.Type == "ToDo") {
+		this.Status = entry.status;
+		if (entry.status == "NeedsAction" || entry.status == "Completed") {
 			this.Status = "Todo"+entry.status;
 		}
-		else {
-			this.Status = entry.status;
-		}
 	}
-	else if(isUpdate && (entry.status == null))
+	/*else if(isUpdate && (entry.status == null))
 	{
 		this.Status = "Tentative";
 		//////alert("status****" + this.Status);
-	}
+	}*/
 	
 	if (entry.exceptionDates) {
 		this.ExDates = entry.exceptionDates;
@@ -776,10 +772,12 @@
 		   	throw new DeviceException( this.error.INVALID_ARG_ERR, "Calendar: startEditor: error callback is invalid");
 		}
 	}
-	if(entry == null || entry == undefined)
+	
+	if(entry != null)
 	{
-		throw new DeviceException( this.error.INVALID_ARG_ERR, "Calendar: startEditor: entry is invalid");
+		throw new DeviceException( this.error.NOT_SUPPORTED_ERR, "Calendar: startEditor: Entry should be null");
 	}
+	
 	var finished = function(arg1, arg2, arg3){
 	
 	
--- a/serviceproviders/jsapi/platformservices/src/camera.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/camera.js	Fri Apr 16 15:54:44 2010 +0300
@@ -61,25 +61,6 @@
 					};
 
 
-
-
-
-/*
-Copyright © 2009 Nokia. All rights reserved.
-Code licensed under the BSD License:
-Software License Agreement (BSD License) Copyright © 2009 Nokia.
-All rights reserved.
-Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
-Neither the name of Nokia Corporation. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Nokia Corporation. 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-version: 1.0
-*/
-
-
 // S60 sp-based camera provider
 
 function __sp_camera_descriptor(){
--- a/serviceproviders/jsapi/platformservices/src/commlog.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/commlog.js	Fri Apr 16 15:54:44 2010 +0300
@@ -65,26 +65,7 @@
 				      "providers": [{"descriptor": __sp_commlog_descriptor, "instance": __sp_commlog_instance}]
 				     };
 		
-
-
-
-/*
- Copyright © 2009 Nokia. All rights reserved.
- Code licensed under the BSD License:
- Software License Agreement (BSD License) Copyright © 2009 Nokia.
- All rights reserved.
- Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Nokia Corporation. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Nokia Corporation.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- version: 1.0
- */
 var invoker_notification;
-//var error = new DeviceException(0, 'dummy');
-// S60 sp-based commlog provider
-
-
 
 function __sp_commlog_descriptor(){
     //Read-only properties
--- a/serviceproviders/jsapi/platformservices/src/contacts.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/contacts.js	Fri Apr 16 15:54:44 2010 +0300
@@ -134,52 +134,8 @@
 					  "providers": [{"descriptor": __sp_contacts_descriptor, "instance": __sp_contacts_instance}]
 					 };
 		   
-		   
-		   
-		   
-		   
-		   
-		   
 
 
-
-
-
-
-
-
-
-
-
-/*
- Copyright © 2009 Nokia. All rights reserved.
- Code licensed under the BSD License:
- Software License Agreement (BSD License) Copyright © 2009 Nokia.
- All rights reserved.
- Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Nokia Corporation. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Nokia Corporation.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- version: 1.0
- */
-// Table of user callbacks. These are "indexed" by transaction IDs.
-// These need to be global since the actual sp callback does
-// not have the location instance object in its scope chain
-
-/*
- if((typeof (com.nokia.device.contacts) == 'undefined'))
- {
- com.nokia.device.contacts = {};
- }*/
-nokia.device.contacts.SORT_ASCENDING = 0;
-nokia.device.contacts.SORT_DESCENDING = 1;
-
-
-//nokia.devive.
-//SORT_ASCENDING = 0;
-//SORT_DESCENDING = 1;
-
 function __sp_contacts_descriptor(){
   //Read-only properties 
    this.interfaceName = "contacts";
@@ -890,6 +846,29 @@
     __s60_enumerate_group_object(sp_group, __sp_device_groupinfo_extract, groupinfo);
 }
 
+//Iterate the group data
+function __sp_groupinfo_iterator_get_next(){
+    var sp_group = this.iter.getNext();
+    if (typeof sp_group == "undefined") {
+        return null;
+    }
+    var rval = {};
+    __sp_device_groupinfo_build(sp_group, rval);
+    sp_group.close();
+    return rval;
+}
+
+function __sp_groupinfo_iterator(js_iterator){
+    this.iter = js_iterator;
+    this.next = __sp_groupinfo_iterator_get_next;
+    this.close = function(){
+        this.iter.close();
+    };
+}
+
+
+
+
 
 
 //Build group data
@@ -1485,7 +1464,9 @@
     
     iter = arg3.ReturnValue;
     if (arg3.ReturnValue) {
-        iter = new __sp_group_iterator(arg3.ReturnValue);
+//        iter = new __sp_group_iterator(arg3.ReturnValue);
+					iter = new __sp_groupinfo_iterator(arg3.ReturnValue);
+        
     }
     else 
         if (arg3.ErrorCode != 0) {
@@ -2323,7 +2304,7 @@
 
 function mappingVerification(errorCode){
     //alert ("In mappingVerification errorCode = "+errorCode);	
-    if (errorCode === 1016 || errorCode === 1012 || errorCode === 1010 || errorCode === 1009 || errorCode === 1005 || errorCode === 1000 || errorCode === 1011 || errorCode === 1007 || errorCode === 1003 || errorCode === 1002) {
+    if (errorCode === 1016 || errorCode === 1012 || errorCode === 1010 || errorCode === 1009 || errorCode === 1005 || errorCode === 1000 || errorCode === 1011 || errorCode === 1007 || errorCode === 1003 || errorCode === 1002 || errorCode === 1004 ) {
         //alert("errorCode = "+errorCode);
         return true;
     }
--- a/serviceproviders/jsapi/platformservices/src/framework.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/framework.js	Fri Apr 16 15:54:44 2010 +0300
@@ -85,9 +85,9 @@
 nokia.device = {
     load: __device_service_load,
     listInterfaces: __device_service_interfaces,
-	getSystemProperties: __device_getSystemProperties,
-	getLibraryVersion: __device_getLibraryVersion,
-    version: 2.0
+	   getSystemProperties: __device_getSystemProperties,
+	   getLibraryVersion: __device_getLibraryVersion,
+      version: 2.0
 };
 
 function __device_getLibraryVersion(){
--- a/serviceproviders/jsapi/platformservices/src/geolocation.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/geolocation.js	Fri Apr 16 15:54:44 2010 +0300
@@ -16,36 +16,6 @@
 */
 
 var _infinity = 1.7976931348623157E+10308;
-/*function PositionError()
-{
-	this.UNKNOWN_ERROR = 0;
-	this.PERMISSION_DENIED = 1;
-	this.POSITION_UNAVAILABLE = 2;
-	this.TIMEOUT = 3;
-	this.code ;
-	this.message ;
-}
-function Coordinates()
-{
-	this.latitude = null;
-	this.longitude = null;
-	this.altitude = null;
-	this.accuracy = null;
-	this.altitudeAccuracy = null;
-	this.heading = null;
-	this.speed = null;
-}
-function Position()
-{
-	this.coords = null;
-	this.timestamp = null;
-}
-function PositionOptions()
-{
-	this.enableHighAccuracy = null;
-	this.timeout = null;
-	this.maximumAge = null;
-}*/
 
 function TransIdCbMap()
 {
@@ -106,27 +76,6 @@
 					     "providers": [{"descriptor": __sp_location_descriptor, "instance": __sp_location_instance}]
 					    };
 
-
-
-
-
-
-/*
-Copyright � 2009 Nokia. All rights reserved.
-Code licensed under the BSD License:
-Software License Agreement (BSD License) Copyright � 2009 Nokia.
-All rights reserved.
-Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
-Neither the name of Nokia Corporation. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Nokia Corporation. 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-version: 1.0
-*/
-
-
 // S60 sp-based location provider
  function Location_PositionError()
 	{
@@ -162,6 +111,24 @@
 
 
 
+function getGeoLocationPosition(LiwPostionInfo)
+{	   		// LIW position info
+			var _pos_coord = new Location_Coordinates();			
+			_pos_coord.longitude = (LiwPostionInfo.Longitude == undefined)?null:LiwPostionInfo.Longitude;			
+			_pos_coord.latitude = (LiwPostionInfo.Latitude == undefined)?null:LiwPostionInfo.Latitude;
+			_pos_coord.altitude = (LiwPostionInfo.Altitude == undefined)?null:LiwPostionInfo.Altitude;
+			_pos_coord.accuracy = (LiwPostionInfo.HorizontalAccuracy == undefined)?null:LiwPostionInfo.HorizontalAccuracy;			
+			_pos_coord.altitudeAccuracy = (LiwPostionInfo.VerticalAccuracy == undefined)?null:LiwPostionInfo.VerticalAccuracy;
+			_pos_coord.heading = (LiwPostionInfo.Heading == undefined)?null:LiwPostionInfo.Heading;
+			_pos_coord.speed = (LiwPostionInfo.HorizontalSpeed == undefined)?null:LiwPostionInfo.HorizontalSpeed;			
+			var _pos_data = new Location_Position();			
+			_pos_data.coords = {};
+			modifyObjectBaseProp(_pos_data.coords);
+			_pos_data.coords =_pos_coord;
+			_pos_data.timestamp = (LiwPostionInfo.timestamp == undefined) ? null : LiwPostionInfo.timestamp;		
+	         return _pos_data;
+}
+
 
 var __sp_location_trace_transactionId = -1;
 
@@ -235,7 +202,7 @@
     }
     
     else {
-        alert("Geolocation: __sp_getLocation_cb: Callback not found ");
+
 		return;
     }
     
@@ -250,28 +217,12 @@
 		//there is no error so invoke consumer supplied success callback
 		else
 		{    
-			 var _pos_coord = new Location_Coordinates();
-			_pos_coord.longitude = (arg3.ReturnValue.Longitude == undefined)?null:arg3.ReturnValue.Longitude;
-			_pos_coord.latitude = (arg3.ReturnValue.Latitude == undefined)?null:arg3.ReturnValue.Latitude;
-			_pos_coord.altitude = (arg3.ReturnValue.Altitude == undefined)?null:arg3.ReturnValue.Altitude;
-			_pos_coord.accuracy = (arg3.ReturnValue.HorizontalAccuracy == undefined)?null:arg3.ReturnValue.HorizontalAccuracy;			
-			_pos_coord.altitudeAccuracy = (arg3.ReturnValue.VerticalAccuracy == undefined)?null:arg3.ReturnValue.VerticalAccuracy;
-			_pos_coord.heading = (arg3.ReturnValue.Heading == undefined)?null:arg3.ReturnValue.Heading;
-			_pos_coord.speed = (arg3.ReturnValue.HorizontalSpeed == undefined)?null:arg3.ReturnValue.HorizontalSpeed;
+		
 			
-			//Position Object
-			var _pos_data = new Location_Position();
-
-			_pos_data.coords = {};
-			modifyObjectBaseProp(_pos_data.coords);
-			_pos_data.coords =_pos_coord;
-			_pos_data.timestamp = new Date();
-			
+			var geoPosition = getGeoLocationPosition(arg3.ReturnValue);
 			//Invoke consumer callback			
-			success_cb1( _pos_data );			
-			delete _pos_data.timestamp;
-			delete _pos_data;
-			delete _pos_coord;	
+			success_cb1( geoPosition );
+			delete geoPosition;
 		}
 		 glob_obj.removeFromArray(arg1);	
 	}
@@ -338,28 +289,10 @@
 							
 						}
 						
-						var _pos_coord = new Location_Coordinates();
-						_pos_coord.longitude = (arg3.ReturnValue.Longitude == undefined) ? null : arg3.ReturnValue.Longitude;
-						_pos_coord.latitude = (arg3.ReturnValue.Latitude == undefined) ? null : arg3.ReturnValue.Latitude;
-						_pos_coord.altitude = (arg3.ReturnValue.Altitude == undefined) ? null : arg3.ReturnValue.Altitude;
-						_pos_coord.accuracy = (arg3.ReturnValue.HorizontalAccuracy == undefined) ? null : arg3.ReturnValue.HorizontalAccuracy;
-						_pos_coord.altitudeAccuracy = (arg3.ReturnValue.VerticalAccuracy == undefined) ? null : arg3.ReturnValue.VerticalAccuracy;
-						_pos_coord.heading = (arg3.ReturnValue.Heading == undefined) ? null : arg3.ReturnValue.Heading;
-						_pos_coord.speed = (arg3.ReturnValue.HorizontalSpeed == undefined) ? null : arg3.ReturnValue.HorizontalSpeed;
 						
-						//Position Object
-						var _pos_data = new Location_Position();
-						_pos_data.coords = {};
-						modifyObjectBaseProp(_pos_data.coords);
-						_pos_data.coords = _pos_coord;
-						_pos_data.timestamp = new Date();
-						
-						//Invoke consumer callback
-						
-						success_cb(_pos_data);
-						delete _pos_data.timestamp;
-						delete _pos_data;
-						delete _pos_coord;
+						var geoPosition = getGeoLocationPosition(arg3.ReturnValue);
+						//Invoke consumer callback									
+						success_cb1( geoPosition );						
 						return;
 						
 					}
@@ -376,13 +309,11 @@
 						return;
 					}
 					
-					    //alert("number");
-						updateoptions.UpdateMaxAge = posOptions.maximumAge ;
-						//alert("updateoptions.UpdateMaxAget"+ updateoptions.UpdateMaxAge);
-					
+						updateoptions.UpdateMaxAge = posOptions.maximumAge*1000 ;
+						
 				}
 				else {
-					//alert("!number");
+					
 					var errorMessage = "Invalid input type";
 					__sp_location_handle_error(fail_cb, 0, errorMessage);
 					return;
@@ -399,15 +330,15 @@
 		if((posOptions.enableHighAccuracy !== undefined ))
 		{  
 			
-			if(posOptions.enableHighAccuracy == true) {////alert("1");
+			if(posOptions.enableHighAccuracy == true) {
 					criteria.EnableHighAccuracy = posOptions.enableHighAccuracy;
 				}				
-			else if(posOptions.enableHighAccuracy == false) {	////alert("2e");					
+			else if(posOptions.enableHighAccuracy == false) {					
 						criteria.EnableHighAccuracy = posOptions.enableHighAccuracy;
 					}				
 			else if ((posOptions.enableHighAccuracy == null) || (posOptions.enableHighAccuracy == "")) {
 							}
-			else{ ////alert("acc = else");
+			else{ 
 				if ((typeof(posOptions.enableHighAccuracy) != "boolean")) {
 					var errorFormat1 = "Wrong value for enableHighAccuracy param";
 					__sp_location_handle_error(fail_cb, 0, errorFormat1);
@@ -422,10 +353,9 @@
 			
 		if (posOptions.timeout !== undefined) {
 			if ((posOptions.timeout !== null) || ((posOptions.timeout !== ""))) {
-				//alert("12");
+				
 				if ((posOptions.timeout == Infinity)) {
-					//alert("12345");
-					//alert("infinty condition");
+					
 					var errorMessage = "Invalid input type";
 					__sp_location_handle_error(fail_cb, 0, errorMessage);
 					return;
@@ -433,17 +363,17 @@
 				
 				else 
 					if (!(isNaN(parseInt(posOptions.timeout)))) {
-						//alert("timeout = 0")
+						
 						if ((posOptions.timeout <= 2147483647)) {
 						
 						if ((posOptions.timeout == 0)) {
-							//alert("inside if int");
-							var errorMessage = "Invalid input type";
+							
+							
+							var errorMessage = "Data out of range";
 							__sp_location_handle_error(fail_cb, 0, errorMessage);
 							return;
 						}
-						//alert("true condition");
-						updateoptions.UpdateTimeOut = posOptions.timeout;
+						updateoptions.UpdateTimeOut = posOptions.timeout*1000;
 						
 					}
 					else{
@@ -458,7 +388,7 @@
 			
 			}
 			else {
-				//alert("!number");
+
 				var errorMessage = "Invalid input type";
 				__sp_location_handle_error(fail_cb, 0, errorMessage);
 				return;
@@ -523,7 +453,6 @@
 	    }
 	    
 	    else {
-	        alert("Geolocation: __sp_traceLocation_cb: Callback not found ");
 			return;
 	    }
     
@@ -540,30 +469,9 @@
 		
 		else//there is no error so invoke consumer supplied success callback
 		{   
-			
-			 var _pos_coord = new Location_Coordinates();
-			_pos_coord.longitude = (arg3.ReturnValue.Longitude == undefined)?null:arg3.ReturnValue.Longitude;
-			_pos_coord.latitude = (arg3.ReturnValue.Latitude == undefined)?null:arg3.ReturnValue.Latitude;
-			_pos_coord.altitude = (arg3.ReturnValue.Altitude == undefined)?null:arg3.ReturnValue.Altitude;
-			_pos_coord.accuracy = (arg3.ReturnValue.HorizontalAccuracy == undefined)?null:arg3.ReturnValue.HorizontalAccuracy;		
-			_pos_coord.altitudeAccuracy = (arg3.ReturnValue.VerticalAccuracy == undefined)?null:arg3.ReturnValue.VerticalAccuracy;
-			_pos_coord.heading = (arg3.ReturnValue.Heading == undefined)?null:arg3.ReturnValue.Heading;
-			_pos_coord.speed = (arg3.ReturnValue.HorizontalSpeed == undefined)?null:arg3.ReturnValue.HorizontalSpeed;
-			
-			//Position Object
-			var _pos_data = new Location_Position();
-			_pos_data.coords = {};
-			modifyObjectBaseProp(_pos_data.coords);
-			_pos_data.coords =_pos_coord;
-			_pos_data.timestamp = new Date();
-			
-			
-			//Invoke consumer callback
-			
-			success_cb( _pos_data );
-			delete _pos_data.timestamp;
-			delete _pos_data;
-			delete _pos_coord;
+			var geoPosition = getGeoLocationPosition(arg3.ReturnValue);			
+			//Invoke consumer callback			
+			success_cb( geoPosition );			
 			return;
 		}
 	 glob_obj.removeFromArray(arg1);	
@@ -583,17 +491,16 @@
 	
 	
 	if((typeof trace_cb != 'function' ))
-	{////alert("not fun");
+	{
 		var errorMessage = "Wrong callback type";
 		__sp_location_handle_error(fail_cb,0,errorMessage);
 		return;
 	}
 	
-	if ((fail_cb != undefined)) {////alert("!= fail_cb");
+	if ((fail_cb)) {
 				if ((fail_cb != null)
 				    &&(fail_cb != "")
-					&& (typeof(fail_cb) != "function")) {
-						//////alert("fail_cb fail");
+					&& (typeof(fail_cb) != "function")) {						
 					var errorObject = new Location_PositionError();
 					errorObject.code = -1;
 					throw errorObject;	
@@ -615,7 +522,7 @@
 	
 	if (posOptions != undefined && posOptions != null) {
 		if ((typeof(posOptions) != "object")) {
-			////alert("!= object");
+			
 			var errorMessage = "Wrong posOptions type";
 			__sp_location_handle_error(fail_cb, 0, errorMessage);
 			return;
@@ -627,18 +534,16 @@
 	
 		if ((posOptions.enableHighAccuracy !== undefined)) {
 		
-			if (posOptions.enableHighAccuracy == true) {////alert("1");
+			if (posOptions.enableHighAccuracy == true) {
 				criteria.EnableHighAccuracy = posOptions.enableHighAccuracy;
 			}
-			else 
-				if (posOptions.enableHighAccuracy == false) { ////alert("2e");					
+			else if (posOptions.enableHighAccuracy == false) { 				
 					criteria.EnableHighAccuracy = posOptions.enableHighAccuracy;
 				}
-				else 
-					if ((posOptions.enableHighAccuracy == null) || (posOptions.enableHighAccuracy == "")) {
+			else if ((posOptions.enableHighAccuracy == null) || (posOptions.enableHighAccuracy == "")) {
 					}
 					
-					else { 
+			else {
 						if ((typeof(posOptions.enableHighAccuracy) != "boolean")) {
 							var errorFormat = "Wrong value for enableHighAccuracy param";
 							__sp_location_handle_error(fail_cb, 0, errorFormat);
@@ -652,35 +557,34 @@
 	
 	if (posOptions.timeout !== undefined) {
 			if ((posOptions.timeout !== null)  || ((posOptions.timeout !== ""))) {
-					//alert("12");
+					
 				if ((posOptions.timeout == Infinity)) {
-					//alert("12345");
-					//alert("infinty condition");
+					
 					var errorMessage = "Invalid input type";
 					__sp_location_handle_error(fail_cb, 0, errorMessage);
 					return;
 				}
 				
-				else if (!(isNaN(parseInt(posOptions.timeout)))) {//alert("timeout = 0")
+				else if (!(isNaN(parseInt(posOptions.timeout)))) {
 					
 					if ((posOptions.timeout == 0) ) {
-						//alert("inside if int");
+						
 						var errorMessage = "Invalid input type";
 						__sp_location_handle_error(fail_cb, 0, errorMessage);
 						return;
 					}
-						//alert("true condition");
-						updateoptions.UpdateTimeOut = posOptions.timeout ;
+						
+						updateoptions.UpdateTimeOut = posOptions.timeout*1000 ;
 					
 				}	
 			}	
 				
 		else if ((posOptions.timeout === null) ||((posOptions.timeout === ""))) {
-					//alert("true condition");
+					
 					//	updateoptions.UpdateTimeOut = posOptions.timeout * 1000;
 				}
 				else {
-					//alert("!number");
+					
 					var errorMessage = "Invalid input type";
 					__sp_location_handle_error(fail_cb, 0, errorMessage);
 					return;
@@ -704,15 +608,16 @@
 			//If the param is specified and it is a number 
 			else if(!(isNaN(parseInt(posOptions.maximumAge))))
 			{
-		  		updateoptions.UpdateMaxAge = posOptions.maximumAge ;
+				
+		  		updateoptions.UpdateMaxAge = posOptions.maximumAge*1000;
 			}
 				
 			else if ((posOptions.maximumAge === null) || ((posOptions.maximumAge === ""))) {
-				//alert("true condition");
-			//	updateoptions.UpdateTimeOut = posOptions.timeout * 1000;
+								
+			  //	updateoptions.UpdateTimeOut = posOptions.timeout * 1000;
 				}
 			else {
-				//alert("!number");
+				
 				var errorMessage = "Invalid input type";
 				__sp_location_handle_error(fail_cb, 0, errorMessage);
 				return;
--- a/serviceproviders/jsapi/platformservices/src/landmarks.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/landmarks.js	Fri Apr 16 15:54:44 2010 +0300
@@ -15,8 +15,6 @@
 *
 */
 
-// Namepace: com.nokia.device.service
-
 var __device_landmarks_service_entry = {
     "name": null,
     "version": null,
@@ -113,20 +111,6 @@
 }
 
 
-
-
-/*
- Copyright � 2009 Nokia. All rights reserved.
- Code licensed under the BSD License:
- Software License Agreement (BSD License) Copyright � 2009 Nokia.
- All rights reserved.
- Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Nokia Corporation. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Nokia Corporation.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- version: 1.0
- */
 //utillity function for converting error code from PS to CJSE codes
 //this gets used in communicating errors via error callback
 var err_missing_argument = 1003;
@@ -320,7 +304,7 @@
     else {
         this.catItem = this.iter.getNext();
         this.hasElement = true;
-        if (typeof this.catItem == "undefined") {
+        if (typeof this.catItem == "undefined" || this.catItem == null) {
             this.catItem = null;
             return false;
         }
@@ -339,15 +323,20 @@
         if (typeof(this.catItem) == "undefined") {
             this.catItem = null;
         }
-        return new __sp_device_category_obj(tempitem);
+        
+        if(tempitem){
+            return new __sp_device_category_obj(tempitem);
+        }
+        else {
+            return null;
+        }
     }
     else {
         this.catItem = this.iter.getNext();
-        if (typeof this.catItem == "undefined") {
+        if (typeof this.catItem == "undefined" || this.catItem == null) {
             this.hasElement = true;
             this.catItem = null;
             return null;
-            
         }
         else {
             this.hasElement = true;
@@ -408,18 +397,6 @@
     }
     
     
-    /*if(location.altitude) 
-    
-     this.Altitude = location.altitude;
-    
-     if(location.hAccuracy)
-    
-     this.HAccuracy = location.hAccuracy;
-    
-     if(location.vAccuracy)
-    
-     this.VAccuracy = location.vAccuracy;*/
-    
 }
 
 //use this to convert from positon filed of landmarkitem to convert it to position field 
@@ -938,11 +915,16 @@
         if (typeof(this.lmItem) == "undefined") {
             this.lmItem = null;
         }
-        return new __sp_device_landmark_obj(tempitem);
+        if(tempitem){
+            return new __sp_device_landmark_obj(tempitem);
+        }
+        else{
+            return null;
+        } 
     }
     else {
         this.lmItem = this.iter.getNext();
-        if (typeof this.lmItem == "undefined") {
+        if (typeof this.lmItem == "undefined" || this.lmItem == null) {
             this.hasElement = true;
             this.lmItem = null;
             return null;
@@ -955,7 +937,7 @@
             //update 
             
             this.lmItem = this.iter.getNext();
-            if (typeof(this.lmItem) == "undefined") {
+            if (typeof(this.lmItem) == "undefined" || this.lmItem == null) {
                 this.lmItem = null;
             }
             return new __sp_device_landmark_obj(tempObject);
--- a/serviceproviders/jsapi/platformservices/src/media.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/media.js	Fri Apr 16 15:54:44 2010 +0300
@@ -90,31 +90,6 @@
 				     };
 		   
 
-
-
-
-/*
-Copyright � 2009 Nokia. All rights reserved.
-Code licensed under the BSD License:
-Software License Agreement (BSD License) Copyright � 2009 Nokia.
-All rights reserved.
-Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
-Neither the name of Nokia Corporation. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Nokia Corporation. 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-version: 1.0
-*/
-/*
- * Global object for Async utility functions:
- * 1)addToGlobalArray
- * 2)getFromArray
- * 3)removeFromArray
- */
-
-
 function __device_media_descriptor(provider){
   this.interfaceName = provider.interfaceName;
   this.version = provider.version;
@@ -191,26 +166,6 @@
 		   
 
 
-
-
-
-
-
-/*
-Copyright © 2009 Nokia. All rights reserved.
-Code licensed under the BSD License:
-Software License Agreement (BSD License) Copyright © 2009 Nokia.
-All rights reserved.
-Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
-Neither the name of Nokia Corporation. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Nokia Corporation. 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-version: 1.0
-*/
-
 // S60 sp-based media provider
 var FILESCHMLEN = 7;
 
--- a/serviceproviders/jsapi/platformservices/src/messaging.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/messaging.js	Fri Apr 16 15:54:44 2010 +0300
@@ -104,43 +104,10 @@
 };
 
 
-
-/*
- Copyright © 2009 Nokia. All rights reserved.
- Code licensed under the BSD License:
- Software License Agreement (BSD License) Copyright © 2009 Nokia.
- All rights reserved.
- Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Nokia Corporation. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Nokia Corporation.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- version: 1.0
- */
 // S60 sp-based messaging provider
 var FILE_SCHEME = 'file://';
-//Constant values as per the CJSE Spec
-//var INVALID_URI_ERR = 108;
-
-/*
- * Global object for Async utility functions:
- * 1)addToGlobalArray
- * 2)getFromArray
- * 3)removeFromArray
- */
 
-//var error = new DeviceError(0, 'dummy');
-/*
- if(undefined == com.nokia.device.messaging)
- {
- com.nokia.device.messaging={};
- }
- nokia.device.messaging.SORT_ASCENDING = 0;
- nokia.device.messaging.SORT_DESCENDING = 1;
- nokia.device.messaging.SORT_BY_DATE = 0;
- nokia.device.messaging.SORT_BY_SENDER = 1;
- nokia.device.messaging.STATUS_READ = 0;
- nokia.device.messaging.STATUS_UNREAD = 1;*/
+
 function __sp_messaging_descriptor(){
     //Read-only properties
     this.interfaceName = "messaging";
@@ -209,7 +176,9 @@
         }
         //device1.0: added this statement.. with out this the script will crib..also checking for proper URI
         if (attachment.uri.slice(0, 7) == FILE_SCHEME) {
+			
             if (attachment.uri.charAt(7) == "/") {
+				
                 if (attachment.uri.charAt(9) != ":") {
                     throw new DeviceException(this.error.URI_NOT_FOUND_ERR, "specified uri not found");
                 }
@@ -249,8 +218,8 @@
     var attachFlag = 0;
     sp_message.MessageParam = {};
     modifyObjectBaseProp(sp_message.MessageParam);
-    sp_message.MessageParam.LaunchEditor = false; //Defaults to no editor
-    sp_message.MessageType = (message.type == undefined || message.type == null) ? "SMS" : message.type;
+    sp_message.MessageParam.LaunchEditor = false; //Defaults to no editor    
+    sp_message.MessageType = (message.type == undefined || message.type == null || message.type == "") ? "SMS" : message.type;
     //alert(message.to[0]+" "+message.type)
     if (message.to) {
         if (typeof(message.to) == "string") {
@@ -500,6 +469,13 @@
         if (typeof msg_cb != "function") {
             throw new DeviceException(this.error.INVALID_ARG_ERR, "Messaging:getList:callback is not a function"); //BadArgumentType error
         }
+		
+        if (ErrorCallback!=null && typeof ErrorCallback!="undefined") {
+        if (typeof(ErrorCallback) != 'function') {
+            throw new DeviceException(this.error.INVALID_ARG_ERR, "Messaging: startEditor: ErrorCallback is invalid");
+        }
+    }
+
     if (match != null && match != undefined && typeof match != "object") {
         //	a("match not object")
         throw new DeviceException(this.error.INVALID_ARG_ERR, "Messaging:getList:match is invalid"); //BadArgumentType error
@@ -514,21 +490,22 @@
     }
     
     if (sortkey != null && sortkey != undefined && typeof sortkey == "number") {
-        if ((sortkey != 0) && (sortkey != 1)) 
-            throw new DeviceException(this.error.INVALID_ARG_ERR, "Messaging:getList:sortkey is invalid"); //BadArgumentType error
-    }
+        if ((sortkey != 0) && (sortkey != 1)) {
+			//alert("sortkey_2");
+			//throw new DeviceException(this.error.INVALID_ARG_ERR, "Messaging:getList:sortkey is invalid"); //BadArgumentType error
+		    ErrorCallback( new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR, "Messaging:getList:sortkey is out of range")); //BadArgumentType error 
+			return;
+			}
+	}
     
     if (sortorder != null && sortorder != undefined && typeof sortorder == "number") {
-        //	a(sortorder+" "+typeof sortorder)
-        if ((sortorder != 0) && (sortorder != 1)) 
-            throw new DeviceException(this.error.INVALID_ARG_ERR, "Messaging:getList:sortorder is invalid"); //BadArgumentType error
+        	//alert(sortorder+" "+typeof sortorder)
+        if ((sortorder != 0) && (sortorder != 1)) {
+			ErrorCallback(new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR, "Messaging:getList:sortorder is out of range")); //BadArgumentType error
+			return;
+		}
     }
     
-    if (ErrorCallback) {
-        if (typeof(ErrorCallback) != 'function') {
-            throw new DeviceException(this.error.INVALID_ARG_ERR, "Messaging: startEditor: ErrorCallback is invalid");
-        }
-    }
     
     
     var criteria = {};
@@ -1128,7 +1105,7 @@
 }
 
 function __sp_messaging_delete(id){
-    a("messageId" + typeof id);
+    //a("messageId" + typeof id);
     if (!id) {
         throw new DeviceException(this.error.MISSING_ARG_ERR, "Messaging:delete:id is missing");//SErrMissingArgument = 1003  
     }
@@ -1153,7 +1130,7 @@
     try {
         //		a("criteria.MessageId" + criteria.MessageId);
         var result = this.so.IMessaging.Delete(criteria);
-        a("MapErrorCode[ result.ErrorCode ]" + MapErrorCode[result.ErrorCode]);
+        //a("MapErrorCode[ result.ErrorCode ]" + MapErrorCode[result.ErrorCode]);
         if (criteria) {
             delete criteria.MessageId;
         }
@@ -1194,7 +1171,7 @@
     }
     
     if (typeof status == "number" && status != 0 && status != 1) {
-        throw new DeviceException(this.error.INVALID_ARG_ERR, "Messaging:setStatus:status is invalid"); //BadArgumentType error
+        throw new DeviceException(this.error.DATA_OUT_OF_RANGE_ERR, "Messaging:setStatus:status is out of range"); //BadArgumentType error
     }
     
     if ((typeof id == "string") && !(isNaN(id))) {
@@ -1215,7 +1192,7 @@
     }
     else 
         if ((status == this.STATUS_READ)) {
-            a("in read")
+            //a("in read")
             criteria.Status = "Read";
         }
     try {
--- a/serviceproviders/jsapi/platformservices/src/sensors.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/sensors.js	Fri Apr 16 15:54:44 2010 +0300
@@ -15,9 +15,6 @@
 *
 */
 
-
-// sensors service interface
-
 var __device_sensors_service_entry = {"name": null, 
 				      "version": null,
 				      "proto": __device_sensors,
@@ -63,29 +60,7 @@
 
 
 
-
-
-
-/*
-Copyright © 2009 Nokia. All rights reserved.
-Code licensed under the BSD License:
-Software License Agreement (BSD License) Copyright © 2009 Nokia.
-All rights reserved.
-Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
-Neither the name of Nokia Corporation. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Nokia Corporation. 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-version: 2.7.0
-*/
-
-
 // S60 sp-based sensors provider
-
-
-
 function __sp_sensors_descriptor(){
   //Read-only properties
   this.interfaceName = "sensors";
--- a/serviceproviders/jsapi/platformservices/src/sysinfo.js	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/jsapi/platformservices/src/sysinfo.js	Fri Apr 16 15:54:44 2010 +0300
@@ -323,13 +323,13 @@
 		}
 }
 
-function mappingVerification(errorCode) {
-	if(errorCode == 1016 || errorCode == 1012 || errorCode == 1010 || errorCode == 1009 || errorCode == 1005 || errorCode == 1000 || errorCode == 1011 || errorCode == 1007 || errorCode  == 1003 || errorCode == 1002){
-		return true;
-		}
-	else{
-		return false;		
-		}
+function mappingVerification_sysinfo(errorCode) {
+    if (errorCode === 1016 || errorCode === 1012 || errorCode === 1010 || errorCode === 1009 || errorCode === 1005 || errorCode === 1000 || errorCode === 1011 || errorCode === 1007 || errorCode === 1003 || errorCode === 1002 || errorCode === 1004 ) {
+        return true;
+    }
+    else {
+        return false;
+    }
 }
 
 function __sp_device_sysinfo_extract(sysinfo){
@@ -559,7 +559,7 @@
             	glob_obj.addToGlobalArray(rval.TransactionID, sysinfo_success_cb, ErrorCallback);
         	}
             if (rval.ErrorCode != 0) {     
-						var doMap = mappingVerification(rval.ErrorCode);
+						var doMap = mappingVerification_sysinfo(rval.ErrorCode);
 						if(doMap) {
 							switch(MapErrorCode[rval.ErrorCode])
 							{						
--- a/serviceproviders/rom/serviceapi.iby	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/rom/serviceapi.iby	Fri Apr 16 15:54:44 2010 +0300
@@ -39,8 +39,8 @@
 file=ABI_DIR\BUILD_DIR\landmarkservice.dll               		SHARED_LIB_DIR\landmarkservice.dll
 ECOM_PLUGIN(landmarkprovider.dll, landmarkprovider.rsc)
 
-file=ABI_DIR\BUILD_DIR\messagingservice.dll               	SHARED_LIB_DIR\messagingservice.dll
-ECOM_PLUGIN(messagingprovider.dll, messagingprovider.rsc)
+//file=ABI_DIR\BUILD_DIR\messagingservice.dll               	SHARED_LIB_DIR\messagingservice.dll
+//ECOM_PLUGIN(messagingprovider.dll, messagingprovider.rsc)
 
 file=ABI_DIR\BUILD_DIR\mediamanagementservice.dll           SHARED_LIB_DIR\mediamanagementservice.dll
 ECOM_PLUGIN(mediamanagementprovider.dll, mediamanagementprovider.rsc)
@@ -48,16 +48,16 @@
 //file=ABI_DIR\BUILD_DIR\cameraservice.dll               			SHARED_LIB_DIR\cameraservice.dll
 //ECOM_PLUGIN(cameraprovider.dll, cameraprovider.rsc)
 
-file=ABI_DIR\BUILD_DIR\contactservice.dll               		SHARED_LIB_DIR\contactservice.dll
-ECOM_PLUGIN(contactprovider.dll, contactprovider.rsc)
+//file=ABI_DIR\BUILD_DIR\contactservice.dll               		SHARED_LIB_DIR\contactservice.dll
+//ECOM_PLUGIN(contactprovider.dll, contactprovider.rsc)
 
 
 
-file=ABI_DIR\BUILD_DIR\appmanagerservice.dll               		SHARED_LIB_DIR\appmanagerservice.dll
-ECOM_PLUGIN(appmanagerprovider.dll, appmanagerprovider.rsc)
+//file=ABI_DIR\BUILD_DIR\appmanagerservice.dll               		SHARED_LIB_DIR\appmanagerservice.dll
+//ECOM_PLUGIN(appmanagerprovider.dll, appmanagerprovider.rsc)
 
-file=ABI_DIR\BUILD_DIR\calendarservice.dll               		SHARED_LIB_DIR\calendarservice.dll
-ECOM_PLUGIN(calendarprovider.dll, calendarprovider.rsc)
+//file=ABI_DIR\BUILD_DIR\calendarservice.dll               		SHARED_LIB_DIR\calendarservice.dll
+//ECOM_PLUGIN(calendarprovider.dll, calendarprovider.rsc)
 
 file=ABI_DIR\BUILD_DIR\loggingservice.dll               		SHARED_LIB_DIR\loggingservice.dll
 ECOM_PLUGIN(loggingprovider.dll, loggingprovider.rsc)
--- a/serviceproviders/sapi_calendar/calendarservice/src/addentry.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_calendar/calendarservice/src/addentry.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -179,7 +179,7 @@
 		
 		TCalTime instanceStTime = iCalendarEntry->InstanceStartTime();
         
-		CCalInstance* instance;
+		CCalInstance* instance = NULL;
 		
 
 		// Fetch instance having start time and LocalUid specified and GlobalUid specified
@@ -262,7 +262,7 @@
 	else
 		{
 		// Fetch entry to be modified
-		CCalEntry* entry ;
+		CCalEntry* entry = NULL;
 
 		if(iCalendarEntry->ModifiedAttributes() & CEntryAttributes::ELocalUid)
             {
--- a/serviceproviders/sapi_calendar/src/calendarinterface.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_calendar/src/calendarinterface.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -1219,7 +1219,7 @@
 	
 	CleanupStack::PushL( entryAttributes );
 	
-	TBool id;
+	TBool id = EFalse;
 	
 	const TLiwGenericParam* param = NULL;
 	
--- a/serviceproviders/sapi_calendar/src/calendariterableimpl.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_calendar/src/calendariterableimpl.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -310,7 +310,7 @@
 		if ( rdates.Count() > 0 )
 			{
     		CLiwDefaultList* dateList = CCalendarInterface::GetDatesListL( rdates );
-			aMap->InsertL( KRepeatDates, TLiwVariant( dateList ) );
+			aMap->InsertL( KExceptionDates, TLiwVariant( dateList ) );
 			dateList->DecRef();
 			}
 		rdates.Reset();
@@ -484,7 +484,7 @@
 		
 	else if(  aKey.CompareF( KStatus ) == 0 )	
 		{
-		if ( ( aMap->iCalEntry->EntryTypeL() == CCalEntry::EAppt ) &&
+		if ( ( aMap->iCalEntry->EntryTypeL() == CCalEntry::EAppt ) ||
 				( aMap->iCalEntry->EntryTypeL() == CCalEntry::ETodo ))
 			{
 			aMap->InsertL( KStatus, TLiwVariant( CCalendarInterface::GetStatusL( aMap->iCalEntry->StatusL() ) ) );
--- a/serviceproviders/sapi_location/inc/locationinterface.h	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_location/inc/locationinterface.h	Fri Apr 16 15:54:44 2010 +0300
@@ -36,7 +36,7 @@
 const TInt KLocUpdateInterval = KLocSecond;
 
 //Update time out
-const TInt KLocUpdateTimeOut = 15*KLocSecond;
+const TInt KLocUpdateTimeOut = 60*KLocSecond;
 
 //MaxAge
 const TInt KLocMaxAge = 0;
@@ -130,6 +130,7 @@
 _LIT8(KPositionFieldHeadingError , "HeadingError") ;
 _LIT8(KPositionFieldMagneticHeading , "MagneticHeading") ;
 _LIT8(KPositionFieldMagneticHeadingError , "MagneticHeadingError") ;
+_LIT8(KTime , "timestamp") ;
   
 /**
  * Direction course information which will be part of outparm list
--- a/serviceproviders/sapi_location/locationservice/inc/locationservice.h	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_location/locationservice/inc/locationservice.h	Fri Apr 16 15:54:44 2010 +0300
@@ -52,7 +52,7 @@
 const TInt KSUpdateInterval = KSSecond;
 
 //Update time out
-const TInt KSUpdateTimeOut = 15*KSSecond;
+const TInt KSUpdateTimeOut = 60*KSSecond;
 
 //MaxAge
 const TInt KSMaxAge = 0;
--- a/serviceproviders/sapi_location/locationservice/src/locationcoreimp.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_location/locationservice/src/locationcoreimp.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -172,7 +172,7 @@
 
 	    // If position server could not get position
 	    // In two minutes it will terminate the position request
-	    updateopts.SetUpdateTimeOut(TTimeIntervalMicroSeconds(KSUpdateTimeOut));
+	    //updateopts.SetUpdateTimeOut(TTimeIntervalMicroSeconds(KSUpdateTimeOut));
 
 	    // Positions which have time stamp below KMaxAge can be reused
 	    updateopts.SetMaxUpdateAge(TTimeIntervalMicroSeconds(KSMaxAge));
--- a/serviceproviders/sapi_location/locationservice/src/locationservice.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_location/locationservice/src/locationservice.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -112,7 +112,7 @@
  */
 void CLocationService::GetHighAccuracyModuleL(TPositionModuleId* aModId)
     {
-    TPositionModuleId moduleId;
+    TPositionModuleId moduleId = TUid::Null();
     TPositionModuleInfo modInfo;
     TUint numOfModules = 0;
 
--- a/serviceproviders/sapi_location/src/locationcallBack.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_location/src/locationcallBack.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -288,8 +288,14 @@
 	            	
 	            }
 
-
-
+	        
+	        
+	        
+	        TTime timeReceived = pos.Time();//this is time from Jan 1 0AD	        
+            
+            result->InsertL(KTime,TLiwVariant(timeReceived));
+                
+            
 
 	    /*if( currCapability & TPositionModuleInfo :: ECapabilityNmea ) //Extract Nmea info if any and append it 	
 	        {                                                             //as part of out param list  
--- a/serviceproviders/sapi_location/src/locationinterface.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_location/src/locationinterface.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -1571,7 +1571,7 @@
 	    }
 	 else//set the default value
 		 {
-		 aPositionUpdateoption.SetUpdateTimeOut(TTimeIntervalMicroSeconds(KLocUpdateTimeOut));
+		 //aPositionUpdateoption.SetUpdateTimeOut(TTimeIntervalMicroSeconds(KLocUpdateTimeOut));
 		 	
 		 }
 	    
--- a/serviceproviders/sapi_logging/loggingservice/src/loggingasyncservice.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_logging/loggingservice/src/loggingasyncservice.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -210,7 +210,7 @@
          case EReadEvents :
             {
             iIter->SetTaskId(EReadEvents) ;
-            iCallback->HandleNotifyL( iTransId, KErrNone, iIter  ) ;
+            iCallback->HandleNotifyL( iTransId, iStatus.Int(), iIter  ) ;
             iIter = NULL ;
             iTask = ESleep;
             break;
@@ -219,7 +219,7 @@
         case EGetRecent:
             {
             iIter->SetTaskId(EGetRecent) ;
-            iCallback->HandleNotifyL( iTransId ,KErrNone, iIter ) ;
+            iCallback->HandleNotifyL( iTransId ,iStatus.Int(), iIter ) ;
             iIter = NULL ;
             iTask = ESleep;
             break;
@@ -231,14 +231,7 @@
             iIter->SetTaskId( EGetEvent ) ;
             delete iUpdatedEvent ;
             iUpdatedEvent = NULL ;
-            
-            if( iStatus.Int() != KErrNone )
-                {
-                delete iIter;
-                iIter = NULL ;
-                }
-                
-            iCallback->HandleNotifyL(iTransId , KErrNone, iIter) ;
+            iCallback->HandleNotifyL(iTransId , iStatus.Int(), iIter) ;
             iIter = NULL ;
             iTask = ESleep;
             break ;
--- a/serviceproviders/sapi_logging/src/loggingcallback.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_logging/src/loggingcallback.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -89,12 +89,21 @@
         {
         case EReadEvents :
             {
+            if( aStatus == KErrNone )
+            	{	
             CLiwLogIter *iter = CLiwLogIter :: NewL( aIter ) ;
             CleanupClosePushL( *iter );
             OutParm->AppendL( TLiwGenericParam ( KResponse , TLiwVariant( iter ) )  ) ;
             CleanupStack :: Pop( iter ) ;
             iter->DecRef();
             iCallBack->HandleNotifyL( aTransId, KLiwEventCompleted, *OutParm, *InParm ) ;
+          		}
+          	else
+          		{
+          		iCallBack->HandleNotifyL( aTransId, KLiwEventError, *OutParm, *InParm ) ;
+          		delete aIter;
+          		aIter = NULL; 
+          		}	
             CleanupStack::PopAndDestroy( InParm );
             CleanupStack::PopAndDestroy( OutParm );
             CleanupStack :: Pop( this ) ;
@@ -104,13 +113,22 @@
     
         case EGetEvent :
             {
+            if( aStatus == KErrNone )
+            	{		
             CLiwLogIter *iter = CLiwLogIter :: NewL( aIter ) ;
             CleanupClosePushL( *iter );
             OutParm->AppendL( TLiwGenericParam ( KResponse , TLiwVariant( iter ) )  ) ;
             CleanupStack :: Pop( iter ) ;
             iter->DecRef();
             iCallBack->HandleNotifyL( aTransId, KLiwEventCompleted, *OutParm, *InParm ) ;
-            CleanupStack::PopAndDestroy( InParm );
+          		}
+          	else
+          		{
+          		iCallBack->HandleNotifyL( aTransId, KLiwEventError, *OutParm, *InParm ) ;
+          		delete aIter;
+          		aIter = NULL; 
+          		}		
+          	CleanupStack::PopAndDestroy( InParm );
             CleanupStack::PopAndDestroy( OutParm );
             CleanupStack :: Pop( this ) ;
             delete this ;
@@ -119,12 +137,21 @@
     
         case EGetRecent :
             {
+            if( aStatus == KErrNone )
+            	{		
             CLiwLogIter *iter = CLiwLogIter :: NewL( aIter ) ;
             CleanupClosePushL( *iter );
             OutParm->AppendL( TLiwGenericParam ( KResponse , TLiwVariant( iter ) )  ) ;
             CleanupStack :: Pop( iter ) ;
             iter->DecRef();
             iCallBack->HandleNotifyL( aTransId, KLiwEventCompleted, *OutParm, *InParm ) ;
+          		}
+          	else
+          		{
+          		iCallBack->HandleNotifyL( aTransId, KLiwEventError, *OutParm, *InParm ) ;
+          		delete aIter;
+          		aIter = NULL; 
+          		}			
             CleanupStack::PopAndDestroy( InParm );
             CleanupStack::PopAndDestroy( OutParm );
             CleanupStack :: Pop( this ) ;
--- a/serviceproviders/sapi_mediamanagement/tsrc/dev/tmediathumbnailprovidertest/group/bld.inf	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_mediamanagement/tsrc/dev/tmediathumbnailprovidertest/group/bld.inf	Fri Apr 16 15:54:44 2010 +0300
@@ -22,9 +22,9 @@
 
 
 
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
 ../conf/tmediathumbnailprovidertest.cfg		/epoc32/winscw/c/testframework/tmediathumbnailprovidertest.cfg
 
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
 tmediathumbnailprovidertest.mmp
 //  End of File
\ No newline at end of file
--- a/serviceproviders/sapi_serviceregistry/tsrc/dev/tserviceregistryprovidertest/conf/tserviceregistry.cfg	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_serviceregistry/tsrc/dev/tserviceregistryprovidertest/conf/tserviceregistry.cfg	Fri Apr 16 15:54:44 2010 +0300
@@ -1,7 +1,7 @@
 [Test]
 title GetContactDataList
 create tserviceregistrytest testModule
-testModule GetMetaDataListL 0 0 InputStart ServiceName Service.Contact InterfaceName IDataSource MinimumVersion 1.0 MaximumVersion 5.0 InputEnd  ExpectedStart StartMap ServiceName Service.Contact InterfaceName IDataSource VersionList 1.1 EndMap ExpectedEnd
+testModule GetMetaDataListL 0 0 InputStart ServiceName Service.Logging InterfaceName IDataSource MinimumVersion 1.0 MaximumVersion 5.0 InputEnd  ExpectedStart StartMap ServiceName Service.Logging InterfaceName IDataSource VersionList 2.0 EndMap ExpectedEnd
 delete testModule
 [Endtest]
 
@@ -9,7 +9,7 @@
 [Test]
 title GetAllDataList
 create tserviceregistrytest testModule
-testModule GetMetaDataListL 0 0 ExpectedStart StartMap ServiceName Service.ServiceRegistry InterfaceName IService MinimumVersion 1.1 EndMap StartMap ServiceName Service.contact InterfaceName IDataSource VersionList 1.1 EndMap ExpectedEnd
+testModule GetMetaDataListL 0 0 ExpectedStart StartMap ServiceName Service.ServiceRegistry InterfaceName IService MinimumVersion 1.0 EndMap StartMap ServiceName Service.Logging InterfaceName IDataSource VersionList 2.0 EndMap ExpectedEnd
 delete testModule
 [Endtest]
 
@@ -24,7 +24,7 @@
 [Test]
 title GetServiceNameDataList
 create tserviceregistrytest testModule
-testModule GetMetaDataListL 0 0 InputStart ServiceName Service.ServiceRegistry InputEnd  ExpectedStart StartMap ServiceName Service.ServiceRegistry InterfaceName IService VersionList 1.1 EndMap ExpectedEnd
+testModule GetMetaDataListL 0 0 InputStart ServiceName Service.ServiceRegistry InputEnd  ExpectedStart StartMap ServiceName Service.ServiceRegistry InterfaceName IService VersionList 2.0 EndMap ExpectedEnd
 delete testModule
 [Endtest]
 
--- a/serviceproviders/sapi_serviceregistry/tsrc/dev/tserviceregistryprovidertest/group/bld.inf	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_serviceregistry/tsrc/dev/tserviceregistryprovidertest/group/bld.inf	Fri Apr 16 15:54:44 2010 +0300
@@ -23,10 +23,10 @@
 DEFAULT
 
 
-PRJ_EXPORTS
+PRJ_TESTEXPORTS
 ../conf/tserviceregistry.cfg /epoc32/winscw/c/testframework/tserviceregistry.cfg
 
-PRJ_MMPFILES
+PRJ_TESTMMPFILES
 tserviceregistrytest.mmp
 
 //  End of File
\ No newline at end of file
--- a/serviceproviders/sapi_sysinfo/sysinfoservice/src/activerequests.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_sysinfo/sysinfoservice/src/activerequests.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -25,7 +25,7 @@
 #include <sysutildomaincrkeys.h>
 
 #include <UikonInternalPSKeys.h>
-#include <networkhandlingdomainpskeys.h>
+#include <NetworkHandlingDomainPSKeys.h>
 #include <hwrmdomainpskeys.h>
 #include <hwrmpowerstatesdkpskeys.h>
 #include <ir_sock.h>
--- a/serviceproviders/sapi_sysinfo/sysinfoservice/src/sysinfoservice.cpp	Fri Mar 19 09:42:20 2010 +0200
+++ b/serviceproviders/sapi_sysinfo/sysinfoservice/src/sysinfoservice.cpp	Fri Apr 16 15:54:44 2010 +0300
@@ -35,7 +35,7 @@
 
 #include <e32property.h>
 #include <hwrmdomainpskeys.h>
-#include <networkhandlingdomainpskeys.h>
+#include <NetworkHandlingDomainPSKeys.h>
 #include <hwrmpowerstatesdkpskeys.h>
 #include <wlaninternalpskeys.h>
 #include <UikonInternalPSKeys.h>