diff -r 50974a8b132e -r 5d0ec8b709be serviceproviders/jsapi/platformservices/lib/platformservices.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serviceproviders/jsapi/platformservices/lib/platformservices.js Thu Dec 17 09:09:50 2009 +0200 @@ -0,0 +1,7795 @@ +/* +* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: This is a top level bld file to generate all sapi libraries. +* +*/ + +function __device_calendar_descriptor(_1){ +this.interfaceName=_1.interfaceName; +this.version=_1.version; +}; +function __device_calendar_startEditor(_2,_3,_4){ +this.provider.startEditor(_2,_3,_4); +}; +function __device_calendar_getList(_5,_6,_7){ +return this.provider.getList(_5,_6,_7); +}; +function __device_calendar_add(_8){ +return this.provider.addEntry(_8); +}; +function __device_calendar_update(_9){ +return this.provider.updateEntry(_9); +}; +function __device_calendar_delete(_a){ +this.provider.deleteEntry(_a); +}; +function __device_calendar_cancel(_b){ +this.provider.cancel(_b); +}; +function __device_calendar(_c){ +this.provider=_c; +this.interfaceName=_c.descriptor.interfaceName; +this.version=_c.descriptor.version; +this.startEditor=__device_calendar_startEditor; +this.getList=__device_calendar_getList; +this.addEntry=__device_calendar_add; +this.updateEntry=__device_calendar_update; +this.deleteEntry=__device_calendar_delete; +this.cancel=__device_calendar_cancel; +}; +var __device_calendar_service_entry={"name":null,"version":null,"proto":__device_calendar,"descriptor":__device_calendar_descriptor,"providers":[{"descriptor":__sp_calendar_descriptor,"instance":__sp_calendar_instance}]}; +function __device_camera_descriptor(_d){ +this.interfaceName=_d.interfaceName; +this.version=_d.version; +}; +function __device_camera_startCamera(_e,_f){ +return this.provider.startCamera(_e,_f); +}; +function __device_camera_stopViewfinder(){ +this.provider.stopViewfinder(); +}; +function __device_camera_takePicture(_10){ +this.provider.takePicture(_10); +}; +function __device_camera(_11){ +this.provider=_11; +this.interfaceName=_11.descriptor.interfaceName; +this.version=_11.descriptor.version; +this.supportedMediaTypes=_11.supportedMediaTypes; +this.supportedSizes=_11.supportedSizes; +this.startCamera=__device_camera_startCamera; +this.stopViewfinder=__device_camera_stopViewfinder; +this.takePicture=__device_camera_takePicture; +}; +var __device_camera_service_entry={"name":null,"version":null,"proto":__device_camera,"descriptor":__device_camera_descriptor,"providers":[{"descriptor":__sp_camera_descriptor,"instance":__sp_camera_instance}]}; +function __device_commlog_descriptor(_12){ +this.interfaceName=_12.interfaceName; +this.version=_12.version; +}; +function __device_commlog_getList(_13,_14,_15){ +return this.provider.getList(_13,_14,_15); +}; +function __device_commlog_setNotification(_16,_17){ +return this.provider.setNotification(_16,_17); +}; +function __device_commlog_cancelNotification(){ +return this.provider.cancelNotification(); +}; +function __device_commlog_cancel(_18){ +return this.provider.cancel(_18); +}; +function __device_commlog_deleteLogEntry(_19){ +return this.provider.deleteLogEntry(_19); +}; +function __device_commlog(_1a){ +this.provider=_1a; +this.interfaceName=_1a.descriptor.interfaceName; +this.version=_1a.descriptor.version; +this.getList=__device_commlog_getList; +this.setNotification=__device_commlog_setNotification; +this.cancelNotification=__device_commlog_cancelNotification; +this.cancel=__device_commlog_cancel; +this.deleteLogEntry=__device_commlog_deleteLogEntry; +}; +var __device_commlog_service_entry={"name":null,"version":null,"proto":__device_commlog,"descriptor":__device_commlog_descriptor,"providers":[{"descriptor":__sp_commlog_descriptor,"instance":__sp_commlog_instance}]}; +function __device_contacts_descriptor(_1b){ +this.interfaceName=_1b.interfaceName; +this.version=_1b.version; +}; +function __device_contacts_startEditor(_1c,_1d,_1e){ +return this.provider.startEditor(_1c,_1d,_1e); +}; +function __device_contacts_getContacts(_1f,_20,_21,_22){ +return this.provider.getContacts(_1f,_20,_21,_22); +}; +function __device_contacts_add(_23){ +return this.provider.addContact(_23); +}; +function __device_contacts_update(_24){ +this.provider.updateContact(_24); +}; +function __device_contacts_delete(id){ +this.provider.deleteContacts(id); +}; +function __device_contacts_getContactInfo(id){ +return this.provider.getContactInfo(id); +}; +function __device_contacts_addGroup(_27){ +return this.provider.addGroup(_27); +}; +function __device_contacts_getGroups(_28,_29){ +return this.provider.getGroups(_28,_29); +}; +function __device_contacts_deleteGroups(id){ +this.provider.deleteGroups(id); +}; +function __device_contacts_addContactsToGroup(_2b,id){ +this.provider.addContactsToGroup(_2b,id); +}; +function __device_contacts_getContactIds(_2d,_2e,_2f,_30){ +return this.provider.getContactIds(_2d,_2e,_2f,_30); +}; +function __device_contacts_getGroupIds(_31,_32){ +return this.provider.getGroupIds(_31,_32); +}; +function __device_contacts_removeContactsFromGroup(_33,id){ +this.provider.removeContactsFromGroup(_33,id); +}; +function __device_contacts_cancel(_35){ +this.provider.cancel(_35); +}; +function __device_contacts_updateGroup(_36){ +this.provider.updateGroup(_36); +}; +function __device_contacts_getGroupInfo(_37){ +return this.provider.getGroupInfo(_37); +}; +function __device_contacts(_38){ +this.provider=_38; +this.interfaceName=_38.descriptor.interfaceName; +this.version=_38.descriptor.version; +this.SORT_ASCENDING=0; +this.SORT_DESCENDING=1; +this.startEditor=__device_contacts_startEditor; +this.getContacts=__device_contacts_getContacts; +this.addContact=__device_contacts_add; +this.updateContact=__device_contacts_update; +this.deleteContacts=__device_contacts_delete; +this.getContactInfo=__device_contacts_getContactInfo; +this.addGroup=__device_contacts_addGroup; +this.getGroups=__device_contacts_getGroups; +this.deleteGroups=__device_contacts_deleteGroups; +this.addContactsToGroup=__device_contacts_addContactsToGroup; +this.getContactIds=__device_contacts_getContactIds; +this.getGroupIds=__device_contacts_getGroupIds; +this.removeContactsFromGroup=__device_contacts_removeContactsFromGroup; +this.cancel=__device_contacts_cancel; +this.updateGroup=__device_contacts_updateGroup; +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}]}; +var __device_debug_on__=true; +var MISSING_ARG_ERR=1; +var INVALID_ARG_ERR=2; +var NOT_SUPPORTED_ERR=3; +var event_completed=2; +var event_cancelled=3; +var __Service_Interface_Ver=1; +var MapErrorCode={1016:100,1012:101,1010:102,1009:103,1005:104,1000:105,1011:106,1007:107,1003:1,1002:2}; +function __device_debug(_39){ +}; +function __device_handle_exception(e,_3b){ +__device_debug(_3b); +throw (e); +}; +function __device_typeof(_3c){ +if(_3c==undefined){ +return "undefined"; +} +if(_3c instanceof Object){ +if(_3c instanceof String){ +return "String"; +}else{ +if(_3c instanceof Array){ +return "Array"; +} +} +} +if(typeof _3c){ +if(typeof _3c=="object"){ +if(typeof _3c=="object"&&!_3c){ +return "null"; +} +}else{ +if(typeof _3c=="string"){ +return "string"; +} +} +} +}; +if((typeof nokia)=="undefined"){ +nokia={}; +nokia.device={}; +}else{ +if((typeof nokia.device)!="undefined"){ +nokia.device={}; +}else{ +throw ("nokia.device already defined"); +} +} +nokia.device={load:__device_service_load,listInterfaces:__device_service_interfaces,getSystemProperties:__device_getSystemProperties,getLibraryVersion:__device_getLibraryVersion,version:2}; +function __device_getLibraryVersion(){ +return 2; +}; +function __device_getSystemProperties(){ +return {uriPath:{max:255}}; +}; +var __device_services_inited=false; +var __device_services=[{"name":"device","version":2,"interfaces":[]}]; +function __device_services_init(){ +if(__device_services_inited){ +return; +} +__device_services_inited=true; +try{ +var _3d=device.getServiceObject("Service.ServiceRegistry","IService"); +var _3e={ServiceName:"Service.Calendar",InterfaceName:"IDataSource"}; +var _3f=_3d.IService.GetList(_3e); +if(_3f.ErrorCode==0){ +var _40=_3f.ReturnValue; +if(_40){ +var _41=_40.getNext(); +if(_41){ +var _42=_41.VersionList; +var _43; +for(_43 in _42){ +if(_42[_43]>__Service_Interface_Ver){ +__Service_Interface_Ver=_42[_43]; +} +} +} +} +_40.close(); +} +_3d.close(); +} +catch(e){ +__Service_Interface_Ver=1; +} +try{ +__device_services[0].interfaces.push(__device_geolocation_service_entry); +} +catch(e){ +__device_debug("Missing library implementation: "+e); +} +try{ +__device_services[0].interfaces.push(__device_camera_service_entry); +} +catch(e1){ +__device_debug("Missing library implementation: "+e1); +} +try{ +__device_services[0].interfaces.push(__device_media_service_entry); +} +catch(e2){ +} +try{ +__device_services[0].interfaces.push(__device_contacts_service_entry); +} +catch(e3){ +} +try{ +__device_services[0].interfaces.push(__device_messaging_service_entry); +} +catch(e4){ +__device_debug("Missing library implementation: "+e4); +} +try{ +__device_services[0].interfaces.push(__device_calendar_service_entry); +} +catch(e5){ +__device_debug("Missing library implementation: "+e5); +} +try{ +__device_services[0].interfaces.push(__device_landmarks_service_entry); +} +catch(e6){ +__device_debug("Missing library implementation: "+e6); +} +try{ +__device_services[0].interfaces.push(__device_commlog_service_entry); +} +catch(e7){ +__device_debug("Missing library implementation: "+e7); +} +try{ +__device_services[0].interfaces.push(__device_sysinfo_service_entry); +} +catch(e8){ +__device_debug("Missing library implementation: "+e8); +} +try{ +__device_services[0].interfaces.push(__device_sensors_service_entry); +} +catch(e9){ +__device_debug("Missing library implementation: "+e9); +} +}; +function __device_get_implementation(i){ +return new i.proto(new (i.providers[0].instance)); +}; +function __device_get_descriptor(i){ +return new i.descriptor(new (i.providers[0].descriptor)); +}; +function __device_get_interface(s,_47,_48){ +var i=s.interfaces; +for(var d in i){ +if(i[d].name==null){ +__device_update_descriptor(i[d]); +} +if(i[d].name==undefined){ +continue; +} +if(i[d].name==_47){ +if(_48){ +if(i[d].version>=_48){ +return __device_get_implementation(i[d]); +} +}else{ +return __device_get_implementation(i[d]); +} +} +} +return null; +}; +function __device_service_load(_4b,_4c){ +var _4d=new DeviceException("dummy",0); +if(_4b){ +if(typeof _4b!="string"){ +throw new DeviceException(_4d.INVALID_ARG_ERR,"nokia.device.load:Invalid type interfaceName"); +} +}else{ +throw new DeviceException(_4d.MISSING_ARG_ERR,"nokia.device.load:interfaceName param expected"); +} +if(_4c){ +if(typeof _4c!="number"){ +throw new DeviceException(_4d.INVALID_ARG_ERR,"nokia.device.load:Invalid type version"); +} +} +__device_services_init(); +for(var s in __device_services){ +var i=__device_get_interface(__device_services[s],_4b,_4c); +if(i!=null){ +return i; +} +} +return null; +}; +function __device_update_descriptor(i){ +var d=__device_get_descriptor(i); +i.name=d.interfaceName; +i.version=d.version; +}; +function __device_interface_list(s){ +var _53=new Array(); +for(var i in s.interfaces){ +if(s.interfaces[i].name==null){ +__device_update_descriptor(s.interfaces[i]); +} +if(s.interfaces[i].name==undefined){ +continue; +} +_53[i]=new Object(); +_53[i].name=s.interfaces[i].name; +_53[i].version=s.interfaces[i].version; +} +return _53; +}; +function __device_service_descriptor(s){ +this.name=s.name; +this.version=s.version; +this.interfaces=__device_interface_list(s); +this.toString=__device_service_descriptor_to_string; +}; +function __device_service_descriptor_to_string(){ +var is="\nInterfaces(s): "; +for(i in this.interfaces){ +is+="\n"+this.interfaces[i].name+" "+this.interfaces[0].version; +} +return ("Service: "+this.name+is); +}; +function __device_service_interfaces(){ +__device_services_init(); +for(var s in __device_services){ +var _58=__device_interface_list(__device_services[s]); +return new __FWIter(_58); +} +return null; +}; +function __FWIter(arr){ +this._arr=arr; +this._pos=0; +this._valid=true; +}; +__FWIter.prototype.hasNext=function(){ +return (this._valid&&this._pos2){ +return _c4.split(":")[2]; +} +} +return _c4; +}; +var __s60_start_and_wait_cb; +function __s60_on_app_exit(){ +widget.onshow=null; +if(__s60_start_and_wait_cb!==null){ +__s60_start_and_wait_cb(); +} +}; +function __s60_on_app_start(){ +widget.onhide=null; +widget.onshow=__s60_on_app_exit; +}; +function __s60_start_and_wait(id,_c6,_c7){ +__s60_start_and_wait_cb=_c7; +widget.onhide=__s60_on_app_start; +widget.openApplication(id,_c6); +}; +function __s60_api_not_supported(){ +throw (err_ServiceNotSupported); +}; +function __s60_enumerate_object(_c8,_c9,_ca,_cb){ +var key; +for(key in _c8){ +var _cd; +if(_c9){ +_cd=_c9+"."+key; +}else{ +_cd=key; +} +var _ce=_c8[key]; +if(typeof _ce=="object"){ +__s60_enumerate_object(_ce,_cd,_ca,_cb); +}else{ +_ca(_cd,_ce,_cb); +} +} +}; +var dataGetList=0; +var isUpdate=0; +function __sp_calendar_descriptor(){ +this.interfaceName="calendar"; +if(window.__Service_Interface_Ver){ +this.version=__Service_Interface_Ver; +}else{ +this.version=1; +} +}; +function __sp_calendar_entry_time(_cf,end,_d1){ +if(_cf){ +var st=new Date(_cf); +this.begin=st; +} +if(end){ +var en=new Date(end); +this.end=en; +} +if(_d1){ +var al=new Date(_d1); +this.alarm=al; +} +}; +function __sp_calendar_isInputValid(_d5){ +if(_d5){ +if(_d5.id){ +if(typeof (_d5.id)!="string"){ +return false; +} +} +if(_d5.type){ +if((typeof (_d5.type)!="string")||!__sp_calendar_entry_types.match(_d5.type)){ +return false; +} +} +if(_d5.text){ +if(typeof (_d5.text)!="string"){ +return false; +} +} +if(_d5.range){ +if(typeof (_d5.range)!="object"){ +return false; +} +if(_d5.range.begin){ +if(typeof (_d5.range.begin)!="object"){ +return false; +} +} +if(_d5.range.end){ +if(typeof (_d5.range.end)!="object"){ +return false; +} +} +} +if(_d5.summary){ +if(typeof (_d5.summary)!="string"){ +return false; +} +} +if(_d5.description){ +if(typeof (_d5.description)!="string"){ +return false; +} +} +if(_d5.status){ +if(typeof (_d5.status)!="string"){ +return false; +} +} +if(_d5.location){ +if(typeof (_d5.location)!="string"){ +return false; +} +} +if(_d5.priority){ +if(typeof (_d5.priority)!="number"){ +return false; +} +} +if(_d5.instanceStartTime){ +if(typeof (_d5.instanceStartTime)!="object"){ +return false; +} +} +if(_d5.exceptionDates){ +if(typeof (_d5.exceptionDates)!="object"){ +return false; +} +} +if(_d5.time){ +if(typeof _d5.time!="object"){ +return false; +} +if(_d5.time.begin){ +if(typeof (_d5.time.begin)!="object"){ +return false; +} +if(_d5.time.begin=="Invalid Date"){ +return false; +} +try{ +(_d5.time.begin).getTime(); +} +catch(e){ +return false; +} +} +if(_d5.time.end){ +if(typeof (_d5.time.end)!="object"){ +return false; +} +if(_d5.time.end=="Invalid Date"){ +return false; +} +try{ +(_d5.time.end).getTime(); +} +catch(e){ +return false; +} +} +if(_d5.time.begin&&_d5.time.end){ +if(_d5.time.begin>_d5.time.end){ +return false; +} +} +if(_d5.time.alarm){ +if(typeof (_d5.time.alarm)!="object"){ +return false; +} +try{ +(_d5.time.alarm).getTime(); +} +catch(e){ +return false; +} +} +} +if(_d5.repeatRule){ +if(typeof _d5.repeatRule!="object"){ +return false; +} +if(_d5.repeatRule.frequency){ +if(typeof (_d5.repeatRule.frequency)!="string"){ +return false; +} +} +if(_d5.repeatRule.startDate){ +if(typeof (_d5.repeatRule.startDate)!="object"){ +return false; +} +if((_d5.repeatRule.startDate)=="Invalid Date"){ +return false; +} +try{ +(_d5.repeatRule.startDate).getTime(); +} +catch(e){ +return false; +} +} +if(_d5.repeatRule.untilDate){ +if(typeof (_d5.repeatRule.untilDate)!="object"){ +return false; +} +if((_d5.repeatRule.untilDate)=="Invalid Date"){ +return false; +} +try{ +(_d5.repeatRule.untilDate).getTime(); +} +catch(e){ +return false; +} +} +if(_d5.repeatRule.startDate&&_d5.repeatRule.untilDate){ +if(_d5.repeatRule.startDate>_d5.repeatRule.untilDate){ +return false; +} +} +if(_d5.repeatRule.interval){ +if(typeof (_d5.repeatRule.interval)!="number"){ +return false; +} +} +if(_d5.repeatRule.month){ +if(typeof (_d5.repeatRule.month)!="number"){ +return false; +} +} +if(_d5.repeatRule.weekDays){ +if(typeof (_d5.repeatRule.weekDays)!="object"){ +return false; +} +} +if(_d5.repeatRule.daysOfMonth){ +if(typeof (_d5.repeatRule.daysOfMonth)!="object"){ +return false; +} +} +if(_d5.repeatRule.monthDates){ +if(typeof (_d5.repeatRule.monthDates)!="object"){ +return false; +} +} +} +} +return true; +}; +function __sp_calendar_getList_repeatRule(_d6){ +var _d7; +switch(_d6.Type){ +case 1: +_d7="daily"; +this.frequency=_d7.toString(); +break; +case 2: +_d7="weekly"; +this.frequency=_d7.toString(); +break; +case 3: +_d7="monthly"; +this.frequency=_d7.toString(); +break; +case 4: +_d7="yearly"; +this.frequency=_d7.toString(); +break; +default: +throw new DeviceException(err_bad_argument,"Calendar: Repeat Rule Type is Invalid"); +} +if(_d6.StartDate){ +this.startDate=new Date(_d6.StartDate); +} +if(_d6.UntilDate){ +this.untilDate=new Date(_d6.UntilDate); +} +if(_d6.Interval){ +this.interval=_d6.Interval; +} +if(_d6.DaysInWeek){ +this.weekDays=[]; +for(var a in _d6.DaysInWeek){ +if(_d6.DaysInWeek[a]==6){ +_d6.DaysInWeek[a]=0; +}else{ +_d6.DaysInWeek[a]=_d6.DaysInWeek[a]+1; +} +this.weekDays.push(_d6.DaysInWeek[a]); +} +} +if(_d6.Month){ +this.month=_d6.Month; +} +if(_d6.DaysOfMonth){ +if(_d6.DaysOfMonth.Day){ +if(_d6.DaysOfMonth.Day==6){ +_d6.DaysOfMonth.Day=0; +}else{ +_d6.DaysOfMonth.Day=_d6.DaysOfMonth.Day+1; +} +this.daysOfMonth.day=_d6.DaysOfMonth.Day; +} +if(_d6.DaysOfMonth.WeekNum){ +this.daysOfMonth.weekInMonth=_d6.DaysOfMonth.WeekNum; +} +} +if(_d6.MonthDays){ +this.monthDates=[]; +for(var i=0;i<_d6.MonthDays.length;i++){ +this.monthDates.push(_d6.MonthDays[i]-1); +} +} +}; +function __sp_device_calendar_entry(_da){ +if(_da.id){ +this.id=_da.id; +} +if(_da.type){ +this.type=_da.Type; +} +if(_da.Summary){ +this.summary=_da.Summary; +} +if(_da.Description){ +this.description=_da.Description; +} +if(_da.Location){ +this.location=_da.Location; +} +if(_da.InstanceStartTime){ +this.instanceStartTime=_da.InstanceStartTime; +} +if(_da.Priority>=0||_da.Priority<=255){ +this.priority=_da.Priority; +} +if(_da.Status){ +this.status=_da.Status; +} +if(_da.ExDates){ +this.exceptionDates=_da.ExDates; +} +if(_da.RepeatRule){ +this.repeatRule=new __sp_calendar_getList_repeatRule(_da.RepeatRule); +} +if(dataGetList==0){ +this.time=new __sp_calendar_entry_time(_da.InstanceStartTime,_da.InstanceEndTime,_da.AlarmTime); +}else{ +this.time=new __sp_calendar_entry_time(_da.StartTime,_da.EndTime,_da.AlarmTime); +} +}; +function __sp_daysOfMonth_build(_db){ +if(_db.day){ +if(_db.day==0){ +_db.day=6; +}else{ +_db.day=_db.day-1; +} +this.Day=_db.day; +} +if(_db.weekInMonth){ +this.WeekNum=_db.weekInMonth; +} +}; +function __sp_calendar_addEntry_repeatRule(_dc,str){ +try{ +if(!(_dc.frequency)){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: addEntry: frequency is missing"); +}else{ +var _de=_dc.frequency; +switch(_de){ +case "daily": +this.Type=1; +break; +case "weekly": +this.Type=2; +break; +case "monthly": +this.Type=3; +break; +case "yearly": +this.Type=4; +break; +default: +throw new DeviceException(err_bad_argument,"Calendar: "+str+" Repeat Rule Type is Invalid"); +} +if(_dc.startDate){ +this.StartDate=_dc.startDate; +} +if(_dc.untilDate){ +this.UntilDate=_dc.untilDate; +} +if(_dc.interval){ +this.Interval=_dc.interval; +} +if(_dc.weekDays){ +this.DaysInWeek=[]; +for(var a in _dc.weekDays){ +if(_dc.weekDays[a]==0){ +_dc.weekDays[a]=6; +}else{ +_dc.weekDays[a]=_dc.weekDays[a]-1; +} +this.DaysInWeek.push(_dc.weekDays[a]); +} +} +if(_dc.month){ +this.Month=_dc.month; +} +if(_dc.monthDates){ +this.MonthDays=[]; +for(var i=0;i<_dc.monthDates.length;i++){ +this.MonthDays.push(_dc.monthDates[i]-1); +} +} +if(_dc.daysOfMonth){ +this.DaysOfMonth=new Array(); +for(var a in _dc.daysOfMonth){ +var _e1=new __sp_daysOfMonth_build(_dc.daysOfMonth[a]); +(this.DaysOfMonth).push(_e1); +} +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_calendar_addEntry_repeatRule: "+e); +} +}; +function __sp_calendar_entry(_e2,str){ +try{ +if(_e2.type){ +this.Type=_e2.type; +} +if(_e2.id){ +this.id=_e2.id; +if(isUpdate){ +if(_e2.time){ +if(_e2.time.begin){ +this.StartTime=_e2.time.begin; +} +if(_e2.time.end){ +this.EndTime=_e2.time.end; +} +} +} +} +if(_e2.instanceStartTime){ +this.InstanceStartTime=_e2.instanceStartTime; +} +if(_e2.description){ +this.Description=_e2.description; +}else{ +if(isUpdate&&(_e2.description==null)){ +this.Description=" "; +} +} +if(_e2.summary){ +this.Summary=_e2.summary; +}else{ +if(isUpdate&&(_e2.summary==null)){ +this.Summary=" "; +} +} +if(_e2.location){ +this.Location=_e2.location; +}else{ +if(isUpdate&&(_e2.location==null)){ +this.Location=" "; +} +} +if(_e2.priority){ +if((_e2.priority<0)||(_e2.priority>255)){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: "+str+" Priority is Invalid"); +}else{ +this.Priority=_e2.priority; +} +}else{ +if(isUpdate&&(_e2.priority==null)){ +this.Priority=0; +} +} +if(_e2.status){ +if(this.Type=="ToDo"){ +this.Status="Todo"+_e2.status; +}else{ +this.Status=_e2.status; +} +}else{ +if(isUpdate&&(_e2.status==null)){ +this.Status="Tentative"; +} +} +if(_e2.exceptionDates){ +this.ExDates=_e2.exceptionDates; +} +if(_e2.repeatRule){ +this.RepeatRule=new __sp_calendar_addEntry_repeatRule(_e2.repeatRule,str); +} +if(_e2.type!=undefined&&_e2.type!=null){ +if(typeof this.Type!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: "+str+" Type is not a string"); +} +switch(this.Type){ +case "Meeting": +if(_e2.time){ +if(_e2.time.begin){ +this.StartTime=_e2.time.begin; +} +if(_e2.time.end){ +this.EndTime=_e2.time.end; +} +} +break; +case "Reminder": +case "Anniversary": +if(_e2.time){ +if(_e2.time.begin){ +this.StartTime=_e2.time.begin; +} +} +break; +case "ToDo": +if(_e2.time){ +if(_e2.time.end){ +this.EndTime=_e2.time.end; +} +} +break; +case "DayEvent": +if(_e2.time){ +if(_e2.time.begin){ +this.StartTime=_e2.time.begin; +} +} +break; +default: +throw new DeviceException(INVALID_ARG_ERR,"Calendar: "+str+" Type is Invalid"); +} +} +if(_e2.time){ +if(_e2.time.alarm){ +this.AlarmTime=_e2.time.alarm; +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_calendar_entry: "+e); +} +}; +function __sp_calendar_iterator_get_next(){ +var _e4=this.iter.getNext(); +if(typeof _e4=="undefined"){ +return null; +} +var _e5=new __sp_device_calendar_entry(_e4); +_e4.close(); +return _e5; +}; +function __sp_calendar_iterator(_e6){ +this.iter=_e6; +this.next=__sp_calendar_iterator_get_next; +}; +var CALENDAR_APP_ID=268458241; +function __sp_calendar_startEditor(_e7,_e8,_e9){ +try{ +if(!_e7){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: startEditor: callback is missing"); +}else{ +if(typeof _e7!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: startEditor: callback is invalid"); +} +} +if(_e9){ +if(typeof _e9!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: startEditor: error callback is invalid"); +} +} +if(_e8==null||_e8==undefined){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: startEditor: entry is invalid"); +} +var _ea=function(_eb,_ec,_ed){ +var _ee=null; +_e7(_ee); +if(_ec!=event_cancelled){ +var _ee=null; +if(_ed.ReturnValue){ +_ee=new __sp_calendar_iterator(_ed.ReturnValue); +} +_e7(_ee); +} +if(_ed.ErrorCode!=0){ +switch(_ed.ErrorCode){ +case MISSING_ARG_ERR: +case INVALID_ARG_ERR: +case NOT_SUPPORTED_ERR: +if(_ed.ErrorMessage){ +var _ef=splitErrorMessage(_ed.ErrorMessage); +throw new DeviceException(MapErrorCode[_ed.ErrorCode],"Calendar: startEditor: "+_ef); +}else{ +throw new DeviceException(MapErrorCode[_ed.ErrorCode],"Calendar: startEditor: Operation Failed"); +} +break; +default: +_e9(new DeviceException(MapErrorCode[_ed.ErrorCode],"Calendar: startEditor: Operation Failed")); +} +} +}; +__s60_start_and_wait(CALENDAR_APP_ID,"",_ea); +return 0; +} +catch(e){ +__device_handle_exception(e,"__sp_calendar_startEditor: "+e); +} +}; +var __sp_calendar_entry_types="MeetingReminderToDoAnniversaryDayEvent"; +function __sp_calendar_getList(_f0,_f1,_f2){ +try{ +if(_f1){ +if(typeof _f1!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: match is invalid"); +} +if(_f1.id){ +dataGetList=1; +if(typeof _f1.id!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: match is invalid"); +} +}else{ +dataGetList=0; +} +} +if(!_f0){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: getList: callback is missing"); +}else{ +if(typeof _f0!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: callback is invalid"); +} +} +if(_f2){ +if(typeof _f2!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: error callback is invalid"); +} +if(_f2==undefined||_f2==null){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: getList: error callback is missing"); +} +} +var _f3=function(_f4,_f5,_f6){ +if(_f6.ErrorCode!=0){ +_f2(new DeviceException(_f6.ErrorCode,"Calendar: getList: Operation Failed")); +return; +} +if(_f5!=event_cancelled){ +var _f7=null; +if(_f6.ReturnValue){ +_f7=new __sp_calendar_iterator(_f6.ReturnValue); +} +_f0(_f7); +} +}; +var _f8={}; +modifyObjectBaseProp(_f8); +_f8.Type="IncludeAll"; +if(_f1){ +if(_f1.id){ +_f8.id=_f1.id; +} +if((_f1.type)&&__sp_calendar_entry_types.match(_f1.type)){ +_f8.Type=_f1.type; +}else{ +if((_f1.type)&&typeof _f1.type!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: match is invalid"); +} +} +if(_f1.range){ +if(_f1.range.begin){ +if(typeof (_f1.range.begin)!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: match is invalid"); +}else{ +if((_f1.range.begin)=="Invalid Date"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: match is invalid"); +}else{ +_f8.StartRange=_f1.range.begin; +} +} +} +if(_f1.range.end){ +if(typeof (_f1.range.end)!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: match is invalid"); +}else{ +if((_f1.range.end)=="Invalid Date"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: match is invalid"); +}else{ +_f8.EndRange=_f1.range.end; +} +} +} +if((_f1.range.begin)&&(_f1.range.end)){ +if((_f1.range.begin)>(_f1.range.end)){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: match is invalid"); +} +} +} +if(_f1.text){ +if(typeof (_f1.text)!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: getList: match is invalid"); +}else{ +_f8.SearchText=_f1.text; +} +} +} +var _f9={}; +modifyObjectBaseProp(_f9); +_f9.Type="CalendarEntry"; +_f9.Filter=_f8; +var _fa=this.so.IDataSource.GetList(_f9,_f3); +if(_f9){ +delete _f9.Type; +delete _f9.Filter; +} +if(_fa.ErrorCode!=0){ +switch(_fa.ErrorCode){ +case MISSING_ARG_ERR: +case INVALID_ARG_ERR: +case NOT_SUPPORTED_ERR: +if(_fa.ErrorMessage){ +var _fb=splitErrorMessage(_fa.ErrorMessage); +throw new DeviceException(MapErrorCode[_fa.ErrorCode],"Calendar: getList: "+_fb); +}else{ +throw new DeviceException(MapErrorCode[_fa.ErrorCode],"Calendar: getList: Operation Failed"); +} +break; +default: +_f2(new DeviceException(MapErrorCode[_fa.ErrorCode],"Calendar: getList: Operation Failed")); +} +} +return _fa.TransactionID; +} +catch(e){ +__device_handle_exception(e,"sp_calendar_getList: "+e); +} +}; +function __sp_calendar_add(_fc){ +if(_fc){ +if(typeof _fc!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: addEntry: calendarEntry param is invalid"); +} +if(_fc.id){ +_fc.id=undefined; +} +if(!_fc.type||!_fc.time){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: addEntry: mandatory param missing"); +}else{ +if(typeof _fc.type!="string"||typeof _fc.time!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: addEntry: mandatory param missing"); +} +} +if((_fc.type!="ToDo")&&!_fc.time.begin){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: addEntry: mandatory param StartTime missing"); +} +if(!_fc.time.end&&(_fc.type=="ToDo"||_fc.type=="Meeting")){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: addEntry: mandatory param EndTime missing"); +} +if(_fc.time.end&&_fc.time.alarm){ +if(_fc.time.end<_fc.time.alarm){ +throw new DeviceException(NOT_SUPPORTED_ERR,"Calendar: addEntry: alarm time greater than end time:Not supported"); +} +} +if(_fc.type=="ToDo"){ +if(_fc.status==0){ +if(typeof (_fc.status)!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: addEntry: mandatory param missing"); +} +} +} +if(_fc.repeatRule){ +if(typeof _fc.repeatRule!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: addEntry: repeatRule param type is invalid"); +} +if(!_fc.repeatRule.frequency||_fc.repeatRule.frequency==null){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: addEntry: mandatory param Frequency missing"); +} +} +var _fd=__sp_calendar_isInputValid(_fc); +if(!_fd){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: addEntry: calendarEntry param is invalid"); +} +}else{ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: addEntry: mandatory param missing"); +} +try{ +var str="addEntry:"; +var _ff={}; +modifyObjectBaseProp(_ff); +_ff.Type="CalendarEntry"; +_ff.Item=new __sp_calendar_entry(_fc,str); +var _100=this.so.IDataSource.Add(_ff); +if(_ff){ +delete _ff.Type; +delete _ff.Item; +} +var _101="Operation Failed"; +if(_100.ErrorMessage){ +_101=splitErrorMessage(_100.ErrorMessage); +} +if(_100.ErrorCode!=0){ +throw new DeviceException(MapErrorCode[_100.ErrorCode],"Calendar: addEntry: Operation Failed"); +return; +}else{ +var _102=_100.ReturnValue; +return _102; +} +} +catch(e){ +__device_handle_exception(e,"__sp_calendar_add: "+e); +} +}; +function __sp_calendar_update(_103){ +isUpdate=1; +if(_103){ +if(typeof _103!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: updateEntry: calendarEntry param is invalid"); +} +if(!_103.id){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: updateEntry: mandatory param - Id missing"); +} +if(_103.repeatRule){ +if(typeof _103.repeatRule!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: updateEntry: repeatRule param type is invalid"); +} +if((_103.repeatRule.frequency==null||_103.repeatRule.frequency==undefined)){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: updateEntry: repeatRule param type is invalid"); +} +if(_103.repeatRule.startDate&&(_103.repeatRule.startDate==null||_103.repeatRule.startDate==undefined)){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: updateEntry: repeatRule param type is invalid"); +} +if(_103.repeatRule.untilDate&&(_103.repeatRule.untilDate==null||_103.repeatRule.untilDate==undefined)){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: updateEntry: repeatRule param type is invalid"); +} +} +if(_103.time){ +if(_103.time.end&&_103.time.alarm){ +if(_103.time.alarm>_103.time.end){ +throw new DeviceException(NOT_SUPPORTED_ERR,"Calendar: updateEntry: alarm time greater than end time is not supported"); +} +} +} +var _104=__sp_calendar_isInputValid(_103); +if(!_104){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: updateEntry: calendarEntry param is invalid"); +} +}else{ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: updateEntry: mandatory param missing"); +} +try{ +var str="updateEntry:"; +var _106={}; +modifyObjectBaseProp(_106); +_106.Type="CalendarEntry"; +_106.Item=new __sp_calendar_entry(_103,str); +isUpdate=0; +var _107=this.so.IDataSource.Add(_106); +if(_106){ +delete _106.Type; +delete _106.Item; +} +var _108="Operation Failed"; +if(_107.ErrorMessage){ +_108=splitErrorMessage(_107.ErrorMessage); +} +if(_107.ErrorCode!=0){ +throw new DeviceException(MapErrorCode[_107.ErrorCode],"Calendar: addEntry: Operation Failed"); +return; +}else{ +var _109=_107.ReturnValue; +return _109; +} +} +catch(e){ +__device_handle_exception(e,"__sp_calendar_add: "+e); +} +}; +function __sp_calendar_delete(data){ +try{ +if(data){ +if(typeof data!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: deleteEntry: data is invalid"); +} +if(!data.id){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: deleteEntry: id is missing"); +} +var _10b=__sp_calendar_isInputValid(data); +if(!_10b){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: deleteEntry: delete data is invalid"); +} +}else{ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: deleteEntry: data is missing"); +} +var _10c={}; +modifyObjectBaseProp(_10c); +_10c.Type="CalendarEntry"; +_10c.Data={}; +modifyObjectBaseProp(_10c.Data); +_10c.Data.IdList=[]; +var list=[data.id]; +_10c.Data.IdList=list; +if(data.range){ +if(data.range.begin){ +_10c.Data.StartRange=data.range.begin; +} +if(data.range.end){ +_10c.Data.EndRange=data.range.end; +} +} +var rval=this.so.IDataSource.Delete(_10c); +if(_10c){ +delete _10c.Type; +delete _10c.Data.IdList; +delete _10c.Data.StartRange; +delete _10c.Data.EndRange; +} +if(list){ +delete list.id; +} +if(rval.ErrorCode!=0){ +if(rval.ErrorMessage){ +var _10f=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Calendar: deleteEntry: "+_10f); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Calendar: deleteEntry: Operation Failed"); +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_calendar_delete: "+e); +} +}; +function __sp_calendar_cancel(_110){ +try{ +if(!_110||_110==null||_110==undefined){ +throw new DeviceException(MISSING_ARG_ERR,"Calendar: cancel: id is missing"); +} +if(_110){ +if(typeof _110!="number"){ +throw new DeviceException(INVALID_ARG_ERR,"Calendar: cancel: id is missing"); +} +} +var _111={}; +modifyObjectBaseProp(_111); +_111.TransactionID=_110; +var _112=this.so.IDataSource.Cancel(_111); +if(_111){ +delete _111.TransactionID; +} +if(_112.ErrorCode!=0){ +if(_112.ErrorMessage){ +var _113=splitErrorMessage(_112.ErrorMessage); +throw new DeviceException(MapErrorCode[_112.ErrorCode],"Calendar: cancel: "+_113); +}else{ +throw new DeviceException(MapErrorCode[_112.ErrorCode],"Calendar: cancel: Operation Failed"); +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_calendar_cancel: "+e); +} +}; +function __sp_calendar_instance(){ +this.descriptor=new __sp_calendar_descriptor(); +this.startEditor=__sp_calendar_startEditor; +this.getList=__sp_calendar_getList; +this.addEntry=__sp_calendar_add; +this.updateEntry=__sp_calendar_update; +this.deleteEntry=__sp_calendar_delete; +this.cancel=__sp_calendar_cancel; +this.so=null; +try{ +this.so=device.getServiceObject("Service.Calendar","IDataSource"); +} +catch(e){ +__device_handle_exception(e,"Calendar service not available"); +} +}; +function __sp_camera_descriptor(){ +this.interfaceName="camera"; +if(window.__Service_Interface_Ver){ +this.version=__Service_Interface_Ver; +}else{ +this.version=1; +} +}; +var __sp_camera_start_date; +var CAMERA_APP_ID=270501242; +function __sp_startCamera(_114,_115){ +if(_114==null){ +throw new DeviceException(MISSING_ARG_ERR,"Camera:startCamera:callback is missing"); +} +if(_114==undefined){ +throw new DeviceException(INVALID_ARG_ERR,"Camera:startCamera:callback is a non-function"); +} +if(typeof (_114)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Camera:startCamera:callback is a non-function"); +} +if(_115){ +if(typeof _115!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Camera:startCamera:callback is invalid"); +} +} +var _116=function(){ +var _117=function(arg1,arg2,arg3){ +var it=arg3.ReturnValue; +var item; +var _11d=[]; +if(arg3.ErrorCode!=0){ +_115(new DeviceException(arg3.ErrorCode,"Camera:startCamera: Operation Failed")); +return; +} +if((item=it.getNext())!=undefined){ +var d=new Date(Date.parse(item.FileDate)); +if(d>__sp_camera_start_date){ +var _11f={}; +modifyObjectBaseProp(_11f); +var _120=item.FileNameAndPath.replace(/\\/g,"/"); +var _121="file:///"; +var _122=""; +_122=_122.concat(_121,_120); +_11f.uri=_122; +var _123={}; +_123.height=item.XPixels; +_123.width=item.YPixels; +_123.type=item.MimeType; +_11f.format=_123; +_11d.unshift(_11f); +if(_123){ +} +} +} +var _124=0; +var _125=0; +_114(_11d); +}; +try{ +var mso=device.getServiceObject("Service.MediaManagement","IDataSource"); +} +catch(e){ +__device_handle_exception(e,"media service not available : "+e); +} +var _127={}; +modifyObjectBaseProp(_127); +_127.Type="FileInfo"; +_127.Filter={}; +modifyObjectBaseProp(_127.Filter); +_127.Filter.FileType="Image"; +_127.Sort={}; +modifyObjectBaseProp(_127.Sort); +_127.Sort.Key="FileDate"; +_127.Sort.Order="Descending"; +try{ +var rval=mso.IDataSource.GetList(_127,_117); +} +catch(error){ +__device_handle_exception(error,"media service GetList failed: "+error); +} +}; +__sp_camera_start_date=new Date(); +__s60_start_and_wait(CAMERA_APP_ID,"",_116); +var _129=0; +return _129; +}; +function __sp_supportedSizes(){ +try{ +var _12a=device.getServiceObject("Service.SysInfo","ISysInfo"); +} +catch(e){ +__device_handle_exception(e,"SysInfo Service not available : "+e); +} +var _12b={}; +modifyObjectBaseProp(_12b); +_12b.Entity="Camera"; +_12b.Key="CameraProperties"; +try{ +var rval=_12a.ISysInfo.GetInfo(_12b); +if(_12b){ +delete _12b.Entity; +delete _12b.Key; +} +} +catch(error){ +__device_handle_exception(error,"Camera : Failed to fetch supported size Info: "+error); +} +var _12d=rval.ReturnValue; +var _12e=[]; +var _12f=[]; +_12e=_12d.ResolutionList; +for(var i=0;i<_12e.length;i++){ +var _131=""; +_131=_131.concat(_12e[i].height,"X",_12e[i].width); +_12f.push(_131); +} +return _12f; +}; +function __sp_supportedMediaTypes(){ +try{ +var _132=device.getServiceObject("Service.SysInfo","ISysInfo"); +} +catch(e){ +__device_handle_exception(e,"SysInfo Service not available : "+e); +} +var _133={}; +modifyObjectBaseProp(_133); +_133.Entity="Camera"; +_133.Key="CameraProperties"; +try{ +var rval=_132.ISysInfo.GetInfo(_133); +if(_133){ +delete _133.Entity; +delete _133.Key; +} +} +catch(error){ +__device_handle_exception(error,"Camera :Failed to fetch supported media type Info: "+error); +} +var _135=rval.ReturnValue; +var _136=[]; +_136=_135.MimeTypeList; +return _136; +}; +function __sp_camera_instance(){ +this.descriptor=new __sp_camera_descriptor(); +this.supportedMediaTypes=__sp_supportedMediaTypes(); +this.supportedSizes=__sp_supportedSizes(); +this.startCamera=__sp_startCamera; +this.stopViewfinder=__s60_api_not_supported; +this.takePicture=__s60_api_not_supported; +}; +var invoker_notification; +var error=new DeviceException(0,"dummy"); +function __sp_commlog_descriptor(){ +this.interfaceName="commlog"; +if(window.__Service_Interface_Ver){ +this.version=__Service_Interface_Ver; +}else{ +this.version=1; +} +}; +var __sp_commlog_type_constants={"call":0,"sms":3}; +var __sp_commlog_constants={"received":0,"missed":5,"outgoing":1}; +var __sp_commlog_constants_output={"Received":0,"Missed":5,"Outgoing":1}; +var __notifArr=new Array(); +var __notifCount=0; +__Notification.prototype=new Object(); +__Notification.prototype.constructor=__Notification; +function __Notification(_137,_138){ +this.connectionId=_137; +this.callback=_138; +}; +var __nofLogs; +function __get_const_string(def,val){ +var i; +for(i in def){ +if(def[i]==val){ +return i; +} +} +return null; +}; +function __get_const_val(def,str){ +if(def[str]!=undefined){ +return def[str]; +} +return null; +}; +function __device_commlog_item(_13e){ +if(!_13e){ +return null; +} +var evt={}; +evt.type=__get_const_string(__sp_commlog_type_constants,_13e.EventType); +if(evt.type==null||evt.type==undefined){ +return null; +} +evt.phoneNumber=_13e.PhoneNumber; +if(evt.phoneNumber==null||evt.phoneNumber==undefined||evt.phoneNumber.length==0){ +evt.phoneNumber="private number"; +} +evt.time=_13e.EventTime; +evt.flag=(_13e.Direction==undefined)?null:__get_const_string(__sp_commlog_constants_output,_13e.Direction); +evt.summary=_13e.Description; +evt.logId=Number(_13e.id); +evt.contactName=_13e.RemoteParty; +if(!evt.contactName){ +evt.contactName=evt.phoneNumber; +} +return evt; +}; +function __sp_commlog_iterator_get_next(){ +if(typeof __nofLogs=="number"){ +if(__nofLogs<=0){ +return null; +} +__nofLogs=__nofLogs-1; +} +if((typeof this.buffer=="object")&&(this.buffer!=null)){ +var b1=this.buffer; +this.buffer=null; +var _141=new __device_commlog_item(b1); +return _141; +}else{ +var _142; +if(this.iter!=undefined&&this.iter!=null){ +_142=this.iter.getNext(); +} +if(typeof _142=="undefined"){ +return null; +} +var rval=new __device_commlog_item(_142); +_142.close(); +return rval; +} +}; +function __sp_commlog_iterator_has_next(){ +if(this.iter!=undefined&&this.iter!=null){ +this.buffer=this.iter.getNext(); +} +if((typeof this.buffer=="object")&&(this.buffer!=null)){ +return true; +}else{ +return false; +} +}; +function __sp_commlog_iterator_close(){ +}; +function __sp_commlog_iterator(_144){ +this.iter=_144; +this.buffer=null; +this.next=__sp_commlog_iterator_get_next; +this.hasNext=__sp_commlog_iterator_has_next; +this.close=__sp_commlog_iterator_close; +this.nofLogs=__nofLogs; +}; +function __sp_commlog_getList(_145,_146,_147){ +if(_145==null||_145==undefined){ +throw new DeviceException(error.MISSING_ARG_ERR,"CommLog:getList:callback is Required"); +}else{ +if(typeof _145!="function"){ +throw new DeviceException(error.INVALID_ARG_ERR,"CommLog:getList:Invalid Callback"); +} +} +if(_147){ +if(typeof (_147)!="function"){ +throw new DeviceException(error.INVALID_ARG_ERR,"CommLog: getList: ErrorCallback is invalid"); +} +} +if(_146!=null&&_146!=undefined){ +if(typeof _146!="object"||__device_typeof(_146)=="Array"){ +throw new DeviceException(error.INVALID_ARG_ERR,"CommLog: getList: Match is not an object"); +} +if(_146.type!=null&&_146.type!=undefined){ +if(typeof _146.type!="string"){ +throw new DeviceException(error.INVALID_ARG_ERR,"CommLog: getList: Type is not a string"); +} +} +if(_146.flag!=null&&_146.flag!=undefined){ +if(typeof _146.flag!="string"){ +throw new DeviceException(error.INVALID_ARG_ERR,"CommLog: getList: Flag is not a string"); +} +if(_146.type){ +if(_146.type.toLowerCase()=="sms"&&_146.flag.toLowerCase()=="missed"){ +if(_147){ +setTimeout(function(){ +_147(new DeviceException(error.DATA_OUT_OF_RANGE_ERR,"commlogs: getList: Missed is not supported for sms")); +},1000); +return; +}else{ +throw new DeviceError("commlogs: getList: Missed is not supported for sms",error.DATA_OUT_OF_RANGE_ERR); +} +} +} +} +if(_146.nofLogs!=null&&_146.nofLogs!=undefined){ +if(typeof _146.nofLogs!="number"){ +throw new DeviceException(error.INVALID_ARG_ERR,"CommLog: getList: nofLogs is invalid"); +} +} +} +try{ +var _148={}; +modifyObjectBaseProp(_148); +_148.Type="Log"; +_148.Filter={}; +modifyObjectBaseProp(_148.Filter); +if(_146){ +if(_146.type){ +var _149; +_149=__get_const_val(__sp_commlog_type_constants,_146.type.toLowerCase()); +if(_149!=undefined){ +_148.Filter.EventType=_149; +}else{ +if(_147){ +setTimeout(function(){ +_147(new DeviceException(error.DATA_OUT_OF_RANGE_ERR,"CommLog: getList: Type is out of range")); +},1000); +return; +}else{ +throw new DeviceException(error.DATA_OUT_OF_RANGE_ERR,"CommLog: getList: Type is out of range"); +} +} +} +if(_146.nofLogs!=null&&_146.nofLogs!=undefined){ +if((_146.nofLogs<0)||(_146.nofLogs!=(_146.nofLogs|0))){ +if(_147){ +setTimeout(function(){ +_147(new DeviceException(error.DATA_OUT_OF_RANGE_ERR,"CommLog: getList: nofLogs is out of range")); +},1000); +return; +}else{ +throw new DeviceException(error.DATA_OUT_OF_RANGE_ERR,"CommLog: getList: nofLogs is out of range"); +} +} +__nofLogs=_146.nofLogs; +} +if(_146.flag){ +var _14a; +_14a=__get_const_val(__sp_commlog_constants,_146.flag.toLowerCase()); +if(_14a!=undefined){ +_148.Filter.Direction=_14a; +}else{ +if(_147){ +setTimeout(function(){ +_147(new DeviceException(error.DATA_OUT_OF_RANGE_ERR,"CommLog: getList: Flag is out of range")); +},1000); +}else{ +throw new DeviceException(error.DATA_OUT_OF_RANGE_ERR,"CommLog: getList: Flag is out of range"); +} +} +} +if(_146.phoneNumber!=null&&_146.phoneNumber!=undefined){ +if(_146.phoneNumber!=""){ +_148.Filter.PhoneNumber=_146.phoneNumber; +} +} +if(_146.contactName!=null&&_146.contactName!=undefined){ +if(_146.contactName!=""){ +_148.Filter.RemoteParty=_146.contactName; +} +} +if(_146.startTime!=null&&_146.startTime!=undefined){ +_148.Filter.StartTime=_146.startTime; +} +if(_146.endTime!=null&&_146.endTime!=undefined){ +_148.Filter.EndTime=_146.endTime; +} +} +var _14b=function(arg1,arg2,arg3){ +var _14f=_145; +var _150=_147; +var iter=null; +var _152=null; +if(arg3.ErrorCode!=0){ +if(arg3.ErrorMessage){ +_152=splitErrorMessage(arg3.ErrorMessage); +}else{ +_152="operation failed"; +} +if(_150){ +setTimeout(function(){ +_150(new DeviceException(MapErrorCode[arg3.ErrorCode],"Commlog: getList: "+_152)); +},1000); +return; +} +}else{ +if(arg3.ReturnValue){ +iter=new __sp_commlog_iterator(arg3.ReturnValue); +} +} +if(arg2!=event_cancelled){ +_14f(iter); +} +}; +var _153=this.so.IDataSource.GetList(_148,_14b); +if(_148.Filter){ +delete _148.Filter.Direction; +delete _148.Filter.EventType; +delete _148.Filter.PhoneNumber; +} +if(_148){ +delete _148.Filter; +delete _148.Type; +} +if(_153.ErrorCode!=0){ +var _154="operation failed"; +if(_153.ErrorMessage){ +_154=splitErrorMessage(_153.ErrorMessage); +} +switch(MapErrorCode[_153.ErrorCode]){ +case error.INVALID_ARG_ERR: +case error.MISSING_ARG_ERR: +case error.NOT_SUPPORTED_ERR: +throw new DeviceException(MapErrorCode[_153.ErrorCode],"CommLog:getList:"+_154); +break; +default: +if(_147){ +_147(new DeviceException(MapErrorCode[_153.ErrorCode],"CommLog:getList:"+_154)); +return; +}else{ +throw new DeviceException(MapErrorCode[_153.ErrorCode],"CommLog:getList:"+_154); +} +} +} +return _153.TransactionID; +} +catch(e){ +__device_handle_exception(e,"__sp_commlog_Input_validation: "+e); +} +}; +function __sp_commlog_setNotification(_155,_156){ +if(!_155){ +throw new DeviceException(error.MISSING_ARG_ERR,"CommLog:setNotification:callback is missing"); +} +if(typeof _155!="function"){ +throw new DeviceException(error.INVALID_ARG_ERR,"CommLog:setNotification:callback is invalid"); +} +if(_156){ +if(typeof (_156)!="function"){ +throw new DeviceException(error.INVALID_ARG_ERR,"CommLog: setNotification: ErrorCallback is invalid"); +} +} +invoker_notification=function(arg1,arg2,arg3){ +var _15a=_155; +var _15b=_156; +var _15c=null; +if(arg3.ErrorCode!=0){ +if(arg3.ErrorMessage){ +_15d=splitErrorMessage(arg3.ErrorMessage); +}else{ +_15d="operation failed"; +} +if(_15b){ +_15b(new DeviceException(MapErrorCode[arg3.ErrorCode],"CommLog: getList: "+_15d)); +return; +} +}else{ +if(arg3.ReturnValue){ +_15c=new __device_commlog_item(arg3.ReturnValue); +} +} +if(arg2!=event_cancelled){ +for(i in __notifArr){ +if(arg1==__notifArr[i].connectionId){ +var _15e=__notifArr[i]; +break; +} +} +if(_15e){ +_15e.callback(_15c); +} +} +}; +for(i in __notifArr){ +var _15f=__notifArr[i]; +__notifArr.splice(i,1); +__notifCount=__notifArr.length; +this.so.IDataSource.Cancel({TransactionID:_15f.connectionId}); +break; +} +var _160={}; +modifyObjectBaseProp(_160); +_160.Type="Log"; +_160.Filter={DelayTime:0}; +var _161=this.so.IDataSource.RequestNotification(_160,invoker_notification); +__notifArr[__notifCount++]=new __Notification(_161.TransactionID,_155); +if(_160){ +delete _160.Type; +} +if(_161.ErrorCode!=0){ +var _15d="operation failed"; +if(_161.ErrorMessage){ +_15d=splitErrorMessage(_161.ErrorMessage); +} +switch(MapErrorCode[_161.ErrorCode]){ +case error.INVALID_ARG_ERR: +case error.MISSING_ARG_ERR: +case error.NOT_SUPPORTED_ERR: +throw new DeviceException(MapErrorCode[_161.ErrorCode],"CommLog:setNotification:"+_15d); +break; +default: +if(_156){ +setTimeout(function(){ +_156(new DeviceException(MapErrorCode[_161.ErrorCode],"CommLog:setNotification:"+_15d)); +},1000); +}else{ +throw new DeviceException(MapErrorCode[_161.ErrorCode],"CommLog:setNotification:"+_15d); +} +} +} +}; +function __sp_commlog_cancelNotification(){ +for(i in __notifArr){ +if(__notifArr[i].connectionId){ +var _162=__notifArr[i]; +__notifArr.splice(i,1); +__notifCount=__notifArr.length; +break; +} +} +if(_162){ +var _163=this.so.IDataSource.Cancel({TransactionID:_162.connectionId}); +if(_163.ErrorCode!=0){ +var _164="operation failed"; +if(_163.ErrorMessage){ +_164=splitErrorMessage(_163.ErrorMessage); +} +} +} +}; +function __sp_commlog_cancel(_165){ +if(!_165){ +throw new DeviceException(error.MISSING_ARG_ERR,"CommLog:cancel:transactionId is missing"); +} +if(typeof _165!="number"){ +throw new DeviceException(error.INVALID_ARG_ERR,"CommLog:cancel:transactionId is invalid"); +} +var _166=this.so.IDataSource.Cancel({TransactionID:_165}); +if(_166.ErrorCode!=0){ +var _167="operation failed"; +if(_166.ErrorMessage){ +_167=splitErrorMessage(_166.ErrorMessage); +} +throw new DeviceException(MapErrorCode[_166.ErrorCode],"CommLog:cancel:"+_167); +} +}; +function __sp_commlog_deleteLogEntry(_168){ +if(_168==null||_168==undefined){ +throw new DeviceException(error.MISSING_ARG_ERR,"CommLog:deleteLogEntry:logId is missing"); +} +if(typeof _168!="number"){ +throw new DeviceException(error.INVALID_ARG_ERR,"CommLog:deleteLogEntry:logId is invalid"); +} +var _169={}; +modifyObjectBaseProp(_169); +_169.Type="Log"; +_169.Data={id:_168.toString()}; +modifyObjectBaseProp(_169.Data); +var _16a=this.so.IDataSource.Delete(_169); +if(_16a.ErrorCode!=0){ +var _16b="operation failed"; +if(_16a.ErrorMessage){ +_16b=splitErrorMessage(_16a.ErrorMessage); +} +throw new DeviceException(MapErrorCode[_16a.ErrorCode],"CommLog:deleteLogEntry:"+_16b); +} +}; +function __sp_commlog_instance(){ +this.descriptor=new __sp_commlog_descriptor(); +this.getList=__sp_commlog_getList; +this.setNotification=__sp_commlog_setNotification; +this.cancelNotification=__sp_commlog_cancelNotification; +this.cancel=__sp_commlog_cancel; +this.deleteLogEntry=__sp_commlog_deleteLogEntry; +try{ +this.so=device.getServiceObject("Service.Logging","IDataSource"); +} +catch(e){ +this.so=null; +__device_handle_exception(e,"commlog service not available"); +} +}; +nokia.device.contacts.SORT_ASCENDING=0; +nokia.device.contacts.SORT_DESCENDING=1; +var SORT_ASCENDING=0; +var SORT_DESCENDING=1; +function __sp_contacts_descriptor(){ +this.interfaceName="contacts"; +if(window.__Service_Interface_Ver){ +this.version=__Service_Interface_Ver; +}else{ +this.version=1; +} +}; +function __s60_enumerate_contact_object(_16c,_16d,func,_16f){ +try{ +var key; +for(key in _16c){ +var _171; +if(_16d){ +_171=_16d+"."+key; +}else{ +_171=key; +} +var _172=_16c[key]; +if(_172 instanceof Array){ +func(_171,_172,_16f); +}else{ +if(_172 instanceof Date){ +func(_171,_172,_16f); +}else{ +if(typeof _172=="object"){ +__s60_enumerate_contact_object(_172,_171,func,_16f); +}else{ +func(_171,_172,_16f); +} +} +} +} +} +catch(e){ +throw e; +} +}; +function __sp_contact_extract(name,_174,_175){ +switch(name){ +case "name.last": +_175.LastName={}; +modifyObjectBaseProp(_175.LastName); +_175.LastName.Label="Last name"; +_175.LastName.Value=_174; +break; +case "name.first": +_175.FirstName={}; +modifyObjectBaseProp(_175.FirstName); +_175.FirstName.Label="First name"; +_175.FirstName.Value=_174; +break; +case "name.middle": +_175.MiddleName={}; +modifyObjectBaseProp(_175.MiddleName); +_175.MiddleName.Label="Middle name"; +_175.MiddleName.Value=_174; +break; +case "name.prefix": +_175.Prefix={}; +modifyObjectBaseProp(_175.Prefix); +_175.Prefix.Label="Prefix"; +_175.Prefix.Value=_174; +break; +case "name.suffix": +_175.Suffix={}; +modifyObjectBaseProp(_175.Suffix); +_175.Suffix.Label="Suffix"; +_175.Suffix.Value=_174; +break; +case "tel.land": +_175.LandPhoneGen={}; +modifyObjectBaseProp(_175.LandPhoneGen); +_175.LandPhoneGen.Label="Landline"; +_175.LandPhoneGen.Value=_174; +break; +case "tel.mobile": +_175.MobilePhoneGen={}; +modifyObjectBaseProp(_175.MobilePhoneGen); +_175.MobilePhoneGen.Label="Mobile"; +_175.MobilePhoneGen.Value=_174; +break; +case "tel.video": +_175.VideoNumberGen={}; +modifyObjectBaseProp(_175.VideoNumberGen); +_175.VideoNumberGen.Label="Video"; +_175.VideoNumberGen.Value=_174; +break; +case "tel.fax": +_175.FaxNumberGen={}; +modifyObjectBaseProp(_175.FaxNumberGen); +_175.FaxNumberGen.Label="Fax"; +_175.FaxNumberGen.Value=_174; +break; +case "tel.voip": +_175.VOIPGen={}; +modifyObjectBaseProp(_175.VOIPGen); +_175.VOIPGen.Label="Voip"; +_175.VOIPGen.Value=_174; +break; +case "tel.home.land": +_175.LandPhoneHome={}; +modifyObjectBaseProp(_175.LandPhoneHome); +_175.LandPhoneHome.Label="Home Landline"; +_175.LandPhoneHome.Value=_174; +break; +case "tel.home.mobile": +_175.MobilePhoneHome={}; +modifyObjectBaseProp(_175.MobilePhoneHome); +_175.MobilePhoneHome.Label="Home Mobile"; +_175.MobilePhoneHome.Value=_174; +break; +case "tel.home.video": +_175.VideoNumberHome={}; +modifyObjectBaseProp(_175.VideoNumberHome); +_175.VideoNumberHome.Label="Home Video"; +_175.VideoNumberHome.Value=_174; +break; +case "tel.home.fax": +_175.FaxNumberHome={}; +modifyObjectBaseProp(_175.FaxNumberHome); +_175.FaxNumberHome.Label="Home Fax"; +_175.FaxNumberHome.Value=_174; +break; +case "tel.home.voip": +_175.VOIPHome={}; +modifyObjectBaseProp(_175.VOIPHome); +_175.VOIPHome.Label="Home Voip"; +_175.VOIPHome.Value=_174; +break; +case "tel.work.land": +_175.LandPhoneWork={}; +modifyObjectBaseProp(_175.LandPhoneWork); +_175.LandPhoneWork.Label="Work Landline"; +_175.LandPhoneWork.Value=_174; +break; +case "tel.work.mobile": +_175.MobilePhoneWork={}; +modifyObjectBaseProp(_175.MobilePhoneWork); +_175.MobilePhoneWork.Label="Work Mobile"; +_175.MobilePhoneWork.Value=_174; +break; +case "tel.work.video": +_175.VideoNumberWork={}; +modifyObjectBaseProp(_175.VideoNumberWork); +_175.VideoNumberWork.Label="Work Video"; +_175.VideoNumberWork.Value=_174; +break; +case "tel.work.fax": +_175.FaxNumberWork={}; +modifyObjectBaseProp(_175.FaxNumberWork); +_175.FaxNumberWork.Label="Work Fax"; +_175.FaxNumberWork.Value=_174; +break; +case "tel.work.voip": +_175.VOIPWork={}; +modifyObjectBaseProp(_175.VOIPWork); +_175.VOIPWork.Label="Work Voip"; +_175.VOIPWork.Value=_174; +break; +case "address.street": +_175.AddrStreetGen={}; +modifyObjectBaseProp(_175.AddrStreetGen); +_175.AddrStreetGen.Label="Street Address"; +_175.AddrStreetGen.Value=_174; +break; +case "address.local": +_175.AddrLocalGen={}; +modifyObjectBaseProp(_175.AddrLocalGen); +_175.AddrLocalGen.Label="City"; +_175.AddrLocalGen.Value=_174; +break; +case "address.region": +_175.AddrRegionGen={}; +modifyObjectBaseProp(_175.AddrRegionGen); +_175.AddrRegionGen.Label="State/Province"; +_175.AddrRegionGen.Value=_174; +break; +case "address.code": +_175.AddrPostCodeGen={}; +modifyObjectBaseProp(_175.AddrPostCodeGen); +_175.AddrPostCodeGen.Label="Postal code"; +_175.AddrPostCodeGen.Value=_174; +break; +case "address.country": +_175.AddrCountryGen={}; +modifyObjectBaseProp(_175.AddrCountryGen); +_175.AddrCountryGen.Label="Country"; +_175.AddrCountryGen.Value=_174; +break; +case "address.email": +_175.EmailGen={}; +modifyObjectBaseProp(_175.EmailGen); +_175.EmailGen.Label="EMail"; +_175.EmailGen.Value=_174; +break; +case "address.uri": +_175.URLGen={}; +modifyObjectBaseProp(_175.URLGen); +_175.URLGen.Label="Website"; +_175.URLGen.Value=_174; +break; +case "address.home.street": +_175.AddrStreetHome={}; +modifyObjectBaseProp(_175.AddrStreetHome); +_175.AddrStreetHome.Label="Home Address"; +_175.AddrStreetHome.Value=_174; +break; +case "address.home.local": +_175.AddrLocalHome={}; +modifyObjectBaseProp(_175.AddrLocalHome); +_175.AddrLocalHome.Label="City"; +_175.AddrLocalHome.Value=_174; +break; +case "address.home.region": +_175.AddrRegionHome={}; +modifyObjectBaseProp(_175.AddrRegionHome); +_175.AddrRegionHome.Label="State/Province"; +_175.AddrRegionHome.Value=_174; +break; +case "address.home.code": +_175.AddrPostCodeHome={}; +modifyObjectBaseProp(_175.AddrPostCodeHome); +_175.AddrPostCodeHome.Label="Postal code"; +_175.AddrPostCodeHome.Value=_174; +break; +case "address.home.country": +_175.AddrCountryHome={}; +modifyObjectBaseProp(_175.AddrCountryHome); +_175.AddrCountryHome.Label="Country"; +_175.AddrCountryHome.Value=_174; +break; +case "address.home.email": +_175.EmailHome={}; +modifyObjectBaseProp(_175.EmailHome); +_175.EmailHome.Label="Home EMail"; +_175.EmailHome.Value=_174; +break; +case "address.home.uri": +_175.URLHome={}; +modifyObjectBaseProp(_175.URLHome); +_175.URLHome.Label="Home Website"; +_175.URLHome.Value=_174; +break; +case "address.work.street": +_175.AddrStreetWork={}; +modifyObjectBaseProp(_175.AddrStreetWork); +_175.AddrStreetWork.Label="Work Address"; +_175.AddrStreetWork.Value=_174; +break; +case "address.work.local": +_175.AddrLocalWork={}; +modifyObjectBaseProp(_175.AddrLocalWork); +_175.AddrLocalWork.Label="City"; +_175.AddrLocalWork.Value=_174; +break; +case "address.work.region": +_175.AddrRegionWork={}; +modifyObjectBaseProp(_175.AddrRegionWork); +_175.AddrRegionWork.Label="State/Province"; +_175.AddrRegionWork.Value=_174; +break; +case "address.work.code": +_175.AddrPostCodeWork={}; +modifyObjectBaseProp(_175.AddrPostCodeWork); +_175.AddrPostCodeWork.Label="Postal code"; +_175.AddrPostCodeWork.Value=_174; +break; +case "address.work.country": +_175.AddrCountryWork={}; +modifyObjectBaseProp(_175.AddrCountryWork); +_175.AddrCountryWork.Label="Country"; +_175.AddrCountryWork.Value=_174; +break; +case "address.work.email": +_175.EmailWork={}; +modifyObjectBaseProp(_175.EmailWork); +_175.EmailWork.Label="Work EMail"; +_175.EmailWork.Value=_174; +break; +case "address.work.uri": +_175.URLWork={}; +modifyObjectBaseProp(_175.URLWork); +_175.URLWork.Label="Work Website"; +_175.URLWork.Value=_174; +break; +case "company.name": +_175.CompanyName={}; +modifyObjectBaseProp(_175.CompanyName); +_175.CompanyName.Label="Company"; +_175.CompanyName.Value=_174; +break; +case "company.title": +_175.JobTitle={}; +modifyObjectBaseProp(_175.JobTitle); +_175.JobTitle.Label="Title"; +_175.JobTitle.Value=_174; +break; +case "id": +_175.id=_174; +break; +case "notes": +_175.Note={}; +modifyObjectBaseProp(_175.Note); +_175.Note.Label="Note"; +_175.Note.Value=_174; +break; +case "anniversary": +_175.Anniversary={}; +modifyObjectBaseProp(_175.Anniversary); +_175.Anniversary.Label="Anniversary"; +_175.Anniversary.Value=_174; +break; +case "birthday": +_175.Date={}; +modifyObjectBaseProp(_175.Date); +_175.Date.Label="BirthDay"; +_175.Date.Value=_174; +break; +case "nickName": +_175.SecondName={}; +modifyObjectBaseProp(_175.SecondName); +_175.SecondName.Label="NickName"; +_175.SecondName.Value=_174; +break; +case "photo": +_175.CallerObjImg={}; +modifyObjectBaseProp(_175.CallerObjImg); +_175.CallerObjImg.Label="CallerObjImg"; +_175.CallerObjImg.Value=_174; +break; +case "xspid": +_175.IMPP={}; +modifyObjectBaseProp(_175.IMPP); +_175.IMPP.Label="IMPP"; +_175.IMPP.Value=_174; +break; +} +}; +function __s60_enumerate_build_contact_object(_176,_177,func,_179){ +var key; +for(key in _176){ +var _17b; +if(_177){ +_17b=_177+"."+key; +}else{ +_17b=key; +} +var _17c=_176[key]; +if(_17b=="IMPP"){ +func(_17b,_17c,_179); +} +if(typeof _17c=="object"){ +__s60_enumerate_build_contact_object(_17c,_17b,func,_179); +}else{ +func(_17b,_17c,_179); +} +} +}; +function __sp_device_contact_extract(name,_17e,_17f){ +if(name=="id"){ +_17f.id=_17e; +return; +} +if(!name.match(".Value")){ +return; +} +try{ +if(name.match("IMPP.Value.0")){ +_17f.xspid=[]; +} +if(name.match("Name")){ +if(name.match("CompanyName")){ +if(!_17f.company){ +_17f.company={}; +} +}else{ +if(!_17f.name){ +_17f.name={}; +} +} +}else{ +if(name.match("Phone")||name.match("Number")||name.match("VOIP")||name.match("Voip")){ +if(!_17f.tel){ +_17f.tel={}; +} +if(name.match("Home")){ +if(!_17f.tel.home){ +_17f.tel.home={}; +} +}else{ +if(name.match("Work")){ +if(!_17f.tel.work){ +_17f.tel.work={}; +} +} +} +}else{ +if(name.match("Addr")||name.match("Email")||name.match("URL")){ +if(!_17f.address){ +_17f.address={}; +} +if(name.match("Home")){ +if(!_17f.address.home){ +_17f.address.home={}; +} +}else{ +if(name.match("Work")){ +if(!_17f.address.work){ +_17f.address.work={}; +} +} +} +}else{ +if(name.match("JobTitle")){ +if(!_17f.company){ +_17f.company={}; +} +} +} +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_device_contact_extract: "+e); +} +if(name.match("IMPP.Value")){ +var _180=name.split("."); +var _181=_180[2]; +if(_181!=undefined){ +_17f.xspid[_180[2]]=_17e; +return; +} +} +switch(name){ +case "LastName.Value": +_17f.name.last=_17e; +break; +case "FirstName.Value": +_17f.name.first=_17e; +break; +case "MiddleName.Value": +_17f.name.middle=_17e; +break; +case "Prefix.Value": +_17f.name.prefix=_17e; +break; +case "Suffix.Value": +_17f.name.suffix=_17e; +break; +case "LandPhoneGen.Value": +_17f.tel.land=_17e; +break; +case "MobilePhoneGen.Value": +_17f.tel.mobile=_17e; +break; +case "VideoNumberGen.Value": +_17f.tel.video=_17e; +break; +case "FaxNumberGen.Value": +_17f.tel.fax=_17e; +break; +case "VOIPGen.Value": +_17f.tel.voip=_17e; +break; +case "LandPhoneHome.Value": +_17f.tel.home.land=_17e; +break; +case "MobilePhoneHome.Value": +_17f.tel.home.mobile=_17e; +break; +case "VideoNumberHome.Value": +_17f.tel.home.video=_17e; +break; +case "FaxNumberHome.Value": +_17f.tel.home.fax=_17e; +break; +case "VoipHome.Value": +_17f.tel.home.voip=_17e; +break; +case "LandPhoneWork.Value": +_17f.tel.work.land=_17e; +break; +case "MobilePhoneWork.Value": +_17f.tel.work.mobile=_17e; +break; +case "VideoNumberWork.Value": +_17f.tel.work.video=_17e; +break; +case "FaxNumberWork.Value": +_17f.tel.work.fax=_17e; +break; +case "VoipWork.Value": +_17f.tel.work.voip=_17e; +break; +case "AddrStreetGen.Value": +_17f.address.street=_17e; +break; +case "AddrLocalGen.Value": +_17f.address.local=_17e; +break; +case "AddrRegionGen.Value": +_17f.address.region=_17e; +break; +case "AddrPostCodeGen.Value": +_17f.address.code=_17e; +break; +case "AddrCountryGen.Value": +_17f.address.country=_17e; +break; +case "EmailGen.Value": +_17f.address.email=_17e; +break; +case "URLGen.Value": +_17f.address.uri=_17e; +break; +case "AddrStreetHome.Value": +_17f.address.home.street=_17e; +break; +case "AddrLocalHome.Value": +_17f.address.home.local=_17e; +break; +case "AddrRegionHome.Value": +_17f.address.home.region=_17e; +break; +case "AddrPostCodeHome.Value": +_17f.address.home.code=_17e; +break; +case "AddrCountryHome.Value": +_17f.address.home.country=_17e; +break; +case "EmailHome.Value": +_17f.address.home.email=_17e; +break; +case "URLHome.Value": +_17f.address.home.uri=_17e; +break; +case "AddrStreetWork.Value": +_17f.address.work.street=_17e; +break; +case "AddrLocalWork.Value": +_17f.address.work.local=_17e; +break; +case "AddrRegionWork.Value": +_17f.address.work.region=_17e; +break; +case "AddrPostCodeWork.Value": +_17f.address.work.code=_17e; +break; +case "AddrCountryWork.Value": +_17f.address.work.country=_17e; +break; +case "EmailWork.Value": +_17f.address.work.email=_17e; +break; +case "URLWork.Value": +_17f.address.work.uri=_17e; +break; +case "CompanyName.Value": +_17f.company.name=_17e; +break; +case "JobTitle.Value": +_17f.company.title=_17e; +break; +case "Note.Value": +_17f.notes=_17e; +break; +case "Anniversary.Value": +_17f.anniversary=_17e; +break; +case "Date.Value": +_17f.birthday=_17e; +break; +case "SecondName.Value": +_17f.nickName=_17e; +break; +case "CallerObjImg.Value": +_17f.photo=_17e; +break; +default: +} +}; +function __sp_device_contact_build(_182,_183){ +__s60_enumerate_build_contact_object(_182,null,__sp_device_contact_extract,_183); +}; +function __sp_contact_iterator_get_next(){ +var _184=this.iter.getNext(); +if(typeof _184=="undefined"){ +return null; +} +var rval={}; +__sp_device_contact_build(_184,rval); +_184.close(); +return rval; +}; +function __sp_contact_iterator(_186){ +this.iter=_186; +this.next=__sp_contact_iterator_get_next; +}; +function __s60_enumerate_group_object(_187,func,_189){ +var key; +for(key in _187){ +var _18b=key; +var _18c=_187[key]; +func(_18b,_18c,_189); +} +}; +function __sp_device_groupinfo_extract(name,_18e,_18f){ +if(_18f.group==undefined){ +_18f.group={}; +} +if(name=="id"){ +_18f.group.groupId=_18e; +}else{ +if(name=="GroupLabel"){ +_18f.group.groupName=_18e; +}else{ +if(name=="Contents"){ +_18f.contents=_18e; +} +} +} +return; +}; +function __sp_device_groupinfo_build(_190,_191){ +__s60_enumerate_group_object(_190,__sp_device_groupinfo_extract,_191); +}; +function __sp_device_group_extract(name,_193,_194){ +if(name=="id"){ +_194.groupId=_193; +return; +} +if(name=="GroupLabel"){ +_194.groupName=_193; +return; +} +}; +function __sp_device_group_build(_195,_196){ +__s60_enumerate_object(_195,null,__sp_device_group_extract,_196); +}; +function __sp_group_iterator_get_next(){ +var _197=this.iter.getNext(); +if(typeof _197=="undefined"){ +return null; +} +var rval={}; +__sp_device_group_build(_197,rval); +_197.close(); +return rval; +}; +function __sp_group_iterator(_199){ +this.iter=_199; +this.next=__sp_group_iterator_get_next; +}; +var CONTACTS_APP_ID=270486734; +function __sp_contacts_startEditor(_19a,_19b,_19c){ +if(!_19a){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: StartEditor:Missing Success Callback"); +} +if((typeof _19a)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: StartEditor:Invalid Success Callback"); +} +if((_19b)==null){ +_19b={}; +} +if((typeof _19b)=="undefined"){ +_19b={}; +} +if((_19b)==undefined){ +_19b={}; +} +if((typeof _19b)!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: StartEditor:Invalid Contact Data"); +} +if(_19c){ +if((typeof _19c)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts :StartEditor:Invalid Error Callback"); +} +} +var _19d=function(arg1,arg2,arg3){ +var iter=null; +_19a(iter); +}; +__s60_start_and_wait(CONTACTS_APP_ID,"",_19d); +return 0; +}; +function __sp_contacts_getContacts(_1a2,_1a3,_1a4,_1a5){ +var _1a6={}; +modifyObjectBaseProp(_1a6); +_1a6.Type="Contact"; +if(_1a3){ +_1a6.Filter={}; +modifyObjectBaseProp(_1a6.Filter); +_1a6.Filter.SearchVal=_1a3; +} +if(_1a4){ +_1a6.Sort={}; +modifyObjectBaseProp(_1a6.Sort); +if(typeof _1a4=="number"){ +if(_1a4==SORT_ASCENDING||_1a4==SORT_ASCENDING){ +_1a6.Sort.Order="Ascending"; +}else{ +if(_1a4==SORT_DESCENDING||_1a4==SORT_DESCENDING){ +_1a6.Sort.Order="Descending"; +}else{ +_1a6.Sort.Order=_1a4; +} +} +}else{ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getContacts: callback is invalid"); +} +} +try{ +if(!_1a2){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: getContacts: callback is missing"); +}else{ +if(typeof _1a2!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getContacts: callback is invalid"); +} +} +if(_1a5){ +if(typeof (_1a5)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getContacts: ErrorCallback is invalid"); +} +} +var _1a7=function(arg1,arg2,arg3){ +var iter=null; +var _1ac=_1a5; +if(arg3.ReturnValue){ +iter=new __sp_contact_iterator(arg3.ReturnValue); +}else{ +if(arg3.ErrorCode!=0){ +var _1ad; +if(arg3.ErrorMessage){ +_1ad=splitErrorMessage(arg3.ErrorMessage); +}else{ +_1ad="Operation Failed"; +} +_1ac(new DeviceException(MapErrorCode[arg3.ErrorCode],"Contacts: getContacts: "+_1ad)); +return; +} +} +_1a2(iter); +}; +var rval=this.so.IDataSource.GetList(_1a6,_1a7); +if(_1a6.Sort){ +delete _1a6.Sort.Order; +} +if(_1a6.Filter){ +delete _1a6.Filter.SearchVal; +} +if(_1a6){ +delete _1a6.Type; +delete _1a6.Filter; +delete _1a6.Sort; +} +if(rval.ErrorCode!=0){ +var _1af=mappingVerification(rval.ErrorCode); +if(_1af){ +switch(MapErrorCode[rval.ErrorCode]){ +case MISSING_ARG_ERR: +case INVALID_ARG_ERR: +case NOT_SUPPORTED_ERR: +if(rval.ErrorMessage){ +var _1b0=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts: "); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContacts:Operation Failed"); +} +break; +default: +_1a2(iter); +} +}else{ +_1a2(iter); +} +} +return rval.TransactionID; +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_getContacts: "+e); +} +}; +function __sp_contacts_add(_1b1){ +var _1b2={}; +modifyObjectBaseProp(_1b2); +__s60_enumerate_contact_object(_1b1,null,__sp_contact_extract,_1b2); +var _1b3={}; +modifyObjectBaseProp(_1b3); +_1b3.Type="Contact"; +_1b3.Data=_1b2; +try{ +if(_1b2.id){ +throw new DeviceException(NOT_SUPPORTED_ERR,"Contacts: addContact: Id Not Supported"); +} +var _1b4=this.so.IDataSource.Add(_1b3); +if(_1b2){ +delete _1b2.id; +} +if(_1b3){ +delete _1b3.Type; +delete _1b3.Data; +} +var _1b5=_1b4["ReturnValue"]; +if(_1b4.ErrorCode!=0){ +var _1b6=mappingVerification(_1b4.ErrorCode); +if(_1b4.ErrorMessage){ +var _1b7=splitErrorMessage(_1b4.ErrorMessage); +if(_1b6){ +throw new DeviceException(MapErrorCode[_1b4.ErrorCode],"Contacts: addContact: "+_1b7); +}else{ +throw new DeviceException(_1b4.ErrorCode,"Contacts: addContact: "+_1b7); +} +}else{ +if(_1b6){ +throw new DeviceException(MapErrorCode[_1b4.ErrorCode],"Contacts: addContact: Operation Failed"); +}else{ +throw new DeviceException(_1b4.ErrorCode,"Contacts: addContact: Operation Failed"); +} +} +} +return _1b5; +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_addContact: "+e); +} +}; +function __sp_contacts_update(_1b8){ +try{ +if(!(_1b8&&_1b8.id)){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: updateContact: contact is missing"); +} +var _1b9={}; +modifyObjectBaseProp(_1b9); +__s60_enumerate_contact_object(_1b8,null,__sp_contact_extract,_1b9); +if(typeof _1b9.id!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: updateContact: Invalid id type"); +} +if(_1b9.id==undefined){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: updateContact: Invalid id type"); +} +var _1ba={}; +modifyObjectBaseProp(_1ba); +_1ba.Type="Contact"; +_1ba.Data=_1b9; +var _1bb=this.so.IDataSource.Add(_1ba); +if(_1b9){ +delete _1b9.id; +} +if(_1ba){ +delete _1ba.Type; +delete _1ba.Data; +} +if(_1bb.ErrorCode!=0){ +var _1bc=mappingVerification(_1bb.ErrorCode); +if(_1bb.ErrorMessage){ +var _1bd=splitErrorMessage(_1bb.ErrorMessage); +if(_1bc){ +throw new DeviceException(MapErrorCode[_1bb.ErrorCode],"Contacts: updateContact: "+_1bd); +}else{ +throw new DeviceException(_1bb.ErrorCode,"Contacts: updateContact: "+_1bd); +} +}else{ +if(_1bc){ +throw new DeviceException(MapErrorCode[_1bb.ErrorCode],"Contacts: updateContact: Operation Failed"); +}else{ +throw new DeviceException(_1bb.ErrorCode,"Contacts: updateContact: Operation Failed"); +} +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_updateContact: "+e); +} +}; +function __sp_contacts_delete(id){ +__device_debug("sp_contacts_delete id: "+id); +var _1bf={}; +modifyObjectBaseProp(_1bf); +if(id==undefined){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: deleteContacts: idlist is missing"); +} +if(typeof id=="object"){ +_1bf.IdList=id; +}else{ +_1bf.IdList=[]; +_1bf.IdList[0]=id; +} +var _1c0={}; +modifyObjectBaseProp(_1c0); +_1c0.Type="Contact"; +_1c0.Data=_1bf; +try{ +var _1c1=this.so.IDataSource.Delete(_1c0); +if(_1bf){ +delete _1bf.IdList; +} +if(_1c0){ +delete _1c0.Type; +delete _1c0.Data; +} +if(_1c1.ErrorCode!=0){ +var _1c2=mappingVerification(_1c1.ErrorCode); +if(_1c1.ErrorMessage){ +var _1c3=splitErrorMessage(_1c1.ErrorMessage); +if(_1c2){ +throw new DeviceException(MapErrorCode[_1c1.ErrorCode],"Contacts: deleteContacts: "+_1c3); +}else{ +throw new DeviceException(_1c1.ErrorCode,"Contacts: deleteContacts: "+_1c3); +} +}else{ +if(_1c2){ +throw new DeviceException(MapErrorCode[_1c1.ErrorCode],"Contacts: deleteContacts: Operation Failed"); +}else{ +throw new DeviceException(_1c1.ErrorCode,"Contacts: deleteContacts: Operation Failed"); +} +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_deleteContacts: "+e); +} +}; +function __sp_contacts_get(id){ +var _1c5={}; +modifyObjectBaseProp(_1c5); +_1c5.Type="Contact"; +if(id==null){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: getContactInfo: callback is missing"); +} +_1c5.Filter={}; +modifyObjectBaseProp(_1c5.Filter); +_1c5.Filter.id=id; +try{ +var rval=this.so.IDataSource.GetList(_1c5); +if(_1c5.Filter){ +delete _1c5.Filter.id; +} +if(_1c5){ +delete _1c5.Type; +delete _1c5.Filter; +} +if(rval){ +if(rval.ErrorCode!=0){ +var _1c7=mappingVerification(rval.ErrorCode); +if(rval.ErrorMessage){ +var _1c8=splitErrorMessage(rval.ErrorMessage); +if(_1c7){ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactInfo: "+_1c8); +}else{ +throw new DeviceException(rval.ErrorCode,"Contacts: getContactInfo: "+_1c8); +} +}else{ +if(_1c7){ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactInfo: Operation Failed"); +}else{ +throw new DeviceException(rval.ErrorCode,"Contacts: getContactInfo: Operation Failed"); +} +} +} +var _1c9={}; +modifyObjectBaseProp(_1c9); +var _1ca=rval.ReturnValue.getNext(); +__sp_device_contact_build(_1ca,_1c9); +return _1c9; +} +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_getContactInfo:"+e); +} +}; +function __sp_contacts_addGroup(_1cb){ +var _1cc={}; +modifyObjectBaseProp(_1cc); +_1cc.GroupLabel=_1cb; +if(typeof (_1cc.GroupLabel)==null){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: addGroups: callback is missing"); +} +if((typeof _1cc.GroupLabel)=="undefined"){ +throw new DeviceException(MISSING_ARG_ERR,"addGroup:Group Data Needed"); +} +if((_1cc.GroupLabel)==undefined){ +throw new DeviceException(MISSING_ARG_ERR,"addGroup:Group Data Needed"); +} +var _1cd={}; +modifyObjectBaseProp(_1cd); +_1cd.Type="Group"; +_1cd.Data=_1cc; +try{ +var _1ce=this.so.IDataSource.Add(_1cd); +if(_1cc){ +delete _1cc.GroupLabel; +} +if(_1cd){ +delete _1cd.Type; +delete _1cd.Data; +} +var _1cf=_1ce["ReturnValue"]; +if(_1ce.ErrorCode!=0){ +var _1d0=mappingVerification(_1ce.ErrorCode); +if(_1ce.ErrorMessage){ +var _1d1=splitErrorMessage(_1ce.ErrorMessage); +if(_1d0){ +throw new DeviceException(MapErrorCode[_1ce.ErrorCode],"Contacts: addGroup: "+_1d1); +}else{ +throw new DeviceException(_1d1,_1ce.ErrorCode,"Contacts: addGroup: "); +} +}else{ +if(_1d0){ +throw new DeviceException(MapErrorCode[_1ce.ErrorCode],"Contacts: addGroup: Operation Failed"); +}else{ +throw new DeviceException(_1ce.ErrorCode,"Contacts: addGroup: Operation Failed"); +} +} +} +return _1cf; +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_addGroup: "+e); +} +}; +function __sp_contacts_getGroups(_1d2,_1d3){ +var _1d4={}; +modifyObjectBaseProp(_1d4); +_1d4.Type="Group"; +try{ +if(!_1d2){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: getGroups: callback is missing"); +}else{ +if(typeof _1d2!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getGroups: callback is invalid"); +} +} +if(_1d3){ +if(typeof (_1d3)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getGroups: ErrorCallback is invalid"); +} +} +var _1d5=function(arg1,arg2,arg3){ +var iter=null; +var _1da=_1d3; +iter=arg3.ReturnValue; +if(arg3.ReturnValue){ +iter=new __sp_group_iterator(arg3.ReturnValue); +}else{ +if(arg3.ErrorCode!=0){ +var _1db; +if(arg3.ErrorMessage){ +_1db=splitErrorMessage(arg3.ErrorMessage); +}else{ +_1db="Operation Failed"; +} +_1da(new DeviceException(_1db,MapErrorCode[arg3.ErrorCode],"Contacts: getGroups:")); +return; +} +} +_1d2(iter); +}; +var rval=this.so.IDataSource.GetList(_1d4,_1d5); +if(_1d4){ +delete _1d4.Type; +} +if(rval.ErrorCode!=0){ +var _1dd=mappingVerification(result.ErrorCode); +if(_1dd){ +switch(MapErrorCode[rval.ErrorCode]){ +case MISSING_ARG_ERR: +case INVALID_ARG_ERR: +case NOT_SUPPORTED_ERR: +if(rval.ErrorMessage){ +var _1de=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroups: "+_1de); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroups: Operation Failed"); +} +break; +default: +_1d2(iter); +} +}else{ +_1d2(iter); +} +} +return rval.TransactionID; +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_getGroups: "+e); +} +}; +function __sp_contacts_deleteGroups(id){ +var _1e0={}; +modifyObjectBaseProp(_1e0); +var _1e1=[]; +if(typeof id=="object"){ +var i=0; +for(var val in id){ +_1e1[i]=id[val]; +i++; +} +}else{ +_1e1[0]=id; +} +_1e0.IdList=[]; +_1e0.IdList=_1e1; +var _1e4={}; +modifyObjectBaseProp(_1e4); +_1e4.Type="Group"; +_1e4.Data=_1e0; +try{ +var _1e5=this.so.IDataSource.Delete(_1e4); +if(_1e5.ErrorCode!=0){ +var _1e6=mappingVerification(_1e5.ErrorCode); +if(_1e5.ErrorMessage){ +var _1e7=splitErrorMessage(_1e5.ErrorMessage); +if(_1e6){ +throw new DeviceException(MapErrorCode[_1e5.ErrorCode],"Contacts: deleteGroups: "+_1e7); +}else{ +throw new DeviceException(_1e5.ErrorCode,"Contacts: deleteGroups: "+_1e7); +} +}else{ +if(_1e6){ +throw new DeviceException(MapErrorCode[_1e5.ErrorCode],"Contacts: deleteGroups: Operation Failed"); +}else{ +throw new DeviceException(_1e5.ErrorCode,"Contacts: deleteGroups: Operation Failed"); +} +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_deleteGroups: "+e); +} +}; +function __sp_contacts_addContactsToGroup(_1e8,id1){ +try{ +var _1ea={}; +modifyObjectBaseProp(_1ea); +var _1eb=false; +_1ea.Type="Group"; +var map={}; +modifyObjectBaseProp(map); +var _1ed=[]; +if(typeof id1=="object"){ +var i=0; +for(var val in id1){ +_1ed[i]=id1[val]; +i++; +} +}else{ +_1ed[0]=id1; +} +map.IdList=_1ed; +_1eb=true; +delete _1ed.index; +if(_1e8!=undefined){ +map.id=_1e8; +_1eb=true; +} +if(_1eb){ +_1ea.Data=map; +} +_1ea.OperationType="Associate"; +var _1f0=this.so.IDataSource.Organise(_1ea); +if(map){ +delete map.id; +delete map.IdList; +} +if(_1ea){ +delete _1ea.Data; +delete _1ea.OperationType; +delete _1ea.Type; +} +if(_1f0.ErrorCode!=0){ +var _1f1=mappingVerification(_1f0.ErrorCode); +if(_1f0.ErrorMessage){ +var _1f2=splitErrorMessage(_1f0.ErrorMessage); +if(_1f1){ +throw new DeviceException(MapErrorCode[_1f0.ErrorCode],"Contacts: addContactsToGroup: "+_1f2); +}else{ +throw new DeviceException(_1f0.ErrorCode,"Contacts: addContactsToGroup: "+_1f2); +} +}else{ +if(_1f1){ +throw new DeviceException(MapErrorCode[_1f0.ErrorCode],"Contacts: addContactsToGroup: Operation Failed"); +}else{ +throw new DeviceException(_1f0.ErrorCode,"Contacts: addContactsToGroup: Operation Failed"); +} +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_addContactsToGroup: "+e); +} +}; +function __sp_contacts_getContactIds(_1f3,_1f4,_1f5,_1f6){ +var _1f7={}; +var _1f8=_1f6; +modifyObjectBaseProp(_1f7); +_1f7.Type="Contact"; +if(_1f4){ +_1f7.Filter={}; +modifyObjectBaseProp(_1f7.Filter); +_1f7.Filter.SearchVal=_1f4; +} +if(_1f5){ +_1f7.Sort={}; +modifyObjectBaseProp(_1f7.Sort); +if(typeof _1f5=="number"){ +if(_1f5==SORT_ASCENDING){ +_1f7.Sort.Order="Ascending"; +}else{ +if(_1f5==SORT_DESCENDING){ +_1f7.Sort.Order="Descending"; +}else{ +_1f7.Sort.Order=_1f5; +} +} +}else{ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getContactIds: callback is missing"); +} +} +try{ +if(!_1f3){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: getContactIds: callback is missing"); +}else{ +if(typeof _1f3!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getContactIds: callback is invalid"); +} +} +if(_1f6){ +if(typeof (_1f6)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getContactIds: ErrorCallback is invalid"); +} +} +var _1f9=function(arg1,arg2,arg3){ +var item=null; +var _1fe=null; +var _1ff=_1f6; +var id=null; +if(arg3["ReturnValue"]!=undefined){ +item=arg3["ReturnValue"]; +id=item["IdList"]; +_1fe=[]; +_1fe=id; +delete _1fe.index; +}else{ +if(arg3.ErrorCode!=0){ +var _201; +if(arg3.ErrorMessage){ +_201=splitErrorMessage(arg3.ErrorMessage); +}else{ +_201="Operation Failed"; +} +_1ff(new DeviceException(MapErrorCode[arg3.ErrorCode],"Contacts: getContactIds:"+_201)); +return; +} +} +_1f3(_1fe); +}; +var rval=this.so.IDataSource.GetIds(_1f7,_1f9); +if(rval.ErrorCode!=0){ +var _203=mappingVerification(rval.ErrorCode); +if(_203){ +switch(MapErrorCode[rval.ErrorCode]){ +case MISSING_ARG_ERR: +case INVALID_ARG_ERR: +case NOT_SUPPORTED_ERR: +if(rval.ErrorMessage){ +var _204=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds: "+_204); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getContactIds: Operation Failed"); +} +break; +default: +_1f3(idList); +} +}else{ +_1f3(idList); +} +} +return rval.TransactionID; +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_getContactIds: "+e); +} +}; +function __sp_contacts_getGroupIds(_205,_206){ +var _207={}; +modifyObjectBaseProp(_207); +_207.Type="Group"; +try{ +if(!_205){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: getGroupIds: callback is missing"); +}else{ +if(typeof _205!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getGroupIds: callback is invalid"); +} +} +if(_206){ +if(typeof (_206)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getGroupIds: ErrorCallback is invalid"); +} +} +var _208=function(arg1,arg2,arg3){ +var _20c=_206; +var item=null; +var _20e=[]; +if(arg3.ReturnValue){ +item=arg3["ReturnValue"]; +arg3.ReturnValue.close(); +var id=item["IdList"]; +_20e=id; +}else{ +if(arg3.ErrorCode!=0){ +var _210; +if(rval.ErrorMessage){ +_210=splitErrorMessage(rval.ErrorMessage); +}else{ +_210="Operation Failed"; +} +_20c(new DeviceException(MapErrorCode[arg3.ErrorCode],"Contacts: getGroupIds:"+_210)); +return; +} +} +_205(_20e); +delete _20e.index; +}; +var rval=this.so.IDataSource.GetIds(_207,_208); +if(_207){ +delete _207.Type; +} +if(rval.ErrorCode!=0){ +var _212=mappingVerification(rval.ErrorCode); +if(_212){ +switch(rval.ErrorCode){ +case MISSING_ARG_ERR: +case INVALID_ARG_ERR: +case NOT_SUPPORTED_ERR: +if(rval.ErrorMessage){ +var _213=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupIds: "+_213); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupIds: Operation Failed"); +} +break; +default: +_205(idList); +} +}else{ +_205(idList); +} +} +return rval.TransactionID; +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_getGroupIds: "+e); +} +}; +function __sp_contacts_removeContactsFromGroup(_214,id){ +try{ +var _216={}; +modifyObjectBaseProp(_216); +var _217=false; +_216.Type="Group"; +var map={}; +if(id!=undefined){ +var _219=[]; +if(typeof id=="object"){ +var i=0; +for(var val in id){ +_219[i]=id[val]; +i++; +} +}else{ +_219[0]=id; +} +map.IdList=_219; +_217=true; +} +if(_214!=undefined){ +map.id=_214; +_217=true; +} +if(_217){ +_216.Data=map; +} +_216.OperationType="Disassociate"; +var _21c=this.so.IDataSource.Organise(_216); +if(map){ +delete map.IdList; +} +if(_216){ +delete _216.Data; +delete _216.OperationType; +delete _216.Type; +} +if(_21c.ErrorCode!=0){ +var _21d=mappingVerification(_21c.ErrorCode); +if(_21c.ErrorMessage){ +var _21e=splitErrorMessage(_21c.ErrorMessage); +if(_21d){ +throw new DeviceException(MapErrorCode[_21c.ErrorCode],"Contacts: removeContactsFromGroup: "+_21e); +}else{ +throw new DeviceException(_21c.ErrorCode,"Contacts: removeContactsFromGroup: "+_21e); +} +}else{ +if(_21d){ +throw new DeviceException(MapErrorCode[_21c.ErrorCode],"Contacts: removeContactsFromGroup: Operation Failed"); +}else{ +throw new DeviceException(_21c.ErrorCode,"Contacts: removeContactsFromGroup: Operation Failed"); +} +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_removeContactsFromGroup: "+e); +} +}; +function __sp_contacts_cancel(_21f){ +try{ +var _220={}; +if((_21f)==null){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: cancel: "+_221); +} +if((_21f)==undefined){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: cancel: "+_221); +} +if((typeof _21f)=="undefined"){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: cancel: "+_221); +} +if(((typeof _21f)!="number")||(_21f<=0)){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: cancel: "+_221); +} +modifyObjectBaseProp(_220); +_220.TransactionID=_21f; +var _222=this.so.IDataSource.Cancel(_220); +if(_220){ +delete _220.TransactionID; +} +var _223=_222["ErrorCode"]; +if(_223!=0){ +var _224=mappingVerification(_222.ErrorCode); +if(_222["ErrorMessage"]){ +var _221=splitErrorMessage(_222.ErrorMessage); +if(_224){ +throw new DeviceException(MapErrorCode[_223],"Contacts: cancel: "+_221); +}else{ +throw new DeviceException(_223,"Contacts: cancel: "+_221); +} +}else{ +if(_224){ +throw new DeviceException(MapErrorCode[_223],"Contacts: cancel: Operation Failed"); +}else{ +throw new DeviceException(_223,"Contacts: cancel: Operation Failed"); +} +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_cancel: "+e); +} +}; +function __sp_contacts_updateGroup(_225){ +if(!(_225)){ +throw new DeviceException(MISSING_ARG_ERR,"updateGroup:Invalid Group Data"); +} +if((typeof _225)!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"updateGroup:Invalid Group Data"); +} +try{ +var _226={}; +modifyObjectBaseProp(_226); +_226.Type="Group"; +var _227={}; +modifyObjectBaseProp(_227); +if(_225!=undefined){ +if(_225.groupId!=undefined){ +_227["id"]=_225.groupId; +}else{ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: updateGroup: Id input is mandatory"); +} +if(_225.groupName!=undefined){ +_227["GroupLabel"]=_225.groupName; +} +} +_226.Data=_227; +var _228=this.so.IDataSource.Add(_226); +if(_227){ +delete _227.prototype; +} +if(_226){ +delete _226.Data; +delete _226.Type; +} +if(_228.ErrorCode!=0){ +var _229=mappingVerification(_228.ErrorCode); +if(_228.ErrorMessage){ +var _22a=splitErrorMessage(_228.ErrorMessage); +if(_229){ +throw new DeviceException(MapErrorCode[_228.ErrorCode],"Contacts: updateGroup: "+_22a); +}else{ +throw new DeviceException(_228.ErrorCode,"Contacts: updateGroup: "+_22a); +} +}else{ +if(_229){ +throw new DeviceException(MapErrorCode[_228.ErrorCode],"Contacts: updateGroup: Operation Failed"); +}else{ +throw new DeviceException(_228.ErrorCode,"Contacts: updateGroup: Operation Failed"); +} +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_updateGroup: "+e); +} +}; +function __sp_contacts_getGroupInfo(_22b){ +try{ +var _22c={}; +modifyObjectBaseProp(_22c); +_22c.Type="Group"; +_22c.Filter={}; +modifyObjectBaseProp(_22c.Filter); +if(_22b==undefined){ +throw new DeviceException(MISSING_ARG_ERR,"Contacts: getGroupInfo: Id input is mandatory"); +} +if((typeof _22b)!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Contacts: getGroupInfo: Id input is mandatory"); +} +_22c.Filter.id=_22b; +var rval=this.so.IDataSource.GetList(_22c); +if(_22c.Filter){ +delete _22c.Filter.id; +} +if(_22c){ +delete _22c.Filter; +delete _22c.Type; +} +if(rval){ +if(rval.ErrorCode!=0){ +var _22e=mappingVerification(rval.ErrorCode); +if(rval.ErrorMessage){ +var _22f=splitErrorMessage(rval.ErrorMessage); +if(_22e){ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupInfo: "+_22f); +}else{ +throw new DeviceException(rval.ErrorCode,"Contacts: getGroupInfo: "+_22f); +} +}else{ +if(_22e){ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Contacts: getGroupInfo: Operation Failed"); +}else{ +throw new DeviceException(rval.ErrorCode,"Contacts: getGroupInfo: Operation Failed"); +} +} +}else{ +var _230={}; +modifyObjectBaseProp(_230); +var _231=rval.ReturnValue.getNext(); +__sp_device_groupinfo_build(_231,_230); +return _230; +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_contacts_getGroupInfo:"+e); +} +}; +function mappingVerification(_232){ +if(_232===1016||_232===1012||_232===1010||_232===1009||_232===1005||_232===1000||_232===1011||_232===1007||_232===1003||_232===1002){ +return true; +}else{ +return false; +} +}; +function __sp_contacts_instance(){ +this.descriptor=new __sp_contacts_descriptor(); +this.startEditor=__sp_contacts_startEditor; +this.getContacts=__sp_contacts_getContacts; +this.addContact=__sp_contacts_add; +this.updateContact=__sp_contacts_update; +this.deleteContacts=__sp_contacts_delete; +this.getContactInfo=__sp_contacts_get; +this.addGroup=__sp_contacts_addGroup; +this.getGroups=__sp_contacts_getGroups; +this.deleteGroups=__sp_contacts_deleteGroups; +this.addContactsToGroup=__sp_contacts_addContactsToGroup; +this.getContactIds=__sp_contacts_getContactIds; +this.getGroupIds=__sp_contacts_getGroupIds; +this.removeContactsFromGroup=__sp_contacts_removeContactsFromGroup; +this.cancel=__sp_contacts_cancel; +this.updateGroup=__sp_contacts_updateGroup; +this.getGroupInfo=__sp_contacts_getGroupInfo; +try{ +this.so=device.getServiceObject("Service.Contact","IDataSource"); +} +catch(e){ +__device_handle_exception(e,"Contacts service not available "+e); +} +}; +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; +this.timeout; +this.maximumAge; +}; +var __sp_location_trace_transactionId=-1; +function __sp_location_handle_error(_233,_234,_235){ +if((_233!=undefined)&&(typeof _233=="function")&&(_233!=null)){ +var _236=new PositionError(); +if((-21)==_234){ +_236.code=_236.PERMISSION_DENIED; +_236.message="permission denied"; +}else{ +if((-33)==_234){ +_236.code=_236.TIMEOUT; +_236.message="request timed out"; +}else{ +_236.code=_236.UNKNOWN_ERROR; +_236.message="UnKnown Error"; +} +} +_233(_236); +}else{ +var _236=new PositionError(); +_236.code=_236.UNKNOWN_ERROR; +_236.message="UnKnown Error"; +throw _236; +} +}; +function __sp_location_descriptor(){ +this.interfaceName="geolocation"; +if(window.__Service_Interface_Ver){ +this.version=__Service_Interface_Ver; +}else{ +this.version=1; +} +}; +var obj; +function __sp_getLocation(_237,_238,_239){ +var _23a=this; +var _23b=function(arg1,arg2,arg3){ +var _23f=_237; +var _240=_238; +if(arg3.ErrorCode){ +__sp_location_handle_error(_240,arg3.ErrorCode,arg3.ErrorMessage); +return; +}else{ +var _241=new Coordinates(); +_241.longitude=(arg3.ReturnValue.Longitude==undefined)?null:arg3.ReturnValue.Longitude; +_241.latitude=(arg3.ReturnValue.Latitude==undefined)?null:arg3.ReturnValue.Latitude; +_241.altitude=(arg3.ReturnValue.Altitude==undefined)?null:arg3.ReturnValue.Altitude; +_241.accuracy=(arg3.ReturnValue.HorizontalAccuracy==undefined)?null:arg3.ReturnValue.HorizontalAccuracy; +_241.altitudeAccuracy=(arg3.ReturnValue.VerticalAccuracy==undefined)?null:arg3.ReturnValue.VerticalAccuracy; +_241.heading=(arg3.ReturnValue.Heading==undefined)?null:arg3.ReturnValue.Heading; +_241.speed=(arg3.ReturnValue.HorizontalSpeed==undefined)?null:arg3.ReturnValue.HorizontalSpeed; +var _242=new Position(); +_242.coords={}; +modifyObjectBaseProp(_242.coords); +_242.coords=_241; +_242.timestamp=new Date(); +_23f(_242); +delete _242.timestamp; +delete _242; +delete _241; +} +}; +if((_237==undefined)||(_237==null)||(typeof (_237)!="function")){ +var _243="Wrong callback type"; +__sp_location_handle_error(_238,0,_243); +} +if((_238!=undefined)){ +if((_238!=null)&&(_238!="")&&(typeof (_238)!="function")){ +var _244=new PositionError(); +_244.code=-1; +throw _244; +} +} +var _245; +var _246={}; +modifyObjectBaseProp(_246); +_246.LocationInformationClass="GenericLocationInfo"; +var _247={}; +modifyObjectBaseProp(_247); +_247.UpdateInterval=0; +if(_239!=undefined&&_239!=null){ +if((typeof (_239)!="object")){ +var _248="Wrong posOptions type"; +__sp_location_handle_error(_238,0,_248); +return; +} +} +if(_239!=undefined){ +if(_239.maximumAge!=undefined){ +if(_239.maximumAge){ +if((_239.maximumAge==Infinity)){ +if((_239.enableHighAccuracy==undefined)||(typeof (_239.enableHighAccuracy)=="boolean")){ +var arg3=this.so.ILocation.GetLastPosition(); +if(arg3.ErrorCode<0){ +var _248="Invalid input type"; +__sp_location_handle_error(_238,0,_248); +return; +} +var _24a=new Coordinates(); +_24a.longitude=(arg3.ReturnValue.Longitude==undefined)?null:arg3.ReturnValue.Longitude; +_24a.latitude=(arg3.ReturnValue.Latitude==undefined)?null:arg3.ReturnValue.Latitude; +_24a.altitude=(arg3.ReturnValue.Altitude==undefined)?null:arg3.ReturnValue.Altitude; +_24a.accuracy=(arg3.ReturnValue.HorizontalAccuracy==undefined)?null:arg3.ReturnValue.HorizontalAccuracy; +_24a.altitudeAccuracy=(arg3.ReturnValue.VerticalAccuracy==undefined)?null:arg3.ReturnValue.VerticalAccuracy; +_24a.heading=(arg3.ReturnValue.Heading==undefined)?null:arg3.ReturnValue.Heading; +_24a.speed=(arg3.ReturnValue.HorizontalSpeed==undefined)?null:arg3.ReturnValue.HorizontalSpeed; +var _24b=new Position(); +_24b.coords={}; +modifyObjectBaseProp(_24b.coords); +_24b.coords=_24a; +_24b.timestamp=new Date(); +_237(_24b); +delete _24b.timestamp; +delete _24b; +delete _24a; +return; +} +} +if(!(isNaN(parseInt(_239.maximumAge)))){ +if((_239.maximumAge==0)){ +var _248="Invalid input type"; +__sp_location_handle_error(_238,0,_248); +return; +} +_247.UpdateMaxAge=_239.maximumAge; +}else{ +var _248="Invalid input type"; +__sp_location_handle_error(_238,0,_248); +return; +} +}else{ +if((_239.maximumAge==null)||(_239.maximumAge=="")){ +} +} +} +if((_239.enableHighAccuracy!==undefined)){ +if(_239.enableHighAccuracy==true){ +_246.EnableHighAccuracy=_239.enableHighAccuracy; +}else{ +if(_239.enableHighAccuracy==false){ +_246.EnableHighAccuracy=_239.enableHighAccuracy; +}else{ +if((_239.enableHighAccuracy==null)||(_239.enableHighAccuracy=="")){ +}else{ +if((typeof (_239.enableHighAccuracy)!="boolean")){ +var _24c="Wrong value for enableHighAccuracy param"; +__sp_location_handle_error(_238,0,_24c); +return; +} +} +} +} +} +if(_239.timeout!==undefined){ +if((_239.timeout!==null)||((_239.timeout!==""))){ +if((_239.timeout==Infinity)){ +var _248="Invalid input type"; +__sp_location_handle_error(_238,0,_248); +return; +}else{ +if(!(isNaN(parseInt(_239.timeout)))){ +if((_239.timeout<=2147483647)){ +if((_239.timeout==0)){ +var _248="Invalid input type"; +__sp_location_handle_error(_238,0,_248); +return; +} +_247.UpdateTimeOut=_239.timeout; +}else{ +var _248="Invalid input type"; +__sp_location_handle_error(_238,0,_248); +return; +} +} +} +}else{ +if((_239.timeout===null)||((_239.timeout===""))){ +}else{ +var _248="Invalid input type"; +__sp_location_handle_error(_238,0,_248); +return; +} +} +} +} +_247.PartialUpdates=false; +_246.Updateoptions=_247; +try{ +var rval=this.so.ILocation.GetLocation(_246,_23b); +delete _247; +delete _246; +if(rval.ErrorCode!=0){ +__sp_location_handle_error(_238,rval.ErrorCode,rval.ErrorMessage); +return; +} +} +catch(e){ +__device_handle_exception(e,"__sp_getLocation: "+e); +} +}; +var __sp_location_trace_ucb=null; +var __sp_location_fail_cb=null; +function __sp_traceLocation(_24e,_24f,_250){ +if((_24e==undefined)||(_24e==null)||(typeof (_24e)!="function")){ +var _251="Wrong callback type"; +__sp_location_handle_error(_24f,0,_251); +return; +} +if((typeof _24e!="function")){ +var _251="Wrong callback type"; +__sp_location_handle_error(_24f,0,_251); +return; +} +if((_24f!=undefined)){ +if((_24f!=null)&&(_24f!="")&&(typeof (_24f)!="function")){ +var _252=new PositionError(); +_252.code=-1; +throw _252; +} +} +var _253=this; +var _254=function(arg1,arg2,arg3){ +var _258=_24e; +var _259=_24f; +if(arg3.ErrorCode){ +__sp_location_handle_error(_259,arg3.ErrorCode,arg3.ErrorMessage); +}else{ +var _25a=new Coordinates(); +_25a.longitude=(arg3.ReturnValue.Longitude==undefined)?null:arg3.ReturnValue.Longitude; +_25a.latitude=(arg3.ReturnValue.Latitude==undefined)?null:arg3.ReturnValue.Latitude; +_25a.altitude=(arg3.ReturnValue.Altitude==undefined)?null:arg3.ReturnValue.Altitude; +_25a.accuracy=(arg3.ReturnValue.HorizontalAccuracy==undefined)?null:arg3.ReturnValue.HorizontalAccuracy; +_25a.altitudeAccuracy=(arg3.ReturnValue.VerticalAccuracy==undefined)?null:arg3.ReturnValue.VerticalAccuracy; +_25a.heading=(arg3.ReturnValue.Heading==undefined)?null:arg3.ReturnValue.Heading; +_25a.speed=(arg3.ReturnValue.HorizontalSpeed==undefined)?null:arg3.ReturnValue.HorizontalSpeed; +var _25b=new Position(); +_25b.coords={}; +modifyObjectBaseProp(_25b.coords); +_25b.coords=_25a; +_25b.timestamp=new Date(); +_258(_25b); +delete _25b.timestamp; +delete _25b; +delete _25a; +return; +} +}; +var _25c={}; +modifyObjectBaseProp(_25c); +_25c.UpdateInterval=0; +var _25d={}; +modifyObjectBaseProp(_25d); +_25d.LocationInformationClass="GenericLocationInfo"; +if(_250!=undefined&&_250!=null){ +if((typeof (_250)!="object")){ +var _251="Wrong posOptions type"; +__sp_location_handle_error(_24f,0,_251); +return; +} +} +if(_250!=undefined){ +if((_250.enableHighAccuracy!==undefined)){ +if(_250.enableHighAccuracy==true){ +_25d.EnableHighAccuracy=_250.enableHighAccuracy; +}else{ +if(_250.enableHighAccuracy==false){ +_25d.EnableHighAccuracy=_250.enableHighAccuracy; +}else{ +if((_250.enableHighAccuracy==null)||(_250.enableHighAccuracy=="")){ +}else{ +if((typeof (_250.enableHighAccuracy)!="boolean")){ +var _25e="Wrong value for enableHighAccuracy param"; +__sp_location_handle_error(_24f,0,_25e); +return; +} +} +} +} +} +if(_250.timeout!==undefined){ +if((_250.timeout!==null)||((_250.timeout!==""))){ +if((_250.timeout==Infinity)){ +var _251="Invalid input type"; +__sp_location_handle_error(_24f,0,_251); +return; +}else{ +if(!(isNaN(parseInt(_250.timeout)))){ +if((_250.timeout==0)){ +var _251="Invalid input type"; +__sp_location_handle_error(_24f,0,_251); +return; +} +_25c.UpdateTimeOut=_250.timeout; +} +} +}else{ +if((_250.timeout===null)||((_250.timeout===""))){ +}else{ +var _251="Invalid input type"; +__sp_location_handle_error(_24f,0,_251); +return; +} +} +} +if(typeof _250.maximumAge!="undefined"){ +if(_250.maximumAge==_infinity){ +_25c.UpdateTimeOut=0; +_25c.UpdateMaxAge=2147483647; +}else{ +if(!(isNaN(parseInt(_250.maximumAge)))){ +_25c.UpdateMaxAge=_250.maximumAge; +}else{ +if((_250.maximumAge===null)||((_250.maximumAge===""))){ +}else{ +var _251="Invalid input type"; +__sp_location_handle_error(_24f,0,_251); +return; +} +} +} +} +} +_25c.PartialUpdates=false; +_25d.Updateoptions=_25c; +try{ +var rval=this.so.ILocation.Trace(_25d,_254); +delete _25c; +delete _25d; +if(rval.ErrorCode!=0){ +__sp_location_handle_error(_24f,rval.ErrorCode,rval.ErrorMessage); +return; +} +return rval.TransactionID; +} +catch(e){ +__device_handle_exception(e,"__sp_traceLocation: "+e); +} +}; +function __sp_clearTrace(_260){ +if(typeof _260!="number"){ +var _261="Invalid input type"; +__sp_location_handle_error(fail_cb,0,_261); +} +var _262={TransactionID:_260}; +try{ +var _263=this.so.ILocation.Cancel(_262); +} +catch(e){ +__device_handle_exception(e,"__sp_clearTrace: "+e); +} +}; +function __sp_location_instance(){ +this.descriptor=new __sp_location_descriptor(); +this.getLocation=__sp_getLocation; +this.traceLocation=__sp_traceLocation; +this.clearTrace=__sp_clearTrace; +try{ +this.so=device.getServiceObject("Service.Location","ILocation"); +} +catch(e){ +this.so=null; +__device_handle_exception(e,"Location service not available"); +} +}; +var FILESCHMLEN=7; +function __sp_media_descriptor(){ +this.interfaceName="media"; +if(window.__Service_Interface_Ver){ +this.version=__Service_Interface_Ver; +}else{ +this.version=1; +} +}; +function __sp_device_media_item_build(_264){ +if(!_264){ +return null; +} +var _265={}; +modifyObjectBaseProp(_265); +if(_264.FileNameAndPath){ +var _266=_264.FileNameAndPath.replace(/\\/g,"/"); +var _267="file://"; +_265.uri=_267+_266; +} +if(_264.MediaType){ +var _268=_264.MediaType; +switch(_268){ +case 1: +case 2: +_265.type="audio"; +break; +case 3: +_265.type="image"; +break; +case 4: +_265.type="video"; +break; +case 5: +_265.type="stream"; +break; +default: +break; +} +} +if(_264.FileName){ +if(_264.MediaType==3){ +_265.title=_264.FileName; +} +} +if(_264.FileDate){ +_265.date=new Date(Date.parse(_264.FileDate)); +} +if(_264.FileSize){ +_265.size=_264.FileSize; +} +if(_264.SongName){ +_265.title=_264.SongName; +} +if(_264.Artist){ +_265.artist=_264.Artist; +} +if(_264.Album){ +_265.album=_264.Album; +} +if(_264.Genre){ +_265.genre=_264.Genre; +} +if(_264.TrackNumber){ +_265.track=_264.TrackNumber; +} +if(_264.Composer){ +_265.composer=_264.Composer; +} +return _265; +}; +function __sp_media_iterator_get_next(){ +var item=this.iter.getNext(); +if(typeof item=="undefined"){ +return null; +} +var _26a=__sp_device_media_item_build(item); +item.close(); +return _26a; +}; +function __sp_media_iterator(_26b){ +this.iter=_26b; +this.next=__sp_media_iterator_get_next; +}; +function __sp_media_get_field_name(name,type){ +if(typeof name!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getList:field is of invalid type"); +} +switch(name.toLowerCase()){ +case "title": +if(type=="Image"||type=="Video"){ +return "FileName"; +}else{ +return "SongName"; +} +case "artist": +return "Artist"; +case "album": +return "Album"; +case "genre": +return "Genre"; +case "track": +return "TrackNumber"; +case "composer": +return "Composer"; +default: +return null; +} +}; +function __sp_media_get_sortfield_name(name,type){ +if(typeof name!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getList:sortBy is of invalid type"); +} +var _270=name.toLowerCase(); +if(_270=="date"){ +return "FileDate"; +}else{ +return __sp_media_get_field_name(name,type); +} +}; +function __sp_media_get_date_objct(date){ +var _272=""; +_272=date.getFullYear().toString(); +if(date.getMonth()<10){ +_272=_272+("0")+(date.getMonth().toString()); +}else{ +_272=_272+(date.getMonth().toString()); +} +var day=date.getDate()-1; +if(day<10){ +_272=_272+("0")+(day.toString()); +}else{ +_272=_272+(day.toString()); +} +_272=_272+(":"); +if(date.getHours()<10){ +_272=_272+("0")+(date.getHours().toString()); +}else{ +_272=_272+(date.getHours().toString()); +} +if(date.getMinutes()<10){ +_272=_272+("0")+(date.getMinutes().toString()); +}else{ +_272=_272+(date.getMinutes().toString()); +} +if(date.getSeconds()<10){ +_272=_272+("0")+(date.getSeconds().toString()); +}else{ +_272=_272+(date.getSeconds().toString()); +} +return _272; +}; +function __sp_media_getList(_274,_275,_276,_277){ +if(!_274){ +throw new DeviceException(MISSING_ARG_ERR,"Media:getList:Callback is missing"); +}else{ +if(typeof _274!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getList:Callback is of invalid type"); +} +} +if(_277){ +if(typeof _277!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Media: getList: error callback is invalid"); +} +} +var _278=function(arg1,arg2,arg3){ +if(arg3.ErrorCode!=0){ +_277(new DeviceException(arg3.ErrorCode,"Media: getList: Operation Failed")); +return; +} +if(arg2!=event_cancelled){ +var iter=null; +if(arg3.ReturnValue){ +iter=new __sp_media_iterator(arg3.ReturnValue); +} +_274(iter); +} +}; +var _27d={}; +modifyObjectBaseProp(_27d); +_27d.Type="FileInfo"; +_27d.Filter={}; +modifyObjectBaseProp(_27d.Filter); +_27d.Sort={}; +modifyObjectBaseProp(_27d.Sort); +if(_275){ +if(_275.type){ +if(typeof _275.type!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getList:type is of invalid type"); +} +switch(_275.type.toLowerCase()){ +case "audio": +_27d.Filter.FileType="audio"; +break; +case "image": +_27d.Filter.FileType="Image"; +break; +case "video": +_27d.Filter.FileType="Video"; +break; +case "stream": +_27d.Filter.FileType="StreamingURL"; +break; +default: +throw new DeviceException(INVALID_ARG_ERR,"Media:getList: type is invalid"); +} +if(_275.field!=null){ +_27d.Filter.Key=__sp_media_get_field_name(_275.field.name,_27d.Filter.FileType); +if(_27d.Filter.Key==null){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getList:key is invalid"); +} +if(_275.field.value){ +_27d.Filter.StartRange=_275.field.value; +if(_27d.Filter.Key=="TrackNumber"){ +_27d.Filter.EndRange=_275.field.value; +} +} +}else{ +if(_275.dateRange){ +if(typeof _275.dateRange!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getList:dateRange is of invalid type"); +} +_27d.Filter.Key="FileDate"; +if((typeof _275.dateRange.start!="undefined")&&(typeof _275.dateRange.end!="undefined")){ +_27d.Filter.StartRange=__sp_media_get_date_objct(_275.dateRange.start); +_27d.Filter.EndRange=__sp_media_get_date_objct(_275.dateRange.end); +}else{ +throw new DeviceException(MISSING_ARG_ERR,"Media:getList:start or end of dateRange is missing"); +} +} +} +if(_275.sortBy){ +_27d.Sort.Key=__sp_media_get_sortfield_name(_275.sortBy,_27d.Filter.FileType); +if(_27d.Sort.Key==null){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getList:sortBy is invalid"); +} +}else{ +_27d.Sort.Key="FileDate"; +} +if(_276){ +if(_276==SORT_ASCENDING){ +_27d.Sort.Order="Ascending"; +}else{ +if(_276==SORT_DESCENDING){ +_27d.Sort.Order="Descending"; +} +} +}else{ +_27d.Sort.Order="Ascending"; +} +}else{ +throw new DeviceException(MISSING_ARG_ERR,"Media:type is missing"); +} +}else{ +_27d.Filter.FileType="all"; +_27d.Sort.Key="FileDate"; +_27d.Sort.Order="Ascending"; +} +try{ +var rval=this.so.IDataSource.GetList(_27d,_278); +if(_27d.Sort){ +delete _27d.Sort; +} +if(_27d.Filter.StartRange){ +delete _27d.Filter.StartRange; +} +if(_27d.Filter.EndRange){ +delete _27d.Filter.EndRange; +} +if(_27d.Filter){ +delete _27d.Filter; +} +if(rval.ErrorCode!=0){ +switch(MapErrorCode[rval.ErrorCode]){ +case MISSING_ARG_ERR: +case INVALID_ARG_ERR: +case err_missing_argument: +case err_bad_argument: +case err_InvalidService_Argument: +case err_ServiceNotSupported: +if(rval.ErrorMessage){ +var _27f=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Media:getList:"+_27f); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Media:getList:Operation failed"); +} +break; +default: +_274(iter); +} +} +return rval.TransactionID; +} +catch(e){ +__device_handle_exception(e,"__sp_media_getList: "+e); +} +}; +function __sp_media_getThumbnail(_280,_281,_282){ +if(!_280){ +throw new DeviceException(MISSING_ARG_ERR,"Media:getThumbnail:Callback is missing"); +}else{ +if(typeof _280!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getList:Callback is invalid"); +} +} +if(_282){ +var _283=_282; +if(typeof _282!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Media: getThumbnail: error callback is invalid"); +} +} +var _284=function(arg1,arg2,arg3){ +if(arg3.ErrorCode!=0){ +_282(new DeviceException(arg3.ErrorCode,"Media: getThumbnail: Operation Failed")); +return; +} +if(arg2!=event_cancelled){ +var _288=null; +if(arg3.ReturnValue){ +_288=arg3.ReturnValue.replace(/\\/g,"/"); +var _289="file://"; +_288=_289+_288; +} +_280(_288); +} +}; +var _28a={}; +modifyObjectBaseProp(_28a); +if(_281){ +if(typeof _281!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getThumbnail:thumbnailInfo is of invalid type object"); +} +if(_281.uri){ +if(typeof _281.uri!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getThumbnail:uri is not of type string"); +} +if(_281.uri.search("file://")==0){ +url=_281.uri.slice(FILESCHMLEN); +_28a.Url=url.replace(/\//g,"\\"); +}else{ +throw new DeviceException(INVALID_ARG_ERR,"Media:getThumbnail:uri is not in file protocol"); +} +}else{ +throw new DeviceException(MISSING_ARG_ERR,"Media:getThumbnail:uri is missing"); +} +}else{ +throw new DeviceException(MISSING_ARG_ERR,"Media:thumbnailInfo is missing"); +} +if(_281.size){ +if(typeof _281.size!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Media:getThumbnail:size is not of type Object"); +} +if((typeof _281.size.width=="undefined")&&(typeof _281.size.height=="undefined")){ +throw new DeviceException(MISSING_ARG_ERR,"Media:thumbnailInfo should have atleast width or height"); +}else{ +var _28b={}; +modifyObjectBaseProp(_28b); +if(typeof _281.size.width!="undefined"){ +_28b.width=_281.size.width; +} +if(typeof _281.size.height!="undefined"){ +_28b.height=_281.size.height; +} +_28a.ThumbnailSize=_28b; +delete _28b; +} +} +try{ +var rval=this.so.IDataSource.GetThumbnail(_28a,_284); +delete _28a; +if(rval.ErrorCode!=0){ +switch(MapErrorCode[rval.ErrorCode]){ +case MISSING_ARG_ERR: +_282(new DeviceException(MISSING_ARG_ERR,"Media: getThumbnail: Operation Failed")); +break; +case NOT_SUPPORTED_ERR: +_282(new DeviceException(MapErrorCode[rval.ErrorCode],"Media:getThumbnail:"+_28d)); +break; +case INVALID_ARG_ERR: +case NOT_SUPPORTED_ERR: +if(rval.ErrorMessage){ +var _28d=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Media:getThumbnail:"+_28d); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Media:getThumbnail:Operation failed"); +} +break; +default: +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Media:getThumbnail:Operation failed"); +} +} +return rval.TransactionID; +} +catch(e){ +__device_handle_exception(e,"__sp_media_getThumbnail: "+e); +} +}; +function __sp_media_addStreamUri(uri){ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Media:addStreamUri:Not Supported"); +}; +function __sp_media_deleteStreamUri(uri){ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Media:deleteStreamUri:Not Supported"); +}; +function __sp_media_refreshMediaDb(uri){ +}; +function __sp_media_cancel(_291){ +try{ +var rval=this.so.IDataSource.Cancel(_291); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +case err_bad_argument: +case err_InvalidService_Argument: +case err_ServiceNotSupported: +if(rval.ErrorMessage){ +var _293=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Media:cancel:"+_293); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"Media:cancel:Operation failed"); +} +break; +default: +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_media_refreshMediaDb: "+e); +} +}; +function __sp_media_instance(){ +this.descriptor=new __sp_media_descriptor(); +this.getList=__sp_media_getList; +this.getThumbnail=__sp_media_getThumbnail; +this.addStreamUri=__sp_media_addStreamUri; +this.deleteStreamUri=__sp_media_deleteStreamUri; +this.refreshMediaDb=__sp_media_refreshMediaDb; +this.cancel=__sp_media_cancel; +try{ +this.so=device.getServiceObject("Service.MediaManagement","IDataSource"); +} +catch(e){ +this.so=null; +__device_handle_exception(e,"media service not available"); +} +}; +var FILE_SCHEME="file://"; +var INVALID_URI_ERR=108; +function __sp_messaging_descriptor(){ +this.interfaceName="messaging"; +if(window.__Service_Interface_Ver){ +this.version=__Service_Interface_Ver; +}else{ +this.version=1; +} +}; +function __sp_messaging_instance(){ +this.descriptor=new __sp_messaging_descriptor(); +this.startEditor=__sp_messaging_startEditor; +this.getList=__sp_messaging_getList; +this.send=__sp_messaging_send; +this.setNotifier=__sp_messaging_setNotifier; +this.cancelNotifier=__sp_messaging_cancelNotifier; +this.getMessage=__sp_messaging_getMessage; +this.deleteMessage=__sp_messaging_delete; +this.setStatus=__sp_messaging_setStatus; +this.cancel=__sp_messaging_cancel; +this.sendCommon=__sp_messaging_send_common; +this.SORT_ASCENDING=0; +this.SORT_DESCENDING=1; +this.SORT_BY_DATE=0; +this.SORT_BY_SENDER=1; +this.STATUS_READ=0; +this.STATUS_UNREAD=1; +try{ +this.so=device.getServiceObject("Service.Messaging","IMessaging"); +} +catch(e){ +this.so=null; +__device_handle_exception(e,"Messaging service not available"); +} +}; +function __sp_attachment_build(_294){ +if(!_294){ +return null; +} +var _295={}; +modifyObjectBaseProp(_295); +if(_294.uri){ +if(typeof _294.uri!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"uri is invalid"); +} +if(_294.uri.slice(0,7)==FILE_SCHEME){ +if(_294.uri.charAt(7)=="/"){ +if(_294.uri.charAt(9)!=":"){ +throw new DeviceException(URI_NOT_FOUND_ERR,"specified uri not found"); +} +_295.FileName=_294.uri.slice(8).replace(/\057/g,"\\"); +if(_295.FileName.length>256){ +throw new DeviceException(DATA_OUT_OF_RANGE_ERR,"uri is out of range"); +} +}else{ +if(_294.uri.charAt(8)!=":"){ +throw new DeviceException(URI_NOT_FOUND_ERR,"specified uri not found"); +} +_295.FileName=_294.uri.slice(7).replace(/\057/g,"\\"); +if(_295.FileName.length>256){ +throw new DeviceException(DATA_OUT_OF_RANGE_ERR,"uri is out of range"); +} +} +}else{ +throw new DeviceException(INVALID_URI_ERR,"uri is invalid"); +} +} +return _295; +}; +function __sp_message_build(_296,id){ +if(!_296){ +return null; +} +var _298={}; +modifyObjectBaseProp(_298); +var _299=0; +_298.MessageParam={}; +modifyObjectBaseProp(_298.MessageParam); +_298.MessageParam.LaunchEditor=false; +_298.MessageType=(_296.type==undefined||_296.type==null)?"SMS":_296.type; +if(_296.to){ +if(typeof (_296.to)=="string"){ +_298.To=_296.to; +}else{ +if(__device_typeof(_296.to)=="Array"&&_296.to.length>0){ +if(_296.to[0]){ +_298.To=_296.to[0]; +} +if(_296.to.length>1){ +if(_296.to.slice(1)){ +_298.MessageParam.To=_296.to.slice(1); +} +} +}else{ +_298.To=_296.to; +} +} +} +if(_296.cc){ +_298.MessageParam.Cc=_296.cc; +} +if(id){ +if((typeof (id)=="string")&&!(isNaN(id))){ +id=Number(id); +} +_298.MessageParam.TemplateId=id; +} +if(_298.MessageType=="SMS"){ +if(_296.body){ +_298.BodyText=_296.body; +} +} +if(_298.MessageType=="MMS"){ +if(_296.body){ +_298.BodyText=_296.body; +} +if(_296.subject){ +if(typeof _296.subject=="string"&&_296.subject.length>256){ +throw new DeviceException(DATA_OUT_OF_RANGE_ERR,"subject length is greater than 256 characters"); +} +_298.Subject=_296.subject; +} +if(_296.attachments){ +_298.MessageParam.AttachmentList=[]; +for(var a in _296.attachments){ +if(typeof _296.attachments[a]=="object"&&__device_typeof(_296.attachments[a])!="Array"){ +_298.MessageParam.AttachmentList.push(__sp_attachment_build(_296.attachments[a])); +_299=1; +} +} +if(_299==0){ +throw new DeviceException(INVALID_ARG_ERR,"uri is invalid"); +} +} +} +return _298; +}; +function __sp_device_attachment_build(_29b){ +if(!_29b){ +return null; +} +var _29c={}; +_29c.uri=FILE_SCHEME+_29b.FileName; +return _29c; +}; +function __sp_device_message_build(_29d){ +if(!_29d){ +return null; +} +var _29e={}; +_29e.body=null; +_29e.subject=null; +_29e.attachments=null; +_29e.to=null; +_29e.cc=null; +_29e.type=_29d.MessageType; +if(_29d.BodyText){ +_29e.body=_29d.BodyText; +} +if(_29d.to){ +_29e.to=_29d.To; +} +if(_29d.Subject){ +_29e.subject=_29d.Subject; +} +_29e.attachment=false; +if(_29e.type=="MMS"){ +if(_29d.Cc){ +_29e.cc=_29d.Cc; +} +if(_29d.AttachmentList){ +_29e.attachment=true; +_29e.attachments=[]; +for(var a in _29d.AttachmentList){ +if(_29d.AttachmentList.hasOwnProperty("a")){ +_29e.attachments.push(__sp_device_attachment_build(_29d.AttachmentList[a])); +} +} +} +} +return _29e; +}; +function __sp_device_message_info_build_notifier(_2a0){ +if(!_2a0){ +return null; +} +var _2a1={}; +_2a1.message={}; +_2a1.message.type=_2a0.MessageType; +_2a1.sender=_2a0.Sender; +_2a1.message.subject=_2a0.Subject; +_2a1.time=_2a0.Time; +_2a1.attachments=(_2a0.Attachments==undefined||_2a0.Attachments==null)?(!(_2a0.AttachmentList==undefined||_2a0.AttachmentList==null)):_2a0.Attachments; +_2a1.unread=_2a0.Unread; +_2a1.id=(_2a0.MessageId).toString(); +return _2a1; +}; +function __sp_device_message_info_build(_2a2){ +if(!_2a2){ +return null; +} +var _2a3={}; +_2a3.message=__sp_device_message_build(_2a2); +_2a3.sender=_2a2.Sender; +_2a3.time=_2a2.Time; +_2a3.unread=_2a2.Unread; +_2a3.id=(_2a2.MessageId).toString(); +return _2a3; +}; +function __sp_message_iterator_get_next(){ +var _2a4=this.iter.getNext(); +if(typeof _2a4=="undefined"){ +return null; +} +var _2a5=__sp_device_message_info_build(_2a4); +_2a4.close(); +return _2a5; +}; +function __sp_message_iterator(_2a6){ +this.iter=_2a6; +this.next=__sp_message_iterator_get_next; +}; +function __sp_messaging_getList(_2a7,_2a8,_2a9,_2aa,_2ab){ +a("in getlist"); +if(!_2a7){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:getList:callback is missing"); +}else{ +if(typeof _2a7!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:getList:callback is not a function"); +} +} +if(_2a8!=null&&_2a8!=undefined&&typeof _2a8!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:getList:match is invalid"); +} +if(_2a9!=null&&_2a9!=undefined&&typeof _2a9!="number"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:getList:sortkey is invalid"); +} +if(_2aa!=null&&_2aa!=undefined&&typeof _2aa!="number"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:getList:sortorder is invalid"); +} +if(_2a9!=null&&_2a9!=undefined&&typeof _2a9=="number"){ +if((_2a9!=0)&&(_2a9!=1)){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:getList:sortkey is invalid"); +} +} +if(_2aa!=null&&_2aa!=undefined&&typeof _2aa=="number"){ +if((_2aa!=0)&&(_2aa!=1)){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:getList:sortorder is invalid"); +} +} +if(_2ab){ +if(typeof (_2ab)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging: startEditor: ErrorCallback is invalid"); +} +} +var _2ac=function(arg1,arg2,arg3){ +var _2b0=_2a7; +var _2b1=_2ab; +var iter=null; +if(arg3.ErrorCode!=0){ +if(arg3.ErrorMessage){ +_2b3=splitErrorMessage(arg3.ErrorMessage); +}else{ +_2b3="Operation Failed"; +} +if(_2b1){ +_2b1(new DeviceException(MapErrorCode[arg3.ErrorCode],"Messaging: getList: "+_2b3)); +return; +} +}else{ +if(arg3.ReturnValue){ +iter=new __sp_message_iterator(arg3.ReturnValue); +} +} +if(arg2!=event_cancelled){ +_2b0(iter); +} +}; +var _2b4={}; +modifyObjectBaseProp(_2b4); +_2b4.Type="Inbox"; +_2b4.Filter={}; +modifyObjectBaseProp(_2b4.Filter); +if(_2a8){ +if(_2a8.type!=null&&_2a8.type!=undefined){ +_2b4.Filter.MessageTypeList=_2a8.type; +} +if(_2a8.senders!=null&&_2a8.senders!=undefined){ +_2b4.Filter.SenderList=_2a8.senders; +} +if(_2a8.subject!=null&&_2a8.subject!=undefined){ +if(_2a8.subject.length>256){ +if(_2ab){ +_2ab(new DeviceException(DATA_OUT_OF_RANGE_ERR,"Messaging:getList:subject is out of range")); +return; +}else{ +throw new DeviceException(DATA_OUT_OF_RANGE_ERR,"Messaging:getList:subject is out of range"); +} +}else{ +_2b4.Filter.Subject=_2a8.subject; +} +} +if(_2a8.start!=null&&_2a8.start!=undefined){ +_2b4.Filter.StartDate=_2a8.start; +} +if(_2a8.end!=null&&_2a8.end!=undefined){ +_2b4.Filter.EndDate=_2a8.end; +} +} +if(_2a9||_2aa){ +_2b4.SortOrder={}; +modifyObjectBaseProp(_2b4.SortOrder); +if(_2a9){ +if((_2a9==this.SORT_BY_DATE)){ +_2b4.SortOrder.Key="Date"; +}else{ +if((_2a9==this.SORT_BY_SENDER)){ +_2b4.SortOrder.Key="Sender"; +} +} +}else{ +_2b4.SortOrder.Key="Date"; +} +if(_2aa){ +if((_2aa==this.SORT_ASCENDING)){ +_2b4.SortOrder.Order="Ascending"; +}else{ +if((_2aa==this.SORT_DESCENDING)){ +_2b4.SortOrder.Order="Descending"; +} +} +}else{ +_2b4.SortOrder.Order="Ascending"; +} +} +try{ +var _2b5=this.so.IMessaging.GetList(_2b4,_2ac); +if(_2b4){ +delete _2b4.Filter; +delete _2b4.SortOrder; +delete _2b4.Type; +} +if(_2b5.ErrorCode!=0){ +var _2b3="operation failed"; +if(_2b5.ErrorMessage){ +_2b3=splitErrorMessage(_2b5.ErrorMessage); +} +switch(MapErrorCode[_2b5.ErrorCode]){ +case INVALID_ARG_ERR: +case MISSING_ARG_ERR: +case NOT_SUPPORTED_ERR: +throw new DeviceException(MapErrorCode[_2b5.ErrorCode],"Messaging:getList:"+_2b3); +break; +default: +if(_2ab){ +setTimeout(function(){ +_2ab(new DeviceException(MapErrorCode[_2b5.ErrorCode],"Messaging:getList:"+_2b3)); +},500); +}else{ +throw new DeviceException(MapErrorCode[_2b5.ErrorCode],"Messaging:getList:"+_2b3); +} +} +} +return _2b5.TransactionID; +} +catch(e){ +__device_handle_exception(e,"__sp_messaging_getList: "+e); +} +}; +function __sp_messaging_send_common(_2b6,_2b7,_2b8,id,eCB){ +var _2bb=function(arg1,arg2,arg3){ +if(_2b8){ +var _2bf="operation failed"; +if(arg3.ErrorCode!=0){ +if(arg3.ErrorMessage){ +_2bf=splitErrorMessage(arg3.ErrorMessage); +} +if(eCB){ +setTimeout(function(){ +eCB(new DeviceException(MapErrorCode[arg3.ErrorCode],"Messaging: send: "+_2bf)); +},500); +return; +} +} +if(arg2!=event_cancelled){ +_2b8(); +} +} +}; +var _2c0=__sp_message_build(_2b6,id); +_2c0.MessageParam.LaunchEditor=_2b7; +var _2c1; +if(_2b7==false){ +_2c1=this.so.IMessaging.Send(_2c0,_2bb); +if(_2c1.ErrorCode!=0){ +var _2c2="operation failed"; +if(_2c1.ErrorMessage){ +_2c2=splitErrorMessage(_2c1.ErrorMessage); +} +switch(MapErrorCode[_2c1.ErrorCode]){ +case INVALID_ARG_ERR: +case MISSING_ARG_ERR: +case NOT_SUPPORTED_ERR: +throw new DeviceException(MapErrorCode[_2c1.ErrorCode],_2c2); +break; +default: +if(eCB){ +setTimeout(function(){ +eCB(new DeviceException(MapErrorCode[_2c1.ErrorCode],_2c2)); +},500); +return; +}else{ +throw new DeviceException(MapErrorCode[_2c1.ErrorCode],_2c2); +} +} +} +var _2c3=_2c1.TransactionID; +return _2c3; +}else{ +_2c1=this.so.IMessaging.Send(_2c0); +if(_2c1.ErrorCode!=0){ +if(_2c1.ErrorMessage){ +var _2c4=splitErrorMessage(_2c1.ErrorMessage); +throw new DeviceException(MapErrorCode[_2c1.ErrorCode],"Messaging:startEditor"+_2c4); +}else{ +throw new DeviceException(MapErrorCode[_2c1.ErrorCode],"Messaging:startEditor:operation failed"); +} +} +} +if(_2c0){ +delete _2c0.MessageParam; +} +}; +function __sp_messaging_startEditor(_2c5){ +if(!_2c5){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:startEditor:message is missing"); +}else{ +if(typeof _2c5!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:startEditor:message is invalid"); +} +} +if((_2c5.subject)){ +if((_2c5.subject).length>256){ +throw new DeviceException(DATA_OUT_OF_RANGE_ERR,"Messaging:startEditor:subject is too lengthy"); +} +} +if(_2c5.to==undefined||_2c5.to==null){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:startEditor:to field is missing"); +} +if(_2c5.attachments!=undefined&&_2c5.attachments!=null&&typeof _2c5.attachments!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:startEditor:attachment is invalid"); +} +if(_2c5){ +if(_2c5.body){ +if(typeof (_2c5.body)!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:startEditor:body is invalid"); +} +} +} +try{ +this.sendCommon(_2c5,true,null); +} +catch(e){ +var _2c6=null; +if(e.message){ +_2c6=new DeviceException(e.code,"Messaging:startEditor:"+e.message); +}else{ +_2c6=new DeviceException(e.code,"Messaging:startEditor:operation failed"); +} +__device_handle_exception(_2c6,"__sp_messaging_startEditor: "+_2c6); +} +}; +function __sp_messaging_send(_2c7,_2c8,id,_2ca){ +if(!_2c8){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:send:message is missing"); +}else{ +if(typeof _2c8!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:send:message is invalid"); +} +} +if(!_2c7){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:send:callback is missing"); +}else{ +if(typeof _2c7!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:send:callback is invalid"); +} +} +if(_2c8.to==undefined||_2c8.to==null){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:send:to field is missing"); +} +if(_2c8.attachments!=undefined&&_2c8.attachments!=null&&typeof _2c8.attachments!="object"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:send:attachment is invalid"); +} +if(!id){ +id=""; +} +if((typeof id)=="function"){ +var _2cb=id; +id=""; +_2ca=_2cb; +} +if((typeof _2ca)=="undefined"||_2ca==null){ +_2ca=null; +}else{ +if((typeof _2ca)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:send:errorCallback is not a function"); +} +} +var _2cc=function(arg1,arg2,arg3){ +var _2d0=_2c7; +var _2d1=_2ca; +var iter=null; +if(arg3.ErrorCode!=0){ +var _2d3; +if(arg3.ErrorMessage){ +_2d3=splitErrorMessage(arg3.ErrorMessage); +}else{ +_2d3="Operation Failed"; +} +_2d1(new DeviceException(MapErrorCode[arg3.ErrorCode],"Messaging:startEditor: "+_2d3)); +return; +}else{ +if(arg3.ReturnValue){ +iter=new __sp_message_iterator(arg3.ReturnValue); +_2d0(iter); +} +} +if(arg2!=event_cancelled){ +_2d0(iter); +} +}; +try{ +var _2d4=this.sendCommon(_2c8,false,_2c7,id,_2ca); +return _2d4; +} +catch(e){ +var _2d5=null; +switch(e.code){ +case INVALID_ARG_ERR: +case MISSING_ARG_ERR: +case NOT_SUPPORTED_ERR: +throw new DeviceException(e.code,"Messaging:send:"+e.message); +break; +default: +if(_2ca){ +setTimeout(function(){ +_2ca(new DeviceException(e.code,"Messaging:send:"+e.message)); +},1000); +}else{ +throw new DeviceException(e.code,"Messaging:send:"+e.message); +} +} +} +}; +function __sp_messaging_setNotifier(_2d6,_2d7){ +if(!_2d6){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:setNotifier:callback is missing"); +}else{ +if(typeof _2d6!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:setNotifier:callback is invalid"); +} +} +if(_2d7){ +if(typeof (_2d7)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:setNotifier: ErrorCallback is invalid"); +} +} +var _2d8=function(arg1,arg2,arg3){ +var _2dc=_2d6; +var _2dd=_2d7; +var _2de=null; +var _2df=null; +if(arg3.ErrorCode!=0){ +if(arg3.ErrorMessage){ +_2df=splitErrorMessage(arg3.ErrorMessage); +}else{ +_2df="operation failed"; +} +if(_2dd){ +_2dd(new DeviceException(MapErrorCode[arg3.ErrorCode],"Messaging:setNotifier: "+_2df)); +return; +} +}else{ +if(arg3.ReturnValue){ +_2de=new __sp_device_message_info_build_notifier(arg3.ReturnValue); +arg3.ReturnValue.close(); +} +} +if(arg2!=event_cancelled){ +_2dc(_2de.id); +} +}; +var _2e0={}; +modifyObjectBaseProp(_2e0); +_2e0.Type="NewMessage"; +try{ +var _2e1=this.so.IMessaging.RegisterNotification(_2e0,_2d8); +if(_2e0){ +delete _2e0.Type; +} +if(_2e1.ErrorCode!=0){ +var _2e2="operation failed"; +if(_2e1.ErrorMessage){ +_2e2=splitErrorMessage(_2e1.ErrorMessage); +} +switch(MapErrorCode[_2e1.ErrorCode]){ +case INVALID_ARG_ERR: +case MISSING_ARG_ERR: +case NOT_SUPPORTED_ERR: +throw new DeviceException(MapErrorCode[_2e1.ErrorCode],"Messaging:setNotifier:"+_2e2); +break; +default: +if(_2d7){ +setTimeout(function(){ +_2d7(new DeviceException(MapErrorCode[_2e1.ErrorCode],"Messaging:setNotifier:"+_2e2)); +},1000); +}else{ +throw new DeviceException(MapErrorCode[_2e1.ErrorCode],"Messaging:setNotifier:"+_2e2); +} +} +} +var _2e3=_2e1.TransactionID; +return _2e3; +} +catch(e){ +__device_handle_exception(e,"__sp_messaging_setNotifier: "+e.toString()); +} +}; +function __sp_messaging_cancelNotifier(){ +var _2e4={}; +modifyObjectBaseProp(_2e4); +_2e4.Type="NewMessage"; +try{ +var _2e5=this.so.IMessaging.CancelNotification(_2e4); +if(_2e4){ +delete _2e4.Type; +} +if(_2e5.ErrorCode!=0){ +if(_2e5.ErrorMessage){ +var _2e6=splitErrorMessage(_2e5.ErrorMessage); +throw new DeviceException(MapErrorCode[_2e5.ErrorCode],"Messaging:cancelNotifier"+_2e6); +}else{ +throw new DeviceException(MapErrorCode[_2e5.ErrorCode],"Messaging:cancelNotifier:operation failed"); +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_messaging_cancelNotifier: "+e); +} +}; +function __sp_messaging_getMessage(id){ +if(!id){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:getMessage:id is missing"); +}else{ +if((typeof id)!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:getMessage:MessageId should be a string"); +} +} +if((typeof id=="string")&&!(isNaN(id))){ +id=Number(id); +if(id==0){ +throw new DeviceException(DATA_NOT_FOUND_ERR,"Messaging:getMessage:id not found"); +} +if(id<0){ +throw new DeviceException(DATA_OUT_OF_RANGE_ERR,"Messaging:getMessage:id is out of range"); +} +} +var _2e8={}; +modifyObjectBaseProp(_2e8); +_2e8.Type="Inbox"; +_2e8.Filter={}; +modifyObjectBaseProp(_2e8.Filter); +_2e8.Filter.MessageId=id; +try{ +var _2e9=this.so.IMessaging.GetList(_2e8); +if(_2e8){ +delete _2e8.Filter; +delete _2e8.Type; +} +if(_2e9.ErrorCode!=0){ +if(_2e9.ErrorMessage){ +var _2ea=splitErrorMessage(_2e9.ErrorMessage); +throw new DeviceException(MapErrorCode[_2e9.ErrorCode],"Messaging:getMessage"+_2ea); +}else{ +throw new DeviceException(MapErrorCode[_2e9.ErrorCode],"Messaging:getMessage:operation failed"); +} +} +if(_2e9.ReturnValue){ +var iter=new __sp_message_iterator(_2e9.ReturnValue); +var _2ec=iter.next(); +if(_2ec){ +return _2ec; +}else{ +throw new DeviceException(DATA_NOT_FOUND_ERR,"Messaging:getMessage:id not found"); +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_messaging_getMessage: "+e); +} +}; +function __sp_messaging_delete(id){ +a("messageId"+typeof id); +if(!id){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:delete:id is missing"); +}else{ +if((typeof id)!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:deleteMessage:MessageId should be a string"); +} +} +if((typeof id=="string")&&!(isNaN(id))){ +id=Number(id); +if(id==0){ +throw new DeviceException(DATA_NOT_FOUND_ERR,"Messaging:delete:id not found"); +} +if(id<0){ +throw new DeviceException(DATA_OUT_OF_RANGE_ERR,"Messaging:delete:id is out of range"); +} +} +var _2ee={}; +modifyObjectBaseProp(_2ee); +_2ee.MessageId=id; +try{ +var _2ef=this.so.IMessaging.Delete(_2ee); +a("MapErrorCode[ result.ErrorCode ]"+MapErrorCode[_2ef.ErrorCode]); +if(_2ee){ +delete _2ee.MessageId; +} +if(_2ef.ErrorCode!=0){ +if(_2ef.ErrorMessage){ +var _2f0=splitErrorMessage(_2ef.ErrorMessage); +throw new DeviceException(MapErrorCode[_2ef.ErrorCode],"Messaging:delete"+_2f0); +}else{ +throw new DeviceException(MapErrorCode[_2ef.ErrorCode],"Messaging:delete:operation failed"); +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_messaging_delete: "+e); +} +}; +function __sp_messaging_setStatus(id,_2f2){ +if(id==null||id==undefined||(id.length)<=0){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:setStatus:id is missing"); +} +if((typeof id)!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:setStatus:id should be string"); +} +if(_2f2==null||_2f2==undefined){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:setStatus:status is missing"); +} +if(typeof _2f2!="number"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:setStatus:status is invalid"); +} +if(typeof _2f2=="number"&&_2f2!=0&&_2f2!=1){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:setStatus:status is invalid"); +} +if((typeof id=="string")&&!(isNaN(id))){ +id=Number(id); +if(id==0){ +throw new DeviceException(DATA_NOT_FOUND_ERR,"Messaging:setStatus:id not found"); +} +if(id<0){ +throw new DeviceException(DATA_OUT_OF_RANGE_ERR,"Messaging:setStatus:id is out of range"); +} +} +var _2f3={}; +modifyObjectBaseProp(_2f3); +_2f3.MessageId=id; +if((_2f2==this.STATUS_UNREAD)){ +_2f3.Status="Unread"; +}else{ +if((_2f2==this.STATUS_READ)){ +a("in read"); +_2f3.Status="Read"; +} +} +try{ +var _2f4=this.so.IMessaging.ChangeStatus(_2f3); +if(_2f3){ +delete _2f3.MessageId; +delete _2f3.Status; +} +if(_2f4.ErrorCode!=0){ +if(_2f4.ErrorMessage){ +var _2f5=splitErrorMessage(_2f4.ErrorMessage); +throw new DeviceException(MapErrorCode[_2f4.ErrorCode],"Messaging:setStatus"+_2f5); +}else{ +throw new DeviceException(MapErrorCode[_2f4.ErrorCode],"Messaging:setStatus:operation failed"); +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_messaging_setStatus: "+e); +} +}; +function __sp_messaging_cancel(_2f6){ +if(_2f6==null||_2f6==undefined){ +throw new DeviceException(MISSING_ARG_ERR,"Messaging:setStatus:id is missing"); +} +if(typeof _2f6!="number"){ +throw new DeviceException(INVALID_ARG_ERR,"Messaging:cancel:id is invalid"); +} +var _2f7={}; +modifyObjectBaseProp(_2f7); +_2f7.TransactionID=_2f6; +try{ +var _2f8=this.so.IMessaging.Cancel(_2f7); +if(_2f7){ +delete _2f7.TransactionID; +} +if(_2f8.ErrorCode!=0){ +var err; +if(_2f8.ErrorCode==1000){ +err=DATA_NOT_FOUND_ERR; +}else{ +err=MapErrorCode[_2f8.ErrorCode]; +} +if(_2f8.ErrorMessage){ +var _2fa=splitErrorMessage(_2f8.ErrorMessage); +throw new DeviceException(err,"Messaging:cancel"+_2fa); +}else{ +throw new DeviceException(err,"Messaging:cancel:operation failed"); +} +} +} +catch(e){ +__device_handle_exception(e,"__sp_messaging_setStatus: "+e); +} +}; +function __sp_sensors_descriptor(){ +this.interfaceName="sensors"; +if(window.__Service_Interface_Ver){ +this.version=__Service_Interface_Ver; +}else{ +this.version=1; +} +}; +function __sp_sensors_instance(){ +this.descriptor=new __sp_sensors_descriptor(); +this.getChannels=__sp_sensors_getChannels; +this.startChannel=__sp_sensors_setNotifier; +this.stopChannel=__sp_sensors_cancelNotifier; +this.getScaleFactor=__sp_sensors_getScaleFactor; +try{ +this.so=device.getServiceObject("Service.Sensor","ISensor"); +} +catch(e){ +this.so=null; +__device_handle_exception(e,"sensors service not available"); +} +}; +var __rotation_channel={ucb:null,tids:null}; +var __XYZ_channel={ucb:null,tids:null}; +var __orientation_channel={ucb:null,tids:null}; +function __rotation_cb(arg1,arg2,arg3){ +if(arg2!=event_cancelled){ +var _2fe=null; +if(arg3.ReturnValue){ +var time=arg3.ReturnValue.TimeStamp; +var xrot=arg3.ReturnValue.XRotation; +var yrot=arg3.ReturnValue.YRotation; +var zrot=arg3.ReturnValue.ZRotation; +arg3.ReturnValue.close(); +_2fe={}; +modifyObjectBaseProp(_2fe); +_2fe.timeStamp=time; +_2fe.rotationAboutXAxis=xrot; +_2fe.rotationAboutYAxis=yrot; +_2fe.rotationAboutZAxis=zrot; +} +__rotation_channel.ucb(_2fe); +} +}; +function __XYZ_cb(arg1,arg2,arg3){ +if(arg2!=event_cancelled){ +var _306=null; +if(arg3.ReturnValue){ +var time=arg3.ReturnValue.TimeStamp; +var _308=arg3.ReturnValue.XAxisData; +var _309=arg3.ReturnValue.YAxisData; +var _30a=arg3.ReturnValue.ZAxisData; +arg3.ReturnValue.close(); +_306={}; +modifyObjectBaseProp(_306); +_306.timeStamp=time; +_306.axisX=_308; +_306.axisY=_309; +_306.axisZ=_30a; +} +__XYZ_channel.ucb(_306); +} +}; +function __orientation_cb(arg1,arg2,arg3){ +if(arg2!=event_cancelled){ +var _30e=null; +if(arg3.ReturnValue){ +var time=arg3.ReturnValue.TimeStamp; +var _310=arg3.ReturnValue.DeviceOrientation; +arg3.ReturnValue.close(); +_30e={}; +modifyObjectBaseProp(_30e); +_30e.timeStamp=time; +_30e.deviceOrientation=_310; +} +__orientation_channel.ucb(_30e); +} +}; +function __sp_sensors_getChannels(){ +return ["Rotation","AccelerometerAxis","Orientation"]; +}; +function __sp_sensors_setNotifier(_311,_312,_313){ +var _314=new DeviceException(0,"dummy"); +if(!_311){ +throw new DeviceAPIError(_314.MISSING_ARG_ERR,"Callback is missing"); +} +if((typeof _311)!="function"){ +throw new DeviceAPIError(_314.INVALID_ARG_ERR,"Callback is of invalid type"); +} +if(_313&&((typeof _313)!="function")){ +throw new DeviceAPIError(_314.INVALID_ARG_ERR,"InValid error Callback"); +} +if(!_312){ +throw new DeviceAPIError(_314.MISSING_ARG_ERR,"Channel is missing"); +} +if((typeof _312)!="string"){ +throw new DeviceAPIError(_314.INVALID_ARG_ERR,"Channel is of invalid type"); +} +var rval; +var cb; +var _317={}; +modifyObjectBaseProp(_317); +switch(_312){ +case "Rotation": +_317.SearchCriterion="Rotation"; +cb=__rotation_cb; +__rotation_channel.ucb=_311; +break; +case "AccelerometerAxis": +_317.SearchCriterion="AccelerometerAxis"; +cb=__XYZ_cb; +__XYZ_channel.ucb=_311; +break; +case "Orientation": +_317.SearchCriterion="Orientation"; +cb=__orientation_cb; +__orientation_channel.ucb=_311; +break; +default: +throw new DeviceAPIError(_314.NOT_SUPPORTED_ERR,"Unsupported input channel"); +} +try{ +rval=this.so.ISensor.FindSensorChannel(_317); +if(_317){ +delete _317.SearchCriterion; +} +if(rval.ErrorCode!=0){ +throw new DeviceAPIError(_314.NOT_SUPPORTED_ERR,"StartChannel:Operation Failed"); +} +var cmap=[]; +var _319=[]; +var _31a=rval["ReturnValue"]; +var _31b=_31a.length; +cmap=_31a[0]; +var _31c={}; +modifyObjectBaseProp(_31c); +_31c.ListeningType="ChannelData"; +_31c.ChannelInfoMap=cmap; +var _31d=this.so.ISensor.RegisterForNotification(_31c,cb); +if(_31c){ +delete _31c.ChannelInfoMap; +delete _31c.ListeningType; +} +if(cmap){ +delete cmap.index; +} +_319[0]=_31d["TransactionID"]; +if(_31d.ErrorCode!=0){ +if(_31d.ErrorCode==1005){ +_313(new DeviceAPIError(_314.SERVICE_IN_USE_ERR,"Not Allowed Operation")); +return; +}else{ +throw new DeviceAPIError(_314.NOT_SUPPORTED_ERR,"StartChannel:Operation Failed"); +} +} +} +catch(e2){ +__device_handle_exception(e2,"__sp_sensors_setNotifier: RegisterForNotification: "+e2); +} +switch(_312){ +case "Rotation": +__rotation_channel.tid=_319; +break; +case "AccelerometerAxis": +__XYZ_channel.tid=_319; +break; +case "Orientation": +__orientation_channel.tid=_319; +break; +} +return _319; +}; +function __sp_sensors_cancelNotifier(_31e){ +var _31f=new DeviceException(0,"dummy"); +if(!_31e){ +throw new DeviceAPIError(_31f.MISSING_ARG_ERR,"Channel is missing"); +} +if((typeof _31e)!="string"){ +throw new DeviceAPIError(_31f.INVALID_ARG_ERR,"Channel is of invalid type"); +} +var id; +switch(_31e){ +case "Rotation": +id=__rotation_channel.tid; +__rotation_channel.tid=null; +break; +case "AccelerometerAxis": +id=__XYZ_channel.tid; +__XYZ_channel.tid=null; +break; +case "Orientation": +id=__orientation_channel.tid; +__orientation_channel.tid=null; +break; +default: +throw new DeviceAPIError(_31f.NOT_SUPPORTED_ERR,"Unsupported input channel"); +} +if(!id){ +throw new DeviceAPIError(_31f.DATA_NOT_FOUND_ERR,"Stop Channel:Operation Failed"); +} +var _321={}; +modifyObjectBaseProp(_321); +for(var i in id){ +_321.TransactionID=id[i]; +try{ +var _323=this.so.ISensor.Cancel(_321); +if(_321){ +delete _321.TransactionID; +} +if(_323.ErrorCode!=0){ +throw new DeviceAPIError(_31f.DATA_NOT_FOUND_ERR,"Stop Channel:Operation Failed"); +} +} +catch(e1){ +__device_handle_exception(e1,"__sp_sensors_cancelNotifier: "+e1); +} +} +}; +function __sp_sensors_getScaleFactor(_324){ +var _325=new DeviceException(0,"dummy"); +if(!_324){ +throw new DeviceAPIError(_325.MISSING_ARG_ERR,"Channel is missing"); +} +if((typeof _324)!="string"){ +throw new DeviceAPIError(_325.INVALID_ARG_ERR,"Channel is of invalid type"); +} +if(_324!="AccelerometerAxis"){ +throw new DeviceAPIError(_325.NOT_SUPPORTED_ERR,"Unsupported input channel"); +} +try{ +var _326={}; +_326.SearchCriterion="AccelerometerAxis"; +var rval=this.so.ISensor.FindSensorChannel(_326); +if(_326){ +delete _326.SearchCriterion; +} +if(rval.ErrorCode!=0){ +throw new DeviceAPIError(_325.NOT_SUPPORTED_ERR,"getScaleFactor:Operation Failed"); +} +var cmap=[]; +var _329=rval["ReturnValue"]; +cmap=_329[0]; +var _32a={}; +modifyObjectBaseProp(_32a); +_32a.ListeningType="ChannelData"; +_32a.ChannelInfoMap=cmap; +var _32b=this.so.ISensor.GetScaleFactor(_32a); +if(_32a){ +delete _32a.ChannelInfoMap; +delete _32a.ListeningType; +} +if(cmap){ +delete cmap.index; +} +if(_32b.ErrorCode!=0){ +throw new DeviceAPIError(_325.NOT_SUPPORTED_ERR,"getScaleFactor:Operation Failed"); +} +} +catch(e1){ +__device_handle_exception(e1,"__sp_sensors_getScaleFactor: "+e1); +} +return _32b["ReturnValue"]; +}; +var DATA_NOT_FOUND_ERR=101; +var DATA_OUT_OF_RANGE_ERR=105; +var NOT_ALLOWED_ERR=106; +var error=new DeviceException(); +function __sp_sysinfo_descriptor(){ +this.interfaceName="sysinfo"; +if(window.__Service_Interface_Ver){ +this.version=__Service_Interface_Ver; +}else{ +this.version=1; +} +}; +function __sp_sysinfo_instance(){ +this.descriptor=new __sp_sysinfo_descriptor(); +this.getChannelList=__sp_channel_descriptors_get; +this.getChannel=__sp_sysinfo_get; +this.startChannel=__sp_sysinfo_setNotifier; +this.stopChannel=__sp_sysinfo_cancelNotifier; +this.cancel=__sp_sysinfo_cancel; +try{ +this.so=device.getServiceObject("Service.SysInfo","ISysInfo"); +} +catch(e){ +this.so=null; +__device_handle_exception(e,"Sysinfo service not available"); +} +}; +function __sp_channel_descriptors_get(){ +var _32c=[{name:"Charging",data:[{name:"chargingStatus",range:"true or false",description:"Charging(true) ,Not charging(false)",}],style:["Sync","Oneshot","Notification"]},{name:"BluetoothOn",data:[{name:"btOn",range:"true or false",description:"BluetoothOn(true) ,BluetoothOff(false)",}],style:["Sync","Oneshot","Notification"]},{name:"PhoneLanguage",data:[{name:"phoneLanguage",range:"",description:"",}],style:["Sync","Oneshot"]},{name:"ProductType",data:[{name:"productType",range:"",description:"",}],style:["Sync","Oneshot"]},{name:"FirmwareVersion",data:[{name:"firmwareVersion",range:"",description:"",}],style:["Sync","Oneshot"]},{name:"BatteryLevel",data:[{name:"batteryLevel ",range:"0-100",description:"Percent battery charge"}],style:["Async","Oneshot","Notification"]},{name:"SignalStrength",data:[{name:"signalStrength",range:"0-100",description:"Signal Strength in Percentage"}],style:["Async","Oneshot","Notification"]},{name:"Network",data:[{name:"networkName ",description:"Network name"},{name:"networkStatus",range:"Available,Current,Forbidden",description:""},{name:"networkMode",range:"ModeGsm,ModeCdma,ModeWcdma",description:""},{name:"mobileCountryCode",range:"",description:""},{name:"mobileNetworkCode",range:"",description:""},{name:"locationStatus",range:"True, False",description:""},{name:"areaCode",range:"",description:""},{name:"cellID",range:"",description:""}],style:["Async","Oneshot","Notification"]},{name:"IMEI",data:[{name:"imei",range:"",description:""}],style:["Sync","Oneshot"]},{name:"OutOfMemory",data:[{name:"oomDrive",range:"",description:""}],style:["NA","NA","Notification"]},{name:"DeviceOrientation",data:[{name:"deviceOrientation",range:"Landscape,Portrait",description:""}],style:["Sync","Oneshot"]},{name:"RoamingFlag",data:[{name:"roamingFlag",range:"",description:""}],style:["Sync","Oneshot"]},{name:"DeviceInputMethod",data:[{name:"deviceInputMethod",range:"Touch,NonTouch,Hybrid",description:""}],style:["Sync","Oneshot"]},{name:"HomeNetwork",data:[{name:"networkName ",description:"Network name"},{name:"networkStatus",range:"Available,Current,Forbidden",description:""},{name:"networkMode",range:"ModeGsm,ModeCdma,ModeWcdma",description:""},{name:"mobileCountryCode",range:"",description:""},{name:"mobileNetworkCode",range:"",description:""},{name:"locationStatus",range:"True, False",description:""},{name:"areaCode",range:"",description:""},{name:"cellID",range:"",description:""}],style:["Async","Oneshot","Notification"]}]; +return _32c; +}; +var max=110; +var min=40; +var diff=max-min; +function __sp_device_sysinfo_toDecibel(_32d){ +var _32e=_32d/100; +var _32f=max-(_32e*diff); +_32f=Math.round(_32f); +return _32f; +}; +function __sp_device_sysinfo_toPercentage(_330){ +if(_330==0){ +return _330; +}else{ +var _331=max-_330; +var _332=_331/diff; +_332*=100; +_332=Math.round(_332); +return _332; +} +}; +function __sp_device_sysinfo_toBool(_333){ +if(_333==0){ +return false; +}else{ +return true; +} +}; +function mappingVerification(_334){ +if(_334==1016||_334==1012||_334==1010||_334==1009||_334==1005||_334==1000||_334==1011||_334==1007||_334==1003||_334==1002){ +return true; +}else{ +return false; +} +}; +function __sp_device_sysinfo_extract(_335){ +var _336=_335.Key; +var _337={}; +modifyObjectBaseProp(_337); +try{ +switch(_336){ +case "ChargingStatus": +_337.chargingStatus=__sp_device_sysinfo_toBool(_335.Status); +break; +case "BatteryStrength": +_337.batteryLevel=_335.Status; +break; +case "SignalStrength": +_337.signalStrength=__sp_device_sysinfo_toPercentage(_335.Status); +break; +case "CurrentNetwork": +var _338; +var mode; +switch(_335.NetworkStatus){ +case 0: +_338="Available"; +break; +case 1: +_338="Current"; +break; +case 2: +_338="Forbidden"; +break; +default: +_338="Unknown"; +break; +} +switch(_335.NetworkMode){ +case 1: +mode="ModeGsm"; +break; +case 3: +case 4: +mode="ModeCdma"; +break; +case 5: +mode="ModeWcdma"; +break; +default: +mode="Unknown"; +break; +} +_337.networkName=_335.NetworkName; +_337.networkStatus=_338; +_337.networkMode=mode; +_337.mobileCountryCode=_335.CountryCode; +_337.mobileNetworkCode=_335.NetworkCode; +_337.locationStatus=_335.LocationStatus; +_337.areaCode=_335.AreaCode; +_337.cellID=_335.CellId; +break; +case "DisplayLanguage": +_337.phoneLanguage=_335.StringData; +break; +case "BlueTooth": +_337.btOn=__sp_device_sysinfo_toBool(_335.Status); +break; +case "ProductType": +_337.productType=_335.StringData; +break; +case "FirmwareVersion": +_337.firmwareVersion=_335.StringData; +break; +case "DeviceInputMethod": +_337.deviceInputMethod=_335.StringData; +break; +default: +_337=_335; +break; +} +return _337; +} +catch(e){ +__device_handle_exception(e,"__sp_device_sysinfo_extract: "+e); +} +}; +function __sp_sysinfo_get(_33a,_33b,_33c){ +var so; +var rval; +var _33f=function(arg1,arg2,arg3){ +var _343=_33b; +var _344=_33c; +var op=null; +if(arg3.ErrorCode!=0){ +var _346=splitErrorMessage(arg3.ErrorMessage); +_344(new DeviceException(MapErrorCode[arg3.ErrorCode],"SysInfo:getChannel: "+_346)); +}else{ +if(arg3.ReturnValue){ +op=__sp_device_sysinfo_extract(arg3.ReturnValue); +arg3.ReturnValue.close(); +_343(op); +} +} +}; +var _347=false; +var _348="Status"; +var _349; +var _34a={}; +modifyObjectBaseProp(_34a); +try{ +switch(_33a){ +case "Charging": +_34a.Entity="Battery"; +_34a.Key="ChargingStatus"; +break; +case "BatteryLevel": +_34a.Entity="Battery"; +_34a.Key="BatteryStrength"; +_347=true; +break; +case "SignalStrength": +_34a.Entity="Network"; +_34a.Key="SignalStrength"; +_347=true; +break; +case "Network": +_34a.Entity="Network"; +_34a.Key="CurrentNetwork"; +_347=true; +break; +case "PhoneLanguage": +_34a.Entity="General"; +_34a.Key="DisplayLanguage"; +break; +case "BluetoothOn": +_34a.Entity="Connectivity"; +_34a.Key="BlueTooth"; +break; +case "ProductType": +_34a.Entity="Device"; +_34a.Key="ProductType"; +break; +case "FirmwareVersion": +_34a.Entity="Device"; +_34a.Key="FirmwareVersion"; +break; +case "DeviceInputMethod": +_34a.Entity="Device"; +_34a.Key="DeviceInputMethod"; +break; +default: +if(_33a==null){ +throw new DeviceException(MISSING_ARG_ERR,"SysInfo:getChannel:channel is missing"); +}else{ +if(typeof _33a!="string"){ +throw new DeviceException(error.INVALID_ARG_ERR,"SysInfo:getChannel:channel is of invalid type"); +}else{ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:getChannel:channel is invalid"); +} +} +} +if(_347){ +if(_33b==null){ +throw new DeviceException(MISSING_ARG_ERR,"SysInfo:getChannel:callback is missing"); +} +if(typeof _33b!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:getChannel:callback is invalid"); +} +if(_33c){ +if(typeof (_33c)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:getChannel: ErrorCallback is invalid"); +} +} +rval=this.so.ISysInfo.GetInfo(_34a,_33f); +if(rval.ErrorCode!=0){ +var _34b=mappingVerification(rval.ErrorCode); +if(_34b){ +switch(MapErrorCode[rval.ErrorCode]){ +case MISSING_ARG_ERR: +case INVALID_ARG_ERR: +if(rval.ErrorMessage){ +var _34c=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"SysInfo: getChannel: "+_34c); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"SysInfo:getChannel:Operation Failed"); +} +break; +default: +_33b(0); +} +}else{ +_33b(0); +} +} +return rval.TransactionID; +}else{ +rval=this.so.ISysInfo.GetInfo(_34a); +if(rval.ErrorCode!=0){ +if(rval.ErrorMessage){ +var _34d=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"SysInfo: getChannel: "+_34d); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"SysInfo:getChannel:Operation Failed"); +} +} +_349=__sp_device_sysinfo_extract(rval.ReturnValue); +return _349; +} +delete _34a; +} +catch(e){ +__device_handle_exception(e,"__sp_sysinfo_get: getChannel: "+e); +} +}; +var __cell_id_channel={scb:null,ecb:null,cancel_id:null}; +function __cell_id_channel_cb(arg1,arg2,arg3){ +var op=null; +if(arg3.ErrorCode){ +__cell_id_channel.ecb(arg3.ErrorCode); +}else{ +if(arg3.ReturnValue){ +op=arg3.ReturnValue; +arg3.ReturnValue.close(); +__cell_id_channel.scb(op); +} +} +}; +var __charging_status_channel={scb:null,ecb:null,cancel_id:null}; +function __charging_status_channel_cb(arg1,arg2,arg3){ +var op=null; +if(arg3.ErrorCode){ +__charging_status_channel.ecb(arg3.ErrorCode); +}else{ +if(arg3.ReturnValue){ +op=__sp_device_sysinfo_extract(arg3.ReturnValue); +arg3.ReturnValue.close(); +__charging_status_channel.scb(op); +} +} +}; +var __net_coverage_channel={scb:null,ecb:null,cancel_id:null}; +function __net_coverage_channel_cb(arg1,arg2,arg3){ +var op=null; +if(arg3.ErrorCode){ +__net_coverage_channel.ecb(arg3.ErrorCode); +}else{ +if(arg3.ReturnValue){ +op=__sp_device_sysinfo_extract(arg3.ReturnValue); +arg3.ReturnValue.close(); +__net_coverage_channel.scb(op); +} +} +}; +var __battery_level_channel={scb:null,ecb:null,cancel_id:null}; +function __battery_level_channel_cb(arg1,arg2,arg3){ +var op=null; +if(arg3.ErrorCode){ +__battery_level_channel.ecb(arg3.ErrorCode); +}else{ +if(arg3.ReturnValue){ +op=__sp_device_sysinfo_extract(arg3.ReturnValue); +arg3.ReturnValue.close(); +__battery_level_channel.scb(op); +} +} +}; +var __bluetooth_on_channel={scb:null,ecb:null,cancel_id:null}; +function __bluetooth_on_channel_cb(arg1,arg2,arg3){ +var op=null; +if(arg3.ErrorCode){ +__bluetooth_on_channel.ecb(arg3.ErrorCode); +}else{ +if(arg3.ReturnValue){ +op=__sp_device_sysinfo_extract(arg3.ReturnValue); +arg3.ReturnValue.close(); +__bluetooth_on_channel.scb(op); +} +} +}; +var __signal_channel={scb:null,ecb:null,cancel_id:null}; +function __signal_channel_cb(arg1,arg2,arg3){ +var op=null; +if(arg3.ErrorCode){ +__signal_channel.ecb(arg3.ErrorCode); +}else{ +if(arg3.ReturnValue){ +op=__sp_device_sysinfo_extract(arg3.ReturnValue); +arg3.ReturnValue.close(); +__signal_channel.scb(op); +} +} +}; +function __sp_sysinfo_setNotifier(_366,_367,_368,_369){ +var rval; +var _36b=null; +var cb=null; +var _36d={}; +if(_366==null){ +throw new DeviceException(MISSING_ARG_ERR,"SysInfo:startChannel:callback is missing"); +} +if(typeof _366!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:startChannel:callback is invalid"); +} +modifyObjectBaseProp(_36d); +try{ +switch(_367){ +case "Charging": +_36d.Entity="Battery"; +_36d.Key="ChargingStatus"; +_36b=__charging_status_channel; +cb=__charging_status_channel_cb; +break; +case "Network": +_36d.Entity="Network"; +_36d.Key="CurrentNetwork"; +_36b=__net_coverage_channel; +cb=__net_coverage_channel_cb; +break; +case "BatteryLevel": +_36d.Entity="Battery"; +_36d.Key="BatteryStrength"; +_36d.SystemData={}; +modifyObjectBaseProp(_36d.SystemData); +if(_368==null){ +_368=50; +} +if(!(_368>=0&&_368<=100)){ +throw new DeviceException(DATA_OUT_OF_RANGE_ERR,"SysInfo:startChannel:trigger is out of range"); +} +if(typeof _368!="number"){ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:startChannel:trigger is of invalid type"); +} +_36d.SystemData.Status=_368; +_36b=__battery_level_channel; +cb=__battery_level_channel_cb; +break; +case "SignalStrength": +_36d.Entity="Network"; +_36d.Key="SignalStrength"; +_36d.SystemData={}; +modifyObjectBaseProp(_36d.SystemData); +if(_368!=null){ +if(!(_368>=0&&_368<=100)){ +throw new DeviceException(DATA_OUT_OF_RANGE_ERR,"SysInfo:startChannel:trigger is out of range"); +} +if(typeof _368!="number"){ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:startChannel:trigger is of invalid type"); +} +_36d.SystemData.Status=__sp_device_sysinfo_toDecibel(_368); +} +_36b=__signal_channel; +cb=__signal_channel_cb; +break; +case "BluetoothOn": +_36d.Entity="Connectivity"; +_36d.Key="BlueTooth"; +_36b=__bluetooth_on_channel; +cb=__bluetooth_on_channel_cb; +break; +default: +var _36e; +if(_367==null){ +throw new DeviceException(MISSING_ARG_ERR,"SysInfo:startChannel:channel is missing"); +}else{ +if(typeof _367!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:startChannel:channel is of invalid type"); +}else{ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:startChannel:channel is invalid"); +} +} +if(_36d.SystemData){ +delete _36d.SystemData; +} +} +_36b.scb=_366; +_36b.ecb=_369; +if(_36b.ecb){ +if(typeof (_36b.ecb)!="function"){ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:startChannel: ErrorCallback is invalid"); +} +} +if(_36b.cancel_id){ +var _36f={}; +modifyObjectBaseProp(_36f); +_36f.TransactionID=_36b.cancel_id; +this.so.ISysInfo.Cancel(_36f); +_36b.cancel_id=null; +delete _36f; +} +rval=this.so.ISysInfo.GetNotification(_36d,cb); +delete _36d; +if(rval.ErrorCode!=0){ +switch(MapErrorCode[rval.ErrorCode]){ +case MISSING_ARG_ERR: +case INVALID_ARG_ERR: +if(rval.ErrorMessage){ +var _370=splitErrorMessage(rval.ErrorMessage); +throw new DeviceException(MapErrorCode[rval.ErrorCode],"SysInfo: startChannel: "+_370); +}else{ +throw new DeviceException(MapErrorCode[rval.ErrorCode],"SysInfo:startChannel:Operation Failed"); +} +break; +default: +_366(0); +} +} +_36b.cancel_id=rval.TransactionID; +return _36b.cancel_id; +} +catch(e){ +__device_handle_exception(e,"__sp_sysinfo_startChannel: "+e); +} +}; +function __sp_sysinfo_cancelNotifier(_371){ +try{ +switch(_371){ +case "CellId": +channel=__cell_id_channel; +break; +case "Charging": +channel=__charging_status_channel; +break; +case "Network": +channel=__net_coverage_channel; +break; +case "BatteryLevel": +channel=__battery_level_channel; +break; +case "SignalStrength": +channel=__signal_channel; +break; +case "BluetoothOn": +channel=__bluetooth_on_channel; +break; +default: +var _372; +if(_371==null){ +throw new DeviceException(MISSING_ARG_ERR,"SysInfo:stopChannel:channel is missing"); +}else{ +if(typeof _371!="string"){ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:stopChannel:channel is of invalid type"); +}else{ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:stopChannel:channel is invalid"); +} +} +} +if(channel.cancel_id){ +var _373={}; +modifyObjectBaseProp(_373); +_373.TransactionID=channel.cancel_id; +var _374=this.so.ISysInfo.Cancel(_373); +delete _373; +if(_374.ErrorCode!=0){ +if(_374.ErrorMessage){ +var _375=splitErrorMessage(_374.ErrorMessage); +throw new DeviceException(MapErrorCode[_374.ErrorCode],"SysInfo: stopChannel: "+_375); +}else{ +throw new DeviceException(MapErrorCode[_374.ErrorCode],"SysInfo:stopChannel:Operation Failed"); +} +} +channel.cancel_id=null; +}else{ +throw new DeviceException(DATA_NOT_FOUND_ERR,"SysInfo:stopChannel:channel not started"); +} +} +catch(e){ +__device_handle_exception(e,"__sp_sysinfo_stopChannel: "+e); +} +}; +function __sp_sysinfo_cancel(_376){ +try{ +var _377=0; +if(_376==null){ +throw new DeviceException(MISSING_ARG_ERR,"SysInfo:cancel:Id is missing"); +} +if(typeof _376!="number"){ +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:cancel:Id is of invalid type"); +} +if(_376==__charging_status_channel.cancel_id||_376==__net_coverage_channel.cancel_id||_376==__battery_level_channel.cancel_id||_376==__bluetooth_on_channel.cancel_id||_376==__signal_channel.cancel_id){ +_377=1; +} +if(_377!=1){ +var _378={TransactionID:_376}; +var _379=this.so.ISysInfo.Cancel(_378); +if(_379.ErrorCode!=0){ +if(_379.ErrorMessage){ +var _37a=splitErrorMessage(_379.ErrorMessage); +throw new DeviceException(INVALID_ARG_ERR,"SysInfo:cancel: "+_37a); +}else{ +throw new DeviceException(MapErrorCode[_379.ErrorCode],"SysInfo:cancel:Operation Failed"); +} +} +}else{ +_377=0; +throw new DeviceException(NOT_ALLOWED_ERR,"SysInfo:cancel:Cannot Cancel a channel started using startChannel "); +} +} +catch(e){ +__device_handle_exception(e,"__sp_sysinfo_cancel: "+e); +} +}; +var err_missing_argument=1003; +var err_bad_argument=1002; +var err_ServiceNotSupported=1004; +var err_InvalidService_Argument=1000; +function convertFromPS2JS(_37b){ +var _37c=new DeviceAPIError(0,"dummy"); +var _37d; +switch(_37b){ +case 1016: +_37d=_37c.TIMEOUT_ERR; +break; +case 1012: +_37d=_37c.DATA_NOT_FOUND_ERR; +break; +case 1010: +_37d=_37c.DATA_ALREADY_EXISTS_ERR; +break; +case 1009: +_37d=_37c.SERVICE_BUSY_ERR; +break; +case 1005: +_37d=_37c.SERVICE_IN_USE_ERR; +break; +default: +_37d=1001; +} +return _37d; +}; +function __sp_landmarks_descriptor(){ +this.interfaceName="landmarks"; +if(window.__Service_Interface_Ver){ +this.version=__Service_Interface_Ver; +}else{ +this.version=1; +} +}; +function __sp_landmarks_instance(){ +this.descriptor=new __sp_landmarks_descriptor(); +this.startEditor=__sp_landmarks_startEditor; +this.getCategories=__sp_landmarks_category_getList; +this.addCategory=__sp_landmarks_category_add; +this.updateCategory=__sp_landmarks_category_update; +this.deleteCategory=__sp_landmarks_category_delete; +this.getLandmarks=__sp_landmarks_getList; +this.addLandmark=__sp_landmarks_add; +this.updateLandmark=__sp_landmarks_update; +this.deleteLandmark=__sp_landmarks_delete; +this.importLandmarks=__sp_landmarks_import; +this.exportLandmarks=__sp_landmarks_export; +this.organizeLandmarks=__sp_landmarks_organize; +this.cancel=__sp_landmarks_cancel; +try{ +this.so=device.getServiceObject("Service.Landmarks","IDataSource"); +} +catch(e){ +__device_handle_exception(e,"Landmarks service not available"); +} +}; +var __SP_CATEGORY_MIN_LOCAL_ID=16; +var __sp_category_list=[{id:1,globalId:3000,name:"Accommodation"},{id:2,globalId:6000,name:"Businesses"},{id:3,globalId:9000,name:"Telecommunications"},{id:4,globalId:12000,name:"Education"},{id:5,globalId:15000,name:"Entertainment"},{id:6,globalId:18000,name:"Food and drink"},{id:7,globalId:21000,name:"Geographical locations"},{id:8,globalId:24000,name:"Outdoor activities"},{id:9,globalId:27000,name:"People"},{id:10,globalId:30000,name:"Public services"},{id:11,globalId:33000,name:"Places of worship"},{id:12,globalId:36000,name:"Shopping"},{id:13,globalId:39000,name:"Sightseeing"},{id:14,globalId:42000,name:"Sports"},{id:15,globalId:45000,name:"Transport"}]; +function __sp_landmarks_category_iterator(_37e){ +this.iter=_37e; +this.next=__sp_landmarks_category_iterator_get_next; +this.hasNext=__sp_landmarks_category_iterator_has_next; +this.hasElement=false; +this.catItem=null; +this.close=__sp_landmarks_category_close; +}; +function __sp_landmarks_category_close(){ +this.iter.close(); +}; +function __sp_landmarks_category_iterator_has_next(){ +if(this.hasElement){ +if(this.catItem!==null){ +return true; +}else{ +return false; +} +}else{ +this.catItem=this.iter.getNext(); +this.hasElement=true; +if(typeof this.catItem=="undefined"){ +this.catItem=null; +return false; +}else{ +return true; +} +} +}; +function __sp_landmarks_category_iterator_get_next(){ +if(this.hasElement){ +var _37f=new Object(); +_37f=this.catItem; +this.catItem=this.iter.getNext(); +if(typeof (this.catItem)=="undefined"){ +this.catItem=null; +} +return new __sp_device_category_obj(_37f); +}else{ +this.catItem=this.iter.getNext(); +if(typeof this.catItem=="undefined"){ +this.hasElement=true; +this.catItem=null; +return null; +}else{ +this.hasElement=true; +var _380=new Object(); +_380=this.lmItem; +this.catItem=this.iter.getNext(); +if(typeof (this.catItem)=="undefined"){ +this.catItem=null; +} +return new __sp_device_category_obj(_380); +} +} +}; +function __sp_landmarks_iterator(_381){ +this.iter=_381; +this.next=__sp_landmarks_iterator_get_next; +this.hasNext=__sp_landmarks_iterator_has_next; +this.hasElement=false; +this.lmItem=null; +this.close=__sp_landmarks_landmarkitem_close; +}; +function __sp_landmarks_landmarkitem_close(){ +this.iter.close(); +}; +function __sp_device_landmark_location_obj(_382){ +this.longitude=(_382.Longitude==undefined)?null:_382.Longitude; +this.latitude=(_382.Latitude==undefined)?null:_382.Latitude; +if(_382.Altitude){ +this.altitude=_382.Altitude; +} +if(_382.HAccuracy){ +this.hAccuracy=_382.HAccuracy; +} +if(_382.VAccuracy){ +this.vAccuracy=_382.VAccuracy; +} +}; +function __sp_landmark_position_obj(_383){ +if(_383.longitude!==undefined){ +this.Longitude=_383.longitude; +} +if(_383.latitude!==undefined){ +this.Longitude=_383.latitude; +} +}; +function __sp_landmark_position_obj_fromJS_2LIW(_384){ +this.Longitude=_384.longitude; +this.Latitude=_384.latitude; +if(_384.altitude){ +this.Altitude=_384.altitude; +} +if(_384.hAccuracy){ +this.HAccuracy=_384.hAccuracy; +} +if(_384.vAccuracy){ +this.VAccuracy=_384.vAccuracy; +} +}; +function __sp_landmark_bounded_area_obj(area){ +this.NorthLatitude=area.coordinate1.latitude; +this.SouthLatitude=area.coordinate2.latitude; +this.EastLongitude=area.coordinate1.longitude; +this.WestLongitude=area.coordinate2.longitude; +}; +function __sp_device_landmark_address_obj(_386){ +if(_386.Street){ +this.street=_386.Street; +} +if(_386.City){ +this.city=_386.City; +} +if(_386.state){ +this.state=_386.state; +} +if(_386.AreaCode){ +this.postalCode=_386.AreaCode; +} +if(_386.Country){ +this.country=_386.Country; +} +if(_386.BuildingName){ +this.building=_386.BuildingName; +} +if(_386.Telephone){ +this.phone=_386.Telephone; +} +}; +function __sp_landmark_address_obj(_387){ +if(_387.street){ +this.Street=_387.street; +} +if(_387.locale){ +this.City=_387.locale; +} +if(_387.region){ +this.District=_387.region; +} +if(_387.code){ +this.AreaCode=_387.code; +} +if(_387.country){ +this.Country=_387.country; +} +}; +function __sp_get_category_ids_for_names(_388){ +var _389=new Array(); +var _38a=0; +for(var i in _388){ +for(var ii in __sp_category_list){ +if(__sp_category_list[ii].name.toLowerCase()==_388[i].toLowerCase()){ +_389.push(__sp_category_list[ii].id.toString()); +_38a=1; +} +} +if(_38a==0){ +return null; +} +_38a=0; +} +return _389; +}; +function __sp_device_landmark_obj(_38d){ +this.landmarkId=_38d.id; +if(_38d.LandmarkName){ +this.name=_38d.LandmarkName; +} +if(_38d.LandmarkDesc){ +this.description=_38d.LandmarkDesc; +} +if(_38d.CoverageRadius){ +this.coverageRadius=_38d.CoverageRadius; +} +if(_38d.LandmarkPosition){ +this.position=new __sp_device_landmark_location_obj(_38d.LandmarkPosition); +} +if(_38d.CategoryInfo){ +this.categoryIds=_38d.CategoryInfo; +} +if(_38d.LandmarkFields){ +this.address=new __sp_device_landmark_address_obj(_38d.LandmarkFields); +} +}; +function __sp_landmark_obj(_38e,str){ +if(_38e.name){ +this.LandmarkName=_38e.name; +} +if(_38e.landmarkId){ +this.id=_38e.landmarkId; +} +if(_38e.description){ +this.LandmarkDesc=_38e.description; +} +if(_38e.position){ +this.LandmarkPosition=new __sp_landmark_position_obj_fromJS_2LIW(_38e.position); +} +if(_38e.coverageRadius){ +this.CoverageRadius=_38e.coverageRadius; +} +if(_38e.categories){ +this.CategoryInfo=__sp_get_category_ids_for_names(_38e.categories); +if(!this.CategoryInfo){ +throw new DeviceError("Landmarks: "+str+"Category is invalid",err_bad_argument); +} +} +if(_38e.address){ +this.LandmarkFields=new __sp_landmark_address_obj(_38e.address); +} +if(_38e.building){ +if(!this.LandmarkFields){ +this.LandmarkFields=new Object(); +modifyObjectBaseProp(this.LandmarkFields); +} +this.LandmarkFields.BuildingName=_38e.building; +} +if(_38e.phone){ +if(!this.LandmarkFields){ +this.LandmarkFields=new Object(); +modifyObjectBaseProp(this.LandmarkFields); +} +this.LandmarkFields.Telephone=_38e.phone; +} +}; +function __sp_landmarks_iterator_has_next(){ +if(this.hasElement){ +if(this.lmItem!==null){ +return true; +}else{ +return false; +} +}else{ +this.lmItem=this.iter.getNext(); +this.hasElement=true; +if(typeof this.lmItem=="undefined"){ +this.lmItem=null; +return false; +}else{ +return true; +} +} +}; +function __sp_landmarks_iterator_get_next(){ +if(this.hasElement){ +var _390=new Object(); +_390=this.lmItem; +this.lmItem=this.iter.getNext(); +if(typeof (this.lmItem)=="undefined"){ +this.lmItem=null; +} +return new __sp_device_landmark_obj(_390); +}else{ +this.lmItem=this.iter.getNext(); +if(typeof this.lmItem=="undefined"){ +this.hasElement=true; +this.lmItem=null; +return null; +}else{ +this.hasElement=true; +var _391=new Object(); +_391=this.lmItem; +this.lmItem=this.iter.getNext(); +if(typeof (this.lmItem)=="undefined"){ +this.lmItem=null; +} +return new __sp_device_landmark_obj(_391); +} +} +}; +function __sp_category_obj(_392){ +if(_392.name){ +this.CategoryName=_392.name; +} +if(_392.categoryId){ +this.id=_392.categoryId; +} +}; +function __sp_device_category_obj(_393){ +this.categoryId=_393.id; +this.name=_393.CategoryName; +}; +var LANDMARKS_APP_ID=270501282; +function __sp_landmarks_startEditor(_394,_395,_396){ +error=new DeviceAPIError(0,"dummy"); +if((_394===undefined)||(_394===null)||(_394==="")){ +throw new DeviceAPIError(error.MISSING_ARG_ERR,"StartEditor:Missing Success Callback"); +} +if((typeof _394)!="function"){ +throw new DeviceAPIError(error.INVALID_ARG_ERR,"StartEditor:Success Callback must be of type function"); +} +if(_395!==undefined){ +if((_395!==null)&&(_395!=="")){ +throw new DeviceAPIError(error.NOT_SUPPORTED_ERR,"startEditor:landmark item is not supported"); +} +} +if((_396!==undefined)&&(_396!==null)&&(_396!=="")){ +if((typeof _396)!="function"){ +throw new DeviceAPIError(error.INVALID_ARG_ERR,"StartEditor:error callback must be of type function"); +} +} +var _397=270501282; +var _398; +function __s60_on_app_exit(){ +window.xwidget.onshow=null; +if(_398){ +_398(); +} +}; +var _399=function(arg1,arg2,arg3){ +_394(arg1,arg2,arg3); +}; +__s60_start_and_wait(_397,"",_399); +}; +function __sp_landmarks_category_getList(_39d,name,_39f){ +try{ +var _3a0=new DeviceAPIError(0,"dummy"); +if((_39d===undefined)||(_39d==="")||(_39d===null)){ +throw new DeviceAPIError(_3a0.MISSING_ARG_ERR,"callback is missing"); +} +if(typeof (_39d)!="function"){ +throw new DeviceAPIError(_3a0.INVALID_ARG_ERR,"invalid callback argument"); +} +var _3a1=false; +if((_39f!==undefined)&&(_39f!==null)&&(_39f!=="")){ +if(typeof (_39f)!="function"){ +throw new DeviceAPIError(_3a0.INVALID_ARG_ERR,"invalid error callback argument"); +}else{ +_3a1=true; +} +} +var _3a2=new Object(); +modifyObjectBaseProp(_3a2); +_3a2.Type="Category"; +if((name!==undefined)&&(name!==null)&&(name!=="")){ +if(typeof (name)!="string"){ +throw new DeviceAPIError(_3a0.INVALID_ARG_ERR,"name must be a string"); +} +} +if(name){ +_3a2.Filter=new Object(); +modifyObjectBaseProp(_3a2.Filter); +_3a2.Filter.CategoryName=name; +_3a2.Filter.PreviousMatchesOnly=false; +} +this.invoker=function(arg1,arg2,arg3){ +var iter=null; +if(arg3.ErrorCode||(arg2==4)){ +var _3a7=convertFromPS2JS(arg3.ErrorCode); +var _3a8=new DeviceAPIError(_3a7,arg3.ErrorMessage); +if(_3a1){ +_39f(_3a8); +} +}else{ +if(arg3.ReturnValue){ +iter=new __sp_landmarks_category_iterator(arg3.ReturnValue); +_39d(iter); +} +} +}; +var rval=this.so.IDataSource.GetList(_3a2,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case 1003: +throw new DeviceAPIError(_3a0.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case 1002: +throw new DeviceAPIError(_3a0.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case 1004: +throw new DeviceAPIError(_3a0.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case 1000: +throw new DeviceAPIError(_3a0.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_category_add(_3aa,_3ab,_3ac){ +try{ +var _3ad=new DeviceAPIError(0,"dummy"); +var _3ae=true; +if(_3aa===undefined){ +throw new DeviceAPIError(_3ad.MISSING_ARG_ERR,"AddSucessCallback is missing"); +}else{ +if(((_3aa===null)||(_3aa===""))&&(typeof (_3aa)!="number")){ +throw new DeviceAPIError(_3ad.MISSING_ARG_ERR,"AddSucessCallback is missing"); +}else{ +if(typeof (_3aa)!="function"){ +throw new DeviceAPIError(_3ad.INVALID_ARG_ERR,"invalid AddSucessCallback argument"); +} +} +} +if(_3ab===undefined||_3ab===null){ +throw new DeviceAPIError(_3ad.MISSING_ARG_ERR,"CategoryItem is missing"); +}else{ +if(typeof (_3ab)!=="object"){ +throw new DeviceAPIError(_3ad.INVALID_ARG_ERR,"invalid CategoryItem argument"); +} +} +if((_3ac!=undefined)){ +if((!_3ac)&&(typeof (_3ac)!="number")){ +_3ae=false; +}else{ +if((typeof (_3ac)!="function")){ +throw new DeviceAPIError(_3ad.INVALID_ARG_ERR,"invalid ErrorCallback callback"); +} +} +}else{ +_3ae=false; +} +this.invoker=function(arg1,arg2,arg3){ +var id=null; +if(arg2==4||arg3.ErrorCode){ +var _3b3=convertFromPS2JS(arg3.ErrorCode); +var _3b4=new DeviceAPIError(_3b3,arg3.ErrorMessage); +if(_3ae){ +_3ac(_3b4); +} +}else{ +if(arg3.ReturnValue){ +id=arg3.ReturnValue; +} +_3aa(id); +} +}; +var _3b5=new Object(); +modifyObjectBaseProp(_3b5); +_3b5.Type="Category"; +_3b5.Data=new __sp_category_obj(_3ab); +var rval=this.so.IDataSource.Add(_3b5,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +throw new DeviceAPIError(_3ad.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case err_bad_argument: +throw new DeviceAPIError(_3ad.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case err_ServiceNotSupported: +throw new DeviceAPIError(_3ad.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case err_InvalidService_Argument: +throw new DeviceAPIError(_3ad.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_add(_3b7,_3b8,_3b9){ +try{ +var _3ba=new DeviceAPIError(0,"dummy"); +var _3bb=true; +if(_3b7===undefined){ +throw new DeviceAPIError(_3ba.MISSING_ARG_ERR,"AddSucessCallback is missing"); +}else{ +if(((_3b7===null)||(_3b7===""))&&(typeof (_3b7)!="number")){ +throw new DeviceAPIError(_3ba.MISSING_ARG_ERR,"AddSucessCallback is missing"); +}else{ +if(typeof (_3b7)!="function"){ +throw new DeviceAPIError(_3ba.INVALID_ARG_ERR,"invalid AddSucessCallback argument"); +} +} +} +if(_3b8===undefined||_3b8===null){ +throw new DeviceAPIError(_3ba.MISSING_ARG_ERR,"LandmarkItem is missing"); +}else{ +if(typeof (_3b8)!=="object"){ +throw new DeviceAPIError(_3ba.INVALID_ARG_ERR,"invalid LandmarkItem argument"); +} +} +if((_3b9!=undefined)){ +if((!_3b9)&&(typeof (_3b9)!="number")){ +_3bb=false; +}else{ +if((typeof (_3b9)!="function")){ +throw new DeviceAPIError(_3ba.INVALID_ARG_ERR,"invalid ErrorCallback callback"); +} +} +}else{ +_3bb=false; +} +this.invoker=function(arg1,arg2,arg3){ +var id=null; +if(arg2==4||arg3.ErrorCode){ +var _3c0=convertFromPS2JS(arg3.ErrorCode); +var _3c1=new DeviceAPIError(_3c0,arg3.ErrorMessage); +if(_3bb){ +_3b9(_3c1); +} +}else{ +if(arg3.ReturnValue){ +id=arg3.ReturnValue; +} +_3b7(id); +} +}; +var str="addLandmark: "; +var _3c3=new Object(); +modifyObjectBaseProp(_3c3); +_3c3.Type="Landmark"; +_3c3.Data=new __sp_landmark_obj(_3b8,str); +var rval=this.so.IDataSource.Add(_3c3,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +throw new DeviceAPIError(_3ba.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case err_bad_argument: +throw new DeviceAPIError(_3ba.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case err_ServiceNotSupported: +throw new DeviceAPIError(_3ba.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case err_InvalidService_Argument: +throw new DeviceAPIError(_3ba.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_delete(_3c5,_3c6,_3c7){ +try{ +var _3c8=new DeviceAPIError(0,"dummy"); +var _3c9=true; +if(_3c5===undefined){ +throw new DeviceAPIError(_3c8.MISSING_ARG_ERR,"SucessCallback is missing"); +}else{ +if(((_3c5===null)||(_3c5===""))&&(typeof (_3c5)!="number")){ +throw new DeviceAPIError(_3c8.MISSING_ARG_ERR,"SucessCallback is missing"); +}else{ +if(typeof (_3c5)!="function"){ +throw new DeviceAPIError(_3c8.INVALID_ARG_ERR,"invalid SucessCallback argument"); +} +} +} +if(_3c6===undefined||_3c6===null){ +throw new DeviceAPIError(_3c8.MISSING_ARG_ERR,"landmarkId is missing"); +}else{ +if(typeof (_3c6)!=="string"){ +throw new DeviceAPIError(_3c8.INVALID_ARG_ERR,"invalid landmarkId argument"); +} +} +if((_3c7!=undefined)){ +if((!_3c7)&&(typeof (_3c7)!="number")){ +_3c9=false; +}else{ +if((typeof (_3c7)!="function")){ +throw new DeviceAPIError(_3c8.INVALID_ARG_ERR,"invalid ErrorCallback callback"); +} +} +}else{ +_3c9=false; +} +this.invoker=function(arg1,arg2,arg3){ +if(arg2==4||arg3.ErrorCode){ +var _3cd=convertFromPS2JS(arg3.ErrorCode); +var _3ce=new DeviceAPIError(_3cd,arg3.ErrorMessage); +if(_3c9){ +_3c7(_3ce); +} +}else{ +_3c5(); +} +}; +var _3cf=new Object(); +modifyObjectBaseProp(_3cf); +_3cf.Type="Landmark"; +_3cf.Data=new Object(); +modifyObjectBaseProp(_3cf.Data); +_3cf.Data.id=_3c6; +var rval=this.so.IDataSource.Delete(_3cf,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +throw new DeviceAPIError(_3c8.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case err_bad_argument: +throw new DeviceAPIError(_3c8.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case err_ServiceNotSupported: +throw new DeviceAPIError(_3c8.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case err_InvalidService_Argument: +throw new DeviceAPIError(_3c8.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_update(_3d1,_3d2,_3d3){ +try{ +var _3d4=new DeviceAPIError(0,"dummy"); +var _3d5=true; +if(_3d1===undefined){ +throw new DeviceAPIError(_3d4.MISSING_ARG_ERR,"SuccessCallback is missing"); +}else{ +if(((_3d1===null)||(_3d1===""))&&(typeof (_3d1)!="number")){ +throw new DeviceAPIError(_3d4.MISSING_ARG_ERR,"SuccessCallback is missing"); +}else{ +if(typeof (_3d1)!="function"){ +throw new DeviceAPIError(_3d4.INVALID_ARG_ERR,"invalid SuccessCallback argument"); +} +} +} +if(_3d2===undefined||_3d2===null){ +throw new DeviceAPIError(_3d4.MISSING_ARG_ERR,"LandmarkItem is missing"); +}else{ +if(typeof (_3d2)!=="object"){ +throw new DeviceAPIError(_3d4.INVALID_ARG_ERR,"invalid LandmarkItem argument"); +} +} +if((_3d3!=undefined)){ +if((!_3d3)&&(typeof (_3d3)!="number")){ +_3d5=false; +}else{ +if((typeof (_3d3)!="function")){ +throw new DeviceAPIError(_3d4.INVALID_ARG_ERR,"invalid ErrorCallback callback"); +} +} +}else{ +_3d5=false; +} +this.invoker=function(arg1,arg2,arg3){ +if(arg2==4||arg3.ErrorCode){ +var _3d9=convertFromPS2JS(arg3.ErrorCode); +var _3da=new DeviceAPIError(_3d9,arg3.ErrorMessage); +if(_3d5){ +_3d3(_3da); +} +}else{ +_3d1(); +} +}; +var str="updateLandmark: "; +var _3dc=new Object(); +modifyObjectBaseProp(_3dc); +_3dc.Type="Landmark"; +_3dc.Data=new __sp_landmark_obj(_3d2,str); +var rval=this.so.IDataSource.Add(_3dc,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +throw new DeviceAPIError(_3d4.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case err_bad_argument: +throw new DeviceAPIError(_3d4.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case err_ServiceNotSupported: +throw new DeviceAPIError(_3d4.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case err_InvalidService_Argument: +throw new DeviceAPIError(_3d4.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_category_update(_3de,_3df,_3e0){ +try{ +var _3e1=new DeviceAPIError(0,"dummy"); +var _3e2=true; +if(_3de===undefined){ +throw new DeviceAPIError(_3e1.MISSING_ARG_ERR,"SucessCallback is missing"); +}else{ +if(((_3de===null)||(_3de===""))&&(typeof (_3de)!="number")){ +throw new DeviceAPIError(_3e1.MISSING_ARG_ERR,"SucessCallback is missing"); +}else{ +if(typeof (_3de)!="function"){ +throw new DeviceAPIError(_3e1.INVALID_ARG_ERR,"invalid SucessCallback argument"); +} +} +} +if(_3df===undefined||_3df===null){ +throw new DeviceAPIError(_3e1.MISSING_ARG_ERR,"CategoryItem is missing"); +}else{ +if(typeof (_3df)!=="object"){ +throw new DeviceAPIError(_3e1.INVALID_ARG_ERR,"invalid CategoryItem argument"); +} +} +if((_3e0!=undefined)){ +if((!_3e0)&&(typeof (_3e0)!="number")){ +_3e2=false; +}else{ +if((typeof (_3e0)!="function")){ +throw new DeviceAPIError(_3e1.INVALID_ARG_ERR,"invalid ErrorCallback callback"); +} +} +}else{ +_3e2=false; +} +this.invoker=function(arg1,arg2,arg3){ +if(arg2==4||arg3.ErrorCode){ +var _3e6=convertFromPS2JS(arg3.ErrorCode); +var _3e7=new DeviceAPIError(_3e6,arg3.ErrorMessage); +if(_3e2){ +_3e0(_3e7); +} +}else{ +_3de(); +} +}; +var _3e8=new Object(); +modifyObjectBaseProp(_3e8); +_3e8.Type="Category"; +_3e8.Data=new __sp_category_obj(_3df); +var rval=this.so.IDataSource.Add(_3e8,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +throw new DeviceAPIError(_3e1.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case err_bad_argument: +throw new DeviceAPIError(_3e1.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case err_ServiceNotSupported: +throw new DeviceAPIError(_3e1.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case err_InvalidService_Argument: +throw new DeviceAPIError(_3e1.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_category_delete(_3ea,_3eb,_3ec){ +try{ +var _3ed=new DeviceAPIError(0,"dummy"); +var _3ee=true; +if(_3ea===undefined){ +throw new DeviceAPIError(_3ed.MISSING_ARG_ERR,"SucessCallback is missing"); +}else{ +if(((_3ea===null)||(_3ea===""))&&(typeof (_3ea)!="number")){ +throw new DeviceAPIError(_3ed.MISSING_ARG_ERR,"SucessCallback is missing"); +}else{ +if(typeof (_3ea)!="function"){ +throw new DeviceAPIError(_3ed.INVALID_ARG_ERR,"invalid SucessCallback argument"); +} +} +} +if(_3eb===undefined||_3eb===null){ +throw new DeviceAPIError(_3ed.MISSING_ARG_ERR,"categoryId is missing"); +}else{ +if(typeof (_3eb)!=="string"){ +throw new DeviceAPIError(_3ed.INVALID_ARG_ERR,"invalid categoryId argument"); +} +} +if((_3ec!=undefined)){ +if((!_3ec)&&(typeof (_3ec)!="number")){ +_3ee=false; +}else{ +if((typeof (_3ec)!="function")){ +throw new DeviceAPIError(_3ed.INVALID_ARG_ERR,"invalid ErrorCallback callback"); +} +} +}else{ +_3ee=false; +} +this.invoker=function(arg1,arg2,arg3){ +if(arg2==4||arg3.ErrorCode){ +var _3f2=convertFromPS2JS(arg3.ErrorCode); +var _3f3=new DeviceAPIError(_3f2,arg3.ErrorMessage); +if(_3ee){ +_3ec(_3f3); +} +}else{ +_3ea(); +} +}; +var _3f4=new Object(); +modifyObjectBaseProp(_3f4); +_3f4.Type="Category"; +_3f4.Data=new Object(); +modifyObjectBaseProp(_3f4.Data); +_3f4.Data.id=_3eb; +var rval=this.so.IDataSource.Delete(_3f4,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +throw new DeviceAPIError(_3ed.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case err_bad_argument: +throw new DeviceAPIError(_3ed.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case err_ServiceNotSupported: +throw new DeviceAPIError(_3ed.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case err_InvalidService_Argument: +throw new DeviceAPIError(_3ed.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_getList(_3f6,_3f7,_3f8){ +try{ +var _3f9=new DeviceAPIError(0,"dummy"); +var _3fa=true; +var _3fb=false; +var _3fc=false; +if(_3f6===undefined){ +throw new DeviceAPIError(_3f9.MISSING_ARG_ERR,"SucessCallback is missing"); +}else{ +if(((_3f6===null)||(_3f6===""))&&(typeof (_3f6)!="number")){ +throw new DeviceAPIError(_3f9.MISSING_ARG_ERR,"SucessCallback is missing"); +}else{ +if(typeof (_3f6)!="function"){ +throw new DeviceAPIError(_3f9.INVALID_ARG_ERR,"invalid SucessCallback argument"); +} +} +} +if(_3f7!==undefined){ +if((typeof (_3f7)!="object")){ +if((_3f7===null||_3f7==="")&&(typeof (_3f7)!="number")){ +_3fb=true; +_3fc=true; +}else{ +if(typeof (_3f7)=="string"){ +_3fb=true; +_3fc=false; +}else{ +throw new DeviceAPIError(_3f9.INVALID_ARG_ERR,"invalid match criteria"); +} +} +} +if(typeof (_3f7)!="object"){ +if(!_3fb){ +throw new DeviceAPIError(_3f9.INVALID_ARG_ERR,"invalid match criteria"); +} +} +} +if((_3f8!=undefined)){ +if((!_3f8)&&(typeof (_3f8)!="number")){ +_3fa=false; +}else{ +if((typeof (_3f8)!="function")){ +throw new DeviceAPIError(_3f9.INVALID_ARG_ERR,"invalid error callback"); +} +} +}else{ +_3fa=false; +} +var _3fd=new Object(); +modifyObjectBaseProp(_3fd); +_3fd.Type="Landmark"; +if(_3f7){ +_3fd.Filter=new Object(); +modifyObjectBaseProp(_3fd.Filter); +if(typeof _3f7=="object"){ +if(_3f7.name!==undefined){ +_3fd.Filter.LandmarkName=_3f7.name; +} +if(_3f7.description!==undefined){ +_3fd.Filter.LandmarkDesc=_3f7.description; +} +if(_3f7.categoryId!==undefined){ +_3fd.Filter.categoryId=_3f7.categoryId; +} +if(_3f7.position!==undefined){ +if((_3f7.position!==null)&&(_3f7.position!=="")&&(typeof (_3f7.position)!="object")){ +throw new DeviceAPIError(_3f9.INVALID_ARG_ERR,"position must be an object"); +} +if(_3f7.position===null){ +} +if(_3f7.position===""){ +throw new DeviceAPIError(_3f9.INVALID_ARG_ERR,"position must be an object"); +} +if(_3f7.position){ +_3fd.Filter.LandmarkPosition=new __sp_landmark_position_obj(_3f7.position); +} +} +if(_3f7.coverageRadiusUsed!==undefined){ +_3fd.Filter.CoverageRadiusOption=_3f7.coverageRadiusUsed; +} +if(_3f7.searchRadius!==undefined){ +_3fd.Filter.MaximumDistance=_3f7.searchRadius; +} +if(_3f7.area!==undefined){ +if((_3f7.area!==null)&&(_3f7.area!=="")&&(typeof (_3f7.area)!="object")){ +throw new DeviceAPIError(_3f9.INVALID_ARG_ERR,"area must be an object"); +} +if(_3f7.area===null){ +_3fd.Filter.BoundedArea=null; +} +if(_3f7.area===""){ +throw new DeviceAPIError(_3f9.INVALID_ARG_ERR,"area must be an object"); +} +if(_3f7.area){ +_3fd.Filter.LandmarkPosition=new __sp_landmark_bounded_area_obj(_3f7.area); +} +} +}else{ +if(__device_typeof(_3f7).toLowerCase()=="string"){ +_3fd.Filter.LandmarkName=_3f7; +} +} +} +this.invoker=function(arg1,arg2,arg3){ +var iter=null; +if(arg3.ErrorCode||(arg2==4)){ +var _402=convertFromPS2JS(arg3.ErrorCode); +var _403=new DeviceAPIError(_402,arg3.ErrorMessage); +if(_3fa){ +_3f8(_403); +} +}else{ +if(arg3.ReturnValue){ +iter=new __sp_landmarks_iterator(arg3.ReturnValue); +} +_3f6(iter); +} +}; +var rval=this.so.IDataSource.GetList(_3fd,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case 1003: +throw new DeviceAPIError(_3f9.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case 1002: +throw new DeviceAPIError(_3f9.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case 1004: +throw new DeviceAPIError(_3f9.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case 1000: +throw new DeviceAPIError(_3f9.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_import(_405,_406,_407,_408){ +try{ +var _409=new DeviceAPIError(0,"dummy"); +var _40a=true; +if(_405===undefined){ +throw new DeviceAPIError(_409.MISSING_ARG_ERR,"LandmarksItrCallback is missing"); +}else{ +if(((_405===null)||(_405===""))&&(typeof (_405)!="number")){ +throw new DeviceAPIError(_409.MISSING_ARG_ERR,"LandmarksItrCallback is missing"); +}else{ +if(typeof (_405)!="function"){ +throw new DeviceAPIError(_409.INVALID_ARG_ERR,"invalid LandmarksItrCallback argument"); +} +} +} +if(_406===undefined||_406===null){ +throw new DeviceAPIError(_409.MISSING_ARG_ERR,"sourceFileUri is missing"); +}else{ +if(typeof (_406)!=="string"){ +throw new DeviceAPIError(_409.INVALID_ARG_ERR,"invalid sourceFileUri argument"); +} +} +if(_407===undefined||_407===null){ +throw new DeviceAPIError(_409.MISSING_ARG_ERR,"mimetype is missing"); +}else{ +if(typeof (_407)!=="string"){ +throw new DeviceAPIError(_409.INVALID_ARG_ERR,"invalid mimetype argument"); +} +} +if((_408!=undefined)){ +if((!_408)&&(typeof (_408)!="number")){ +_40a=false; +}else{ +if((typeof (_408)!="function")){ +throw new DeviceAPIError(_409.INVALID_ARG_ERR,"invalid ErrorCallback callback"); +} +} +}else{ +_40a=false; +} +this.invoker=function(arg1,arg2,arg3){ +var iter=null; +if(arg2==4||arg3.ErrorCode){ +var _40f=convertFromPS2JS(arg3.ErrorCode); +var _410=new DeviceAPIError(_40f,arg3.ErrorMessage); +if(_40a){ +_408(_410); +} +}else{ +if(arg3.ReturnValue){ +iter=new __sp_landmarks_iterator(arg3.ReturnValue); +} +_405(iter); +} +}; +var _411=new Object(); +modifyObjectBaseProp(_411); +_411.Type="Landmark"; +_411.Data=new Object(); +modifyObjectBaseProp(_411.Data); +if(_406.slice(0,7)=="file://"){ +_406=_406.slice(7); +}else{ +if(_406.slice(0,8)=="file:///"){ +_406=_406.slice(8); +}else{ +throw new DeviceAPIError(_409.INVALID_ARG_ERR,"sourceFileUri is not in URI format"); +} +} +while(_406.search("/")!=-1){ +_406=_406.replace("/","\\"); +} +_411.Data.SourceFile=_406; +_411.Data.MimeType=_407; +var rval=this.so.IDataSource.Import(_411,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +throw new DeviceAPIError(_409.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case err_bad_argument: +throw new DeviceAPIError(_409.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case err_ServiceNotSupported: +throw new DeviceAPIError(_409.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case err_InvalidService_Argument: +throw new DeviceAPIError(_409.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_export(_413,_414,_415,_416,_417){ +try{ +var _418=new DeviceAPIError(0,"dummy"); +var _419=true; +if(_413===undefined){ +throw new DeviceAPIError(_418.MISSING_ARG_ERR,"SuccessCallback is missing"); +}else{ +if(((_413===null)||(_413===""))&&(typeof (_413)!="number")){ +throw new DeviceAPIError(_418.MISSING_ARG_ERR,"SuccessCallback is missing"); +}else{ +if(typeof (_413)!="function"){ +throw new DeviceAPIError(_418.INVALID_ARG_ERR,"invalid SuccessCallback argument"); +} +} +} +if(_414===undefined||_414===null){ +throw new DeviceAPIError(_418.MISSING_ARG_ERR,"landmarkIdList is missing"); +}else{ +if(typeof (_414)!=="object"){ +throw new DeviceAPIError(_418.INVALID_ARG_ERR,"invalid landmarkIdList argument"); +} +} +if(_415===undefined||_415===null){ +throw new DeviceAPIError(_418.MISSING_ARG_ERR,"destFileUri is missing"); +}else{ +if(typeof (_415)!=="string"){ +throw new DeviceAPIError(_418.INVALID_ARG_ERR,"invalid destFileUri argument"); +} +} +if(_416===undefined||_416===null){ +throw new DeviceAPIError(_418.MISSING_ARG_ERR,"mimetype is missing"); +}else{ +if(typeof (_416)!=="string"){ +throw new DeviceAPIError(_418.INVALID_ARG_ERR,"invalid mimetype argument"); +} +} +if((_417!=undefined)){ +if((!_417)&&(typeof (_417)!="number")){ +_419=false; +}else{ +if((typeof (_417)!="function")){ +throw new DeviceAPIError(_418.INVALID_ARG_ERR,"invalid ErrorCallback callback"); +} +} +}else{ +_419=false; +} +this.invoker=function(arg1,arg2,arg3){ +if(arg2==4||arg3.ErrorCode){ +var _41d=convertFromPS2JS(arg3.ErrorCode); +var _41e=new DeviceAPIError(_41d,arg3.ErrorMessage); +if(_419){ +_417(_41e); +} +}else{ +_413(); +} +}; +var _41f=new Object(); +modifyObjectBaseProp(_41f); +_41f.Type="Landmark"; +_41f.Data=new Object(); +modifyObjectBaseProp(_41f.Data); +if(_415.slice(0,7)=="file://"){ +_415=_415.slice(7); +}else{ +if(_415.slice(0,8)=="file:///"){ +_415=_415.slice(8); +}else{ +throw new DeviceAPIError(_418.INVALID_ARG_ERR,"destFileUri is not in URI format"); +} +} +while(_415.search("/")!=-1){ +_415=_415.replace("/","\\"); +} +_41f.Data.DestinationFile=_415; +_41f.Data.IdList=_414; +_41f.Data.MimeType=_416; +var rval=this.so.IDataSource.Export(_41f,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +throw new DeviceAPIError(_418.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case err_bad_argument: +throw new DeviceAPIError(_418.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case err_ServiceNotSupported: +throw new DeviceAPIError(_418.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case err_InvalidService_Argument: +throw new DeviceAPIError(_418.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_organize(_421,_422,_423,_424,_425){ +try{ +var _426=new DeviceAPIError(0,"dummy"); +var _427=true; +if(_421===undefined){ +throw new DeviceAPIError(_426.MISSING_ARG_ERR,"SuccessCallback is missing"); +}else{ +if(((_421===null)||(_421===""))&&(typeof (_421)!="number")){ +throw new DeviceAPIError(_426.MISSING_ARG_ERR,"SuccessCallback is missing"); +}else{ +if(typeof (_421)!="function"){ +throw new DeviceAPIError(_426.INVALID_ARG_ERR,"invalid SuccessCallback argument"); +} +} +} +if(_422===undefined||_422===null){ +throw new DeviceAPIError(_426.MISSING_ARG_ERR,"landmarkIdList is missing"); +}else{ +if(typeof (_422)!=="object"){ +throw new DeviceAPIError(_426.INVALID_ARG_ERR,"invalid LandmarkItem argument"); +} +} +if(_423===undefined||_423===null){ +throw new DeviceAPIError(_426.MISSING_ARG_ERR,"categoryId is missing"); +}else{ +if(typeof (_423)!=="string"){ +throw new DeviceAPIError(_426.INVALID_ARG_ERR,"invalid categoryId argument"); +} +} +if(_424===undefined||_424===null){ +_424=true; +}else{ +if(typeof (_424)!=="boolean"){ +throw new DeviceAPIError(_426.INVALID_ARG_ERR,"invalid associate argument"); +} +} +if((_425!=undefined)){ +if((!_425)&&(typeof (_425)!="number")){ +_427=false; +}else{ +if((typeof (_425)!="function")){ +throw new DeviceAPIError(_426.INVALID_ARG_ERR,"invalid ErrorCallback callback"); +} +} +}else{ +_427=false; +} +this.invoker=function(arg1,arg2,arg3){ +if(arg2==4||arg3.ErrorCode){ +var _42b=convertFromPS2JS(arg3.ErrorCode); +var _42c=new DeviceAPIError(_42b,arg3.ErrorMessage); +if(_427){ +_425(_42c); +} +}else{ +_421(); +} +}; +var _42d=new Object(); +modifyObjectBaseProp(_42d); +_42d.Type="Landmark"; +_42d.Data=new Object(); +modifyObjectBaseProp(_42d.Data); +_42d.Data.id=_423; +_42d.Data.IdList=_422; +if(_424){ +_42d.OperationType="Associate"; +}else{ +_42d.OperationType="Disassociate"; +} +var rval=this.so.IDataSource.Organise(_42d,this.invoker); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +throw new DeviceAPIError(_426.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case err_bad_argument: +throw new DeviceAPIError(_426.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case err_ServiceNotSupported: +throw new DeviceAPIError(_426.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case err_InvalidService_Argument: +throw new DeviceAPIError(_426.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +return rval.TransactionID; +} +catch(e){ +throw e; +} +}; +function __sp_landmarks_cancel(_42f){ +try{ +if(_42f===undefined||_42f===null){ +throw new DeviceAPIError(error.MISSING_ARG_ERR,"transactionId is missing"); +}else{ +if(typeof (_42f)!=="number"){ +throw new DeviceAPIError(error.INVALID_ARG_ERR,"invalid transactionId argument"); +} +} +var _430=new Object(); +modifyObjectBaseProp(_430); +_430.TransactionID=_42f; +var rval=this.so.IDataSource.Cancel(_430); +if(rval.ErrorCode!=0){ +switch(rval.ErrorCode){ +case err_missing_argument: +throw new DeviceAPIError(error.MISSING_ARG_ERR,rval.ErrorMessage); +break; +case err_bad_argument: +throw new DeviceAPIError(error.INVALID_ARG_ERR,rval.ErrorMessage); +break; +case err_ServiceNotSupported: +throw new DeviceAPIError(error.NOT_SUPPORTED_ERR,rval.ErrorMessage); +break; +case err_InvalidService_Argument: +throw new DeviceAPIError(error.INVALID_ARG_ERR,rval.ErrorMessage); +break; +default: +throw new DeviceAPIError(-101,"unknown error message"); +} +} +} +catch(e){ +throw e; +} +}; +