Added wrt files, prior to converting into Qt/C++.
[ptas] / wrt / misc / rss / preview / script / lib / sapi / Logging.js
diff --git a/wrt/misc/rss/preview/script/lib/sapi/Logging.js b/wrt/misc/rss/preview/script/lib/sapi/Logging.js
new file mode 100644 (file)
index 0000000..d3589e8
--- /dev/null
@@ -0,0 +1,535 @@
+/**\r
+ * Logging.js\r
+ * \r
+ * Nokia Web Runtime Service API emulation \r
+ * WRT v1.1\r
+ * \r
+ * Copyright 2009 Nokia Corporation. All rights reserved.\r
+*/\r
+\r
\r
+(function(){\r
+       \r
+       var provider = 'Service.Logging',\r
+               Interface = 'IDataSource';\r
+\r
+       /**\r
+        * Landmark service\r
+        */\r
+       var LoggingService = function(){\r
+               this.Add                                        = __Add;\r
+               this.GetList                            = __GetList;\r
+               this.Delete                                     = __Delete;\r
+               this.RequestNotification        = __RequestNotification;                \r
+               this.Cancel                                     = __Cancel;             \r
+\r
+       }\r
+\r
+       device.implementation.extend(provider, Interface, new LoggingService() );\r
+\r
+\r
+       /******************************************************/        \r
+       /******************************************************/        \r
+       /******************************************************/        \r
+\r
+       var     context = device.implementation.context,\r
+               _t = context._t,\r
+               method = '',\r
+               result = false,\r
+               DBase = null;\r
+\r
+       var transactionIds = new Array();\r
+       var tTransactionId = -1;\r
+       var isTraceInProgress = false;\r
+       var criteriaReq;\r
+       var callbackReq;\r
+\r
+       /**\r
+        * Logging: Add\r
+        * @param {Object} criteria\r
+        * @param (function) callback\r
+        */\r
+       function __Add(criteria, callback, flag){\r
+               method = "Add";\r
+               //      Async call\r
+               flag = flag || false;\r
+\r
+               if (!flag) {\r
+                       var result = ValidateAdd(criteria, callback);\r
+                       if (result.ErrorCode != 0) \r
+                               return result;\r
+               }                       \r
+               \r
+               \r
+               if(typeof callback == 'function')\r
+               {\r
+                       return context.callAsync(this, arguments.callee, criteria, callback);\r
+               }\r
+               DBase = context.getData(provider);\r
+               var returnValue = DBase[criteria.Type];\r
+               criteria.Item.id =      GenerateRandomNumber()+'';\r
+               criteria.Item["EventTime"] = GetCurrDate();\r
+               returnValue.push(criteria.Item);\r
+               return context.Result(criteria.Item.id,0);\r
+       }\r
+\r
+       /**\r
+        * Logging: GetList\r
+        * @param {Object} criteria\r
+        * @param (function) callback\r
+        */\r
+       function __GetList(criteria, callback, flag){   \r
+               method = "GetList";\r
+               //      Async call\r
+               flag = flag || false;\r
+\r
+               if (!flag) {\r
+                       var result = ValidateGetList(criteria, callback);\r
+                       if (result.ErrorCode != 0) \r
+                               return result;\r
+               }                       \r
+               \r
+               \r
+               if(typeof callback == 'function')\r
+               {\r
+                       return context.callAsync(this, arguments.callee, criteria, callback);\r
+               }\r
+               if(criteria.Filter){\r
+                       context.notify(_t('%s:: GetList : filter not implemented in preview').arg(provider));\r
+               }\r
+                               \r
+               DBase = context.getData(provider);\r
+               var returnValue;\r
+               // @todo: apply filter criteria\r
+               returnValue = context.Iterator( DBase[criteria.Type] || [] );\r
+               \r
+               return context.Result(returnValue,0);\r
+       }\r
+\r
+       /**\r
+        * Logging: Delete\r
+        * @param {Object} criteria\r
+        * @param (function) callback\r
+        */\r
+       function __Delete(criteria, callback, flag){\r
+               method = "Delete";\r
+               //      Async call\r
+               flag = flag || false;           \r
+               if (!flag) {\r
+                       if (!criteria || !criteria.Type) \r
+                               return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgTypeMissing);\r
+\r
+                       if (typeof criteria.Type != 'string') \r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgTypeInvalid);\r
+                       \r
+                       if (criteria.Type != 'Log') \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgTypeInvalid);\r
+                       \r
+                       if (!criteria.Data) \r
+                               return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgDataMissing);\r
+                       \r
+                       if(typeof criteria.Data != 'object')\r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDataInvalid);\r
+\r
+                       if(typeof criteria.Data.id == 'undefined')\r
+                               return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgid);\r
+                       \r
+                       if (typeof criteria.Data.id != "string") \r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgidInvalid);\r
+                               \r
+                       if(criteria.Data.id == '')\r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgidInvalid);\r
+               }\r
+               DBase = context.getData(provider);\r
+               var returnValue,found = false;\r
+               returnValue = DBase[criteria.Type];\r
+               for(var i=0; i<returnValue.length; i++){\r
+                       if(returnValue[i].id == criteria.Data.id)\r
+                       {\r
+                               found = true;\r
+                               returnValue.splice(i,1);\r
+                       }                       \r
+               }\r
+               if(!found)\r
+                       return error(device.implementation.ERR_NOT_FOUND, msg.msgidInvalid);\r
+               \r
+               return context.Result(undefined,0);\r
+       }\r
+\r
+       /**\r
+        * Logging: RequestNotification\r
+        * @param {Object} criteria\r
+        * @param (function) callback\r
+        */\r
+       function __RequestNotification(criteria, callback, flag){\r
+               method = "RequestNotification";\r
+               \r
+               //      Async call\r
+               flag = flag || false;           \r
+               if (!flag) {\r
+                       if (!criteria || !criteria.Type) \r
+                               return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgTypeMissing);\r
+\r
+                       if (typeof criteria.Type != 'string') \r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgTypeInvalid);\r
+                       \r
+                       if (criteria.Type != 'Log') \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgTypeInvalid);\r
+                       \r
+                       if (!criteria.Filter)\r
+                               return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgFilterMissing);\r
+\r
+                       if(typeof criteria.Filter != 'object') \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgFilterInvalid);\r
+                       \r
+                       if(typeof criteria.Filter.DelayTime == 'undefined') \r
+                               return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgDelayTimeMissing);\r
+                       \r
+                       if(typeof criteria.Filter.DelayTime != 'number')\r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgDelayTimeInvalid);\r
+                       if(criteria.Filter.DelayTime <= 0)\r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDelayTimeInvalid);\r
+                       \r
+                       if(criteria.Filter.DelayTime < 1000000 )\r
+                       {\r
+                               criteria.Filter.DelayTime = 1000000;\r
+                               context.notify(_t('%s:: RequestNotification : Using DelayTime = 1000000').arg(provider));\r
+                       }\r
+               }\r
+               if(typeof callback != 'function')\r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgMissingCallback);\r
+\r
+               criteriaReq = criteria;\r
+               callbackReq = callback;\r
+               isTraceInProgress = true;\r
+\r
+               return notificationCall(criteria,callback);\r
+       }\r
+\r
+       /**\r
+        * Logging: Cancel\r
+        * @param {Object} criteria\r
+        * @param (function) callback\r
+        */\r
+       function __Cancel(criteria){\r
+                       method = "Cancel";\r
+                       if (!criteria || typeof criteria.TransactionID == 'undefined') \r
+                               return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgTransactionIdMissing);\r
+                       \r
+                       if (typeof criteria.TransactionID != 'number') \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgTransactionIdInvalid);\r
+                       \r
+                       clearTimeout(criteria.TransactionID);\r
+                       if (criteria.TransactionID == tTransactionId) {\r
+                               isTraceInProgress = false;\r
+                               tTransactionId = -1;\r
+                       }\r
+               return context.ErrorResult(device.implementation.ERR_SUCCESS);\r
+\r
+       }\r
+       \r
+\r
+       /**\r
+        * Location: error\r
+        * @param {number,string} ErrorCode and ErrorString\r
+        * Replaces Error String with method name\r
+        */\r
+       function error(code, msg /*, args...*/){\r
+\r
+               var args = ['Logging',method].concat([].slice.call(arguments,2));\r
+               msg = msg ? _t().arg.apply(msg,args) : undefined;\r
+               return context.ErrorResult(code, msg);\r
+       }\r
+       \r
+       /**\r
+        * Logging: notificationCall\r
+        * @param {} \r
+        * This function Calls callback function after given delay\r
+        */\r
+       function notificationCall(){\r
+               var tid = setTimeout(function(){\r
+               if(!isTraceInProgress)\r
+                       return;\r
+                       \r
+               DBase = context.getData(provider);\r
+               var returnValue;\r
+               returnValue = context.Iterator( DBase[criteriaReq.Type] || [] );\r
+\r
+               var result,\r
+                       eventCode = {completed:2, error:4, progress:9},\r
+               code = eventCode.completed;\r
+\r
+               callbackReq(tTransactionId,code,context.Result(returnValue,0));\r
+               //notificationCall();\r
+               }, criteriaReq.Filter.DelayTime/1000);\r
+               if(tTransactionId == -1)\r
+                       tTransactionId = tid;\r
+               return context.AsyncResult(tTransactionId);\r
+       }\r
+       \r
+       /**\r
+        * Helper functions\r
+        */\r
+\r
+       /**\r
+        * GenerateRandomNumber\r
+        * @param {}array of log data for getting unique ID \r
+        * \r
+        */\r
+       function GenerateRandomNumber(arr)\r
+       {\r
+               var randomnumber = Math.floor(Math.random() * 10001);\r
+               randomnumber +=200;\r
+               return randomnumber;\r
+       }\r
+\r
+       /**\r
+        * GetCurrDate\r
+        * @param {}Gets date in internet format\r
+        * \r
+        */\r
+       function GetCurrDate()\r
+       {\r
+               var d_names = new Array("Sunday", "Monday", "Tuesday",\r
+               "Wednesday", "Thursday", "Friday", "Saturday");\r
+               \r
+               var m_names = new Array("January", "February", "March", \r
+               "April", "May", "June", "July", "August", "September", \r
+               "October", "November", "December");\r
+               \r
+               var ampm = "am";\r
+               \r
+               var d = new Date();\r
+               var curr_day = d.getDay();\r
+               var curr_date = d.getDate();\r
+               if(curr_date <10)\r
+                       curr_date = "0"+curr_date;\r
+               var curr_month = d.getMonth();\r
+               var curr_year = d.getFullYear();\r
+               var curr_hour = d.getHours();\r
+               if(curr_hour > 11)\r
+               {\r
+                       ampm = "pm";\r
+               }\r
+               else if(curr_hour <10)\r
+               {\r
+                       curr_hour = "0"+curr_hour;\r
+               }       \r
+               var curr_min = d.getMinutes();\r
+               if(curr_min <10)\r
+                       curr_min = "0"+curr_min;\r
+       \r
+               var curr_sec = d.getSeconds();\r
+               if(curr_sec <10)\r
+                       curr_sec = "0"+curr_sec;\r
+               \r
+               var strDate = d_names[curr_day]+', '+curr_date+' '+m_names[curr_month]+', '+curr_year+' '+curr_hour+':'+curr_min+':'+curr_sec+' '+ampm;\r
+               return strDate;\r
+       }       \r
+\r
+       /**\r
+        * ValidateAdd\r
+        * @param {object,function}\r
+        * Validates ADD arguments\r
+        */     \r
+       function ValidateAdd(criteria,callback)\r
+       {\r
+               var type;\r
+               if(!criteria || !criteria.Type)\r
+                       return error(device.implementation.ERR_MISSING_ARGUMENT,msg.msgTypeMissing);\r
+\r
+               if (typeof criteria.Type != 'string') \r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgTypeInvalid);\r
+               \r
+               if(criteria.Type != 'Log')\r
+                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT,msg.msgTypeInvalid);\r
+               \r
+               if (!criteria.Item)\r
+                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgItemMissing);\r
+\r
+               if(typeof criteria.Item != 'object') \r
+                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgItemInvalid);\r
+               \r
+               \r
+               if(typeof criteria.Item.EventType == "undefined")\r
+                       return error(device.implementation.ERR_MISSING_ARGUMENT,msg.msgEventTypeMissing);\r
+\r
+               if(typeof criteria.Item.EventType != "number" )\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgEventTypeInvalid);\r
+               \r
+               if(typeof criteria.Item.EventType == "number" && !(criteria.Item.EventType >=0 && criteria.Item.EventType <=4))\r
+                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT,msg.msgEventTypeInvalid);\r
+               \r
+               type = typeof criteria.Item.RemoteParty;\r
+               if(type != 'undefined' &&  type != "string")\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgRemotePartyInvalid);\r
+               \r
+               type = typeof criteria.Item.Direction;\r
+               if (type != 'undefined') {\r
+                       if (type != "number") \r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgDirectionInvalid);\r
+                       \r
+                       if (type == "number" && (criteria.Item.Direction < 0 || criteria.Item.Direction > 6)) \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDirectionInvalid);\r
+               }\r
+\r
+               type = typeof criteria.Item.EventDuration;\r
+               if(type != 'undefined' &&  type != "number")\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgEventDurationInvalid);\r
+                       \r
+               type = typeof criteria.Item.DeliveryStatus;\r
+               if (type != 'undefined') {\r
+                       if (type != "number") \r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgDeliveryStatusInvalid);\r
+                       \r
+                       if (type == "number" && (criteria.Item.DeliveryStatus < 0 || criteria.Item.DeliveryStatus > 6)) \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDeliveryStatusInvalid);\r
+               }\r
+               \r
+               type = typeof criteria.Item.Subject;\r
+               if(type != 'undefined' &&  type != "string")\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgSubjectInvalid);\r
+\r
+               type = typeof criteria.Item.PhoneNumber;\r
+               if(type != 'undefined' &&  type != "string")\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgPhoneNumberInvalid);\r
+\r
+               type = typeof criteria.Item.Link;\r
+               if(type != 'undefined' &&  type != "number")\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgLinkInvalid);\r
+\r
+               type = typeof criteria.Item.LogFlags;\r
+               if(type != 'undefined' && (type != "number" || (criteria.Item.LogFlags != 1 && criteria.Item.LogFlags != 0)))\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgLogFlagsInvalid);\r
+\r
+               return context.ErrorResult(device.implementation.ERR_SUCCESS, "");\r
+       }       \r
+\r
+       /**\r
+        * ValidateGetList\r
+        * @param {object,function}\r
+        * Validates GetList function\r
+        */     \r
+       function ValidateGetList(criteria,callback)\r
+       {\r
+               var type;\r
+               if(!criteria || !criteria.Type)\r
+                       return error(device.implementation.ERR_MISSING_ARGUMENT,msg.msgTypeMissing);\r
+\r
+               if (typeof criteria.Type != 'string') \r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgTypeInvalid);\r
+               \r
+               if(criteria.Type != 'Log')\r
+                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT,msg.msgTypeInvalid);\r
+\r
+               type = typeof criteria.Filter;\r
+               if(type != 'undefined' &&  type != "object")\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgFilterInvalid);\r
+               \r
+               if(type == 'undefined')\r
+                       return context.ErrorResult(device.implementation.ERR_SUCCESS, "");              \r
+               \r
+               type = typeof criteria.Filter.id;\r
+               if(type != 'undefined' &&  type != "string")\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgid);\r
+               \r
+               if(type != 'undefined')\r
+                       return context.ErrorResult(device.implementation.ERR_SUCCESS, "");  // if id is given all other filters will be ignored\r
+\r
+               type = typeof criteria.Filter.EventType;\r
+               if (type != 'undefined') {\r
+                       if (type != "number") \r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgEventTypeInvalid);\r
+               \r
+                       if (type != "number" || !(criteria.Filter.EventType >= 0 && criteria.Filter.EventType <= 4)) \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgEventTypeInvalid);\r
+               }               \r
+               type = typeof criteria.Filter.RecentList;\r
+               if (type != 'undefined') {\r
+                       if (type != "number") \r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgRecentListInvalid);\r
+                       if (type == "number" && (criteria.Filter.RecentList < -1 || criteria.Filter.RecentList > 3)) \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgRecentListInvalid);\r
+               }\r
+               \r
+               type = typeof criteria.Filter.RemoteParty;\r
+               if(type != 'undefined' &&  type != "string")\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgRemotePartyInvalid);\r
+               \r
+               type = typeof criteria.Filter.Direction;\r
+               if (type != 'undefined') {\r
+                       if (type != "number") \r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgDirectionInvalid);\r
+                       if (type == "number" && (criteria.Filter.Direction < 0 || criteria.Filter.Direction > 6)) \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDirectionInvalid);\r
+               }\r
+               \r
+               type = typeof criteria.Filter.DeliveryStatus;\r
+               if (type != 'undefined') {\r
+                       if (type != "number") \r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgDeliveryStatusInvalid);\r
+                       if (type == "number" && (criteria.Filter.DeliveryStatus < 0 || criteria.Filter.DeliveryStatus > 6)) \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDeliveryStatusInvalid);\r
+               }\r
+\r
+               type = typeof criteria.Filter.EndTime;\r
+               if(type != 'undefined' && (type != "object" ||  typeof criteria.Filter.EndTime.getTime != "function"))\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgEndTimeInvalid);\r
+\r
+               type = typeof criteria.Filter.PhoneNumber;\r
+               if(type != 'undefined' &&  type != "string")\r
+                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgPhoneNumberInvalid);\r
+\r
+\r
+               type = typeof criteria.Filter.LogFlags;\r
+               if (type != 'undefined') {\r
+                       if (type != "number") \r
+                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgLogFlagsInvalid);\r
+                       if (type == "number" && (criteria.Filter.LogFlags != 1 && criteria.Filter.LogFlags != 0)) \r
+                               return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgLogFlagsInvalid);\r
+               }\r
+               return context.ErrorResult(device.implementation.ERR_SUCCESS, "");\r
+       }       \r
+\r
+\r
+       /** \r
+        * error messages\r
+        * order of %s args: Service name, method name, parameter name \r
+        */\r
+       var msg = {\r
+               msgTypeInvalid                          : '%s:%s:TypeInvalid',\r
+               msgTypeMissing                          : '%s:%s:Type Missing',\r
+               msgFilterInvalid                        : '%s:%s:FilterInvalid',\r
+               msgidInvalid                            : '%s:%s:idInvalid',\r
+               msgRecentListInvalid            : '%s:%s:RecentListInvalid',\r
+               msgPhoneNumberInvalid           : '%s:%s:PhoneNumberInvalid',\r
+               msgDirectionInvalid                     : '%s:%s:DirectionInvalid',\r
+               msgDeliveryStatusInvalid        : '%s:%s:DeliveryStatusInvalid',\r
+               msgLogFlagsInvalid                      : '%s:%s:LogFlagsInvalid',\r
+               msgEndTimeInvalid                       : '%s:%s:EndTimeInvalid',\r
+               msgRemotePartyInvalid           : '%s:%s:RemotePartyInvalid',\r
+               msgEventTypeInvalid                     : '%s:%s:EventTypeInvalid',\r
+               msgItemInvalid                          : '%s:%s:ItemInvalid',\r
+               msgItemMissing                          : '%s:%s:ItemMissing',\r
+               msgEventTypeInvalid                     : '%s:%s:EventTypeInvalid',\r
+               msgEventTypeMissing                     : '%s:%s:EventType Missing',\r
+               msgEventDurationInvalid         : '%s:%s:EventDurationInvalid',\r
+               msgSubjectInvalid                       : '%s:%s:SubjectInvalid',\r
+               msgEventDataInvalid                     : '%s:%s:EventDataInvalid',\r
+               msgLinkInvalid                          : '%s:%s:LinkInvalid',\r
+               msgDataInvalid                          : '%s:%s:DataInvalid',\r
+               msgDataMissing                          : '%s:%s:Data Missing',\r
+               msgid                                           : '%s:%s:id',\r
+               msgFilterInvalid                        : '%s:%s:FilterInvalid',\r
+               msgFilterMissing                        : '%s:%s:Filter Missing',\r
+               msgDelayTimeInvalid                     : '%s:%s:DelayTimeInvalid',\r
+               msgDelayTimerMissing            : '%s:%s:DelayTimerMissing',\r
+               msgTransactionIdInvalid         : '%s:%s:TransactionIdInvalid',\r
+               msgTransactionIdMissing         : '%s:%s:TransactionID Missing',\r
+               msgMissingCallback                      : '%s:%s:Missing Callback',\r
+               msgNoMsg                                        : '%s:%s:'\r
+       };\r
+               \r
+\r
+}) ()\r
+\r