{div:style=display:none}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY (EXCEPT INSIDE THE DIV BELOW WITH ID=DESCRIPTION), UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO AUTO UPDATE THE CONTENT THROUGH THE DOC GENERATOR{div}
{div:id=description}{div}\\ 

{table:id=|class=servoy sReturnTypes}{tr:style=height: 30px;}{th}Return Types{th}{tr}{tr}{td}{td}{tr}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Property Summary{th}{tr}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}void{td}{td}[#call]\(telNumber)
Initiate a phone call{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#clearLocalData]\()
Clears local data \- that is stored in browser local storage.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#email]\(emailAddress)
Initiate an email sending{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#getCurrentPosition]\(successCallback, errorHandler, options)
Wrapper function around HTML5 getCurrentPosition.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getMarkupId]\(element)
Retrieves markup id of an element{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getUsedStorageSpace]\()
Retrieves amount of used bytes from browser local storage.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#isOnline]\()
Returns whether mobile device is online.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#loadData]\()
(Re)Loads fresh data from the server, discarding the current local changes (asynchronously).{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#loadData]\(successCallback, errorHandler)
(Re)Loads fresh data from the server, discarding the current local changes (asynchronously).{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#syncData]\()
Synchronises data between Mobile Client and Servoy Application Server (asynchronously).{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#syncData]\(successCallback, errorHandler)
Synchronises data between Mobile Client and Servoy Application Server (asynchronously), calling 
"successCallback" on successful synchronisation, with first argument the size of the received data in bytes,
or "errorHandler" if an error occurs during synchronisation, with first argument the HTTP status code for the request or \-1 if unknown, and the second argument
the error message.{td}{tr}{tbody}{table}\\ 

{table:id=property|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=call-String}{tr:id=name}{td}h6.call{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}call{span}{span}\(telNumber){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} telNumber -- telephone number to call
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.mobile.call("+490111111")
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=clearLocalData}{tr:id=name}{td}h6.clearLocalData{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}clearLocalData{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
// if we want do clear local copy of the data because the user did something really bad with local data
plugins.mobile.clearLocalData();
plugins.mobile.syncData();

// maybe we are done with a task and we don't want to use persistent space on the device
plugins.mobile.clearLocalData();
forms.noDataInitialForm.showWithMessage("Local data discarded."); // a form that displays the message and shows itself on this call; it also allows doing a sync later for example
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=email-String}{tr:id=name}{td}h6.email{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}email{span}{span}\(emailAddress){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} emailAddress -- destination email address
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.mobile.email("[email protected]")
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getCurrentPosition-Function_Function_Object}{tr:id=name}{td}h6.getCurrentPosition{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}getCurrentPosition{span}{span}\(successCallback, errorHandler, options){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Function]} successCallback -- Method to be called if the coordinates are retrieved.
\{[Function]} errorHandler -- Method to be called if an error occurs while retrieving GPS coordinates. Can be null.
\{[Object]} options -- JSON string with different options that are supported by HTML5 function (accuracy, timeout, caching).
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.mobile.getCurrentPosition(forms.myform.showLocation,scopes.globals.errorHandler,{timeout:5000});
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getMarkupId-RuntimeComponent}{tr:id=name}{td}h6.getMarkupId{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}getMarkupId{span}{span}\(element){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[RuntimeComponent]} element -- to retrive markup id for
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String] -- the element's markup id{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var id = plugins.mobile.getMarkupId(elements.myButton)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getUsedStorageSpace}{tr:id=name}{td}h6.getUsedStorageSpace{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Number]{span}{span:style=font-weight: bold;}getUsedStorageSpace{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var usedSpace = plugins.mobile.getUsedStorageSpace()
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=isOnline}{tr:id=name}{td}h6.isOnline{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}isOnline{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.mobile.isOnline()
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=loadData}{tr:id=name}{td}h6.loadData{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}loadData{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
// reload data from server and discard local changes
plugins.mobile.loadData();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=loadData-Function_Function}{tr:id=name}{td}h6.loadData{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}loadData{span}{span}\(successCallback, errorHandler){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Function]} successCallback -- Method to be called if the load was successful. Can be null.
First argument of the success callback is the size of received data in bytes.
\{[Function]} errorHandler -- Method to be called if an error occurs during load. Can be null.
First argument is the HTTP status code for the request or \-1 if unknown.
Second argument is the error message.
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
function reloadAndDiscardData(event)
{
	plugins.mobile.loadData(onLoadSuccess, onLoadError);
}
 
function onLoadSuccess(dataBytes)
{
	if (dataBytes > 0) forms.contacts.showContacts(accountmanager_to_companies.companies_to_contacts);
	else forms.noData.showWithMessage("Server has no data to send.");
}
 
function onLoadError(http_status_code, error_message)
{
	plugins.dialogs.showWarningDialog("Warning", 'Reload of data failed with http status code: ' + http_status_code + ', and error message: ' + error_message);
	forms.firstForm.showWithMessage("Data reload failed. Please press 'Synchronise' to try again.");
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=syncData}{tr:id=name}{td}h6.syncData{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}syncData{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.mobile.syncData()
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=syncData-Function_Function}{tr:id=name}{td}h6.syncData{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}syncData{span}{span}\(successCallback, errorHandler){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Function]} successCallback -- Method to be called if the sync was successful. Can be null.
\{[Function]} errorHandler -- Method to be called if an error occurs during synchronisation. Can be null.
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
function onSyncAction(event)
{
	plugins.mobile.syncData(onSyncSuccess, onSyncError);
}

function onSyncSuccess(dataBytes)
{	
	if (dataBytes > 0) forms.contacts.showContacts(accountmanager_to_companies.companies_to_contacts);
}
 
function onSyncError(http_status_code, error_message)
{
	plugins.dialogs.showWarningDialog("Warning", 'Sync failed with http status code: ' + http_status_code + ', and error message: ' + error_message);
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}